xiebaomin il y a 1 an
Parent
commit
6780bfc2f3
47 fichiers modifiés avec 9411 ajouts et 7839 suppressions
  1. 1 1
      common/config/caimeiApi.js
  2. 78 4
      components/cm-module/cm-ross/cm-ross-popup.vue
  3. 135 127
      components/cm-module/homeIndex/banner.vue
  4. 60 5
      components/cm-module/homeIndex/pageSpecial.vue
  5. 3 3
      components/cm-share-popup/cm-seller-modal.vue
  6. 1 1
      components/cm-share-popup/cm-share-popup.vue
  7. 68 68
      main.js
  8. 2 2
      mixins/cmsMixins.js
  9. 1354 1349
      pages.json
  10. 1 11
      pages/goods/good-floor.vue
  11. 3042 3044
      pages/goods/product.vue
  12. 119 0
      pages/login/components/activeTeamCom.vue
  13. 261 249
      pages/login/components/growthCommunity.vue
  14. 6 1
      pages/login/register.vue
  15. 469 462
      pages/login/supplier_login.vue
  16. 159 0
      pages/login/supplier_more.vue
  17. 2 2
      pages/search/search-supplier.vue
  18. 1730 1751
      pages/search/search.vue
  19. 1 1
      pages/seller/club/club-detail.vue
  20. 1 1
      pages/seller/club/club-info.vue
  21. 24 2
      pages/seller/club/club-portrait.vue
  22. 159 0
      pages/seller/club/components/echart-demand.vue
  23. 68 6
      pages/seller/club/components/echart-info.vue
  24. 10 1
      pages/seller/club/list.vue
  25. 1 5
      pages/seller/index/index.vue
  26. 3 2
      pages/seller/notice/components/trajectory.vue
  27. 19 16
      pages/seller/notice/service/Institutional_visits.vue
  28. 18 2
      pages/seller/notice/service/visits_details.vue
  29. 1 1
      pages/seller/order/components/cm-freight-popup.vue
  30. 21 16
      pages/seller/order/components/details/cm-order-temp.vue
  31. 13 0
      pages/seller/order/order-historylist.vue
  32. 26 0
      pages/seller/order/order-list.vue
  33. 345 151
      pages/seller/remarks/add-record.vue
  34. 439 230
      pages/seller/remarks/add.vue
  35. 101 33
      pages/seller/remarks/details.vue
  36. 238 0
      pages/seller/remarks/mixins/addMixins.js
  37. 84 20
      pages/seller/remarks/record-details.vue
  38. 169 146
      pages/seller/remarks/record-list.vue
  39. 2 2
      pages/supplier/user/my-shop.vue
  40. 20 22
      pages/tabBar/home/index.vue
  41. 1 1
      pages/user/pay/card-order.vue
  42. 6 3
      pages/user/pay/mixins/cardMixins.js
  43. 1 1
      services/config.env.js
  44. 46 3
      services/user.service.js
  45. 31 33
      store/index.js
  46. 72 54
      utils/cmSrsMixins.js
  47. 0 7
      utils/router.config.js

+ 1 - 1
common/config/caimeiApi.js

@@ -293,7 +293,7 @@ const caimeiApi = {
                 25:'/pages/goods/goods-doc-list',  //美业资料
                 28:`/pages/h5/article/path?link=${linkHref}`, // 采美认证通
                 29:'/pages/user/coupon/coupon-collection',//领券中心
-                30:`/pages/h5/activity/quick-operation?linkId=${pros.linkParam.id}`, // 快捷运营入口
+                30:`/pages/h5/activity/quick-operation?linkId=${linkId}`, // 快捷运营入口
             }
             const url = typeMap[linkType]
             uni.navigateTo({

+ 78 - 4
components/cm-module/cm-ross/cm-ross-popup.vue

@@ -5,6 +5,23 @@
 			<view class="tui-popup-close" @click.stop="hidePopup">
 				<text class="iconfont icon-iconfontguanbi"></text>
 			</view>
+			<view class="tui-popup-mssg">
+				<view class="tui-popup-mssg-img">
+					<image :src="advertData.image">
+				</view>
+				<view class="tui-popup-mssg-text">
+					<view class="tui-popup-mssg-text-t">
+						<view class="text">{{ advertData.guidingOne }}</view>
+						<view class="text">{{ advertData.guidingTwo }}</view>
+					</view>
+					<view class="tui-popup-mssg-text-b">
+						<view class="text">
+							<text class="iconfont icon-xiangxia1"></text>
+						</view>
+						<view class="text">请留下您的姓名和手机号,采美会安排咨询顾问联系您!</view>
+					</view>
+				</view>
+			</view>
 			<view class="tui-popup-main" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
 				<view class="tui-popup-from">
 					<input
@@ -15,6 +32,7 @@
 						placeholder="请输入名字"
 						placeholder-style="color:#FFFFFF;"
 						maxlength="10"
+						cursor-spacing="40"
 					/>
 				</view>
 				<view class="tui-popup-from none">
@@ -26,6 +44,7 @@
 						placeholder="请输入手机号"
 						placeholder-style="color:#FFFFFF;"
 						maxlength="11"
+						cursor-spacing="40"
 					/>
 				</view>
 			</view>
@@ -46,12 +65,18 @@
 
 <script>
 import { mapState, mapMutations } from 'vuex'
+import cmSrsMixins from '@/utils/cmSrsMixins.js'
 export default {
 	name: 'cm-ross-popup',
+	mixins: [cmSrsMixins],
 	props: {
 		popupShow: {
 			type: Boolean,
 			default: true
+		},
+		advertisement:{
+			type: Object,
+			default: {}
 		}
 	},
 	data() {
@@ -59,16 +84,18 @@ export default {
 			userId: 0, // 用户Id
 			consultParams: {
 				ip:'',
+				shopId:'',
 				createTime:'',
 				consultMobile: '',
 				consultName: '',
 				isClick:1
 			},
+			advertData:{},
 			isDisabled: true
 		}
 	},
 	created() {
-		this.initData()
+		this.initData(this.advertisement)
 	},
 	computed: {
 		...mapState(['hasLogin'])
@@ -77,6 +104,8 @@ export default {
 		async initData(data) {
 			const userInfo = await this.$api.getStorage()
 			this.userId = userInfo.userId ? userInfo.userId : 0
+			this.advertData = data
+			this.consultParams.shopId = data.shopId
 		},
 		handleInputName(e) {
 			this.consultParams.name = e.detail.value
@@ -126,9 +155,8 @@ export default {
 .tui-popup-box {
 	width: 100%;
 	height: 852rpx;
-	background: url(https://static.caimei365.com/app/img/ross/ross-bg@3x.png) no-repeat;
-	background-size: cover;
-	padding: 330rpx 75rpx 0 75rpx;
+	background: linear-gradient(0deg, #FFA86E, #FF5B00);
+	padding:30rpx 30rpx 75rpx 30rpx;
 	box-sizing: border-box;
 	.tui-popup-close{
 		width: 80rpx;
@@ -143,6 +171,52 @@ export default {
 			font-size: 40rpx;
 		}
 	}
+	.tui-popup-mssg{
+		width: 100%;
+		height: 220rpx;
+		margin-bottom: 75rpx;
+		.tui-popup-mssg-img{
+			width: 220rpx;
+			height: 220rpx;
+			float: left;
+			image{
+				width: 220rpx;
+				height: 220rpx;
+				display: block;
+			}
+		}
+		.tui-popup-mssg-text{
+			width: 470rpx;
+			height: 100%;
+			box-sizing: border-box;
+			padding: 0 0 0 30rpx;
+			float: left;
+			.tui-popup-mssg-text-t{
+				width: 100%;
+				height: auto;
+				margin-bottom: 30rpx;
+				.text{
+					font-size: 30rpx;
+					height: 52rpx;
+					line-height: 52rpx;
+					color: #ffffff;
+				}
+			}
+			.tui-popup-mssg-text-b{
+				width: 100%;
+				height: auto;
+				.text{
+					font-size: 18rpx;
+					line-height: 40rpx;
+					color: #ffffff;
+					.icon-xiangxia1{
+						color: rgba(255, 255, 255, .7);
+						font-size: 36rpx;
+					}
+				}
+			}
+		}
+	}
 	.tui-popup-main{
 		width: 100%;
 		height: auto;

+ 135 - 127
components/cm-module/homeIndex/banner.vue

@@ -1,18 +1,28 @@
 <template>
 	<view class="banner">
 		<view class="swiper-banner-content">
-			<view class="swiper-banner-box" >
-				<swiper class="tui-banner-swiper tui-banner tui-skeleton-fillet" :autoplay="true" :interval="5000" :duration="500"  @change="swiperChange" :circular="true">
-					<swiper-item v-for="(item,index) in list" :key="index" @click.stop="NavToDetailPage(item)">
-						<image :src="item.image" class="tui-slide-image" mode="scaleToFill"/>
+			<view class="swiper-banner-box">
+				<swiper
+					class="tui-banner-swiper tui-banner tui-skeleton-fillet"
+					:autoplay="true"
+					:interval="5000"
+					:duration="500"
+					@change="swiperChange"
+					:circular="true"
+				>
+					<swiper-item v-for="(item, index) in list" :key="index" @click.stop="NavToDetailPage(item)">
+						<image :src="item.image" class="tui-slide-image" mode="scaleToFill" />
 					</swiper-item>
 				</swiper>
 				<view class="swiper__dots-box" v-if="list.length > 1">
-					<view v-for="(item,idx) in list" 
-						  :key="idx" 
-						  :class="[idx===current?'swiper__dots-long':'none']" 
-						  :data-index="current" class="swiper__dots-item">
-					</view>	  
+					<view
+						v-for="(item, idx) in list"
+						:key="idx"
+						:class="[idx === current ? 'swiper__dots-long' : 'none']"
+						:data-index="current"
+						class="swiper__dots-item"
+					>
+					</view>
 				</view>
 			</view>
 		</view>
@@ -33,142 +43,140 @@
 </template>
 
 <script>
-	import cmsMixins from '@/mixins/cmsMixins.js'
-	export default{
-		mixins: [cmsMixins],
-		name:'banner',
-		props:{
-			list:{
-				type:Array
-			}
-		},
-		data() {
-			return{
-				current:0,
-                StatusBar: this.StatusBar,
-			}
-		},
-		created(){
-			
-		},
-		computed: {
-	
+import cmsMixins from '@/mixins/cmsMixins.js'
+export default {
+	mixins: [cmsMixins],
+	name: 'banner',
+	props: {
+		list: {
+			type: Array
+		}
+	},
+	data() {
+		return {
+			current: 0,
+			StatusBar: this.StatusBar
+		}
+	},
+	created() {},
+	computed: {},
+	methods: {
+		swiperChange(e) {
+			//轮播图切换
+			const index = e.detail.current
+			this.current = index
 		},
-		methods:{
-			swiperChange(e) {//轮播图切换
-				const index = e.detail.current
-				this.current = index
-			},
-			NavToDetailPage(floor) {//跳转
-				this.cmsSysStatistics(1)
-				this.$api.FlooryNavigateTo(floor)
-			}
+		NavToDetailPage(item) {
+			//跳转
+			this.cmsSysStatistics(1,item.id)
+			this.$api.FlooryNavigateTo(item)
 		}
 	}
+}
 </script>
 
 <style lang="scss" scoped>
-    .banner {
-        background-color: #f7f7f7;
-    }
-	.swiper-banner-content{
-		width: 100%;
-		height: auto;
-		margin-top: 55px;
-        background: url(https://static.caimei365.com/app/img/bg/new_home_cumres@2x.png) no-repeat;
-		position: relative;
-		background-size: cover;
-        background-position-y: -170rpx;
+.banner {
+	background-color: #f7f7f7;
+}
+.swiper-banner-content {
+	width: 100%;
+	height: auto;
+	margin-top: 55px;
+	background: url(https://static.caimei365.com/app/img/bg/new_home_cumres@2x.png) no-repeat;
+	position: relative;
+	background-size: cover;
+	background-position-y: -170rpx;
+}
+.swiper-banner-box {
+	width: 100%;
+	height: 360rpx;
+	position: relative;
+	background-size: cover;
+	display: flex;
+}
+.tui-banner-swiper {
+	width: 700rpx;
+	margin: 0 auto;
+	height: 340rpx;
+	border-radius: 24rpx;
+	overflow: hidden;
+	transform: translateY(0);
+	box-shadow: 0px 3px 6px rgba(225, 86, 22, 0.08);
+	margin-top: 16rpx;
+	.banner-item {
+		border-radius: 24rpx;
 	}
-	.swiper-banner-box{
+	.tui-slide-image {
 		width: 100%;
-		height: 360rpx;
-		position: relative;
-		background-size: cover;
-        display: flex;
-	}	
-	.tui-banner-swiper {
-		width: 700rpx;
-		margin: 0 auto;
 		height: 340rpx;
-		border-radius: 24rpx;
-		overflow: hidden;
-		transform: translateY(0);
-		box-shadow:0px 3px 6px rgba(225,86,22,0.08);
-		margin-top: 16rpx;
-		.banner-item{
-			border-radius: 24rpx;
-		}
-		.tui-slide-image {
-			width: 100%;
-			height: 340rpx;
-			display: block;
-		}
+		display: block;
 	}
-	.swiper__dots-box{
-		position: absolute;
-		bottom: 30rpx;
-		left: 0;
-		right: 0;
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		flex: 1;
-		flex-direction: row;
-		justify-content: center;
-		align-items: center;
-		.swiper__dots-item{
-			width: 8rpx;
-			height: 8rpx;
-			border-radius: 100%;
-			margin-left: 6px;
-			background-color:rgba(255,255,255,.7);
-		}
-		.swiper__dots-long{
-			width: 35rpx;
-			height: 8rpx;
-			border-radius: 4rpx;
-			background-color: #ffff;
-			transition: all 0.4s;
-		}
+}
+.swiper__dots-box {
+	position: absolute;
+	bottom: 30rpx;
+	left: 0;
+	right: 0;
+	/* #ifndef APP-NVUE */
+	display: flex;
+	/* #endif */
+	flex: 1;
+	flex-direction: row;
+	justify-content: center;
+	align-items: center;
+	.swiper__dots-item {
+		width: 8rpx;
+		height: 8rpx;
+		border-radius: 100%;
+		margin-left: 6px;
+		background-color: rgba(255, 255, 255, 0.7);
+	}
+	.swiper__dots-long {
+		width: 35rpx;
+		height: 8rpx;
+		border-radius: 4rpx;
+		background-color: #ffff;
+		transition: all 0.4s;
 	}
-	.swiper-banner-msg{
+}
+.swiper-banner-msg {
+	width: 100%;
+	height: 54rpx;
+	box-sizing: border-box;
+	padding: 0 24rpx;
+	margin-top: 24rpx;
+	.content {
 		width: 100%;
 		height: 54rpx;
 		box-sizing: border-box;
-		padding: 0 24rpx;
-		margin-top: 24rpx;
-		.content{
-			width: 100%;
+		padding: 0 34rpx;
+		background-color: #fff0e9;
+		border-radius: 16rpx;
+		.item {
+			width: 33.33%;
 			height: 54rpx;
-			box-sizing: border-box;
-			padding: 0 34rpx;
-			background-color: #fff0e9;
-			border-radius: 16rpx;
-			.item{
-				width: 33.33%;
-				height: 54rpx;
-				line-height: 54rpx;
-				font-size: $font-size-24;
+			line-height: 54rpx;
+			font-size: $font-size-24;
+			color: $color-system;
+			float: left;
+			&.le {
+				text-align: left;
+			}
+			&.ce {
+				text-align: center;
+			}
+			&.ri {
+				text-align: right;
+			}
+			.iconfont {
 				color: $color-system;
-				float: left;
-				&.le{
-					text-align: left;
-				}
-				&.ce{
-					text-align: center;
-				}
-				&.ri{
-					text-align: right;
-				}
-				.iconfont{
-					color: $color-system;
-					font-size: $font-size-32;
-					.sm{
-						font-size: $font-size-26;
-					}
+				font-size: $font-size-32;
+				.sm {
+					font-size: $font-size-26;
 				}
 			}
 		}
 	}
+}
 </style>

+ 60 - 5
components/cm-module/homeIndex/pageSpecial.vue

@@ -3,9 +3,29 @@
 		<view class="container-pages clearfix">
 			<scroll-view scroll-x>
 				<view class="tui-goods__list">
-					<view class="tui-goods__item ross" v-if="isRossShow">
-						<view class="tui-goods__ross" @click="this.$api.navigateTo('/pages/supplier/user/my-shop?shopId=1378')">
-							<image class="ross-image" src="https://static.caimei365.com/app/img/ross/ross-image@3x.jpg" mode=""></image>
+					<view class="tui-goods__item ross" v-if="shopAdvert.length>0">
+						<swiper class="tui-goods__ross" 
+								circular 
+								@change="swiperChange"
+								:indicator-dots="false" 
+								:autoplay="true"
+								:interval="5000"
+								:duration="500"
+							>
+							<swiper-item v-for="(item, index) in shopAdvert" :key="item">
+								<view class="tui-goods__ross" @click="NavToDetailPage(item)">
+									<image class="ross-image" :src="item.appImage" mode=""></image>
+								</view>
+							</swiper-item>
+						</swiper>
+						<view class="swiper__dots-box">
+						    <view
+						        v-for="(item, idx) in shopAdvert"
+						        :key="idx"
+						        :class="[idx === current ? 'swiper__dots-long' : 'none']"
+						        :data-index="current"
+						        class="swiper__dots-item"
+						    ></view>
 						</view>
 					</view>
 					<view class="tui-goods__item" v-if="tempData.liveList != ''">
@@ -122,6 +142,7 @@ export default {
 	data() {
 		return {
 			tempData: {},
+			current: 0 ,// 切换轮播
 			iconLive: 'https://static.caimei365.com/app/img/icon/icon-live.gif'
 		}
 	},
@@ -148,12 +169,19 @@ export default {
 		this.initData(this.templateData)
 	},
 	computed: {
-		...mapState(['isRossShow'])
+		...mapState(['shopAdvert'])
 	},
 	methods: {
 		initData(data) {
 			this.tempData = data
 		},
+		swiperChange(e) {//轮播图切换
+			this.current = e.detail.current
+		},
+		NavToDetailPage(item) {
+			//跳转
+			this.$api.FlooryNavigateTo(item)
+		},
 		NavArticlePath(LINK) {
 			// 友盟埋点首页文章模块点击
 			if (process.env.NODE_ENV != 'development') {
@@ -280,12 +308,39 @@ export default {
 		padding: 17rpx;
 		&.ross{
 			padding: 0;
+			position: relative;
+			.swiper__dots-box{
+				position: absolute;
+				bottom: 30rpx;
+				left: 0;
+				right: 0;
+				/* #ifndef APP-NVUE */
+				display: flex;
+				/* #endif */
+				flex: 1;
+				flex-direction: row;
+				justify-content: center;
+				align-items: center;
+				.swiper__dots-item{
+					width: 8rpx;
+					height: 8rpx;
+					border-radius: 100%;
+					margin-left: 6px;
+					background-color:rgba(255,255,255,.7);
+				}
+				.swiper__dots-long{
+					width: 35rpx;
+					height: 8rpx;
+					border-radius: 4rpx;
+					background-color: #ffff;
+					transition: all 0.4s;
+				}
+			}
 		}
 		.tui-goods__ross{
 			width: 307rpx;
 			height: 460rpx;
 			text-align: center;
-			background-color: #F3920D;
 			line-height: 460rpx;
 			color: #fff;
 			font-size: 40rpx;

+ 3 - 3
components/cm-share-popup/cm-seller-modal.vue

@@ -78,7 +78,7 @@
 <script>
 export default {
     props: {
-        sellerUserId: {
+        suid: {
             type: Number,
             default: 0
         }
@@ -103,8 +103,8 @@ export default {
             uni.setStorageSync('sellerCardChange', 2)
         },
         initData() {
-            this.userId = this.sellerUserId || uni.getStorageSync('sellerUserId')
-            if (this.userId > 0) {
+            this.userId = this.suid || uni.getStorageSync('suid')
+            if(this.userId > 0) {
                 this.getUserInfo()
                 if (uni.getStorageSync('sellerCardChange') === 1) {
                     this.modal = true

+ 1 - 1
components/cm-share-popup/cm-share-popup.vue

@@ -107,7 +107,7 @@ export default {
                     this.posterData = { ...this.posterData, ...this.data }
                     const { data: qrCodeImage } = await generateWxUnlimited(this, {
                         pagePath: this.posterData.path,
-                        queryStr: 'sellerUserId=' + this.userInfo.userId + '&id=' + this.posterData.id
+                        queryStr: 'suid=' + this.userInfo.userId + '&id=' + this.posterData.id + '&spId=' + this.userInfo.serviceProviderId
                     })
                     this.posterData.qrCodeImage = qrCodeImage
                     switch (this.type) {

+ 68 - 68
main.js

@@ -1,68 +1,68 @@
-import Vue from 'vue'
-import store from './store'
-import App from './App'
-import './services/index.js'
-import * as Api from '@/common/config/caimeiApi.js'
-import * as Regs from '@/common/config/common.js'
-import { dateFormat } from './utils/util.js'
-import ResidenceTime from './plugins/simple-residence-time'
-import residence from './utils/residence.js'
-
-// 友盟
-import Uma from './plugins/uma'
-
-// 公共组件 全局组件
-import { msg, modal, prePage, boundingClientRect } from './utils/util'
-import cuCustom from './components/cm-custom/cu-custom.vue'
-import auCustom from './components/cm-custom/au-custom.vue'
-import cmCustom from './components/cm-custom/cm-custom.vue'
-import scrollTop from '@/components/cm-module/scrollTop/scrollTop.vue'
-import CityPicker from '@/components/mpvue-citypicker/mpvueCityPicker.vue' //全局注册地址组件
-
-
-Vue.component('cu-custom', cuCustom)
-Vue.component('au-custom', auCustom)
-Vue.component('cm-custom', cmCustom)
-Vue.component('scroll-top', scrollTop)
-Vue.component('city-Picker', CityPicker)
-
-Vue.prototype.$getStorage = function(key) {
-    var userParam = uni.getStorageSync(key)
-    if (userParam != null && userParam != '' && userParam != undefined) {
-        return userParam
-    } else {
-        return null
-    }
-}
-
-// 格式化时间
-Vue.filter('dateFormat', function(value) {
-    if (!value) return '未知'
-    if (value instanceof Date) {
-        return dateFormat(value, 'yyyy-MM-dd')
-    } else {
-        value = new Date(value)
-        return dateFormat(value, 'yyyy-MM-dd')
-    }
-})
-
-// Vue实例化
-Vue.config.productionTip = false
-Vue.prototype.$fire = new Vue()
-Vue.prototype.$store = store
-Vue.prototype.$util = { msg, prePage, modal, boundingClientRect }
-Vue.prototype.$api = Api
-Vue.prototype.$reg = Regs
-Vue.prototype.$Static = 'https://static.caimei365.com/app/img/'
-
-App.mpType = 'app'
-
-// 使用插件
-Vue.use(Uma)
-Vue.use(ResidenceTime, residence)
-
-
-const app = new Vue({
-    ...App
-})
-app.$mount()
+import Vue from 'vue'
+import store from './store'
+import App from './App'
+import './services/index.js'
+import * as Api from '@/common/config/caimeiApi.js'
+import * as Regs from '@/common/config/common.js'
+import { dateFormat } from './utils/util.js'
+import ResidenceTime from './plugins/simple-residence-time'
+import residence from './utils/residence.js'
+
+// 友盟
+import Uma from './plugins/uma'
+
+// 公共组件 全局组件
+import { msg, modal, prePage, boundingClientRect } from './utils/util'
+import cuCustom from './components/cm-custom/cu-custom.vue'
+import auCustom from './components/cm-custom/au-custom.vue'
+import cmCustom from './components/cm-custom/cm-custom.vue'
+import scrollTop from '@/components/cm-module/scrollTop/scrollTop.vue'
+import CityPicker from '@/components/mpvue-citypicker/mpvueCityPicker.vue' //全局注册地址组件
+
+
+Vue.component('cu-custom', cuCustom)
+Vue.component('au-custom', auCustom)
+Vue.component('cm-custom', cmCustom)
+Vue.component('scroll-top', scrollTop)
+Vue.component('city-Picker', CityPicker)
+
+Vue.prototype.$getStorage = function(key) {
+    var userParam = uni.getStorageSync(key)
+    if (userParam != null && userParam != '' && userParam != undefined) {
+        return userParam
+    } else {
+        return null
+    }
+}
+
+// 格式化时间
+Vue.filter('dateFormat', function(value) {
+    if (!value) return '未知'
+    if (value instanceof Date) {
+        return dateFormat(value, 'yyyy-MM-dd')
+    } else {
+        value = new Date(value)
+        return dateFormat(value, 'yyyy-MM-dd')
+    }
+})
+
+// Vue实例化
+Vue.config.productionTip = false
+Vue.prototype.$fire = new Vue()
+Vue.prototype.$store = store
+Vue.prototype.$util = { msg, prePage, modal, boundingClientRect }
+Vue.prototype.$api = Api
+Vue.prototype.$reg = Regs
+Vue.prototype.$Static = 'https://static.caimei365.com/app/img/'
+
+App.mpType = 'app'
+
+// 使用插件
+Vue.use(Uma)
+Vue.use(ResidenceTime, residence)
+
+
+const app = new Vue({
+    ...App
+})
+app.$mount()

+ 2 - 2
mixins/cmsMixins.js

@@ -6,8 +6,8 @@ const cmsMixins = {
 		
     },
     methods: {
-        cmsSysStatistics(cmsSysType,productId) {
-            this.ProductService.sYsStatisticsTypesSatisticsNumber({typeId:cmsSysType,productId:productId})
+        cmsSysStatistics(cmsSysType,bannerId) {
+            this.ProductService.sYsStatisticsTypesSatisticsNumber({typeId:cmsSysType,bannerId:bannerId})
                 .then(response => {
                     const map = {
 					    1: '首页轮播',

+ 1354 - 1349
pages.json

@@ -1,1349 +1,1354 @@
-{
-	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
-		{
-			"path": "pages/tabBar/home/index",
-			"style": {
-				"navigationBarTitleText": "采美采购商城",
-				"enablePullDownRefresh": true,
-				"backgroundColor": "#F28F31",
-				"backgroundTextStyle": "light",
-				"navigationStyle": "custom"
-			}
-		}, {
-			"path": "pages/tabBar/notice/index",
-			"style": {
-				"navigationBarTitleText": "消息通知",
-				"navigationStyle": "custom"
-			}
-		}, {
-			"path": "pages/tabBar/category/index",
-			"style": {
-				"navigationBarTitleText": "分类",
-				"navigationStyle": "custom"
-			}
-		}, {
-			"path": "pages/tabBar/cart/index",
-			"style": {
-				"navigationBarTitleText": "购物车",
-				"enablePullDownRefresh": true
-			}
-		}, {
-			"path": "pages/tabBar/user/user",
-			"style": {
-				"navigationBarTitleText": "我的",
-				"enablePullDownRefresh": true,
-				"navigationStyle": "custom"
-			}
-		}
-	],
-	"subPackages": [{
-			"root": "pages/service/", //信息服务模块
-			"pages": [{
-					"path": "aftersale",
-					"style": {
-						"navigationBarTitleText": "售后无忧"
-					}
-				},
-				{
-					"path": "service",
-					"style": {
-						"navigationBarTitleText": "采美365网"
-					}
-				},
-				{
-					"path": "shoppingnotice",
-					"style": {
-						"navigationBarTitleText": "购物须知"
-					}
-				},
-				{
-					"path": "sellconten",
-					"style": {
-						"navigationBarTitleText": "条款内容"
-					}
-				},
-				{
-					"path": "news-list",
-					"style": {
-						"navigationBarTitleText": "公告",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "news-detailes",
-					"style": {
-						"navigationBarTitleText": "公告内容"
-					}
-				},
-				{
-					"path": "certificate",
-					"style": {
-						"navigationBarTitleText": "资质证书"
-					}
-				}
-			]
-		},
-		{
-			"root": "pages/goods/", //商品模块
-			"pages": [
-				/*美体节临时页面*/
-				{
-					"path": "good-floor-temp",
-					"style": {
-						"navigationBarTitleText": "美体节",
-						"enablePullDownRefresh": true,
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "goods-instrument",
-					"style": {
-						"navigationBarTitleText": "项目仪器",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "goods-classify",
-					"style": {
-						"navigationBarTitleText": "商品列表",
-						"enablePullDownRefresh": true,
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "good-floorMore",
-					"style": {
-						"navigationBarTitleText": "更多楼层",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "good-floor",
-					"style": {
-						"navigationBarTitleText": "",
-						"enablePullDownRefresh": true,
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "goods-active",
-					"style": {
-						"navigationBarTitleText": "凑单商品",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "product",
-					"style": {
-						"navigationBarTitleText": "商品详情",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "instrument-details",
-					"style": {
-						"navigationBarTitleText": "项目仪器详情",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "cart",
-					"style": {
-						"navigationBarTitleText": "购物车",
-						"enablePullDownRefresh": true,
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "goods-doc-list",
-					"style": {
-						"navigationBarTitleText": "美业资料",
-						"enablePullDownRefresh": false
-					}
-				},
-				{
-					"path": "goods-doc-detail",
-					"style": {
-						"navigationBarTitleText": "美业资料详情",
-						"enablePullDownRefresh": false
-					}
-				},
-				{
-					"path": "goods-supporting",
-					"style": {
-						"navigationBarTitleText": "配套商品",
-						"enablePullDownRefresh": false
-					}
-				},
-				{
-					"path": "good-hot",
-					"style": {
-						"navigationBarTitleText": "新品橱窗",
-						"enablePullDownRefresh": false,
-						"navigationStyle": "custom"
-					}
-				},
-                {
-                	"path": "goods-file-preview",
-                	"style": {
-                		"navigationBarTitleText": "文件预览",
-                		"enablePullDownRefresh": false
-                	}
-                }
-			]
-		},
-		{
-			"root": "pages/login/", //注册登录模块
-			"pages": [{
-					"path": "register",
-					"style": {
-						"navigationBarTitleText": "机构注册",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "register-supplier",
-					"style": {
-						"navigationBarTitleText": "供应商注册",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "register-select",
-					"style": {
-						"navigationBarTitleText": "选择身份"
-					}
-				},
-				{
-					"path": "apply",
-					"style": {
-						"navigationBarTitleText": "升级资质机构",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "apply-supplier",
-					"style": {
-						"navigationBarTitleText": "修改申请资料",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "logincode",
-					"style": {
-						"navigationBarTitleText": "邀请码登录"
-					}
-				},
-				{
-					"path": "login",
-					"style": {
-						"navigationBarTitleText": "登录"
-					}
-				},
-				{
-					"path": "binding",
-					"style": {
-						"navigationBarTitleText": "注册信息"
-					}
-				},
-				{
-					"path": "bindwechat",
-					"style": {
-						"navigationBarTitleText": "绑定微信"
-					}
-				},
-				{
-					"path": "bindOperator",
-					"style": {
-						"navigationBarTitleText": "绑定运营人员"
-					}
-				},
-				{
-					"path": "information",
-					"style": {
-						"navigationBarTitleText": "修改资料",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "password",
-					"style": {
-						"navigationBarTitleText": "修改密码"
-					}
-				},
-                {
-                    "path": "supplier_login",
-                    "style": {
-                        "navigationBarTitleText": "美业参谋"
-                    }
-                }, {
-                    "path": "supplier_information",
-                    "style": {
-                        "navigationBarTitleText": "美业参谋"
-                    }
-                }
-			]
-		},
-		{
-			"root": "pages/user/", //机构个人中心模块
-			"pages": [{
-					"path": "account/account",
-					"style": {
-						"navigationBarTitleText": "账户余额明细",
-						"enablePullDownRefresh": true,
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "account/account-bean",
-					"style": {
-						"navigationBarTitleText": "采美豆明细",
-						"enablePullDownRefresh": true,
-						"navigationStyle": "custom" 
-					}
-				},
-				{
-					"path": "address/addressManage",
-					"style": {
-						"navigationBarTitleText": "添加新地址"
-					}
-				},
-				{
-					"path": "address/address",
-					"style": {
-						"navigationBarTitleText": "地址列表"
-					}
-				},
-				{
-					"path": "about/about",
-					"style": {
-						"navigationBarTitleText": "关于我们"
-					}
-				},
-				{
-					"path": "regularPurchase/regularPurchase",
-					"style": {
-						"navigationBarTitleText": "再次购买"
-					}
-				},
-				{
-					"path": "order/create-order",
-					"style": {
-						"navigationBarTitleText": "确认订单"
-					}
-				},
-				{
-					"path": "order/success",
-					"style": {
-						"navigationBarTitleText": "支付结果",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "order/order-success",
-					"style": {
-						"navigationBarTitleText": "支付结果",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "order/order-success-tips",
-					"style": {
-						"navigationBarTitleText": "支付结果",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "order/order-payunder",
-					"style": {
-						"navigationBarTitleText": "线下转账"
-					}
-				},
-				{
-					"path": "order/order-pay-list",
-					"style": {
-						"navigationBarTitleText": "支付订单"
-					}
-				},
-				{
-					"path": "order/order-pay",
-					"style": {
-						"navigationBarTitleText": "收银台",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "order/orderShareLogin",
-					"style": {
-						"navigationBarTitleText": "输入分享码"
-					}
-				},
-				{
-					"path": "order/order-sharelogin",
-					"style": {
-						"navigationBarTitleText": "查看订单"
-					}
-				},
-				{
-					"path": "order/order-list",
-					"style": {
-						"navigationBarTitleText": "我的订单",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "order/search-order",
-					"style": {
-						"navigationBarTitleText": "订单搜索"
-					}
-				},
-				{
-					"path": "order/order-details",
-					"style": {
-						"navigationBarTitleText": "订单详情",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "order/order-sharedetails",
-					"style": {
-						"navigationBarTitleText": "订单详情"
-					}
-				},
-				{
-					"path": "order/order-addpay",
-					"style": {
-						"navigationBarTitleText": "上传支付凭证"
-					}
-				},
-				{
-					"path": "order/order-logistics",
-					"style": {
-						"navigationBarTitleText": "物流信息"
-					}
-				},
-				{
-					"path": "operator/list",
-					"style": {
-						"navigationBarTitleText": "运营人员管理"
-					}
-				},
-				{
-					"path": "operator/addoperator",
-					"style": {
-						"navigationBarTitleText": "添加运营人员"
-					}
-				},
-				{
-					"path": "setting/setting",
-					"style": {
-						"navigationBarTitleText": "账户设置"
-					}
-				},
-				{
-					"path": "setting/phone",
-					"style": {
-						"navigationBarTitleText": "更换手机号"
-					}
-				},
-				{
-					"path": "coupon/coupon",
-					"style": {
-						"navigationBarTitleText": "优惠券",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "coupon/coupon-collection",
-					"style": {
-						"navigationBarTitleText": "领券中心",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "coupon/coupon-exchange",
-					"style": {
-						"navigationBarTitleText": "兑换优惠券"
-					}
-				},
-				{
-					"path": "coupon/coupon-product",
-					"style": {
-						"navigationBarTitleText": "活动商品",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "coupon/coupon-activity",
-					"style": {
-						"navigationBarTitleText": "采美云上美博会",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "collection/collection",
-					"style": {
-						"navigationBarTitleText": "收藏商品",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "member/member",
-					"style": {
-						"navigationBarTitleText": "采美超级会员",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "member/member-copy",
-					"style": {
-						"navigationBarTitleText": "采美超级会员",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "member/member-renew",
-					"style": {
-						"navigationBarTitleText": "购买超级会员"
-					}
-				},
-				{
-					"path": "member/member-record",
-					"style": {
-						"navigationBarTitleText": "购买记录",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "member/member-pay",
-					"style": {
-						"navigationBarTitleText": "支付超级会员"
-					}
-				},
-				{
-					"path": "member/member-product",
-					"style": {
-						"navigationBarTitleText": "专享价商品",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "pay/card-list",
-					"style": {
-						"navigationBarTitleText": "银行卡"
-					}
-				},
-				{
-					"path": "pay/card-sus-list",
-					"style": {
-						"navigationBarTitleText": "支持银行"
-					}
-				},
-				{
-					"path": "pay/card-add",
-					"style": {
-						"navigationBarTitleText": "添加银行卡"
-					}
-				},
-				{
-					"path": "pay/card-comfirm",
-					"style": {
-						"navigationBarTitleText": "确认信息"
-					}
-				},
-				{
-					"path": "pay/card-comfirm-sub",
-					"style": {
-						"navigationBarTitleText": "输入短信验证码"
-					}
-				},
-				{
-					"path": "pay/card-order",
-					"style": {
-						"navigationBarTitleText": "收银台",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "pay/card-under",
-					"style": {
-						"navigationBarTitleText": "线下转账"
-					}
-				}
-				
-			]
-		},
-		{
-			"root": "pages/notice/", //搜索分包模块
-			"pages": [
-				{
-					"path": "club/notice-order",
-					"style": {
-						"navigationBarTitleText": "交易物流",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "club/notice-users",
-					"style": {
-						"navigationBarTitleText": "账户通知",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "club/notice-serve",
-					"style": {
-						"navigationBarTitleText": "服务通知",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "club/notice-coupon",
-					"style": {
-						"navigationBarTitleText": "优惠促销",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "shop/notice-users",
-					"style": {
-						"navigationBarTitleText": "账户通知",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "shop/notice-serve",
-					"style": {
-						"navigationBarTitleText": "服务通知",
-						"enablePullDownRefresh": true
-					}
-				}
-			]
-		},
-		{
-			"root": "pages/seller/",
-			"pages": [
-				{
-					"path": "index/index",
-					"style": {
-						"navigationBarTitleText": "采美采购商城",
-						"enablePullDownRefresh": true,
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "login/login",
-					"style": {
-						"navigationBarTitleText": "登录",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "cart/cart",
-					"style": {
-						"navigationBarTitleText": "购物车"
-					}
-				},
-				{
-					"path": "cart/buyagain",
-					"style": {
-						"navigationBarTitleText": "再次购买"
-					}
-				},
-				{
-					"path": "cart/immediately",
-					"style": {
-						"navigationBarTitleText": "立即下单"
-					}
-				},
-				{
-					"path": "cart/second",
-					"style": {
-						"navigationBarTitleText": "二手下单"
-					}
-				},
-				{
-					"path": "cart/coupon",
-					"style": {
-						"navigationBarTitleText": "优惠券列表",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "cart/coupon-share",
-					"style": {
-						"navigationBarTitleText": "购买优惠券"
-					}
-				},
-				{
-					"path": "order/create-order",
-					"style": {
-						"navigationBarTitleText": "确认订单"
-					}
-				},
-				{
-					"path": "order/create-recharge-order",
-					"style": {
-						"navigationBarTitleText": "确认订单"
-					}
-				},
-				{
-					"path": "order/order-details",
-					"style": {
-						"navigationBarTitleText": "订单详情",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "order/order-club-details",
-					"style": {
-						"navigationBarTitleText": "订单详情",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "order/order-list",
-					"style": {
-						"navigationBarTitleText": "订单列表",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "club/list",
-					"style": {
-						"navigationBarTitleText": "机构列表",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "club/stayClub-list",
-					"style": {
-						"navigationBarTitleText": "待注册机构"
-					}
-				},
-				{
-					"path": "club/club-list",
-					"style": {
-						"navigationBarTitleText": "我的机构"
-					}
-				},
-				{
-					"path": "club/club-portrait",
-					"style": {
-						"navigationBarTitleText": "机构画像"
-					}
-				},
-				{
-					"path": "club/club-visit",
-					"style": {
-						"navigationBarTitleText": "访问记录",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "club/club-visit-detail",
-					"style": { 
-						"navigationBarTitleText": "访问详情"
-					}
-				},
-				{
-					"path": "club/allClub-list",
-					"style": {
-						"navigationBarTitleText": "所有机构"
-					}
-				},
-				{
-					"path": "club/addoperator",
-					"style": {
-						"navigationBarTitleText": "邀请运营人员"
-					}
-				},
-				{
-					"path": "club/club-info",
-					"style": {
-						"navigationBarTitleText": "商城访问记录"
-					}
-				},
-				{
-					"path": "club/club-detail",
-					"style": {
-						"navigationBarTitleText": "资料详情"
-					}
-				},
-				{
-					"path": "login/register",
-					"style": {
-						"navigationBarTitleText": "拉机构上线",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "login/register-select",
-					"style": {
-						"navigationBarTitleText": "拉机构上线"
-					}
-				},
-				{
-					"path": "login/register-general",
-					"style": {
-						"navigationBarTitleText": "个人机构"
-					}
-				},
-				{
-					"path": "login/register-member",
-					"style": {
-						"navigationBarTitleText": "资质机构"
-					}
-				},
-				{
-					"path": "login/information",
-					"style": {
-						"navigationBarTitleText": "修改资料",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "login/apply",
-					"style": {
-						"navigationBarTitleText": "修改申请信息",
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "order/order-historylist",
-					"style": {
-						"navigationBarTitleText": "订单列表"
-					}
-				}, {
-					"path": "order/search-order",
-					"style": {
-						"navigationBarTitleText": "订单搜索"
-					}
-				},
-				{
-					"path": "address/address",
-					"style": {
-						"navigationBarTitleText": "选择地址"
-					}
-				},
-				{
-					"path": "address/addressManage",
-					"style": {
-						"navigationBarTitleText": "添加地址"
-					}
-				},
-				{
-					"path": "remarks/list",
-					"style": {
-						"navigationBarTitleText": "注册客户咨询记录"
-					}
-				},
-				{
-					"path": "remarks/add",
-					"style": {
-						"navigationBarTitleText": "添加记录"
-					}
-				},
-				{
-					"path": "remarks/details",
-					"style": {
-						"navigationBarTitleText": "记录详情"
-					}
-				},
-				{
-					"path": "remarks/customer-list",
-					"style": {
-						"navigationBarTitleText": "选择咨询人"
-					}
-				},
-				{
-					"path": "remarks/record-list",
-					"style": {
-						"navigationBarTitleText": "未注册客户咨询记录"
-					}
-				},
-				{
-					"path": "remarks/add-record",
-					"style": {
-						"navigationBarTitleText": "添加记录"
-					}
-				},
-				{
-					"path": "remarks/record-details",
-					"style": {
-						"navigationBarTitleText": "记录详情"
-					}
-				},
-				{
-					"path": "remarks/report-add",
-					"style": {
-						"navigationBarTitleText": "新建报备"
-					}
-				},
-				{
-					"path": "remarks/report-details",
-					"style": {
-						"navigationBarTitleText": "报备详情"
-					}
-				},
-				{
-					"path": "remarks/report-list",
-					"style": {
-						"navigationBarTitleText": "注册客户报备记录"
-					}
-				},
-				{
-					"path": "remarks/report-visitor-list",
-					"style": {
-						"navigationBarTitleText": "报备记录"
-					}
-				},
-				{
-					"path": "remarks/relation-consult-list",
-					"style": {
-						"navigationBarTitleText": "关联咨询记录"
-					}
-				},
-				{
-					"path": "remarks/relation-visitor-list",
-					"style": {
-						"navigationBarTitleText": "关联咨询记录"
-					}
-				},
-                {
-                	"path": "remarks/business-card",
-                	"style": {
-                		"navigationBarTitleText": "我的名片"
-                	}
-                },
-                {
-                	"path": "remarks/mine-qrcode",
-                	"style": {
-                		"navigationBarTitleText": "二维码"
-                	}
-                },
-                {
-                	"path": "remarks/mine-card",
-                	"style": {
-                		"navigationBarTitleText": "我的名片"
-                	}
-                },
-                {
-                	"path": "remarks/institutional-activity-analysis",
-                	"style": {
-                		"navigationBarTitleText": "机构活跃分析",
-                        "enablePullDownRefresh": true,
-                        "navigationStyle": "custom"
-                	}
-                },
-                {
-                    "path" : "notice/service/service",
-                    "style" : {
-                        "navigationBarTitleText": "服务通知",
-                        "enablePullDownRefresh": true
-                    }
-                },
-                {
-                    "path" : "notice/service/Institutional_visits",
-                    "style" : {
-                        "navigationBarTitleText": "机构访问通知",
-                        "enablePullDownRefresh": true
-                    }
-                },
-                {
-                    "path" : "notice/service/visits_details",
-                    "style" : {
-                        "navigationBarTitleText": "访问详情",
-                        "enablePullDownRefresh": true
-                    }
-                }
-            ]
-		},
-		{
-			"root": "pages/h5/", //活动分包模块
-			"pages": [{
-					"path": "activity/activity",
-					"style": {
-						"navigationBarTitleText": ""
-					}
-				},
-				{
-					"path": "activity/activity_mid",
-					"style": {
-						"navigationBarTitleText": "年中大促",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "activity/couponExp",
-					"style": {
-						"navigationBarTitleText": "优惠券介绍",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "activity/activity-topic",
-					"style": {
-						"navigationBarTitleText": "活动专题",
-						"enablePullDownRefresh": true
-					}
-				},
-                {
-                	"path": "activity/quick-operation",
-                	"style": {
-                		"navigationBarTitleText": "",
-                		"enablePullDownRefresh": true
-                	}
-                },
-				{
-					"path": "activity/activity-detail",
-					"style": {
-						"navigationBarTitleText": "活动专题",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "activity/activity-floorMore",
-					"style": {
-						"navigationBarTitleText": "更多",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "article/page",
-					"style": {
-						"navigationBarTitleText": "采美采购平台",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "article/path",
-					"style": {
-						"navigationBarTitleText": "采美采购平台",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "article/page-image",
-					"style": {
-						"navigationBarTitleText": "采美采购平台"
-					}
-				},
-				{
-					"path": "article/path-live",
-					"style": {
-						"navigationBarTitleText": "采美采购平台",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "activity/activity-list",
-					"style": {
-						"navigationBarTitleText": "商品专题",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "other/repair",
-					"style": {
-						"navigationBarTitleText": "维修"
-					}
-				},
-				{
-					"path": "other/brand",
-					"style": {
-						"navigationBarTitleText": "品牌招商"
-					}
-				},
-				{
-					"path": "other/brands",
-					"style": {
-						"navigationBarTitleText": "品牌招商"
-					}
-				},
-				{
-					"path": "other/attestation",
-					"style": {
-						"navigationBarTitleText": "采美认证通"
-					}
-				}
-			]
-		}, {
-			"root": "pages/search/", //搜索分包模块
-			"pages": [{
-				"path": "search",
-				"style": {
-					"navigationBarTitleText": "搜索"
-				}
-			}, {
-				"path": "search-supplier",
-				"style": {
-					"navigationBarTitleText": "搜索供应商"
-				}
-			}, {
-				"path": "search-instrument",
-				"style": {
-					"navigationBarTitleText": "搜索仪器"
-				}
-			}, {
-				"path": "search-second",
-				"style": {
-					"navigationBarTitleText": "二手搜索"
-				}
-			}, {
-				"path": "search-library",
-				"style": {
-					"navigationBarTitleText": "搜索",
-                    "enablePullDownRefresh": false
-				}
-			}]
-		}, {
-			"root": "pages/second/",
-			"pages": [{
-					"path": "form/introduce",
-					"style": {
-						"navigationBarTitleText": "二手市场介绍",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "form/form",
-					"style": {
-						"navigationBarTitleText": "发布二手估价商品"
-					}
-				},
-				{
-					"path": "form/form-seller",
-					"style": {
-						"navigationBarTitleText": "发布二手预成交商品"
-					}
-				},
-				{
-					"path": "form/form-presale",
-					"style": {
-						"navigationBarTitleText": "发布二手估价商品"
-					}
-				},
-				{
-					"path": "form/form-select",
-					"style": {
-						"navigationBarTitleText": "选择发布类型"
-					}
-				},
-				{
-					"path": "product/product-list",
-					"style": {
-						"navigationBarTitleText": "二手商品",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "product/product-details",
-					"style": {
-						"navigationBarTitleText": "商品详情",
-						"enablePullDownRefresh": true,
-						"navigationStyle": "custom"
-					}
-				}
-			]
-		},
-		{
-			"root": "pages/supplier/",
-			"pages": [{
-					"path": "index/index",
-					"style": {
-						"navigationBarTitleText": "采美采购商城",
-						"enablePullDownRefresh": true,
-						"navigationStyle": "custom"
-					}
-				}, {
-					"path": "login/bind-operator",
-					"style": {
-						"navigationBarTitleText": "绑定微信"
-					}
-				},
-				{
-					"path": "user/my-product",
-					"style": {
-						"navigationBarTitleText": "我的商品",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "user/my-shop",
-					"style": {
-						"navigationBarTitleText": "店铺主页",
-						"navigationStyle": "custom"
-					}
-				}, {
-					"path": "login/share-login",
-					"style": {
-						"navigationBarTitleText": "查看订单"
-					}
-				}, {
-					"path": "login/share-info",
-					"style": {
-						"navigationBarTitleText": "订单详情",
-						"navigationStyle": "custom"
-					}
-				}, {
-					"path": "order/order-details",
-					"style": {
-						"navigationBarTitleText": "订单详情",
-						"enablePullDownRefresh": true
-					}
-				}, {
-					"path": "user/supplier",
-					"style": {
-						"navigationBarTitleText": "供应商信息"
-					}
-				}, {
-					"path": "order/order-list",
-					"style": {
-						"navigationBarTitleText": "我的订单",
-						"enablePullDownRefresh": true
-					}
-				}, {
-					"path": "order/order-service-details",
-					"style": {
-						"navigationBarTitleText": "订单详情",
-						"navigationStyle": "custom",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "deliver/add-logistics",
-					"style": {
-						"navigationBarTitleText": "录入物流信息"
-					}
-				},
-				{
-					"path": "deliver/qualifications-add",
-					"style": {
-						"navigationBarTitleText": "上传商品资质"
-					}
-				},
-				{
-					"path": "deliver/qualifications-details",
-					"style": {
-						"navigationBarTitleText": "商品资质"
-					}
-				},
-				{
-					"path": "deliver/deliver-goods",
-					"style": {
-						"navigationBarTitleText": "发货",
-						"enablePullDownRefresh": true
-					}
-				},
-				{
-					"path": "deliver/deliver-record",
-					"style": {
-						"navigationBarTitleText": "发货记录",
-						"enablePullDownRefresh": true,
-						"navigationStyle": "custom"
-					}
-				},
-				{
-					"path": "deliver/logistics-list",
-					"style": {
-						"navigationBarTitleText": "物流公司"
-					}
-				},
-				{
-					"path": "user/setting/password",
-					"style": {
-						"navigationBarTitleText": "修改密码"
-					}
-				},
-				{
-					"path": "user/setting/phone",
-					"style": {
-						"navigationBarTitleText": "更换手机号"
-					}
-				},
-				{
-					"path": "user/setting/setting",
-					"style": {
-						"navigationBarTitleText": "账户设置"
-					}
-				},
-				{
-					"path": "user/operator/list",
-					"style": {
-						"navigationBarTitleText": "运营人员管理"
-					}
-				},
-				{
-					"path": "user/operator/addoperator",
-					"style": {
-						"navigationBarTitleText": "添加运营人员"
-					}
-				},
-				{
-					"path": "user/information",
-					"style": {
-						"navigationBarTitleText": "资料信息"
-					}
-				}
-			]
-		}
-	],
-	"tabBar": {
-		"height": "80",
-		"color": "#999999",
-		"selectedColor": "#FF5B00",
-		"borderStyle": "black",
-		"backgroundColor": "#ffffff",
-		"list": [{
-				"pagePath": "pages/tabBar/home/index",
-				"iconPath": "static/icon-home@3x.png",
-				"selectedIconPath": "static/icon-home-active@3x.png",
-				"text": "商城"
-			}, {
-				"pagePath": "pages/tabBar/category/index",
-				"iconPath": "static/icon-sort@3x.png",
-				"selectedIconPath": "static/icon-sort-active@3x.png",
-				"text": "分类"
-			},
-			{
-				"pagePath": "pages/tabBar/notice/index",
-				"iconPath": "static/icon-news@3x.png",
-				"selectedIconPath": "static/icon-news-active@3x.png",
-				"text": "消息"
-			},
-			{
-				"pagePath": "pages/tabBar/cart/index",
-				"iconPath": "static/icon-cart@3x.png",
-				"selectedIconPath": "static/icon-cart-active@3x.png",
-				"text": "购物车"
-			},
-			{
-				"pagePath": "pages/tabBar/user/user",
-				"iconPath": "static/icon-user@3x.png",
-				"selectedIconPath": "static/icon-user-active@3x.png",
-				"text": "我的"
-			}
-		]
-	},
-	"easycom": {
-		"autoscan": true,
-		"custom": {
-			"tui-(.*)": "@/components/thorui/tui-$1/tui-$1.vue"
-		}
-	},
-	"globalStyle": {
-		"navigationBarTextStyle": "black",
-		"navigationBarTitleText": "采美采购商城",
-		"navigationBarBackgroundColor": "#FFFFFF",
-		"backgroundColor": "#FFFFFF"
-	},
-	"condition": { //模式配置,仅开发期间生效
-		"current": 0, //当前激活的模式(list 的索引项)
-		"list": [{
-			"name": "", //模式名称
-			"path": "", //启动页面,必选
-			"query": "" //启动参数,在页面的onLoad函数里面得到
-		}]
-	}
-}
+{
+	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+		{
+			"path": "pages/tabBar/home/index",
+			"style": {
+				"navigationBarTitleText": "采美采购商城",
+				"enablePullDownRefresh": true,
+				"backgroundColor": "#F28F31",
+				"backgroundTextStyle": "light",
+				"navigationStyle": "custom"
+			}
+		}, {
+			"path": "pages/tabBar/notice/index",
+			"style": {
+				"navigationBarTitleText": "消息通知",
+				"navigationStyle": "custom"
+			}
+		}, {
+			"path": "pages/tabBar/category/index",
+			"style": {
+				"navigationBarTitleText": "分类",
+				"navigationStyle": "custom"
+			}
+		}, {
+			"path": "pages/tabBar/cart/index",
+			"style": {
+				"navigationBarTitleText": "购物车",
+				"enablePullDownRefresh": true
+			}
+		}, {
+			"path": "pages/tabBar/user/user",
+			"style": {
+				"navigationBarTitleText": "我的",
+				"enablePullDownRefresh": true,
+				"navigationStyle": "custom"
+			}
+		}
+	],
+	"subPackages": [{
+			"root": "pages/service/", //信息服务模块
+			"pages": [{
+					"path": "aftersale",
+					"style": {
+						"navigationBarTitleText": "售后无忧"
+					}
+				},
+				{
+					"path": "service",
+					"style": {
+						"navigationBarTitleText": "采美365网"
+					}
+				},
+				{
+					"path": "shoppingnotice",
+					"style": {
+						"navigationBarTitleText": "购物须知"
+					}
+				},
+				{
+					"path": "sellconten",
+					"style": {
+						"navigationBarTitleText": "条款内容"
+					}
+				},
+				{
+					"path": "news-list",
+					"style": {
+						"navigationBarTitleText": "公告",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "news-detailes",
+					"style": {
+						"navigationBarTitleText": "公告内容"
+					}
+				},
+				{
+					"path": "certificate",
+					"style": {
+						"navigationBarTitleText": "资质证书"
+					}
+				}
+			]
+		},
+		{
+			"root": "pages/goods/", //商品模块
+			"pages": [
+				/*美体节临时页面*/
+				{
+					"path": "good-floor-temp",
+					"style": {
+						"navigationBarTitleText": "美体节",
+						"enablePullDownRefresh": true,
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "goods-instrument",
+					"style": {
+						"navigationBarTitleText": "项目仪器",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "goods-classify",
+					"style": {
+						"navigationBarTitleText": "商品列表",
+						"enablePullDownRefresh": true,
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "good-floorMore",
+					"style": {
+						"navigationBarTitleText": "更多楼层",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "good-floor",
+					"style": {
+						"navigationBarTitleText": "",
+						"enablePullDownRefresh": true,
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "goods-active",
+					"style": {
+						"navigationBarTitleText": "凑单商品",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "product",
+					"style": {
+						"navigationBarTitleText": "商品详情",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "instrument-details",
+					"style": {
+						"navigationBarTitleText": "项目仪器详情",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "cart",
+					"style": {
+						"navigationBarTitleText": "购物车",
+						"enablePullDownRefresh": true,
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "goods-doc-list",
+					"style": {
+						"navigationBarTitleText": "美业资料",
+						"enablePullDownRefresh": false
+					}
+				},
+				{
+					"path": "goods-doc-detail",
+					"style": {
+						"navigationBarTitleText": "美业资料详情",
+						"enablePullDownRefresh": false
+					}
+				},
+				{
+					"path": "goods-supporting",
+					"style": {
+						"navigationBarTitleText": "配套商品",
+						"enablePullDownRefresh": false
+					}
+				},
+				{
+					"path": "good-hot",
+					"style": {
+						"navigationBarTitleText": "新品橱窗",
+						"enablePullDownRefresh": false,
+						"navigationStyle": "custom"
+					}
+				},
+                {
+                	"path": "goods-file-preview",
+                	"style": {
+                		"navigationBarTitleText": "文件预览",
+                		"enablePullDownRefresh": false
+                	}
+                }
+			]
+		},
+		{
+			"root": "pages/login/", //注册登录模块
+			"pages": [{
+					"path": "register",
+					"style": {
+						"navigationBarTitleText": "机构注册",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "register-supplier",
+					"style": {
+						"navigationBarTitleText": "供应商注册",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "register-select",
+					"style": {
+						"navigationBarTitleText": "选择身份"
+					}
+				},
+				{
+					"path": "apply",
+					"style": {
+						"navigationBarTitleText": "升级资质机构",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "apply-supplier",
+					"style": {
+						"navigationBarTitleText": "修改申请资料",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "logincode",
+					"style": {
+						"navigationBarTitleText": "邀请码登录"
+					}
+				},
+				{
+					"path": "login",
+					"style": {
+						"navigationBarTitleText": "登录"
+					}
+				},
+				{
+					"path": "binding",
+					"style": {
+						"navigationBarTitleText": "注册信息"
+					}
+				},
+				{
+					"path": "bindwechat",
+					"style": {
+						"navigationBarTitleText": "绑定微信"
+					}
+				},
+				{
+					"path": "bindOperator",
+					"style": {
+						"navigationBarTitleText": "绑定运营人员"
+					}
+				},
+				{
+					"path": "information",
+					"style": {
+						"navigationBarTitleText": "修改资料",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "password",
+					"style": {
+						"navigationBarTitleText": "修改密码"
+					}
+				},
+                {
+                    "path": "supplier_login",
+                    "style": {
+                        "navigationBarTitleText": "美业参谋"
+                    }
+                }, {
+                    "path": "supplier_information",
+                    "style": {
+                        "navigationBarTitleText": "美业参谋"
+                    }
+                }, {
+                    "path": "supplier_more",
+                    "style": {
+                        "navigationBarTitleText": "美业参谋-更多"
+                    }
+                }
+			]
+		},
+		{
+			"root": "pages/user/", //机构个人中心模块
+			"pages": [{
+					"path": "account/account",
+					"style": {
+						"navigationBarTitleText": "账户余额明细",
+						"enablePullDownRefresh": true,
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "account/account-bean",
+					"style": {
+						"navigationBarTitleText": "采美豆明细",
+						"enablePullDownRefresh": true,
+						"navigationStyle": "custom" 
+					}
+				},
+				{
+					"path": "address/addressManage",
+					"style": {
+						"navigationBarTitleText": "添加新地址"
+					}
+				},
+				{
+					"path": "address/address",
+					"style": {
+						"navigationBarTitleText": "地址列表"
+					}
+				},
+				{
+					"path": "about/about",
+					"style": {
+						"navigationBarTitleText": "关于我们"
+					}
+				},
+				{
+					"path": "regularPurchase/regularPurchase",
+					"style": {
+						"navigationBarTitleText": "再次购买"
+					}
+				},
+				{
+					"path": "order/create-order",
+					"style": {
+						"navigationBarTitleText": "确认订单"
+					}
+				},
+				{
+					"path": "order/success",
+					"style": {
+						"navigationBarTitleText": "支付结果",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "order/order-success",
+					"style": {
+						"navigationBarTitleText": "支付结果",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "order/order-success-tips",
+					"style": {
+						"navigationBarTitleText": "支付结果",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "order/order-payunder",
+					"style": {
+						"navigationBarTitleText": "线下转账"
+					}
+				},
+				{
+					"path": "order/order-pay-list",
+					"style": {
+						"navigationBarTitleText": "支付订单"
+					}
+				},
+				{
+					"path": "order/order-pay",
+					"style": {
+						"navigationBarTitleText": "收银台",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "order/orderShareLogin",
+					"style": {
+						"navigationBarTitleText": "输入分享码"
+					}
+				},
+				{
+					"path": "order/order-sharelogin",
+					"style": {
+						"navigationBarTitleText": "查看订单"
+					}
+				},
+				{
+					"path": "order/order-list",
+					"style": {
+						"navigationBarTitleText": "我的订单",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "order/search-order",
+					"style": {
+						"navigationBarTitleText": "订单搜索"
+					}
+				},
+				{
+					"path": "order/order-details",
+					"style": {
+						"navigationBarTitleText": "订单详情",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "order/order-sharedetails",
+					"style": {
+						"navigationBarTitleText": "订单详情"
+					}
+				},
+				{
+					"path": "order/order-addpay",
+					"style": {
+						"navigationBarTitleText": "上传支付凭证"
+					}
+				},
+				{
+					"path": "order/order-logistics",
+					"style": {
+						"navigationBarTitleText": "物流信息"
+					}
+				},
+				{
+					"path": "operator/list",
+					"style": {
+						"navigationBarTitleText": "运营人员管理"
+					}
+				},
+				{
+					"path": "operator/addoperator",
+					"style": {
+						"navigationBarTitleText": "添加运营人员"
+					}
+				},
+				{
+					"path": "setting/setting",
+					"style": {
+						"navigationBarTitleText": "账户设置"
+					}
+				},
+				{
+					"path": "setting/phone",
+					"style": {
+						"navigationBarTitleText": "更换手机号"
+					}
+				},
+				{
+					"path": "coupon/coupon",
+					"style": {
+						"navigationBarTitleText": "优惠券",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "coupon/coupon-collection",
+					"style": {
+						"navigationBarTitleText": "领券中心",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "coupon/coupon-exchange",
+					"style": {
+						"navigationBarTitleText": "兑换优惠券"
+					}
+				},
+				{
+					"path": "coupon/coupon-product",
+					"style": {
+						"navigationBarTitleText": "活动商品",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "coupon/coupon-activity",
+					"style": {
+						"navigationBarTitleText": "采美云上美博会",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "collection/collection",
+					"style": {
+						"navigationBarTitleText": "收藏商品",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "member/member",
+					"style": {
+						"navigationBarTitleText": "采美超级会员",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "member/member-copy",
+					"style": {
+						"navigationBarTitleText": "采美超级会员",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "member/member-renew",
+					"style": {
+						"navigationBarTitleText": "购买超级会员"
+					}
+				},
+				{
+					"path": "member/member-record",
+					"style": {
+						"navigationBarTitleText": "购买记录",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "member/member-pay",
+					"style": {
+						"navigationBarTitleText": "支付超级会员"
+					}
+				},
+				{
+					"path": "member/member-product",
+					"style": {
+						"navigationBarTitleText": "专享价商品",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "pay/card-list",
+					"style": {
+						"navigationBarTitleText": "银行卡"
+					}
+				},
+				{
+					"path": "pay/card-sus-list",
+					"style": {
+						"navigationBarTitleText": "支持银行"
+					}
+				},
+				{
+					"path": "pay/card-add",
+					"style": {
+						"navigationBarTitleText": "添加银行卡"
+					}
+				},
+				{
+					"path": "pay/card-comfirm",
+					"style": {
+						"navigationBarTitleText": "确认信息"
+					}
+				},
+				{
+					"path": "pay/card-comfirm-sub",
+					"style": {
+						"navigationBarTitleText": "输入短信验证码"
+					}
+				},
+				{
+					"path": "pay/card-order",
+					"style": {
+						"navigationBarTitleText": "收银台",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "pay/card-under",
+					"style": {
+						"navigationBarTitleText": "线下转账"
+					}
+				}
+				
+			]
+		},
+		{
+			"root": "pages/notice/", //搜索分包模块
+			"pages": [
+				{
+					"path": "club/notice-order",
+					"style": {
+						"navigationBarTitleText": "交易物流",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "club/notice-users",
+					"style": {
+						"navigationBarTitleText": "账户通知",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "club/notice-serve",
+					"style": {
+						"navigationBarTitleText": "服务通知",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "club/notice-coupon",
+					"style": {
+						"navigationBarTitleText": "优惠促销",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "shop/notice-users",
+					"style": {
+						"navigationBarTitleText": "账户通知",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "shop/notice-serve",
+					"style": {
+						"navigationBarTitleText": "服务通知",
+						"enablePullDownRefresh": true
+					}
+				}
+			]
+		},
+		{
+			"root": "pages/seller/",
+			"pages": [
+				{
+					"path": "index/index",
+					"style": {
+						"navigationBarTitleText": "采美采购商城",
+						"enablePullDownRefresh": true,
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "login/login",
+					"style": {
+						"navigationBarTitleText": "登录",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "cart/cart",
+					"style": {
+						"navigationBarTitleText": "购物车"
+					}
+				},
+				{
+					"path": "cart/buyagain",
+					"style": {
+						"navigationBarTitleText": "再次购买"
+					}
+				},
+				{
+					"path": "cart/immediately",
+					"style": {
+						"navigationBarTitleText": "立即下单"
+					}
+				},
+				{
+					"path": "cart/second",
+					"style": {
+						"navigationBarTitleText": "二手下单"
+					}
+				},
+				{
+					"path": "cart/coupon",
+					"style": {
+						"navigationBarTitleText": "优惠券列表",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "cart/coupon-share",
+					"style": {
+						"navigationBarTitleText": "购买优惠券"
+					}
+				},
+				{
+					"path": "order/create-order",
+					"style": {
+						"navigationBarTitleText": "确认订单"
+					}
+				},
+				{
+					"path": "order/create-recharge-order",
+					"style": {
+						"navigationBarTitleText": "确认订单"
+					}
+				},
+				{
+					"path": "order/order-details",
+					"style": {
+						"navigationBarTitleText": "订单详情",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "order/order-club-details",
+					"style": {
+						"navigationBarTitleText": "订单详情",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "order/order-list",
+					"style": {
+						"navigationBarTitleText": "订单列表",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "club/list",
+					"style": {
+						"navigationBarTitleText": "机构列表",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "club/stayClub-list",
+					"style": {
+						"navigationBarTitleText": "待注册机构"
+					}
+				},
+				{
+					"path": "club/club-list",
+					"style": {
+						"navigationBarTitleText": "我的机构"
+					}
+				},
+				{
+					"path": "club/club-portrait",
+					"style": {
+						"navigationBarTitleText": "机构画像"
+					}
+				},
+				{
+					"path": "club/club-visit",
+					"style": {
+						"navigationBarTitleText": "访问记录",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "club/club-visit-detail",
+					"style": { 
+						"navigationBarTitleText": "访问详情"
+					}
+				},
+				{
+					"path": "club/allClub-list",
+					"style": {
+						"navigationBarTitleText": "所有机构"
+					}
+				},
+				{
+					"path": "club/addoperator",
+					"style": {
+						"navigationBarTitleText": "邀请运营人员"
+					}
+				},
+				{
+					"path": "club/club-info",
+					"style": {
+						"navigationBarTitleText": "商城访问记录"
+					}
+				},
+				{
+					"path": "club/club-detail",
+					"style": {
+						"navigationBarTitleText": "资料详情"
+					}
+				},
+				{
+					"path": "login/register",
+					"style": {
+						"navigationBarTitleText": "拉机构上线",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "login/register-select",
+					"style": {
+						"navigationBarTitleText": "拉机构上线"
+					}
+				},
+				{
+					"path": "login/register-general",
+					"style": {
+						"navigationBarTitleText": "个人机构"
+					}
+				},
+				{
+					"path": "login/register-member",
+					"style": {
+						"navigationBarTitleText": "资质机构"
+					}
+				},
+				{
+					"path": "login/information",
+					"style": {
+						"navigationBarTitleText": "修改资料",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "login/apply",
+					"style": {
+						"navigationBarTitleText": "修改申请信息",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "order/order-historylist",
+					"style": {
+						"navigationBarTitleText": "订单列表"
+					}
+				}, {
+					"path": "order/search-order",
+					"style": {
+						"navigationBarTitleText": "订单搜索"
+					}
+				},
+				{
+					"path": "address/address",
+					"style": {
+						"navigationBarTitleText": "选择地址"
+					}
+				},
+				{
+					"path": "address/addressManage",
+					"style": {
+						"navigationBarTitleText": "添加地址"
+					}
+				},
+				{
+					"path": "remarks/list",
+					"style": {
+						"navigationBarTitleText": "注册客户咨询记录"
+					}
+				},
+				{
+					"path": "remarks/add",
+					"style": {
+						"navigationBarTitleText": "添加记录"
+					}
+				},
+				{
+					"path": "remarks/details",
+					"style": {
+						"navigationBarTitleText": "记录详情"
+					}
+				},
+				{
+					"path": "remarks/customer-list",
+					"style": {
+						"navigationBarTitleText": "选择咨询人"
+					}
+				},
+				{
+					"path": "remarks/record-list",
+					"style": {
+						"navigationBarTitleText": "未注册客户咨询记录"
+					}
+				},
+				{
+					"path": "remarks/add-record",
+					"style": {
+						"navigationBarTitleText": "添加记录"
+					}
+				},
+				{
+					"path": "remarks/record-details",
+					"style": {
+						"navigationBarTitleText": "记录详情"
+					}
+				},
+				{
+					"path": "remarks/report-add",
+					"style": {
+						"navigationBarTitleText": "新建报备"
+					}
+				},
+				{
+					"path": "remarks/report-details",
+					"style": {
+						"navigationBarTitleText": "报备详情"
+					}
+				},
+				{
+					"path": "remarks/report-list",
+					"style": {
+						"navigationBarTitleText": "注册客户报备记录"
+					}
+				},
+				{
+					"path": "remarks/report-visitor-list",
+					"style": {
+						"navigationBarTitleText": "报备记录"
+					}
+				},
+				{
+					"path": "remarks/relation-consult-list",
+					"style": {
+						"navigationBarTitleText": "关联咨询记录"
+					}
+				},
+				{
+					"path": "remarks/relation-visitor-list",
+					"style": {
+						"navigationBarTitleText": "关联咨询记录"
+					}
+				},
+                {
+                	"path": "remarks/business-card",
+                	"style": {
+                		"navigationBarTitleText": "我的名片"
+                	}
+                },
+                {
+                	"path": "remarks/mine-qrcode",
+                	"style": {
+                		"navigationBarTitleText": "二维码"
+                	}
+                },
+                {
+                	"path": "remarks/mine-card",
+                	"style": {
+                		"navigationBarTitleText": "我的名片"
+                	}
+                },
+                {
+                	"path": "remarks/institutional-activity-analysis",
+                	"style": {
+                		"navigationBarTitleText": "机构活跃分析",
+                        "enablePullDownRefresh": true,
+                        "navigationStyle": "custom"
+                	}
+                },
+                {
+                    "path" : "notice/service/service",
+                    "style" : {
+                        "navigationBarTitleText": "服务通知",
+                        "enablePullDownRefresh": true
+                    }
+                },
+                {
+                    "path" : "notice/service/Institutional_visits",
+                    "style" : {
+                        "navigationBarTitleText": "机构访问通知",
+                        "enablePullDownRefresh": true
+                    }
+                },
+                {
+                    "path" : "notice/service/visits_details",
+                    "style" : {
+                        "navigationBarTitleText": "访问详情",
+                        "enablePullDownRefresh": true
+                    }
+                }
+            ]
+		},
+		{
+			"root": "pages/h5/", //活动分包模块
+			"pages": [{
+					"path": "activity/activity",
+					"style": {
+						"navigationBarTitleText": ""
+					}
+				},
+				{
+					"path": "activity/activity_mid",
+					"style": {
+						"navigationBarTitleText": "年中大促",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "activity/couponExp",
+					"style": {
+						"navigationBarTitleText": "优惠券介绍",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "activity/activity-topic",
+					"style": {
+						"navigationBarTitleText": "活动专题",
+						"enablePullDownRefresh": true
+					}
+				},
+                {
+                	"path": "activity/quick-operation",
+                	"style": {
+                		"navigationBarTitleText": "",
+                		"enablePullDownRefresh": true
+                	}
+                },
+				{
+					"path": "activity/activity-detail",
+					"style": {
+						"navigationBarTitleText": "活动专题",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "activity/activity-floorMore",
+					"style": {
+						"navigationBarTitleText": "更多",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "article/page",
+					"style": {
+						"navigationBarTitleText": "采美采购平台",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "article/path",
+					"style": {
+						"navigationBarTitleText": "采美采购平台",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "article/page-image",
+					"style": {
+						"navigationBarTitleText": "采美采购平台"
+					}
+				},
+				{
+					"path": "article/path-live",
+					"style": {
+						"navigationBarTitleText": "采美采购平台",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "activity/activity-list",
+					"style": {
+						"navigationBarTitleText": "商品专题",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "other/repair",
+					"style": {
+						"navigationBarTitleText": "维修"
+					}
+				},
+				{
+					"path": "other/brand",
+					"style": {
+						"navigationBarTitleText": "品牌招商"
+					}
+				},
+				{
+					"path": "other/brands",
+					"style": {
+						"navigationBarTitleText": "品牌招商"
+					}
+				},
+				{
+					"path": "other/attestation",
+					"style": {
+						"navigationBarTitleText": "采美认证通"
+					}
+				}
+			]
+		}, {
+			"root": "pages/search/", //搜索分包模块
+			"pages": [{
+				"path": "search",
+				"style": {
+					"navigationBarTitleText": "搜索"
+				}
+			}, {
+				"path": "search-supplier",
+				"style": {
+					"navigationBarTitleText": "搜索供应商"
+				}
+			}, {
+				"path": "search-instrument",
+				"style": {
+					"navigationBarTitleText": "搜索仪器"
+				}
+			}, {
+				"path": "search-second",
+				"style": {
+					"navigationBarTitleText": "二手搜索"
+				}
+			}, {
+				"path": "search-library",
+				"style": {
+					"navigationBarTitleText": "搜索",
+                    "enablePullDownRefresh": false
+				}
+			}]
+		}, {
+			"root": "pages/second/",
+			"pages": [{
+					"path": "form/introduce",
+					"style": {
+						"navigationBarTitleText": "二手市场介绍",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "form/form",
+					"style": {
+						"navigationBarTitleText": "发布二手估价商品"
+					}
+				},
+				{
+					"path": "form/form-seller",
+					"style": {
+						"navigationBarTitleText": "发布二手预成交商品"
+					}
+				},
+				{
+					"path": "form/form-presale",
+					"style": {
+						"navigationBarTitleText": "发布二手估价商品"
+					}
+				},
+				{
+					"path": "form/form-select",
+					"style": {
+						"navigationBarTitleText": "选择发布类型"
+					}
+				},
+				{
+					"path": "product/product-list",
+					"style": {
+						"navigationBarTitleText": "二手商品",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "product/product-details",
+					"style": {
+						"navigationBarTitleText": "商品详情",
+						"enablePullDownRefresh": true,
+						"navigationStyle": "custom"
+					}
+				}
+			]
+		},
+		{
+			"root": "pages/supplier/",
+			"pages": [{
+					"path": "index/index",
+					"style": {
+						"navigationBarTitleText": "采美采购商城",
+						"enablePullDownRefresh": true,
+						"navigationStyle": "custom"
+					}
+				}, {
+					"path": "login/bind-operator",
+					"style": {
+						"navigationBarTitleText": "绑定微信"
+					}
+				},
+				{
+					"path": "user/my-product",
+					"style": {
+						"navigationBarTitleText": "我的商品",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "user/my-shop",
+					"style": {
+						"navigationBarTitleText": "店铺主页",
+						"navigationStyle": "custom"
+					}
+				}, {
+					"path": "login/share-login",
+					"style": {
+						"navigationBarTitleText": "查看订单"
+					}
+				}, {
+					"path": "login/share-info",
+					"style": {
+						"navigationBarTitleText": "订单详情",
+						"navigationStyle": "custom"
+					}
+				}, {
+					"path": "order/order-details",
+					"style": {
+						"navigationBarTitleText": "订单详情",
+						"enablePullDownRefresh": true
+					}
+				}, {
+					"path": "user/supplier",
+					"style": {
+						"navigationBarTitleText": "供应商信息"
+					}
+				}, {
+					"path": "order/order-list",
+					"style": {
+						"navigationBarTitleText": "我的订单",
+						"enablePullDownRefresh": true
+					}
+				}, {
+					"path": "order/order-service-details",
+					"style": {
+						"navigationBarTitleText": "订单详情",
+						"navigationStyle": "custom",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "deliver/add-logistics",
+					"style": {
+						"navigationBarTitleText": "录入物流信息"
+					}
+				},
+				{
+					"path": "deliver/qualifications-add",
+					"style": {
+						"navigationBarTitleText": "上传商品资质"
+					}
+				},
+				{
+					"path": "deliver/qualifications-details",
+					"style": {
+						"navigationBarTitleText": "商品资质"
+					}
+				},
+				{
+					"path": "deliver/deliver-goods",
+					"style": {
+						"navigationBarTitleText": "发货",
+						"enablePullDownRefresh": true
+					}
+				},
+				{
+					"path": "deliver/deliver-record",
+					"style": {
+						"navigationBarTitleText": "发货记录",
+						"enablePullDownRefresh": true,
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "deliver/logistics-list",
+					"style": {
+						"navigationBarTitleText": "物流公司"
+					}
+				},
+				{
+					"path": "user/setting/password",
+					"style": {
+						"navigationBarTitleText": "修改密码"
+					}
+				},
+				{
+					"path": "user/setting/phone",
+					"style": {
+						"navigationBarTitleText": "更换手机号"
+					}
+				},
+				{
+					"path": "user/setting/setting",
+					"style": {
+						"navigationBarTitleText": "账户设置"
+					}
+				},
+				{
+					"path": "user/operator/list",
+					"style": {
+						"navigationBarTitleText": "运营人员管理"
+					}
+				},
+				{
+					"path": "user/operator/addoperator",
+					"style": {
+						"navigationBarTitleText": "添加运营人员"
+					}
+				},
+				{
+					"path": "user/information",
+					"style": {
+						"navigationBarTitleText": "资料信息"
+					}
+				}
+			]
+		}
+	],
+	"tabBar": {
+		"height": "80",
+		"color": "#999999",
+		"selectedColor": "#FF5B00",
+		"borderStyle": "black",
+		"backgroundColor": "#ffffff",
+		"list": [{
+				"pagePath": "pages/tabBar/home/index",
+				"iconPath": "static/icon-home@3x.png",
+				"selectedIconPath": "static/icon-home-active@3x.png",
+				"text": "商城"
+			}, {
+				"pagePath": "pages/tabBar/category/index",
+				"iconPath": "static/icon-sort@3x.png",
+				"selectedIconPath": "static/icon-sort-active@3x.png",
+				"text": "分类"
+			},
+			{
+				"pagePath": "pages/tabBar/notice/index",
+				"iconPath": "static/icon-news@3x.png",
+				"selectedIconPath": "static/icon-news-active@3x.png",
+				"text": "消息"
+			},
+			{
+				"pagePath": "pages/tabBar/cart/index",
+				"iconPath": "static/icon-cart@3x.png",
+				"selectedIconPath": "static/icon-cart-active@3x.png",
+				"text": "购物车"
+			},
+			{
+				"pagePath": "pages/tabBar/user/user",
+				"iconPath": "static/icon-user@3x.png",
+				"selectedIconPath": "static/icon-user-active@3x.png",
+				"text": "我的"
+			}
+		]
+	},
+	"easycom": {
+		"autoscan": true,
+		"custom": {
+			"tui-(.*)": "@/components/thorui/tui-$1/tui-$1.vue"
+		}
+	},
+	"globalStyle": {
+		"navigationBarTextStyle": "black",
+		"navigationBarTitleText": "采美采购商城",
+		"navigationBarBackgroundColor": "#FFFFFF",
+		"backgroundColor": "#FFFFFF"
+	},
+	"condition": { //模式配置,仅开发期间生效
+		"current": 0, //当前激活的模式(list 的索引项)
+		"list": [{
+			"name": "", //模式名称
+			"path": "", //启动页面,必选
+			"query": "" //启动参数,在页面的onLoad函数里面得到
+		}]
+	}
+}

+ 1 - 11
pages/goods/good-floor.vue

@@ -13,16 +13,6 @@
 				<!-- 金刚区菜单 -->
 				<templateNav :list="navBarsList" v-if="isRequest" />
 			</view>
-			<!-- ross广告图区 -->
-			<view class="container-ross" v-if="isRossShow">
-				<view class="ross-image" @click="this.$api.navigateTo('/pages/supplier/user/my-shop?shopId=1378')">
-					<image
-						class="image"
-						src="https://static.caimei365.com/app/img/ross/ross-image@2x.jpg"
-						mode=""
-					></image>
-				</view>
-			</view>
 			<!-- 楼层 -->
 			<view class="container-section tui-skeleton">
 				<page-floor :list="pageList" :userIdentity="userIdentity" :pageType="2" v-if="isRequest" />
@@ -64,7 +54,7 @@ export default {
 		}
 	},
 	computed: {
-		...mapState(['hasLogin', 'userInfo', 'isRossShow', 'isWxAuthorize'])
+		...mapState(['hasLogin', 'userInfo','isWxAuthorize'])
 	},
 	onLoad(option) {
 		if (option.type == 'share') {

+ 3042 - 3044
pages/goods/product.vue

@@ -1,3044 +1,3042 @@
-<template>
-    <view
-        class="product "
-        :style="{
-            paddingBottom: userIdentity == 1 && userIdentity == 3 ? '0rpx' : '188rpx',
-            paddingTop: CustomBar + 'px'
-        }"
-    >
-        <custom-p
-            v-if="isHeaderPoduct"
-            :systeminfo="systeminfo"
-            :navbar-data="nvabarData"
-            :headerBtnPosi="headerBtnPosi"
-            :headerColor="headerColor"
-            :type="isShareType"
-            :page="backPage"
-        ></custom-p>
-        <view
-            class="product-topnav"
-            id="topBar"
-            v-show="isNavbarFiexd"
-            :class="navbarFiexd"
-            :style="{ top: CustomBar - 2 + 'px' }"
-        >
-            <view class="search-input">
-                <view class="gosearch-btn" :class="navbarFiexd" @click="this.$api.navigateTo(clickPath)">
-                    <view class="search-icon"><text class="iconfont icon-iconfonticonfontsousuo1"></text></view>
-                    <view class="search-text">搜索商品/项目仪器</view>
-                </view>
-            </view>
-            <view class="navbar">
-                <view
-                    class="nav-item tui-skeleton-fillet"
-                    :class="{ current: tabCurrentIndex === 0 }"
-                    @click="tabClick(0)"
-                >
-                    <text>详情</text>
-                    <text class="line"></text>
-                </view>
-                <view
-                    class="nav-item tui-skeleton-fillet"
-                    :class="{ current: tabCurrentIndex === 1 }"
-                    @click="tabClick(1)"
-                >
-                    <text>服务项目</text>
-                    <text class="line"></text>
-                </view>
-                <view
-                    class="nav-item tui-skeleton-fillet"
-                    :class="{ current: tabCurrentIndex === 2 }"
-                    @click="tabClick(2)"
-                    v-if="product.qualificationImg"
-                >
-                    <text>商品资质</text>
-                    <text class="line"></text>
-                </view>
-                <view
-                    class="nav-item tui-skeleton-fillet"
-                    :class="{ current: tabCurrentIndex === 3 }"
-                    @click="tabClick(3)"
-                >
-                    <text>推荐</text>
-                    <text class="line"></text>
-                </view>
-                <view
-                    class="nav-item tui-skeleton-fillet"
-                    :class="{ current: tabCurrentIndex === 4 }"
-                    @click="tabClick(4)"
-                    v-if="product.archiveId !== 0"
-                >
-                    <text>相关资料</text>
-                    <text class="line"></text>
-                </view>
-            </view>
-        </view>
-        <tui-skeleton
-            v-if="skeletonShow"
-            backgroundColor="#fafafa"
-            borderRadius="10rpx"
-            :isLoading="true"
-            :loadingType="5"
-        ></tui-skeleton>
-        <template v-else>
-            <view class="cart-content empty" v-if="isInvalid">
-                <view class="empty-container">
-                    <image class="empty-container-image" :src="productNoneImage" mode="aspectFit"></image>
-                    <text class="error-text">商品已失效,去商城逛逛别的吧~</text>
-                    <view class="login-btn" @click="goIndex">去商城</view>
-                </view>
-            </view>
-            <view class="container-product tui-skeleton" v-else>
-                <view class="container-product-main">
-                    <view class="product-top">
-                        <view class="banner-section">
-                            <!-- <view class="cm-product-tags"> -->
-                            <!-- <view class="cm-product-cover" v-if="product.appletsActType === 1"
-									>云上美博会</view
-								> -->
-                            <view class="cm-product-type" v-if="product.productType == 2">医疗器械</view>
-                            <view class="cm-product-cover" v-if="product.appletsActType === 1"></view>
-                            <!-- </view> -->
-                            <uni-swiper-dot :info="productImage" :current="current" field="content" :mode="mode">
-                                <swiper
-                                    class="banner tui-banner tui-skeleton-rect"
-                                    @change="swiperChange"
-                                    :duration="800"
-                                    :autoplay="false"
-                                    :circular="true"
-                                >
-                                    <swiper-item v-for="(item, index) in productImage" :key="index" class="banner-item">
-                                        <image :src="item" @click="previewImg(index)" class="product-img" />
-                                    </swiper-item>
-                                </swiper>
-                                <view class="swiper__dots-box">
-                                    <tui-tag
-                                        padding="12rpx 24rpx"
-                                        type="translucent"
-                                        shape="circleLeft"
-                                        size="32rpx"
-                                        :scaleMultiple="0.82"
-                                        originRight
-                                    >
-                                        {{ current + 1 }}/{{ productImage && productImage.length }}
-                                    </tui-tag>
-                                </view>
-                            </uni-swiper-dot>
-                        </view>
-                        <view class="product-wrap clearfix">
-                            <view class="wrap-top" :class="goodsData.isNoneDisabled ? 'none' : ''">
-                                <view class="wrap-top-price">
-                                    <cm-price
-                                        v-if="isRequest"
-                                        :product="product"
-                                        :userIdentity="userIdentity"
-                                        :shopID="shopID"
-                                        :promotions="product.promotions"
-                                        :ladderPriceList="ladderPriceList"
-                                    />
-                                </view>
-                                <view class="p-title tui-skeleton-fillet">
-                                    <view class="mclap-tag" v-if="product.beautyActFlag == '1'">美博会</view>
-                                    <view class="p-title-name" :class="product.beautyActFlag == '1' ? 'indent' : ''">
-                                        {{ product.name == undefined ? '' : product.name }}
-                                    </view>
-                                    <button
-                                        open-type="share"
-                                        class="p-title-share tui-share-position"
-                                        @tap="onShare"
-                                        v-if="userInfo.userIdentity !== 1"
-                                    >
-                                        <view class=""><text class="iconfont icon-fenxiang1"></text></view>
-                                        <view class="">分享</view>
-                                    </button>
-                                    <button class="p-title-share tui-share-position" @click="handleShare" v-else>
-                                        <view class=""><text class="iconfont icon-fenxiang1"></text></view>
-                                        <view class="">分享</view>
-                                    </button>
-                                </view>
-                                <view class="wrap-label" v-if="product.tagsList && product.tagsList.length > 0">
-                                    <view
-                                        class="label-a tui-skeleton-fillet"
-                                        v-for="(label, index) in product.tagsList"
-                                        :key="index"
-                                    >
-                                        {{ label }}
-                                    </view>
-                                </view>
-                                <view class="product-seve" v-if="hasLogin">
-                                    <text class="label">采美承诺:</text>
-                                    <text class="iconfont icon-dui tui-skeleton-rect">
-                                        <text class="text">无忧退货</text>
-                                    </text>
-                                    <text class="iconfont icon-dui tui-skeleton-rect">
-                                        <text class="text">快速退款</text>
-                                    </text>
-                                    <text class="iconfont icon-dui tui-skeleton-rect">
-                                        <text class="text">正品保证</text>
-                                    </text>
-                                </view>
-                                <view
-                                    class="productRemarks"
-                                    v-if="product.productRemarks != '' && product.productRemarks != null"
-                                >
-                                    备注:{{ product.productRemarks }}
-                                </view>
-                            </view>
-                        </view>
-                    </view>
-                    <view class="product-item-none" v-if="goodsData.isNoneDisabled">
-                        <image class="none-image" :src="productNoneImage" mode=""></image>
-                        <view class="none-text">此商品已{{ goodsData.disabledText }},请浏览以下推荐商品~</view>
-                        <view class="none-text">咨询类似商品,请联系客服!</view>
-                    </view>
-                    <!-- 选择规格 -->
-                    <view class="product-parameter" v-if="isShowButton || userIdentity === 1" @click="showPopup(3)">
-                        <text class="title">选择:</text>
-                        <text class="name">共{{ skusCount }}种规格可选</text>
-                        <text class="iconfont icon-xiayibu"></text>
-                    </view>
-                    <!-- 参数 -->
-                    <view class="product-parameter" @click="showPopup(0)" v-if="!goodsData.isNoneDisabled">
-                        <text class="title">参数:</text>
-                        <text class="name">品牌 分类...</text>
-                        <text class="iconfont icon-xiayibu"></text>
-                    </view>
-                    <!-- 特殊商品退货须知 -->
-                    <view class="return-instructions" v-if="returnGoodsStutas">
-                        <cm-return-instructions :content="helpContent"></cm-return-instructions>
-                    </view>
-                    <!-- 配套商品 -->
-                    <view
-                        class="product-supporting"
-                        v-if="!goodsData.isNoneDisabled && isShowSupportingList && supportingList.length > 0"
-                        @click.stop="handleSupporting"
-                    >
-                        <view class="product-supporting-title">配套商品({{ supportingNum }})</view>
-                        <view class="product-supporting-list">
-                            <view
-                                class="list"
-                                v-for="(supporting, index) in supportingList"
-                                :key="index"
-                                v-if="index < 4"
-                            >
-                                <image class="list-image" :src="supporting.image" mode=""></image>
-                            </view>
-                            <text class="iconfont icon-xiayibu"></text>
-                        </view>
-                    </view>
-                    <!-- 优惠券 -->
-                    <view
-                        class="product-parameter coupon"
-                        v-if="isShowButton && productCoupon.length > 0"
-                        @click="showPopup(2)"
-                    >
-                        <text class="title">优惠券:</text>
-                        <view class="coupon">
-                            <text class="tags" v-for="(coupon, index) in productCoupon.slice(0, 3)" :key="index">
-                                满{{ coupon.touchPrice }}减{{ coupon.couponAmount }}
-                            </text>
-                        </view>
-                        <text class="iconfont icon-xiayibu"></text>
-                    </view>
-                    <!-- 仪器培训方案 -->
-                    <view
-                        class="product-parameter"
-                        @click="showPopup(1)"
-                        v-if="product.commodityType == 2 && product.trainingMethod"
-                    >
-                        <text class="title">培训方案:</text>
-                        <text class="name">{{ product.trainingMethod == 1 ? '线上培训' : '线下培训' }}</text>
-                        <text class="iconfont icon-xiayibu"></text>
-                    </view>
-                    <!-- 供应商 -->
-                    <view class="product-supplier" @click="goSupplier">
-                        <view class="logo">
-                            <img
-                                :src="
-                                    shop.logo
-                                        ? shop.logo
-                                        : 'https://static.caimei365.com/app/img/icon/icon-shoplogo.png'
-                                "
-                                alt=""
-                            />
-                        </view>
-                        <view class="main">
-                            <view class="name">{{ shop.name }}</view>
-                            <view class="massgs">
-                                <view class="label">满意度:</view>
-                                <view class="p-stars">
-                                    <uni-stars
-                                        :stars="6"
-                                        :iconClass="iconClass"
-                                        :iconColor="iconColor"
-                                        :fontSize="36"
-                                        :widthInfo="176"
-                                    ></uni-stars>
-                                </view>
-                                <view class="acount">
-                                    <text>{{ shop.normalNum }}</text>
-                                    件商品
-                                </view>
-                            </view>
-                        </view>
-                        <view class="right" v-if="!isShowCaimeiShop"><text class="iconfont icon-xiayibu"></text></view>
-                    </view>
-                </view>
-                <!-- 商品详情 -->
-                <view v-show="tabCurrentIndex !== 3">
-                    <view class="product-details product-details0">
-                        <view class="title"><view class="title-tab">商品详情</view></view>
-                        <view class="content tui-banner product-rich-text tui-skeleton-rect">
-                            <template v-if="!goodsData.isNoneDisabled && product.productDetail.detailInfo">
-                                <mp-html :content="html" :tag-style="tagStyle" />
-                            </template>
-                            <view class="product-rich-text-none" v-else>暂无商品信息</view>
-                        </view>
-                    </view>
-                    <!-- 服务项目 -->
-                    <view class="product-details service product-details1">
-                        <view class="title"><view class="title-tab">服务项目</view></view>
-                        <view
-                            class="content service"
-                            v-if="product.productDetail.orderInfo || product.productDetail.serviceInfo"
-                        >
-                            <cm-service :product="product.productDetail" v-if="isRequest"></cm-service>
-                        </view>
-                        <view class="content-none" v-else><text>暂无服务项目</text></view>
-                    </view>
-                    <!-- 商品资质 -->
-                    <view class="product-details qualifications product-details2" v-if="product.qualificationImg">
-                        <view class="title"><view class="title-tab">商品资质</view></view>
-                        <view class="product-details-image">
-                            <view class="product-details-table clearfix" v-if="product.qualificationNo">
-                                <view class="ladder-tr">
-                                    <view class="ladder-item-td th">证书编号</view>
-                                    <view class="ladder-item-td th">产品名称</view>
-                                    <view class="ladder-item-td th">详情</view>
-                                </view>
-                                <view class="ladder-tr">
-                                    <view class="ladder-item-td">
-                                        <view class="te-text">{{ product.qualificationNo }}</view>
-                                    </view>
-                                    <view class="ladder-item-td">
-                                        <view class="te-text">{{ product.productName }}</view>
-                                    </view>
-                                    <view class="ladder-item-td">
-                                        <view class="te-text last">{{ product.qualificationLink }}</view>
-                                        <view class="te-copy">
-                                            <text class="clipboard" @click.stop="clipboard(product.qualificationLink)">
-                                                复制
-                                            </text>
-                                        </view>
-                                    </view>
-                                </view>
-                            </view>
-                            <image
-                                class="qualificationImg-image"
-                                :src="product.qualificationImg"
-                                mode="aspectFill"
-                                @click="previewImg1(product.qualificationImg)"
-                            ></image>
-                        </view>
-                    </view>
-                    <!-- 相关推荐 -->
-                    <view class="product-details recommend product-details3">
-                        <view class="title"><view class="title-tab">相关推荐</view></view>
-                        <view class="content hot">
-                            <cm-recommend
-                                :query-productid="product.productId"
-                                :query-type="product.recommendType"
-                                v-if="isRequest"
-                            ></cm-recommend>
-                        </view>
-                    </view>
-                </view>
-                <!-- 相关资料 -->
-                <view class="product-details recommend product-details4" v-if="tabCurrentIndex === 4">
-                    <cm-product-doc
-                        @previewImage="changePreViewImageStatus"
-                        :archiveId="product.archiveId"
-                        :userId="userId"
-                    ></cm-product-doc>
-                </view>
-                <!-- 优惠券 -->
-                <tui-bottom-popup :radius="true" :show="popupShow2" @close="hidePopup(2)">
-                    <view class="tui-popup-box clearfix">
-                        <view class="title">优惠券</view>
-                        <view class="tui-popup-close" @click="hidePopup(2)">
-                            <text class="iconfont icon-iconfontguanbi"></text>
-                        </view>
-                        <view class="tui-popup-tabs">
-                            <coupon-tabs
-                                :tabs="navbar"
-                                :currentTab="currentTab > 2 ? 0 : currentTab"
-                                @change="couponChange"
-                                :itemWidth="100 / navbar.length + '%'"
-                                selectedColor="#FF5B00"
-                                sliderBgColor="#FF5B00"
-                            ></coupon-tabs>
-                        </view>
-                        <div class="tui-popup-main coupon">
-                            <scroll-view class="tui-popup-scroll" scroll-y="true">
-                                <view class="coupon-empty" v-if="isCouponEmpty">
-                                    <image
-                                        class="empty-container-image"
-                                        :src="StaticUrl + '/icon/icon-coupon-empty@2x.png'"
-                                    ></image>
-                                    <text class="error-text">暂无可领的优惠券~</text>
-                                </view>
-                                <template v-else>
-                                    <view
-                                        v-for="(coupon, index) in productCouponList"
-                                        :key="index"
-                                        :id="coupon.couponId"
-                                        class="coupon-list"
-                                    >
-                                        <view class="list-cell-le">
-                                            <view class="coupon-maxMoney">
-                                                <text class="small">¥</text>
-                                                {{ coupon.couponAmount }}
-                                            </view>
-                                            <view class="coupon-minMoney">满{{ coupon.touchPrice }}可用</view>
-                                        </view>
-                                        <view class="list-cell-ri">
-                                            <view class="list-cell-top">
-                                                <view class="list-cell-type">
-                                                    <view class="list-cell-tags">
-                                                        <template v-if="coupon.moneyCouponFlag == 1">
-                                                            <text class="tags" v-if="coupon.moneyCouponType == 1">
-                                                                意向{{ coupon.couponType | TypeFormat }}
-                                                            </text>
-                                                            <text class="tags" v-else>
-                                                                定向{{ coupon.couponType | TypeFormat }}
-                                                            </text>
-                                                        </template>
-                                                        <template v-else>
-                                                            <text class="tags">
-                                                                {{ coupon.couponType | TypeFormat }}
-                                                            </text>
-                                                        </template>
-                                                    </view>
-                                                    <view class="list-cell-texts">
-                                                        <text v-if="coupon.couponType == 0">
-                                                            {{
-                                                                coupon.productType && coupon.productType == 1
-                                                                    ? '全商城商品通用'
-                                                                    : '仅可购买指定商品'
-                                                            }}
-                                                        </text>
-                                                        <text v-if="coupon.couponType == 1">
-                                                            {{
-                                                                coupon.categoryType == 1
-                                                                    ? '仅限购买产品类商品'
-                                                                    : '仅限购买仪器类商品'
-                                                            }}
-                                                        </text>
-                                                        <text v-if="coupon.couponType == 3">
-                                                            仅限购买店铺【{{ coupon.shopName }}】的商品
-                                                        </text>
-                                                        <text v-if="coupon.couponType == 4 || coupon.couponType == 2">
-                                                            全商城商品通用
-                                                        </text>
-                                                    </view>
-                                                </view>
-                                                <view class="list-cell-btn">
-                                                    <view class="icon-used">
-                                                        <template v-if="coupon.couponBtnType == 0">
-                                                            <template v-if="coupon.couponPayWay == 2">
-                                                                <view class="icon-used-text">
-                                                                    {{ coupon.moneyCouponPrice }}采美豆
-                                                                </view>
-                                                                <view
-                                                                    class="icon-used-btn receive"
-                                                                    @click="toDeductCoupon(coupon)"
-                                                                >
-                                                                    抵扣
-                                                                </view>
-                                                            </template>
-                                                            <template v-else-if="coupon.couponPayWay == 1">
-                                                                <view class="icon-used-text">购买</view>
-                                                                <view
-                                                                    class="icon-used-btn receive"
-                                                                    @click="toPayCoupon(coupon)"
-                                                                >
-                                                                    ¥{{ coupon.moneyCouponPrice }}
-                                                                </view>
-                                                            </template>
-                                                            <template v-else>
-                                                                <view
-                                                                    class="icon-used-btn receive"
-                                                                    @click="receiveCoupon(coupon)"
-                                                                >
-                                                                    领取
-                                                                </view>
-                                                            </template>
-                                                        </template>
-                                                        <view
-                                                            class="icon-used-btn make"
-                                                            v-if="coupon.couponBtnType == 1"
-                                                        >
-                                                            已领取
-                                                        </view>
-                                                    </view>
-                                                </view>
-                                            </view>
-                                            <view class="list-cell-time">
-                                                {{ coupon.startDate }} - {{ coupon.endDate }}
-                                            </view>
-                                        </view>
-                                    </view>
-                                </template>
-                            </scroll-view>
-                        </div>
-                    </view>
-                </tui-bottom-popup>
-                <!-- 培训方案 -->
-                <tui-bottom-popup :radius="true" :show="popupShow1" @close="hidePopup(1)">
-                    <view class="tui-popup-box clearfix">
-                        <view class="title">培训方案</view>
-                        <div class="tui-popup-main">
-                            <scroll-view class="tui-popup-scroll train" scroll-y="true">
-                                <view class="content-tr">
-                                    <view class="content-td">培训方式:</view>
-                                    <view class="content-th">
-                                        {{ product.trainingMethod == 1 ? '线上培训' : '线下培训' }}
-                                    </view>
-                                </view>
-                                <view class="content-tr">
-                                    <view class="content-td">培训费用:</view>
-                                    <view class="content-th">
-                                        {{ product.trainingType == 1 ? '¥' + product.trainingFee : '售价已包含' }}
-                                    </view>
-                                </view>
-                            </scroll-view>
-                        </div>
-                        <view
-                            class="tui-right-flex tui-popup-btn"
-                            :style="{ paddingBottom: isIphoneX ? '68rpx' : '.34rpx' }"
-                        >
-                            <view class="tui-flex-1"><view class="tui-button" @click="hidePopup(1)">收起</view></view>
-                        </view>
-                    </view>
-                </tui-bottom-popup>
-                <!-- 底部按钮 -->
-                <view class="menu" v-if="isShowButton">
-                    <view class="bottom-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '0rpx' }">
-                        <view class="bottom-le">
-                            <view class="item-bt" @click="this.$api.switchTabTo('/pages/tabBar/home/index')">
-                                <image src="../../static/icon-home-active@3x.png"></image>
-                                <text>首页</text>
-                            </view>
-                            <view class="item-bt" @click="handleCollection">
-                                <image
-                                    :src="
-                                        collectionType
-                                            ? StaticUrl + 'icon/icon-collection@2x.png'
-                                            : StaticUrl + 'icon/icon-collection-none@2x.png'
-                                    "
-                                ></image>
-                                <text>{{ collectionType ? '已收藏' : '收藏' }}</text>
-                            </view>
-                            <view class="item-bt" @click="buyProductCart()">
-                                <image src="https://static.caimei365.com/app/img/icon/icon-cart-active@3x.png"></image>
-                                <text>购物车</text>
-                                <text
-                                    v-if="hasLogin && bottomCartNumber > 0"
-                                    class="uni-badge uni-badge-error uni-small uni-badge--small icon-num"
-                                    :class="[bottomCartNumber < 10 ? 'goleft' : '']"
-                                >
-                                    {{ bottomCartNumber >= 100 ? '99+' : bottomCartNumber }}
-                                </text>
-                                <view class="animation-num" :class="isAnimation ? 'animation' : 'restion'">+1</view>
-                            </view>
-                        </view>
-                        <view class="bottom-ri">
-                            <button
-                                :disabled="goodsData.disabled"
-                                class="btn btn-cart"
-                                :class="[goodsData.disabled ? 'disabled' : '']"
-                                @tap.stop="btnGetConfirm('add')"
-                            >
-                                加入购物车
-                            </button>
-                            <button
-                                :disabled="goodsData.disabled"
-                                class="btn btn-bay"
-                                :class="[goodsData.disabled ? 'disabled' : '']"
-                                @tap.stop="btnGetConfirm('buy')"
-                            >
-                                立即购买
-                            </button>
-                        </view>
-                    </view>
-                </view>
-                <!-- 侧边 -->
-                <scroll-top :isScrollTop="isScrollTop" :bottom="200" v-show="tabCurrentIndex !== 3"></scroll-top>
-            </view>
-        </template>
-        <!-- 商品参数 -->
-        <cm-prams-popup v-if="popupShow0" :popupShow="popupShow0" :product="product"></cm-prams-popup>
-        <!-- 选择规格弹窗 -->
-        <cm-unit-popup
-            v-if="popupShow3"
-            :popupShow="popupShow3"
-            :skuProduct="skuProduct"
-            :productCoupon="productCoupon"
-            :type="unitPopupType"
-            :btnType="btnType"
-            :goodsData="goodsData"
-            @buyConfirm="handleBuyConfirm"
-            @skuClick="handleSkuClick"
-        ></cm-unit-popup>
-        <!-- 弹窗提示 -->
-        <tui-modal
-            :show="modal"
-            @click="handleClick"
-            @cancel="hideMobel"
-            :content="contentModalText"
-            :button="modalButton"
-            color="#333"
-            :size="32"
-            shape="circle"
-            :maskClosable="false"
-        ></tui-modal>
-        <!-- 商品详情可见度弹窗提醒 -->
-        <cm-product-modal
-            v-if="showModal"
-            :showModal="showModal"
-            :commodityDetailsFlag="product.commodityDetailsFlag"
-            :isShareType="isShareType"
-            :userIdentity="userIdentity"
-            :firstClubType="firstClubType"
-        />
-        <!-- ross弹窗 -->
-        <cmRossPopup v-if="showRossHtml" :popupShow="showRossHtml"></cmRossPopup>
-
-        <!-- 分享弹窗 -->
-        <cm-share-popup ref="sharePopup" :data="posterData" type="product"></cm-share-popup>
-
-        <!-- 协销名片 -->
-        <cm-seller-modal :sellerUserId="sellerUserId"></cm-seller-modal>
-    </view>
-</template>
-
-<script>
-import { mapState, mapMutations } from 'vuex'
-import customP from './components/cm-header.vue' //自定义导航
-import cmPrice from './components/cm-price.vue' //价格显示
-import cmAttributes from './components/cm-attributes.vue' //规格信息
-import cmRecommend from './components/recommend' //相关推荐
-import cmParameter from './components/cm-parameter' //相关参数
-import cmService from './components/cm-service' //服务项目
-import cmProductDoc from './components/cm-product-doc.vue'
-import cmProductModal from './components/cm-product-modal.vue'
-import cmPramsPopup from './components/cm-prams-popup.vue'
-import cmUnitPopup from './components/cm-unit-popup.vue'
-import couponTabs from '@/components/cm-module/coupon/tui-tabs.vue'
-import cmRossPopup from '@/components/cm-module/cm-ross/cm-ross-popup'
-import cmReturnInstructions from './components/cm-return-instructions.vue'
-import authorize from '@/common/config/authorize.js'
-import wxLogin from '@/common/config/wxLogin.js'
-import { debounce } from '@/common/config/common.js'
-import payMixins from '@/mixins/payMixins.js'
-import proMixins from './mixins/proMixins.js'
-import cmSrsMixins from '@/utils/cmSrsMixins.js'
-import thorui from '@/components/clipboard/clipboard.thorui.js'
-import cmSharePopup from '@/components/cm-share-popup/cm-share-popup.vue'
-import cmSellerModal from '@/components/cm-share-popup/cm-seller-modal.vue'
-import {queryParse} from './mixins/share.helper.js'
-var isPreviewImg
-export default {
-    mixins: [payMixins, proMixins, cmSrsMixins],
-    components: {
-        customP,
-        cmRecommend,
-        cmPrice,
-        cmAttributes,
-        cmParameter,
-        cmService,
-        couponTabs,
-        cmProductDoc,
-        cmPramsPopup,
-        cmUnitPopup,
-        cmProductModal,
-        cmRossPopup,
-        cmReturnInstructions,
-        cmSharePopup,
-        cmSellerModal
-    },
-    data() {
-        return {
-            StaticUrl: this.$Static, //静态图片路径
-            clickPath: '/pages/search/search',
-            html: '',
-            productNoneImage: 'https://static.caimei365.com/app/img/icon/icon-pnone.png',
-            mode: 'round',
-            iconClass: 'icon-aixin',
-            iconColor: '#ff9100',
-            specClass: '', // 规格弹窗css类,控制开关动画
-            isBtnType: '',
-            isRequest: false,
-            isScrollTop: false,
-            current: 0,
-            isShareType: '',
-            isHeaderPoduct: false,
-            isNavbarFiexd: false,
-            navbarFiexd: 'none',
-            ladderPriceFlag: '',
-            ladderPriceList: '',
-            isInvalid: false,
-            isEvaluate: false,
-            isAnimation: false,
-            skeletonShow: true,
-            isStock: false,
-            disabled: false,
-            isNoneDisabled: false,
-            tabCurrentIndex: 0,
-            userId: 0,
-            shopId: 0,
-            shopID: 0,
-            typeId: 0,
-            vipFlag: 0,
-            firstClubType: 0,
-            productId: 0,
-            skusCount: 0, // 规格种类
-            userIdentity: 0, // 用户类型
-            goodsData: {}, // 自定义数据
-            shop: {}, //供应商信息
-            product: {}, //采美
-            productImage: [],
-            retailPrice: 0,
-            stock: 0,
-            number: 0,
-            minBuyNumber: 0,
-            productsList: [],
-            goodListData: [],
-            productCoupon: [], // 优惠券
-            productCouponList: [], // 优惠券弹窗列表
-            headerBtnPosi: this.setHeaderBtnPosi(), // 获取设备顶部胶囊高度
-            systeminfo: this.setSysteminfo(), // 获取设备信息
-            windowHeight: '',
-            headerColor: false,
-            backPage: 1,
-            nvabarData: {
-                // 顶部自定义导航
-                showCapsule: 1, // 是否显示左上角图标   1表示显示    0表示不显示
-                title: '' // 导航栏 中间的标题
-            },
-            linkPath: '',
-            CustomBar: this.CustomBar, // 顶部导航栏高度
-            popupShow0: false, // 参数弹窗
-            popupShow1: false, // 培训方案
-            popupShow2: false, // 优惠券
-            popupShow3: false, // 购买弹窗
-            tabSelectFlag: false,
-            sectionPropsArr: [],
-            scrollTopArray: [],
-            winHeight: '',
-            isShowButton: true,
-            isCouponEmpty: false,
-            currentTab: 0,
-            couponParam: {
-                // 获取弹窗优惠券领取参数
-                userId: 0,
-                productId: 0,
-                status: 1,
-                source: 2
-            },
-            bottomCartNumber: 0,
-            navbar: [{ name: '未领取', num: 0 }, { name: '已领取', num: 0 }],
-            isPreviewImage: false,
-            opentype: '',
-            collectionType: false,
-            isShowSupportingList: false,
-            supportingList: [],
-            supportingNum: 0, // 组合商品总数
-            contentModalText: '', //操作文字提示语句
-            modal: false,
-            modalButton: [
-                {
-                    text: '取消',
-                    type: 'gray',
-                    plain: true //是否空心
-                },
-                {
-                    text: '去升级',
-                    customStyle: {
-                        color: '#fff',
-                        bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)'
-                    },
-                    plain: false
-                }
-            ],
-            showModal: false,
-            isShowCaimeiShop: false,
-            unitPopupType: 0, // 选择类型 1 点击加入购物车  立即购买  2:点击规格选择
-            returnGoodsStutas: false,
-            helpContent: '',
-            posterData: {}, // 商品详情
-            sellerUserId: 0 ,// 协销id
-            scene: {} //获取二维码参数 
-        }
-    },
-    computed: {
-        ...mapState(['hasLogin', 'clubType', 'identity', 'isIphoneX', 'userInfo'])
-    },
-    filters: {
-        TypeFormat(value) {
-            switch (value) {
-                case 0:
-                    return '活动券'
-                    break
-                case 1:
-                    return '品类券'
-                    break
-                case 2:
-                    return '用户专享券'
-                    break
-                case 3:
-                    return '店铺券'
-                    break
-                case 4:
-                    return '新用户券'
-                    break
-            }
-        }
-    },
-    watch: {
-        isNavbarFiexd(val) {
-            if (!this.isRequest || !val) return
-            let timer = null
-            clearTimeout(timer)
-            timer = setTimeout(() => {
-                if (this.sectionPropsArr.length > 0) return
-                this.getSectionProps()
-            }, 200)
-        }
-    },
-    onLoad(option) {
-        if (option.scene) { // 识别小程序二维码
-            this.scene = queryParse(decodeURIComponent(option.scene)) // 转码
-        }
-        this.productId = this.couponParam.productId = this.addParams.productId = this.handleProsId = option.id || this.scene.id //获取商品ID
-        if (option.typeId) {
-            this.typeId = option.typeId
-        }
-        this.opentype = option.open
-        this.isShareType = option.type
-        this.linkPath = option.path
-        this.isHeaderPoduct = true
-        if (option.page == 2) {
-            this.backPage = option.page
-        }
-        const sellerUserId = option.sellerUserId ? option.sellerUserId : this.scene.sellerUserId ? this.scene.sellerUserId : 0
-        if(!uni.getStorageSync('sellerUserId')) {
-            uni.setStorageSync('sellerUserId', sellerUserId)
-        }
-        console.log('sellerUserId', uni.getStorageSync('sellerUserId'), sellerUserId)
-        // if (!uni.getStorageSync('sellerCardChange')) {
-        //     uni.setStorageSync('sellerCardChange', 1)
-        // }
-        this.getWinHeight()
-    },
-    onReady() {
-        if (this.opentype == 'caimei') {
-            // 跳转到资料详情
-            uni.showLoading({
-                title: '加载中'
-            })
-            setTimeout(() => {
-                this.isNavbarFiexd = true
-                this.tabClick(3)
-                uni.hideLoading()
-            }, 2000)
-        }
-        console.log('是iPhoneX', this.isIphoneX)
-    },
-    methods: {
-        async initGetStotage() {
-            // 初始化
-            const userInfo = await this.$api.getStorage()
-            this.userId = this.couponParam.userId = this.addParams.userId = userInfo.userId ? userInfo.userId : 0
-            this.userIdentity = userInfo.userIdentity ? userInfo.userIdentity : 0
-            this.vipFlag = userInfo.vipFlag ? userInfo.vipFlag : 0
-            this.shopID = userInfo.shopId ? userInfo.shopId : 0
-            this.firstClubType = this.clubType
-            if (this.userIdentity == 0 || this.userIdentity == 2 || this.userIdentity == 4) {
-                this.isShowButton = true
-            } else {
-                this.isShowButton = false
-            }
-            if (isPreviewImg) {
-                isPreviewImg = false
-                return
-            } else {
-                this.initData()
-            }
-        },
-        initData() {
-            // 初始化商品详情查询
-            this.ProductService.QueryProductDetils({
-                userId: this.userId,
-                productId: this.productId,
-                identity: this.identity,
-                typeId: this.typeId
-            })
-                .then(response => {
-                    let productLabel = ''
-                    this.productImage = []
-                    this.shop = response.data.shop
-                    this.shopId = response.data.shopId
-                    const dataStr = JSON.stringify(response.data)
-                    this.product = JSON.parse(dataStr)
-                    this.skuProduct = JSON.parse(dataStr)
-                    this.skusCount = this.product.skus.length
-                    this.addParams.skuId = this.product.skuId
-                    if (this.product.tinyTypeName) {
-                        productLabel = this.product.tinyTypeName
-                    } else if (!this.product.tinyTypeName && this.product.smallTypeName) {
-                        productLabel = this.product.smallTypeName
-                    } else {
-                        productLabel = this.product.bigTypeName
-                    }
-                    //设置统计数据标签
-                    if (this.product.relatedLabels) {
-                        uni.setStorageSync('productLabel', this.product.relatedLabels)
-                    } else {
-                        uni.setStorageSync(
-                            'productLabel',
-                            `${productLabel}-${this.product.brandName ? this.product.brandName : ''}`
-                        )
-                    }
-                    //校验是否为ross
-                    this.checkedIsRossSet()
-                    //判断是否可以跳转供应商主页
-                    if (this.product.shopType === 2) {
-                        this.isShowCaimeiShop = true
-                    }
-                    // 判断是否显示已收藏
-                    if (this.product.userLike && this.product.userLike == 1) {
-                        this.collectionType = true
-                    } else {
-                        this.collectionType = false
-                    }
-                    //已删除/已冻结
-                    if (this.product.validFlag === 0 || this.product.validFlag == 10) {
-                        this.isInvalid = true
-                    } else if (this.product.validFlag === 9) {
-                        if (this.userIdentity == 1) {
-                            this.isInvalid = false
-                        } else {
-                            this.isInvalid = true
-                        }
-                    }
-                    this.ladderPriceFlag = this.product.ladderPriceFlag
-                    this.html = this.adaptRichTextImg(this.product)
-                    this.stock = this.product.stock
-                    this.number = this.product.minBuyNumber
-                    this.minBuyNumber = this.product.minBuyNumber
-
-                    //处理商品图片列表
-                    this.product.imageList.forEach(item => {
-                        this.productImage.push(item.image)
-                    })
-                    //处理阶梯价格
-                    if (this.product.ladderPriceList != null) {
-                        this.ladderPriceList = this.product.ladderPriceList
-                    }
-                    //拆分金额并转千分位格式显示
-                    if (this.product.price != null) {
-                        this.retailPrice = this.product.price.toFixed(2)
-                    }
-                    //处理下架商品和售罄商品
-                    if (this.product.validFlag == 3 || this.product.saleOutFlag === 1) {
-                        this.isNoneDisabled = true
-                        this.disabled = true
-                    } else {
-                        this.disabled = false
-                        this.isNoneDisabled = false
-                        this.goodsData.disabledText = ''
-                    }
-                    if (this.product.priceFlag == 1) {
-                        this.disabled = true
-                    } else if (this.product.priceFlag == 2) {
-                        if (this.userIdentity == 4 && this.vipFlag != 1) {
-                            this.disabled = true
-                        } else {
-                            this.disabled = false
-                        }
-                    } else if (this.product.priceFlag == 3) {
-                        if (this.userIdentity == 4) {
-                            this.disabled = true
-                        } else if (this.userIdentity == 2 && this.firstClubType != 1) {
-                            this.disabled = true
-                        } else {
-                            this.disabled = false
-                        }
-                    } else {
-                        this.disabled = false
-                    }
-                    this.goodsData.disabled = this.disabled
-                    this.goodsData.isNoneDisabled = this.isNoneDisabled
-                    if (this.product.validFlag == 3) {
-                        this.goodsData.disabledText = '下架'
-                    }
-                    if (this.product.validFlag == 10) {
-                        this.goodsData.disabledText = '停售'
-                    }
-                    if (this.product.saleOutFlag === 1) {
-                        this.goodsData.disabledText = '售罄'
-                    }
-                    console.log(this.disabled)
-                    // setTimeout(() => {
-                    //     this.getSectionProps()
-                    // }, 2000)
-                    this.handleShowProductType(this.product.commodityDetailsFlag)
-                    if ((this.hasLogin && this.userIdentity == 2) || this.userIdentity == 4) {
-                        this.ProductCartNumber()
-                    }
-                    this.queryProductDetilsCoupons()
-                    this.getCommodityCombinationList()
-                    // 特殊商品退货须知
-                    this.returnGoodsStutas = response.data.returnGoodsStutas && response.data.returnGoodsStutas === 2 // 1:可以 2:不可以
-                    this.helpContent = response.data.helpContent
-
-                    setTimeout(() => {
-                        this.skeletonShow = false
-                        this.isRequest = true
-                    }, 1000)
-                })
-                .catch(error => {
-                    this.$util.msg(error.msg, 2000)
-                })
-        },
-        handleShowProductType(flag = '') {
-            // 根据商品详情可见度显示弹窗 flag 1.所有人可见 2.所有机构可见 3.仅会员机构可见 4.仅医美机构可见
-            const flagMap = {
-                '2': true,
-                '3': true,
-                '4': true
-            }
-            if (!this.hasLogin) {
-                this.showModal = flagMap[flag]
-                return
-            }
-            if (this.vipFlag === 1) {
-                this.showModal = false
-                return
-            }
-            if (flag === 3 && this.userIdentity === 4) {
-                this.showModal = true
-                return
-            }
-            if (flag === 4 && this.userIdentity === 4) {
-                this.showModal = true
-                return
-            }
-            if (flag === 4 && this.userIdentity === 2 && this.firstClubType !== 1) {
-                this.showModal = true
-                return
-            }
-        },
-        hideMobel1() {
-            this.modal1 = false
-            this.$api.navigateBack(1)
-        },
-
-        adaptRichTextImg(product) {
-            // 商品详情
-            let defaulHtml = '<div style="text-align: center;color:#333333;">暂无内容</div>'
-            let html = ''
-            if (product.productDetailChose == 1) {
-                // 同资质机构显示商品详情
-                html = product.productDetail ? this.$api.adaptRichTextImg(product.productDetail.detailInfo) : defaulHtml
-            } else {
-                if (this.hasLogin && this.userIdentity != 4) {
-                    html = product.productDetail
-                        ? this.$api.adaptRichTextImg(product.productDetail.detailInfo)
-                        : defaulHtml
-                } else {
-                    if (product.productDetail.commonDetailInfo) {
-                        html = product.productDetail
-                            ? this.$api.adaptRichTextImg(product.productDetail.commonDetailInfo)
-                            : defaulHtml
-                    } else {
-                        html = defaulHtml
-                    }
-                }
-            }
-            return html
-        },
-        getCommodityCombinationList() {
-            // 初始化商品详情配套商品
-            this.ProductService.getCommodityCombinationList({
-                userId: this.userId,
-                productId: this.productId,
-                source: 2,
-                pageNum: 1,
-                pageSize: 4
-            })
-                .then(response => {
-                    const data = response.data
-                    this.supportingList = data.results
-                    this.supportingNum = data.totalRecord
-                    if (this.supportingList.length > 0) {
-                        if (!this.hasLogin || this.userIdentity == 2 || this.userIdentity == 4) {
-                            this.isShowSupportingList = true
-                        }
-                    }
-                })
-                .catch(error => {
-                    console.log('获取组合商品列表失败')
-                })
-        },
-        queryProductDetilsCoupons() {
-            // 初始化商品详情优惠券信息
-            this.ProductService.QueryProductDetilsCoupons(this.couponParam)
-                .then(response => {
-                    this.productCoupon = response.data.list
-                })
-                .catch(error => {
-                    console.log('获取优惠券列表失败')
-                })
-        },
-        queryPopupCoupons() {
-            // 获取弹窗优惠券列表
-            this.ProductService.QueryProductDetilsCoupons(this.couponParam)
-                .then(response => {
-                    let data = response.data
-                    this.navbar[0].num = data.notCouponNum
-                    this.navbar[1].num = data.couponNum
-                    if (data.couponList && data.couponList.length > 0) {
-                        this.productCouponList = data.couponList
-                        this.isCouponEmpty = false
-                    } else {
-                        this.isCouponEmpty = true
-                    }
-                })
-                .catch(error => {
-                    console.log('获取优惠券列表失败')
-                })
-        },
-        ProductCartNumber() {
-            // 获取用户购物车储量
-            this.ProductService.ProductCartNumber({ userId: this.userId })
-                .then(response => {
-                    this.bottomCartNumber = response.data
-                })
-                .catch(error => {
-                    console.log('获取购物车数量失败')
-                })
-        },
-        receiveCoupon(coupon) {
-            // 点击优惠券领取按钮,友盟埋点收集领取优惠券
-            if (process.env.NODE_ENV != 'development') {
-                this.$uma.trackEvent('Um_Event_productCouponReceive', {
-                    Um_Key_PageName: '商品详情',
-                    Um_Key_EvenName: '领取优惠券',
-                    Um_Key_CouponId: `${coupon.couponId}`
-                })
-            }
-            this.ProductService.ReceiveCoupon({
-                userId: this.couponParam.userId,
-                couponId: coupon.couponId,
-                source: 1
-            })
-                .then(response => {
-                    this.$util.msg('领取成功', 1500, true, 'success')
-                    setTimeout(() => {
-                        this.currentTab = 1
-                        this.couponParam.status = 2
-                        this.queryPopupCoupons()
-                    }, 1500)
-                })
-                .catch(error => {
-                    this.$util.msg(error.msg, 2000)
-                })
-        },
-        toDeductCoupon(coupon) {
-            // 点击采美豆抵扣优惠券
-            if (process.env.NODE_ENV != 'development') {
-                this.$uma.trackEvent('Um_Event_userCouponCollectionBuy', {
-                    Um_Key_PageName: '领券中心',
-                    Um_Key_EvenName: '抵扣优惠券',
-                    Um_Key_CouponId: `${coupon.couponId}`
-                })
-            }
-            if (this.hasLogin) {
-                if (this.userIdentity === 1 || this.userIdentity === 3) {
-                    this.$util.msg('您的身份暂不支持领取优惠券', 2000)
-                    return
-                }
-                this.WeChatPayCouponBeans(coupon)
-            } else {
-                this.$api.navigateTo('/pages/login/login')
-            }
-        },
-        WeChatPayCouponBeans(coupon) {
-            // 采美豆抵扣优惠券
-            this.PayService.WeChatPayCouponBeans({
-                source: 1, //领取渠道 1 小程序  2 网站
-                userId: this.couponParam.userId,
-                couponId: coupon.couponId
-            })
-                .then(response => {
-                    this.$util.msg('抵扣成功', 1500)
-                    setTimeout(() => {
-                        this.currentTab = 1
-                        this.couponParam.status = 2
-                        this.queryPopupCoupons()
-                    }, 1500)
-                })
-                .catch(error => {
-                    this.$util.msg(error.msg, 2000)
-                })
-        },
-        toPayCoupon(coupon) {
-            // 点击购买优惠券,友盟埋点收集购买优惠券
-            if (process.env.NODE_ENV != 'development') {
-                this.$uma.trackEvent('Um_Event_productCouponBuy', {
-                    Um_Key_PageName: '商品详情',
-                    Um_Key_EvenName: '购买优惠券',
-                    Um_Key_CouponId: `${coupon.couponId}`
-                })
-            }
-            this.createCouponRecord(coupon)
-        },
-        createCouponRecord(coupon) {
-            // 生成购买优惠券记录Id
-            this.PayService.WeChatCouponRecord({
-                userId: this.userId,
-                couponId: coupon.couponId
-            })
-                .then(response => {
-                    this.MiniWxPayFor(coupon, response.data.couponRecordId)
-                })
-                .catch(error => {
-                    if (error.code == -1) {
-                        //个人机构不能购买
-                        this.contentModalText = '该优惠券仅限医美机构购买,请升级为医美机构后再次购买。'
-                        this.modal = true
-                    } else if (error.code == -2) {
-                        //会员机构不是医美机构不能购买
-                        this.$util.msg('该优惠券仅限医美机构购买', 2000)
-                    }
-                })
-        },
-        async MiniWxPayFor(coupon, couponRecordId) {
-            const wechatcode = await authorize.getCode('weixin')
-            const params = {
-                userId: this.userId,
-                couponId: coupon.couponId,
-                couponRecordId: couponRecordId,
-                payType: 'XCX',
-                code: wechatcode,
-                source: 1 //支付来源 1 小程序 2 WWW
-            }
-            this.weChatMiniCouponWxPay(
-                params,
-                'Um_Event_productCouponPay',
-                '商品详情',
-                '线上支付优惠券',
-                coupon.couponId,
-                this.userId
-            )
-        },
-        hideMobel() {
-            this.modal = false
-        },
-        handleClick(e) {
-            //个人机构跳转升级页面
-            if (e.index == 1) {
-                this.$api.navigateTo('/pages/login/apply')
-            }
-            this.modal = false
-        },
-        swiperChange(e) {
-            //顶部商品图片切换
-            const index = e.detail.current
-            this.current = index
-        },
-        previewImg1(url) {
-            let mentuzArray = []
-            mentuzArray.push(url)
-            uni.previewImage({
-                urls: mentuzArray,
-                current: 0
-            })
-        },
-        previewImg(index) {
-            //顶部商品图片预览
-            isPreviewImg = true
-            let previewUrls = this.productImage
-            uni.previewImage({
-                current: index, //图片索引
-                urls: previewUrls, //必须是http图片,本地图片无效
-                longPressActions: ''
-            })
-        },
-        //商品详情&&供应商信息tab切换
-        tabClick(index) {
-            // 重新标记
-            this.getSectionProps()
-            this.tabCurrentIndex = index
-            this.tabSelectFlag = true
-            let timer = null
-            clearTimeout(timer)
-            // 点击tab 300ms才执行跳转,避免出错(来回跳动)
-            timer = setTimeout(() => {
-                this.tabClickAction(index)
-            }, 500)
-        },
-        // 跳转执行
-        tabClickAction(index) {
-            const that = this
-            if (index === 3) {
-                return uni.pageScrollTo({
-                    duration: 300, //过渡时间必须为0,uniapp bug,否则运行到手机会报错
-                    scrollTop: this.sectionPropsArr[0].scrollTop
-                })
-            }
-            uni.pageScrollTo({
-                duration: 300, //过渡时间必须为0,uniapp bug,否则运行到手机会报错
-                scrollTop: this.sectionPropsArr[index].scrollTop,
-                success() {
-                    setTimeout(() => {
-                        that.tabSelectFlag = false
-                    }, 300)
-                }
-            })
-        },
-        handleContact(e) {
-            //跳转小程序客服
-            console.log(e.detail.path)
-            console.log(e.detail.query)
-        },
-        buyProductCart() {
-            //底部购物车按钮点击
-            if (this.hasLogin) {
-                // 友盟埋点商品详情购物车入口点击事件
-                if (process.env.NODE_ENV != 'development') {
-                    this.$uma.trackEvent('Um_Event_ProductShoppingCart', {
-                        Um_Key_PageName: '去购物车',
-                        Um_Key_SourcePage: '商品详情购物车入口'
-                    })
-                }
-                this.$api.navigateTo('/pages/goods/cart')
-            } else {
-                this.$api.navigateTo('/pages/login/login?type=1')
-            }
-        },
-        btnGetConfirm(type) {
-            //加入购物车&&立即购买点击
-            if (this.hasLogin) {
-                this.btnType = type
-                this.popupShow3 = true
-                this.unitPopupType = 1
-            } else {
-                this.$api.navigateTo('/pages/login/login?type=1')
-            }
-        },
-        getAddProductCart() {
-            //增加购物车成功和toast弹窗提示成功
-            this.ProductService.shoppingAddCart({
-                productId: this.productId,
-                userId: this.userId,
-                productCount: this.number,
-                source: 2
-            })
-                .then(response => {
-                    this.specClass = 'hide'
-                    this.$util.msg('加入购物车成功', 1500, true, 'success')
-                    this.isAnimation = true
-                    setTimeout(() => {
-                        this.specClass = 'none'
-                    }, 200)
-                    setTimeout(() => {
-                        this.isAnimation = false
-                    }, 2000)
-                    this.bottomCartNumber = response.data
-                })
-                .catch(error => {
-                    console.log('error', error.msg)
-                })
-        },
-        setHeaderBtnPosi() {
-            // 获得胶囊按钮位置信息
-            let headerBtnPosi = uni.getMenuButtonBoundingClientRect()
-            return headerBtnPosi
-        },
-        setSysteminfo() {
-            let systeminfo
-            uni.getSystemInfo({
-                // 获取设备信息
-                success: res => {
-                    systeminfo = res
-                }
-            })
-            return systeminfo
-        },
-        goIndex() {
-            //商城首页
-            uni.switchTab({
-                url: '/pages/tabBar/home/index'
-            })
-        },
-        goSupplier() {
-            //跳供应商资料页
-            if (!this.isShowCaimeiShop) {
-                this.$api.navigateTo('/pages/supplier/user/my-shop?shopId=' + this.shopId)
-            }
-        },
-        discard() {
-            //丢弃
-        },
-        onShare(res) {
-            //分享转发
-            if (res.from === 'button') {
-                // 来自页面内转发按钮
-            }
-            return {
-                title: `${this.product.name}`,
-                path: `pages/goods/product?type=share&id=${this.productId}`,
-                imageUrl: `${this.productImage[0]}`
-            }
-        },
-        // 分享海报
-        handleShare() {
-            this.posterData = {
-                productName: this.product.name,
-                productImage: this.productImage[0],
-                sellerUserId: this.sellerUserId,
-                path: 'pages/goods/product',
-                id: this.productId
-            }
-            this.$refs.sharePopup.open()
-        },
-        handleCollection() {
-            // 收藏
-            if (this.hasLogin) {
-                this.ProductService.getProductUserLike({
-                    userId: this.userId,
-                    productId: this.product.productId
-                })
-                    .then(response => {
-                        this.collectionType = !this.collectionType
-                        this.$util.msg(response.data, 1500, true, 'success')
-                    })
-                    .catch(error => {
-                        this.$util.msg(error.msg, 2000)
-                    })
-            } else {
-                this.$api.navigateTo('/pages/login/login')
-            }
-        },
-        showPopup(index) {
-            switch (index) {
-                case 0:
-                    this.popupShow0 = true
-                    break
-                case 1:
-                    this.popupShow1 = true
-                    break
-                case 2:
-                    if (this.hasLogin) {
-                        this.queryPopupCoupons()
-                        this.popupShow2 = true
-                    } else {
-                        this.$api.navigateTo('/pages/login/login')
-                    }
-                    break
-                case 3:
-                    this.popupShow3 = true
-                    this.unitPopupType = 2
-                    break
-            }
-        },
-        hidePopup(index) {
-            switch (index) {
-                case 0:
-                    this.popupShow0 = false
-                    break
-                case 1:
-                    this.popupShow1 = false
-                    break
-                case 2:
-                    this.popupShow2 = false
-                    break
-                case 3:
-                    this.popupShow3 = false
-                    break
-            }
-        },
-        couponChange(e) {
-            this.currentTab = e.index
-            switch (this.currentTab) {
-                case 0:
-                    this.couponParam.status = 1
-                    this.queryPopupCoupons()
-                    break
-                case 1:
-                    this.couponParam.status = 2
-                    this.queryPopupCoupons()
-                    break
-            }
-        },
-        handleSupporting() {
-            // 跳转组合商品页面
-            this.$api.navigateTo(`/pages/goods/goods-supporting?productId=${this.productId}`)
-        },
-        // 获取每个tab对应区域的区间
-        async getSectionProps() {
-            const sectionPropsArr = [],
-                scrollTopArray = [],
-                className = 'product-details'
-
-            // 获取相关节点元素信息
-            const productMain = await this.$util.boundingClientRect(this, '.container-product-main', false)
-            const productDetail = await this.$util.boundingClientRect(this, '.product-details', true)
-            const topBar = await this.$util.boundingClientRect(this, '#topBar', false)
-            /*
-                说明:采用累加方式来计算每一个 prdocut-details 的 scrollTop 定位
-                     scrollTop = 上一个的scrollTop + 上一个的高度
-            */
-            productDetail.forEach((item, index) => {
-                // 上一个 prdocut-details 的 scrollTop 值
-                const prev = sectionPropsArr[index - 1]
-                const prevScrollTop = prev ? prev.scrollTop : productMain.height
-                // 上一个 prdocut-details 的高度
-                const add = productDetail[index - 1]
-                // 第一个需要减去tabs的高度
-                const addHeight = index === 0 ? (add ? add.height : 0) - topBar.height : add ? add.height : 0
-
-                sectionPropsArr.push({
-                    className: `${className}-${index}`,
-                    scrollTop: prevScrollTop + addHeight
-                })
-                // - topBar.height
-            })
-            this.sectionPropsArr = sectionPropsArr
-            console.log('更新tab影响区域')
-        },
-        //当滑动时也能同步激活tab
-        activeTab: debounce(
-            (top, _this) => {
-                const { sectionPropsArr } = _this
-                if (sectionPropsArr && sectionPropsArr.length > 0) {
-                    sectionPropsArr.forEach((item, index) => {
-                        // 当前位置为开始位置, 下个起始位置为结束位置
-                        const openInterval = (index === 0 ? 0 : item.scrollTop) - 20 // 自定义偏移
-                        const next = sectionPropsArr[index + 1]
-                        const closedInterval = (next ? next.scrollTop : 10000000) - 20 // 自定义偏移
-                        if (top >= openInterval && top < closedInterval) {
-                            _this.tabCurrentIndex = index
-                        }
-                    })
-                }
-            },
-            100,
-            true
-        ),
-        debounce(fn, delay) {
-            let timer = null //借助闭包
-            return function() {
-                if (timer) {
-                    clearTimeout(timer)
-                }
-                timer = setTimeout(fn, delay) // 简化写法
-            }
-        },
-        clipboard(data) {
-            thorui.getClipboardData(data, res => {
-                if (res) {
-                    this.$util.msg('复制成功', 2000, true, 'success')
-                } else {
-                    this.$util.msg('复制失败', 2000, true, 'none')
-                }
-            })
-        },
-        getWinHeight() {
-            this.winHeight = wx.getSystemInfoSync().windowHeight
-        },
-        changePreViewImageStatus(falg) {
-            this.isPreviewImage = falg
-        },
-    },
-    onPageScroll(e) {
-        //实时获取到滚动的值
-        const { scrollTop } = e
-        this.debounce(this.getSectionProps(), 1000)
-        if (!this.tabSelectFlag) {
-            this.activeTab(scrollTop, this)
-        }
-        if (e.scrollTop > 60) {
-            this.headerColor = true
-            this.navbarFiexd = 'fixed'
-            this.isNavbarFiexd = true
-            this.nvabarData = {
-                showCapsule: 1,
-                title: '商品详情'
-            }
-        } else {
-            this.headerColor = false
-            this.isNavbarFiexd = false
-            this.navbarFiexd = 'none'
-            this.nvabarData = {
-                showCapsule: 1,
-                title: ''
-            }
-        }
-        if (e.scrollTop > 700) {
-            this.isScrollTop = true
-        } else {
-            this.isScrollTop = false
-        }
-    },
-    onShareAppMessage(res) {
-        //分享转发
-        if (res.from === 'button') {
-            // 来自页面内转发按钮
-        }
-        return {
-            title: `${this.product.name}`,
-            path: `pages/goods/product?type=share&id=${this.productId}&sellerUserId=${
-                this.userInfo.userIdentity === 1 ? this.userInfo.userId : 0
-            }`,
-            imageUrl: `${this.productImage[0]}`
-        }
-    },
-    onShow() {
-        wxLogin.wxLoginAuthorize()
-        // 是否开启图片预览 true 不刷新调用接口 false刷新调用接口
-        if (!this.isPreviewImage) {
-            this.initGetStotage()
-        }
-        this.isPreviewImage = false
-        if (!uni.getStorageSync('spUserId')) {
-            this.sellerUserId = uni.getStorageSync('sellerUserId')
-        } else {
-            if (uni.getStorageSync('spUserId') === uni.getStorageSync('sellerUserId')) {
-                this.sellerUserId = uni.getStorageSync('sellerUserId')
-            } else {
-                uni.setStorageSync('sellerUserId', 0)
-                this.sellerUserId = 0
-            }
-        }
-        if (this.userInfo.userIdentity === 1) {
-            this.sellerUserId = 0
-            uni.setStorageSync('sellerUserId', 0)
-        }
-    }
-}
-</script>
-
-<style lang="scss">
-page {
-    background-color: #ffffff;
-}
-.banner-section {
-    width: 100%;
-    height: 750rpx;
-    position: relative;
-    .cm-product-tags {
-        position: absolute;
-        right: 30rpx;
-        top: 0;
-        z-index: 999;
-    }
-    .cm-product-type {
-        width: 64rpx;
-        height: 64rpx;
-        text-align: justify;
-        box-sizing: border-box;
-        padding: 10rpx;
-        border-radius: 0 0 8rpx 8rpx;
-        background-color: #33ccbf;
-        font-size: $font-size-22;
-        color: #ffffff;
-        line-height: 25rpx;
-        position: absolute;
-        left: 30rpx;
-        top: 0;
-        z-index: 999;
-    }
-    .cm-product-cover {
-        width: 120rpx;
-        height: 77rpx;
-        line-height: 57rpx;
-        font-size: 24rpx;
-        color: #fff;
-        text-align: center;
-        background: url(https://static.caimei365.com/app/img/icon2/cm_cover_bg_app.png) no-repeat center;
-        background-size: 120rpx;
-        float: left;
-        position: absolute;
-        right: 30rpx;
-        top: 0;
-        z-index: 999;
-    }
-}
-.banner {
-    width: 100%;
-    height: 750rpx;
-    .product-img {
-        width: 750rpx;
-    }
-    image {
-        width: 100%;
-        height: 100%;
-    }
-    .banner-item {
-        position: relative;
-    }
-}
-.swiper__dots-box {
-    position: absolute;
-    color: #fff;
-    bottom: 30rpx;
-    right: 0;
-}
-.product-wrap {
-    width: 100%;
-    height: auto;
-    padding: 24rpx 0 0 0;
-    background-color: #ffffff;
-    border-bottom: 20rpx solid #f7f7f7;
-    .productRemarks {
-        height: 48rpx;
-        width: 100%;
-        float: left;
-        line-height: 48rpx;
-        font-size: 24rpx;
-        color: #999999;
-        text-align: left;
-    }
-    .wrap-top {
-        width: 702rpx;
-        padding: 0 24rpx;
-        height: auto;
-        float: left;
-        padding-bottom: 20rpx;
-        border-bottom: 1px solid #f8f8f8;
-        &.none {
-            .p-title {
-                color: #999999;
-            }
-        }
-        .p-title {
-            width: 100%;
-            height: auto;
-            float: left;
-            position: relative;
-            .p-title-name {
-                width: 602rpx;
-                height: auto;
-                float: left;
-                line-height: 48rpx;
-                font-size: $font-size-28;
-                color: $text-color;
-                -o-text-overflow: ellipsis;
-                text-overflow: ellipsis;
-                display: -webkit-box;
-                word-break: break-all;
-                -webkit-box-orient: vertical;
-                -webkit-line-clamp: 2;
-                overflow: hidden;
-                &.indent {
-                    text-indent: 95rpx;
-                }
-            }
-            .mclap-tag {
-                display: block;
-                width: 84rpx;
-                height: 32rpx;
-                background-image: linear-gradient(270deg, #f9c023 0%, #f83600 100%);
-                border-radius: 4rpx 48rpx 4px 4px;
-                line-height: 32rpx;
-                font-size: $font-size-22;
-                color: #ffffff;
-                text-align: center;
-                position: absolute;
-                left: 0;
-                top: 6rpx;
-            }
-            .p-title-share {
-                width: 96rpx;
-                height: 96rpx;
-                position: absolute;
-                right: 0;
-                text-align: center;
-                color: #999999;
-                font-size: $font-size-24;
-                box-sizing: border-box;
-                display: block;
-                background: transparent;
-                border-radius: 0;
-                border: 0;
-                margin: 0;
-                padding: 8rpx 0;
-                z-index: 20;
-                .icon-fenxiang1 {
-                    font-size: $font-size-34;
-                }
-            }
-            .tui-share-btn::after {
-                border: 0;
-            }
-        }
-        .wrap-main-text {
-            line-height: 56rpx;
-            color: #ff2a2a;
-            font-size: $font-size-26;
-            display: block;
-            float: left;
-            font-weight: normal;
-        }
-        .wrap-main-none {
-            display: block;
-            width: 256rpx;
-            height: 44rpx;
-            padding-left: 20rpx;
-            border-radius: 11rpx;
-            background: $btn-confirm;
-            float: right;
-            line-height: 44rpx;
-            color: #ffffff;
-            text-align: center;
-            font-size: $font-size-24;
-        }
-
-        .p-price-none {
-            height: 44rpx;
-            line-height: 44rpx;
-            float: left;
-            font-size: $font-size-24;
-            color: #666;
-            text-decoration: line-through;
-            margin-left: 8rpx;
-        }
-        .p-minBuy {
-            height: 44rpx;
-            line-height: 44rpx;
-            float: right;
-            padding: 0 18rpx;
-            border-radius: 22rpx;
-            background-color: #f7f7f7;
-            color: #7f7f7f;
-            font-size: 24rpx;
-            text-align: center;
-            .min-text {
-                margin: 0 6rpx;
-            }
-        }
-        .p-login {
-            height: 56rpx;
-            line-height: 56rpx;
-            color: $color-system;
-            font-size: $font-size-24;
-            &.grade {
-                .price-left {
-                    float: left;
-                    .none {
-                        display: block;
-                        font-size: $font-size-20;
-                        line-height: 48rpx;
-                        color: #4a4b54;
-                        float: left;
-                        font-weight: bold;
-                        margin-left: 5rpx;
-                        text {
-                            letter-spacing: 4rpx;
-                            font-size: $font-size-32;
-                        }
-                    }
-                }
-            }
-            .p-no {
-                float: left;
-                margin-right: 5rpx;
-                font-size: $font-size-28;
-                color: $text-color;
-            }
-            .p-login-btn {
-                display: block;
-                height: 44rpx;
-                padding: 0 10rpx 0 20rpx;
-                border-radius: 11rpx;
-                background: $btn-confirm;
-                float: right;
-                line-height: 44rpx;
-                color: #ffffff;
-                text-align: center;
-                font-size: $font-size-24;
-            }
-        }
-    }
-    .wrap-label {
-        float: left;
-        width: 85%;
-        box-sizing: border-box;
-        .label-a {
-            padding: 0 18rpx;
-            line-height: 32rpx;
-            font-size: $font-size-20;
-            color: $color-system;
-            text-align: center;
-            border-radius: 6rpx;
-            background: #ffe6dc;
-            margin: 0 20rpx 15rpx 0;
-            display: inline-block;
-        }
-    }
-    .wrap-top-price {
-        float: left;
-        width: 100%;
-        box-sizing: border-box;
-        .wrap-main-item {
-            width: 100%;
-            height: 56rpx;
-            .p-price {
-                height: 56rpx;
-                line-height: 56rpx;
-                float: left;
-                color: #ff2a2a;
-                font-weight: bold;
-                &.none {
-                    text-decoration: line-through;
-                    color: #999999;
-                    font-weight: normal;
-                }
-                .txt {
-                    margin: 0 2rpx;
-                }
-                .txt.sm {
-                    font-size: $font-size-26;
-                }
-                .txt.big {
-                    font-size: $font-size-34;
-                }
-            }
-            .p-right-price {
-                height: 56rpx;
-                line-height: 56rpx;
-                float: right;
-                color: #999999;
-                font-size: $font-size-30;
-                .none {
-                    font-size: $font-size-26;
-                    text-decoration: line-through;
-                }
-            }
-        }
-        .floor-item-act {
-            height: 56rpx;
-            text-align: center;
-            box-sizing: border-box;
-            float: left;
-            padding: 10rpx 0;
-            margin-left: 10rpx;
-        }
-        .floor-item-btn {
-            float: right;
-            height: 40rpx;
-            margin-top: 8rpx;
-            margin-left: 10rpx;
-            .btn {
-                line-height: 40rpx;
-                padding: 0 20rpx;
-                height: 40rpx;
-                background: $btn-confirm;
-                color: #ffffff;
-                font-size: $font-size-20;
-                border-radius: 4rpx;
-            }
-        }
-    }
-    .wrap-info {
-        float: left;
-        width: 702rpx;
-        padding: 24rpx 24rpx 0 24rpx;
-        border-bottom: 1px solid #f8f8f8;
-        .info-viewT {
-            width: 100%;
-            min-height: 40rpx;
-            font-size: $font-size-28;
-            color: $text-color;
-            line-height: 40rpx;
-            text-align: left;
-            &.none {
-                color: #999999;
-            }
-            .info-viewL {
-                min-width: 350rpx;
-                float: left;
-                margin-bottom: 24rpx;
-            }
-            .info-viewR {
-                min-width: 352rpx;
-                float: left;
-                margin-bottom: 24rpx;
-            }
-        }
-        .info-viewB {
-            width: 100%;
-            height: auto;
-        }
-        .info-f {
-            width: 50%;
-            float: left;
-            font-size: $font-size-28;
-            color: $text-color;
-            line-height: 40rpx;
-            margin-bottom: 24rpx;
-            text-align: left;
-        }
-    }
-}
-.product-seve {
-    width: 100%;
-    height: 60rpx;
-    background-color: #ffffff;
-    position: relative;
-    display: flex;
-    line-height: 60rpx;
-    .label {
-        font-size: $font-size-28;
-        color: #333333;
-    }
-    .iconfont {
-        color: #fea785;
-        margin-right: 20rpx;
-        font-size: $font-size-22;
-    }
-    .text {
-        font-size: $font-size-22;
-        color: #fea785;
-        margin-left: 10rpx;
-    }
-}
-.product-item-none {
-    min-height: 348rpx;
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-    border-bottom: 20rpx solid #f7f7f7;
-    box-sizing: border-box;
-    padding: 40rpx 0;
-    .none-image {
-        width: 284rpx;
-        height: 225rpx;
-    }
-    .none-text {
-        text-align: center;
-        font-size: $font-size-28;
-        color: #fea785;
-        line-height: 40rpx;
-    }
-}
-.product-supporting {
-    width: 100%;
-    height: 274rpx;
-    box-sizing: border-box;
-    padding: 30rpx 24rpx;
-    background-color: #ffffff;
-    border-bottom: 20rpx solid #f7f7f7;
-    .product-supporting-title {
-        width: 100%;
-        height: 40rpx;
-        text-align: left;
-        line-height: 40rpx;
-        font-size: $font-size-28;
-        color: #333333;
-    }
-    .product-supporting-list {
-        width: 100%;
-        height: 154rpx;
-        box-sizing: border-box;
-        padding: 13rpx 0;
-        position: relative;
-        .icon-xiayibu {
-            line-height: 154rpx;
-            display: inline-block;
-            position: absolute;
-            width: 80rpx;
-            top: 0;
-            right: 0;
-            color: #b2b2b2;
-            text-align: right;
-        }
-        .list {
-            width: 128rpx;
-            height: 128rpx;
-            margin-right: 24rpx;
-            float: left;
-            border: 1px solid #e1e1e1;
-            border-radius: 8rpx;
-            .list-image {
-                width: 100%;
-                height: 100%;
-                display: block;
-                border-radius: 8rpx;
-            }
-        }
-    }
-}
-.return-instructions {
-    padding: 0 24rpx;
-    border-bottom: 20rpx solid #f7f7f7;
-}
-.product-parameter {
-    width: 702rpx;
-    height: 90rpx;
-    padding: 0 24rpx;
-    background-color: #ffffff;
-    position: relative;
-    border-bottom: 20rpx solid #f7f7f7;
-    &.coupon {
-        .title {
-            color: #f94b4b;
-        }
-        .icon-xiayibu {
-            color: #f94b4b;
-        }
-        .coupon {
-            float: right;
-            box-sizing: border-box;
-            padding: 29rpx 0;
-            padding-right: 35rpx;
-            .tags {
-                height: 32rpx;
-                box-sizing: border-box;
-                border-radius: 8rpx;
-                background-color: #fff1eb;
-                line-height: 28rpx;
-                color: #f94b4b;
-                text-align: center;
-                display: inline-block;
-                padding: 0 10rpx;
-                font-size: $font-size-20;
-                border: 1px solid #f94b4b;
-                float: right;
-                margin: 0 6rpx;
-            }
-        }
-    }
-    .title {
-        line-height: 90rpx;
-        display: inline-block;
-        float: left;
-        font-size: $font-size-28;
-        color: #666666;
-    }
-    .name {
-        line-height: 90rpx;
-        display: inline-block;
-        float: left;
-        font-size: $font-size-28;
-        color: $text-color;
-        padding-right: 48rpx;
-        overflow: hidden;
-        text-overflow: ellipsis;
-        white-space: nowrap;
-        text-align: right;
-    }
-    .icon-xiayibu {
-        line-height: 90rpx;
-        display: inline-block;
-        position: absolute;
-        width: 48rpx;
-        top: 0;
-        right: 0;
-        color: #b2b2b2;
-    }
-}
-.product-supplier {
-    width: 100%;
-    height: 174rpx;
-    padding: 30rpx 24rpx;
-    box-sizing: border-box;
-    background-color: #ffffff;
-    position: relative;
-    box-sizing: border-box;
-    border-bottom: 20rpx solid #f7f7f7;
-    .logo {
-        width: 128rpx;
-        height: 92rpx;
-        float: left;
-        border: 1px solid #efefef;
-        border-radius: 6rpx;
-        image {
-            width: 100%;
-            height: 100%;
-            display: block;
-            border-radius: 6rpx;
-        }
-    }
-    .main {
-        width: 470rpx;
-        height: 92rpx;
-        float: left;
-        margin-left: 20rpx;
-        .name {
-            width: 100%;
-            line-height: 46rpx;
-            float: left;
-            font-size: $font-size-28;
-            color: $text-color;
-            float: right;
-            overflow: hidden;
-            text-overflow: ellipsis;
-            white-space: nowrap;
-            text-align: left;
-        }
-        .massgs {
-            width: 100%;
-            line-height: 46rpx;
-            float: left;
-            font-size: $font-size-24;
-            color: #999999;
-            .label {
-                float: left;
-            }
-            .p-stars {
-                float: left;
-                margin-left: 20rpx;
-            }
-            .acount {
-                float: right;
-                text {
-                    color: $color-system;
-                }
-            }
-        }
-    }
-
-    .icon-xiayibu {
-        line-height: 154rpx;
-        display: inline-block;
-        position: absolute;
-        width: 48rpx;
-        top: 0;
-        right: 0;
-        color: #b2b2b2;
-    }
-}
-.product-details {
-    width: 100%;
-    background: #ffffff;
-    border-bottom: 20rpx solid #f7f7f7;
-    &.recommend {
-        background-color: #f7f7f7;
-        border-bottom: none;
-        .title {
-            .title-tab {
-                background-color: #f7f7f7;
-                color: $text-color;
-            }
-        }
-    }
-    .product-details-image {
-        width: 100%;
-        min-height: 856rpx;
-        box-sizing: border-box;
-        padding: 0 24rpx;
-        .product-details-table {
-            width: 100%;
-            min-height: 160rpx;
-            border: 1px solid #e1e1e1;
-            border-radius: 10rpx;
-            .ladder-tr {
-                display: flex;
-                width: 100%;
-                justify-content: center;
-                height: 80rpx;
-                align-items: center;
-                border-bottom: 1px solid #e1e1e1;
-                &:last-child {
-                    border-bottom: none;
-                }
-                .ladder-item-td {
-                    height: 80rpx;
-                    justify-content: center;
-                    text-align: center;
-                    box-sizing: border-box;
-                    padding: 10rpx;
-                    float: left;
-                    .te-text {
-                        line-height: 28rpx;
-                        font-size: $font-size-24;
-                        text-overflow: ellipsis;
-                        display: -webkit-box;
-                        word-break: break-all;
-                        -webkit-box-orient: vertical;
-                        -webkit-line-clamp: 2;
-                        overflow: hidden;
-                        color: #999999;
-                        &.last {
-                            width: 60%;
-                            float: left;
-                        }
-                    }
-                    .te-copy {
-                        width: 40%;
-                        float: right;
-                        font-size: $font-size-24;
-                        padding-top: 10rpx;
-                        .clipboard {
-                            width: 84rpx;
-                            height: 36rpx;
-                            background: #4688fa;
-                            text-align: center;
-                            font-size: $font-size-24;
-                            color: #ffffff;
-                            border-radius: 18rpx;
-                            line-height: 36rpx;
-                            display: inline-block;
-                        }
-                    }
-                    &.th {
-                        display: flex;
-                        height: 80rpx;
-                        align-items: center;
-                        line-height: 80rpx;
-                        font-size: 26rpx;
-                        color: #666;
-                    }
-                    &:nth-child(1) {
-                        width: 25%;
-                        border-right: 1px solid #e1e1e1;
-                    }
-                    &:nth-child(2) {
-                        width: 35%;
-                        border-right: 1px solid #e1e1e1;
-                    }
-                    &:nth-child(3) {
-                        width: 40%;
-                    }
-                }
-            }
-        }
-        .qualificationImg-image {
-            width: 100%;
-            height: 856rpx;
-            display: block;
-        }
-    }
-    .product-rich-text-none {
-        box-sizing: border-box;
-        padding: 0 24rpx;
-        text-align: left;
-        font-size: 24rpx;
-        color: #999999;
-        line-height: 60rpx;
-        &.bold {
-            font-weight: bold;
-            color: #333333;
-        }
-    }
-    .content-none {
-        width: 100%;
-        height: 80rpx;
-        line-height: 80rpx;
-        text-align: left;
-        font-size: $font-size-26;
-        color: #999999;
-        box-sizing: border-box;
-        padding: 0 24rpx;
-    }
-    .title {
-        width: 100%;
-        box-sizing: border-box;
-        padding: 0 24rpx;
-        .title-tab {
-            width: 100%;
-            height: 100rpx;
-            background: #fff;
-            z-index: 10;
-            font-size: $font-size-30;
-            text-align: left;
-            color: $text-color;
-            line-height: 100rpx;
-            font-weight: 600;
-        }
-        .title-msg {
-            width: 100%;
-            height: 236rpx;
-            padding: 18rpx;
-            background-color: rgba(225, 86, 22, 0.1);
-            color: $color-system;
-            box-sizing: border-box;
-            margin-bottom: 30rpx;
-            .tit {
-                line-height: 46rpx;
-                font-size: $font-size-24;
-                text-align: left;
-            }
-            .txt {
-                line-height: 38rpx;
-                font-size: $font-size-20;
-                text-align: justify;
-            }
-        }
-    }
-    .content {
-        width: 100%;
-        background-color: #ffffff;
-    }
-}
-.isLower {
-    width: 100%;
-    height: 116rpx;
-    line-height: 116rpx;
-    text-align: center;
-    color: #000000;
-    font-size: $font-size-32;
-    font-weight: bold;
-}
-.bottom-btn {
-    width: 100%;
-    height: 100rpx;
-    position: fixed;
-    bottom: 0;
-    left: 0;
-    background: #ffffff;
-    z-index: 99;
-    .bottom-le {
-        width: 300rpx;
-        height: 100rpx;
-        padding: 10rpx 20rpx 10rpx 0;
-        float: left;
-        box-sizing: border-box;
-        .item-bt {
-            width: 80rpx;
-            height: 100%;
-            margin-right: 15rpx;
-            display: flex;
-            float: left;
-            flex-direction: column;
-            align-items: center;
-            justify-content: center;
-            font-size: $font-size-22;
-            color: $text-color;
-            line-height: 34rpx;
-            position: relative;
-            .animation-num {
-                font-size: $font-size-32;
-                color: #ff2a2a;
-                position: absolute;
-                top: -12rpx;
-                right: 4rpx;
-                font-weight: bold;
-            }
-            .animation {
-                animation: showAmnation 2.2s ease-in-out both;
-            }
-            .restion {
-                animation: hideAmnation 1s ease-in-out both;
-            }
-            .icon-num {
-                position: absolute;
-                right: -12rpx;
-                top: -5rpx;
-            }
-            .icon-num.goleft {
-                right: 2rpx;
-            }
-            &:last-child {
-                margin-right: 0;
-            }
-            image {
-                width: 44rpx;
-                height: 44rpx;
-            }
-            button.contact-btn {
-                width: 100%;
-                height: 100%;
-                margin: 0;
-                padding: 0;
-                display: flex;
-                flex-direction: column;
-                align-items: center;
-                justify-content: center;
-                box-sizing: border-box;
-                font-size: $font-size-24;
-                text-align: center;
-                text-decoration: none;
-                line-height: 34rpx;
-                border-radius: 0;
-                -webkit-tap-highlight-color: transparent;
-                overflow: hidden;
-                color: $text-color;
-                background-color: #ffffff;
-            }
-        }
-    }
-    .bottom-ri {
-        width: 450rpx;
-        height: 100%;
-        float: right;
-        display: flex;
-        box-sizing: border-box;
-        padding: 13rpx 20rpx 13rpx 0;
-        .btn {
-            flex: 1;
-            width: 200rpx;
-            line-height: 80rpx;
-            text-align: center;
-            font-size: $font-size-24;
-            color: #ffffff;
-        }
-        .btn-cart {
-            background-color: #ffe6dc;
-            color: $color-system;
-            border-radius: 42rpx 0 0 42rpx;
-        }
-        .btn-cart.disabled {
-            background-color: #e1e1e1;
-            color: #ffffff;
-        }
-        .btn-bay {
-            background: linear-gradient(to right, #f28f31 0%, #ff5b00 100%);
-            border-radius: 0 42rpx 42rpx 0;
-        }
-        .btn-bay.disabled {
-            background: linear-gradient(135deg, rgba(242, 143, 49, 0.5) 0%, rgba(225, 86, 22, 0.5) 100%);
-        }
-    }
-}
-.uni-badge--small {
-    -webkit-transform: scale(0.8);
-    -ms-transform: scale(0.8);
-    transform: scale(0.8);
-    -webkit-transform-origin: center center;
-    -ms-transform-origin: center center;
-    transform-origin: center center;
-}
-.uni-badge {
-    font-family: 'Helvetica Neue', Helvetica, sans-serif;
-    -webkit-box-sizing: border-box;
-    box-sizing: border-box;
-    font-size: 12px;
-    line-height: 1;
-    display: inline-block;
-    padding: 3px 6px;
-    color: #333;
-    border-radius: 100px;
-    background-color: #f1f1f1;
-}
-.uni-badge-error {
-    color: #fff;
-    background-color: #dd524d;
-}
-.product-topnav {
-    width: 100%;
-    height: 174rpx;
-    box-sizing: border-box;
-    background: #ffffff;
-    z-index: 990;
-    position: fixed;
-    opacity: 1;
-    left: 0;
-    &.fixed {
-        animation: showFixedColor 0.1s ease-in-out both;
-    }
-    &.none {
-        animation: hideFixedColor 0.1s ease-in-out both;
-    }
-    .navbar {
-        width: 100%;
-        height: 60rpx;
-        box-sizing: border-box;
-        padding: 0 24rpx;
-        display: flex;
-        .nav-item {
-            display: flex;
-            flex: 1;
-            justify-content: center;
-            align-items: center;
-            height: 60rpx;
-            font-size: $font-size-28;
-            color: $text-color;
-            position: relative;
-            float: left;
-            position: relative;
-            .line {
-                width: 60rpx;
-                height: 2px;
-                border-radius: 1px;
-                background: #ffffff;
-                position: absolute;
-                bottom: 0;
-                left: 50%;
-                margin-left: -30rpx;
-            }
-            &.current {
-                color: $color-system;
-                .line {
-                    background: $color-system;
-                }
-            }
-        }
-    }
-    .search-input {
-        width: 100%;
-        height: 114rpx;
-        padding: 24rpx;
-        box-sizing: border-box;
-        .gosearch-btn {
-            width: 100%;
-            height: 100%;
-            border-radius: 40rpx;
-            margin: 0 auto;
-            font-size: 26rpx;
-            line-height: 66rpx;
-            color: #b2b2b2;
-            position: relative;
-            box-sizing: border-box;
-            padding-left: 66rpx;
-            &.fixed {
-                background: rgba(70, 70, 70, 0.1);
-            }
-            &.none {
-                background: rgba(70, 70, 70, 0.1);
-            }
-            .search-icon {
-                width: 66rpx;
-                height: 66rpx;
-                position: absolute;
-                left: 0;
-                top: 2rpx;
-                text-align: center;
-                line-height: 66rpx;
-                .icon-iconfonticonfontsousuo1 {
-                    margin: 0 6rpx;
-                    font-size: $font-size-34;
-                    color: #b2b2b2;
-                    z-index: 10;
-                }
-            }
-            .search-text {
-                font-size: $font-size-24;
-                line-height: 66rpx;
-                color: #b2b2b2;
-            }
-        }
-    }
-}
-
-@keyframes showFixedColor {
-    0% {
-        background: rgba(255, 255, 255, 0);
-    }
-    50% {
-        background: rgba(255, 255, 255, 0.5);
-    }
-    100% {
-        background: rgba(255, 255, 255, 1);
-    }
-}
-@keyframes hideFixedColor {
-    0% {
-        background: rgba(255, 255, 255, 1);
-    }
-    50% {
-        background: rgba(255, 255, 255, 0.5);
-    }
-    100% {
-        background: rgba(255, 255, 255, 0);
-    }
-}
-/* 加入购物模态层*/
-@keyframes showPopup {
-    0% {
-        opacity: 0;
-    }
-    100% {
-        opacity: 1;
-    }
-}
-@keyframes hidePopup {
-    0% {
-        opacity: 1;
-    }
-    100% {
-        opacity: 0;
-    }
-}
-@keyframes showLayer {
-    0% {
-        transform: translateY(0);
-    }
-    100% {
-        transform: translateY(-100%);
-    }
-}
-@keyframes hideLayer {
-    0% {
-        transform: translateY(-100%);
-    }
-    100% {
-        transform: translateY(0);
-    }
-}
-@keyframes showAmnation {
-    0% {
-        top: -12rpx;
-        opacity: 0;
-    }
-    50% {
-        top: -60rpx;
-        opacity: 1;
-    }
-    100% {
-        top: -100rpx;
-        opacity: 0;
-    }
-}
-@keyframes hideAmnation {
-    0% {
-        top: -100rpx;
-        opacity: 0;
-    }
-    100% {
-        top: -12rpx;
-        opacity: 0;
-    }
-}
-.tui-popup-box {
-    position: relative;
-    box-sizing: border-box;
-    min-height: 220rpx;
-    padding: 40rpx 24rpx 0 24rpx;
-    .tui-popup-close {
-        width: 90rpx;
-        height: 90rpx;
-        position: absolute;
-        right: 0;
-        top: 24rpx;
-        line-height: 90rpx;
-        text-align: center;
-        color: #b2b2b2;
-        .icon-iconfontguanbi {
-            font-size: $font-size-40;
-        }
-    }
-    .title {
-        font-size: $font-size-34;
-        color: $text-color;
-        line-height: 88rpx;
-        text-align: center;
-        float: left;
-        width: 100%;
-        height: 88rpx;
-        font-weight: bold;
-    }
-    .tui-popup-main {
-        width: 100%;
-        float: left;
-        &.coupon {
-            padding-bottom: 40rpx;
-            .coupon-empty {
-                width: 100%;
-                height: 600rpx;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                flex-direction: column;
-                position: fixed;
-                background: $bg-color;
-                .empty-container-image {
-                    width: 150rpx;
-                    height: 150rpx;
-                    margin-bottom: 0;
-                    margin-top: 0;
-                }
-                .error-text {
-                    font-size: $font-size-28;
-                    color: #999999;
-                    line-height: 88rpx;
-                }
-            }
-        }
-        .tui-popup-scroll {
-            width: 100%;
-            height: 600rpx;
-            .coupon-list {
-                width: 100%;
-                height: 200rpx;
-                margin-top: 24rpx;
-                box-sizing: border-box;
-                background: url(https://static.caimei365.com/app/img/icon/icon-coupon-uesb@2x.png);
-                background-size: cover;
-                &:last-child {
-                    margin-bottom: 24rpx;
-                }
-                .list-cell-le {
-                    width: 224rpx;
-                    height: 100%;
-                    box-sizing: border-box;
-                    padding: 37rpx 0;
-                    float: left;
-                    .coupon-maxMoney {
-                        width: 100%;
-                        height: 78rpx;
-                        line-height: 78rpx;
-                        font-size: 56rpx;
-                        color: #ffffff;
-                        text-align: center;
-                        .small {
-                            font-size: $font-size-24;
-                        }
-                    }
-                    .coupon-minMoney {
-                        width: 100%;
-                        height: 33rpx;
-                        line-height: 33rpx;
-                        font-size: $font-size-24;
-                        color: #ffffff;
-                        text-align: center;
-                    }
-                }
-                .list-cell-ri {
-                    width: 478rpx;
-                    height: 100%;
-                    box-sizing: border-box;
-                    padding: 20rpx 24rpx 0 24rpx;
-                    float: right;
-                    .list-cell-top {
-                        width: 100%;
-                        height: 121rpx;
-                        float: left;
-                        border-bottom: 1px solid #e1e1e1;
-                        .list-cell-type {
-                            width: 286rpx;
-                            height: 100%;
-                            float: left;
-                            .list-cell-tags {
-                                width: 100%;
-                                height: 32rpx;
-                                margin-bottom: 7rpx;
-                                .tags {
-                                    display: inline-block;
-                                    padding: 0 10rpx;
-                                    height: 32rpx;
-                                    line-height: 32rpx;
-                                    background-color: #ffdcce;
-                                    color: #f94b4b;
-                                    font-size: $font-size-20;
-                                    border-radius: 8rpx;
-                                    text-align: center;
-                                    float: left;
-                                }
-                            }
-                            .list-cell-texts {
-                                width: 100%;
-                                height: auto;
-                                line-height: 35rpx;
-                                text-overflow: ellipsis;
-                                display: -webkit-box;
-                                word-break: break-all;
-                                -webkit-box-orient: vertical;
-                                -webkit-line-clamp: 2;
-                                overflow: hidden;
-                                font-size: 26rpx;
-                                color: #333333;
-                            }
-                        }
-                        .list-cell-btn {
-                            width: 128rpx;
-                            height: 100%;
-                            float: right;
-                            .icon-used {
-                                width: 100%;
-                                height: 100%;
-                                box-sizing: border-box;
-                                padding-top: 28rpx;
-                                .icon-used-text {
-                                    width: 100%;
-                                    text-align: center;
-                                    line-height: 26rpx;
-                                    font-size: $font-size-20;
-                                    color: #f94b4b;
-                                }
-                                .icon-used-btn {
-                                    width: 128rpx;
-                                    height: 48rpx;
-                                    border-radius: 28rpx;
-                                    line-height: 48rpx;
-                                    font-size: $font-size-26;
-                                    text-align: center;
-                                    &.receive {
-                                        background-image: linear-gradient(270deg, #f94b4b 0%, #feb673 100%);
-                                        color: #ffffff;
-                                    }
-                                    &.make {
-                                        border: solid 1px #f94b4b;
-                                        color: #f94b4b;
-                                    }
-                                }
-                            }
-                        }
-                    }
-                    .list-cell-time {
-                        width: 100%;
-                        height: 58rpx;
-                        line-height: 58rpx;
-                        text-align: left;
-                        font-size: $font-size-20;
-                        color: #999999;
-                    }
-                }
-            }
-            &.train {
-                height: 240rpx;
-            }
-            .content-tr {
-                width: 100%;
-                min-height: 58rpx;
-                line-height: 58rpx;
-                display: flex;
-                .content-td {
-                    display: flex;
-                    flex: 3;
-                    font-size: $font-size-26;
-                    color: #999999;
-                    line-height: 58rpx;
-                    text-align: left;
-                }
-                .content-th {
-                    display: flex;
-                    flex: 7;
-                    font-size: $font-size-26;
-                    color: #333333;
-                    line-height: 58rpx;
-                    text-align: left;
-                    padding-left: 10rpx;
-                }
-            }
-        }
-    }
-    .tui-shopping-main {
-        width: 100%;
-        .layer-smimg {
-            width: 114rpx;
-            height: 114rpx;
-            float: left;
-            border-radius: 10rpx;
-            margin-right: 24rpx;
-            image {
-                width: 114rpx;
-                height: 114rpx;
-                border-radius: 10rpx;
-            }
-        }
-        .layer-nunbox {
-            justify-content: space-between;
-            align-items: center;
-            width: 536rpx;
-            height: auto;
-            float: left;
-            .layer-nunbox-t {
-                width: 100%;
-                height: 44rpx;
-                position: relative;
-                display: flex;
-                margin-bottom: 10rpx;
-                .text {
-                    font-size: $font-size-24;
-                    line-height: 48rpx;
-                    color: #999999;
-                }
-                .layer-nunbox-text {
-                    line-height: 44rpx;
-                    font-size: $font-size-28;
-                }
-                .number-box {
-                    display: flex;
-                    justify-content: center;
-                    align-items: center;
-                    border: 2rpx solid #ffe6dc;
-                    border-radius: 30rpx;
-                    height: 48rpx;
-                    margin-left: 20rpx;
-                    .iconfont {
-                        font-size: $font-size-24;
-                        padding: 0 18rpx;
-                        color: #999999;
-                        text-align: center;
-                        line-height: 48rpx;
-                        font-weight: bold;
-                        background: #fef6f3;
-                        &.icon-jianhao {
-                            border-radius: 30rpx 0 0 30rpx;
-                        }
-                        &.icon-jiahao {
-                            border-radius: 0 30rpx 30rpx 0;
-                        }
-                    }
-                    .btn-input {
-                        width: 62rpx;
-                        height: 48rpx;
-                        line-height: 48rpx;
-                        background: #ffffff;
-                        border-radius: 4rpx;
-                        text-align: center;
-                        font-size: $font-size-28;
-                    }
-                }
-                .product-step {
-                    position: absolute;
-                    left: 45rpx;
-                    bottom: 0;
-                    height: 44rpx;
-                    background: #ffffff;
-                }
-            }
-            .layer-nunbox-b {
-                width: 100%;
-                height: 44rpx;
-                margin-top: 13rpx;
-            }
-            .text {
-                line-height: 44rpx;
-                font-size: $font-size-28;
-                .p {
-                    color: #ff2a2a;
-                }
-                .p:first-child {
-                    margin-left: 30rpx;
-                }
-                .p.sm {
-                    font-size: $font-size-24;
-                }
-            }
-        }
-    }
-}
-.tui-popup-btn {
-    width: 100%;
-    height: auto;
-    float: left;
-    margin-top: 24rpx;
-    .tui-button {
-        width: 100%;
-        height: 88rpx;
-        background: $btn-confirm;
-        line-height: 88rpx;
-        text-align: center;
-        color: #ffffff;
-        font-size: $font-size-28;
-        border-radius: 44rpx;
-    }
-}
-/*富文本样式*/
-rich-text.p {
-    width: 702rpx !important;
-    padding: 0 24rpx;
-    text-align: justify;
-}
-rich-text.img {
-    width: 100%;
-    height: auto;
-}
-</style>
+<template>
+	<view
+		class="product "
+		:style="{
+			paddingBottom: userIdentity == 1 && userIdentity == 3 ? '0rpx' : '188rpx',
+			paddingTop: CustomBar + 'px'
+		}"
+	>
+		<custom-p
+			v-if="isHeaderPoduct"
+			:systeminfo="systeminfo"
+			:navbar-data="nvabarData"
+			:headerBtnPosi="headerBtnPosi"
+			:headerColor="headerColor"
+			:type="isShareType"
+			:page="backPage"
+		/>
+		<view
+			class="product-topnav"
+			id="topBar"
+			v-show="isNavbarFiexd"
+			:class="navbarFiexd"
+			:style="{ top: CustomBar - 2 + 'px' }"
+		>
+			<view class="search-input">
+				<view class="gosearch-btn" :class="navbarFiexd" @click="this.$api.navigateTo(clickPath)">
+					<view class="search-icon"><text class="iconfont icon-iconfonticonfontsousuo1"></text></view>
+					<view class="search-text">搜索商品/项目仪器</view>
+				</view>
+			</view>
+			<view class="navbar">
+				<view
+					class="nav-item tui-skeleton-fillet"
+					:class="{ current: tabCurrentIndex === 0 }"
+					@click="tabClick(0)"
+				>
+					<text>详情</text> <text class="line"></text>
+				</view>
+				<view
+					class="nav-item tui-skeleton-fillet"
+					:class="{ current: tabCurrentIndex === 1 }"
+					@click="tabClick(1)"
+				>
+					<text>服务项目</text> <text class="line"></text>
+				</view>
+				<view
+					class="nav-item tui-skeleton-fillet"
+					:class="{ current: tabCurrentIndex === 2 }"
+					@click="tabClick(2)"
+					v-if="product.qualificationImg"
+				>
+					<text>商品资质</text> <text class="line"></text>
+				</view>
+				<view
+					class="nav-item tui-skeleton-fillet"
+					:class="{ current: tabCurrentIndex === 3 }"
+					@click="tabClick(3)"
+				>
+					<text>推荐</text> <text class="line"></text>
+				</view>
+				<view
+					class="nav-item tui-skeleton-fillet"
+					:class="{ current: tabCurrentIndex === 4 }"
+					@click="tabClick(4)"
+					v-if="product.archiveId !== 0"
+				>
+					<text>相关资料</text> <text class="line"></text>
+				</view>
+			</view>
+		</view>
+		<tui-skeleton
+			v-if="skeletonShow"
+			backgroundColor="#fafafa"
+			borderRadius="10rpx"
+			:isLoading="true"
+			:loadingType="5"
+		/>
+		<template v-else>
+			<view class="cart-content empty" v-if="isInvalid">
+				<view class="empty-container">
+					<image class="empty-container-image" :src="productNoneImage" mode="aspectFit"></image>
+					<text class="error-text">商品已失效,去商城逛逛别的吧~</text>
+					<view class="login-btn" @click="goIndex">去商城</view>
+				</view>
+			</view>
+			<view class="container-product tui-skeleton" v-else>
+				<view class="container-product-main">
+					<view class="product-top">
+						<view class="banner-section">
+							<view class="cm-product-type" v-if="product.productType == 2">医疗器械</view>
+							<view class="cm-product-cover" v-if="product.appletsActType === 1"></view>
+							<uni-swiper-dot :info="productImage" :current="current" field="content" :mode="mode">
+								<swiper
+									class="banner tui-banner tui-skeleton-rect"
+									@change="swiperChange"
+									:duration="800"
+									:autoplay="false"
+									:circular="true"
+								>
+									<swiper-item v-for="(item, index) in productImage" :key="index" class="banner-item">
+										<image :src="item" @click="previewImg(index)" class="product-img" />
+									</swiper-item>
+								</swiper>
+								<view class="swiper__dots-box">
+									<tui-tag
+										padding="12rpx 24rpx"
+										type="translucent"
+										shape="circleLeft"
+										size="32rpx"
+										:scaleMultiple="0.82"
+										originRight
+									>
+										{{ current + 1 }}/{{ productImage && productImage.length }}
+									</tui-tag>
+								</view>
+							</uni-swiper-dot>
+						</view>
+						<view class="product-wrap clearfix">
+							<view class="wrap-top" :class="goodsData.isNoneDisabled ? 'none' : ''">
+								<view class="wrap-top-price">
+									<cm-price
+										v-if="isRequest"
+										:product="product"
+										:userIdentity="userIdentity"
+										:shopID="shopID"
+										:promotions="product.promotions"
+										:ladderPriceList="ladderPriceList"
+									/>
+								</view>
+								<view class="p-title tui-skeleton-fillet">
+									<view class="mclap-tag" v-if="product.beautyActFlag == '1'">美博会</view>
+									<view class="p-title-name" :class="product.beautyActFlag == '1' ? 'indent' : ''">
+										{{ product.name == undefined ? '' : product.name }}
+									</view>
+									<button
+										open-type="share"
+										class="p-title-share tui-share-position"
+										@tap="onShare"
+										v-if="userInfo.userIdentity !== 1"
+									>
+										<view class=""><text class="iconfont icon-fenxiang1"></text></view>
+										<view class="">分享</view>
+									</button>
+									<button class="p-title-share tui-share-position" @click="handleShare" v-else>
+										<view class=""><text class="iconfont icon-fenxiang1"></text></view>
+										<view class="">分享</view>
+									</button>
+								</view>
+								<view class="wrap-label" v-if="product.tagsList && product.tagsList.length > 0">
+									<view
+										class="label-a tui-skeleton-fillet"
+										v-for="(label, index) in product.tagsList"
+										:key="index"
+									>
+										{{ label }}
+									</view>
+								</view>
+								<view class="product-seve" v-if="hasLogin">
+									<text class="label">采美承诺:</text>
+									<text class="iconfont icon-dui tui-skeleton-rect">
+										<text class="text">无忧退货</text>
+									</text>
+									<text class="iconfont icon-dui tui-skeleton-rect">
+										<text class="text">快速退款</text>
+									</text>
+									<text class="iconfont icon-dui tui-skeleton-rect">
+										<text class="text">正品保证</text>
+									</text>
+								</view>
+								<view
+									class="productRemarks"
+									v-if="product.productRemarks != '' && product.productRemarks != null"
+								>
+									备注:{{ product.productRemarks }}
+								</view>
+							</view>
+						</view>
+					</view>
+					<view class="product-item-none" v-if="goodsData.isNoneDisabled">
+						<image class="none-image" :src="productNoneImage" mode=""></image>
+						<view class="none-text">此商品已{{ goodsData.disabledText }},请浏览以下推荐商品~</view>
+						<view class="none-text">咨询类似商品,请联系客服!</view>
+					</view>
+					<!-- 选择规格 -->
+					<view class="product-parameter" v-if="isShowButton || userIdentity === 1" @click="showPopup(3)">
+						<text class="title">选择:</text> <text class="name">共{{ skusCount }}种规格可选</text>
+						<text class="iconfont icon-xiayibu"></text>
+					</view>
+					<!-- 参数 -->
+					<view class="product-parameter" @click="showPopup(0)" v-if="!goodsData.isNoneDisabled">
+						<text class="title">参数:</text> <text class="name">品牌 分类...</text>
+						<text class="iconfont icon-xiayibu"></text>
+					</view>
+					<!-- 特殊商品退货须知 -->
+					<view class="return-instructions" v-if="returnGoodsStutas">
+						<cm-return-instructions :content="helpContent"></cm-return-instructions>
+					</view>
+					<!-- 配套商品 -->
+					<view
+						class="product-supporting"
+						v-if="!goodsData.isNoneDisabled && isShowSupportingList && supportingList.length > 0"
+						@click.stop="handleSupporting"
+					>
+						<view class="product-supporting-title">配套商品({{ supportingNum }})</view>
+						<view class="product-supporting-list">
+							<view
+								class="list"
+								v-for="(supporting, index) in supportingList"
+								:key="index"
+								v-if="index < 4"
+							>
+								<image class="list-image" :src="supporting.image" mode=""></image>
+							</view>
+							<text class="iconfont icon-xiayibu"></text>
+						</view>
+					</view>
+					<!-- 优惠券 -->
+					<view
+						class="product-parameter coupon"
+						v-if="isShowButton && productCoupon.length > 0"
+						@click="showPopup(2)"
+					>
+						<text class="title">优惠券:</text>
+						<view class="coupon">
+							<text class="tags" v-for="(coupon, index) in productCoupon.slice(0, 3)" :key="index">
+								满{{ coupon.touchPrice }}减{{ coupon.couponAmount }}
+							</text>
+						</view>
+						<text class="iconfont icon-xiayibu"></text>
+					</view>
+					<!-- 仪器培训方案 -->
+					<view
+						class="product-parameter"
+						@click="showPopup(1)"
+						v-if="product.commodityType == 2 && product.trainingMethod"
+					>
+						<text class="title">培训方案:</text>
+						<text class="name">{{ product.trainingMethod == 1 ? '线上培训' : '线下培训' }}</text>
+						<text class="iconfont icon-xiayibu"></text>
+					</view>
+					<!-- 供应商 -->
+					<view class="product-supplier" @click="goSupplier">
+						<view class="logo">
+							<img
+								:src="
+									shop.logo
+										? shop.logo
+										: 'https://static.caimei365.com/app/img/icon/icon-shoplogo.png'
+								"
+								alt=""
+							/>
+						</view>
+						<view class="main">
+							<view class="name">{{ shop.name }}</view>
+							<view class="massgs">
+								<view class="label">满意度:</view>
+								<view class="p-stars">
+									<uni-stars
+										:stars="6"
+										:iconClass="iconClass"
+										:iconColor="iconColor"
+										:fontSize="36"
+										:widthInfo="176"
+									></uni-stars>
+								</view>
+								<view class="acount">
+									<text>{{ shop.normalNum }}</text> 件商品
+								</view>
+							</view>
+						</view>
+						<view class="right" v-if="!isShowCaimeiShop"><text class="iconfont icon-xiayibu"></text></view>
+					</view>
+				</view>
+				<!-- 商品详情 -->
+				<view v-show="tabCurrentIndex !== 4">
+					<view class="product-details product-details0">
+						<view class="title"><view class="title-tab">商品详情</view></view>
+						<view class="content tui-banner product-rich-text tui-skeleton-rect">
+							<template v-if="!goodsData.isNoneDisabled && product.productDetail.detailInfo">
+								<mp-html :content="html" :tag-style="tagStyle" />
+							</template>
+							<view class="product-rich-text-none" v-else>暂无商品信息</view>
+						</view>
+					</view>
+					<!-- 服务项目 -->
+					<view class="product-details service product-details1">
+						<view class="title"><view class="title-tab">服务项目</view></view>
+						<view
+							class="content service"
+							v-if="product.productDetail.orderInfo || product.productDetail.serviceInfo"
+						>
+							<cm-service :product="product.productDetail" v-if="isRequest" />
+						</view>
+						<view class="content-none" v-else><text>暂无服务项目</text></view>
+					</view>
+					<!-- 商品资质 -->
+					<view class="product-details qualifications product-details2" v-if="product.qualificationImg">
+						<view class="title"><view class="title-tab">商品资质</view></view>
+						<view class="product-details-image">
+							<view class="product-details-table clearfix" v-if="product.qualificationNo">
+								<view class="ladder-tr">
+									<view class="ladder-item-td th">证书编号</view>
+									<view class="ladder-item-td th">产品名称</view>
+									<view class="ladder-item-td th">详情</view>
+								</view>
+								<view class="ladder-tr">
+									<view class="ladder-item-td">
+										<view class="te-text">{{ product.qualificationNo }}</view>
+									</view>
+									<view class="ladder-item-td">
+										<view class="te-text">{{ product.productName }}</view>
+									</view>
+									<view class="ladder-item-td">
+										<view class="te-text last">{{ product.qualificationLink }}</view>
+										<view class="te-copy">
+											<text class="clipboard" @click.stop="clipboard(product.qualificationLink)">
+												复制
+											</text>
+										</view>
+									</view>
+								</view>
+							</view>
+							<image
+								class="qualificationImg-image"
+								:src="product.qualificationImg"
+								mode="aspectFill"
+								@click="previewImg1(product.qualificationImg)"
+							></image>
+						</view>
+					</view>
+					<!-- 相关推荐 -->
+					<view class="product-details recommend product-details3">
+						<view class="title"><view class="title-tab">相关推荐</view></view>
+						<view class="content hot">
+							<cm-recommend
+								:query-productid="product.productId"
+								:query-type="product.recommendType"
+								v-if="isRequest"
+							/>
+						</view>
+					</view>
+				</view>
+				<!-- 相关资料 -->
+				<view class="product-details recommend product-details4" v-if="tabCurrentIndex === 4">
+					<cm-product-doc
+						@previewImage="changePreViewImageStatus"
+						:archiveId="product.archiveId"
+						:userId="userId"
+					/>
+				</view>
+				<!-- 优惠券 -->
+				<tui-bottom-popup :radius="true" :show="popupShow2" @close="hidePopup(2)">
+					<view class="tui-popup-box clearfix">
+						<view class="title">优惠券</view>
+						<view class="tui-popup-close" @click="hidePopup(2)">
+							<text class="iconfont icon-iconfontguanbi"></text>
+						</view>
+						<view class="tui-popup-tabs">
+							<coupon-tabs
+								:tabs="navbar"
+								:currentTab="currentTab > 2 ? 0 : currentTab"
+								@change="couponChange"
+								:itemWidth="100 / navbar.length + '%'"
+								selectedColor="#FF5B00"
+								sliderBgColor="#FF5B00"
+							/>
+						</view>
+						<div class="tui-popup-main coupon">
+							<scroll-view class="tui-popup-scroll" scroll-y="true">
+								<view class="coupon-empty" v-if="isCouponEmpty">
+									<image
+										class="empty-container-image"
+										:src="StaticUrl + '/icon/icon-coupon-empty@2x.png'"
+									></image>
+									<text class="error-text">暂无可领的优惠券~</text>
+								</view>
+								<template v-else>
+									<view
+										v-for="(coupon, index) in productCouponList"
+										:key="index"
+										:id="coupon.couponId"
+										class="coupon-list"
+									>
+										<view class="list-cell-le">
+											<view class="coupon-maxMoney">
+												<text class="small">¥</text> {{ coupon.couponAmount }}
+											</view>
+											<view class="coupon-minMoney">满{{ coupon.touchPrice }}可用</view>
+										</view>
+										<view class="list-cell-ri">
+											<view class="list-cell-top">
+												<view class="list-cell-type">
+													<view class="list-cell-tags">
+														<template v-if="coupon.moneyCouponFlag == 1">
+															<text class="tags" v-if="coupon.moneyCouponType == 1">
+																意向{{ coupon.couponType | TypeFormat }}
+															</text>
+															<text class="tags" v-else>
+																定向{{ coupon.couponType | TypeFormat }}
+															</text>
+														</template>
+														<template v-else>
+															<text class="tags">
+																{{ coupon.couponType | TypeFormat }}
+															</text>
+														</template>
+													</view>
+													<view class="list-cell-texts">
+														<text v-if="coupon.couponType == 0">
+															{{
+																coupon.productType && coupon.productType == 1
+																	? '全商城商品通用'
+																	: '仅可购买指定商品'
+															}}
+														</text>
+														<text v-if="coupon.couponType == 1">
+															{{
+																coupon.categoryType == 1
+																	? '仅限购买产品类商品'
+																	: '仅限购买仪器类商品'
+															}}
+														</text>
+														<text v-if="coupon.couponType == 3">
+															仅限购买店铺【{{ coupon.shopName }}】的商品
+														</text>
+														<text v-if="coupon.couponType == 4 || coupon.couponType == 2">
+															全商城商品通用
+														</text>
+													</view>
+												</view>
+												<view class="list-cell-btn">
+													<view class="icon-used">
+														<template v-if="coupon.couponBtnType == 0">
+															<template v-if="coupon.couponPayWay == 2">
+																<view class="icon-used-text">
+																	{{ coupon.moneyCouponPrice }}采美豆
+																</view>
+																<view
+																	class="icon-used-btn receive"
+																	@click="toDeductCoupon(coupon)"
+																>
+																	抵扣
+																</view>
+															</template>
+															<template v-else-if="coupon.couponPayWay == 1">
+																<view class="icon-used-text">购买</view>
+																<view
+																	class="icon-used-btn receive"
+																	@click="toPayCoupon(coupon)"
+																>
+																	¥{{ coupon.moneyCouponPrice }}
+																</view>
+															</template>
+															<template v-else>
+																<view
+																	class="icon-used-btn receive"
+																	@click="receiveCoupon(coupon)"
+																>
+																	领取
+																</view>
+															</template>
+														</template>
+														<view
+															class="icon-used-btn make"
+															v-if="coupon.couponBtnType == 1"
+														>
+															已领取
+														</view>
+													</view>
+												</view>
+											</view>
+											<view class="list-cell-time">
+												{{ coupon.startDate }} - {{ coupon.endDate }}
+											</view>
+										</view>
+									</view>
+								</template>
+							</scroll-view>
+						</div>
+					</view>
+				</tui-bottom-popup>
+				<!-- 培训方案 -->
+				<tui-bottom-popup :radius="true" :show="popupShow1" @close="hidePopup(1)">
+					<view class="tui-popup-box clearfix">
+						<view class="title">培训方案</view>
+						<div class="tui-popup-main">
+							<scroll-view class="tui-popup-scroll train" scroll-y="true">
+								<view class="content-tr">
+									<view class="content-td">培训方式:</view>
+									<view class="content-th">
+										{{ product.trainingMethod == 1 ? '线上培训' : '线下培训' }}
+									</view>
+								</view>
+								<view class="content-tr">
+									<view class="content-td">培训费用:</view>
+									<view class="content-th">
+										{{ product.trainingType == 1 ? '¥' + product.trainingFee : '售价已包含' }}
+									</view>
+								</view>
+							</scroll-view>
+						</div>
+						<view
+							class="tui-right-flex tui-popup-btn"
+							:style="{ paddingBottom: isIphoneX ? '68rpx' : '.34rpx' }"
+						>
+							<view class="tui-flex-1"><view class="tui-button" @click="hidePopup(1)">收起</view></view>
+						</view>
+					</view>
+				</tui-bottom-popup>
+				<!-- 底部按钮 -->
+				<view class="menu" v-if="isShowButton">
+					<view class="bottom-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '0rpx' }">
+						<view class="bottom-le">
+							<view class="item-bt" @click="this.$api.switchTabTo('/pages/tabBar/home/index')">
+								<image src="../../static/icon-home-active@3x.png"></image> <text>首页</text>
+							</view>
+							<view class="item-bt" @click="handleCollection">
+								<image
+									:src="
+										collectionType
+											? StaticUrl + 'icon/icon-collection@2x.png'
+											: StaticUrl + 'icon/icon-collection-none@2x.png'
+									"
+								></image>
+								<text>{{ collectionType ? '已收藏' : '收藏' }}</text>
+							</view>
+							<view class="item-bt" @click="buyProductCart()">
+								<image src="https://static.caimei365.com/app/img/icon/icon-cart-active@3x.png"></image>
+								<text>购物车</text>
+								<text
+									v-if="hasLogin && bottomCartNumber > 0"
+									class="uni-badge uni-badge-error uni-small uni-badge--small icon-num"
+									:class="[bottomCartNumber < 10 ? 'goleft' : '']"
+								>
+									{{ bottomCartNumber >= 100 ? '99+' : bottomCartNumber }}
+								</text>
+								<view class="animation-num" :class="isAnimation ? 'animation' : 'restion'">+1</view>
+							</view>
+						</view>
+						<view class="bottom-ri">
+							<button
+								:disabled="goodsData.disabled"
+								class="btn btn-cart"
+								:class="[goodsData.disabled ? 'disabled' : '']"
+								@tap.stop="btnGetConfirm('add')"
+							>
+								加入购物车
+							</button>
+							<button
+								:disabled="goodsData.disabled"
+								class="btn btn-bay"
+								:class="[goodsData.disabled ? 'disabled' : '']"
+								@tap.stop="btnGetConfirm('buy')"
+							>
+								立即购买
+							</button>
+						</view>
+					</view>
+				</view>
+				<!-- 侧边 -->
+				<scroll-top :isScrollTop="isScrollTop" :bottom="200" v-show="tabCurrentIndex !== 3"></scroll-top>
+			</view>
+		</template>
+		<!-- 商品参数 -->
+		<cm-prams-popup v-if="popupShow0" :popupShow="popupShow0" :product="product" />
+		<!-- 选择规格弹窗 -->
+		<cm-unit-popup
+			v-if="popupShow3"
+			:popupShow="popupShow3"
+			:skuProduct="skuProduct"
+			:productCoupon="productCoupon"
+			:type="unitPopupType"
+			:btnType="btnType"
+			:goodsData="goodsData"
+			@buyConfirm="handleBuyConfirm"
+			@skuClick="handleSkuClick"
+		/>
+		<!-- 弹窗提示 -->
+		<tui-modal
+			:show="modal"
+			@click="handleClick"
+			@cancel="hideMobel"
+			:content="contentModalText"
+			:button="modalButton"
+			color="#333"
+			:size="32"
+			shape="circle"
+			:maskClosable="false"
+		/>
+		<!-- 商品详情可见度弹窗提醒 -->
+		<cm-product-modal
+			v-if="showModal"
+			:showModal="showModal"
+			:commodityDetailsFlag="product.commodityDetailsFlag"
+			:isShareType="isShareType"
+			:userIdentity="userIdentity"
+			:firstClubType="firstClubType"
+		/>
+		<!-- 供应商收集用户信息弹窗 -->
+		<cmRossPopup v-if="showRossHtml" :popupShow="showRossHtml" :advertisement="advertisement" />
+
+		<!-- 分享弹窗 -->
+		<cm-share-popup ref="sharePopup" :data="posterData" type="product" />
+
+		<!-- 协销名片 -->
+		<cm-seller-modal :suid="suid" />
+	</view>
+</template>
+
+<script>
+import { mapState, mapMutations } from 'vuex'
+import customP from './components/cm-header.vue' //自定义导航
+import cmPrice from './components/cm-price.vue' //价格显示
+import cmAttributes from './components/cm-attributes.vue' //规格信息
+import cmRecommend from './components/recommend' //相关推荐
+import cmParameter from './components/cm-parameter' //相关参数
+import cmService from './components/cm-service' //服务项目
+import cmProductDoc from './components/cm-product-doc.vue'
+import cmProductModal from './components/cm-product-modal.vue'
+import cmPramsPopup from './components/cm-prams-popup.vue'
+import cmUnitPopup from './components/cm-unit-popup.vue'
+import couponTabs from '@/components/cm-module/coupon/tui-tabs.vue'
+import cmRossPopup from '@/components/cm-module/cm-ross/cm-ross-popup'
+import cmReturnInstructions from './components/cm-return-instructions.vue'
+import authorize from '@/common/config/authorize.js'
+import wxLogin from '@/common/config/wxLogin.js'
+import { debounce } from '@/common/config/common.js'
+import payMixins from '@/mixins/payMixins.js'
+import proMixins from './mixins/proMixins.js'
+import cmSrsMixins from '@/utils/cmSrsMixins.js'
+import thorui from '@/components/clipboard/clipboard.thorui.js'
+import cmSharePopup from '@/components/cm-share-popup/cm-share-popup.vue'
+import cmSellerModal from '@/components/cm-share-popup/cm-seller-modal.vue'
+import { queryParse } from './mixins/share.helper.js'
+var isPreviewImg
+export default {
+	mixins: [payMixins, proMixins, cmSrsMixins],
+	components: {
+		customP,
+		cmRecommend,
+		cmPrice,
+		cmAttributes,
+		cmParameter,
+		cmService,
+		couponTabs,
+		cmProductDoc,
+		cmPramsPopup,
+		cmUnitPopup,
+		cmProductModal,
+		cmRossPopup,
+		cmReturnInstructions,
+		cmSharePopup,
+		cmSellerModal
+	},
+	data() {
+		return {
+			StaticUrl: this.$Static, //静态图片路径
+			clickPath: '/pages/search/search',
+			html: '',
+			productNoneImage: 'https://static.caimei365.com/app/img/icon/icon-pnone.png',
+			mode: 'round',
+			iconClass: 'icon-aixin',
+			iconColor: '#ff9100',
+			specClass: '', // 规格弹窗css类,控制开关动画
+			isBtnType: '',
+			isRequest: false,
+			isScrollTop: false,
+			current: 0,
+			isShareType: '',
+			isHeaderPoduct: false,
+			isNavbarFiexd: false,
+			navbarFiexd: 'none',
+			ladderPriceFlag: '',
+			ladderPriceList: '',
+			isInvalid: false,
+			isEvaluate: false,
+			isAnimation: false,
+			skeletonShow: true,
+			isStock: false,
+			disabled: false,
+			isNoneDisabled: false,
+			tabCurrentIndex: 0,
+			userId: 0,
+			shopId: 0,
+			shopID: 0,
+			typeId: 0,
+			vipFlag: 0,
+			firstClubType: 0,
+			productId: 0,
+			skusCount: 0, // 规格种类
+			userIdentity: 0, // 用户类型
+			goodsData: {}, // 自定义数据
+			shop: {}, //供应商信息
+			product: {}, //采美
+			productImage: [],
+			retailPrice: 0,
+			stock: 0,
+			number: 0,
+			minBuyNumber: 0,
+			productsList: [],
+			goodListData: [],
+			productCoupon: [], // 优惠券
+			productCouponList: [], // 优惠券弹窗列表
+			headerBtnPosi: this.setHeaderBtnPosi(), // 获取设备顶部胶囊高度
+			systeminfo: this.setSysteminfo(), // 获取设备信息
+			windowHeight: '',
+			headerColor: false,
+			backPage: 1,
+			nvabarData: {
+				// 顶部自定义导航
+				showCapsule: 1, // 是否显示左上角图标   1表示显示    0表示不显示
+				title: '' // 导航栏 中间的标题
+			},
+			linkPath: '',
+			CustomBar: this.CustomBar, // 顶部导航栏高度
+			popupShow0: false, // 参数弹窗
+			popupShow1: false, // 培训方案
+			popupShow2: false, // 优惠券
+			popupShow3: false, // 购买弹窗
+			tabSelectFlag: false,
+			sectionPropsArr: [],
+			scrollTopArray: [],
+			winHeight: '',
+			isShowButton: true,
+			isCouponEmpty: false,
+			currentTab: 0,
+			couponParam: {
+				// 获取弹窗优惠券领取参数
+				userId: 0,
+				productId: 0,
+				status: 1,
+				source: 2
+			},
+			bottomCartNumber: 0,
+			navbar: [{ name: '未领取', num: 0 }, { name: '已领取', num: 0 }],
+			isPreviewImage: false,
+			opentype: '',
+			collectionType: false,
+			isShowSupportingList: false,
+			supportingList: [],
+			supportingNum: 0, // 组合商品总数
+			contentModalText: '', //操作文字提示语句
+			modal: false,
+			modalButton: [
+				{
+					text: '取消',
+					type: 'gray',
+					plain: true //是否空心
+				},
+				{
+					text: '去升级',
+					customStyle: {
+						color: '#fff',
+						bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)'
+					},
+					plain: false
+				}
+			],
+			showModal: false,
+			isShowCaimeiShop: false,
+			unitPopupType: 0, // 选择类型 1 点击加入购物车  立即购买  2:点击规格选择
+			returnGoodsStutas: false,
+			helpContent: '',
+			posterData: {}, // 商品详情
+			suid: 0, // 协销id
+			scene: {}, //获取二维码参数
+			options: {}
+		}
+	},
+	computed: {
+		...mapState(['hasLogin', 'clubType', 'identity', 'isIphoneX', 'userInfo'])
+	},
+	filters: {
+		TypeFormat(value) {
+			switch (value) {
+				case 0:
+					return '活动券'
+					break
+				case 1:
+					return '品类券'
+					break
+				case 2:
+					return '用户专享券'
+					break
+				case 3:
+					return '店铺券'
+					break
+				case 4:
+					return '新用户券'
+					break
+			}
+		}
+	},
+	watch: {
+		isNavbarFiexd(val) {
+			if (!this.isRequest || !val) return
+			let timer = null
+			clearTimeout(timer)
+			timer = setTimeout(() => {
+				if (this.sectionPropsArr.length > 0) return
+				this.getSectionProps()
+			}, 200)
+		}
+	},
+	onLoad(option) {
+		if (option.scene) {
+			// 识别小程序二维码
+			this.scene = queryParse(decodeURIComponent(option.scene)) // 转码
+		}
+		this.productId = this.couponParam.productId = this.addParams.productId = this.handleProsId =
+			option.id || this.scene.id //获取商品ID
+		if (option.typeId) {
+			this.typeId = option.typeId
+		}
+		this.opentype = option.open
+		this.isShareType = option.type
+		this.linkPath = option.path
+		this.isHeaderPoduct = true
+		if (option.page == 2) {
+			this.backPage = option.page
+		}
+		this.options = option.scene ? this.scene : option
+		this.getWinHeight()
+	},
+	onReady() {
+		if (this.opentype == 'caimei') {
+			// 跳转到资料详情
+			uni.showLoading({
+				title: '加载中'
+			})
+			setTimeout(() => {
+				this.isNavbarFiexd = true
+				this.tabClick(4)
+				uni.hideLoading()
+			}, 2000)
+		}
+		console.log('是iPhoneX', this.isIphoneX)
+	},
+	methods: {
+		async initGetStotage() {
+			// 初始化
+			const userInfo = await this.$api.getStorage()
+			this.userId = this.couponParam.userId = this.addParams.userId = userInfo.userId ? userInfo.userId : 0
+			this.userIdentity = userInfo.userIdentity ? userInfo.userIdentity : 0
+			this.vipFlag = userInfo.vipFlag ? userInfo.vipFlag : 0
+			this.shopID = userInfo.shopId ? userInfo.shopId : 0
+			this.firstClubType = this.clubType
+			if (this.userIdentity == 0 || this.userIdentity == 2 || this.userIdentity == 4) {
+				this.isShowButton = true
+			} else {
+				this.isShowButton = false
+			}
+			if (isPreviewImg) {
+				isPreviewImg = false
+				return
+			} else {
+				this.initData()
+			}
+		},
+		initData() {
+			// 初始化商品详情查询
+			this.ProductService.QueryProductDetils({
+				userId: this.userId,
+				productId: this.productId,
+				identity: this.identity,
+				typeId: this.typeId
+			})
+				.then(response => {
+					let productLabel = ''
+					this.productImage = []
+					this.shop = response.data.shop
+					this.shopId = response.data.shopId
+					const dataStr = JSON.stringify(response.data)
+					this.product = JSON.parse(dataStr)
+					this.skuProduct = JSON.parse(dataStr)
+					this.skusCount = this.product.skus.length
+					this.addParams.skuId = this.product.skuId
+					if (this.product.tinyTypeName) {
+						productLabel = this.product.tinyTypeName
+					} else if (!this.product.tinyTypeName && this.product.smallTypeName) {
+						productLabel = this.product.smallTypeName
+					} else {
+						productLabel = this.product.bigTypeName
+					}
+					//设置统计数据标签
+					if (this.product.relatedLabels) {
+						uni.setStorageSync('productLabel', this.product.relatedLabels)
+					} else {
+						uni.setStorageSync(
+							'productLabel',
+							`${productLabel}-${this.product.brandName ? this.product.brandName : ''}`
+						)
+					}
+					//校验是否为ross
+					this.checkedIsRossSet()
+					//判断是否可以跳转供应商主页
+					if (this.product.shopType === 2) {
+						this.isShowCaimeiShop = true
+					}
+					// 判断是否显示已收藏
+					if (this.product.userLike && this.product.userLike == 1) {
+						this.collectionType = true
+					} else {
+						this.collectionType = false
+					}
+					//已删除/已冻结
+					if (this.product.validFlag === 0 || this.product.validFlag == 10) {
+						this.isInvalid = true
+					} else if (this.product.validFlag === 9) {
+						if (this.userIdentity == 1) {
+							this.isInvalid = false
+						} else {
+							this.isInvalid = true
+						}
+					}
+					this.ladderPriceFlag = this.product.ladderPriceFlag
+					this.html = this.adaptRichTextImg(this.product)
+					this.stock = this.product.stock
+					this.number = this.product.minBuyNumber
+					this.minBuyNumber = this.product.minBuyNumber
+
+					//处理商品图片列表
+					this.product.imageList.forEach(item => {
+						this.productImage.push(item.image)
+					})
+					//处理阶梯价格
+					if (this.product.ladderPriceList != null) {
+						this.ladderPriceList = this.product.ladderPriceList
+					}
+					//拆分金额并转千分位格式显示
+					if (this.product.price != null) {
+						this.retailPrice = this.product.price.toFixed(2)
+					}
+					//处理下架商品和售罄商品
+					if (this.product.validFlag == 3 || this.product.saleOutFlag === 1) {
+						this.isNoneDisabled = true
+						this.disabled = true
+					} else {
+						this.disabled = false
+						this.isNoneDisabled = false
+						this.goodsData.disabledText = ''
+					}
+					if (this.product.priceFlag == 1) {
+						this.disabled = true
+					} else if (this.product.priceFlag == 2) {
+						if (this.userIdentity == 4 && this.vipFlag != 1) {
+							this.disabled = true
+						} else {
+							this.disabled = false
+						}
+					} else if (this.product.priceFlag == 3) {
+						if (this.userIdentity == 4) {
+							this.disabled = true
+						} else if (this.userIdentity == 2 && this.firstClubType != 1) {
+							this.disabled = true
+						} else {
+							this.disabled = false
+						}
+					} else {
+						this.disabled = false
+					}
+					this.goodsData.disabled = this.disabled
+					this.goodsData.isNoneDisabled = this.isNoneDisabled
+					if (this.product.validFlag == 3) {
+						this.goodsData.disabledText = '下架'
+					}
+					if (this.product.validFlag == 10) {
+						this.goodsData.disabledText = '停售'
+					}
+					if (this.product.saleOutFlag === 1) {
+						this.goodsData.disabledText = '售罄'
+					}
+					console.log(this.disabled)
+					// setTimeout(() => {
+					//     this.getSectionProps()
+					// }, 2000)
+					this.handleShowProductType(this.product.commodityDetailsFlag)
+					if ((this.hasLogin && this.userIdentity == 2) || this.userIdentity == 4) {
+						this.ProductCartNumber()
+					}
+					this.queryProductDetilsCoupons()
+					this.getCommodityCombinationList()
+					// 特殊商品退货须知
+					this.returnGoodsStutas = response.data.returnGoodsStutas && response.data.returnGoodsStutas === 2 // 1:可以 2:不可以
+					this.helpContent = response.data.helpContent
+
+					setTimeout(() => {
+						this.skeletonShow = false
+						this.isRequest = true
+					}, 1000)
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
+		},
+		handleShowProductType(flag = '') {
+			// 根据商品详情可见度显示弹窗 flag 1.所有人可见 2.所有机构可见 3.仅会员机构可见 4.仅医美机构可见
+			const flagMap = {
+				'2': true,
+				'3': true,
+				'4': true
+			}
+			if (!this.hasLogin) {
+				this.showModal = flagMap[flag]
+				return
+			}
+			if (this.vipFlag === 1) {
+				this.showModal = false
+				return
+			}
+			if (flag === 3 && this.userIdentity === 4) {
+				this.showModal = true
+				return
+			}
+			if (flag === 4 && this.userIdentity === 4) {
+				this.showModal = true
+				return
+			}
+			if (flag === 4 && this.userIdentity === 2 && this.firstClubType !== 1) {
+				this.showModal = true
+				return
+			}
+		},
+		hideMobel1() {
+			this.modal1 = false
+			this.$api.navigateBack(1)
+		},
+
+		adaptRichTextImg(product) {
+			// 商品详情
+			let defaulHtml = '<div style="text-align: center;color:#333333;">暂无内容</div>'
+			let html = ''
+			if (product.productDetailChose == 1) {
+				// 同资质机构显示商品详情
+				html = product.productDetail ? this.$api.adaptRichTextImg(product.productDetail.detailInfo) : defaulHtml
+			} else {
+				if (this.hasLogin && this.userIdentity != 4) {
+					html = product.productDetail
+						? this.$api.adaptRichTextImg(product.productDetail.detailInfo)
+						: defaulHtml
+				} else {
+					if (product.productDetail.commonDetailInfo) {
+						html = product.productDetail
+							? this.$api.adaptRichTextImg(product.productDetail.commonDetailInfo)
+							: defaulHtml
+					} else {
+						html = defaulHtml
+					}
+				}
+			}
+			return html
+		},
+		getCommodityCombinationList() {
+			// 初始化商品详情配套商品
+			this.ProductService.getCommodityCombinationList({
+				userId: this.userId,
+				productId: this.productId,
+				source: 2,
+				pageNum: 1,
+				pageSize: 4
+			})
+				.then(response => {
+					const data = response.data
+					this.supportingList = data.results
+					this.supportingNum = data.totalRecord
+					if (this.supportingList.length > 0) {
+						if (!this.hasLogin || this.userIdentity == 2 || this.userIdentity == 4) {
+							this.isShowSupportingList = true
+						}
+					}
+				})
+				.catch(error => {
+					console.log('获取组合商品列表失败')
+				})
+		},
+		queryProductDetilsCoupons() {
+			// 初始化商品详情优惠券信息
+			this.ProductService.QueryProductDetilsCoupons(this.couponParam)
+				.then(response => {
+					this.productCoupon = response.data.list
+				})
+				.catch(error => {
+					console.log('获取优惠券列表失败')
+				})
+		},
+		queryPopupCoupons() {
+			// 获取弹窗优惠券列表
+			this.ProductService.QueryProductDetilsCoupons(this.couponParam)
+				.then(response => {
+					let data = response.data
+					this.navbar[0].num = data.notCouponNum
+					this.navbar[1].num = data.couponNum
+					if (data.couponList && data.couponList.length > 0) {
+						this.productCouponList = data.couponList
+						this.isCouponEmpty = false
+					} else {
+						this.isCouponEmpty = true
+					}
+				})
+				.catch(error => {
+					console.log('获取优惠券列表失败')
+				})
+		},
+		ProductCartNumber() {
+			// 获取用户购物车储量
+			this.ProductService.ProductCartNumber({ userId: this.userId })
+				.then(response => {
+					this.bottomCartNumber = response.data
+				})
+				.catch(error => {
+					console.log('获取购物车数量失败')
+				})
+		},
+		receiveCoupon(coupon) {
+			// 点击优惠券领取按钮,友盟埋点收集领取优惠券
+			if (process.env.NODE_ENV != 'development') {
+				this.$uma.trackEvent('Um_Event_productCouponReceive', {
+					Um_Key_PageName: '商品详情',
+					Um_Key_EvenName: '领取优惠券',
+					Um_Key_CouponId: `${coupon.couponId}`
+				})
+			}
+			this.ProductService.ReceiveCoupon({
+				userId: this.couponParam.userId,
+				couponId: coupon.couponId,
+				source: 1
+			})
+				.then(response => {
+					this.$util.msg('领取成功', 1500, true, 'success')
+					setTimeout(() => {
+						this.currentTab = 1
+						this.couponParam.status = 2
+						this.queryPopupCoupons()
+					}, 1500)
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
+		},
+		toDeductCoupon(coupon) {
+			// 点击采美豆抵扣优惠券
+			if (process.env.NODE_ENV != 'development') {
+				this.$uma.trackEvent('Um_Event_userCouponCollectionBuy', {
+					Um_Key_PageName: '领券中心',
+					Um_Key_EvenName: '抵扣优惠券',
+					Um_Key_CouponId: `${coupon.couponId}`
+				})
+			}
+			if (this.hasLogin) {
+				if (this.userIdentity === 1 || this.userIdentity === 3) {
+					this.$util.msg('您的身份暂不支持领取优惠券', 2000)
+					return
+				}
+				this.WeChatPayCouponBeans(coupon)
+			} else {
+				this.$api.navigateTo('/pages/login/login')
+			}
+		},
+		WeChatPayCouponBeans(coupon) {
+			// 采美豆抵扣优惠券
+			this.PayService.WeChatPayCouponBeans({
+				source: 1, //领取渠道 1 小程序  2 网站
+				userId: this.couponParam.userId,
+				couponId: coupon.couponId
+			})
+				.then(response => {
+					this.$util.msg('抵扣成功', 1500)
+					setTimeout(() => {
+						this.currentTab = 1
+						this.couponParam.status = 2
+						this.queryPopupCoupons()
+					}, 1500)
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
+		},
+		toPayCoupon(coupon) {
+			// 点击购买优惠券,友盟埋点收集购买优惠券
+			if (process.env.NODE_ENV != 'development') {
+				this.$uma.trackEvent('Um_Event_productCouponBuy', {
+					Um_Key_PageName: '商品详情',
+					Um_Key_EvenName: '购买优惠券',
+					Um_Key_CouponId: `${coupon.couponId}`
+				})
+			}
+			this.createCouponRecord(coupon)
+		},
+		createCouponRecord(coupon) {
+			// 生成购买优惠券记录Id
+			this.PayService.WeChatCouponRecord({
+				userId: this.userId,
+				couponId: coupon.couponId
+			})
+				.then(response => {
+					this.MiniWxPayFor(coupon, response.data.couponRecordId)
+				})
+				.catch(error => {
+					if (error.code == -1) {
+						//个人机构不能购买
+						this.contentModalText = '该优惠券仅限医美机构购买,请升级为医美机构后再次购买。'
+						this.modal = true
+					} else if (error.code == -2) {
+						//会员机构不是医美机构不能购买
+						this.$util.msg('该优惠券仅限医美机构购买', 2000)
+					}
+				})
+		},
+		async MiniWxPayFor(coupon, couponRecordId) {
+			const wechatcode = await authorize.getCode('weixin')
+			const params = {
+				userId: this.userId,
+				couponId: coupon.couponId,
+				couponRecordId: couponRecordId,
+				payType: 'XCX',
+				code: wechatcode,
+				source: 1 //支付来源 1 小程序 2 WWW
+			}
+			this.weChatMiniCouponWxPay(
+				params,
+				'Um_Event_productCouponPay',
+				'商品详情',
+				'线上支付优惠券',
+				coupon.couponId,
+				this.userId
+			)
+		},
+		hideMobel() {
+			this.modal = false
+		},
+		handleClick(e) {
+			//个人机构跳转升级页面
+			if (e.index == 1) {
+				this.$api.navigateTo('/pages/login/apply')
+			}
+			this.modal = false
+		},
+		swiperChange(e) {
+			//顶部商品图片切换
+			const index = e.detail.current
+			this.current = index
+		},
+		previewImg1(url) {
+			let mentuzArray = []
+			mentuzArray.push(url)
+			uni.previewImage({
+				urls: mentuzArray,
+				current: 0
+			})
+		},
+		previewImg(index) {
+			//顶部商品图片预览
+			isPreviewImg = true
+			let previewUrls = this.productImage
+			uni.previewImage({
+				current: index, //图片索引
+				urls: previewUrls, //必须是http图片,本地图片无效
+				longPressActions: ''
+			})
+		},
+		//商品详情&&供应商信息tab切换
+		tabClick(index) {
+			// 重新标记
+			this.getSectionProps()
+			this.tabCurrentIndex = index
+			this.tabSelectFlag = true
+			let timer = null
+			clearTimeout(timer)
+			// 点击tab 300ms才执行跳转,避免出错(来回跳动)
+			timer = setTimeout(() => {
+				this.tabClickAction(index)
+			}, 500)
+		},
+		// 跳转执行
+		tabClickAction(index) {
+			const that = this
+			if (index === 4) {
+				return uni.pageScrollTo({
+					duration: 300, //过渡时间必须为0,uniapp bug,否则运行到手机会报错
+					scrollTop: this.sectionPropsArr[0].scrollTop
+				})
+			}
+			uni.pageScrollTo({
+				duration: 300, //过渡时间必须为0,uniapp bug,否则运行到手机会报错
+				scrollTop: this.sectionPropsArr[index].scrollTop,
+				success() {
+					setTimeout(() => {
+						that.tabSelectFlag = false
+					}, 300)
+				}
+			})
+		},
+		handleContact(e) {
+			//跳转小程序客服
+			console.log(e.detail.path)
+			console.log(e.detail.query)
+		},
+		buyProductCart() {
+			//底部购物车按钮点击
+			if (this.hasLogin) {
+				// 友盟埋点商品详情购物车入口点击事件
+				if (process.env.NODE_ENV != 'development') {
+					this.$uma.trackEvent('Um_Event_ProductShoppingCart', {
+						Um_Key_PageName: '去购物车',
+						Um_Key_SourcePage: '商品详情购物车入口'
+					})
+				}
+				this.$api.navigateTo('/pages/goods/cart')
+			} else {
+				this.$api.navigateTo('/pages/login/login?type=1')
+			}
+		},
+		btnGetConfirm(type) {
+			//加入购物车&&立即购买点击
+			if (this.hasLogin) {
+				this.btnType = type
+				this.popupShow3 = true
+				this.unitPopupType = 1
+			} else {
+				this.$api.navigateTo('/pages/login/login?type=1')
+			}
+		},
+		getAddProductCart() {
+			//增加购物车成功和toast弹窗提示成功
+			this.ProductService.shoppingAddCart({
+				productId: this.productId,
+				userId: this.userId,
+				productCount: this.number,
+				source: 2
+			})
+				.then(response => {
+					this.specClass = 'hide'
+					this.$util.msg('加入购物车成功', 1500, true, 'success')
+					this.isAnimation = true
+					setTimeout(() => {
+						this.specClass = 'none'
+					}, 200)
+					setTimeout(() => {
+						this.isAnimation = false
+					}, 2000)
+					this.bottomCartNumber = response.data
+				})
+				.catch(error => {
+					console.log('error', error.msg)
+				})
+		},
+		setHeaderBtnPosi() {
+			// 获得胶囊按钮位置信息
+			let headerBtnPosi = uni.getMenuButtonBoundingClientRect()
+			return headerBtnPosi
+		},
+		setSysteminfo() {
+			let systeminfo
+			uni.getSystemInfo({
+				// 获取设备信息
+				success: res => {
+					systeminfo = res
+				}
+			})
+			return systeminfo
+		},
+		goIndex() {
+			//商城首页
+			uni.switchTab({
+				url: '/pages/tabBar/home/index'
+			})
+		},
+		goSupplier() {
+			//跳供应商资料页
+			if (!this.isShowCaimeiShop) {
+				this.$api.navigateTo('/pages/supplier/user/my-shop?shopId=' + this.shopId)
+			}
+		},
+		discard() {
+			//丢弃
+		},
+		onShare(res) {
+			//分享转发
+			if (res.from === 'button') {
+				// 来自页面内转发按钮
+			}
+			return {
+				title: `${this.product.name}`,
+				path: `pages/goods/product?type=share&id=${this.productId}`,
+				imageUrl: `${this.productImage[0]}`
+			}
+		},
+		// 分享海报
+		handleShare() {
+			this.posterData = {
+				productName: this.product.name,
+				productImage: this.productImage[0],
+				suid: this.suid,
+				path: 'pages/goods/product',
+				id: this.productId
+			}
+			this.$refs.sharePopup.open()
+		},
+		handleCollection() {
+			// 收藏
+			if (this.hasLogin) {
+				this.ProductService.getProductUserLike({
+					userId: this.userId,
+					productId: this.product.productId
+				})
+					.then(response => {
+						this.collectionType = !this.collectionType
+						this.$util.msg(response.data, 1500, true, 'success')
+					})
+					.catch(error => {
+						this.$util.msg(error.msg, 2000)
+					})
+			} else {
+				this.$api.navigateTo('/pages/login/login')
+			}
+		},
+		showPopup(index) {
+			switch (index) {
+				case 0:
+					this.popupShow0 = true
+					break
+				case 1:
+					this.popupShow1 = true
+					break
+				case 2:
+					if (this.hasLogin) {
+						this.queryPopupCoupons()
+						this.popupShow2 = true
+					} else {
+						this.$api.navigateTo('/pages/login/login')
+					}
+					break
+				case 3:
+					this.popupShow3 = true
+					this.unitPopupType = 2
+					break
+			}
+		},
+		hidePopup(index) {
+			switch (index) {
+				case 0:
+					this.popupShow0 = false
+					break
+				case 1:
+					this.popupShow1 = false
+					break
+				case 2:
+					this.popupShow2 = false
+					break
+				case 3:
+					this.popupShow3 = false
+					break
+			}
+		},
+		couponChange(e) {
+			this.currentTab = e.index
+			switch (this.currentTab) {
+				case 0:
+					this.couponParam.status = 1
+					this.queryPopupCoupons()
+					break
+				case 1:
+					this.couponParam.status = 2
+					this.queryPopupCoupons()
+					break
+			}
+		},
+		handleSupporting() {
+			// 跳转组合商品页面
+			this.$api.navigateTo(`/pages/goods/goods-supporting?productId=${this.productId}`)
+		},
+		// 获取每个tab对应区域的区间
+		async getSectionProps() {
+			const sectionPropsArr = [],
+				scrollTopArray = [],
+				className = 'product-details'
+
+			// 获取相关节点元素信息
+			const productMain = await this.$util.boundingClientRect(this, '.container-product-main', false)
+			const productDetail = await this.$util.boundingClientRect(this, '.product-details', true)
+			const topBar = await this.$util.boundingClientRect(this, '#topBar', false)
+			/*
+                说明:采用累加方式来计算每一个 prdocut-details 的 scrollTop 定位
+                     scrollTop = 上一个的scrollTop + 上一个的高度
+            */
+			productDetail.forEach((item, index) => {
+				// 上一个 prdocut-details 的 scrollTop 值
+				const prev = sectionPropsArr[index - 1]
+				const prevScrollTop = prev ? prev.scrollTop : productMain.height
+				// 上一个 prdocut-details 的高度
+				const add = productDetail[index - 1]
+				// 第一个需要减去tabs的高度
+				const addHeight = index === 0 ? (add ? add.height : 0) - topBar.height : add ? add.height : 0
+				sectionPropsArr.push({
+					className: `${className}${index}`,
+					scrollTop: prevScrollTop + addHeight
+				})
+				// - topBar.height
+			})
+			this.sectionPropsArr = sectionPropsArr
+			console.log('更新tab影响区域', this.sectionPropsArr)
+		},
+		//当滑动时也能同步激活tab
+		activeTab: debounce(
+			(top, _this) => {
+				const { sectionPropsArr } = _this
+				if (sectionPropsArr && sectionPropsArr.length > 0) {
+					sectionPropsArr.forEach((item, index) => {
+						// 当前位置为开始位置, 下个起始位置为结束位置
+						const openInterval = (index === 0 ? 0 : item.scrollTop) - 20 // 自定义偏移
+						const next = sectionPropsArr[index + 1]
+						const closedInterval = (next ? next.scrollTop : 10000000) - 20 // 自定义偏移
+						if (top >= openInterval && top < closedInterval) {
+							_this.tabCurrentIndex = index
+						}
+					})
+				}
+			},
+			100,
+			true
+		),
+		debounce(fn, delay) {
+			let timer = null //借助闭包
+			return function() {
+				if (timer) {
+					clearTimeout(timer)
+				}
+				timer = setTimeout(fn, delay) // 简化写法
+			}
+		},
+		clipboard(data) {
+			thorui.getClipboardData(data, res => {
+				if (res) {
+					this.$util.msg('复制成功', 2000, true, 'success')
+				} else {
+					this.$util.msg('复制失败', 2000, true, 'none')
+				}
+			})
+		},
+		getWinHeight() {
+			this.winHeight = wx.getSystemInfoSync().windowHeight
+		},
+		changePreViewImageStatus(falg) {
+			this.isPreviewImage = falg
+		}
+	},
+	onPageScroll(e) {
+		//实时获取到滚动的值
+		const { scrollTop } = e
+		this.debounce(this.getSectionProps(), 1000)
+		if (!this.tabSelectFlag) {
+			this.activeTab(scrollTop, this)
+		}
+		if (e.scrollTop > 60) {
+			this.headerColor = true
+			this.navbarFiexd = 'fixed'
+			this.isNavbarFiexd = true
+			this.nvabarData = {
+				showCapsule: 1,
+				title: '商品详情'
+			}
+		} else {
+			this.headerColor = false
+			this.isNavbarFiexd = false
+			this.navbarFiexd = 'none'
+			this.nvabarData = {
+				showCapsule: 1,
+				title: ''
+			}
+		}
+		if (e.scrollTop > 700) {
+			this.isScrollTop = true
+		} else {
+			this.isScrollTop = false
+		}
+	},
+	onShareAppMessage(res) {
+		//分享转发
+		if (res.from === 'button') {
+			// 来自页面内转发按钮
+		}
+		return {
+			title: `${this.product.name}`,
+			path: `pages/goods/product?type=4&id=${this.productId}&suid=${
+				this.userInfo.userIdentity === 1 ? this.userInfo.userId : 0
+			}&spId=${this.userInfo.userIdentity === 1 ? this.userInfo.serviceProviderId : 0}`,
+			imageUrl: `${this.productImage[0]}`
+		}
+	},
+	onShow() {
+		wxLogin.wxLoginAuthorize()
+		// 是否开启图片预览 true 不刷新调用接口 false刷新调用接口
+		if (!this.isPreviewImage) {
+			this.initGetStotage()
+		}
+		this.isPreviewImage = false
+		const suid = this.options.suid
+			? this.options.suid
+			: this.scene.suid
+			? this.scene.suid
+			: uni.getStorageSync('suid') * 1
+			? uni.getStorageSync('suid') * 1
+			: 0 // 协销userId
+		const spId = this.options.spId
+			? this.options.spId
+			: this.scene.spId
+			? this.scene.spId
+			: uni.getStorageSync('spId') * 1
+			? uni.getStorageSync('spId') * 1
+			: 0 // 协销id
+		const isShare = this.options.type == 4 ? true : this.scene.type == 4 ? true : false //是否从分享页进入
+		if ((isShare || uni.getStorageSync('suid') * 1 > 0) && this.userInfo.userIdentity !== 1) {
+			// 分享进入 且 用户非协销 或不是从分享进入有缓存
+			if (
+				!uni.getStorageSync('spUserId') ||
+				uni.getStorageSync('spUserId') * 1 === uni.getStorageSync('suid') * 1
+			) {
+				// 如果未分配或者分配相同
+				this.suid = suid
+				uni.setStorageSync('suid', suid)
+				uni.setStorageSync('spId', spId)
+			} else {
+				uni.setStorageSync('suid', 0)
+				this.suid = 0
+				uni.setStorageSync('spId', 0)
+			}
+		}
+		console.log(this.suid, "uni.getStorageSync('spId')", uni.getStorageSync('spId'))
+	}
+}
+</script>
+
+<style lang="scss">
+page {
+	background-color: #ffffff;
+}
+.banner-section {
+	width: 100%;
+	height: 750rpx;
+	position: relative;
+	.cm-product-tags {
+		position: absolute;
+		right: 30rpx;
+		top: 0;
+		z-index: 999;
+	}
+	.cm-product-type {
+		width: 64rpx;
+		height: 64rpx;
+		text-align: justify;
+		box-sizing: border-box;
+		padding: 10rpx;
+		border-radius: 0 0 8rpx 8rpx;
+		background-color: #33ccbf;
+		font-size: $font-size-22;
+		color: #ffffff;
+		line-height: 25rpx;
+		position: absolute;
+		left: 30rpx;
+		top: 0;
+		z-index: 999;
+	}
+	.cm-product-cover {
+		width: 120rpx;
+		height: 77rpx;
+		line-height: 57rpx;
+		font-size: 24rpx;
+		color: #fff;
+		text-align: center;
+		background: url(https://static.caimei365.com/app/img/icon2/cm_cover_bg_app.png) no-repeat center;
+		background-size: 120rpx;
+		float: left;
+		position: absolute;
+		right: 30rpx;
+		top: 0;
+		z-index: 999;
+	}
+}
+.banner {
+	width: 100%;
+	height: 750rpx;
+	.product-img {
+		width: 750rpx;
+	}
+	image {
+		width: 100%;
+		height: 100%;
+	}
+	.banner-item {
+		position: relative;
+	}
+}
+.swiper__dots-box {
+	position: absolute;
+	color: #fff;
+	bottom: 30rpx;
+	right: 0;
+}
+.product-wrap {
+	width: 100%;
+	height: auto;
+	padding: 24rpx 0 0 0;
+	background-color: #ffffff;
+	border-bottom: 20rpx solid #f7f7f7;
+	.productRemarks {
+		height: 48rpx;
+		width: 100%;
+		float: left;
+		line-height: 48rpx;
+		font-size: 24rpx;
+		color: #999999;
+		text-align: left;
+	}
+	.wrap-top {
+		width: 702rpx;
+		padding: 0 24rpx;
+		height: auto;
+		float: left;
+		padding-bottom: 20rpx;
+		border-bottom: 1px solid #f8f8f8;
+		&.none {
+			.p-title {
+				color: #999999;
+			}
+		}
+		.p-title {
+			width: 100%;
+			height: auto;
+			float: left;
+			position: relative;
+			.p-title-name {
+				width: 602rpx;
+				height: auto;
+				float: left;
+				line-height: 48rpx;
+				font-size: $font-size-28;
+				color: $text-color;
+				-o-text-overflow: ellipsis;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				&.indent {
+					text-indent: 95rpx;
+				}
+			}
+			.mclap-tag {
+				display: block;
+				width: 84rpx;
+				height: 32rpx;
+				background-image: linear-gradient(270deg, #f9c023 0%, #f83600 100%);
+				border-radius: 4rpx 48rpx 4px 4px;
+				line-height: 32rpx;
+				font-size: $font-size-22;
+				color: #ffffff;
+				text-align: center;
+				position: absolute;
+				left: 0;
+				top: 6rpx;
+			}
+			.p-title-share {
+				width: 96rpx;
+				height: 96rpx;
+				position: absolute;
+				right: 0;
+				text-align: center;
+				color: #999999;
+				font-size: $font-size-24;
+				box-sizing: border-box;
+				display: block;
+				background: transparent;
+				border-radius: 0;
+				border: 0;
+				margin: 0;
+				padding: 8rpx 0;
+				z-index: 20;
+				.icon-fenxiang1 {
+					font-size: $font-size-34;
+				}
+			}
+			.tui-share-btn::after {
+				border: 0;
+			}
+		}
+		.wrap-main-text {
+			line-height: 56rpx;
+			color: #ff2a2a;
+			font-size: $font-size-26;
+			display: block;
+			float: left;
+			font-weight: normal;
+		}
+		.wrap-main-none {
+			display: block;
+			width: 256rpx;
+			height: 44rpx;
+			padding-left: 20rpx;
+			border-radius: 11rpx;
+			background: $btn-confirm;
+			float: right;
+			line-height: 44rpx;
+			color: #ffffff;
+			text-align: center;
+			font-size: $font-size-24;
+		}
+
+		.p-price-none {
+			height: 44rpx;
+			line-height: 44rpx;
+			float: left;
+			font-size: $font-size-24;
+			color: #666;
+			text-decoration: line-through;
+			margin-left: 8rpx;
+		}
+		.p-minBuy {
+			height: 44rpx;
+			line-height: 44rpx;
+			float: right;
+			padding: 0 18rpx;
+			border-radius: 22rpx;
+			background-color: #f7f7f7;
+			color: #7f7f7f;
+			font-size: 24rpx;
+			text-align: center;
+			.min-text {
+				margin: 0 6rpx;
+			}
+		}
+		.p-login {
+			height: 56rpx;
+			line-height: 56rpx;
+			color: $color-system;
+			font-size: $font-size-24;
+			&.grade {
+				.price-left {
+					float: left;
+					.none {
+						display: block;
+						font-size: $font-size-20;
+						line-height: 48rpx;
+						color: #4a4b54;
+						float: left;
+						font-weight: bold;
+						margin-left: 5rpx;
+						text {
+							letter-spacing: 4rpx;
+							font-size: $font-size-32;
+						}
+					}
+				}
+			}
+			.p-no {
+				float: left;
+				margin-right: 5rpx;
+				font-size: $font-size-28;
+				color: $text-color;
+			}
+			.p-login-btn {
+				display: block;
+				height: 44rpx;
+				padding: 0 10rpx 0 20rpx;
+				border-radius: 11rpx;
+				background: $btn-confirm;
+				float: right;
+				line-height: 44rpx;
+				color: #ffffff;
+				text-align: center;
+				font-size: $font-size-24;
+			}
+		}
+	}
+	.wrap-label {
+		float: left;
+		width: 85%;
+		box-sizing: border-box;
+		.label-a {
+			padding: 0 18rpx;
+			line-height: 32rpx;
+			font-size: $font-size-20;
+			color: $color-system;
+			text-align: center;
+			border-radius: 6rpx;
+			background: #ffe6dc;
+			margin: 0 20rpx 15rpx 0;
+			display: inline-block;
+		}
+	}
+	.wrap-top-price {
+		float: left;
+		width: 100%;
+		box-sizing: border-box;
+		.wrap-main-item {
+			width: 100%;
+			height: 56rpx;
+			.p-price {
+				height: 56rpx;
+				line-height: 56rpx;
+				float: left;
+				color: #ff2a2a;
+				font-weight: bold;
+				&.none {
+					text-decoration: line-through;
+					color: #999999;
+					font-weight: normal;
+				}
+				.txt {
+					margin: 0 2rpx;
+				}
+				.txt.sm {
+					font-size: $font-size-26;
+				}
+				.txt.big {
+					font-size: $font-size-34;
+				}
+			}
+			.p-right-price {
+				height: 56rpx;
+				line-height: 56rpx;
+				float: right;
+				color: #999999;
+				font-size: $font-size-30;
+				.none {
+					font-size: $font-size-26;
+					text-decoration: line-through;
+				}
+			}
+		}
+		.floor-item-act {
+			height: 56rpx;
+			text-align: center;
+			box-sizing: border-box;
+			float: left;
+			padding: 10rpx 0;
+			margin-left: 10rpx;
+		}
+		.floor-item-btn {
+			float: right;
+			height: 40rpx;
+			margin-top: 8rpx;
+			margin-left: 10rpx;
+			.btn {
+				line-height: 40rpx;
+				padding: 0 20rpx;
+				height: 40rpx;
+				background: $btn-confirm;
+				color: #ffffff;
+				font-size: $font-size-20;
+				border-radius: 4rpx;
+			}
+		}
+	}
+	.wrap-info {
+		float: left;
+		width: 702rpx;
+		padding: 24rpx 24rpx 0 24rpx;
+		border-bottom: 1px solid #f8f8f8;
+		.info-viewT {
+			width: 100%;
+			min-height: 40rpx;
+			font-size: $font-size-28;
+			color: $text-color;
+			line-height: 40rpx;
+			text-align: left;
+			&.none {
+				color: #999999;
+			}
+			.info-viewL {
+				min-width: 350rpx;
+				float: left;
+				margin-bottom: 24rpx;
+			}
+			.info-viewR {
+				min-width: 352rpx;
+				float: left;
+				margin-bottom: 24rpx;
+			}
+		}
+		.info-viewB {
+			width: 100%;
+			height: auto;
+		}
+		.info-f {
+			width: 50%;
+			float: left;
+			font-size: $font-size-28;
+			color: $text-color;
+			line-height: 40rpx;
+			margin-bottom: 24rpx;
+			text-align: left;
+		}
+	}
+}
+.product-seve {
+	width: 100%;
+	height: 60rpx;
+	background-color: #ffffff;
+	position: relative;
+	display: flex;
+	line-height: 60rpx;
+	.label {
+		font-size: $font-size-28;
+		color: #333333;
+	}
+	.iconfont {
+		color: #fea785;
+		margin-right: 20rpx;
+		font-size: $font-size-22;
+	}
+	.text {
+		font-size: $font-size-22;
+		color: #fea785;
+		margin-left: 10rpx;
+	}
+}
+.product-item-none {
+	min-height: 348rpx;
+	display: flex;
+	flex-direction: column;
+	align-items: center;
+	border-bottom: 20rpx solid #f7f7f7;
+	box-sizing: border-box;
+	padding: 40rpx 0;
+	.none-image {
+		width: 284rpx;
+		height: 225rpx;
+	}
+	.none-text {
+		text-align: center;
+		font-size: $font-size-28;
+		color: #fea785;
+		line-height: 40rpx;
+	}
+}
+.product-supporting {
+	width: 100%;
+	height: 274rpx;
+	box-sizing: border-box;
+	padding: 30rpx 24rpx;
+	background-color: #ffffff;
+	border-bottom: 20rpx solid #f7f7f7;
+	.product-supporting-title {
+		width: 100%;
+		height: 40rpx;
+		text-align: left;
+		line-height: 40rpx;
+		font-size: $font-size-28;
+		color: #333333;
+	}
+	.product-supporting-list {
+		width: 100%;
+		height: 154rpx;
+		box-sizing: border-box;
+		padding: 13rpx 0;
+		position: relative;
+		.icon-xiayibu {
+			line-height: 154rpx;
+			display: inline-block;
+			position: absolute;
+			width: 80rpx;
+			top: 0;
+			right: 0;
+			color: #b2b2b2;
+			text-align: right;
+		}
+		.list {
+			width: 128rpx;
+			height: 128rpx;
+			margin-right: 24rpx;
+			float: left;
+			border: 1px solid #e1e1e1;
+			border-radius: 8rpx;
+			.list-image {
+				width: 100%;
+				height: 100%;
+				display: block;
+				border-radius: 8rpx;
+			}
+		}
+	}
+}
+.return-instructions {
+	padding: 0 24rpx;
+	border-bottom: 20rpx solid #f7f7f7;
+}
+.product-parameter {
+	width: 702rpx;
+	height: 90rpx;
+	padding: 0 24rpx;
+	background-color: #ffffff;
+	position: relative;
+	border-bottom: 20rpx solid #f7f7f7;
+	&.coupon {
+		.title {
+			color: #f94b4b;
+		}
+		.icon-xiayibu {
+			color: #f94b4b;
+		}
+		.coupon {
+			float: right;
+			box-sizing: border-box;
+			padding: 29rpx 0;
+			padding-right: 35rpx;
+			.tags {
+				height: 32rpx;
+				box-sizing: border-box;
+				border-radius: 8rpx;
+				background-color: #fff1eb;
+				line-height: 28rpx;
+				color: #f94b4b;
+				text-align: center;
+				display: inline-block;
+				padding: 0 10rpx;
+				font-size: $font-size-20;
+				border: 1px solid #f94b4b;
+				float: right;
+				margin: 0 6rpx;
+			}
+		}
+	}
+	.title {
+		line-height: 90rpx;
+		display: inline-block;
+		float: left;
+		font-size: $font-size-28;
+		color: #666666;
+	}
+	.name {
+		line-height: 90rpx;
+		display: inline-block;
+		float: left;
+		font-size: $font-size-28;
+		color: $text-color;
+		padding-right: 48rpx;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+		text-align: right;
+	}
+	.icon-xiayibu {
+		line-height: 90rpx;
+		display: inline-block;
+		position: absolute;
+		width: 48rpx;
+		top: 0;
+		right: 0;
+		color: #b2b2b2;
+	}
+}
+.product-supplier {
+	width: 100%;
+	height: 174rpx;
+	padding: 30rpx 24rpx;
+	box-sizing: border-box;
+	background-color: #ffffff;
+	position: relative;
+	box-sizing: border-box;
+	border-bottom: 20rpx solid #f7f7f7;
+	.logo {
+		width: 128rpx;
+		height: 92rpx;
+		float: left;
+		border: 1px solid #efefef;
+		border-radius: 6rpx;
+		image {
+			width: 100%;
+			height: 100%;
+			display: block;
+			border-radius: 6rpx;
+		}
+	}
+	.main {
+		width: 470rpx;
+		height: 92rpx;
+		float: left;
+		margin-left: 20rpx;
+		.name {
+			width: 100%;
+			line-height: 46rpx;
+			float: left;
+			font-size: $font-size-28;
+			color: $text-color;
+			float: right;
+			overflow: hidden;
+			text-overflow: ellipsis;
+			white-space: nowrap;
+			text-align: left;
+		}
+		.massgs {
+			width: 100%;
+			line-height: 46rpx;
+			float: left;
+			font-size: $font-size-24;
+			color: #999999;
+			.label {
+				float: left;
+			}
+			.p-stars {
+				float: left;
+				margin-left: 20rpx;
+			}
+			.acount {
+				float: right;
+				text {
+					color: $color-system;
+				}
+			}
+		}
+	}
+
+	.icon-xiayibu {
+		line-height: 154rpx;
+		display: inline-block;
+		position: absolute;
+		width: 48rpx;
+		top: 0;
+		right: 0;
+		color: #b2b2b2;
+	}
+}
+.product-details {
+	width: 100%;
+	background: #ffffff;
+	border-bottom: 20rpx solid #f7f7f7;
+	&.recommend {
+		background-color: #f7f7f7;
+		border-bottom: none;
+		.title {
+			.title-tab {
+				background-color: #f7f7f7;
+				color: $text-color;
+			}
+		}
+	}
+	.product-details-image {
+		width: 100%;
+		min-height: 856rpx;
+		box-sizing: border-box;
+		padding: 0 24rpx;
+		.product-details-table {
+			width: 100%;
+			min-height: 160rpx;
+			border: 1px solid #e1e1e1;
+			border-radius: 10rpx;
+			.ladder-tr {
+				display: flex;
+				width: 100%;
+				justify-content: center;
+				height: 80rpx;
+				align-items: center;
+				border-bottom: 1px solid #e1e1e1;
+				&:last-child {
+					border-bottom: none;
+				}
+				.ladder-item-td {
+					height: 80rpx;
+					justify-content: center;
+					text-align: center;
+					box-sizing: border-box;
+					padding: 10rpx;
+					float: left;
+					.te-text {
+						line-height: 28rpx;
+						font-size: $font-size-24;
+						text-overflow: ellipsis;
+						display: -webkit-box;
+						word-break: break-all;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 2;
+						overflow: hidden;
+						color: #999999;
+						&.last {
+							width: 60%;
+							float: left;
+						}
+					}
+					.te-copy {
+						width: 40%;
+						float: right;
+						font-size: $font-size-24;
+						padding-top: 10rpx;
+						.clipboard {
+							width: 84rpx;
+							height: 36rpx;
+							background: #4688fa;
+							text-align: center;
+							font-size: $font-size-24;
+							color: #ffffff;
+							border-radius: 18rpx;
+							line-height: 36rpx;
+							display: inline-block;
+						}
+					}
+					&.th {
+						display: flex;
+						height: 80rpx;
+						align-items: center;
+						line-height: 80rpx;
+						font-size: 26rpx;
+						color: #666;
+					}
+					&:nth-child(1) {
+						width: 25%;
+						border-right: 1px solid #e1e1e1;
+					}
+					&:nth-child(2) {
+						width: 35%;
+						border-right: 1px solid #e1e1e1;
+					}
+					&:nth-child(3) {
+						width: 40%;
+					}
+				}
+			}
+		}
+		.qualificationImg-image {
+			width: 100%;
+			height: 856rpx;
+			display: block;
+		}
+	}
+	.product-rich-text-none {
+		box-sizing: border-box;
+		padding: 0 24rpx;
+		text-align: left;
+		font-size: 24rpx;
+		color: #999999;
+		line-height: 60rpx;
+		&.bold {
+			font-weight: bold;
+			color: #333333;
+		}
+	}
+	.content-none {
+		width: 100%;
+		height: 80rpx;
+		line-height: 80rpx;
+		text-align: left;
+		font-size: $font-size-26;
+		color: #999999;
+		box-sizing: border-box;
+		padding: 0 24rpx;
+	}
+	.title {
+		width: 100%;
+		box-sizing: border-box;
+		padding: 0 24rpx;
+		.title-tab {
+			width: 100%;
+			height: 100rpx;
+			background: #fff;
+			z-index: 10;
+			font-size: $font-size-30;
+			text-align: left;
+			color: $text-color;
+			line-height: 100rpx;
+			font-weight: 600;
+		}
+		.title-msg {
+			width: 100%;
+			height: 236rpx;
+			padding: 18rpx;
+			background-color: rgba(225, 86, 22, 0.1);
+			color: $color-system;
+			box-sizing: border-box;
+			margin-bottom: 30rpx;
+			.tit {
+				line-height: 46rpx;
+				font-size: $font-size-24;
+				text-align: left;
+			}
+			.txt {
+				line-height: 38rpx;
+				font-size: $font-size-20;
+				text-align: justify;
+			}
+		}
+	}
+	.content {
+		width: 100%;
+		background-color: #ffffff;
+	}
+}
+.isLower {
+	width: 100%;
+	height: 116rpx;
+	line-height: 116rpx;
+	text-align: center;
+	color: #000000;
+	font-size: $font-size-32;
+	font-weight: bold;
+}
+.bottom-btn {
+	width: 100%;
+	height: 100rpx;
+	position: fixed;
+	bottom: 0;
+	left: 0;
+	background: #ffffff;
+	z-index: 99;
+	.bottom-le {
+		width: 300rpx;
+		height: 100rpx;
+		padding: 10rpx 20rpx 10rpx 0;
+		float: left;
+		box-sizing: border-box;
+		.item-bt {
+			width: 80rpx;
+			height: 100%;
+			margin-right: 15rpx;
+			display: flex;
+			float: left;
+			flex-direction: column;
+			align-items: center;
+			justify-content: center;
+			font-size: $font-size-22;
+			color: $text-color;
+			line-height: 34rpx;
+			position: relative;
+			.animation-num {
+				font-size: $font-size-32;
+				color: #ff2a2a;
+				position: absolute;
+				top: -12rpx;
+				right: 4rpx;
+				font-weight: bold;
+			}
+			.animation {
+				animation: showAmnation 2.2s ease-in-out both;
+			}
+			.restion {
+				animation: hideAmnation 1s ease-in-out both;
+			}
+			.icon-num {
+				position: absolute;
+				right: -12rpx;
+				top: -5rpx;
+			}
+			.icon-num.goleft {
+				right: 2rpx;
+			}
+			&:last-child {
+				margin-right: 0;
+			}
+			image {
+				width: 44rpx;
+				height: 44rpx;
+			}
+			button.contact-btn {
+				width: 100%;
+				height: 100%;
+				margin: 0;
+				padding: 0;
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+				justify-content: center;
+				box-sizing: border-box;
+				font-size: $font-size-24;
+				text-align: center;
+				text-decoration: none;
+				line-height: 34rpx;
+				border-radius: 0;
+				-webkit-tap-highlight-color: transparent;
+				overflow: hidden;
+				color: $text-color;
+				background-color: #ffffff;
+			}
+		}
+	}
+	.bottom-ri {
+		width: 450rpx;
+		height: 100%;
+		float: right;
+		display: flex;
+		box-sizing: border-box;
+		padding: 13rpx 20rpx 13rpx 0;
+		.btn {
+			flex: 1;
+			width: 200rpx;
+			line-height: 80rpx;
+			text-align: center;
+			font-size: $font-size-24;
+			color: #ffffff;
+		}
+		.btn-cart {
+			background-color: #ffe6dc;
+			color: $color-system;
+			border-radius: 42rpx 0 0 42rpx;
+		}
+		.btn-cart.disabled {
+			background-color: #e1e1e1;
+			color: #ffffff;
+		}
+		.btn-bay {
+			background: linear-gradient(to right, #f28f31 0%, #ff5b00 100%);
+			border-radius: 0 42rpx 42rpx 0;
+		}
+		.btn-bay.disabled {
+			background: linear-gradient(135deg, rgba(242, 143, 49, 0.5) 0%, rgba(225, 86, 22, 0.5) 100%);
+		}
+	}
+}
+.uni-badge--small {
+	-webkit-transform: scale(0.8);
+	-ms-transform: scale(0.8);
+	transform: scale(0.8);
+	-webkit-transform-origin: center center;
+	-ms-transform-origin: center center;
+	transform-origin: center center;
+}
+.uni-badge {
+	font-family: 'Helvetica Neue', Helvetica, sans-serif;
+	-webkit-box-sizing: border-box;
+	box-sizing: border-box;
+	font-size: 12px;
+	line-height: 1;
+	display: inline-block;
+	padding: 3px 6px;
+	color: #333;
+	border-radius: 100px;
+	background-color: #f1f1f1;
+}
+.uni-badge-error {
+	color: #fff;
+	background-color: #dd524d;
+}
+.product-topnav {
+	width: 100%;
+	height: 174rpx;
+	box-sizing: border-box;
+	background: #ffffff;
+	z-index: 990;
+	position: fixed;
+	opacity: 1;
+	left: 0;
+	&.fixed {
+		animation: showFixedColor 0.1s ease-in-out both;
+	}
+	&.none {
+		animation: hideFixedColor 0.1s ease-in-out both;
+	}
+	.navbar {
+		width: 100%;
+		height: 60rpx;
+		box-sizing: border-box;
+		padding: 0 24rpx;
+		display: flex;
+		.nav-item {
+			display: flex;
+			flex: 1;
+			justify-content: center;
+			align-items: center;
+			height: 60rpx;
+			font-size: $font-size-28;
+			color: $text-color;
+			position: relative;
+			float: left;
+			position: relative;
+			.line {
+				width: 60rpx;
+				height: 2px;
+				border-radius: 1px;
+				background: #ffffff;
+				position: absolute;
+				bottom: 0;
+				left: 50%;
+				margin-left: -30rpx;
+			}
+			&.current {
+				color: $color-system;
+				.line {
+					background: $color-system;
+				}
+			}
+		}
+	}
+	.search-input {
+		width: 100%;
+		height: 114rpx;
+		padding: 24rpx;
+		box-sizing: border-box;
+		.gosearch-btn {
+			width: 100%;
+			height: 100%;
+			border-radius: 40rpx;
+			margin: 0 auto;
+			font-size: 26rpx;
+			line-height: 66rpx;
+			color: #b2b2b2;
+			position: relative;
+			box-sizing: border-box;
+			padding-left: 66rpx;
+			&.fixed {
+				background: rgba(70, 70, 70, 0.1);
+			}
+			&.none {
+				background: rgba(70, 70, 70, 0.1);
+			}
+			.search-icon {
+				width: 66rpx;
+				height: 66rpx;
+				position: absolute;
+				left: 0;
+				top: 2rpx;
+				text-align: center;
+				line-height: 66rpx;
+				.icon-iconfonticonfontsousuo1 {
+					margin: 0 6rpx;
+					font-size: $font-size-34;
+					color: #b2b2b2;
+					z-index: 10;
+				}
+			}
+			.search-text {
+				font-size: $font-size-24;
+				line-height: 66rpx;
+				color: #b2b2b2;
+			}
+		}
+	}
+}
+
+@keyframes showFixedColor {
+	0% {
+		background: rgba(255, 255, 255, 0);
+	}
+	50% {
+		background: rgba(255, 255, 255, 0.5);
+	}
+	100% {
+		background: rgba(255, 255, 255, 1);
+	}
+}
+@keyframes hideFixedColor {
+	0% {
+		background: rgba(255, 255, 255, 1);
+	}
+	50% {
+		background: rgba(255, 255, 255, 0.5);
+	}
+	100% {
+		background: rgba(255, 255, 255, 0);
+	}
+}
+/* 加入购物模态层*/
+@keyframes showPopup {
+	0% {
+		opacity: 0;
+	}
+	100% {
+		opacity: 1;
+	}
+}
+@keyframes hidePopup {
+	0% {
+		opacity: 1;
+	}
+	100% {
+		opacity: 0;
+	}
+}
+@keyframes showLayer {
+	0% {
+		transform: translateY(0);
+	}
+	100% {
+		transform: translateY(-100%);
+	}
+}
+@keyframes hideLayer {
+	0% {
+		transform: translateY(-100%);
+	}
+	100% {
+		transform: translateY(0);
+	}
+}
+@keyframes showAmnation {
+	0% {
+		top: -12rpx;
+		opacity: 0;
+	}
+	50% {
+		top: -60rpx;
+		opacity: 1;
+	}
+	100% {
+		top: -100rpx;
+		opacity: 0;
+	}
+}
+@keyframes hideAmnation {
+	0% {
+		top: -100rpx;
+		opacity: 0;
+	}
+	100% {
+		top: -12rpx;
+		opacity: 0;
+	}
+}
+.tui-popup-box {
+	position: relative;
+	box-sizing: border-box;
+	min-height: 220rpx;
+	padding: 40rpx 24rpx 0 24rpx;
+	.tui-popup-close {
+		width: 90rpx;
+		height: 90rpx;
+		position: absolute;
+		right: 0;
+		top: 24rpx;
+		line-height: 90rpx;
+		text-align: center;
+		color: #b2b2b2;
+		.icon-iconfontguanbi {
+			font-size: $font-size-40;
+		}
+	}
+	.title {
+		font-size: $font-size-34;
+		color: $text-color;
+		line-height: 88rpx;
+		text-align: center;
+		float: left;
+		width: 100%;
+		height: 88rpx;
+		font-weight: bold;
+	}
+	.tui-popup-main {
+		width: 100%;
+		float: left;
+		&.coupon {
+			padding-bottom: 40rpx;
+			.coupon-empty {
+				width: 100%;
+				height: 600rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				flex-direction: column;
+				position: fixed;
+				background: $bg-color;
+				.empty-container-image {
+					width: 150rpx;
+					height: 150rpx;
+					margin-bottom: 0;
+					margin-top: 0;
+				}
+				.error-text {
+					font-size: $font-size-28;
+					color: #999999;
+					line-height: 88rpx;
+				}
+			}
+		}
+		.tui-popup-scroll {
+			width: 100%;
+			height: 600rpx;
+			.coupon-list {
+				width: 100%;
+				height: 200rpx;
+				margin-top: 24rpx;
+				box-sizing: border-box;
+				background: url(https://static.caimei365.com/app/img/icon/icon-coupon-uesb@2x.png);
+				background-size: cover;
+				&:last-child {
+					margin-bottom: 24rpx;
+				}
+				.list-cell-le {
+					width: 224rpx;
+					height: 100%;
+					box-sizing: border-box;
+					padding: 37rpx 0;
+					float: left;
+					.coupon-maxMoney {
+						width: 100%;
+						height: 78rpx;
+						line-height: 78rpx;
+						font-size: 56rpx;
+						color: #ffffff;
+						text-align: center;
+						.small {
+							font-size: $font-size-24;
+						}
+					}
+					.coupon-minMoney {
+						width: 100%;
+						height: 33rpx;
+						line-height: 33rpx;
+						font-size: $font-size-24;
+						color: #ffffff;
+						text-align: center;
+					}
+				}
+				.list-cell-ri {
+					width: 478rpx;
+					height: 100%;
+					box-sizing: border-box;
+					padding: 20rpx 24rpx 0 24rpx;
+					float: right;
+					.list-cell-top {
+						width: 100%;
+						height: 121rpx;
+						float: left;
+						border-bottom: 1px solid #e1e1e1;
+						.list-cell-type {
+							width: 286rpx;
+							height: 100%;
+							float: left;
+							.list-cell-tags {
+								width: 100%;
+								height: 32rpx;
+								margin-bottom: 7rpx;
+								.tags {
+									display: inline-block;
+									padding: 0 10rpx;
+									height: 32rpx;
+									line-height: 32rpx;
+									background-color: #ffdcce;
+									color: #f94b4b;
+									font-size: $font-size-20;
+									border-radius: 8rpx;
+									text-align: center;
+									float: left;
+								}
+							}
+							.list-cell-texts {
+								width: 100%;
+								height: auto;
+								line-height: 35rpx;
+								text-overflow: ellipsis;
+								display: -webkit-box;
+								word-break: break-all;
+								-webkit-box-orient: vertical;
+								-webkit-line-clamp: 2;
+								overflow: hidden;
+								font-size: 26rpx;
+								color: #333333;
+							}
+						}
+						.list-cell-btn {
+							width: 128rpx;
+							height: 100%;
+							float: right;
+							.icon-used {
+								width: 100%;
+								height: 100%;
+								box-sizing: border-box;
+								padding-top: 28rpx;
+								.icon-used-text {
+									width: 100%;
+									text-align: center;
+									line-height: 26rpx;
+									font-size: $font-size-20;
+									color: #f94b4b;
+								}
+								.icon-used-btn {
+									width: 128rpx;
+									height: 48rpx;
+									border-radius: 28rpx;
+									line-height: 48rpx;
+									font-size: $font-size-26;
+									text-align: center;
+									&.receive {
+										background-image: linear-gradient(270deg, #f94b4b 0%, #feb673 100%);
+										color: #ffffff;
+									}
+									&.make {
+										border: solid 1px #f94b4b;
+										color: #f94b4b;
+									}
+								}
+							}
+						}
+					}
+					.list-cell-time {
+						width: 100%;
+						height: 58rpx;
+						line-height: 58rpx;
+						text-align: left;
+						font-size: $font-size-20;
+						color: #999999;
+					}
+				}
+			}
+			&.train {
+				height: 240rpx;
+			}
+			.content-tr {
+				width: 100%;
+				min-height: 58rpx;
+				line-height: 58rpx;
+				display: flex;
+				.content-td {
+					display: flex;
+					flex: 3;
+					font-size: $font-size-26;
+					color: #999999;
+					line-height: 58rpx;
+					text-align: left;
+				}
+				.content-th {
+					display: flex;
+					flex: 7;
+					font-size: $font-size-26;
+					color: #333333;
+					line-height: 58rpx;
+					text-align: left;
+					padding-left: 10rpx;
+				}
+			}
+		}
+	}
+	.tui-shopping-main {
+		width: 100%;
+		.layer-smimg {
+			width: 114rpx;
+			height: 114rpx;
+			float: left;
+			border-radius: 10rpx;
+			margin-right: 24rpx;
+			image {
+				width: 114rpx;
+				height: 114rpx;
+				border-radius: 10rpx;
+			}
+		}
+		.layer-nunbox {
+			justify-content: space-between;
+			align-items: center;
+			width: 536rpx;
+			height: auto;
+			float: left;
+			.layer-nunbox-t {
+				width: 100%;
+				height: 44rpx;
+				position: relative;
+				display: flex;
+				margin-bottom: 10rpx;
+				.text {
+					font-size: $font-size-24;
+					line-height: 48rpx;
+					color: #999999;
+				}
+				.layer-nunbox-text {
+					line-height: 44rpx;
+					font-size: $font-size-28;
+				}
+				.number-box {
+					display: flex;
+					justify-content: center;
+					align-items: center;
+					border: 2rpx solid #ffe6dc;
+					border-radius: 30rpx;
+					height: 48rpx;
+					margin-left: 20rpx;
+					.iconfont {
+						font-size: $font-size-24;
+						padding: 0 18rpx;
+						color: #999999;
+						text-align: center;
+						line-height: 48rpx;
+						font-weight: bold;
+						background: #fef6f3;
+						&.icon-jianhao {
+							border-radius: 30rpx 0 0 30rpx;
+						}
+						&.icon-jiahao {
+							border-radius: 0 30rpx 30rpx 0;
+						}
+					}
+					.btn-input {
+						width: 62rpx;
+						height: 48rpx;
+						line-height: 48rpx;
+						background: #ffffff;
+						border-radius: 4rpx;
+						text-align: center;
+						font-size: $font-size-28;
+					}
+				}
+				.product-step {
+					position: absolute;
+					left: 45rpx;
+					bottom: 0;
+					height: 44rpx;
+					background: #ffffff;
+				}
+			}
+			.layer-nunbox-b {
+				width: 100%;
+				height: 44rpx;
+				margin-top: 13rpx;
+			}
+			.text {
+				line-height: 44rpx;
+				font-size: $font-size-28;
+				.p {
+					color: #ff2a2a;
+				}
+				.p:first-child {
+					margin-left: 30rpx;
+				}
+				.p.sm {
+					font-size: $font-size-24;
+				}
+			}
+		}
+	}
+}
+.tui-popup-btn {
+	width: 100%;
+	height: auto;
+	float: left;
+	margin-top: 24rpx;
+	.tui-button {
+		width: 100%;
+		height: 88rpx;
+		background: $btn-confirm;
+		line-height: 88rpx;
+		text-align: center;
+		color: #ffffff;
+		font-size: $font-size-28;
+		border-radius: 44rpx;
+	}
+}
+/*富文本样式*/
+rich-text.p {
+	width: 702rpx !important;
+	padding: 0 24rpx;
+	text-align: justify;
+}
+rich-text.img {
+	width: 100%;
+	height: auto;
+}
+</style>

+ 119 - 0
pages/login/components/activeTeamCom.vue

@@ -0,0 +1,119 @@
+<template>
+    <view class="growth-module">
+        <view v-if="active === 1" class="cell-1" @click="playVideo">
+            <view class="image">
+                <image :src="module.headAppBanner" mode=""></image>
+            </view>
+            <view class="content text-line">
+                {{ module.title }}
+            </view>
+        </view>
+        <view v-else class="cell-2" @click="handlerTramp(module)">
+            <view class="image">
+                <image :src="module.headAppBanner" mode=""></image>
+            </view>
+            <view class="content">
+                <view class="title">
+                    {{ module.title }}
+                </view>
+                <view class="cont text-line" v-if="module.content">
+                    {{ module.content && module.content.match(/[\u4e00-\u9fa5]/g).join('') }}
+                </view>
+            </view>
+        </view>
+    </view>
+</template>
+
+<script>
+export default {
+    props: {
+        module: {
+            type: Object,
+            default: () => ({})
+        },
+        active: {
+            type: Number,
+            default: () => 1
+        }
+    },
+    methods: {
+        handlerTramp($event) {
+            let data = $event.content.replace(/<img/g, '<img style="width: 100%;height: 200px"')
+            data = data.replace(/\<figure/g, '<div')
+            data = data.replace(/\<\/figure/g, '<\/div')
+            uni.setStorageSync('artForm', data)
+            uni.navigateTo({
+                url: '/pages/login/supplier_information'
+            })
+        },
+        // 视频播放
+        playVideo() {
+            this.$emit('playVideo', this.module)
+        },
+        // 视频关闭
+        closeVideo() {
+            this.showVideo = false
+        },
+    }
+}
+</script>
+
+<style scoped lang="scss">
+.growth-module {
+    width: 322rpx;
+    height: 328rpx;
+    border: 1px solid #EAEAEA;
+    box-sizing: border-box;
+    .cell-1 {
+        .image {
+            height: 185rpx;
+            image {
+                width: 100%;
+                height: 100%;
+            }
+        }
+        .content {
+            height: calc(100% - 220rpx);
+            font-size: 26rpx;
+            color: #333333;
+            line-height: 40rpx;
+            box-sizing: border-box;
+            padding: 30rpx 18rpx 0 18rpx;
+        }
+    }
+    .cell-2 {
+        .image {
+            height: 193rpx;
+            image {
+                width: 100%;
+                height: 100%;
+            }
+        }
+        .content {
+            height: calc(100% - 193rpx);
+            padding: 17rpx 0;
+            font-size: 22rpx;
+            color: #666666;
+            box-sizing: border-box;
+            .title {
+                border-left: 4rpx solid #FF5B00;
+                padding-left: 20rpx;
+                color: #333333;
+                font-size: 28rpx;
+            }
+            .cont {
+                padding-left: 20rpx;
+                line-height: 32rpx;
+            }
+        }
+    }
+}
+.text-line {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    display: -webkit-box;
+    -webkit-line-clamp: 2;
+    -webkit-box-orient: vertical;
+    box-sizing: border-box;
+}
+</style>

+ 261 - 249
pages/login/components/growthCommunity.vue

@@ -1,249 +1,261 @@
-<template>
-    <view class="growthcommunity">
-        <slot name="supplier-title"></slot>
-        <view class="negotiation">
-            <view class="enterprise">
-                <view class="title">美业企谈</view>
-                <view class="container">
-                    <scroll-view
-                        scroll-x="true"
-                        class="scroll-view"
-                        @scroll="scrollVideoHandler"
-                        :scroll-into-view="activeVideoMenu"
-                        scroll-with-animation="true"
-                    >
-                        <view
-                            class="video-item"
-                            v-for="(item, index) in videoList"
-                            :key="item.id"
-                            @click="$emit('playVideo', item)"
-                            :id="`item${index}`"
-                            v-if="item.appStatus == '1'"
-                        >
-                            <view class="player">
-                                <image src="https://static.caimei365.com/app/img/supplier-login/player.png" class="player-img"  mode=""></image>
-                            </view>
-                            <view class="img-item"><image :src="item.headAppBanner" mode="" class="img"></image></view>
-                            <view class="videotitle">
-                                <view class="text">{{ item.title }}</view>
-                            </view>
-                        </view>
-                    </scroll-view>
-                </view>
-            </view>
-            <view class="item-dots"><page-dots :pageAll="videoList.length" :isActive="isVideo" @hanlder-click="hanlderVideoClick" /></view>
-            <view class="enterprise">
-                <view class="title">采美资讯</view>
-                <view class="container">
-                    <scroll-view
-                        scroll-x="true"
-                        class="scroll-view"
-                        @scroll="scrollHandler"
-                        :scroll-into-view="activeMenu"
-                        scroll-with-animation="true"
-                    >
-                        <view
-                            class="video-item"
-                            v-for="(item, index) in articelList"
-                            :key="item.id"
-                            @click="handlerTramp(item)"
-                            :id="`item${index}`"
-                            v-if="item.appStatus == '1'"
-                        >
-                            <view class="img-item"><image :src="item.headAppBanner" mode="" class="img"></image></view>
-                            <view class="articleContent">
-                                <view class="text">{{ item.title }}</view>
-                                <view class="article-con">{{ item.content.match(/[\u4e00-\u9fa5]/g).join('') }}</view>
-                            </view>
-                        </view>
-                    </scroll-view>
-                </view>
-            </view>
-            <view class="item-dots"><page-dots :pageAll="articelList.length" :isActive="isArtical" @hanlder-click="hanlderClick" /></view>
-        </view>
-    </view>
-</template>
-
-<script>
-import PageDots from './swiper-dots.vue'
-export default {
-    props: {
-        videoList: {
-            type: Array,
-            default: () => []
-        },
-        articelList: {
-            type: Array,
-            default: () => []
-        }
-    },
-    components: {
-        PageDots
-    },
-    data() {
-        return {
-            isVideo: 0,
-            isArtical: 0,
-            activeMenu: 'item0',
-            activeVideoMenu: 'item0'
-        }
-    },
-    watch: {
-        videoList: {
-            handler(val) {
-                this.community_video_list = val
-            },
-            deep: true
-        },
-        articelList: {
-            handler(val) {
-                this.community_article_list = val
-            },
-            deep: true
-        }
-    },
-    methods: {
-        handlerTramp($event) {
-            const list = this.community_article_list.filter(e => e.id === $event.id)
-            let data = list[0].content.replace(/<img/g, '<img style="width: 100%;height: 200px"')
-            data = data.replace(/\<figure/g, '<div')
-            data = data.replace(/\<\/figure/g, '<\/div')
-            uni.setStorageSync('artForm', data)
-            uni.navigateTo({
-                url: '/pages/login/supplier_information'
-            })
-        },
-        scrollHandler($event) {
-            const data = Math.floor($event.detail.scrollLeft / 192)
-             this.isArtical = data
-        },
-        scrollVideoHandler($event) {
-            const data = Math.floor($event.detail.scrollLeft / 192)
-             this.isVideo = data
-        },
-        // 点击导航
-        hanlderClick($event) {
-            this.isArtical = $event
-            this.activeMenu = `item${$event}`
-        },
-        hanlderVideoClick($event) {
-            this.isVideo = $event
-            this.activeVideoMenu = `item${$event}`
-        }
-    }
-}
-</script>
-
-<style scoped lang="scss">
-.img {
-    width: 100%;
-    height: 100%;
-}
-.growthcommunity {
-    padding: 1px;
-    box-sizing: border-box;
-    background-color: #fff;
-    .negotiation {
-        padding-left: 72rpx;
-    }
-}
-.enterprise {
-    position: relative;
-    margin-bottom: 50rpx;
-}
-.title {
-    color: #333333;
-    font-size: 32rpx;
-    margin-bottom: 34rpx;
-}
-.scroll-view {
-    white-space: nowrap;
-}
-.video-item {
-    width: 384rpx;
-    height: 376rpx;
-    background: #ffffff;
-    border: 1px solid #eaeaea;
-    display: inline-flex;
-    margin-right: 32rpx;
-    box-sizing: border-box;
-    flex-direction: column;
-    overflow-wrap: break-word;
-    white-space: normal;
-    position: relative;
-    .player {
-        height: calc(100% - 159rpx);
-        width: 100%;
-        position: absolute;
-        top: 0;
-        left: 0;
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        background-color: rgba(0, 0, 0, 0.3);
-        .player-img {
-            width: 60rpx;
-            height: 60rpx;
-        }
-    }
-    .img-item {
-        height: calc(100% - 159rpx);
-        width: 100%;
-    }
-    .videotitle {
-        width: 100%;
-        height: 159rpx;
-        font-size: 28rpx;
-        color: #333333;
-        padding: 40rpx 40rpx;
-        overflow: hidden;
-        display: flex;
-        justify-content: center;
-        align-items: center;
-        box-sizing: border-box;
-        .text {
-            width: 336rpx;
-            height: 90rpx;
-            overflow: hidden;
-            line-height: 48rpx;
-            -webkit-box-orient: vertical;
-            -webkit-line-clamp: 2;
-            overflow-wrap: break-word;
-            text-overflow: ellipsis;
-            display: -webkit-box;
-        }
-    }
-    .articleContent {
-        .text {
-            margin-top: 24rpx;
-            box-sizing: border-box;
-            padding-left: 24rpx;
-            color: #333333;
-            font-size: 32rpx;
-            border-left: 2px solid #ff5b00;
-        }
-        .article-con {
-            margin-top: 18rpx;
-            width: 100%;
-            height: 62rpx;
-            box-sizing: border-box;
-            padding: 0 24rpx;
-            color: #666666;
-            font-size: 24rpx;
-            overflow: hidden;
-            -webkit-box-orient: vertical;
-            -webkit-line-clamp: 2;
-            overflow-wrap: break-word;
-            text-overflow: ellipsis;
-            display: -webkit-box;
-        }
-    }
-}
-.item-dots {
-    height: 160rpx;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    margin-left: -20rpx;
-}
-</style>
+<template>
+    <view class="growthcommunity">
+        <slot name="supplier-title"></slot>
+        <view class="negotiation">
+            <view class="enterprise">
+                <view class="title">美业企谈</view>
+                <view class="more" @click="handlerMore(1)">更多 ></view>
+                <view class="container">
+                    <scroll-view
+                        scroll-x="true"
+                        class="scroll-view"
+                        @scroll="scrollVideoHandler"
+                        :scroll-into-view="activeVideoMenu"
+                        scroll-with-animation="true"
+                    >
+                        <view
+                            class="video-item"
+                            v-for="(item, index) in videoList"
+                            :key="item.id"
+                            @click="$emit('playVideo', item)"
+                            :id="`item${index}`"
+                            v-if="item.appStatus == '1'"
+                        >
+                            <view class="player">
+                                <image src="https://static.caimei365.com/app/img/supplier-login/player.png" class="player-img"  mode=""></image>
+                            </view>
+                            <view class="img-item"><image :src="item.headAppBanner" mode="" class="img"></image></view>
+                            <view class="videotitle">
+                                <view class="text">{{ item.title }}</view>
+                            </view>
+                        </view>
+                    </scroll-view>
+                </view>
+            </view>
+            <view class="item-dots"><page-dots :pageAll="videoList.length" :isActive="isVideo" @hanlder-click="hanlderVideoClick" /></view>
+            <view class="enterprise">
+                <view class="title">采美资讯</view>
+                <view class="more" @click="handlerMore(2)">更多 ></view>
+                <view class="container">
+                    <scroll-view
+                        scroll-x="true"
+                        class="scroll-view"
+                        @scroll="scrollHandler"
+                        :scroll-into-view="activeMenu"
+                        scroll-with-animation="true"
+                    >
+                        <view
+                            class="video-item"
+                            v-for="(item, index) in articelList"
+                            :key="item.id"
+                            @click="handlerTramp(item)"
+                            :id="`item${index}`"
+                            v-if="item.appStatus == '1'"
+                        >
+                            <view class="img-item"><image :src="item.headAppBanner" mode="" class="img"></image></view>
+                            <view class="articleContent">
+                                <view class="text">{{ item.title }}</view>
+                                <view class="article-con">{{ item.content.match(/[\u4e00-\u9fa5]/g).join('') }}</view>
+                            </view>
+                        </view>
+                    </scroll-view>
+                </view>
+            </view>
+            <view class="item-dots"><page-dots :pageAll="articelList.length" :isActive="isArtical" @hanlder-click="hanlderClick" /></view>
+        </view>
+    </view>
+</template>
+
+<script>
+import PageDots from './swiper-dots.vue'
+export default {
+    props: {
+        videoList: {
+            type: Array,
+            default: () => []
+        },
+        articelList: {
+            type: Array,
+            default: () => []
+        }
+    },
+    components: {
+        PageDots
+    },
+    data() {
+        return {
+            isVideo: 0,
+            isArtical: 0,
+            activeMenu: 'item0',
+            activeVideoMenu: 'item0'
+        }
+    },
+    watch: {
+        videoList: {
+            handler(val) {
+                this.community_video_list = val
+            },
+            deep: true
+        },
+        articelList: {
+            handler(val) {
+                this.community_article_list = val
+            },
+            deep: true
+        }
+    },
+    methods: {
+        handlerTramp($event) {
+            const list = this.community_article_list.filter(e => e.id === $event.id)
+            let data = list[0].content.replace(/<img/g, '<img style="width: 100%;height: 200px"')
+            data = data.replace(/\<figure/g, '<div')
+            data = data.replace(/\<\/figure/g, '<\/div')
+            uni.setStorageSync('artForm', data)
+            uni.navigateTo({
+                url: '/pages/login/supplier_information'
+            })
+        },
+        scrollHandler($event) {
+            const data = Math.floor($event.detail.scrollLeft / 192)
+             this.isArtical = data
+        },
+        scrollVideoHandler($event) {
+            const data = Math.floor($event.detail.scrollLeft / 192)
+             this.isVideo = data
+        },
+        // 点击导航
+        hanlderClick($event) {
+            this.isArtical = $event
+            this.activeMenu = `item${$event}`
+        },
+        hanlderVideoClick($event) {
+            this.isVideo = $event
+            this.activeVideoMenu = `item${$event}`
+        },
+        handlerMore ($event) {
+            if ($event === 1) return uni.navigateTo({ url: '/pages/login/supplier_more?active=' + $event})
+            else return uni.navigateTo({ url: '/pages/login/supplier_more?active=' + $event })
+        }
+    }
+}
+</script>
+
+<style scoped lang="scss">
+.img {
+    width: 100%;
+    height: 100%;
+}
+.growthcommunity {
+    padding: 1px;
+    box-sizing: border-box;
+    background-color: #fff;
+    .negotiation {
+        padding-left: 72rpx;
+    }
+}
+.enterprise {
+    position: relative;
+    margin-bottom: 50rpx;
+    .more {
+        position: absolute;
+        right: 100rpx;
+        top: 4rpx;
+        font-size: 24rpx;
+    }
+}
+.title {
+    color: #333333;
+    font-size: 32rpx;
+    margin-bottom: 34rpx;
+}
+.scroll-view {
+    white-space: nowrap;
+}
+.video-item {
+    width: 384rpx;
+    height: 376rpx;
+    background: #ffffff;
+    border: 1px solid #eaeaea;
+    display: inline-flex;
+    margin-right: 32rpx;
+    box-sizing: border-box;
+    flex-direction: column;
+    overflow-wrap: break-word;
+    white-space: normal;
+    position: relative;
+    .player {
+        height: calc(100% - 159rpx);
+        width: 100%;
+        position: absolute;
+        top: 0;
+        left: 0;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        background-color: rgba(0, 0, 0, 0.3);
+        .player-img {
+            width: 60rpx;
+            height: 60rpx;
+        }
+    }
+    .img-item {
+        height: calc(100% - 159rpx);
+        width: 100%;
+    }
+    .videotitle {
+        width: 100%;
+        height: 159rpx;
+        font-size: 28rpx;
+        color: #333333;
+        padding: 40rpx 40rpx;
+        overflow: hidden;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        box-sizing: border-box;
+        .text {
+            width: 336rpx;
+            height: 90rpx;
+            overflow: hidden;
+            line-height: 48rpx;
+            -webkit-box-orient: vertical;
+            -webkit-line-clamp: 2;
+            overflow-wrap: break-word;
+            text-overflow: ellipsis;
+            display: -webkit-box;
+        }
+    }
+    .articleContent {
+        .text {
+            margin-top: 24rpx;
+            box-sizing: border-box;
+            padding-left: 24rpx;
+            color: #333333;
+            font-size: 32rpx;
+            border-left: 2px solid #ff5b00;
+        }
+        .article-con {
+            margin-top: 18rpx;
+            width: 100%;
+            height: 62rpx;
+            box-sizing: border-box;
+            padding: 0 24rpx;
+            color: #666666;
+            font-size: 24rpx;
+            overflow: hidden;
+            -webkit-box-orient: vertical;
+            -webkit-line-clamp: 2;
+            overflow-wrap: break-word;
+            text-overflow: ellipsis;
+            display: -webkit-box;
+        }
+    }
+}
+.item-dots {
+    height: 160rpx;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    margin-left: -20rpx;
+}
+</style>

+ 6 - 1
pages/login/register.vue

@@ -171,7 +171,7 @@ export default {
                 source: 1,
                 unionId: '',
                 isSp: 1,
-                spId: uni.getStorageSync('sellerUserId') || '', // 协销分享的id
+                spId: '', // 协销分享的id
             },
             imageCode: '', //图形验证码
             imageCodeUrl: '', //图形验证码图片
@@ -249,6 +249,11 @@ export default {
                     self.wxLogin(res.userInfo)
                     self.params.nickName = res.userInfo.nickName
                     self.params.avatarUrl = res.userInfo.avatarUrl
+					console.log('spId', uni.getStorageSync('spId'))
+                    if (uni.getStorageSync('spId') * 1 > 0) {
+                        self.params.spId = uni.getStorageSync('spId') * 1
+                    }
+					console.log('params', self.params)
                     self.UserRegisterClub(self.params)
                     // 友盟自定义事件
                     if (process.env.NODE_ENV != 'development') {

+ 469 - 462
pages/login/supplier_login.vue

@@ -1,462 +1,469 @@
-<template>
-    <view>
-        <view class="supplier_login"><login-menu :menuList="menuList" @scrollPage="scrollPage" /></view>
-        <view class="container">
-            <scroll-view
-                class="scrollview"
-                @scroll="scrollView"
-                scroll-y="true"
-                :scroll-into-view="activeMenu"
-                :scroll-with-animation="true"
-            >
-                <view id="item0">
-                    <marke-service :bannersList="bannerList">
-                        <template #supplier-title>
-                            <supplier-title title="全生命周期陪跑服务" subtitle="采美,更专业的美业数字化营销服务" />
-                        </template>
-                    </marke-service>
-                </view>
-                <view id="item1">
-                    <Solution :isShareTimeline="isShareTimeline" @solutionModal="solutionModal">
-                        <template #supplier-title>
-                            <supplier-title title="解决方案" subtitle="满足企业全方位需求" />
-                        </template>
-                    </Solution>
-                </view>
-                <view id="item2">
-                    <basic-operation>
-                        <template #supplier-title>
-                            <supplier-title title="基础运营产品" subtitle="使企业走向数字化的基石" />
-                        </template>
-                    </basic-operation>
-                </view>
-                <view id="item3">
-                    <scenario-market>
-                        <template #supplier-title>
-                            <supplier-title title="场景营销工具" subtitle="多样化工具,全方位助力您的企业目标" />
-                        </template>
-                    </scenario-market>
-                </view>
-                <view id="item4">
-                    <success-cases :successList="successList">
-                        <template #supplier-title>
-                            <supplier-title
-                                title="成功案例"
-                                subtitle="了解已合作品牌的真实推广案例,借鉴成功经验<br />助力有效推广,实现商业目标"
-                            />
-                        </template>
-                    </success-cases>
-                </view>
-                <view id="item5">
-                    <caimei-about>
-                        <template #supplier-title>
-                            <supplier-title
-                                title="关于采美"
-                                subtitle="了解采美,合作共赢"
-                                titlecolor="#ffffff"
-                                subtitlecolor="#ffffff"
-                            />
-                        </template>
-                    </caimei-about>
-                </view>
-                <view id="item6">
-                    <growth-community @playVideo="playVideo" :videoList="videoList" :articelList="articelList">
-                        <template #supplier-title>
-                            <supplier-title title="增长社区" subtitle="数十年资深美业运营经验,教你快速成长" />
-                        </template>
-                    </growth-community>
-                </view>
-            </scroll-view>
-        </view>
-        <view class="supplier-slide" ref="supplierSlide" :style="{zIndex: isModalShow ? -1 : 20}">
-            <view class="user-cicle" @click="supplierLogin" v-if="!hasLogin || userInfo.userIdentity === 3">
-                <image
-                    style="width: 48rpx;height: 48rpx;"
-                    src="https://static.caimei365.com/app/img/supplier-login/userDefault_new.png"
-                    mode=""
-                ></image>
-                <view class="userLogin">{{ hasLogin ? userInfo.name : '登录/注册'}}</view>
-            </view>
-            <view class="slide">
-                <view
-                    class="slide-item"
-                    v-for="item in slideList"
-                    :key="item.id"
-                    v-if="item.isShow"
-                    @click="handlerChange(item)"
-                >
-                    <image class="slide-img" :src="item.slideBg" mode=""></image>
-                    <view class="slide-title">{{ item.title }}</view>
-                </view>
-            </view>
-        </view>
-        <tui-modal :show="show" custom @cancel="cancel">
-            <view class="tui-modal-custom">
-                <view class="tui-modal-custom-text">周一至周五 9:00~1800</view>
-                <view class="tui-modal-custom-phone" @click=";(modal = true), (show = false)">153-3889-7365</view>
-            </view>
-        </tui-modal>
-        <tui-modal :show="isPhone" class="qrcode" custom @cancel="cancel">
-            <view class="tui-modal-custom-qrcode">
-                <image
-                    style="width: 100%;height: 100%;"
-                    show-menu-by-longpress="true"
-                    src="https://static.caimei365.com/app/img/supplier-login/kefu_qr.jpg"
-                    mode=""
-                ></image>
-            </view>
-        </tui-modal>
-        <tui-modal :show="modal" custom @cancel="cancel">
-            <view class="tui-modal-custom-call">
-                <view class="tui-modal-custom-text">
-                    确定拨打
-                    <text style="color: #FF5B00;font-weight: bold;margin: 0 6rpx;">153-3889-7365</text>
-                    吗?
-                </view>
-                <view class="modal-btns">
-                    <tui-button
-                        class="cancel"
-                        type="black"
-                        @click="modal = false"
-                        height="72rpx"
-                        :size="28"
-                        plain
-                        shape="circle"
-                    >
-                        取消
-                    </tui-button>
-                    <tui-button
-                        class="determine"
-                        height="72rpx"
-                        :size="28"
-                        type="warning"
-                        shape="circle"
-                        @click="handleClick"
-                    >
-                        确定
-                    </tui-button>
-                </view>
-            </view>
-        </tui-modal>
-        <cm-video :show="showVideo" @closeClick="closeVideo" :videoObj="videoObj" />
-    </view>
-</template>
-
-<script>
-import LoginMenu from './components/supplier-loginMenu.vue'
-import MarkeService from './components/markeServices.vue'
-import SupplierTitle from './components/supplier-title.vue'
-import Solution from './components/solution.vue'
-import BasicOperation from './components/basicOperationsProducts.vue'
-import ScenarioMarket from './components/scenarioMarketing.vue'
-import SuccessCases from './components/successCases.vue'
-import CaimeiAbout from './components/caimei-about.vue'
-import GrowthCommunity from './components/growthCommunity.vue'
-import CmVideo from './components/caimei-video.vue'
-import { mapState } from 'vuex'
-export default {
-    components: {
-        LoginMenu,
-        MarkeService,
-        SupplierTitle,
-        Solution,
-        BasicOperation,
-        ScenarioMarket,
-        SuccessCases,
-        CaimeiAbout,
-        GrowthCommunity,
-        CmVideo
-    },
-    data() {
-        return {
-            menuList: [
-                {
-                    id: 0,
-                    title: '营销服务'
-                },
-                {
-                    id: 1,
-                    title: '解决方案'
-                },
-                {
-                    id: 2,
-                    title: '运营产品'
-                },
-                {
-                    id: 3,
-                    title: '营销工具'
-                },
-                {
-                    id: 4,
-                    title: '成功案例'
-                },
-                {
-                    id: 5,
-                    title: '关于采美'
-                },
-                {
-                    id: 6,
-                    title: '增长社区'
-                }
-            ],
-            activeMenu: '', // 滚动到指定位置
-            show: false,
-            isPhone: false,
-            modal: false,
-            showVideo: false,
-            videoObj: {},
-            slideList: [
-                {
-                    id: 1,
-                    title: '电话联系',
-                    slideBg: 'https://static.caimei365.com/app/img/supplier-login/phone.png',
-                    isShow: true
-                },
-                {
-                    id: 2,
-                    title: '微信客服',
-                    slideBg: 'https://static.caimei365.com/app/img/supplier-login/qrcode.png',
-                    isShow: true
-                },
-                {
-                    id: 3,
-                    title: '',
-                    slideBg: 'https://static.caimei365.com/app/img/supplier-login/scrolltop.png',
-                    isShow: false
-                }
-            ],
-            successList: [],
-            videoList: [],
-            articelList: [],
-            bannerList: [],
-            isShareTimeline: false, // 是否从朋友圈分享
-            isModalShow: false,
-        }
-    },
-    computed: {
-        ...mapState(['hasLogin', 'userInfo'])
-    },
-    watch: {},
-    onLoad(options) {
-        // 是否从朋友圈分享进入
-        if (options.isShareTimeline) {
-            this.isShareTimeline = options.isShareTimeline
-        } 
-        // 点击链接
-        uni.$on('changeLink', e => {
-            setTimeout(() => {
-                this.activeMenu = e
-            }, 500)
-        })
-    },
-    mounted() {
-        this.getSupplierLanding()
-    },
-    onShareAppMessage(res) {
-        return {
-            title: '更专业的美业数字化营销服务',
-            path: '/pages/login/supplier_login'
-        }
-    },
-    // 分享朋友圈
-    onShareTimeline() {
-        return {
-            title: '更专业的美业数字化营销服务',
-            path: '/pages/login/supplier_login',
-            query: 'isShareTimeline=' + true
-        }
-    },
-    methods: {
-        // 滚动事件
-        scrollPage($event) {
-            this.activeMenu = $event
-        },
-        scrollView(e) {
-            this.activeMenu = ''
-            if (e.detail.scrollTop < 50) {
-                this.slideList[2].isShow = false
-            } else {
-                this.slideList[2].isShow = true
-            }
-        },
-        handlerChange(e) {
-            const obj = {
-                1: () => (this.show = true),
-                2: () => (this.isPhone = true),
-                3: () => (this.activeMenu = 'item0')
-            }
-            obj[e.id]()
-        },
-        hideAlert() {
-            this.show = false
-        },
-        // 拨打电话
-        handleClick() {
-            uni.makePhoneCall({
-                phoneNumber: '153-3889-7365' //仅为示例
-            })
-            this.modal = false
-        },
-        cancel() {
-            this.modal = false
-            this.show = false
-            this.isPhone = false
-        },
-        // 视频播放
-        playVideo($event) {
-            this.videoObj = $event
-            this.showVideo = true
-        },
-        // 视频关闭
-        closeVideo() {
-            this.showVideo = false
-        },
-        // supplierLogin 登陆
-        supplierLogin() {
-            if (this.hasLogin) {
-                uni.navigateTo({
-                    url: '/pages/supplier/user/supplier?shopId=' + this.userInfo.shopId
-                })
-            } else {
-                uni.navigateTo({
-                    url: '/pages/login/login?state=1'
-                })
-            }
-        },
-        // solutionModal 方案解决模块
-        solutionModal(val) {
-            this.isModalShow = val
-        },
-        async getSupplierLanding() {
-            try {
-                const { data } = await this.UserService.supplierLoading({ source: 2 })
-                this.bannerList = data.banner
-                this.successList = data.landing.filter(e => e.type == '1')
-                this.videoList = data.landing.filter(e => e.type == '2')
-                this.articelList = data.landing.filter(e => e.type == '3')
-            } catch (error) {
-                console.log(error)
-            }
-        }
-    }
-}
-</script>
-
-<style lang="scss" scoped>
-.container {
-    position: absolute;
-    bottom: 0;
-    height: auto;
-}
-.scrollview {
-    width: 100%;
-    height: calc(100vh - 120rpx);
-    background-color: #fff;
-    #item1 {
-        z-index: 20;
-    }
-}
-.supplier-slide {
-    position: fixed;
-    right: 40rpx;
-    box-sizing: border-box;
-    width: 100rpx;
-    bottom: 100rpx;
-    .user-cicle {
-        width: 100rpx;
-        height: 150rpx;
-        background: url(https://static.caimei365.com/app/img/supplier-login/userbg.png) center no-repeat;
-        border-radius: 36px;
-        margin-bottom: 40rpx;
-        box-shadow: 0rpx 6rpx 16rpx 0rpx rgba(51, 51, 51, 0.16);
-        display: flex;
-        justify-content: space-between;
-        align-items: center;
-        flex-direction: column;
-        font-size: 18rpx;
-        color: white;
-        box-sizing: border-box;
-        padding: 34rpx 0;
-        .userLogin {
-            width: 100%;
-            white-space: nowrap;
-            overflow: hidden;
-            text-overflow: ellipsis;
-            text-align: center;
-        }
-    }
-    .slide {
-        width: 100rpx;
-        overflow: hidden;
-        border-radius: 50rpx;
-        background-color: #ff5b00;
-        box-shadow: 0rpx 6rpx 24rpx 0rpx rgba(255, 91, 0, 0.3);
-        .slide-img {
-            width: 45rpx;
-            height: 45rpx;
-        }
-        .slide-item {
-            height: 140rpx;
-            width: 100rpx;
-            display: flex;
-            flex-direction: column;
-            align-items: center;
-            box-sizing: border-box;
-            padding-top: 30rpx;
-            border-bottom: 1rpx solid rgba(255, 255, 255, 0.3);
-            .slide-title {
-                margin-top: 10rpx;
-                font-size: 20rpx;
-                color: #fff;
-            }
-        }
-        .slide-item:nth-child(3) {
-            padding-top: 45rpx !important;
-        }
-    }
-}
-.tui-modal-custom {
-    padding: 30rpx 80rpx;
-}
-.tui-modal-custom-text {
-    text-align: center;
-    color: #666666;
-    font-size: 28rpx;
-}
-.tui-modal-custom-phone {
-    margin-top: 62rpx;
-    text-align: center;
-    color: #ff5b00;
-    border-bottom: 1px solid #ff5b00;
-    font-size: 40rpx;
-    font-weight: bold;
-}
-.tui-modal-custom-call {
-    font-size: 32rpx;
-    color: #666666;
-    padding-top: 50rpx;
-}
-.qrcode {
-    ::v-deep .tui-modal-box {
-        width: auto !important;
-        padding: 6rpx !important;
-        border-radius: 0 !important;
-    }
-    .tui-modal-custom-qrcode {
-        width: 412rpx;
-        height: 412rpx;
-    }
-}
-.modal-btns {
-    display: flex;
-    justify-content: space-between;
-    margin-top: 62rpx;
-    .cancel {
-        width: 200rpx !important;
-        color: #666666 !important;
-    }
-    .determine {
-        width: 200rpx !important;
-    }
-}
-</style>
+<template>
+    <view>
+        <view class="supplier_login"><login-menu :menuList="menuList" @scrollPage="scrollPage" ref="login-menu" /></view>
+        <view class="container">
+            <scroll-view
+                class="scrollview"
+                @scroll="scrollView"
+                scroll-y="true"
+                :scroll-into-view="activeMenu"
+                :scroll-with-animation="true"
+            >
+                <view id="item0">
+                    <marke-service :bannersList="bannerList">
+                        <template #supplier-title>
+                            <supplier-title title="全生命周期陪跑服务" subtitle="采美,更专业的美业数字化营销服务" />
+                        </template>
+                    </marke-service>
+                </view>
+                <view id="item1">
+                    <Solution :isShareTimeline="isShareTimeline" @solutionModal="solutionModal">
+                        <template #supplier-title>
+                            <supplier-title title="解决方案" subtitle="满足企业全方位需求" />
+                        </template>
+                    </Solution>
+                </view>
+                <view id="item2">
+                    <basic-operation>
+                        <template #supplier-title>
+                            <supplier-title title="基础运营产品" subtitle="使企业走向数字化的基石" />
+                        </template>
+                    </basic-operation>
+                </view>
+                <view id="item3">
+                    <scenario-market>
+                        <template #supplier-title>
+                            <supplier-title title="场景营销工具" subtitle="多样化工具,全方位助力您的企业目标" />
+                        </template>
+                    </scenario-market>
+                </view>
+                <view id="item4">
+                    <success-cases :successList="successList">
+                        <template #supplier-title>
+                            <supplier-title
+                                title="成功案例"
+                                subtitle="了解已合作品牌的真实推广案例,借鉴成功经验<br />助力有效推广,实现商业目标"
+                            />
+                        </template>
+                    </success-cases>
+                </view>
+                <view id="item5">
+                    <caimei-about>
+                        <template #supplier-title>
+                            <supplier-title
+                                title="关于采美"
+                                subtitle="了解采美,合作共赢"
+                                titlecolor="#ffffff"
+                                subtitlecolor="#ffffff"
+                            />
+                        </template>
+                    </caimei-about>
+                </view>
+                <view id="item6">
+                    <growth-community @playVideo="playVideo" :videoList="videoList" :articelList="articelList">
+                        <template #supplier-title>
+                            <supplier-title title="增长社区" subtitle="数十年资深美业运营经验,教你快速成长" />
+                        </template>
+                    </growth-community>
+                </view>
+            </scroll-view>
+        </view>
+        <view class="supplier-slide" ref="supplierSlide" :style="{zIndex: isModalShow ? -1 : 20}">
+            <view class="user-cicle" @click="supplierLogin" v-if="!hasLogin || userInfo.userIdentity === 3">
+                <image
+                    style="width: 48rpx;height: 48rpx;"
+                    src="https://static.caimei365.com/app/img/supplier-login/userDefault_new.png"
+                    mode=""
+                ></image>
+                <view class="userLogin">{{ hasLogin ? userInfo.name : '登录/注册'}}</view>
+            </view>
+            <view class="slide">
+                <view
+                    class="slide-item"
+                    v-for="item in slideList"
+                    :key="item.id"
+                    v-if="item.isShow"
+                    @click="handlerChange(item)"
+                >
+                    <image class="slide-img" :src="item.slideBg" mode=""></image>
+                    <view class="slide-title">{{ item.title }}</view>
+                </view>
+            </view>
+        </view>
+        <tui-modal :show="show" custom @cancel="cancel">
+            <view class="tui-modal-custom">
+                <view class="tui-modal-custom-text">周一至周五 9:00~1800</view>
+                <view class="tui-modal-custom-phone" @click=";(modal = true), (show = false)">153-3889-7365</view>
+            </view>
+        </tui-modal>
+        <tui-modal :show="isPhone" class="qrcode" custom @cancel="cancel">
+            <view class="tui-modal-custom-qrcode">
+                <image
+                    style="width: 100%;height: 100%;"
+                    show-menu-by-longpress="true"
+                    src="https://static.caimei365.com/app/img/supplier-login/kefu_qr.jpg"
+                    mode=""
+                ></image>
+            </view>
+        </tui-modal>
+        <tui-modal :show="modal" custom @cancel="cancel">
+            <view class="tui-modal-custom-call">
+                <view class="tui-modal-custom-text">
+                    确定拨打
+                    <text style="color: #FF5B00;font-weight: bold;margin: 0 6rpx;">153-3889-7365</text>
+                    吗?
+                </view>
+                <view class="modal-btns">
+                    <tui-button
+                        class="cancel"
+                        type="black"
+                        @click="modal = false"
+                        height="72rpx"
+                        :size="28"
+                        plain
+                        shape="circle"
+                    >
+                        取消
+                    </tui-button>
+                    <tui-button
+                        class="determine"
+                        height="72rpx"
+                        :size="28"
+                        type="warning"
+                        shape="circle"
+                        @click="handleClick"
+                    >
+                        确定
+                    </tui-button>
+                </view>
+            </view>
+        </tui-modal>
+        <cm-video :show="showVideo" @closeClick="closeVideo" :videoObj="videoObj" />
+    </view>
+</template>
+
+<script>
+import LoginMenu from './components/supplier-loginMenu.vue'
+import MarkeService from './components/markeServices.vue'
+import SupplierTitle from './components/supplier-title.vue'
+import Solution from './components/solution.vue'
+import BasicOperation from './components/basicOperationsProducts.vue'
+import ScenarioMarket from './components/scenarioMarketing.vue'
+import SuccessCases from './components/successCases.vue'
+import CaimeiAbout from './components/caimei-about.vue'
+import GrowthCommunity from './components/growthCommunity.vue'
+import CmVideo from './components/caimei-video.vue'
+import { mapState } from 'vuex'
+export default {
+    components: {
+        LoginMenu,
+        MarkeService,
+        SupplierTitle,
+        Solution,
+        BasicOperation,
+        ScenarioMarket,
+        SuccessCases,
+        CaimeiAbout,
+        GrowthCommunity,
+        CmVideo
+    },
+    data() {
+        return {
+            menuList: [
+                {
+                    id: 0,
+                    title: '营销服务'
+                },
+                {
+                    id: 1,
+                    title: '解决方案'
+                },
+                {
+                    id: 2,
+                    title: '运营产品'
+                },
+                {
+                    id: 3,
+                    title: '营销工具'
+                },
+                {
+                    id: 4,
+                    title: '成功案例'
+                },
+                {
+                    id: 5,
+                    title: '关于采美'
+                },
+                {
+                    id: 6,
+                    title: '增长社区'
+                }
+            ],
+            activeMenu: '', // 滚动到指定位置
+            show: false,
+            isPhone: false,
+            modal: false,
+            showVideo: false,
+            videoObj: {},
+            slideList: [
+                {
+                    id: 1,
+                    title: '电话联系',
+                    slideBg: 'https://static.caimei365.com/app/img/supplier-login/phone.png',
+                    isShow: true
+                },
+                {
+                    id: 2,
+                    title: '微信客服',
+                    slideBg: 'https://static.caimei365.com/app/img/supplier-login/qrcode.png',
+                    isShow: true
+                },
+                {
+                    id: 3,
+                    title: '',
+                    slideBg: 'https://static.caimei365.com/app/img/supplier-login/scrolltop.png',
+                    isShow: false
+                }
+            ],
+            successList: [],
+            videoList: [],
+            articelList: [],
+            bannerList: [],
+            isShareTimeline: false, // 是否从朋友圈分享
+            isModalShow: false,
+        }
+    },
+    computed: {
+        ...mapState(['hasLogin', 'userInfo'])
+    },
+    watch: {},
+    onLoad(options) {
+        // 是否从朋友圈分享进入
+        if (options.isShareTimeline) {
+            this.isShareTimeline = options.isShareTimeline
+        } 
+        // 点击链接
+        uni.$on('changeLink', e => {
+            setTimeout(() => {
+                this.activeMenu = e
+            }, 500)
+        })
+        uni.$on('handlerChangeLink', e => {
+            setTimeout(() => {
+                this.$refs['login-menu'].activeMenu = e
+                this.$refs['login-menu'].isActive = Number(e.split('item')[1])
+                this.activeMenu = e
+            }, 500)
+        })
+    },
+    mounted() {
+        this.getSupplierLanding()
+    },
+    onShareAppMessage(res) {
+        return {
+            title: '更专业的美业数字化营销服务',
+            path: '/pages/login/supplier_login'
+        }
+    },
+    // 分享朋友圈
+    onShareTimeline() {
+        return {
+            title: '更专业的美业数字化营销服务',
+            path: '/pages/login/supplier_login',
+            query: 'isShareTimeline=' + true
+        }
+    },
+    methods: {
+        // 滚动事件
+        scrollPage($event) {
+            this.activeMenu = $event
+        },
+        scrollView(e) {
+            this.activeMenu = ''
+            if (e.detail.scrollTop < 50) {
+                this.slideList[2].isShow = false
+            } else {
+                this.slideList[2].isShow = true
+            }
+        },
+        handlerChange(e) {
+            const obj = {
+                1: () => (this.show = true),
+                2: () => (this.isPhone = true),
+                3: () => (this.activeMenu = 'item0')
+            }
+            obj[e.id]()
+        },
+        hideAlert() {
+            this.show = false
+        },
+        // 拨打电话
+        handleClick() {
+            uni.makePhoneCall({
+                phoneNumber: '153-3889-7365' //仅为示例
+            })
+            this.modal = false
+        },
+        cancel() {
+            this.modal = false
+            this.show = false
+            this.isPhone = false
+        },
+        // 视频播放
+        playVideo($event) {
+            this.videoObj = $event
+            this.showVideo = true
+        },
+        // 视频关闭
+        closeVideo() {
+            this.showVideo = false
+        },
+        // supplierLogin 登陆
+        supplierLogin() {
+            if (this.hasLogin) {
+                uni.navigateTo({
+                    url: '/pages/supplier/user/supplier?shopId=' + this.userInfo.shopId
+                })
+            } else {
+                uni.navigateTo({
+                    url: '/pages/login/login?state=1'
+                })
+            }
+        },
+        // solutionModal 方案解决模块
+        solutionModal(val) {
+            this.isModalShow = val
+        },
+        async getSupplierLanding() {
+            try {
+                const { data } = await this.UserService.supplierLoading({ source: 2 })
+                this.bannerList = data.banner
+                this.successList = data.landing.filter(e => e.type == '1')
+                this.videoList = data.landing.filter(e => e.type == '2')
+                this.articelList = data.landing.filter(e => e.type == '3')
+            } catch (error) {
+                console.log(error)
+            }
+        }
+    }
+}
+</script>
+
+<style lang="scss" scoped>
+.container {
+    position: absolute;
+    bottom: 0;
+    height: auto;
+}
+.scrollview {
+    width: 100%;
+    height: calc(100vh - 120rpx);
+    background-color: #fff;
+    #item1 {
+        z-index: 20;
+    }
+}
+.supplier-slide {
+    position: fixed;
+    right: 40rpx;
+    box-sizing: border-box;
+    width: 100rpx;
+    bottom: 100rpx;
+    .user-cicle {
+        width: 100rpx;
+        height: 150rpx;
+        background: url(https://static.caimei365.com/app/img/supplier-login/userbg.png) center no-repeat;
+        border-radius: 36px;
+        margin-bottom: 40rpx;
+        box-shadow: 0rpx 6rpx 16rpx 0rpx rgba(51, 51, 51, 0.16);
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        flex-direction: column;
+        font-size: 18rpx;
+        color: white;
+        box-sizing: border-box;
+        padding: 34rpx 0;
+        .userLogin {
+            width: 100%;
+            white-space: nowrap;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            text-align: center;
+        }
+    }
+    .slide {
+        width: 100rpx;
+        overflow: hidden;
+        border-radius: 50rpx;
+        background-color: #ff5b00;
+        box-shadow: 0rpx 6rpx 24rpx 0rpx rgba(255, 91, 0, 0.3);
+        .slide-img {
+            width: 45rpx;
+            height: 45rpx;
+        }
+        .slide-item {
+            height: 140rpx;
+            width: 100rpx;
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+            box-sizing: border-box;
+            padding-top: 30rpx;
+            border-bottom: 1rpx solid rgba(255, 255, 255, 0.3);
+            .slide-title {
+                margin-top: 10rpx;
+                font-size: 20rpx;
+                color: #fff;
+            }
+        }
+        .slide-item:nth-child(3) {
+            padding-top: 45rpx !important;
+        }
+    }
+}
+.tui-modal-custom {
+    padding: 30rpx 80rpx;
+}
+.tui-modal-custom-text {
+    text-align: center;
+    color: #666666;
+    font-size: 28rpx;
+}
+.tui-modal-custom-phone {
+    margin-top: 62rpx;
+    text-align: center;
+    color: #ff5b00;
+    border-bottom: 1px solid #ff5b00;
+    font-size: 40rpx;
+    font-weight: bold;
+}
+.tui-modal-custom-call {
+    font-size: 32rpx;
+    color: #666666;
+    padding-top: 50rpx;
+}
+.qrcode {
+    ::v-deep .tui-modal-box {
+        width: auto !important;
+        padding: 6rpx !important;
+        border-radius: 0 !important;
+    }
+    .tui-modal-custom-qrcode {
+        width: 412rpx;
+        height: 412rpx;
+    }
+}
+.modal-btns {
+    display: flex;
+    justify-content: space-between;
+    margin-top: 62rpx;
+    .cancel {
+        width: 200rpx !important;
+        color: #666666 !important;
+    }
+    .determine {
+        width: 200rpx !important;
+    }
+}
+</style>

+ 159 - 0
pages/login/supplier_more.vue

@@ -0,0 +1,159 @@
+<template>
+    <view class="more">
+        <view class="supplier_login"><login-menu ref="login-menu" :menuList="menuList" @scrollPage="scrollPage" /></view>
+        <view class="more-bg">
+            <image src="https://static.caimei365.com/app/img/supplier-login/growth/banner.png" mode=""></image>
+        </view>
+        <view class="container">
+            <view class="tabs">
+                <view class="tab" :class="active === i.id ? 'active' : ''" v-for="i in activeTabs" :key="i.id" @click="handlerTabs(i)">
+                    {{ i.title }}
+                </view>
+            </view>
+            <view class="growth-module-list">
+                <active-team-com v-for="i in dataList" :key="i.id" :module="i" :active="active" @playVideo="playVideo"/>
+            </view>
+        </view>
+        <cm-video :show="showVideo" @closeClick="closeVideo" :videoObj="videoObj" />
+    </view>
+</template>
+
+<script>
+import LoginMenu from './components/supplier-loginMenu.vue'
+import activeTeamCom from './components/activeTeamCom.vue'
+import CmVideo from './components/caimei-video.vue'
+export default {
+    components: {
+        LoginMenu,
+        activeTeamCom,
+        CmVideo
+    },
+    data () {
+        return {
+            menuList: [
+                {
+                    id: 0,
+                    title: '营销服务'
+                },
+                {
+                    id: 1,
+                    title: '解决方案'
+                },
+                {
+                    id: 2,
+                    title: '运营产品'
+                },
+                {
+                    id: 3,
+                    title: '营销工具'
+                },
+                {
+                    id: 4,
+                    title: '成功案例'
+                },
+                {
+                    id: 5,
+                    title: '关于采美'
+                },
+                {
+                    id: 6,
+                    title: '增长社区'
+                }
+            ],
+            activeMenu: '',
+            isActive: 6,
+            activeTabs: [
+                {
+                    id: 1,
+                    title: '美业企谈'
+                },
+                {
+                    id: 2,
+                    title: '干货知识'
+                }
+            ],
+            active: 1,
+            dataList: [],
+            showVideo: false,
+            videoObj: {}
+        }
+    },
+    onLoad (option) {
+        this.handlerInit()
+        this.active = Number(option.active)
+        this.getSupplierLanding(this.active)
+    },
+    methods: {
+        // 滚动事件
+        scrollPage($event) {
+            this.activeMenu = $event
+            uni.$emit('handlerChangeLink', $event)
+            uni.navigateBack({ delta: 1 })
+        },
+        // init
+        handlerInit () {
+            this.$refs['login-menu'].activeMenu = 'item6'
+            this.$refs['login-menu'].isActive = 6
+        },
+        handlerTabs ($event) {
+            this.active = $event.id
+            this.getSupplierLanding(this.active)
+        },
+        async getSupplierLanding(active) {
+            try {
+                const { data } = await this.UserService.supplierLoading({ source: 2 })
+                this.dataList = active === 1 ? data.landing.filter(e => e.type == '2') : data.landing.filter(e => e.type == '3')
+            } catch (error) {
+                console.log(error)
+            }
+        },
+        // 视频播放
+        playVideo($event) {
+            this.videoObj = $event
+            this.showVideo = true
+        },
+        // 视频关闭
+        closeVideo() {
+            this.showVideo = false
+        },
+    }
+}
+</script>
+
+<style scoped lang="scss">
+.more {
+    .more-bg {
+        padding-top: 110rpx;
+        height: 360rpx;
+        image {
+            width: 100%;
+            height: 100%;
+        }
+    }
+    .container {
+        padding: 70rpx 33rpx;
+        box-sizing: border-box;
+        .tabs {
+            padding-bottom: 30rpx;
+            align-items: center;
+            display: flex;
+            box-sizing: border-box;
+            .tab {
+                color: #666666;
+                font-size: 32rpx;
+                margin-right: 56rpx;
+                &.active {
+                    color: #333333;
+                    font-weight: bold;
+                    border-bottom: 3rpx solid #FF5B00;
+                }
+            }
+        }
+        .growth-module-list {
+            display: grid;
+            grid-template-columns: repeat(2, 1fr);
+            grid-gap: 20rpx;
+        }
+    }
+}
+</style>

+ 2 - 2
pages/search/search-supplier.vue

@@ -68,8 +68,8 @@
 					<!--加载loadding-->
 			</view>
 		</view>
-		<!-- ross弹窗 -->
-		<cmRossPopup v-if="showRossHtml" :popupShow="showRossHtml"></cmRossPopup>
+        <!-- 供应商收集用户信息弹窗 -->
+        <cmRossPopup v-if="showRossHtml" :popupShow="showRossHtml" :advertisement="advertisement" />
 	</view>  
 </template>
 

+ 1730 - 1751
pages/search/search.vue

@@ -1,492 +1,482 @@
 <template>
-    <view class="search-container" :class="{ unScorll: showLibaray }">
-        <view class="search-main">
-            <view class="tui-header-tab">
-                <view class="search-tab">
-                    <view class="search-tab-btn" @click="topBubble">
-                        <text>{{ tabValue }}</text>
-                        <text class="iconfont icon-xiangxiajiantou"></text>
-                    </view>
-                </view>
-                <view class="gosearch-btn">
-                    <text class="iconfont icon-sousuo"></text>
-                    <input
-                        class="input"
-                        maxlength="20"
-                        :focus="isFocus"
-                        type="text"
-                        value=""
-                        confirm-type="search"
-                        @focus="onFocus"
-                        @input="onShowClose"
-                        @confirm="handleSearchQuery"
-                        @blur="onBlur"
-                        placeholder="请输入搜索关键字"
-                        v-model.trim="listQuery.keyword"
-                    />
-                    <text class="iconfont icon-shanchu1" v-if="isShowClose" @click.stop="delInputText()"></text>
-                </view>
-                <view class="search-btn" @click="handleSearchQuery">搜索</view>
-            </view>
-            <!-- 筛选条件排序 -->
-            <view class="tui-header-screen">
-                <view class="tui-screen-top">
-                    <view
-                        class="tui-top-item"
-                        :class="[tabIndex == 0 ? 'tui-active' : '']"
-                        @tap="handleScreen"
-                        data-index="0"
-                    >
-                        综合
-                    </view>
-                    <view
-                        class="tui-top-item tui-icon-ml"
-                        :class="[tabIndex == 1 ? 'tui-active' : '']"
-                        data-index="1"
-                        @tap="handleScreen"
-                    >
-                        <view>销量</view>
-                        <text class="iconfont icon-shangxiajiantou" v-if="isSearchSalesFirst"></text>
-                        <template v-else>
-                            <tui-icon
-                                :name="isSearchSales ? 'turningdown' : 'turningup'"
-                                :size="18"
-                                :color="tabIndex == 1 ? '#FF5B00' : '#999'"
-                                tui-icon-class="tui-ml"
-                            ></tui-icon>
-                        </template>
-                    </view>
-                    <view
-                        class="tui-top-item tui-icon-ml"
-                        :class="[tabIndex == 2 ? 'tui-active' : '']"
-                        data-index="2"
-                        @tap="handleScreen"
-                    >
-                        <view>人气</view>
-                        <text class="iconfont icon-shangxiajiantou" v-if="isSearchMoodFirst"></text>
-                        <template v-else>
-                            <tui-icon
-                                :name="isSearchMood ? 'turningdown' : 'turningup'"
-                                :size="18"
-                                :color="tabIndex == 2 ? '#FF5B00' : '#999'"
-                                tui-icon-class="tui-ml"
-                            ></tui-icon>
-                        </template>
-                    </view>
-                    <view
-                        class="tui-top-item tui-icon-ml"
-                        :class="[tabIndex == 3 ? 'tui-active' : '']"
-                        data-index="3"
-                        @tap="handleScreen"
-                    >
-                        <view>价格</view>
-                        <text class="iconfont icon-shangxiajiantou" v-if="isSearchPriceFirst"></text>
-                        <template v-else>
-                            <tui-icon
-                                :name="isSearchPrice ? 'turningdown' : 'turningup'"
-                                :size="18"
-                                :color="tabIndex == 3 ? '#FF5B00' : '#999'"
-                                tui-icon-class="tui-ml"
-                            ></tui-icon>
-                        </template>
-                    </view>
-                    <view class="tui-top-item" @tap="handleScreen" data-index="4">
-                        <view>筛选</view>
-                        <text class="iconfont icon-shaixuan"></text>
-                    </view>
-                </view>
-            </view>
-        </view>
-        <!-- 小下拉 -->
-        <view class="search-main-bubble" v-if="showBubblePopup">
-            <tui-bubble-popup
-                :show="showBubblePopup"
-                :mask="true"
-                position="absolute"
-                direction="top"
-                @close="topBubble"
-                width="140rpx"
-                left="10rpx"
-                top="-80rpx"
-                translateY="100%"
-                triangleRight="60rpx"
-                triangleTop="-22rpx"
-                :maskBgColor="maskBgColor"
-            >
-                <view class="tui-menu-item" @tap="selectTabs(1)">产品</view>
-                <view class="tui-menu-item" @tap="selectTabs(2)">供应商</view>
-                <!-- <view class="tui-menu-item" @tap="selectTabs(3)">项目仪器</view> -->
-            </tui-bubble-popup>
-        </view>
-        <!-- 搜索关键词库提示 -->
-        <view class="search-library" v-show="showLibaray && userIdentity === 1">
-            <scroll-view scroll-y="true" class="search-library-scroll">
-                <div class="search-library-wrapper">
-                    <view
-                        class="keyword-item"
-                        v-for="item in libraryWordList"
-                        :key="item"
-                        @click="onLibraryClick(item)"
-                    >
-                        <text class="iconfont icon-sousuo"></text>
-                        <view class="content" v-html="item.text"></view>
-                    </view>
-                </div>
-            </scroll-view>
-        </view>
-        <!-- 搜索历史记录 -->
-        <view class="search-container-history" v-if="!isShowWrapper">
-            <view :class="'s-' + themeClass" v-if="serachRecordList.length > 0">
-                <view class="header">
-                    搜索历史
-                    <text class="iconfont icon-shanchu" @click="confirmDetele"></text>
-                </view>
-                <view class="list">
-                    <view class="list-main">
-                        <view
-                            v-for="(item, index) in serachRecordList"
-                            :key="index"
-                            @click="keywordsClick(item.searchWord)"
-                        >
-                            {{ item.searchWord }}
-                        </view>
-                    </view>
-                </view>
-            </view>
-            <view class="s-block clearfix">
-                <view class="header">热门搜索</view>
-                <view class="list">
-                    <view class="list-title">产品</view>
-                    <view class="list-main">
-                        <view
-                            v-for="(item, index) in productHotSearch"
-                            :key="index"
-                            @click="keywordsClickPath(item)"
-                            :class="item.isHot == '1' ? 'list-active' : ''"
-                        >
-                            {{ item.name }}
-                            <text class="iconfont icon-resou" v-if="item.isHot === '1'"></text>
-                        </view>
-                    </view>
-                </view>
-                <view class="list">
-                    <view class="list-title">仪器</view>
-                    <view class="list-main">
-                        <view
-                            v-for="(item, index) in instrumentHotSearch"
-                            :key="index"
-                            @click="keywordsClickPath(item)"
-                            :class="item.isHot == '1' ? 'list-active' : ''"
-                        >
-                            {{ item.name }}
-                            <text class="iconfont icon-resou" v-if="item.isHot === '1'"></text>
-                        </view>
-                    </view>
-                </view>
-            </view>
-        </view>
-        <view
-            v-else
-            class="commodity-list-wrapper"
-            :style="{ overflow: 'auto', height: listData.length > 4 ? windowHeight + 'px' : 'auto' }"
-        >
-            <scroll-view
-                :style="{ height: listData.length > 4 ? scrollHeight + 'px' : 'auto' }"
-                @scrolltolower="scrolltolower"
-                scroll-y
-                v-if="!showEmpty"
-            >
-                <view
-                    v-for="(pros, index) in listData"
-                    :key="index"
-                    :id="pros.id"
-                    class="all-type-list-content commodity-list"
-                    @click.stop="navToDetailPage(pros.productId)"
-                >
-                    <view class="list-details-image">
-                        <image mode="widthFix" :src="pros.image" class="list-img" alt="list-img"></image>
-                        <view class="list-details-type" v-if="pros.productType == 2">医疗器械</view>
-                    </view>
-                    <view class="list-details-info">
-                        <view class="list-details-title">
-                            <text class="mclap-tag" v-if="pros.beautyActFlag == 1">美博会</text>
-                            <text class="mclap" :class="pros.beautyActFlag == 1 ? 'indent' : ''">
-                                {{ isInterceptHtmlFn(pros.name) }}
-                            </text>
-                        </view>
-                        <text class="list-details-specs">规格:{{ pros.unit }}</text>
-                        <view class="list-details-specs" v-if="pros.code != '' && pros.code != null">
-                            <view>商品编码:{{ pros.code }}</view>
-                        </view>
-                        <view class="list-details-price">
-                            <template v-if="userIdentity == 3">
-                                <view class="floor-item-act">
-                                    <view class="coupon-tags" v-if="pros.couponsLogo">优惠券</view>
-                                    <template v-if="pros.actStatus == 1">
-                                        <view class="floor-tags" v-if="PromotionsFormat(pros.promotions)">
-                                            {{ pros.promotions.name }}
-                                            <text v-if="hasLogin && pros.shopId == shopId && pros.priceFlag != 1">
-                                                :¥{{ 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">SVIP</view>
-                                            <view
-                                                class="price"
-                                                v-if="hasLogin && pros.shopId == shopId && pros.priceFlag != 1"
-                                            >
-                                                {{ pros.svipPriceTag }}
-                                            </view>
-                                        </view>
-                                    </template>
-                                </view>
-                            </template>
-                            <template v-else-if="userIdentity == 1">
-                                <view class="floor-item-act">
-                                    <view class="coupon-tags" v-if="pros.couponsLogo">优惠券</view>
-                                    <template v-if="pros.actStatus == 1">
-                                        <view
-                                            class="floor-tags"
-                                            v-if="pros.actStatus == 1 && PromotionsFormat(pros.promotions)"
-                                        >
-                                            {{ 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>
-                                    </template>
-                                </view>
-                            </template>
-                            <template v-else>
-                                <view class="floor-item-act">
-                                    <view class="coupon-tags" v-if="pros.couponsLogo">优惠券</view>
-                                    <template v-if="pros.actStatus == 1">
-                                        <view
-                                            class="floor-tags"
-                                            v-if="pros.actStatus == 1 && PromotionsFormat(pros.promotions)"
-                                        >
-                                            {{ pros.promotions.name }}
-                                            <text v-if="hasLogin && ((userIdentity === 4 && pros.priceFlag === 0) || (userIdentity === 2 && pros.priceFlag !== 1))">
-                                                :¥{{ 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" :class="{ none: !isShowVipFlag(pros) }">SVIP</view>
-                                            <view class="price" v-if="isShowVipFlag(pros)">
-                                                {{ pros.svipPriceTag }}
-                                            </view>
-                                        </view>
-                                    </template>
-                                </view>
-                            </template>
-                            <view v-if="hasLogin" class="list-price">
-                                <!-- 协销 -->
-                                <template v-if="userIdentity == 1">
-                                    <text v-if="priceLoading" class="price-larger small">正在获取价格...</text>
-                                    <text
-                                        v-else
-                                        class="price-larger"
-                                        :class="
-                                            PromotionsFormat(pros.promotions) || pros.svipProductFlag == 1 ? 'none' : ''
-                                        "
-                                    >
-                                        ¥{{
-                                            (PromotionsFormat(pros.promotions) ? pros.originalPrice : pros.price)
-                                                | NumFormat
-                                        }}
-                                    </text>
-                                </template>
-                                <!-- 普通机构且不是超级会员 -->
-                                <template v-if="userIdentity == 4 && vipFlag != 1">
-                                    <view class="price-larger" v-if="pros.priceFlag == 1">
-                                        <text class="txt">¥未公开价格</text>
-                                    </view>
-                                    <text v-else-if="priceLoading" class="price-larger small">正在获取价格...</text>
-                                    <template v-else>
-                                        <view class="price-larger" v-if="pros.priceFlag == 2">
-                                            <text class="txt">¥价格仅会员可见</text>
-                                        </view>
-                                        <view class="price-larger" v-else-if="pros.priceFlag == 3">
-                                            <text class="txt">¥仅医美机构可见</text>
-                                        </view>
-                                        <text
-                                            v-else
-                                            class="price-larger"
-                                            :class="
-                                                PromotionsFormat(pros.promotions) || pros.svipProductFlag == 1
-                                                    ? 'none'
-                                                    : ''
-                                            "
-                                        >
-                                            ¥{{
-                                                (PromotionsFormat(pros.promotions) ? pros.originalPrice : pros.price)
-                                                    | NumFormat
-                                            }}
-                                        </text>
-                                    </template>
-                                </template>
-                                <!-- 供应商 -->
-                                <template v-if="userIdentity == 3">
-                                    <template v-if="pros.supplierId == shopId">
-                                        <view class="price-larger" v-if="pros.priceFlag == 1">
-                                            <text class="txt">¥未公开价格</text>
-                                        </view>
-                                        <text v-else-if="priceLoading" class="price-larger small">正在获取价格...</text>
-                                        <text
-                                            v-else
-                                            class="price-larger"
-                                            :class="
-                                                PromotionsFormat(pros.promotions) || pros.svipProductFlag == 1
-                                                    ? 'none'
-                                                    : ''
-                                            "
-                                        >
-                                            ¥{{
-                                                (PromotionsFormat(pros.promotions) ? pros.originalPrice : pros.price)
-                                                    | NumFormat
-                                            }}
-                                        </text>
-                                    </template>
-                                    <template v-else>
-                                        <view class="list-login-now">
-                                            <text class="p-no">¥</text>
-                                            <uni-grader :grade="Number(pros.priceGrade)"></uni-grader>
-                                        </view>
-                                    </template>
-                                </template>
-                                <!-- 会员机构 && 普通机构且是超级会员 -->
-                                <template v-if="userIdentity == 2 || (userIdentity == 4 && vipFlag == 1)">
-                                    <view class="price-larger" v-if="pros.priceFlag == 1">
-                                        <text class="txt">¥未公开价格</text>
-                                    </view>
-                                    <text v-else-if="priceLoading" class="price-larger small">正在获取价格...</text>
-                                    <template v-else>
-                                        <view class="price-larger" v-if="pros.priceFlag == 3 && firstClubType != 1">
-                                            <text class="txt">¥仅医美机构可见</text>
-                                        </view>
-                                        <text
-                                            v-else
-                                            class="price-larger"
-                                            :class="
-                                                PromotionsFormat(pros.promotions) || pros.svipProductFlag == 1
-                                                    ? 'none'
-                                                    : ''
-                                            "
-                                        >
-                                            ¥{{
-                                                (PromotionsFormat(pros.promotions) ? pros.originalPrice : pros.price)
-                                                    | NumFormat
-                                            }}
-                                        </text>
-                                    </template>
-                                </template>
-                            </view>
-                            <view v-else class="list-login-now">
-                                <text class="p-no">¥</text>
-                                <uni-grader :grade="Number(pros.priceGrade)"></uni-grader>
-                            </view>
-                        </view>
-                    </view>
-                </view>
-                <view v-if="showLoading && listData.length > 4">
-                    <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 class="empty-container" v-if="showEmpty">
-                <image
-                    class="empty-container-image"
-                    src="https://img.caimei365.com/group1/M00/03/8D/Cmis215XHXWAHCoqAAELHadZ9Xg365.png"
-                ></image>
-                <text class="error-text">抱歉,没有相关商品!</text>
-            </view>
-        </view>
-        <!--筛选条件右抽屉-->
-        <tui-drawer mode="right" :visible="rightDrawer" @close="closeDrawer">
-            <view class="drawer-title">
-                <view class="drawer-title-h1">品牌</view>
-                <view class="drawer-title-p">
-                    已选中
-                    <text class="text">{{ checkedBrandLength }}</text>
-                    个品牌
-                </view>
-            </view>
-            <view
-                class="drawer-container clearfix"
-                scroll-y
-                :style="{ paddingBottom: isIphoneX ? '180rpx' : '146rpx' }"
-                @scroll="drawerScroll(event)"
-            >
-                <scroll-view class="tui-drawer-scroll" scroll-y :style="{ height: drawerH + 'px' }">
-                    <view class="drawer-main">
-                        <view class="drawer-main-brand clearfix">
-                            <view
-                                class="drawer-brand-list"
-                                :class="isAllcheckedBrand ? 'checked' : ''"
-                                @click="choiceBrandAll"
-                            >
-                                全部
-                            </view>
-                            <view
-                                class="drawer-brand-list"
-                                :class="brand.isChecked ? 'checked' : ''"
-                                v-for="(brand, index) in brandLists"
-                                :key="index"
-                                @click="choiceBrand(brand, index)"
-                            >
-                                {{ brand.name }}
-                            </view>
-                            <view class="drawer-brand-more" v-if="!isShowAllBrands" @click="showAllBrands">
-                                查看全部
-                                <text class="iconfont icon-xiangxiajiantou"></text>
-                            </view>
-                        </view>
-                        <view class="drawer-main-radio">
-                            <view class="drawer-radio-name">新品</view>
-                            <view class="drawer-radio-input" @click="choiceNewType">
-                                <text
-                                    class="iconfont"
-                                    :class="isChoiceNewType ? 'icon-yixuanze' : 'icon-weixuanze'"
-                                ></text>
-                            </view>
-                        </view>
-                        <view class="drawer-main-radio">
-                            <view class="drawer-radio-name">促销商品</view>
-                            <view class="drawer-radio-input" @click="choiceActiType">
-                                <text
-                                    class="iconfont"
-                                    :class="isChoiceActiType ? 'icon-yixuanze' : 'icon-weixuanze'"
-                                ></text>
-                            </view>
-                        </view>
-                    </view>
-                </scroll-view>
-                <view class="drawer-input btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
-                    <view class="drawer-btn clear" @click="closeDrawer">取消</view>
-                    <view class="drawer-btn comfrim" @click="handSearchList">确定</view>
-                </view>
-            </view>
-        </tui-drawer>
-		<!-- ross弹窗 -->
-		<cmRossPopup v-if="showRossHtml" :popupShow="showRossHtml"></cmRossPopup>
-        <!-- 透明模态层 -->
-        <modal-layer v-if="isModallayer"></modal-layer>
-    </view>
+	<view class="search-container" :class="{ unScorll: showLibaray }">
+		<view class="search-main">
+			<view class="tui-header-tab">
+				<view class="search-tab">
+					<view class="search-tab-btn" @click="topBubble">
+						<text>{{ tabValue }}</text> <text class="iconfont icon-xiangxiajiantou"></text>
+					</view>
+				</view>
+				<view class="gosearch-btn">
+					<text class="iconfont icon-sousuo"></text>
+					<input
+						class="input"
+						maxlength="20"
+						:focus="isFocus"
+						type="text"
+						value=""
+						confirm-type="search"
+						@focus="onFocus"
+						@input="onShowClose"
+						@confirm="handleSearchQuery"
+						@blur="onBlur"
+						placeholder="请输入搜索关键字"
+						v-model.trim="listQuery.keyword"
+					/>
+					<text class="iconfont icon-shanchu1" v-if="isShowClose" @click.stop="delInputText()"></text>
+				</view>
+				<view class="search-btn" @click="handleSearchQuery">搜索</view>
+			</view>
+			<!-- 筛选条件排序 -->
+			<view class="tui-header-screen">
+				<view class="tui-screen-top">
+					<view
+						class="tui-top-item"
+						:class="[tabIndex == 0 ? 'tui-active' : '']"
+						@tap="handleScreen"
+						data-index="0"
+					>
+						综合
+					</view>
+					<view
+						class="tui-top-item tui-icon-ml"
+						:class="[tabIndex == 1 ? 'tui-active' : '']"
+						data-index="1"
+						@tap="handleScreen"
+					>
+						<view>销量</view> <text class="iconfont icon-shangxiajiantou" v-if="isSearchSalesFirst"></text>
+						<template v-else>
+							<tui-icon
+								:name="isSearchSales ? 'turningdown' : 'turningup'"
+								:size="18"
+								:color="tabIndex == 1 ? '#FF5B00' : '#999'"
+								tui-icon-class="tui-ml"
+							></tui-icon>
+						</template>
+					</view>
+					<view
+						class="tui-top-item tui-icon-ml"
+						:class="[tabIndex == 2 ? 'tui-active' : '']"
+						data-index="2"
+						@tap="handleScreen"
+					>
+						<view>人气</view> <text class="iconfont icon-shangxiajiantou" v-if="isSearchMoodFirst"></text>
+						<template v-else>
+							<tui-icon
+								:name="isSearchMood ? 'turningdown' : 'turningup'"
+								:size="18"
+								:color="tabIndex == 2 ? '#FF5B00' : '#999'"
+								tui-icon-class="tui-ml"
+							></tui-icon>
+						</template>
+					</view>
+					<view
+						class="tui-top-item tui-icon-ml"
+						:class="[tabIndex == 3 ? 'tui-active' : '']"
+						data-index="3"
+						@tap="handleScreen"
+					>
+						<view>价格</view> <text class="iconfont icon-shangxiajiantou" v-if="isSearchPriceFirst"></text>
+						<template v-else>
+							<tui-icon
+								:name="isSearchPrice ? 'turningdown' : 'turningup'"
+								:size="18"
+								:color="tabIndex == 3 ? '#FF5B00' : '#999'"
+								tui-icon-class="tui-ml"
+							></tui-icon>
+						</template>
+					</view>
+					<view class="tui-top-item" @tap="handleScreen" data-index="4">
+						<view>筛选</view> <text class="iconfont icon-shaixuan"></text>
+					</view>
+				</view>
+			</view>
+		</view>
+		<!-- 小下拉 -->
+		<view class="search-main-bubble" v-if="showBubblePopup">
+			<tui-bubble-popup
+				:show="showBubblePopup"
+				:mask="true"
+				position="absolute"
+				direction="top"
+				@close="topBubble"
+				width="140rpx"
+				left="10rpx"
+				top="-80rpx"
+				translateY="100%"
+				triangleRight="60rpx"
+				triangleTop="-22rpx"
+				:maskBgColor="maskBgColor"
+			>
+				<view class="tui-menu-item" @tap="selectTabs(1)">产品</view>
+				<view class="tui-menu-item" @tap="selectTabs(2)">供应商</view>
+				<!-- <view class="tui-menu-item" @tap="selectTabs(3)">项目仪器</view> -->
+			</tui-bubble-popup>
+		</view>
+		<!-- 搜索关键词库提示 -->
+		<view class="search-library" v-show="showLibaray && userIdentity === 1">
+			<scroll-view scroll-y="true" class="search-library-scroll">
+				<div class="search-library-wrapper">
+					<view
+						class="keyword-item"
+						v-for="item in libraryWordList"
+						:key="item"
+						@click="onLibraryClick(item)"
+					>
+						<text class="iconfont icon-sousuo"></text> <view class="content" v-html="item.text"></view>
+					</view>
+				</div>
+			</scroll-view>
+		</view>
+		<!-- 搜索历史记录 -->
+		<view class="search-container-history" v-if="!isShowWrapper">
+			<view :class="'s-' + themeClass" v-if="serachRecordList.length > 0">
+				<view class="header">
+					搜索历史 <text class="iconfont icon-shanchu" @click="confirmDetele"></text>
+				</view>
+				<view class="list">
+					<view class="list-main">
+						<view
+							v-for="(item, index) in serachRecordList"
+							:key="index"
+							@click="keywordsClick(item.searchWord)"
+						>
+							{{ item.searchWord }}
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="s-block clearfix">
+				<view class="header">热门搜索</view>
+				<view class="list">
+					<view class="list-title">产品</view>
+					<view class="list-main">
+						<view
+							v-for="(item, index) in productHotSearch"
+							:key="index"
+							@click="keywordsClickPath(item)"
+							:class="item.isHot == '1' ? 'list-active' : ''"
+						>
+							{{ item.name }} <text class="iconfont icon-resou" v-if="item.isHot === '1'"></text>
+						</view>
+					</view>
+				</view>
+				<view class="list">
+					<view class="list-title">仪器</view>
+					<view class="list-main">
+						<view
+							v-for="(item, index) in instrumentHotSearch"
+							:key="index"
+							@click="keywordsClickPath(item)"
+							:class="item.isHot == '1' ? 'list-active' : ''"
+						>
+							{{ item.name }} <text class="iconfont icon-resou" v-if="item.isHot === '1'"></text>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view
+			v-else
+			class="commodity-list-wrapper"
+			:style="{ overflow: 'auto', height: listData.length > 4 ? windowHeight + 'px' : 'auto' }"
+		>
+			<scroll-view
+				:style="{ height: listData.length > 4 ? scrollHeight + 'px' : 'auto' }"
+				@scrolltolower="scrolltolower"
+				scroll-y
+				v-if="!showEmpty"
+			>
+				<view
+					v-for="(pros, index) in listData"
+					:key="index"
+					:id="pros.id"
+					class="all-type-list-content commodity-list"
+					@click.stop="navToDetailPage(pros.productId)"
+				>
+					<view class="list-details-image">
+						<image mode="widthFix" :src="pros.image" class="list-img" alt="list-img"></image>
+						<view class="list-details-type" v-if="pros.productType == 2">医疗器械</view>
+					</view>
+					<view class="list-details-info">
+						<view class="list-details-title">
+							<text class="mclap-tag" v-if="pros.beautyActFlag == 1">美博会</text>
+							<text class="mclap" :class="pros.beautyActFlag == 1 ? 'indent' : ''">
+								{{ isInterceptHtmlFn(pros.name) }}
+							</text>
+						</view>
+						<text class="list-details-specs">规格:{{ pros.unit }}</text>
+						<view class="list-details-specs" v-if="pros.code != '' && pros.code != null">
+							<view>商品编码:{{ pros.code }}</view>
+						</view>
+						<view class="list-details-price">
+							<template v-if="userIdentity == 3">
+								<view class="floor-item-act">
+									<view class="coupon-tags" v-if="pros.couponsLogo">优惠券</view>
+									<template v-if="pros.actStatus == 1">
+										<view class="floor-tags" v-if="PromotionsFormat(pros.promotions)">
+											{{ pros.promotions.name }}
+											<text v-if="hasLogin && pros.shopId == shopId && pros.priceFlag != 1">
+												:¥{{ 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">SVIP</view>
+											<view
+												class="price"
+												v-if="hasLogin && pros.shopId == shopId && pros.priceFlag != 1"
+											>
+												{{ pros.svipPriceTag }}
+											</view>
+										</view>
+									</template>
+								</view>
+							</template>
+							<template v-else-if="userIdentity == 1">
+								<view class="floor-item-act">
+									<view class="coupon-tags" v-if="pros.couponsLogo">优惠券</view>
+									<template v-if="pros.actStatus == 1">
+										<view
+											class="floor-tags"
+											v-if="pros.actStatus == 1 && PromotionsFormat(pros.promotions)"
+										>
+											{{ 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>
+									</template>
+								</view>
+							</template>
+							<template v-else>
+								<view class="floor-item-act">
+									<view class="coupon-tags" v-if="pros.couponsLogo">优惠券</view>
+									<template v-if="pros.actStatus == 1">
+										<view
+											class="floor-tags"
+											v-if="pros.actStatus == 1 && PromotionsFormat(pros.promotions)"
+										>
+											{{ pros.promotions.name }}
+											<text
+												v-if="
+													hasLogin &&
+														((userIdentity === 4 && pros.priceFlag === 0) ||
+															(userIdentity === 2 && pros.priceFlag !== 1))
+												"
+											>
+												:¥{{ 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" :class="{ none: !isShowVipFlag(pros) }">SVIP</view>
+											<view class="price" v-if="isShowVipFlag(pros)">
+												{{ pros.svipPriceTag }}
+											</view>
+										</view>
+									</template>
+								</view>
+							</template>
+							<view v-if="hasLogin" class="list-price">
+								<!-- 协销 -->
+								<template v-if="userIdentity == 1">
+									<text v-if="priceLoading" class="price-larger small">正在获取价格...</text>
+									<text
+										v-else
+										class="price-larger"
+										:class="
+											PromotionsFormat(pros.promotions) || pros.svipProductFlag == 1 ? 'none' : ''
+										"
+									>
+										¥{{
+											(PromotionsFormat(pros.promotions) ? pros.originalPrice : pros.price)
+												| NumFormat
+										}}
+									</text>
+								</template>
+								<!-- 普通机构且不是超级会员 -->
+								<template v-if="userIdentity == 4 && vipFlag != 1">
+									<view class="price-larger" v-if="pros.priceFlag == 1">
+										<text class="txt">¥未公开价格</text>
+									</view>
+									<text v-else-if="priceLoading" class="price-larger small">正在获取价格...</text>
+									<template v-else>
+										<view class="price-larger" v-if="pros.priceFlag == 2">
+											<text class="txt">¥价格仅会员可见</text>
+										</view>
+										<view class="price-larger" v-else-if="pros.priceFlag == 3">
+											<text class="txt">¥仅医美机构可见</text>
+										</view>
+										<text
+											v-else
+											class="price-larger"
+											:class="
+												PromotionsFormat(pros.promotions) || pros.svipProductFlag == 1
+													? 'none'
+													: ''
+											"
+										>
+											¥{{
+												(PromotionsFormat(pros.promotions) ? pros.originalPrice : pros.price)
+													| NumFormat
+											}}
+										</text>
+									</template>
+								</template>
+								<!-- 供应商 -->
+								<template v-if="userIdentity == 3">
+									<template v-if="pros.supplierId == shopId">
+										<view class="price-larger" v-if="pros.priceFlag == 1">
+											<text class="txt">¥未公开价格</text>
+										</view>
+										<text v-else-if="priceLoading" class="price-larger small">正在获取价格...</text>
+										<text
+											v-else
+											class="price-larger"
+											:class="
+												PromotionsFormat(pros.promotions) || pros.svipProductFlag == 1
+													? 'none'
+													: ''
+											"
+										>
+											¥{{
+												(PromotionsFormat(pros.promotions) ? pros.originalPrice : pros.price)
+													| NumFormat
+											}}
+										</text>
+									</template>
+									<template v-else>
+										<view class="list-login-now">
+											<text class="p-no">¥</text>
+											<uni-grader :grade="Number(pros.priceGrade)"></uni-grader>
+										</view>
+									</template>
+								</template>
+								<!-- 会员机构 && 普通机构且是超级会员 -->
+								<template v-if="userIdentity == 2 || (userIdentity == 4 && vipFlag == 1)">
+									<view class="price-larger" v-if="pros.priceFlag == 1">
+										<text class="txt">¥未公开价格</text>
+									</view>
+									<text v-else-if="priceLoading" class="price-larger small">正在获取价格...</text>
+									<template v-else>
+										<view class="price-larger" v-if="pros.priceFlag == 3 && firstClubType != 1">
+											<text class="txt">¥仅医美机构可见</text>
+										</view>
+										<text
+											v-else
+											class="price-larger"
+											:class="
+												PromotionsFormat(pros.promotions) || pros.svipProductFlag == 1
+													? 'none'
+													: ''
+											"
+										>
+											¥{{
+												(PromotionsFormat(pros.promotions) ? pros.originalPrice : pros.price)
+													| NumFormat
+											}}
+										</text>
+									</template>
+								</template>
+							</view>
+							<view v-else class="list-login-now">
+								<text class="p-no">¥</text>
+								<uni-grader :grade="Number(pros.priceGrade)"></uni-grader>
+							</view>
+						</view>
+					</view>
+				</view>
+				<view v-if="showLoading && listData.length > 4">
+					<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 class="empty-container" v-if="showEmpty">
+				<image
+					class="empty-container-image"
+					src="https://img.caimei365.com/group1/M00/03/8D/Cmis215XHXWAHCoqAAELHadZ9Xg365.png"
+				></image>
+				<text class="error-text">抱歉,没有相关商品!</text>
+			</view>
+		</view>
+		<!--筛选条件右抽屉-->
+		<tui-drawer mode="right" :visible="rightDrawer" @close="closeDrawer">
+			<view class="drawer-title">
+				<view class="drawer-title-h1">品牌</view>
+				<view class="drawer-title-p">
+					已选中 <text class="text">{{ checkedBrandLength }}</text> 个品牌
+				</view>
+			</view>
+			<view
+				class="drawer-container clearfix"
+				scroll-y
+				:style="{ paddingBottom: isIphoneX ? '180rpx' : '146rpx' }"
+				@scroll="drawerScroll(event)"
+			>
+				<scroll-view class="tui-drawer-scroll" scroll-y :style="{ height: drawerH + 'px' }">
+					<view class="drawer-main">
+						<view class="drawer-main-brand clearfix">
+							<view
+								class="drawer-brand-list"
+								:class="isAllcheckedBrand ? 'checked' : ''"
+								@click="choiceBrandAll"
+							>
+								全部
+							</view>
+							<view
+								class="drawer-brand-list"
+								:class="brand.isChecked ? 'checked' : ''"
+								v-for="(brand, index) in brandLists"
+								:key="index"
+								@click="choiceBrand(brand, index)"
+							>
+								{{ brand.name }}
+							</view>
+							<view class="drawer-brand-more" v-if="!isShowAllBrands" @click="showAllBrands">
+								查看全部 <text class="iconfont icon-xiangxiajiantou"></text>
+							</view>
+						</view>
+						<view class="drawer-main-radio">
+							<view class="drawer-radio-name">新品</view>
+							<view class="drawer-radio-input" @click="choiceNewType">
+								<text
+									class="iconfont"
+									:class="isChoiceNewType ? 'icon-yixuanze' : 'icon-weixuanze'"
+								></text>
+							</view>
+						</view>
+						<view class="drawer-main-radio">
+							<view class="drawer-radio-name">促销商品</view>
+							<view class="drawer-radio-input" @click="choiceActiType">
+								<text
+									class="iconfont"
+									:class="isChoiceActiType ? 'icon-yixuanze' : 'icon-weixuanze'"
+								></text>
+							</view>
+						</view>
+					</view>
+				</scroll-view>
+				<view class="drawer-input btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
+					<view class="drawer-btn clear" @click="closeDrawer">取消</view>
+					<view class="drawer-btn comfrim" @click="handSearchList">确定</view>
+				</view>
+			</view>
+		</tui-drawer>
+		<!-- 供应商收集用户信息弹窗 -->
+		<cmRossPopup v-if="showRossHtml" :popupShow="showRossHtml" :advertisement="advertisement" />
+		<!-- 透明模态层 -->
+		<modal-layer v-if="isModallayer"></modal-layer>
+	</view>
 </template>
 
 <script>
@@ -500,1385 +490,1374 @@ import cmSrsMixins from '@/utils/cmSrsMixins.js'
 const myDebounce = fn => debounce(fn, 500, false)
 
 export default {
-    components: {
-        modalLayer,
-        uniGrader,
+	components: {
+		modalLayer,
+		uniGrader,
 		cmRossPopup
-    },
+	},
 	mixins: [cmSrsMixins],
-    data() {
-        return {
-            CustomBar: this.CustomBar, // 顶部导航栏高度
-            isIphoneX: this.$store.state.isIphoneX,
-            shopId: 0,
-            userId: 0,
-            tabValue: '产品',
-            themeClass: 'block',
-            showBubblePopup: false,
-            vipFlag: 0,
-            userIdentity: 0,
-            firstClubType: 0,
-            searchKeyType: 1,
-            tabIndex: 0,
-            rightDrawer: false,
-            isShowAllBrands: false,
-            isSearchSalesFirst: true,
-            isSearchMoodFirst: true,
-            isSearchPriceFirst: true,
-            isSearchSales: true,
-            isSearchMood: true,
-            isSearchPrice: true,
-            isChoiceNewType: false,
-            isChoiceActiType: false,
-            isAllcheckedBrand: false,
-            isShowClose: false, //是否显示清空输入框图标
-            isSearchHistory: false, //是都显示搜索历史
-            serachRecordList: [], //历史搜索记录
-            instrumentHotSearch: [],
-            productHotSearch: [],
-            isShowWrapper: false,
-            isModallayer: false,
-            isFocus: false,
-            priceLoading: true,
-            windowHeight: '',
-            showEmpty: false,
-            scrollHeight: '',
-            listData: [],
-            brandLists: [],
-            defaultBrandLists: [],
-            checkedBrandList: [],
-            checkedBrandLength: 0,
-            productIds: '', //查询价格的商品ID
-            showLoading: false,
-            loadingNow: true,
-            loadingText: '上拉加载更多',
-            pullFlag: true,
-            listQuery: {
-                identity: 0,
-                keyword: '',
-                pageNum: 1,
-                pageSize: 20,
-                sortField: '',
-                sortType: 1,
-                newType: 1,
-                actiType: 1,
-                brandIds: '', // 品牌Id
-                newFlag: 0, // 查询新品标记,默认0,新品1
-                promotionFlag: 0, // 查询促销标记,默认0,促销1
-                productFlag: 1, // 是否统计关键词 1 统计 0 不统计
-                linkageFlag: 0 // 关键词来源是否为用户搜索 0 是 1 不是
-            },
-            brandParam: {
-                keyword: '',
-                id: '',
-                idType: '',
-                identity: 0
-            },
-            total: 0,
-            height: 0,
-            drawerH: 0, // 抽屉内部scrollview高度
-            showLibaray: false,
-            libraryWordList: []
-        }
-    },
-    computed: {
-        ...mapState(['hasLogin', 'userInfo', 'clubType', 'identity'])
-    },
-    onLoad(option) {
-        console.log(option)
-        if (option.type == 'share') {
-            wxLogin.wxLoginAuthorize()
-        }
-        this.initGetStotage(option)
-    },
-    filters: {
-        NumFormat: function(text) {
-            //处理金额
-            return Number(text).toFixed(2)
-        }
-    },
-    methods: {
-        // 搜素关键词库
-        fetchLibraryWordList: myDebounce(async function() {
-            try {
-                const keyword = this.listQuery.keyword
-                const res = await this.LibraryService.GetSearchKeywordList({ keyword })
-                if (!res.data) {
-                    this.libraryWordList = []
-                }
-                this.libraryWordList = res.data.map(item => {
-                    item.text = item.keyword.replace(keyword, `<span style="color:#FF5B00;">${keyword}</span>`)
-                    return item
-                })
-                if (this.libraryWordList.length <= 0) return
-                this.showLibaray = true
-            } catch (e) {
-                console.log(e)
-            }
-        }),
+	data() {
+		return {
+			CustomBar: this.CustomBar, // 顶部导航栏高度
+			isIphoneX: this.$store.state.isIphoneX,
+			shopId: 0,
+			userId: 0,
+			tabValue: '产品',
+			themeClass: 'block',
+			showBubblePopup: false,
+			vipFlag: 0,
+			userIdentity: 0,
+			firstClubType: 0,
+			searchKeyType: 1,
+			tabIndex: 0,
+			rightDrawer: false,
+			isShowAllBrands: false,
+			isSearchSalesFirst: true,
+			isSearchMoodFirst: true,
+			isSearchPriceFirst: true,
+			isSearchSales: true,
+			isSearchMood: true,
+			isSearchPrice: true,
+			isChoiceNewType: false,
+			isChoiceActiType: false,
+			isAllcheckedBrand: false,
+			isShowClose: false, //是否显示清空输入框图标
+			isSearchHistory: false, //是都显示搜索历史
+			serachRecordList: [], //历史搜索记录
+			instrumentHotSearch: [],
+			productHotSearch: [],
+			isShowWrapper: false,
+			isModallayer: false,
+			isFocus: false,
+			priceLoading: true,
+			windowHeight: '',
+			showEmpty: false,
+			scrollHeight: '',
+			listData: [],
+			brandLists: [],
+			defaultBrandLists: [],
+			checkedBrandList: [],
+			checkedBrandLength: 0,
+			productIds: '', //查询价格的商品ID
+			showLoading: false,
+			loadingNow: true,
+			loadingText: '上拉加载更多',
+			pullFlag: true,
+			listQuery: {
+				identity: 0,
+				keyword: '',
+				pageNum: 1,
+				pageSize: 20,
+				sortField: '',
+				sortType: 1,
+				newType: 1,
+				actiType: 1,
+				brandIds: '', // 品牌Id
+				newFlag: 0, // 查询新品标记,默认0,新品1
+				promotionFlag: 0, // 查询促销标记,默认0,促销1
+				productFlag: 1, // 是否统计关键词 1 统计 0 不统计
+				linkageFlag: 0 // 关键词来源是否为用户搜索 0 是 1 不是
+			},
+			brandParam: {
+				keyword: '',
+				id: '',
+				idType: '',
+				identity: 0
+			},
+			total: 0,
+			height: 0,
+			drawerH: 0, // 抽屉内部scrollview高度
+			showLibaray: false,
+			libraryWordList: []
+		}
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'clubType', 'identity'])
+	},
+	onLoad(option) {
+		console.log(option)
+		if (option.type == 'share') {
+			wxLogin.wxLoginAuthorize()
+		}
+		this.initGetStotage(option)
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	methods: {
+		// 搜素关键词库
+		fetchLibraryWordList: myDebounce(async function() {
+			try {
+				const keyword = this.listQuery.keyword
+				const res = await this.LibraryService.GetSearchKeywordList({ keyword })
+				if (!res.data) {
+					this.libraryWordList = []
+				}
+				this.libraryWordList = res.data.map(item => {
+					item.text = item.keyword.replace(keyword, `<span style="color:#FF5B00;">${keyword}</span>`)
+					return item
+				})
+				if (this.libraryWordList.length <= 0) return
+				this.showLibaray = true
+			} catch (e) {
+				console.log(e)
+			}
+		}),
+
+		// 关键词点击
+		onLibraryClick(item) {
+			this.showLibaray = false
+			uni.navigateTo({
+				url: `/pages/search/search-library?keyword=${item.keyword}`
+			})
+		},
 
-        // 关键词点击
-        onLibraryClick(item) {
-            this.showLibaray = false
-            uni.navigateTo({
-                url: `/pages/search/search-library?keyword=${item.keyword}`
-            })
-        },
+		// 失去焦点
+		onBlur() {
+			// setTimeout(() => {
+			//     this.showLibaray = false
+			// }, 200)
+		},
 
-        // 失去焦点
-        onBlur() {
-            // setTimeout(() => {
-            //     this.showLibaray = false
-            // }, 200)
-        },
+		async initGetStotage(option) {
+			const userInfo = await this.$api.getStorage()
+			this.userId = userInfo.userId ? userInfo.userId : 0
+			this.shopId = userInfo.shopId ? userInfo.shopId : 0
+			this.vipFlag = userInfo.vipFlag ? userInfo.vipFlag : 0
+			this.userIdentity = userInfo.userIdentity ? userInfo.userIdentity : 0
+			this.listQuery.identity = this.identity
+			this.firstClubType = this.clubType
+			if (option.keyWord) {
+				this.listQuery.keyword = option.keyWord
+				this.setSearchHistoryAdd()
+				this.getListFromServer()
+				this.isFocus = false
+			} else {
+				this.isFocus = true
+				this.initGetSerachRecord()
+			}
+		},
+		GetHomeHotSearchTerms() {
+			//金刚区分类
+			this.CommonService.GetHomeHotSearchTerms({})
+				.then(response => {
+					let data = response.data
+					console.log(data)
+					this.instrumentHotSearch = data.instrumentHotSearch
+					this.productHotSearch = data.productHotSearch
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
+		},
+		initGetSerachRecord() {
+			//查询搜索历史记录
+			this.ProductService.GetProductSearchHistory({ userId: this.userId }).then(response => {
+				if (response.code == 0) {
+					this.serachRecordList = response.data
+				}
+			})
+		},
+		getCommoditySearchQUeryBrand() {
+			// 查询筛选项品牌
+			this.ProductService.getCommoditySearchQUeryBrand(this.brandParam)
+				.then(response => {
+					const data = response.data
+					this.defaultBrandLists = data.map((el, index) => {
+						el.isChecked = false
+						return el
+					})
+					if (this.defaultBrandLists.length > 11) {
+						this.isShowAllBrands = false
+					} else {
+						this.isShowAllBrands = true
+					}
+					this.brandLists = this.defaultBrandLists.slice(0, 11)
+					console.log('品牌=============>', this.brandLists)
+				})
+				.catch(error => {
+					console.log('查询品牌列表异常')
+				})
+		},
+		handleSearchQuery() {
+			this.showLibaray = false
+			this.listQuery.productFlag = 1
+			this.listQuery.linkageFlag = 0
 
-        async initGetStotage(option) {
-            const userInfo = await this.$api.getStorage()
-            this.userId = userInfo.userId ? userInfo.userId : 0
-            this.shopId = userInfo.shopId ? userInfo.shopId : 0
-            this.vipFlag = userInfo.vipFlag ? userInfo.vipFlag : 0
-            this.userIdentity = userInfo.userIdentity ? userInfo.userIdentity : 0
-            this.listQuery.identity = this.identity
-            this.firstClubType = this.clubType
-            if (option.keyWord) {
-                this.listQuery.keyword = option.keyWord
-                this.setSearchHistoryAdd()
-                this.getListFromServer()
-                this.isFocus = false
-            } else {
-                this.isFocus = true
-                this.initGetSerachRecord()
-            }
-        },
-        GetHomeHotSearchTerms() {
-            //金刚区分类
-            this.CommonService.GetHomeHotSearchTerms({})
-                .then(response => {
-                    let data = response.data
-                    console.log(data)
-                    this.instrumentHotSearch = data.instrumentHotSearch
-                    this.productHotSearch = data.productHotSearch
-                })
-                .catch(error => {
-                    this.$util.msg(error.msg, 2000)
-                })
-        },
-        initGetSerachRecord() {
-            //查询搜索历史记录
-            this.ProductService.GetProductSearchHistory({ userId: this.userId }).then(response => {
-                if (response.code == 0) {
-                    this.serachRecordList = response.data
-                }
-            })
-        },
-        getCommoditySearchQUeryBrand() {
-            // 查询筛选项品牌
-            this.ProductService.getCommoditySearchQUeryBrand(this.brandParam)
-                .then(response => {
-                    const data = response.data
-                    this.defaultBrandLists = data.map((el, index) => {
-                        el.isChecked = false
-                        return el
-                    })
-                    if (this.defaultBrandLists.length > 11) {
-                        this.isShowAllBrands = false
-                    } else {
-                        this.isShowAllBrands = true
-                    }
-                    this.brandLists = this.defaultBrandLists.slice(0, 11)
-                    console.log('品牌=============>', this.brandLists)
-                })
-                .catch(error => {
-                    console.log('查询品牌列表异常')
-                })
-        },
-        handleSearchQuery() {
-            this.showLibaray = false
-            this.listQuery.productFlag = 1
-            this.listQuery.linkageFlag = 0
-            
-            //搜索
-            if (this.listQuery.keyword == '') {
-                this.$util.msg('请输入搜索关键词', 2000)
-            } else {
-                switch (this.searchKeyType) {
-                    case 1:
-                        this.listData = []
-                        this.brandParam.keyword = this.handleProsKey = this.listQuery.keyword
-						uni.setStorageSync('pageLabel',this.listQuery.keyword)
+			//搜索
+			if (this.listQuery.keyword == '') {
+				this.$util.msg('请输入搜索关键词', 2000)
+			} else {
+				switch (this.searchKeyType) {
+					case 1:
+						this.listData = []
+						this.brandParam.keyword = this.handleProsKey = this.listQuery.keyword
+						uni.setStorageSync('pageLabel', this.listQuery.keyword)
 						this.checkedIsRossSet() //判断是否弹窗ross广告
-                        this.setSearchHistoryAdd()
-                        this.getCommoditySearchQUeryBrand()
-                        this.getListFromServer()
-                        this.isFocus = false
-                        // 友盟埋点商品搜索点击
-                        if (process.env.NODE_ENV != 'development') {
-                            this.$uma.trackEvent('Um_Event_SearchProductSubmit', {
-                                Um_Key_Keyword: `${this.listQuery.keyword}`,
-                                Um_Key_PageName: '商品',
-                                Um_Key_SourcePage: '搜索商品'
-                            })
-                        }
-                        break
-                    case 2:
-                        this.setSearchHistoryAdd()
-                        this.$api.navigateTo(`/pages/search/search-supplier?keyWord=${this.listQuery.keyword}`)
-                        break
-                    case 3:
-                        this.setSearchHistoryAdd()
-                        this.$api.navigateTo(`/pages/search/search-instrument?keyWord=${this.listQuery.keyword}`)
-                        break
-                }
-            }
-        },
-        handSearchList() {
-            //确定筛选
-            this.rightDrawer = false
-            this.listQuery.pageNum = 1
-            this.getListFromServer(false)
-        },
-        scrolltolower() {
-            if (this.total > this.listData.length && this.pullFlag) {
-                this.getListFromServer(true)
-            }
-        },
-        getListFromServer(loadMore) {
-            this.showLoading = true
-            this.loadingNow = true
-            this.loadingText = '加载中'
-            this.showEmpty = false
-            if (loadMore) {
-                this.listQuery.pageNum += 1
-            }
-            this.ProductService.GetProductSearchList(this.listQuery)
-                .then(response => {
-                    this.isShowWrapper = true
-                    let resData = {}
-                    if (response.data) {
-                        resData = JSON.parse(response.data)
-                    }
-                    const resList = resData.items
-                    if (resList && resList.length > 0) {
-                        this.total = resData.total
-                        this.showEmpty = false
-                        if (loadMore) {
-                            this.listData = [...this.listData, ...resList]
-                            this.getProductPrice()
-                        } else {
-                            this.listData = [...resList]
-                            this.getProductPrice()
-                        }
-                        // 防上拉暴滑
-                        this.pullFlag = false
-                        setTimeout(() => {
-                            this.pullFlag = true
-                        }, 500)
-                        // 底部提示文案
-                        if (this.totalPage > this.listData.length) {
-                            this.loadingText = '上拉加载更多'
-                        } else {
-                            this.showLoading = true
-                            this.loadingNow = false
-                        }
-                    } else {
-                        if (!loadMore) {
-                            this.showEmpty = true
-                        }
-                    }
-                })
-                .catch(error => {
-                    console.log('商品搜索异常', error.msg)
-                })
-        },
-        setSearchHistoryAdd() {
-            //添加搜索记录
-            if (!this.hasLogin) {
-                return false
-            }
-            this.ProductService.GetAddProductSearchHistory({ userId: this.userId, keyword: this.listQuery.keyword })
-                .then(response => {
-                    //此为每次搜索同时添加用户的搜索记录
-                })
-                .catch(error => {
-                    this.$util.msg(error.msg, 2000)
-                })
-        },
-        getProductPrice() {
-            //获取价格
-            let productIdArr = []
-            this.listData.map(item => {
-                // 0公开价格 1不公开价格 2仅对资质机构公开
-                productIdArr.push(item.productId)
-            })
-            this.priceLoading = true
-            this.productIds = productIdArr.join(',')
-            this.ProductService.querySearchProductPrice({
-                userId: this.userId,
-                productIds: this.productIds,
-                source: 2 // 来源 1 WWW 2 小程序
-            })
-                .then(response => {
-                    if (response.data) {
-                        this.listData = this.ReturnNewProducts(this.listData, response.data)
-                    }
-                    this.priceLoading = false
-                })
-                .catch(error => {
-                    this.$util.msg(error.msg, 2000)
-                })
-        },
-        ReturnNewProducts(Array, list) {
-            //处理对应商品ID的商品价格
-            let NewArray = []
-            Array.map(item => {
-                for (let i = 0; i < list.length; i++) {
-                    if (item.productId == list[i].productId) {
-                        NewArray.push(Object.assign(item, list[i]))
-                    }
-                }
-            })
-            return NewArray
-        },
-        handleScreen(e) {
-            let index = e.currentTarget.dataset.index
-            if (index == 0) {
-                this.tabIndex = 0
-                this.isSearchSalesFirst = true
-                this.isSearchMoodFirst = true
-                this.isSearchPriceFirst = true
-                this.listQuery.sortType = 1
-                this.listQuery.sortField = ''
-                this.getListFromServer()
-            } else if (index == 1) {
-                this.tabIndex = 1
-                this.isSearchSalesFirst = false
-                this.isSearchMoodFirst = true
-                this.isSearchPriceFirst = true
-                this.isSearchSales = !this.isSearchSales
-                if (this.isSearchSales) {
-                    this.listQuery.sortType = 1
-                } else {
-                    this.listQuery.sortType = 0
-                }
-                this.listQuery.sortField = 'sales'
-                this.getListFromServer()
-            } else if (index == 2) {
-                this.tabIndex = 2
-                this.isSearchSalesFirst = true
-                this.isSearchPriceFirst = true
-                this.isSearchMoodFirst = false
-                this.isSearchMood = !this.isSearchMood
-                if (this.isSearchMood) {
-                    this.listQuery.sortType = 1
-                } else {
-                    this.listQuery.sortType = 0
-                }
-                this.listQuery.sortField = 'favorite'
-                this.getListFromServer()
-            } else if (index == 3) {
-                this.tabIndex = 3
-                this.isSearchSalesFirst = true
-                this.isSearchMoodFirst = true
-                this.isSearchPriceFirst = false
-                this.isSearchPrice = !this.isSearchPrice
-                if (this.isSearchPrice) {
-                    this.listQuery.sortType = 1
-                } else {
-                    this.listQuery.sortType = 0
-                }
-                this.listQuery.sortField = 'price'
-                this.getListFromServer()
-            } else if (index == 4) {
-                this.brandParam.keyword = this.listQuery.keyword
-                this.showRightDrawer()
-            }
-        },
-        showRightDrawer() {
-            //弹出右侧抽屉
-            this.rightDrawer = true
-        },
-        closeDrawer(e) {
-            //关闭抽屉
-            this.rightDrawer = false
-        },
-        PromotionsFormat(promo) {
-            //促销活动类型数据处理
-            if (promo != null) {
-                if (promo.type == 1 && promo.mode == 1) {
-                    return true
-                } else {
-                    return false
-                }
-            }
-            return false
-        },
-        isShowVipFlag(pros) {
-            /**
-             *显示SVIP和超级会员价格:
-             * 	个人机构(不是超级会员,但价格所有机构可见),
-             *	资质机构(不是超级会员,但价格所有机构可见或仅会员可见),
-             * 	超级会员(价格所有机构可见或仅会员可见),超级会员(是医美机构,价格仅医美可见)
-             *商品价格是否可见:priceFlag  0:所有机构可见 1:未公开价格 2:仅会员可见 3:仅医美机构可见
-             *	普通机构
-             * 		超级会员 && priceFlag === 0
-             * 	资质机构
-             * 		priceFlag !== 1 ||
-             * 		超级会员
-             * 			商品priceFlag === 3 && 是否是医美机构
-             */
-            // 未登录 || 非会员
-            if (!this.hasLogin || !this.vipFlag === 1) return false
-            // 商品所有机构可见
-            if (pros.priceFlag === 0) return true
-            // 商品价格仅资质机构可见
-            if (pros.priceFlag === 2 && this.userIdentity === 2) return true
-            // 商品价格仅医美机构可见
-            if (pros.priceFlag === 3 && this.userIdentity === 2 && this.firstClubType == 1) return true
-            // 其它
-            return false
-        },
-        onShowClose() {
-            //输入框输入时触发
-            this.inputEmpty(this.listQuery.keyword)
-            this.fetchLibraryWordList()
-        },
-        onFocus() {
-            //输入框获取焦点时触发
-            this.inputEmpty(this.listQuery.keyword)
-            this.initGetSerachRecord()
-        },
-        delInputText() {
-            //清除输入框内容
-            this.listQuery.keyword = ''
-            this.isShowClose = false
-            this.isShowWrapper = false
-            this.inputEmpty(this.listQuery.keyword)
-            this.initGetSerachRecord()
-            this.showLibaray = false
-        },
-        keywordsClick(item) {
-            //关键词搜索与历史搜索
-            this.listQuery.keyword = item
-            this.isShowClose = true
-            this.isFocus = false
-            this.handleSearchQuery()
-        },
-        keywordsClickPath(item) {
-            this.$api.FlooryNavigateTo(item)
-        },
-        confirmDetele() {
-            //清空历史记录
-            this.$util.modal('提示', '确定删除历史记录?', '确定', '取消', true, () => {
-                this.ProductService.GetDeleteProductSearchHistory({ userId: this.userId })
-                    .then(response => {
-                        this.$util.msg('删除成功', 2000, true, 'success')
-                        this.serachRecordList = []
-                    })
-                    .catch(error => {
-                        this.$util.msg(error.msg, 2000)
-                    })
-            })
-        },
-        inputEmpty(val) {
-            this.isShowWrapper = false
-            if (val != '') {
-                this.isShowClose = true
-                this.isFocus = true
-            } else {
-                this.isShowClose = false
-                this.isFocus = true
-            }
-        },
-        isInterceptHtmlFn(text) {
-            let name = this.$reg.interceptHtmlFn(text)
-            return name
-        },
-        navToDetailPage(id) {
-            this.isModallayer = true
-            this.$api.navigateTo(`/pages/goods/product?id=${id}`)
-            this.isModallayer = false
-        },
-        setScrollHeight() {
-            let obj = {}
-            const { windowHeight, pixelRatio } = wx.getSystemInfoSync()
-            uni.getSystemInfo({
-                success: res => {
-                    this.height = obj.top ? obj.top + obj.height + 8 : res.statusBarHeight + 44
-                    this.drawerH = res.windowHeight - uni.upx2px(180) - this.height
-                }
-            })
-            this.windowHeight = windowHeight - 1
-            this.scrollHeight = windowHeight - 1
-        },
-        toLoginPage() {
-            let searchLoginType = 'search'
-            uni.navigateTo({
-                url: `/pages/login/login?type=${searchLoginType}`
-            })
-        },
-        selectTabs(index) {
-            //选择搜索项
-            this.showBubblePopup = false
-            this.searchKeyType = index
-            switch (index) {
-                case 1:
-                    this.tabValue = '产品'
-                    break
-                case 2:
-                    this.tabValue = '供应商'
-                    break
-                case 3:
-                    this.tabValue = '项目仪器'
-                    break
-            }
-        },
-        showAllBrands() {
-            // 显示全部品牌
-            this.isShowAllBrands = true
-            this.brandLists = this.defaultBrandLists
-        },
-        choiceBrand(brand, index) {
-            // 选择品牌
-            brand.isChecked = !brand.isChecked
+						this.setSearchHistoryAdd()
+						this.getCommoditySearchQUeryBrand()
+						this.getListFromServer()
+						this.isFocus = false
+						// 友盟埋点商品搜索点击
+						if (process.env.NODE_ENV != 'development') {
+							this.$uma.trackEvent('Um_Event_SearchProductSubmit', {
+								Um_Key_Keyword: `${this.listQuery.keyword}`,
+								Um_Key_PageName: '商品',
+								Um_Key_SourcePage: '搜索商品'
+							})
+						}
+						break
+					case 2:
+						this.setSearchHistoryAdd()
+						this.$api.navigateTo(`/pages/search/search-supplier?keyWord=${this.listQuery.keyword}`)
+						break
+					case 3:
+						this.setSearchHistoryAdd()
+						this.$api.navigateTo(`/pages/search/search-instrument?keyWord=${this.listQuery.keyword}`)
+						break
+				}
+			}
+		},
+		handSearchList() {
+			//确定筛选
+			this.rightDrawer = false
+			this.listQuery.pageNum = 1
+			this.getListFromServer(false)
+		},
+		scrolltolower() {
+			if (this.total > this.listData.length && this.pullFlag) {
+				this.getListFromServer(true)
+			}
+		},
+		async getListFromServer(loadMore) {
+			this.showLoading = true
+			this.loadingNow = true
+			this.loadingText = '加载中'
+			this.showEmpty = false
+			if (loadMore) {
+				this.listQuery.pageNum += 1
+			}
+			try {
+				const res = await this.ProductService.GetProductSearchList(this.listQuery)
+				const data = JSON.parse(res.data)
+				const dataList = data.items
+				if (dataList && dataList.length > 0) {
+					this.total = data.total
+					this.showEmpty = false
+					if (loadMore) {
+						this.listData = [...this.listData, ...dataList]
+						this.getProductPrice()
+					} else {
+						this.listData = [...dataList]
+						this.getProductPrice()
+					}
+					// 防上拉暴滑
+					this.pullFlag = false
+					setTimeout(() => {
+						this.pullFlag = true
+					}, 500)
+					// 底部提示文案
+					if (this.total > this.listData.length) {
+						this.loadingText = '上拉加载更多'
+					} else {
+						this.showLoading = true
+						this.loadingNow = false
+					}
+				} else {
+					if (!loadMore) {
+						this.showEmpty = true
+					}
+				}
+				this.isShowWrapper = true
+			} catch (error) {
+				console.log('商品搜索异常:', error.msg)
+			}
+		},
+		async setSearchHistoryAdd() {
+			//此为每次搜索同时添加用户的搜索记录
+			if (!this.hasLogin) {
+				return false
+			}
+			try{
+				await this.ProductService.GetAddProductSearchHistory({ userId: this.userId, keyword: this.listQuery.keyword })
+			}catch(error){
+				console.log('添加用户搜索记录异常:', error.msg)
+			}
+		},
+		async getProductPrice() {
+			//获取价格
+			let productIdArr = []
+			this.listData.map(item => {
+				// 0公开价格 1不公开价格 2仅对资质机构公开
+				productIdArr.push(item.productId)
+			})
+			this.priceLoading = true
+			this.productIds = productIdArr.join(',')
+			try{
+				const res = await this.ProductService.querySearchProductPrice({ userId: this.userId,productIds: this.productIds,source: 2 })
+				const data = res.data
+				this.listData = this.ReturnNewProducts(this.listData, data)
+				this.priceLoading = false
+			}catch(error){
+				console.log('获取商品价格异常:', error.msg)
+			}
+		},
+		ReturnNewProducts(Array, list) {
+			//处理对应商品ID的商品价格
+			let NewArray = []
+			Array.map(item => {
+				for (let i = 0; i < list.length; i++) {
+					if (item.productId == list[i].productId) {
+						NewArray.push(Object.assign(item, list[i]))
+					}
+				}
+			})
+			return NewArray
+		},
+		handleScreen(e) {
+			let index = e.currentTarget.dataset.index
+			if (index == 0) {
+				this.tabIndex = 0
+				this.isSearchSalesFirst = true
+				this.isSearchMoodFirst = true
+				this.isSearchPriceFirst = true
+				this.listQuery.sortType = 1
+				this.listQuery.sortField = ''
+				this.getListFromServer()
+			} else if (index == 1) {
+				this.tabIndex = 1
+				this.isSearchSalesFirst = false
+				this.isSearchMoodFirst = true
+				this.isSearchPriceFirst = true
+				this.isSearchSales = !this.isSearchSales
+				if (this.isSearchSales) {
+					this.listQuery.sortType = 1
+				} else {
+					this.listQuery.sortType = 0
+				}
+				this.listQuery.sortField = 'sales'
+				this.getListFromServer()
+			} else if (index == 2) {
+				this.tabIndex = 2
+				this.isSearchSalesFirst = true
+				this.isSearchPriceFirst = true
+				this.isSearchMoodFirst = false
+				this.isSearchMood = !this.isSearchMood
+				if (this.isSearchMood) {
+					this.listQuery.sortType = 1
+				} else {
+					this.listQuery.sortType = 0
+				}
+				this.listQuery.sortField = 'favorite'
+				this.getListFromServer()
+			} else if (index == 3) {
+				this.tabIndex = 3
+				this.isSearchSalesFirst = true
+				this.isSearchMoodFirst = true
+				this.isSearchPriceFirst = false
+				this.isSearchPrice = !this.isSearchPrice
+				if (this.isSearchPrice) {
+					this.listQuery.sortType = 1
+				} else {
+					this.listQuery.sortType = 0
+				}
+				this.listQuery.sortField = 'price'
+				this.getListFromServer()
+			} else if (index == 4) {
+				this.brandParam.keyword = this.listQuery.keyword
+				this.showRightDrawer()
+			}
+		},
+		showRightDrawer() {
+			//弹出右侧抽屉
+			this.rightDrawer = true
+		},
+		closeDrawer(e) {
+			//关闭抽屉
+			this.rightDrawer = false
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
+				}
+			}
+			return false
+		},
+		isShowVipFlag(pros) {
+			/**
+			 *显示SVIP和超级会员价格:
+			 * 	个人机构(不是超级会员,但价格所有机构可见),
+			 *	资质机构(不是超级会员,但价格所有机构可见或仅会员可见),
+			 * 	超级会员(价格所有机构可见或仅会员可见),超级会员(是医美机构,价格仅医美可见)
+			 *商品价格是否可见:priceFlag  0:所有机构可见 1:未公开价格 2:仅会员可见 3:仅医美机构可见
+			 *	普通机构
+			 * 		超级会员 && priceFlag === 0
+			 * 	资质机构
+			 * 		priceFlag !== 1 ||
+			 * 		超级会员
+			 * 			商品priceFlag === 3 && 是否是医美机构
+			 */
+			// 未登录 || 非会员
+			if (!this.hasLogin || !this.vipFlag === 1) return false
+			// 商品所有机构可见
+			if (pros.priceFlag === 0) return true
+			// 商品价格仅资质机构可见
+			if (pros.priceFlag === 2 && this.userIdentity === 2) return true
+			// 商品价格仅医美机构可见
+			if (pros.priceFlag === 3 && this.userIdentity === 2 && this.firstClubType == 1) return true
+			// 其它
+			return false
+		},
+		onShowClose() {
+			//输入框输入时触发
+			this.inputEmpty(this.listQuery.keyword)
+			this.fetchLibraryWordList()
+		},
+		onFocus() {
+			//输入框获取焦点时触发
+			this.inputEmpty(this.listQuery.keyword)
+			this.initGetSerachRecord()
+		},
+		delInputText() {
+			//清除输入框内容
+			this.listQuery.keyword = ''
+			this.isShowClose = false
+			this.isShowWrapper = false
+			this.inputEmpty(this.listQuery.keyword)
+			this.initGetSerachRecord()
+			this.showLibaray = false
+		},
+		keywordsClick(item) {
+			//关键词搜索与历史搜索
+			this.listQuery.keyword = item
+			this.isShowClose = true
+			this.isFocus = false
+			this.handleSearchQuery()
+		},
+		keywordsClickPath(item) {
+			this.$api.FlooryNavigateTo(item)
+		},
+		confirmDetele() {
+			//清空历史记录
+			this.$util.modal('提示', '确定删除历史记录?', '确定', '取消', true, () => {
+				this.ProductService.GetDeleteProductSearchHistory({ userId: this.userId })
+					.then(response => {
+						this.$util.msg('删除成功', 2000, true, 'success')
+						this.serachRecordList = []
+					})
+					.catch(error => {
+						this.$util.msg(error.msg, 2000)
+					})
+			})
+		},
+		inputEmpty(val) {
+			this.isShowWrapper = false
+			if (val != '') {
+				this.isShowClose = true
+				this.isFocus = true
+			} else {
+				this.isShowClose = false
+				this.isFocus = true
+			}
+		},
+		isInterceptHtmlFn(text) {
+			let name = this.$reg.interceptHtmlFn(text)
+			return name
+		},
+		navToDetailPage(id) {
+			this.isModallayer = true
+			this.$api.navigateTo(`/pages/goods/product?id=${id}`)
+			this.isModallayer = false
+		},
+		setScrollHeight() {
+			let obj = {}
+			const { windowHeight, pixelRatio } = wx.getSystemInfoSync()
+			uni.getSystemInfo({
+				success: res => {
+					this.height = obj.top ? obj.top + obj.height + 8 : res.statusBarHeight + 44
+					this.drawerH = res.windowHeight - uni.upx2px(180) - this.height
+				}
+			})
+			this.windowHeight = windowHeight - 1
+			this.scrollHeight = windowHeight - 1
+		},
+		toLoginPage() {
+			let searchLoginType = 'search'
+			uni.navigateTo({
+				url: `/pages/login/login?type=${searchLoginType}`
+			})
+		},
+		selectTabs(index) {
+			//选择搜索项
+			this.showBubblePopup = false
+			this.searchKeyType = index
+			switch (index) {
+				case 1:
+					this.tabValue = '产品'
+					break
+				case 2:
+					this.tabValue = '供应商'
+					break
+				case 3:
+					this.tabValue = '项目仪器'
+					break
+			}
+		},
+		showAllBrands() {
+			// 显示全部品牌
+			this.isShowAllBrands = true
+			this.brandLists = this.defaultBrandLists
+		},
+		choiceBrand(brand, index) {
+			// 选择品牌
+			brand.isChecked = !brand.isChecked
 			if (brand.isChecked) {
-				if(!this.contains(this.checkedBrandList,brand.id)){
+				if (!this.contains(this.checkedBrandList, brand.id)) {
 					this.checkedBrandList.push(brand.id)
 				}
 			} else {
-				this.checkedBrandList.splice(this.checkedBrandList.indexOf(brand.id),1)
+				this.checkedBrandList.splice(this.checkedBrandList.indexOf(brand.id), 1)
 			}
-            this.isAllcheckedBrand = false
-            this.checkedBrandLength = this.checkedBrandList.length
-            console.log('checkedBrandList', this.checkedBrandList)
-            this.listQuery.brandIds = this.checkedBrandList.join(',')
-            console.log('this.listQuery.brandIds', this.listQuery.brandIds)
-        },
-		contains(arr, val) {// 校验
+			this.isAllcheckedBrand = false
+			this.checkedBrandLength = this.checkedBrandList.length
+			console.log('checkedBrandList', this.checkedBrandList)
+			this.listQuery.brandIds = this.checkedBrandList.join(',')
+			console.log('this.listQuery.brandIds', this.listQuery.brandIds)
+		},
+		contains(arr, val) {
+			// 校验
 			return arr.some(item => item === val)
 		},
-        choiceBrandAll() {
-            // 点击选择全部品牌
-            this.isAllcheckedBrand = true
-            this.listQuery.brandIds = ''
-            this.brandLists.forEach(el => {
-                el.isChecked = false
-            })
-        },
-        choiceNewType() {
-            // 选择筛选项新品
-            this.isChoiceNewType = !this.isChoiceNewType
-            if (this.isChoiceNewType) {
-                this.listQuery.newFlag = 1
-            } else {
-                this.listQuery.newFlag = 0
-            }
-        },
-        choiceActiType() {
-            // 选择筛选项促销商品
-            this.isChoiceActiType = !this.isChoiceActiType
-            if (this.isChoiceNewType) {
-                this.listQuery.promotionFlag = 1
-            } else {
-                this.listQuery.promotionFlag = 0
-            }
-        },
-        topBubble() {
-            console.log('1111111111')
-            //显隐搜索项
-            this.showBubblePopup = !this.showBubblePopup
-        }
-    },
-    onShareAppMessage(res) {
-        //分享转发
-        if (res.from === 'button') {
-            // 来自页面内转发按钮
-        }
-        return {
-            title: `点击查看“${this.listQuery.keyword}”相关的商品`,
-            path: `pages/search/search?type=share&keyWord=${this.listQuery.keyword}`
-        }
-    },
-    onShow() {
-        this.setScrollHeight()
-        this.GetHomeHotSearchTerms()
-    }
+		choiceBrandAll() {
+			// 点击选择全部品牌
+			this.isAllcheckedBrand = true
+			this.listQuery.brandIds = ''
+			this.brandLists.forEach(el => {
+				el.isChecked = false
+			})
+		},
+		choiceNewType() {
+			// 选择筛选项新品
+			this.isChoiceNewType = !this.isChoiceNewType
+			if (this.isChoiceNewType) {
+				this.listQuery.newFlag = 1
+			} else {
+				this.listQuery.newFlag = 0
+			}
+		},
+		choiceActiType() {
+			// 选择筛选项促销商品
+			this.isChoiceActiType = !this.isChoiceActiType
+			if (this.isChoiceNewType) {
+				this.listQuery.promotionFlag = 1
+			} else {
+				this.listQuery.promotionFlag = 0
+			}
+		},
+		topBubble() {
+			console.log('1111111111')
+			//显隐搜索项
+			this.showBubblePopup = !this.showBubblePopup
+		}
+	},
+	onShareAppMessage(res) {
+		//分享转发
+		if (res.from === 'button') {
+			// 来自页面内转发按钮
+		}
+		return {
+			title: `点击查看“${this.listQuery.keyword}”相关的商品`,
+			path: `pages/search/search?type=share&keyWord=${this.listQuery.keyword}`
+		}
+	},
+	onShow() {
+		this.setScrollHeight()
+		this.GetHomeHotSearchTerms()
+	}
 }
 </script>
 
 <style lang="scss">
 @import '@/uni.scss';
 page {
-    background-color: #f7f7f7 !important;
+	background-color: #f7f7f7 !important;
 }
 .search-main-bubble {
-    width: 100%;
-    height: 88rpx;
-    position: fixed;
-    top: 30rpx;
-    left: 0;
-    z-index: 1200;
-    box-sizing: border-box;
-    line-height: 70rpx;
-    color: #666666;
-    font-size: $font-size-24;
-    text-align: center;
+	width: 100%;
+	height: 88rpx;
+	position: fixed;
+	top: 30rpx;
+	left: 0;
+	z-index: 1200;
+	box-sizing: border-box;
+	line-height: 70rpx;
+	color: #666666;
+	font-size: $font-size-24;
+	text-align: center;
 }
 .search-main {
-    width: 100%;
-    height: 88rpx;
-    position: fixed;
-    top: 0;
-    left: 0;
-    background: #ffffff;
-    z-index: 990;
-    box-sizing: border-box;
-    .tui-header-tab {
-        height: 88rpx;
-        box-sizing: border-box;
-        padding: 9rpx 0;
-        float: left;
-        .search-tab {
-            width: 160rpx;
-            height: 70rpx;
-            line-height: 70rpx;
-            color: #666666;
-            font-size: 30rpx;
-            text-align: center;
-            float: left;
-            position: relative;
-            .icon-xiangxiajiantou {
-                margin-left: 10rpx;
-                font-size: $font-size-30;
-            }
-        }
-        .gosearch-btn {
-            width: 470rpx;
-            height: 100%;
-            float: left;
-            border-radius: 40rpx;
-            background: #f0f0f0;
-            margin: 0 auto;
-            padding: 0 20rpx;
-            font-size: 28rpx;
-            line-height: 70rpx;
-            padding-left: 70rpx;
-            color: #8a8a8a;
-            background: #f7f7f7;
-            position: relative;
-            box-sizing: border-box;
-            .icon-sousuo {
-                width: 70rpx;
-                height: 70rpx;
-                line-height: 70rpx;
-                text-align: center;
-                display: block;
-                position: absolute;
-                left: 0;
-                top: 0;
-                font-size: 34rpx;
-                color: #8a8a8a;
-                z-index: 10;
-            }
-            .icon-shanchu1 {
-                font-size: 36rpx;
-                color: #8a8a8a;
-                position: absolute;
-                right: 10rpx;
-                top: 0;
-                padding: 0 10rpx;
-                z-index: 100;
-            }
-            .input {
-                width: 400rpx;
-                height: 100%;
-                float: left;
-                font-size: $font-size-24;
-                box-sizing: border-box;
-                padding-right: 66rpx;
-            }
-        }
-        .search-btn {
-            width: 120rpx;
-            height: 70rpx;
-            line-height: 70rpx;
-            float: right;
-            text-align: center;
-            color: #FF5B00;
-            font-size: 30rpx;
-        }
-    }
+	width: 100%;
+	height: 88rpx;
+	position: fixed;
+	top: 0;
+	left: 0;
+	background: #ffffff;
+	z-index: 990;
+	box-sizing: border-box;
+	.tui-header-tab {
+		height: 88rpx;
+		box-sizing: border-box;
+		padding: 9rpx 0;
+		float: left;
+		.search-tab {
+			width: 160rpx;
+			height: 70rpx;
+			line-height: 70rpx;
+			color: #666666;
+			font-size: 30rpx;
+			text-align: center;
+			float: left;
+			position: relative;
+			.icon-xiangxiajiantou {
+				margin-left: 10rpx;
+				font-size: $font-size-30;
+			}
+		}
+		.gosearch-btn {
+			width: 470rpx;
+			height: 100%;
+			float: left;
+			border-radius: 40rpx;
+			background: #f0f0f0;
+			margin: 0 auto;
+			padding: 0 20rpx;
+			font-size: 28rpx;
+			line-height: 70rpx;
+			padding-left: 70rpx;
+			color: #8a8a8a;
+			background: #f7f7f7;
+			position: relative;
+			box-sizing: border-box;
+			.icon-sousuo {
+				width: 70rpx;
+				height: 70rpx;
+				line-height: 70rpx;
+				text-align: center;
+				display: block;
+				position: absolute;
+				left: 0;
+				top: 0;
+				font-size: 34rpx;
+				color: #8a8a8a;
+				z-index: 10;
+			}
+			.icon-shanchu1 {
+				font-size: 36rpx;
+				color: #8a8a8a;
+				position: absolute;
+				right: 10rpx;
+				top: 0;
+				padding: 0 10rpx;
+				z-index: 100;
+			}
+			.input {
+				width: 400rpx;
+				height: 100%;
+				float: left;
+				font-size: $font-size-24;
+				box-sizing: border-box;
+				padding-right: 66rpx;
+			}
+		}
+		.search-btn {
+			width: 120rpx;
+			height: 70rpx;
+			line-height: 70rpx;
+			float: right;
+			text-align: center;
+			color: #ff5b00;
+			font-size: 30rpx;
+		}
+	}
 }
 .search-container {
-    padding-top: 89rpx;
+	padding-top: 89rpx;
 
-    &.unScorll {
-        height: 100vh;
-        overflow: hidden;
-        box-sizing: border-box;
-    }
+	&.unScorll {
+		height: 100vh;
+		overflow: hidden;
+		box-sizing: border-box;
+	}
 }
 /*screen*/
 .tui-header-screen {
-    width: 100%;
-    height: 88rpx;
-    float: left;
-    box-sizing: border-box;
-    background: #fff;
+	width: 100%;
+	height: 88rpx;
+	float: left;
+	box-sizing: border-box;
+	background: #fff;
 }
 .tui-screen-top,
 .tui-screen-bottom {
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-    font-size: 28rpx;
-    color: #999999;
+	display: flex;
+	align-items: center;
+	justify-content: space-between;
+	font-size: 28rpx;
+	color: #999999;
 }
 .tui-screen-top {
-    height: 88rpx;
-    position: relative;
-    background: #fff;
-    border-bottom: 1px solid #efefef;
+	height: 88rpx;
+	position: relative;
+	background: #fff;
+	border-bottom: 1px solid #efefef;
 }
 .tui-top-item {
-    height: 28rpx;
-    line-height: 28rpx;
-    flex: 1;
-    display: flex;
-    align-items: center;
-    justify-content: center;
+	height: 28rpx;
+	line-height: 28rpx;
+	flex: 1;
+	display: flex;
+	align-items: center;
+	justify-content: center;
 }
 .icon-shangxiajiantou {
-    font-size: 20rpx;
-    color: #999999;
-    margin-left: 8rpx;
+	font-size: 20rpx;
+	color: #999999;
+	margin-left: 8rpx;
 }
 .tui-topitem-active {
-    color: #FF5B00;
+	color: #ff5b00;
 }
 
 .tui-screen-bottom {
-    height: 100rpx;
-    padding: 0 30rpx;
-    box-sizing: border-box;
-    font-size: 24rpx;
-    align-items: center;
-    overflow: hidden;
+	height: 100rpx;
+	padding: 0 30rpx;
+	box-sizing: border-box;
+	font-size: 24rpx;
+	align-items: center;
+	overflow: hidden;
 }
 
 .tui-bottom-text {
-    line-height: 26rpx;
-    max-width: 82%;
-    white-space: nowrap;
-    overflow: hidden;
-    text-overflow: ellipsis;
+	line-height: 26rpx;
+	max-width: 82%;
+	white-space: nowrap;
+	overflow: hidden;
+	text-overflow: ellipsis;
 }
 
 .tui-bottom-item {
-    flex: 1;
-    width: 0;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    padding: 0 12rpx;
-    box-sizing: border-box;
-    background: #f7f7f7;
-    margin-right: 20rpx;
-    white-space: nowrap;
-    height: 60rpx;
-    border-radius: 40rpx;
+	flex: 1;
+	width: 0;
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	padding: 0 12rpx;
+	box-sizing: border-box;
+	background: #f7f7f7;
+	margin-right: 20rpx;
+	white-space: nowrap;
+	height: 60rpx;
+	border-radius: 40rpx;
 }
 
 .tui-bottom-item:last-child {
-    margin-right: 0;
+	margin-right: 0;
 }
 
 .tui-btmItem-active {
-    background: #fcedea !important;
-    color: #FF5B00;
-    font-weight: bold;
-    position: relative;
+	background: #fcedea !important;
+	color: #ff5b00;
+	font-weight: bold;
+	position: relative;
 }
 
 .tui-btmItem-active::after {
-    content: '';
-    position: absolute;
-    border: 1rpx solid #FF5B00;
-    width: 100%;
-    height: 100%;
-    border-radius: 40rpx;
-    left: 0;
-    top: 0;
+	content: '';
+	position: absolute;
+	border: 1rpx solid #ff5b00;
+	width: 100%;
+	height: 100%;
+	border-radius: 40rpx;
+	left: 0;
+	top: 0;
 }
 
 .tui-btmItem-tap {
-    position: relative;
-    border-bottom-left-radius: 0;
-    border-bottom-right-radius: 0;
+	position: relative;
+	border-bottom-left-radius: 0;
+	border-bottom-right-radius: 0;
 }
 
 .tui-btmItem-tap::after {
-    content: '';
-    position: absolute;
-    width: 100%;
-    height: 22rpx;
-    background: #f7f7f7;
-    left: 0;
-    top: 58rpx;
+	content: '';
+	position: absolute;
+	width: 100%;
+	height: 22rpx;
+	background: #f7f7f7;
+	left: 0;
+	top: 58rpx;
 }
 .tui-active {
-    color: #FF5B00;
+	color: #ff5b00;
 }
 .tui-icon-ml .tui-icon-class {
-    margin-left: 6rpx;
+	margin-left: 6rpx;
 }
 
 .tui-ml {
-    margin-left: 6rpx;
+	margin-left: 6rpx;
 }
 
 .tui-seizeaseat-20 {
-    height: 20rpx;
+	height: 20rpx;
 }
 
 .tui-seizeaseat-30 {
-    height: 30rpx;
+	height: 30rpx;
 }
 
 .tui-icon-middle .tui-icon-class {
-    vertical-align: middle;
+	vertical-align: middle;
 }
 
 .tui-middle {
-    vertical-align: middle;
+	vertical-align: middle;
 }
 .search-container-history {
-    width: 100%;
-    min-height: 300rpx;
-    position: fixed;
-    top: 88rpx;
-    left: 0;
-    z-index: 999;
+	width: 100%;
+	min-height: 300rpx;
+	position: fixed;
+	top: 88rpx;
+	left: 0;
+	z-index: 999;
 }
 .s-block {
-    background: #ffffff;
-    .header {
-        font-size: 32rpx;
-        padding: 40rpx 24rpx 22rpx 24rpx;
-        line-height: 42rpx;
-        font-size: 30rpx;
-        font-weight: bold;
-        position: relative;
-        width: 100%;
-        float: left;
-        box-sizing: border-box;
-        .icon-shanchu {
-            font-size: 36rpx;
-            color: #333333;
-            float: right;
-            padding: 0 10rpx;
-            z-index: 10;
-            font-weight: normal;
-        }
-    }
-    .list {
-        width: 100%;
-        height: auot;
-        float: left;
-        padding: 0 24rpx 30rpx 24rpx;
-        box-sizing: border-box;
-        .list-title {
-            width: 100%;
-            height: 40rpx;
-            font-size: $font-size-26;
-            color: #333;
-        }
-        .list-main {
-            width: 100%;
-            float: left;
-            display: flex;
-            flex-wrap: wrap;
-            view {
-                color: #8a8a8a;
-                font-size: 24rpx;
-                box-sizing: border-box;
-                text-align: center;
-                height: 48rpx;
-                line-height: 48rpx;
-                border-radius: 24rpx;
-                margin: 12rpx 12rpx 12rpx 0;
-                padding: 0 20rpx;
-                white-space: nowrap;
-                text-overflow: ellipsis;
-                background-color: #f3f3f3;
-                .iconfont {
-                    font-size: $font-size-30;
-                    color: #FF5B00;
-                    margin-left: 12rpx;
-                }
-                &.list-active {
-                    background-color: #fef6f3;
-                    color: #FF5B00;
-                }
-            }
-        }
-    }
+	background: #ffffff;
+	.header {
+		font-size: 32rpx;
+		padding: 40rpx 24rpx 22rpx 24rpx;
+		line-height: 42rpx;
+		font-size: 30rpx;
+		font-weight: bold;
+		position: relative;
+		width: 100%;
+		float: left;
+		box-sizing: border-box;
+		.icon-shanchu {
+			font-size: 36rpx;
+			color: #333333;
+			float: right;
+			padding: 0 10rpx;
+			z-index: 10;
+			font-weight: normal;
+		}
+	}
+	.list {
+		width: 100%;
+		height: auot;
+		float: left;
+		padding: 0 24rpx 30rpx 24rpx;
+		box-sizing: border-box;
+		.list-title {
+			width: 100%;
+			height: 40rpx;
+			font-size: $font-size-26;
+			color: #333;
+		}
+		.list-main {
+			width: 100%;
+			float: left;
+			display: flex;
+			flex-wrap: wrap;
+			view {
+				color: #8a8a8a;
+				font-size: 24rpx;
+				box-sizing: border-box;
+				text-align: center;
+				height: 48rpx;
+				line-height: 48rpx;
+				border-radius: 24rpx;
+				margin: 12rpx 12rpx 12rpx 0;
+				padding: 0 20rpx;
+				white-space: nowrap;
+				text-overflow: ellipsis;
+				background-color: #f3f3f3;
+				.iconfont {
+					font-size: $font-size-30;
+					color: #ff5b00;
+					margin-left: 12rpx;
+				}
+				&.list-active {
+					background-color: #fef6f3;
+					color: #ff5b00;
+				}
+			}
+		}
+	}
 }
 .s-circle {
-    margin-top: 30rpx;
-    .header {
-        font-size: 32rpx;
-        padding: 30rpx;
-        border-bottom: 2rpx solid #f9f9f9;
-        position: relative;
-        image {
-            width: 36rpx;
-            height: 36rpx;
-            padding: 10rpx;
-            position: absolute;
-            right: 40rpx;
-            top: 24rpx;
-        }
-    }
-    .list {
-        display: flex;
-        flex-wrap: wrap;
-        padding: 0 30rpx 20rpx;
-        view {
-            padding: 8rpx 30rpx;
-            margin: 20rpx 30rpx 0 0;
-            font-size: 28rpx;
-            color: #8a8a8a;
-            background-color: #f7f7f7;
-            box-sizing: border-box;
-            text-align: center;
-            border-radius: 20rpx;
-        }
-    }
+	margin-top: 30rpx;
+	.header {
+		font-size: 32rpx;
+		padding: 30rpx;
+		border-bottom: 2rpx solid #f9f9f9;
+		position: relative;
+		image {
+			width: 36rpx;
+			height: 36rpx;
+			padding: 10rpx;
+			position: absolute;
+			right: 40rpx;
+			top: 24rpx;
+		}
+	}
+	.list {
+		display: flex;
+		flex-wrap: wrap;
+		padding: 0 30rpx 20rpx;
+		view {
+			padding: 8rpx 30rpx;
+			margin: 20rpx 30rpx 0 0;
+			font-size: 28rpx;
+			color: #8a8a8a;
+			background-color: #f7f7f7;
+			box-sizing: border-box;
+			text-align: center;
+			border-radius: 20rpx;
+		}
+	}
 }
 .wanted-block {
-    margin-top: 30rpx;
-    .header {
-        font-size: 32rpx;
-        padding: 30rpx;
-    }
-    .list {
-        display: flex;
-        flex-wrap: wrap;
-        view {
-            width: 50%;
-            color: #8a8a8a;
-            font-size: 28rpx;
-            box-sizing: border-box;
-            text-align: center;
-            padding: 20rpx 0;
-            border-top: 2rpx solid #fff;
-            border-left: 2rpx solid #fff;
-            background-color: #f7f7f7;
-            overflow: hidden;
-            white-space: nowrap;
-            text-overflow: ellipsis;
-        }
-    }
+	margin-top: 30rpx;
+	.header {
+		font-size: 32rpx;
+		padding: 30rpx;
+	}
+	.list {
+		display: flex;
+		flex-wrap: wrap;
+		view {
+			width: 50%;
+			color: #8a8a8a;
+			font-size: 28rpx;
+			box-sizing: border-box;
+			text-align: center;
+			padding: 20rpx 0;
+			border-top: 2rpx solid #fff;
+			border-left: 2rpx solid #fff;
+			background-color: #f7f7f7;
+			overflow: hidden;
+			white-space: nowrap;
+			text-overflow: ellipsis;
+		}
+	}
 }
 .wanted-circle {
-    margin-top: 30rpx;
-    .header {
-        font-size: 32rpx;
-        padding: 30rpx;
-    }
-    .list {
-        display: flex;
-        flex-wrap: wrap;
-        padding: 0 30rpx 20rpx;
-        view {
-            padding: 8rpx 30rpx;
-            margin: 20rpx 30rpx 0 0;
-            font-size: 28rpx;
-            color: #8a8a8a;
-            background-color: #f7f7f7;
-            box-sizing: border-box;
-            text-align: center;
-            border-radius: 20rpx;
-        }
-    }
+	margin-top: 30rpx;
+	.header {
+		font-size: 32rpx;
+		padding: 30rpx;
+	}
+	.list {
+		display: flex;
+		flex-wrap: wrap;
+		padding: 0 30rpx 20rpx;
+		view {
+			padding: 8rpx 30rpx;
+			margin: 20rpx 30rpx 0 0;
+			font-size: 28rpx;
+			color: #8a8a8a;
+			background-color: #f7f7f7;
+			box-sizing: border-box;
+			text-align: center;
+			border-radius: 20rpx;
+		}
+	}
 }
 .commodity-list-wrapper {
-    padding-top: 88rpx;
-    scroll-view {
-        height: 100%;
-        overflow: scroll;
-    }
-    .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;
-    }
+	padding-top: 88rpx;
+	scroll-view {
+		height: 100%;
+		overflow: scroll;
+	}
+	.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;
+	}
 }
 .all-type-list-content {
-    height: 216rpx;
-    padding: 24rpx;
-    background: #fff;
-    margin-bottom: 2rpx;
-    display: flex;
-    flex-direction: row;
-    box-sizing: content-box;
-    .list-details-image {
-        width: 218rpx;
-        height: 218rpx !important;
-        margin-right: 26rpx;
-        border-radius: 10rpx;
-        border: 2rpx solid #f3f3f3;
-        position: relative;
-        .list-img {
-            width: 218rpx;
-            height: 218rpx !important;
-        }
-        .list-details-type {
-            width: 64rpx;
-            height: 64rpx;
-            text-align: justify;
-            box-sizing: border-box;
-            padding: 10rpx;
-            border-radius: 0 0 8rpx 8rpx;
-            background-color: #33ccbf;
-            font-size: $font-size-22;
-            color: #ffffff;
-            line-height: 25rpx;
-            position: absolute;
-            top: 0;
-            right: 10rpx;
-        }
-    }
+	height: 216rpx;
+	padding: 24rpx;
+	background: #fff;
+	margin-bottom: 2rpx;
+	display: flex;
+	flex-direction: row;
+	box-sizing: content-box;
+	.list-details-image {
+		width: 218rpx;
+		height: 218rpx !important;
+		margin-right: 26rpx;
+		border-radius: 10rpx;
+		border: 2rpx solid #f3f3f3;
+		position: relative;
+		.list-img {
+			width: 218rpx;
+			height: 218rpx !important;
+		}
+		.list-details-type {
+			width: 64rpx;
+			height: 64rpx;
+			text-align: justify;
+			box-sizing: border-box;
+			padding: 10rpx;
+			border-radius: 0 0 8rpx 8rpx;
+			background-color: #33ccbf;
+			font-size: $font-size-22;
+			color: #ffffff;
+			line-height: 25rpx;
+			position: absolute;
+			top: 0;
+			right: 10rpx;
+		}
+	}
 }
 .list-details-info {
-    width: 466rpx;
-    display: flex;
-    flex-direction: column;
-    font-size: 26rpx;
-    position: relative;
-    .list-details-title {
-        position: relative;
-        .mclap {
-            line-height: 38rpx;
-            text-overflow: ellipsis;
-            overflow: hidden;
-            display: -webkit-box;
-            -webkit-line-clamp: 2;
-            line-clamp: 2;
-            -webkit-box-orient: vertical;
-            &.indent {
-                text-indent: 95rpx;
-            }
-        }
-        .mclap-tag {
-            display: block;
-            width: 84rpx;
-            height: 32rpx;
-            background-image: linear-gradient(270deg, #f9c023 0%, #f83600 100%);
-            border-radius: 4rpx 48rpx 4px 4px;
-            line-height: 32rpx;
-            font-size: $font-size-22;
-            color: #ffffff;
-            text-align: center;
-            position: absolute;
-            left: 0;
-            top: 0;
-        }
-    }
-    .list-details-specs {
-        margin-top: 8rpx;
-        color: #666666;
-    }
-    .list-details-miniQuantity {
-        margin-top: 7rpx;
-    }
+	width: 466rpx;
+	display: flex;
+	flex-direction: column;
+	font-size: 26rpx;
+	position: relative;
+	.list-details-title {
+		position: relative;
+		.mclap {
+			line-height: 38rpx;
+			text-overflow: ellipsis;
+			overflow: hidden;
+			display: -webkit-box;
+			-webkit-line-clamp: 2;
+			line-clamp: 2;
+			-webkit-box-orient: vertical;
+			&.indent {
+				text-indent: 95rpx;
+			}
+		}
+		.mclap-tag {
+			display: block;
+			width: 84rpx;
+			height: 32rpx;
+			background-image: linear-gradient(270deg, #f9c023 0%, #f83600 100%);
+			border-radius: 4rpx 48rpx 4px 4px;
+			line-height: 32rpx;
+			font-size: $font-size-22;
+			color: #ffffff;
+			text-align: center;
+			position: absolute;
+			left: 0;
+			top: 0;
+		}
+	}
+	.list-details-specs {
+		margin-top: 8rpx;
+		color: #666666;
+	}
+	.list-details-miniQuantity {
+		margin-top: 7rpx;
+	}
 }
 .list-details-price {
-    width: 100%;
-    height: 54rpx;
-    line-height: 54rpx;
-    position: absolute;
-    bottom: -10rpx;
-    right: 0;
-    .floor-item-act {
-        height: 54rpx;
-        text-align: center;
-        box-sizing: border-box;
-        float: right;
-        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 {
-        color: #f8c499;
-        float: left;
-        line-height: 54rpx;
-        .p-no {
-            float: left;
-            font-size: $font-size-24;
-            color: $text-color;
-        }
-    }
-    .login-now {
-        padding: 10rpx 10rpx 10rpx 0;
-    }
-    .list-price {
-        color: #ff2a2a;
-        height: 44rpx;
-        float: left;
-        .price-larger {
-            width: 100%;
-            font-size: 32rpx;
-            &.none {
-                text-decoration: line-through;
-                color: #999999;
-            }
-            &.small {
-                font-size: $font-size-24;
-            }
-            .txt {
-                font-size: $font-size-24;
-                display: inline-block;
-                line-height: 44rpx;
-                text-align: left;
-                float: left;
-            }
-        }
-    }
+	width: 100%;
+	height: 54rpx;
+	line-height: 54rpx;
+	position: absolute;
+	bottom: -10rpx;
+	right: 0;
+	.floor-item-act {
+		height: 54rpx;
+		text-align: center;
+		box-sizing: border-box;
+		float: right;
+		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 {
+		color: #f8c499;
+		float: left;
+		line-height: 54rpx;
+		.p-no {
+			float: left;
+			font-size: $font-size-24;
+			color: $text-color;
+		}
+	}
+	.login-now {
+		padding: 10rpx 10rpx 10rpx 0;
+	}
+	.list-price {
+		color: #ff2a2a;
+		height: 44rpx;
+		float: left;
+		.price-larger {
+			width: 100%;
+			font-size: 32rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
+			}
+			&.small {
+				font-size: $font-size-24;
+			}
+			.txt {
+				font-size: $font-size-24;
+				display: inline-block;
+				line-height: 44rpx;
+				text-align: left;
+				float: left;
+			}
+		}
+	}
 }
 // 筛选抽屉样式
 .drawer-title {
-    width: 580rpx;
-    height: 72rpx;
-    line-height: 72rpx;
-    box-sizing: border-box;
-    padding: 0 30rpx;
-    background-color: #f7f7f7;
-    position: fixed;
-    top: 0;
-    left: 0;
-    z-index: 99;
-    .drawer-title-h1 {
-        font-size: $font-size-26;
-        color: #FF5B00;
-        font-weight: bold;
-        text-align: left;
-        float: left;
-    }
-    .drawer-title-p {
-        font-size: $font-size-24;
-        float: right;
-        color: #333333;
-        .text {
-            color: #FF5B00;
-        }
-    }
+	width: 580rpx;
+	height: 72rpx;
+	line-height: 72rpx;
+	box-sizing: border-box;
+	padding: 0 30rpx;
+	background-color: #f7f7f7;
+	position: fixed;
+	top: 0;
+	left: 0;
+	z-index: 99;
+	.drawer-title-h1 {
+		font-size: $font-size-26;
+		color: #ff5b00;
+		font-weight: bold;
+		text-align: left;
+		float: left;
+	}
+	.drawer-title-p {
+		font-size: $font-size-24;
+		float: right;
+		color: #333333;
+		.text {
+			color: #ff5b00;
+		}
+	}
 }
 .drawer-container {
-    width: 580rpx;
-    height: 100%;
-    box-sizing: border-box;
-    background-color: #f7f7f7;
-    overflow: hidden;
-    position: relative;
-    padding-top: 72rpx;
-    .drawer-main {
-        width: 100%;
-        height: auto;
-        box-sizing: border-box;
-        .drawer-main-brand {
-            width: 100%;
-            height: auto;
-            box-sizing: border-box;
-            padding: 12rpx 24rpx 24rpx 24rpx;
-            background-color: #ffffff;
-            .drawer-brand-list {
-                width: 160rpx;
-                height: 56rpx;
-                line-height: 56rpx;
-                text-align: center;
-                font-size: 26rpx;
-                background-color: #f7f7f7;
-                color: #999999;
-                border-radius: 30rpx;
-                box-sizing: border-box;
-                padding: 0 15rpx;
-                float: left;
-                margin: 12rpx 24rpx 12rpx 0;
-                text-overflow: ellipsis;
-                overflow: hidden;
-                display: -webkit-box;
-                -webkit-line-clamp: 1;
-                line-clamp: 1;
-                -webkit-box-orient: vertical;
-                &.checked {
-                    background-color: #fef6f3;
-                    color: #FF5B00;
-                }
-                &:nth-child(3n) {
-                    margin-right: 0;
-                }
-            }
-            .drawer-brand-more {
-                width: 100%;
-                height: 42rpx;
-                line-height: 42rpx;
-                float: left;
-                font-size: $font-size-24;
-                color: #999999;
-                text-align: center;
-            }
-        }
-        .drawer-main-radio {
-            width: 100%;
-            height: 72rpx;
-            background-color: #ffffff;
-            margin-top: 20rpx;
-            box-sizing: border-box;
-            padding: 0 24rpx;
-            .drawer-radio-name {
-                float: left;
-                line-height: 72rpx;
-                font-size: $font-size-26;
-                color: #333333;
-            }
-            .drawer-radio-input {
-                width: 72rpx;
-                height: 72rpx;
-                float: right;
-                line-height: 72rpx;
-                text-align: right;
-                .iconfont {
-                    font-size: $font-size-36;
-                    &.icon-weixuanze {
-                        color: #b2b2b2;
-                    }
-                    &.icon-yixuanze {
-                        color: #FF5B00;
-                    }
-                }
-            }
-        }
-    }
-    .drawer-input {
-        width: 100%;
-        float: left;
-        box-sizing: border-box;
-        padding: 24rpx 10rpx 0 10rpx;
-        border: 1px solid rgba(0, 0, 0, 0.2);
-        border-radius: 4rpx;
-        position: relative;
-        background-color: #ffffff;
-        &.btn {
-            border: none;
-            display: flex;
-            position: fixed;
-            left: 0;
-            bottom: 0;
-        }
-        .drawer-btn {
-            width: 210rpx;
-            height: 84rpx;
-            border-radius: 42rpx;
-            background: $btn-confirm;
-            line-height: 84rpx;
-            text-align: center;
-            font-size: $font-size-26;
-            color: #ffffff;
-            flex: 1;
-            margin: 0 10rpx;
-            &.comfrim {
-                background: $btn-confirm;
-            }
-            &.clear {
-                background: #ffe6dc;
-                color: #FF5B00;
-            }
-        }
-    }
+	width: 580rpx;
+	height: 100%;
+	box-sizing: border-box;
+	background-color: #f7f7f7;
+	overflow: hidden;
+	position: relative;
+	padding-top: 72rpx;
+	.drawer-main {
+		width: 100%;
+		height: auto;
+		box-sizing: border-box;
+		.drawer-main-brand {
+			width: 100%;
+			height: auto;
+			box-sizing: border-box;
+			padding: 12rpx 24rpx 24rpx 24rpx;
+			background-color: #ffffff;
+			.drawer-brand-list {
+				width: 160rpx;
+				height: 56rpx;
+				line-height: 56rpx;
+				text-align: center;
+				font-size: 26rpx;
+				background-color: #f7f7f7;
+				color: #999999;
+				border-radius: 30rpx;
+				box-sizing: border-box;
+				padding: 0 15rpx;
+				float: left;
+				margin: 12rpx 24rpx 12rpx 0;
+				text-overflow: ellipsis;
+				overflow: hidden;
+				display: -webkit-box;
+				-webkit-line-clamp: 1;
+				line-clamp: 1;
+				-webkit-box-orient: vertical;
+				&.checked {
+					background-color: #fef6f3;
+					color: #ff5b00;
+				}
+				&:nth-child(3n) {
+					margin-right: 0;
+				}
+			}
+			.drawer-brand-more {
+				width: 100%;
+				height: 42rpx;
+				line-height: 42rpx;
+				float: left;
+				font-size: $font-size-24;
+				color: #999999;
+				text-align: center;
+			}
+		}
+		.drawer-main-radio {
+			width: 100%;
+			height: 72rpx;
+			background-color: #ffffff;
+			margin-top: 20rpx;
+			box-sizing: border-box;
+			padding: 0 24rpx;
+			.drawer-radio-name {
+				float: left;
+				line-height: 72rpx;
+				font-size: $font-size-26;
+				color: #333333;
+			}
+			.drawer-radio-input {
+				width: 72rpx;
+				height: 72rpx;
+				float: right;
+				line-height: 72rpx;
+				text-align: right;
+				.iconfont {
+					font-size: $font-size-36;
+					&.icon-weixuanze {
+						color: #b2b2b2;
+					}
+					&.icon-yixuanze {
+						color: #ff5b00;
+					}
+				}
+			}
+		}
+	}
+	.drawer-input {
+		width: 100%;
+		float: left;
+		box-sizing: border-box;
+		padding: 24rpx 10rpx 0 10rpx;
+		border: 1px solid rgba(0, 0, 0, 0.2);
+		border-radius: 4rpx;
+		position: relative;
+		background-color: #ffffff;
+		&.btn {
+			border: none;
+			display: flex;
+			position: fixed;
+			left: 0;
+			bottom: 0;
+		}
+		.drawer-btn {
+			width: 210rpx;
+			height: 84rpx;
+			border-radius: 42rpx;
+			background: $btn-confirm;
+			line-height: 84rpx;
+			text-align: center;
+			font-size: $font-size-26;
+			color: #ffffff;
+			flex: 1;
+			margin: 0 10rpx;
+			&.comfrim {
+				background: $btn-confirm;
+			}
+			&.clear {
+				background: #ffe6dc;
+				color: #ff5b00;
+			}
+		}
+	}
 }
 
 // 搜索关键词库样式
 .search-library {
-    position: fixed;
-    top: 88rpx;
-    left: 0;
-    z-index: 1000;
-    width: 100vw;
-    height: calc(100vh - 88rpx);
-    background: #f5f5f5;
+	position: fixed;
+	top: 88rpx;
+	left: 0;
+	z-index: 1000;
+	width: 100vw;
+	height: calc(100vh - 88rpx);
+	background: #f5f5f5;
 
-    .search-library-scroll {
-        height: 95%;
-    }
+	.search-library-scroll {
+		height: 95%;
+	}
 
-    .search-library-wrapper {
-        background: #fff;
-        padding-top: 40rpx;
-        box-sizing: border-box;
-        max-height: calc(100vh - 88rpx);
-        overflow-y: auto;
+	.search-library-wrapper {
+		background: #fff;
+		padding-top: 40rpx;
+		box-sizing: border-box;
+		max-height: calc(100vh - 88rpx);
+		overflow-y: auto;
 
-        .keyword-item {
-            width: 100%;
-            display: flex;
-            justify-content: space-between;
-            height: 90rpx;
-            line-height: 90rpx;
-            box-sizing: border-box;
-            padding: 0 48rpx 0 32rpx;
-            border-top: 1rpx solid #e1e1e1;
+		.keyword-item {
+			width: 100%;
+			display: flex;
+			justify-content: space-between;
+			height: 90rpx;
+			line-height: 90rpx;
+			box-sizing: border-box;
+			padding: 0 48rpx 0 32rpx;
+			border-top: 1rpx solid #e1e1e1;
 
-            &:last-child {
-                border-bottom: 1rpx solid #e1e1e1;
-            }
+			&:last-child {
+				border-bottom: 1rpx solid #e1e1e1;
+			}
 
-            .iconfont {
-                display: block;
-                width: 34rpx;
-                margin-right: 26rpx;
-                flex-shrink: 0;
-                font-size: 34rpx;
-                color: #999;
-            }
+			.iconfont {
+				display: block;
+				width: 34rpx;
+				margin-right: 26rpx;
+				flex-shrink: 0;
+				font-size: 34rpx;
+				color: #999;
+			}
 
-            .content {
-                flex: 1;
-                flex-shrink: 0;
-                overflow: hidden;
-                text-overflow: ellipsis;
-                display: -webkit-box;
-                -webkit-line-clamp: 1; // 这里控制几行显示省略号
-                -webkit-box-orient: vertical;
-                font-size: 28rpx;
-                color: #333;
+			.content {
+				flex: 1;
+				flex-shrink: 0;
+				overflow: hidden;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				-webkit-line-clamp: 1; // 这里控制几行显示省略号
+				-webkit-box-orient: vertical;
+				font-size: 28rpx;
+				color: #333;
 
-                text {
-                    color: #FF5B00;
-                }
-            }
-        }
-    }
+				text {
+					color: #ff5b00;
+				}
+			}
+		}
+	}
 }
 </style>

+ 1 - 1
pages/seller/club/club-detail.vue

@@ -6,7 +6,7 @@
 			borderRadius="10rpx"
 			:isLoading="true"
 			:loadingType="5"
-		></tui-skeleton>
+		/>
 		<template v-else>
 			<view class="info-content clearfix">
 				<view class="info-main border">

+ 1 - 1
pages/seller/club/club-info.vue

@@ -6,7 +6,7 @@
 			borderRadius="10rpx"
 			:isLoading="true"
 			:loadingType="5"
-		></tui-skeleton>
+		/>
 		<template v-else>
 			<view class="info-header-path" @click="handlePathVisit">
 				<view class="path-text">客户访问采美商城全部记录</view>

+ 24 - 2
pages/seller/club/club-portrait.vue

@@ -6,7 +6,7 @@
 			borderRadius="10rpx"
 			:isLoading="true"
 			:loadingType="5"
-		></tui-skeleton>
+		/>
 		<template v-else>
 			<!-- <view class="charts-navbar" id="topBar">
 				<view
@@ -22,7 +22,22 @@
 			<view class="charts-content">
 				<!-- 重点资料 -->
 				<view class="charts-box charts-box0" id="charts-box0">
-					<echartInfo ref="echart-info" :clubInfo="clubInfo" :clubId="clubInfo.clubId" v-if="isRequest" />
+					<echartInfo 
+						ref="echart-info" 
+						:clubInfo="clubInfo" 
+						:clubId="clubInfo.clubId" 
+						:clubUserInfo="clubUserInfo" 
+						v-if="isRequest" />
+				</view>
+				<!-- 用户需求 -->
+				<view class="charts-box charts-box0" id="charts-box0">
+					<echartDemand
+						ref="echartDemand"
+						:clubId="clubInfo.clubId"
+						:totalAmount="totalData.orderTotalAmount"
+						:totalNum="totalData.orderTotal"
+						v-if="isRequest"
+					/>
 				</view>
 				<!-- 订单 -->
 				<view class="charts-box charts-box1" id="charts-box1">
@@ -65,6 +80,7 @@
 import { mapState, mapMutations } from 'vuex'
 import { debounce } from '@/common/config/common.js'
 import echartInfo from './components/echart-info'
+import echartDemand from './components/echart-demand'
 import echartOrder from './components/echart-order'
 import echartKeyword from './components/echart-keyword'
 import echartContact from './components/echart-contact'
@@ -75,6 +91,7 @@ export default {
 	mixins: [chartMixin],
 	components: {
 		echartInfo,
+		echartDemand,
 		echartOrder,
 		echartKeyword,
 		echartContact,
@@ -85,6 +102,7 @@ export default {
 			skeletonShow: true,
 			isRequest: false,
 			clubInfo: {},
+			clubUserInfo: {},
 			navBarList: [
 				{ name: '重点资料', index: 0 },
 				{ name: '订单数据', index: 1 },
@@ -118,6 +136,7 @@ export default {
 			try {
 				const clubRes = await this.UserService.OrganizationUpdateModifyInfo({ userId: userId })
 				this.clubInfo =  clubRes.data.club
+				this.clubUserInfo =  clubRes.data.user
 				const tialRes = await this.UserService.userClubInitial({ clubId: this.clubInfo.clubId })
 				this.totalData.orderTotal = tialRes.data.orderTotal
 				this.totalData.orderTotalAmount = tialRes.data.orderTotalAmount
@@ -427,6 +446,9 @@ page {
 			width: 100%;
 			min-height: 300rpx;
 			float: left;
+			&.demand{
+				min-height: 200rpx;
+			}
 			.echart-mains-none {
 				width: 100%;
 				height: 100%;

+ 159 - 0
pages/seller/club/components/echart-demand.vue

@@ -0,0 +1,159 @@
+<template>
+	<view class="echart-content">
+		<view class="echart-title">
+			<view class="e-icon e4"><text class="iconfont icon-zixunjilu"></text></view>
+			<view class="e-name">用户需求</view>
+		</view>
+		<view class="echart-search">
+			<view class="echart-search-date">
+				<view class="echart-search-date-input">
+					<picker
+						mode="date"
+						:value="date"
+						:start="startDate"
+						:end="endDate"
+						@change="bindStartDateChange($event, 2)"
+					>
+						<text class="input-text">{{ contactData.startTime }}</text>
+					</picker>
+					<text class="iconfont icon-riqi"></text>
+				</view>
+				<view class="line">-</view>
+				<view class="echart-search-date-input">
+					<picker
+						mode="date"
+						:value="date"
+						:start="startDate"
+						:end="endDate"
+						@change="bindEndDateChange($event, 2)"
+					>
+						<text class="input-text">{{ contactData.endTime }}</text>
+					</picker>
+					<text class="iconfont icon-riqi"></text>
+				</view>
+			</view>
+			<view class="echart-search-time">
+				<view
+					class="time-tab"
+					v-for="(time, index) in timeList"
+					:class="{ current: current === index }"
+					:key="index"
+					@click="handleTimeClick(time.current, index, 2)"
+					>{{ time.label }}</view
+				>
+			</view>
+		</view>
+		<view class="echart-mains demand">
+			<view class="echart-mains-data" v-if="labelsList.length > 0">
+				<view class="list-label-list">
+					<text class="list-label" 
+						  :class="item.isChecked ? 'active' : ''"
+						  v-for="(item, index) in labelsList" 
+						  :key="index"
+					>
+						  {{ item }}
+					</text>
+				</view>
+			</view>
+			<view class="echart-mains-none" v-else>
+				<image
+					class="none-image"
+					src="https://static.caimei365.com/app/img/bg/icon_echart_none@2x.png"
+					mode=""
+				></image>
+				<view class="none-text">暂无数据</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import { mapState, mapMutations } from 'vuex'
+import chartMixin from './mixins/chart.mixin.js'
+export default {
+	mixins: [chartMixin],
+	props:{
+		clubId:{
+			type:Number,
+			default:0
+		},
+		totalNum:{
+			type:Number,
+			default:0
+		}
+	},
+	data() {
+		return {
+			current: 0,
+			remarksTotal:0,
+			contactChartData:null,
+			contactData:{
+			    startTime: '',
+			    endTime: '',
+			    remarksScopeNum:0
+			},
+			params:{
+			    clubId:0,//  机构id
+			    dateType:3,//   日期类别 0日 1月 2半年 3全年
+			    startTime:'',//   开始时间
+			    endTime:'',//   结束时间
+			},
+			labelsList:[]
+		}
+	},
+	created() {
+		this.params.clubId = this.clubId
+		this.remarksTotal = this.totalNum
+		this.getCustomDemand()
+	},
+	methods: {
+		handleTimeClick(dateType,index,type) {
+		    //年月日点击
+		    console.log('dateType', dateType)
+		    this.current = index
+		    this.params.dateType = dateType
+			this.params.startTime = ''
+			this.params.endTime = ''
+		    this.getCustomDemand()
+		},
+		async getCustomDemand(){
+			this.contactData.startTime = this.params.startTime
+			this.contactData.endTime = this.params.endTime
+			try {
+				const res = await this.UserService.getCustomDemand(this.params)
+				const data = res.data
+				this.labelsList = data.list
+				this.contactData.startTime = this.params.startTime = data.startTime
+				this.contactData.endTime = this.params.endTime = data.endTime
+			} catch (error) {
+			   this.$util.msg(error.msg, 2000)
+			}
+		}
+	},
+	onShow() {}
+}
+</script>
+
+<style lang="scss">
+	.list-label-list{
+		width: 100%;
+		height: auto;
+		box-sizing: border-box;
+		.list-label{
+			display: inline-block;
+			padding: 0 20rpx;
+			height: 48rpx;
+			line-height: 48rpx;
+			background: #F7F7F7;
+			text-align: center;
+			margin-right: 30rpx;
+			margin-bottom: 30rpx;
+			font-size: 26rpx;
+			color: #666666;
+			&.active{
+				background: #FEF6F3;
+				color: #FF5B00;
+			}
+		}
+	}
+</style>

+ 68 - 6
pages/seller/club/components/echart-info.vue

@@ -7,23 +7,66 @@
 		</view>
 		<view class="echart-main clearfix" @click="handleClubInfo">
 			<view class="echart-text">
-				<text class="label">联系人:</text>{{ data.linkMan ? data.linkMan :'无' }}
+				<text class="label">机构ID:</text>{{ data.clubId ? data.clubId :'' }}
 			</view>
 			<view class="echart-text">
+				<text class="label">联系人:</text>{{ data.linkMan ? data.linkMan :'无' }}
+			</view>
+			<view class="echart-text" v-if="data.customerGender">
+				<text class="label">性别:</text>
+				{{ data.customerGender === 0 ? '男' :'女' }}
+			</view>
+			<view class="echart-text" v-if="data.customerAge">
+				<text class="label">年龄:</text>{{ data.customerAge}}
+			</view>
+			<view class="echart-text" v-if="data.contractMobile">
 				<text class="label">手机号:</text>{{ data.contractMobile }}
 			</view>
 			<view class="echart-text" v-if="data.linkManIdentity">
 				<text class="label">联系人身份:</text>{{ data.linkManIdentity | linkManFormat }}
 			</view>
+			<view class="echart-text" v-if="data.addTime">
+				<text class="label">注册时间:</text> {{ data.addTime }}
+			</view>
+			<view class="echart-text" v-if="data.customerValue">
+				<text class="label">客户价值:</text>
+				{{ data.customerValue }}
+			</view>
+			<view class="echart-text"  v-if="data.activeState">
+				<text class="label">活跃状态:</text>
+				{{ data.activeState }}
+			</view>
+			<view class="echart-text"  v-if="data.number">
+				<text class="label">资料完整度:</text>
+				{{ data.number }}%
+			</view>
+			<view class="echart-text" v-if="data.customerSource">
+				<text class="label">客户来源:</text>
+				 {{ data.customerSource | sourceActionsFilters }}
+			</view>
+			<view class="echart-text">
+				<text class="label">机构级别:</text>
+				{{ useInfo.userIdentity === 2 ? '资质机构' : '普通机构' }}
+			</view>
 			<view class="echart-text" v-if="data.firstClubType">
-				<text class="label">机构类型:</text>{{ data.firstClubType | FirstFormat }}-{{ data.secondClubType | TwoFormat }}
+				<text class="label">机构类型:</text>
+				{{ data.firstClubType | FirstFormat }}-{{ data.secondClubType | TwoFormat }}
+			</view>
+			<view class="echart-text">
+				<text class="label">入群状态:</text>
+				{{ data.groupAddition === 0 ? '已入群' : '未入群' }}
+			</view>
+			<view class="echart-text" v-if="data.wx">
+				<text class="label">微信触达:</text>
+				 {{ data.wx}}
+			</view>
+			<view class="echart-text" v-if="data.mob">
+				<text class="label">电话触达:</text>
+				 {{ data.mob }}
 			</view>
 			<view class="echart-text" v-if="data.provincialAddress">
 				<text class="label">地址:</text>{{ data.provincialAddress }}
 			</view>
-			<view class="echart-text" v-if="data.addTime">
-				<text class="label">注册时间:</text> {{ data.addTime }}
-			</view>
 			<view class="echart-next">详情></view>
 		</view>
 	</view>
@@ -36,15 +79,21 @@ export default {
 		clubInfo:{
 			type:Object,
 			default:{}
+		},
+		clubUserInfo:{
+			type:Object,
+			default:{}
 		}
 	},
 	data() {
 		return {
-			data:{}
+			data:{},
+			useInfo:{}
 		}
 	},
 	created() {
 		this.data = this.clubInfo
+		this.useInfo = this.clubUserInfo
 	},
 	filters: {
 		FirstFormat(value) {
@@ -88,6 +137,19 @@ export default {
 				92: '审核未通过'
 			}
 			return map[value]
+		},
+		sourceActionsFilters(value) {
+		  // 客户来源
+		  const map = {
+			0: '网站',
+			1: '小程序',
+			2: '公众号',
+			3: '小红书',
+			4: '微博',
+			5: '搜狐',
+			6: '其他'
+		  }
+		  return map[value]
 		}
 	},
 	methods: {

+ 10 - 1
pages/seller/club/list.vue

@@ -147,7 +147,9 @@
                                 </view>
                                 <view class="list-ntel" v-if="tabSmallCurrentIndex !== 1">
                                     <text class="list-link">{{ club.linkMan ? club.linkMan : '' }}</text>
-                                    <text class="list-texl">{{ club.contractMobile ? club.contractMobile : '' }}</text>
+                                    <text class="list-texl" @click="handlePhone(club.contractMobile)">
+									{{ club.contractMobile ? club.contractMobile : '' }}
+									</text>
                                 </view>
                                 <view class="list-ntel" v-if="listQuery.type === 6">
                                     <text class="list-link">分配时间:{{ club.providerTime | dateConversion }}</text>
@@ -544,6 +546,12 @@ export default {
                 this.$api.navigateTo(`/pages/seller/order/order-historylist?clubId=${club.clubId}&listType=0`)
             }
         },
+		// 拨打电话
+		handlePhone(phoneNumber){
+			uni.makePhoneCall({
+				phoneNumber: phoneNumber //拨打电话
+			});
+		},
         onShowClose() {
             //输入框失去焦点时触发
             if (this.listQuery.name != '') {
@@ -874,6 +882,7 @@ page,
                     .list-texl {
                         display: inline-block;
                         float: left;
+						text-decoration: underline;
                     }
                 }
             }

+ 1 - 5
pages/seller/index/index.vue

@@ -100,11 +100,7 @@ export default {
     computed: {
         ...mapState(['userInfo'])
     },
-    // onShow() {
-    //     this.updateSellerNoticeNum() // 消息通知
-    // },
 	methods: {
-        // ...mapMutations(['updateSellerNoticeNum']),
 		// 切换组件
 		cut_index(type) {
 			this.show_index = type
@@ -148,7 +144,7 @@ export default {
 		}
 		return {
 			title: '生美医美正品采购服务平台',
-			path: `pages/tabBar/home/index?type=sellerShare&sellerUserId=${this.userInfo.userId || 0}`,
+			path: `pages/tabBar/home/index?type=4&suid=${this.userInfo.userId}&spId=${this.userInfo.serviceProviderId}`,
 			imageUrl: 'https://static.caimei365.com/app/img/bg/min-banner.jpg'
 		}
 	}

+ 3 - 2
pages/seller/notice/components/trajectory.vue

@@ -10,7 +10,7 @@
                     <image :src="item.titleImage || '../../../../static/temp/icon-new@2x.png'" class="axis-product" mode=""></image>
                     <view class="axis-product-info">
                         <view class="product-title">【{{item.pageType | pageTypeChange}}】</view>
-                        <view class="product-info">{{item.title}}</view>
+                        <view class="product-info" v-if="item.title">{{item.title}}</view>
                     </view>
                 </view>
             </template>
@@ -34,7 +34,8 @@ export default {
         pageTypeChange(val) {
             const obj = {
                 '6': '商品',
-                '11': '文章'
+                '11': '文章',
+                '8': '搜索记录'
             }
             return obj[val]
         }

+ 19 - 16
pages/seller/notice/service/Institutional_visits.vue

@@ -22,15 +22,18 @@ export default {
         return {
             visitsList: [],
             accDateTime: '',
-            userInfo: {}
+            spId: ''
         }
     },
-    onLoad(options) {
-        this.accDateTime = options.accDateTime
-    },
-    mounted() {
-        this.userInfo = uni.getStorageSync('userInfo')
-        this.getVisitesClubList()
+    async onLoad(options) {
+        this.spId = options.spId
+        const { data } = await this.SellerService.getVisitesClubList({
+            spId: options.spId,
+            accDateTime: options.accDateTime
+        })
+        this.visitsList = data
+        this.accDateTime = data[0].accessDate
+		console.log('options', options, 'visitsList', data)
     },
     onReachBottom() {
     },
@@ -41,23 +44,23 @@ export default {
     },
     methods: {
         handlerVisits($event) {
-            uni.setStorageSync('visitsInfo', JSON.stringify($event))
             this.$api.navigateTo(
                 '/pages/seller/notice/service/visits_details?spId=' +
-                    this.userInfo.serviceProviderId +
+                    this.spId +
                     '&clubId=' +
                     $event.clubId +
                     '&accessTime=' +
                     $event.accessTime.substr(0, 10)
             )
         },
-        async getVisitesClubList() {
-            const { data } = await this.SellerService.getVisitesClubList({
-                spId: this.userInfo.serviceProviderId,
-                accDateTime: this.accDateTime
-            })
-            this.visitsList = data
-        }
+		async getVisitesClubList() {
+			const { data } = await this.SellerService.getVisitesClubList({
+			    spId: options.spId,
+			    accDateTime: options.accDateTime
+			})
+			this.visitsList = data
+			console.log('visitsList', this.visitsList)
+		}
     }
 }
 </script>

+ 18 - 2
pages/seller/notice/service/visits_details.vue

@@ -27,10 +27,20 @@ export default {
             detailList: []
         }
     },
-    onLoad(options) {
+    async onLoad(options) {
         this.accessTime = options.accessTime
         this.spId = options.spId
         this.clubId = options.clubId
+		const { data } = await this.SellerService.getVisitesClubInfo({accessTime: options.accessTime, spId: options.spId, clubId: options.clubId})
+		this.detailList = data
+		this.visitsInfo = {
+		    image: data[0].image,
+		    linkMan: data[0].linkMan,
+		    contractMobile: data[0].contractMobile,
+		    pageLabel: data[0].pageLabel,
+            name: data[0].name
+		}
+		console.log('options', options, 'visitsInfo', data, '详情', this.visitsInfo)
     },
     mounted() {
         this.getVisitesClubDetail()
@@ -38,9 +48,15 @@ export default {
     methods: {
         handlerVisits($event) {},
         async getVisitesClubDetail() {
-            this.visitsInfo = JSON.parse(uni.getStorageSync('visitsInfo')) || {}
             const {data} = await this.SellerService.getVisitesClubInfo({accessTime: this.accessTime, spId: this.spId, clubId: this.clubId})
             this.detailList = data
+            this.visitsInfo = {
+                image: data[0].image,
+                linkMan: data[0].linkMan,
+                contractMobile: data[0].contractMobile,
+                pageLabel: data[0].pageLabel
+            }
+            console.log('visitsInfo', data)
         }
     }
 }

+ 1 - 1
pages/seller/order/components/cm-freight-popup.vue

@@ -28,7 +28,7 @@
 								:id="item.value"
 								:value="item.value"
 								:checked="item.checked"
-							></radio>
+							/>
 							<label :for="item.value" class="label">
 								<text>{{ item.name }}</text>
 							</label>

+ 21 - 16
pages/seller/order/components/details/cm-order-temp.vue

@@ -5,7 +5,12 @@
 			<view class="information-view title">
 				<view class="view-num">
 					<view class="bage-text">
-						订单编号:<label class="label">{{ orderData.shopOrderNo ? orderData.shopOrderNo : '' }}</label>
+						订单编号:
+						<label class="label">
+							{{ orderData.shopOrderNo ? orderData.shopOrderNo : '' }}
+							({{ orderData.shopOrderId }})
+						</label>
+						<text class="clipboard" @click="clipboard(orderData.shopOrderId)">复制ID</text>
 					</view>
 				</view>
 			</view>
@@ -71,14 +76,17 @@ export default {
 		initData(data) {
 			this.orderData = data
 		},
-		clipboard(data) {
+		clipboard(shopOrderId) {
+			const data = shopOrderId + ''
 			thorui.getClipboardData(data, res => {
 				if (res) {
+					uni.hideToast()
 					this.$util.msg('复制成功', 2000, true, 'success')
 				} else {
+					uni.hideToast()
 					this.$util.msg('复制失败', 2000, true, 'none')
 				}
-			})
+			}) 
 		}
 	}
 }
@@ -100,17 +108,12 @@ export default {
 			font-size: $font-size-24;
 			margin: 4rpx 0;
 			// display: flex;
-			width: 55%;
+			width: 100%;
 			display: inline-block;
 			&.same {
 				width: 45%;
 				text-align: right;
 			}
-			// &.title{
-			// 	height: 68rpx;
-			// 	line-height: 68rpx;
-			// 	margin-bottom: 5rpx;
-			// }
 			view {
 				// flex: 1;
 				color: $text-color;
@@ -187,16 +190,18 @@ export default {
 				flex: 4;
 			}
 			.clipboard {
-				width: 84rpx;
-				height: 36rpx;
-				background: linear-gradient(34deg, rgba(255, 41, 41, 1) 0%, rgba(255, 109, 27, 1) 100%);
+				height: 44rpx;
+				background: #e2e2e2;
 				text-align: center;
 				font-size: $font-size-24;
-				color: #ffffff;
-				border-radius: 6rpx;
-				line-height: 36rpx;
+				color: #999999;
+				border-radius: 22rpx;
+				line-height: 40rpx;
 				display: inline-block;
-				margin-left: 42rpx;
+				margin-left: 24rpx;
+				border: 1px solid #f7f7f7;
+				box-sizing: border-box;
+				padding: 0 10px;
 			}
 		}
 	}

+ 13 - 0
pages/seller/order/order-historylist.vue

@@ -95,6 +95,16 @@
 										>
 										</image>
 									</view>
+									<view class="order-title-b">
+										<view class="order-title-btxt num tui-skeleton-fillet">
+											订单编号:{{ order.shopOrderNo }}({{ order.shopOrderId }})
+										</view>
+									</view>
+									<view class="order-title-b">
+										<view class="order-title-btxt tui-skeleton-fillet">
+											下单时间:{{ order.orderTime }}
+										</view>
+									</view>
 								</view>
 								<view class="goods-title">
 									<view v-if="order.shopPromotion" class="floor-item-act">
@@ -722,6 +732,9 @@ page {
 			line-height: 40rpx;
 			color: #999999;
 			text-align: lef;
+			&.num{
+				color: #333333;
+			}
 		}
 		.order-title-tip {
 			float: right;

+ 26 - 0
pages/seller/order/order-list.vue

@@ -122,6 +122,16 @@
 											>
 											</image>
 										</view>
+										<view class="order-title-b">
+											<view class="order-title-btxt num tui-skeleton-fillet">
+												订单编号:{{ order.shopOrderNo }}({{ order.shopOrderId }})
+											</view>
+										</view>
+										<view class="order-title-b">
+											<view class="order-title-btxt tui-skeleton-fillet">
+												下单时间:{{ order.orderTime }}
+											</view>
+										</view>
 									</view>
 									<view class="goods-title">
 										<view v-if="order.shopPromotion" class="floor-item-act">
@@ -818,6 +828,22 @@ page {
 			color: #ff2a2a;
 		}
 	}
+	.order-title-b {
+		width: 100%;
+		height: 40rpx;
+		float: left;
+		margin-top: 8rpx;
+		.order-title-btxt {
+			float: left;
+			font-size: $font-size-28;
+			line-height: 40rpx;
+			color: #999999;
+			text-align: left;
+			&.num{
+				color: #333333;
+			}
+		}
+	}
 }
 .goods-title {
 	width: 100%;

+ 345 - 151
pages/seller/remarks/add-record.vue

@@ -6,9 +6,82 @@
 			</view>
 			<view class="remarks-input">{{ questionMan }}</view>
 			<view class="list-view-title">
-				<view class="list-view-h1"><text>*</text>咨询类别:</view>
+				<view class="list-view-h1"><text>*</text>沟通情况:</view>
 			</view>
 			<view class="remarks-category">
+				<radio-group @change="radioChange">
+					<label class="uni-list-cell uni-list-cell-pd" v-for="(item, index) in items" :key="item.value">
+						<radio
+							:value="item.value"
+							style="transform:scale(0.7)"
+							color="#FF5B00"
+							:checked="index === current"
+						/>
+						<label :for="item.value" class="label">
+							<text>{{ item.name }}</text>
+						</label>
+					</label>
+				</radio-group>
+				<checkbox-group v-if="current === 0"  @change="checkboxChange" style="margin-top: 10rpx;">
+					<label class="label" v-for="item in checkboItems" :key="item.value">
+						<checkbox :value="item.value" :checked="item.checked" style="transform:scale(0.7)" color="#FF5B00" />
+						{{item.name}}
+					</label>
+				</checkbox-group>
+			</view>
+			<view class="list-view-title"> <view class="list-view-h1">客户来源:</view> </view>
+			<view class="list-view-radio">
+				<picker @change="bindPickerChange(4, $event)" :value="index" :range="sourceActions" range-key="name">
+					<input
+						class="input"
+						type="text"
+						disabled="false"
+						v-model="sourceStateText"
+						value=""
+						placeholder="请选择"
+					/>
+					<text class="iconfont icon-xiangyou"></text>
+				</picker>
+			</view>
+			<view class="list-view-title"> <view class="list-view-h1">客户性别:</view> </view>
+			<view class="list-view-radio">
+				<picker @change="bindPickerChange(5, $event)" :value="index" :range="genderActions" range-key="name">
+					<input
+						class="input"
+						type="text"
+						disabled="false"
+						v-model="genderText"
+						value=""
+						placeholder="请选择"
+					/>
+					<text class="iconfont icon-xiangyou"></text>
+				</picker>
+			</view>
+			<view class="list-view-title"> <view class="list-view-h1">客户年龄:</view> </view>
+			<view class="list-view-radio">
+				<picker @change="bindPickerChange(6, $event)" :value="index" :range="ageActions" range-key="name">
+					<input class="input" type="text" disabled="false" v-model="customerAge" value="" placeholder="请选择" />
+					<text class="iconfont icon-xiangyou"></text>
+				</picker>
+			</view>
+			<view class="list-view-title"> <view class="list-view-h1">加群情况:</view> </view>
+			<view class="list-view-radio">
+				<picker @change="bindPickerChange(7, $event)" :value="index" :range="additiveActions" range-key="name">
+					<input
+						class="input"
+						type="text"
+						disabled="false"
+						v-model="additiveText"
+						value=""
+						placeholder="请选择"
+					/>
+					<text class="iconfont icon-xiangyou"></text>
+				</picker>
+			</view>
+			<view class="list-view-title" v-if="current === 0">
+				<view class="list-view-h1"><text>*</text>咨询类别:</view>
+			</view>
+			<view class="remarks-category" v-if="current === 0">
 				<view
 					class="checkbox-list"
 					:class="category.isChecked ? 'checked' : ''"
@@ -20,7 +93,9 @@
 					{{ category.className }}
 				</view>
 			</view>
-			<view class="list-view-title"> <view class="list-view-h1">机构类型:</view> </view>
+		<!--<view class="list-view-title"> 
+				<view class="list-view-h1">机构类型:</view> 
+			</view>
 			<view class="remarks-input">
 				<input
 					class="input"
@@ -30,7 +105,7 @@
 					placeholder="如美甲店,医院"
 					maxlength="15"
 				/>
-			</view>
+			</view> -->
 			<view class="list-view-title"> <view class="list-view-h1">咨询商品:</view> </view>
 			<view class="tui-remarks-content">
 				<view class="tui-remarks-goods-input" v-if="handleGoods.length === 0" @click="handleShowGoodPopup">
@@ -52,32 +127,91 @@
 				</view>
 			</view>
 			<view class="list-view-title">
-				<view class="list-view-h1"><text>*</text>关键词记录:</view>
-				<view class="list-view-p"
-					>(请总结客户的咨询内容,以商品或者服务的关键词形式填写,不需要填口语化的内容。)</view
-				>
+				<view class="list-view-h1">标签记录:</view>
+				<view class="list-view-p">
+					请总结客户的个人画像和咨询内容,尽量使用简短的描述性词语,杜绝口语化的词语 (优先选择以下展示的标签)
+				</view>
+			</view>
+			<view class="list-view-list-main">
+				<view class="list-label-list">
+					<text class="list-label" 
+						  :class="item.isChecked ? 'active' : ''"
+						  v-for="(item, index) in labelsList" 
+						  :key="index"
+						  @click="handleCheckedLabel(item,index)"
+					>
+						  {{ item.label }}
+					</text>
+				</view>
+			</view>
+			<view class="list-view-title">
+				<view class="list-view-h1">机构静态标签:</view>
+				<view class="list-view-p"> (若你对客户的静态特点有更多维度进行描述,请手动填) </view>
+			</view>
+			<view class="list-view-list-main">
+				<view class="list-view-list" v-for="(item, index) in staticLabelsList" :key="index">
+					<view class="list-view-input">
+						<input
+							class="input"
+							type="text"
+							v-model="item.label"
+							placeholder="请输入标签,不超过10个汉字"
+							maxlength="10"
+							@focus="hideStaticLabelsAction(item, $event)"
+							@blur="hideStaticLabelsAction(item, $event)"
+							@input="handleStaticLabelsAction(index, $event)"
+						/>
+						<view class="list-view-assAction" v-if="item.isAssociation">
+							<scroll-view class="tui-popup-scroll train" scroll-y="true">
+								<view
+									class="ass-list"
+									v-for="(ass, assIndex) in staticLabelsActionList"
+									:key="assIndex"
+									@click="handleSelectStaticLabels(ass.label, item)"
+									>{{ ass.label }}</view
+								>
+							</scroll-view>
+						</view>
+					</view>
+					<view class="list-view-btn">
+						<text
+							class="iconfont icon-zengjia"
+							v-if="staticLabelsList.length < 9 && index === staticLabelsList.length - 1"
+							@click="handleAddStaticLabels(item, index)"
+						></text>
+						<text
+							class="iconfont icon-shanchu4"
+							v-if="staticLabelsList.length > 1 && index != staticLabelsList.length - 1"
+							@click="handleDelStaticLabels(item, index)"
+						></text>
+					</view>
+				</view>
+			</view>
+			<view class="list-view-title">
+				<view class="list-view-h1">机构动态标签:</view>
+				<view class="list-view-p"> (若你对客户的购买诉求有更多维度进行描述,请手动填) </view>
 			</view>
 			<view class="list-view-list-main">
-				<view class="list-view-list" v-for="(item, index) in remarksList" :key="index">
+				<view class="list-view-list" v-for="(item, index) in trendsLabelsList" :key="index">
 					<view class="list-view-input">
 						<input
 							class="input"
 							type="text"
 							v-model="item.label"
-							placeholder="请输入关键词,不超过10个汉字"
+							placeholder="请输入标签,不超过10个汉字"
 							maxlength="10"
-							@focus="hideAssAction(item, $event)"
-							@blur="hideAssAction(item, $event)"
-							@input="bindRemarkAction(index, $event)"
+							@focus="hideTrendsLabelsAction(item, $event)"
+							@blur="hideTrendsLabelsAction(item, $event)"
+							@input="handleTrendsLabelsAction(index, $event)"
 						/>
 						<view class="list-view-assAction" v-if="item.isAssociation">
 							<scroll-view class="tui-popup-scroll train" scroll-y="true">
 								<view
 									class="ass-list"
-									v-for="(ass, assIndex) in assActionList"
+									v-for="(ass, assIndex) in trendsLabelsActionList"
 									:key="assIndex"
-									@click="SelectAssociationFn(ass.remarks,item)"
-									>{{ ass.remarks }}</view
+									@click="handleSelectTrendsLabels(ass.label, item)"
+									>{{ ass.label }}</view
 								>
 							</scroll-view>
 						</view>
@@ -85,13 +219,13 @@
 					<view class="list-view-btn">
 						<text
 							class="iconfont icon-zengjia"
-							v-if="remarksList.length < 9 && index === remarksList.length - 1"
-							@click="addListFn(item, index)"
+							v-if="trendsLabelsList.length < 9 && index === trendsLabelsList.length - 1"
+							@click="handleAddTrendsLabels(item, index)"
 						></text>
 						<text
 							class="iconfont icon-shanchu4"
-							v-if="remarksList.length > 1 && index != remarksList.length - 1"
-							@click="deleteLogistItemFn(item, index)"
+							v-if="trendsLabelsList.length > 1 && index != trendsLabelsList.length - 1"
+							@click="handleDelTrendsLabels(item, index)"
 						></text>
 					</view>
 				</view>
@@ -113,10 +247,10 @@
 				/>
 				<text class="iconfont icon-xiangyou"></text>
 			</view>
-			<view class="list-view-title">
+			<view class="list-view-title" v-if="current === 0">
 				<view class="list-view-h1"><text>*</text>价格敏感度:</view>
 			</view>
-			<view class="list-view-radio">
+			<view class="list-view-radio" v-if="current === 0">
 				<picker @change="bindPickerChange(1, $event)" :value="index" :range="priceActions" range-key="name">
 					<input
 						class="input"
@@ -129,10 +263,10 @@
 					<text class="iconfont icon-xiangyou"></text>
 				</picker>
 			</view>
-			<view class="list-view-title">
+			<view class="list-view-title" v-if="current === 0">
 				<view class="list-view-h1"><text>*</text>意向程度:</view>
 			</view>
-			<view class="list-view-radio">
+			<view class="list-view-radio" v-if="current === 0">
 				<picker @change="bindPickerChange(2, $event)" :value="index" :range="intenActions" range-key="name">
 					<input
 						class="input"
@@ -145,10 +279,10 @@
 					<text class="iconfont icon-xiangyou"></text>
 				</picker>
 			</view>
-			<view class="list-view-title">
+			<view class="list-view-title" v-if="current === 0">
 				<view class="list-view-h1"><text>*</text>跟进状态:</view>
 			</view>
-			<view class="list-view-radio">
+			<view class="list-view-radio" v-if="current === 0">
 				<picker @change="bindPickerChange(3, $event)" :value="index" :range="stateActions" range-key="name">
 					<input
 						class="input"
@@ -220,8 +354,7 @@
 			v-if="isGoodspopup"
 			:show="isGoodspopup"
 			@handleChoiceaGoods="handleChoiceaGoodsData"
-		>
-		</cm-goodspopup>
+		/>
 		<!-- 商品列表弹窗 -->
 		<cm-reportpopup
 			ref="cmreportpopup"
@@ -230,8 +363,7 @@
 			:popupType ="2"
 			:reportInfo="reportInfo"
 			@handleChoiceaReport="handleChoiceaReportData"
-		>
-		</cm-reportpopup>
+		/>
 	</view>
 </template>
 
@@ -241,9 +373,11 @@ import authorize from '@/common/config/authorize.js'
 import { uploadFileImage, uploadFilePdfDocDocxXlsx } from '@/services/public.js'
 import cmGoodspopup from '../components/cm-goods-popup'
 import cmReportpopup from '../components/cm-report-popup'
+import addMixins from './mixins/addMixins.js'
 
 var isPreviewImg
 export default {
+	mixins: [addMixins],
 	components: {
 		cmGoodspopup,
 		cmReportpopup
@@ -256,16 +390,25 @@ export default {
 			productActions: [],
 			remarksParams: {
 				clubType:'', //机构类型
-				remarks:[], // 关键词
 				extra: '',//额外说明
 				fileList: [],
 				imageList: [],
+				remarksId:0,
 				questionManId: 0,
 				serviceProviderId: 0,
 				consult:'',
 				pinceSensitve:0,//价格敏感度
 				satisfied:0,// 意向程度
 				followup:0,// 跟进状态
+				communicationSituation:'', // 沟通情况 0 已沟通 1联系不上
+				communicationMethods:'',  //沟通方式  1:电话 2:微信
+				customerSource:'',//客户来源 0 网址 1 小程序 2 公众号 3 小红书 4 微博 5 搜狐 6 其他
+				customerGender:'',// 客户性别 0 男 1 女
+				customerAge:'',// 客户年龄
+				groupAddition:''   ,// 加群情况 0 以加群 1 未加群
+				remarks: null, // 关键词
+				trendsKeyword:null,// 动态标签
+				stateKeyword:null  // 静态标签
 			},
 			min: 0,
 			max: 200,
@@ -275,29 +418,7 @@ export default {
 			userInfo:{},
 			checkedCategorysList:[],
 			categorys:[],
-			priceFlagText: '',
 			reportText:'',
-			intenFlagText: '',
-			followStateText: '',
-			priceActions: [
-				{ name: '敏感', value: 1 },
-				{ name: '适中', value: 2 },
-				{ name: '不敏感', value: 3 },
-				{ name: '不明确', value: 4 }
-			],
-			intenActions: [
-				{ name: '意向强烈', value: 1 },
-				{ name: '意向一般', value: 2 },
-				{ name: '意向平淡', value: 3 },
-				{ name: '随便看看', value: 4 }
-			],
-			stateActions: [{ name: '跟进中', value: 1 }, { name: '跟进完成', value: 2 }, { name: '已放弃', value: 3 }],
-			remarksList: [
-				{
-					label: '',
-					isAssociation:false
-				}
-			],
 			checkRemarkIndex:0,
 			assActionList: [],
 			isGoodspopup:false,
@@ -314,15 +435,18 @@ export default {
 		console.log(option)
 		if (option.type == 'edit') {
 			this.handleType = option.type
+			this.getPriorKeyword()
 			this.getUserClubConsults()
 			this.getUserRemarksVisitDetail(option.remarksId)
 			uni.setNavigationBarTitle({title:'修改记录'})
 		} else {
 			this.questionMan = option.questionMan
+			this.remarksParams.remarksId = option.remarksId*1
 			this.remarksParams.questionManId = option.questionManId
 			this.reportInfo.questionMan = option.questionMan
 			this.reportInfo.questionManId = option.questionManId
 			this.initGetStotage(option)
+			this.getPriorKeyword()
 			this.getUserClubConsults()
 		}
 	},
@@ -342,15 +466,29 @@ export default {
 				this.reportInfo.questionMan = data.questionMan
 				this.reportInfo.questionManId = data.questionManId
 				this.questionMan = data.questionMan
-				this.remarksList = data.remarks.map((el, index) => {
-					el.isAssociation = false
-					return el
-				})
 				this.remarksParams.questionManId = data.questionManId
+				this.remarksParams.communicationSituation = this.current = data.communicationSituation
+				this.remarksParams.communicationMethods = data.communicationMethods
+				if(data.communicationMethods === '1,2' || data.communicationMethods === '2,1'){
+					this.checkboItems = this.checkboItems.map(el => {
+						el.checked = true
+						return el
+					})
+				}else{
+					this.checkboItems = this.checkboItems.map(el => {
+						if (el.value*1 === data.communicationMethods*1) {
+						   el.checked = true
+						}
+						return el
+					})
+				}
 				this.remarksParams.remarksId = data.remarksId
 				this.remarksParams.extra = data.extra
 				this.remarksParams.clubType = data.clubType
 				this.remarksParams.pinceSensitve = data.pinceSensitve
+				this.remarksParams.customerSource = data.customerSource
+				this.remarksParams.customerGender = data.customerGender
+				this.remarksParams.customerAge = this.customerAge = data.customerAge
 				this.remarksParams.satisfied = data.satisfied
 				this.remarksParams.followup = data.followup
 				this.remarksParams.fileList = data.fileList
@@ -363,7 +501,7 @@ export default {
 				}
 				this.checkedCategorysList = data.consult.split(',').map(i => parseInt(i, 0))
 				this.categorys = this.categorys.map((el, index) => {
-					if(data.consult.includes(el.id)){
+					if(this.contains(this.checkedCategorysList,el.id)){
 						el.isChecked = true
 					}else{
 						el.isChecked = false
@@ -378,118 +516,119 @@ export default {
 					}
 					this.handleGoods.push(pro)
 				}
+				if(data.remarks){
+					this.firstLabelList = data.remarks.map((el, index) => {
+						return el.label
+					})
+					this.labelsList = this.labelsList.map((el, index) => {
+						if (this.contains(this.firstLabelList, el.label)) {
+							el.isChecked = true
+						}
+						return el
+					})
+				}
+				if(data.stateKeyword){
+					this.staticLabelsList = data.stateKeyword.map((el, index) => {
+						el.isAssociation = false
+						return el
+					})
+				}
+				if(data.trendsKeyword){
+					this.trendsLabelsList = data.trendsKeyword.map((el, index) => {
+						el.isAssociation = false
+						return el
+					})
+				}
 				this.reportText = data.reportText ? data.reportText : ''
 				this.priceFlagText = this.pinceFilters(data.pinceSensitve)
 				this.intenFlagText = this.intenActionsFilters(data.satisfied)
 				this.followStateText = this.followupFilters(data.followup)
+				this.sourceStateText = this.sourceActionsFilters(data.customerSource)
+				this.genderText = this.genderActionsFilters(data.customerGender)
+				this.additiveText = this.additiveActionsFilters(data.groupAddition)
 				this.initGetStotage()
 			})
 			.catch(error => {
 				this.$util.msg(error.msg, 2000)
 			})
 		},
-		getUserClubConsults() {
-			//查询咨询类别
-			this.UserService.getUserClubConsults()
-				.then(response => {
-					this.categorys = response.data.map((el, index) => {
-						el.isChecked = false
-						return el
-					})
-				})
-				.catch(error => {
-					console.log('=========>获取咨询类别列表失败')
-				})
-		},
-		bindRemarkAction(index, event) {
-			this.checkRemarkIndex = index
-			this.assActionList = []
-			if (event.detail.value != '') {
-				this.UserService.getCmremarkslist({remarks : event.detail.value}).then(response => {
-					if(response.data&&response.data.length>0){
-						this.assActionList = response.data
-						this.remarksList[index].isAssociation = true
-					}else{
-						this.assActionList = []
-						this.remarksList[index].isAssociation = false
-					}
-				})
-				.catch(error => {
-					console.log('=========>获取关键词联想失败')
+		async getPriorKeyword() {
+			//查询优先展示标签
+			try{
+				const res = await this.UserService.getPriorKeyword()
+				const data = res.data
+				this.labelsList = data.map((el, index) => {
+					el.isChecked = false
+					return el
 				})
-			} else {
-				this.remarksList[index].isAssociation = false
+			}catch(error){
+				console.log('=========>获取优先展示标签列表失败')
 			}
 		},
-		hideAssAction(item, event){//隐藏对应的联想弹窗
-			item.isAssociation = false
-		},
-		SelectAssociationFn(ass,item) {
-			//选择关键词
-			item.isAssociation = false
-			item.label = ass
-		},
-		addListFn(item,index) {
-			//添加
-			let obj = { label: '',isAssociation:false}
-			item.isAssociation = false
-			this.remarksList.push(obj)
-		},
-		deleteLogistItemFn(item, index) {
-			this.remarksList.splice(index, 1)
-		},
-		bindPickerChange(type, e) {
-			//选择筛选条件
-			switch (type) {
-				case 1:
-					this.priceFlagText = this.priceActions[e.target.value].name
-					this.remarksParams.pinceSensitve = this.priceActions[e.target.value].value
-					break
-				case 2:
-					this.intenFlagText = this.intenActions[e.target.value].name
-					this.remarksParams.satisfied = this.intenActions[e.target.value].value
-					break
-				case 3:
-					this.followStateText = this.stateActions[e.target.value].name
-					this.remarksParams.followup = this.stateActions[e.target.value].value
-					break
+		async getUserClubConsults() {
+			//查询咨询类别
+			try{
+				const res = await this.UserService.getUserClubConsults()
+				const data = res.data
+				this.categorys = data.map((el, index) => {
+					el.isChecked = false
+					return el
+				})
+			}catch(error){
+				console.log('=========>获取咨询类别列表失败')
 			}
 		},
 		editButtonConfim() {
-			//保存资料备注
-			if (this.remarksParams.consult == '') {
-				this.$util.msg('请选择咨询类别', 2000)
-				return
-			}
-			//统一处理关键词
-			let remarksList = []
-			for (const el of this.remarksList) {
-				if(el.label!=''){
-					remarksList.push(el.label)
+			if(this.current === 0){
+				if (this.remarksParams.consult == '') {
+					this.$util.msg('请选择咨询类别', 2000)
+					return
+				}
+				if (!this.remarksParams.pinceSensitve) {
+					this.$util.msg('请选择价格敏感度', 2000)
+					return
+				}
+				if (!this.remarksParams.satisfied) {
+					this.$util.msg('请选择意向程度', 2000)
+					return
+				}
+				if (!this.remarksParams.followup) {
+					this.$util.msg('请选择跟进状态', 2000)
+					return
 				}
 			}
-			if (remarksList.length == 0) {
-				this.$util.msg('请输入关键词记录', 2000)
-				return
-			}
-			if (!this.remarksParams.pinceSensitve) {
-				this.$util.msg('请选择价格敏感度', 2000)
-				return
+			//统一处理静态标签
+			let staticLabelsList = []
+			this.staticLabelsList.forEach( el =>{
+				if(el.label !== ''){
+					staticLabelsList.push(el.label)
+				}
+			})
+			console.log('staticLabelsList', staticLabelsList)
+			//统一处理动态标签
+			let trendsLabelsList = []
+			this.trendsLabelsList.forEach( (el) =>{
+				if(el.label !== ''){
+					trendsLabelsList.push(el.label)
+				}
+			})
+			console.log('trendsLabelsList', trendsLabelsList)
+			if(this.firstLabelList.length > 0){
+				this.remarksParams.remarks = JSON.stringify(this.firstLabelList)
 			}
-			if (!this.remarksParams.satisfied) {
-				this.$util.msg('请选择意向程度', 2000)
-				return
+			if(trendsLabelsList.length > 0){
+				this.remarksParams.trendsKeyword = JSON.stringify(trendsLabelsList)
 			}
-			if (!this.remarksParams.followup) {
-				this.$util.msg('请选择跟进状态', 2000)
-				return
+			if(staticLabelsList.length > 0){
+				this.remarksParams.stateKeyword = JSON.stringify(staticLabelsList)
 			}
-			this.remarksParams.remarks = JSON.stringify(remarksList)
 			console.log('remarksParams',this.remarksParams)
-			this.UserService.getUserClubVisitorSaveAdd({
-				params: JSON.stringify(this.remarksParams)
-			})
-			.then(response => {
+			this.getUserClubVisitorSaveAdd({ params: JSON.stringify(this.remarksParams) })
+		},
+		// 调用保存
+		async getUserClubVisitorSaveAdd(params){
+			try{
+				await this.UserService.getUserClubVisitorSaveAdd(params)
 				this.$util.msg('保存成功', 2000, true, 'success')
 				let VisitorInfo = {
 						questionManId: this.remarksParams.questionManId,
@@ -500,11 +639,10 @@ export default {
 					uni.navigateBack({
 						delta: 1
 					})
-				}, 2000)
-			})
-			.catch(error => {
+				},2000)	
+			}catch(error){
 				this.$util.msg(error.msg, 2000)
-			})
+			}
 		},
 		choiceCategorys(category,index){
 			// 选择类别
@@ -634,6 +772,36 @@ export default {
 				4: '随便看看'
 			}
 		 return map[value]
+		},
+		sourceActionsFilters(value) {
+			// 客户来源
+			const map = {
+				0: '网站',
+				1: '小程序',
+				2: '公众号',
+				3: '小红书',
+				4: '微博',
+				5: '搜狐',
+				6: '其他'
+				
+			}
+			return map[value]
+		},
+		genderActionsFilters(value) {
+			// 客户性别
+			const map = {
+				0: '男',
+				1: '女'
+			}
+			return map[value]
+		},
+		additiveActionsFilters(value) {
+			// 加群情况
+			const map = {
+				0: '已加群',
+				1: '未加群'
+			}
+			return map[value]
 		}
 	},
 	onShow() {}
@@ -827,6 +995,27 @@ page {
 		box-sizing: border-box;
 		margin-bottom: 30rpx;
 		position: relative;
+		.list-label-list{
+			width: 100%;
+			height: auto;
+			box-sizing: border-box;
+			.list-label{
+				display: inline-block;
+				padding: 0 20rpx;
+				height: 48rpx;
+				line-height: 48rpx;
+				background: #F7F7F7;
+				text-align: center;
+				margin-right: 20rpx;
+				margin-bottom: 20rpx;
+				font-size: 26rpx;
+				color: #666666;
+				&.active{
+					background: #FEF6F3;
+					color: #FF5B00;
+				}
+			}
+		}
 		.list-view-list {
 			width: 100%;
 			height: 90rpx;
@@ -900,6 +1089,11 @@ page {
 	.remarks-category{
 		width: 100%;
 		float: left;
+		.label {
+			color: #666666;
+			font-size: 28rpx;
+			margin-right: 50rpx;
+		}
 		.checkbox-list {
 			height: 60rpx;
 			font-size: $font-size-28;

+ 439 - 230
pages/seller/remarks/add.vue

@@ -19,6 +19,30 @@
 			<view class="content-club-ri"> <text class="iconfont icon-xiayibu"></text> </view>
 		</view>
 		<view class="remarks-content">
+			<view class="list-view-title">
+				<view class="list-view-h1"><text>*</text>沟通情况:</view>
+			</view>
+			<view class="remarks-category">
+				<radio-group @change="radioChange">
+					<label class="uni-list-cell uni-list-cell-pd" v-for="(item, index) in items" :key="item.value">
+						<radio
+							:value="item.value"
+							style="transform:scale(0.7)"
+							color="#FF5B00"
+							:checked="index === current"
+						/>
+						<label :for="item.value" class="label">
+							<text>{{ item.name }}</text>
+						</label>
+					</label>
+				</radio-group>
+				<checkbox-group v-if="current === 0"  @change="checkboxChange" style="margin-top: 10rpx;">
+					<label class="label" v-for="item in checkboItems" :key="item.value">
+						<checkbox :value="item.value" :checked="item.checked" style="transform:scale(0.7)" color="#FF5B00" />
+						{{item.name}}
+					</label>
+				</checkbox-group>
+			</view>
 			<view class="list-view-title">
 				<view class="list-view-h1"><text>*</text>咨询人:</view>
 			</view>
@@ -32,10 +56,59 @@
 					maxlength="15"
 				/>
 			</view>
-			<view class="list-view-title">
+			<view class="list-view-title"> <view class="list-view-h1">客户来源:</view> </view>
+			<view class="list-view-radio">
+				<picker @change="bindPickerChange(4, $event)" :value="index" :range="sourceActions" range-key="name">
+					<input
+						class="input"
+						type="text"
+						disabled="false"
+						v-model="sourceStateText"
+						value=""
+						placeholder="请选择"
+					/>
+					<text class="iconfont icon-xiangyou"></text>
+				</picker>
+			</view>
+			<view class="list-view-title"> <view class="list-view-h1">客户性别:</view> </view>
+			<view class="list-view-radio">
+				<picker @change="bindPickerChange(5, $event)" :value="index" :range="genderActions" range-key="name">
+					<input
+						class="input"
+						type="text"
+						disabled="false"
+						v-model="genderText"
+						value=""
+						placeholder="请选择"
+					/>
+					<text class="iconfont icon-xiangyou"></text>
+				</picker>
+			</view>
+			<view class="list-view-title"> <view class="list-view-h1">客户年龄:</view> </view>
+			<view class="list-view-radio">
+				<picker @change="bindPickerChange(6, $event)" :value="index" :range="ageActions" range-key="name">
+					<input class="input" type="text" disabled="false" v-model="customerAge" value="" placeholder="请选择" />
+					<text class="iconfont icon-xiangyou"></text>
+				</picker>
+			</view>
+			<view class="list-view-title"> <view class="list-view-h1">加群情况:</view> </view>
+			<view class="list-view-radio">
+				<picker @change="bindPickerChange(7, $event)" :value="index" :range="additiveActions" range-key="name">
+					<input
+						class="input"
+						type="text"
+						disabled="false"
+						v-model="additiveText"
+						value=""
+						placeholder="请选择"
+					/>
+					<text class="iconfont icon-xiangyou"></text>
+				</picker>
+			</view>
+			<view class="list-view-title" v-if="current === 0">
 				<view class="list-view-h1"><text>*</text>咨询类别:</view>
 			</view>
-			<view class="remarks-category">
+			<view class="remarks-category" v-if="current === 0">
 				<view
 					class="checkbox-list"
 					:class="category.isChecked ? 'checked' : ''"
@@ -47,7 +120,7 @@
 					{{ category.className }}
 				</view>
 			</view>
-			<view class="list-view-title"> <view class="list-view-h1">机构类型:</view> </view>
+<!-- 		<view class="list-view-title"> <view class="list-view-h1">机构类型:</view> </view>
 			<view class="remarks-input">
 				<input
 					class="input"
@@ -57,7 +130,7 @@
 					placeholder="如美甲店,医院"
 					maxlength="15"
 				/>
-			</view>
+			</view> -->
 			<view class="list-view-title"> <view class="list-view-h1">咨询商品:</view> </view>
 			<view class="tui-remarks-content">
 				<view class="tui-remarks-goods-input" v-if="handleGoods.length === 0" @click="handleShowGoodPopup">
@@ -79,32 +152,48 @@
 				</view>
 			</view>
 			<view class="list-view-title">
-				<view class="list-view-h1"><text>*</text>关键词记录:</view>
-				<view class="list-view-p"
-					>(请总结客户的咨询内容,以商品或者服务的关键词形式填写,不需要填口语化的内容。)</view
-				>
+				<view class="list-view-h1">标签记录:</view>
+				<view class="list-view-p">
+					请总结客户的个人画像和咨询内容,尽量使用简短的描述性词语,杜绝口语化的词语 (优先选择以下展示的标签)
+				</view>
+			</view>
+			<view class="list-view-list-main">
+				<view class="list-label-list">
+					<text class="list-label" 
+						  :class="item.isChecked ? 'active' : ''"
+						  v-for="(item, index) in labelsList" 
+						  :key="index"
+						  @click="handleCheckedLabel(item,index)"
+					>
+						  {{ item.label }}
+					</text>
+				</view>
+			</view>
+			<view class="list-view-title">
+				<view class="list-view-h1">机构静态标签:</view>
+				<view class="list-view-p"> (若你对客户的静态特点有更多维度进行描述,请手动填) </view>
 			</view>
 			<view class="list-view-list-main">
-				<view class="list-view-list" v-for="(item, index) in remarksList" :key="index">
+				<view class="list-view-list" v-for="(item, index) in staticLabelsList" :key="index">
 					<view class="list-view-input">
 						<input
 							class="input"
 							type="text"
 							v-model="item.label"
-							placeholder="请输入关键词,不超过10个汉字"
+							placeholder="请输入标签,不超过10个汉字"
 							maxlength="10"
-							@focus="hideAssAction(item, $event)"
-							@blur="hideAssAction(item, $event)"
-							@input="bindRemarkAction(index, $event)"
+							@focus="hideStaticLabelsAction(item, $event)"
+							@blur="hideStaticLabelsAction(item, $event)"
+							@input="handleStaticLabelsAction(index, $event)"
 						/>
 						<view class="list-view-assAction" v-if="item.isAssociation">
 							<scroll-view class="tui-popup-scroll train" scroll-y="true">
 								<view
 									class="ass-list"
-									v-for="(ass, assIndex) in assActionList"
+									v-for="(ass, assIndex) in staticLabelsActionList"
 									:key="assIndex"
-									@click="SelectAssociationFn(ass.remarks, item)"
-									>{{ ass.remarks }}</view
+									@click="handleSelectStaticLabels(ass.label, item)"
+									>{{ ass.label }}</view
 								>
 							</scroll-view>
 						</view>
@@ -112,13 +201,56 @@
 					<view class="list-view-btn">
 						<text
 							class="iconfont icon-zengjia"
-							v-if="remarksList.length < 9 && index === remarksList.length - 1"
-							@click="addListFn(item, index)"
+							v-if="staticLabelsList.length < 9 && index === staticLabelsList.length - 1"
+							@click="handleAddStaticLabels(item, index)"
 						></text>
 						<text
 							class="iconfont icon-shanchu4"
-							v-if="remarksList.length > 1 && index != remarksList.length - 1"
-							@click="deleteLogistItemFn(item, index)"
+							v-if="staticLabelsList.length > 1 && index != staticLabelsList.length - 1"
+							@click="handleDelStaticLabels(item, index)"
+						></text>
+					</view>
+				</view>
+			</view>
+			<view class="list-view-title">
+				<view class="list-view-h1">机构动态标签:</view>
+				<view class="list-view-p"> (若你对客户的购买诉求有更多维度进行描述,请手动填) </view>
+			</view>
+			<view class="list-view-list-main">
+				<view class="list-view-list" v-for="(item, index) in trendsLabelsList" :key="index">
+					<view class="list-view-input">
+						<input
+							class="input"
+							type="text"
+							v-model="item.label"
+							placeholder="请输入标签,不超过10个汉字"
+							maxlength="10"
+							@focus="hideTrendsLabelsAction(item, $event)"
+							@blur="hideTrendsLabelsAction(item, $event)"
+							@input="handleTrendsLabelsAction(index, $event)"
+						/>
+						<view class="list-view-assAction" v-if="item.isAssociation">
+							<scroll-view class="tui-popup-scroll train" scroll-y="true">
+								<view
+									class="ass-list"
+									v-for="(ass, assIndex) in trendsLabelsActionList"
+									:key="assIndex"
+									@click="handleSelectTrendsLabels(ass.label, item)"
+									>{{ ass.label }}</view
+								>
+							</scroll-view>
+						</view>
+					</view>
+					<view class="list-view-btn">
+						<text
+							class="iconfont icon-zengjia"
+							v-if="trendsLabelsList.length < 9 && index === trendsLabelsList.length - 1"
+							@click="handleAddTrendsLabels(item, index)"
+						></text>
+						<text
+							class="iconfont icon-shanchu4"
+							v-if="trendsLabelsList.length > 1 && index != trendsLabelsList.length - 1"
+							@click="handleDelTrendsLabels(item, index)"
 						></text>
 					</view>
 				</view>
@@ -138,10 +270,10 @@
 				/>
 				<text class="iconfont icon-xiangyou"></text>
 			</view>
-			<view class="list-view-title">
+			<view class="list-view-title" v-if="current === 0">
 				<view class="list-view-h1"><text>*</text>价格敏感度:</view>
 			</view>
-			<view class="list-view-radio">
+			<view class="list-view-radio" v-if="current === 0">
 				<picker @change="bindPickerChange(1, $event)" :value="index" :range="priceActions" range-key="name">
 					<input
 						class="input"
@@ -154,10 +286,10 @@
 					<text class="iconfont icon-xiangyou"></text>
 				</picker>
 			</view>
-			<view class="list-view-title">
+			<view class="list-view-title" v-if="current === 0">
 				<view class="list-view-h1"><text>*</text>意向程度:</view>
 			</view>
-			<view class="list-view-radio">
+			<view class="list-view-radio" v-if="current === 0">
 				<picker @change="bindPickerChange(2, $event)" :value="index" :range="intenActions" range-key="name">
 					<input
 						class="input"
@@ -170,10 +302,10 @@
 					<text class="iconfont icon-xiangyou"></text>
 				</picker>
 			</view>
-			<view class="list-view-title">
+			<view class="list-view-title" v-if="current === 0">
 				<view class="list-view-h1"><text>*</text>跟进状态:</view>
 			</view>
-			<view class="list-view-radio">
+			<view class="list-view-radio" v-if="current === 0">
 				<picker @change="bindPickerChange(3, $event)" :value="index" :range="stateActions" range-key="name">
 					<input
 						class="input"
@@ -245,8 +377,7 @@
 			v-if="isGoodspopup"
 			:show="isGoodspopup"
 			@handleChoiceaGoods="handleChoiceaGoodsData"
-		>
-		</cm-goodspopup>
+		/>
 		<!-- 机构报备弹窗 -->
 		<cm-reportpopup
 			ref="cmreportpopup"
@@ -255,8 +386,7 @@
 			:popupType="1"
 			:reportInfo="reportInfo"
 			@handleChoiceaReport="handleChoiceaReportData"
-		>
-		</cm-reportpopup>
+		/>
 	</view>
 </template>
 
@@ -266,9 +396,11 @@ import authorize from '@/common/config/authorize.js'
 import { uploadFileImage, uploadFilePdfDocDocxXlsx } from '@/services/public.js'
 import cmGoodspopup from '../components/cm-goods-popup'
 import cmReportpopup from '../components/cm-report-popup'
+import addMixins from './mixins/addMixins.js'
 
 var isPreviewImg
 export default {
+	mixins: [addMixins],
 	components: {
 		cmGoodspopup,
 		cmReportpopup
@@ -284,7 +416,6 @@ export default {
 				clubId: 0,
 				questionMan: '',
 				clubType: '', //机构类型
-				remarks: [], // 关键词
 				extra: '', //额外说明
 				fileList: [],
 				imageList: [],
@@ -294,7 +425,17 @@ export default {
 				satisfied: 0, // 意向程度
 				followup: 0, // 跟进状态
 				productId: 0, // 商品Id
-				reportId: 0 // 报备Id
+				reportId: 0 ,// 报备Id
+				communicationSituation:'', // 沟通情况 0 已沟通 1联系不上
+				communicationMethods:'',  //沟通方式  1:电话 2:微信
+				customerSource:'',//客户来源 0 网址 1 小程序 2 公众号 3 小红书 4 微博 5 搜狐 6 其他
+				customerGender:'',// 客户性别 0 男 1 女
+				customerAge:'',// 客户年龄
+				groupAddition:''   ,// 加群情况 0 以加群 1 未加群
+				remarks: null, // 关键词
+				trendsKeyword:null,// 动态标签
+				stateKeyword:null  // 静态标签
+				
 			},
 			min: 0,
 			max: 200,
@@ -305,34 +446,12 @@ export default {
 			checkedCategorysList: [],
 			categorys: [],
 			isConfirmLoding: false,
-			priceFlagText: '',
 			reportText: '',
-			intenFlagText: '',
-			followStateText: '',
-			priceActions: [
-				{ name: '敏感', value: 1 },
-				{ name: '适中', value: 2 },
-				{ name: '不敏感', value: 3 },
-				{ name: '不明确', value: 4 }
-			],
-			intenActions: [
-				{ name: '意向强烈', value: 1 },
-				{ name: '意向一般', value: 2 },
-				{ name: '意向平淡', value: 3 },
-				{ name: '随便看看', value: 4 }
-			],
-			stateActions: [{ name: '跟进中', value: 1 }, { name: '跟进完成', value: 2 }, { name: '已放弃', value: 3 }],
-			remarksList: [
-				{
-					label: '',
-					isAssociation: false
-				}
-			],
 			checkRemarkIndex: 0,
 			assActionList: [],
 			isGoodspopup: false,
 			isReportpopup: false,
-			isHashReport:false,
+			isHashReport: false,
 			handleGoods: [],
 			reportInfo: {
 				clubId: 0,
@@ -344,158 +463,174 @@ export default {
 	onLoad(option) {
 		console.log(option)
 		if (option.type == 'edit') {
+			this.handleType = option.type
+			this.getPriorKeyword()
 			this.getUserClubConsults()
 			this.getUserClubRemarksDetail(option.remarksId)
-			this.handleType = option.type
 			uni.setNavigationBarTitle({ title: '修改记录' })
 		} else {
 			this.clubUserId = option.userId
-			this.getCulbInfo()
+			this.getCulbInfo(option.userId)
+			this.getHistoryInfo(option.userId)
+			this.getPriorKeyword()
 			this.getUserClubConsults()
 		}
 	},
 	methods: {
 		...mapMutations(['login']),
-		getCulbInfo() {
+		async getCulbInfo(userId) {
 			// 查询机构信息
-			this.UserService.OrganizationUpdateModifyInfo({ userId: this.clubUserId })
-				.then(response => {
-					this.clubInfo = response.data.club
-					this.userInfo = response.data.user
-					this.reportInfo.name = this.clubInfo.name
-					this.reportInfo.linkMan = this.clubInfo.linkMan
-					this.remarksParams.clubId = this.reportInfo.clubId = this.clubInfo.clubId
-					if (this.handleType != 'edit') {
-						this.remarksParams.questionMan = this.clubInfo.linkMan
-					}
-				})
-				.catch(error => {
-					console.log('=============>', error.msg)
-				})
+			try{
+				const userInfos = await this.$api.getStorage()
+				const res = await this.UserService.OrganizationUpdateModifyInfo({ userId: userId })
+				const data = res.data
+				this.clubInfo = data.club
+				this.userInfo = data.user
+				this.reportInfo.name = this.clubInfo.name
+				this.reportInfo.linkMan = this.clubInfo.linkMan
+				this.remarksParams.clubId = this.reportInfo.clubId = this.clubInfo.clubId
+				this.remarksParams.serviceProviderId = userInfos.serviceProviderId ? userInfos.serviceProviderId : 0
+				if (this.handleType != 'edit') {
+					this.remarksParams.questionMan = this.clubInfo.linkMan
+				}
+			}catch(error){
+				console.log('=============>', error.msg)
+			}
 		},
-		getUserClubRemarksDetail(remarksId) {
+		async getUserClubRemarksDetail(remarksId) {
 			//修改回显资料备注信息
-			this.UserService.getUserClubRemarksDetail({
-				remarksId: remarksId
-			})
-				.then(response => {
-					let data = response.data
-					this.clubUserId = data.userId
-					this.remarksList = data.remarks.map((el, index) => {
-						el.isAssociation = false
+			try{
+				const res = await this.UserService.getUserClubRemarksDetail({ remarksId: remarksId })
+				const data = res.data
+				this.clubUserId = data.userId
+				this.remarksParams.remarksId = data.remarksId
+				this.remarksParams.communicationSituation = this.current = data.communicationSituation
+				this.remarksParams.communicationMethods = data.communicationMethods
+				if(data.communicationMethods === '1,2' || data.communicationMethods === '2,1'){
+					this.checkboItems = this.checkboItems.map(el => {
+						el.checked = true
 						return el
 					})
-					this.remarksParams.remarksId = data.remarksId
-					this.remarksParams.extra = data.extra
-					this.remarksParams.clubType = data.clubType
-					this.remarksParams.pinceSensitve = data.pinceSensitve
-					this.remarksParams.satisfied = data.satisfied
-					this.remarksParams.followup = data.followup
-					this.remarksParams.fileList = data.fileList
-					this.remarksParams.imageList = data.imageList
-					this.remarksParams.productId = data.productId
-					if (this.handleType == 'edit') {
-						if(data.reportId){
-							this.isHashReport = true
-							this.remarksParams.reportId = data.reportId
+				}else{
+					this.checkboItems = this.checkboItems.map(el => {
+						if (el.value*1 === data.communicationMethods*1) {
+						   el.checked = true
 						}
-						this.remarksParams.questionMan = data.questionMan
-						this.remarksParams.consult = data.consult
-						this.checkedCategorysList = data.consult.split(',').map(i => parseInt(i, 0))
-						this.categorys = this.categorys.map((el, index) => {
-							if (data.consult.includes(el.id)) {
-								el.isChecked = true
-							} else {
-								el.isChecked = false
-							}
-							return el
-						})
+						return el
+					})
+				}
+				this.remarksParams.extra = data.extra
+				this.remarksParams.clubType = data.clubType
+				this.remarksParams.pinceSensitve = data.pinceSensitve
+				this.remarksParams.customerSource = data.customerSource
+				this.remarksParams.customerGender = data.customerGender
+				this.remarksParams.customerAge = this.customerAge = data.customerAge
+				this.remarksParams.groupAddition = data.groupAddition
+				this.remarksParams.satisfied = data.satisfied
+				this.remarksParams.followup = data.followup
+				this.remarksParams.fileList = data.fileList
+				this.remarksParams.imageList = data.imageList
+				this.remarksParams.productId = data.productId
+				if (this.handleType == 'edit') {
+					if (data.reportId) {
+						this.isHashReport = true
+						this.remarksParams.reportId = data.reportId
 					}
-					if(data.productId){
-						let pro = {
-							image:data.mainImage,
-							name:data.productName,
-							shopName:data.shopName
+					this.remarksParams.questionMan = data.questionMan
+					this.remarksParams.consult = data.consult
+					this.checkedCategorysList = data.consult.split(',').map(i => parseInt(i, 0))
+					this.categorys = this.categorys.map((el, index) => {
+						if(this.contains(this.checkedCategorysList,el.id)){
+							el.isChecked = true
+						}else{
+							el.isChecked = false
 						}
-						this.handleGoods.push(pro)
-					}
-					this.reportText = data.reportText ? data.reportText : ''
-					this.priceFlagText = this.pinceFilters(data.pinceSensitve)
-					this.intenFlagText = this.intenActionsFilters(data.satisfied)
-					this.followStateText = this.followupFilters(data.followup)
-					this.getCulbInfo()
-				})
-				.catch(error => {
-					this.$util.msg(error.msg, 2000)
-				})
-		},
-		getUserClubConsults() {
-			//查询咨询类别
-			this.UserService.getUserClubConsults()
-				.then(response => {
-					this.categorys = response.data.map((el, index) => {
-						el.isChecked = false
 						return el
 					})
-				})
-				.catch(error => {
-					console.log('=========>获取咨询类别列表失败')
-				})
-		},
-		bindRemarkAction(index, event) {
-			this.assActionList = []
-			this.checkRemarkIndex = index
-			if (event.detail.value != '') {
-				this.UserService.getCmremarkslist({ remarks: event.detail.value })
-					.then(response => {
-						if (response.data && response.data.length > 0) {
-							this.assActionList = response.data
-							this.remarksList[index].isAssociation = true
-						} else {
-							this.assActionList = []
-							this.remarksList[index].isAssociation = false
+				}
+				if (data.productId) {
+					let pro = {
+						image: data.mainImage,
+						name: data.productName,
+						shopName: data.shopName
+					}
+					this.handleGoods.push(pro)
+				}
+				if(data.remarks){
+					this.firstLabelList = data.remarks.map((el, index) => {
+						return el.label
+					})
+					this.labelsList = this.labelsList.map((el, index) => {
+						if (this.contains(this.firstLabelList, el.label)) {
+							el.isChecked = true
 						}
+						return el
 					})
-					.catch(error => {
-						console.log('=========>获取关键词联想失败')
+				}
+				if(data.stateKeyword){
+					this.staticLabelsList = data.stateKeyword.map((el, index) => {
+						el.isAssociation = false
+						return el
 					})
-			} else {
-				this.remarksList[index].isAssociation = false
+				}
+				if(data.trendsKeyword){
+					this.trendsLabelsList = data.trendsKeyword.map((el, index) => {
+						el.isAssociation = false
+						return el
+					})
+				}
+				this.reportText = data.reportText ? data.reportText : ''
+				this.priceFlagText = this.pinceFilters(data.pinceSensitve)
+				this.intenFlagText = this.intenActionsFilters(data.satisfied)
+				this.followStateText = this.followupFilters(data.followup)
+				this.sourceStateText = this.sourceActionsFilters(data.customerSource)
+				this.genderText = this.genderActionsFilters(data.customerGender)
+				this.additiveText = this.additiveActionsFilters(data.groupAddition)
+				this.getCulbInfo(data.userId)
+			}catch(error){
+				this.$util.msg(error.msg, 2000)
 			}
 		},
-		hideAssAction(item, event) {
-			//隐藏对应的联想弹窗
-			item.isAssociation = false
-		},
-		SelectAssociationFn(ass, item) {
-			//选择关键词
-			item.isAssociation = false
-			item.label = ass
-		},
-		addListFn(item, index) {
-			//添加
-			let obj = { label: '', isAssociation: false }
-			item.isAssociation = false
-			this.remarksList.push(obj)
+		async getHistoryInfo(userId) {
+			//查询机构历史填写信息
+			try{
+				const res = await this.UserService.getHistoryInfo({ userId:userId })
+				const data = res.data
+				this.remarksParams.customerSource = data.customerSource
+				this.remarksParams.customerGender = data.customerGender
+				this.remarksParams.customerAge = this.customerAge = data.customerAge
+				this.remarksParams.groupAddition = data.groupAddition
+				this.sourceStateText = this.sourceActionsFilters(data.customerSource)
+				this.genderText = this.genderActionsFilters(data.customerGender)
+				this.additiveText = this.additiveActionsFilters(data.groupAddition)
+			}catch(error){
+				console.log('=========>查询机构历史填写信息失败')
+			}
 		},
-		deleteLogistItemFn(item, index) {
-			this.remarksList.splice(index, 1)
+		async getPriorKeyword() {
+			//查询优先展示标签
+			try{
+				const res = await this.UserService.getPriorKeyword()
+				const data = res.data
+				this.labelsList = data.map((el, index) => {
+					el.isChecked = false
+					return el
+				})
+			}catch(error){
+				console.log('=========>获取优先展示标签列表失败')
+			}
 		},
-		bindPickerChange(type, e) {
-			//选择筛选条件
-			switch (type) {
-				case 1:
-					this.priceFlagText = this.priceActions[e.target.value].name
-					this.remarksParams.pinceSensitve = this.priceActions[e.target.value].value
-					break
-				case 2:
-					this.intenFlagText = this.intenActions[e.target.value].name
-					this.remarksParams.satisfied = this.intenActions[e.target.value].value
-					break
-				case 3:
-					this.followStateText = this.stateActions[e.target.value].name
-					this.remarksParams.followup = this.stateActions[e.target.value].value
-					break
+		async getUserClubConsults() {
+			//查询咨询类别
+			try{
+				const res = await this.UserService.getUserClubConsults()
+				const data = res.data
+				this.categorys = data.map((el, index) => {
+					el.isChecked = false
+					return el
+				})
+			}catch(error){
+				console.log('=========>获取咨询类别列表失败')
 			}
 		},
 		async editButtonConfim() {
@@ -503,58 +638,75 @@ export default {
 			if (this.isConfirmLoding) {
 				return
 			}
-			const userInfo = await this.$api.getStorage()
-			if (this.remarksParams.questionMan == '') {
-				this.$util.msg('请输入咨询人姓名', 2000)
-				return
-			}
-			if (this.remarksParams.consult == '') {
-				this.$util.msg('请选择咨询类别', 2000)
-				return
-			}
-			//统一处理关键词
-			let remarksList = []
-			for (const el of this.remarksList) {
-				if (el.label != '') {
-					remarksList.push(el.label)
+			if(this.current === 0){
+				if (this.remarksParams.questionMan == '') {
+					this.$util.msg('请输入咨询人姓名', 2000)
+					return
+				}
+				
+				if (this.remarksParams.consult == '') {
+					this.$util.msg('请选择咨询类别', 2000)
+					return
+				}
+				
+				if (!this.remarksParams.pinceSensitve) {
+					this.$util.msg('请选择价格敏感度', 2000)
+					return
+				}
+				
+				if (!this.remarksParams.satisfied) {
+					this.$util.msg('请选择意向程度', 2000)
+					return
+				}
+				
+				if (!this.remarksParams.followup) {
+					this.$util.msg('请选择跟进状态', 2000)
+					return
 				}
 			}
-			if (remarksList.length == 0) {
-				this.$util.msg('请输入关键词记录', 2000)
-				return
+			//统一处理静态标签
+			let staticLabelsList = []
+			this.staticLabelsList.forEach( el =>{
+				if(el.label !== ''){
+					staticLabelsList.push(el.label)
+				}
+			})
+			console.log('staticLabelsList', staticLabelsList)
+			//统一处理动态标签
+			let trendsLabelsList = []
+			this.trendsLabelsList.forEach( (el) =>{
+				if(el.label !== ''){
+					trendsLabelsList.push(el.label)
+				}
+			})
+			console.log('trendsLabelsList', trendsLabelsList)
+			if(this.firstLabelList.length > 0){
+				this.remarksParams.remarks = JSON.stringify(this.firstLabelList)
 			}
-			if (!this.remarksParams.pinceSensitve) {
-				this.$util.msg('请选择价格敏感度', 2000)
-				return
+			if(trendsLabelsList.length > 0){
+				this.remarksParams.trendsKeyword = JSON.stringify(trendsLabelsList)
 			}
-			if (!this.remarksParams.satisfied) {
-				this.$util.msg('请选择意向程度', 2000)
-				return
+			if(staticLabelsList.length > 0){
+				this.remarksParams.stateKeyword = JSON.stringify(staticLabelsList)
 			}
-			if (!this.remarksParams.followup) {
-				this.$util.msg('请选择跟进状态', 2000)
-				return
-			}
-			this.remarksParams.remarks = JSON.stringify(remarksList)
 			console.log('remarksParams', this.remarksParams)
-			this.remarksParams.serviceProviderId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
 			this.isConfirmLoding = true
-			this.UserService.getUserClubRemarksSave({
-				params: JSON.stringify(this.remarksParams)
-			})
-				.then(response => {
-					this.$util.msg('保存成功', 3000, true, 'success')
-					this.isConfirmLoding = false
-					setTimeout(() => {
-						uni.navigateBack({
-							delta: 1
-						})
-					}, 1000)
-				})
-				.catch(error => {
-					this.$util.msg(error.msg, 2000)
-					this.isConfirmLoding = false
-				})
+			this.getUserClubRemarksSave({ params: JSON.stringify(this.remarksParams) })
+		},
+		async getUserClubRemarksSave(params){
+			try{
+				await this.UserService.getUserClubRemarksSave(params)
+				this.$util.msg('保存成功', 3000, true, 'success')
+				this.isConfirmLoding = false
+				setTimeout(() => {
+					uni.navigateBack({
+						delta: 1
+					})
+				}, 1000)
+			}catch(error){
+				this.$util.msg(error.msg, 2000)
+				this.isConfirmLoding = false
+			}
 		},
 		choiceCategorys(category, index) {
 			// 选择类别
@@ -696,7 +848,37 @@ export default {
 				4: '随便看看'
 			}
 			return map[value]
-		}
+		},
+		sourceActionsFilters(value) {
+			// 客户来源
+			const map = {
+				0: '网站',
+				1: '小程序',
+				2: '公众号',
+				3: '小红书',
+				4: '微博',
+				5: '搜狐',
+				6: '其他'
+				
+			}
+			return map[value]
+		},
+		genderActionsFilters(value) {
+			// 客户性别
+			const map = {
+				0: '男',
+				1: '女'
+			}
+			return map[value]
+		},
+		additiveActionsFilters(value) {
+			// 加群情况
+			const map = {
+				0: '已加群',
+				1: '未加群'
+			}
+			return map[value]
+		},
 	},
 	onShow() {}
 }
@@ -921,6 +1103,27 @@ page {
 		box-sizing: border-box;
 		margin-bottom: 30rpx;
 		position: relative;
+		.list-label-list{
+			width: 100%;
+			height: auto;
+			box-sizing: border-box;
+			.list-label{
+				display: inline-block;
+				padding: 0 20rpx;
+				height: 48rpx;
+				line-height: 48rpx;
+				background: #F7F7F7;
+				text-align: center;
+				margin-right: 20rpx;
+				margin-bottom: 20rpx;
+				font-size: 26rpx;
+				color: #666666;
+				&.active{
+					background: #FEF6F3;
+					color: #FF5B00;
+				}
+			}
+		}
 		.list-view-list {
 			width: 100%;
 			height: 90rpx;
@@ -985,7 +1188,7 @@ page {
 					font-size: $font-size-48;
 				}
 				.icon-shanchu4 {
-					color: #FF5B00;
+					color: #ff5b00;
 					font-size: $font-size-48;
 				}
 			}
@@ -994,6 +1197,12 @@ page {
 	.remarks-category {
 		width: 100%;
 		float: left;
+		margin-bottom: 20rpx;
+		.label {
+			color: #666666;
+			font-size: 28rpx;
+			margin-right: 50rpx;
+		}
 		.checkbox-list {
 			height: 60rpx;
 			font-size: $font-size-28;
@@ -1005,7 +1214,7 @@ page {
 			float: left;
 			.icon-yixuanze {
 				margin-right: 10rpx;
-				color: #FF5B00;
+				color: #ff5b00;
 			}
 			.icon-weixuanze {
 				margin-right: 10rpx;
@@ -1103,7 +1312,7 @@ page {
 				border-radius: 8rpx;
 				background-color: #fff2ec;
 				font-size: $font-size-24;
-				color: #FF5B00;
+				color: #ff5b00;
 				line-height: 44rpx;
 				text-align: center;
 				float: left;
@@ -1179,7 +1388,7 @@ page {
 		height: 88rpx;
 		line-height: 88rpx;
 		text-align: center;
-		color: #FF5B00;
+		color: #ff5b00;
 		font-size: $font-size-24;
 	}
 	.edit-button {

+ 101 - 33
pages/seller/remarks/details.vue

@@ -24,21 +24,54 @@
 			borderRadius="10rpx"
 			:isLoading="true"
 			:loadingType="5"
-		></tui-skeleton>
+		/>
 		<view class="remarks-content clearfix" v-else>
+			<view class="list-view-title">
+				<view class="list-view-h1">
+					沟通情况:
+					<template v-if="remarksParams.communicationSituation === 0">
+						<text>已沟通</text>
+						<text v-if="remarksParams.communicationMethods === 1"> (电话) </text>
+						<text v-if="remarksParams.communicationMethods === 2"> (微信) </text>
+						<text v-if="remarksParams.communicationMethods ==='1,2' || remarksParams.communicationMethods ==='2,1'"> (电话,微信) </text>
+					</template>
+					<template v-else>
+						<text> 联系不上 </text>
+					</template>	
+				</view>
+			</view>
 			<view class="list-view-title">
 				<view class="list-view-h1"
 					>咨询人:<text> {{ remarksParams.questionMan }} </text></view
 				>
 			</view>
-			<view class="list-view-title">
+			<view class="list-view-title" v-if="remarksParams.consultBack">
 				<view class="list-view-h1">
 					咨询类别:<text>{{ remarksParams.consultBack ? remarksParams.consultBack : '无' }}</text>
 				</view>
 			</view>
-			<view class="list-view-title">
+			<view class="list-view-title" v-if="remarksParams.customerSource">
+				<view class="list-view-h1">
+					客户来源:
+					<text>{{ remarksParams.customerSource | sourceActionsFilters }}</text>
+				</view>
+			</view>
+			<view class="list-view-title" v-if="remarksParams.customerGender">
+				<view class="list-view-h1">
+					客户性别:
+					<text>{{ remarksParams.customerGender | genderActionsFilters }}</text>
+				</view>
+			</view>
+			<view class="list-view-title" v-if="remarksParams.customerAge">
+				<view class="list-view-h1">
+					客户年龄:
+					<text>{{ remarksParams.customerAge }}</text>
+				</view>
+			</view>
+			<view class="list-view-title" v-if="remarksParams.groupAddition">
 				<view class="list-view-h1">
-					机构类型:<text>{{ remarksParams.clubType ? remarksParams.clubType : '无' }}</text>
+					加群情况:
+					<text>{{ remarksParams.groupAddition | additiveActionsFilters }}</text>
 				</view>
 			</view>
 			<view class="list-view-title" v-if="remarksParams.productName"> <view class="list-view-h1">咨询商品:</view> </view>
@@ -51,12 +84,14 @@
 					</view>
 				</view>
 			</view>
-			<view class="list-view-title"> <view class="list-view-h1">关键词记录:</view> </view>
-			<view class="tui-remarks-content">
-				<text class="tui-remarks-span" v-for="(label, labelIndex) in remarksParams.remarks" :key="labelIndex">
-					{{ label.label }}
-				</text>
-			</view>
+			<template v-if="labelsList.length>0">
+				<view class="list-view-title"> <view class="list-view-h1">标签记录:</view> </view>
+				<view class="tui-remarks-content">
+					<text class="tui-remarks-span" v-for="(label, labelIndex) in labelsList" :key="labelIndex">
+						{{ label.label }}
+					</text>
+				</view>
+			</template>
 			<view class="list-view-title" v-if="remarksParams.status">
 				<view class="list-view-h1"
 					>关联报备:<text>{{ remarksParams.reportText }}</text></view
@@ -76,22 +111,22 @@
 					<view class="txm" v-if="remarksParams.auditText">{{ remarksParams.auditText }}</view>
 				</view>
 			</view>
-			<view class="list-view-title">
+			<view class="list-view-title" v-if="remarksParams.pinceSensitve">
 				<view class="list-view-h1"
 					>价格敏感度:<text>{{ remarksParams.pinceSensitve | pinceFilters }}</text>
 				</view>
 			</view>
-			<view class="list-view-title">
+			<view class="list-view-title" v-if="remarksParams.satisfied">
 				<view class="list-view-h1"
 					>意向程度:<text>{{ remarksParams.satisfied | intenActionsFilters }}</text></view
 				>
 			</view>
-			<view class="list-view-title">
+			<view class="list-view-title" v-if="remarksParams.followup">
 				<view class="list-view-h1"
 					>跟进状态:<text>{{ remarksParams.followup | followupFilters }}</text></view
 				>
 			</view>
-			<view class="list-view-title">
+			<view class="list-view-title" v-if="remarksParams.extra">
 				<view class="list-view-h1"
 					>额外说明:<text>{{ remarksParams.extra ? remarksParams.extra : '无' }}</text></view
 				>
@@ -144,7 +179,8 @@ export default {
 			clubInfo: {},
 			userInfo: {},
 			categorys: '',
-			skeletonShow:true
+			skeletonShow:true,
+			labelsList:[]
 		}
 	},
 	onLoad(option) {
@@ -190,30 +226,62 @@ export default {
 				4: '随便看看'
 			}
 			return map[value]
+		},
+		sourceActionsFilters(value) {
+			// 客户来源
+			const map = {
+				0: '网站',
+				1: '小程序',
+				2: '公众号',
+				3: '小红书',
+				4: '微博',
+				5: '搜狐',
+				6: '其他'
+				
+			}
+			return map[value]
+		},
+		genderActionsFilters(value) {
+			// 客户性别
+			const map = {
+				0: '男',
+				1: '女'
+			}
+			return map[value]
+		},
+		additiveActionsFilters(value) {
+			// 加群情况
+			const map = {
+				0: '已加群',
+				1: '未加群'
+			}
+			return map[value]
 		}
 	},
 	methods: {
 		...mapMutations(['login']),
-		getUserClubRemarksDetail() {
-			//资料详情
-			this.UserService.getUserClubRemarksDetail({
-				remarksId: this.remarksId
-			})
-				.then(response => {
-					this.remarksParams = response.data
-					this.clubUserId = response.data.userId
-					this.getCulbInfo()
-					setTimeout(()=>{
-						this.skeletonShow = false
-					},500)
-				})
-				.catch(error => {
-					this.$util.msg(error.msg, 2000)
-				})
+		async getUserClubRemarksDetail() {
+			//备注详情
+			try{
+				const res = await this.UserService.getUserClubRemarksDetail({ remarksId: this.remarksId })
+				const data = res.data 
+				this.remarksParams = data
+				const remarks = data.remarks ? data.remarks :[]
+				const stateKeyword = data.stateKeyword ? data.stateKeyword :[]
+				const trendsKeyword = data.trendsKeyword ? data.trendsKeyword :[]
+				this.labelsList = [...remarks,...stateKeyword,...trendsKeyword]
+				this.clubUserId = res.data.userId
+				this.getCulbInfo(res.data.userId)
+				setTimeout(()=>{
+					this.skeletonShow = false
+				},500)
+			}catch(error){
+				this.$util.msg(error.msg, 2000)
+			}
 		},
-		getCulbInfo() {
+		getCulbInfo(userId) {
 			// 查询机构信息
-			this.UserService.OrganizationUpdateModifyInfo({ userId: this.clubUserId })
+			this.UserService.OrganizationUpdateModifyInfo({ userId: userId })
 				.then(response => {
 					this.clubInfo = response.data.club
 					this.userInfo = response.data.user

+ 238 - 0
pages/seller/remarks/mixins/addMixins.js

@@ -0,0 +1,238 @@
+import Vue from 'vue'
+const addMixins = {
+    data() {
+        return {
+            items: [
+                { name: '已沟通',value: '0',checked: false,},
+                { name: '联系不上',value: '1',checked: false}
+            ],
+            checkboItems:[
+                { name: '电话',value: '1',checked: false,},
+                { name: '微信',value: '2',checked: false}
+            ],
+            current: '',
+            priceFlagText: '',
+            priceActions: [
+                { name: '敏感', value: 1 },
+                { name: '适中', value: 2 },
+                { name: '不敏感', value: 3 },
+                { name: '不明确', value: 4 }
+            ],
+            intenFlagText: '',
+            intenActions: [
+                { name: '意向强烈', value: 1 },
+                { name: '意向中等', value: 2 },
+                { name: '意向平淡', value: 3 },
+                { name: '随便看看', value: 4 }
+            ],
+            followStateText: '',
+            stateActions: [
+                { name: '跟进中', value: 1 },
+                { name: '跟进完成', value: 2 },
+                { name: '已放弃', value: 3 },
+            ],
+            sourceStateText: '', // 客户来源
+            sourceActions: [
+                { name: '网站', value: 0 },
+                { name: '小程序', value: 1 },
+                { name: '公众号', value: 2 },
+                { name: '小红书', value: 3 },
+                { name: '微博', value: 4 },
+                { name: '搜狐', value: 5 },
+                { name: '其他', value: 6 }
+            ],
+            genderText: '', // 客户性别
+            genderActions: [
+                { name: '男', value: 0 },
+                { name: '女', value: 1 }
+            ],
+            customerAge: '', // 客户年龄
+            ageActions: [
+                { name: '20-30', value: 1 },
+                { name: '30-40', value: 2 },
+                { name: '40-50', value: 3 },
+                { name: '50-60', value: 4 },
+                { name: '60以上', value: 4 }
+            ],
+            additiveText: '', // 加群情况
+            additiveActions: [
+                { name: '已加群', value: 0 },
+                { name: '未加群', value: 1 }
+            ],
+            labelsList: [],
+            firstLabelList: [],
+            staticLabelsList: [{ // 静态标签
+                label: '',
+                isAssociation: false
+            }],
+            checkStaticLabelsIndex: 0, // 静态标签索引
+            staticLabelsActionList: [],// 静态标签联动搜索列表
+            trendsLabelsList: [{ // 动态标签
+                label: '',
+                isAssociation: false
+            }],
+            checkTrendsLabelsIndex: 0, // 动态标签索引
+            trendsLabelsActionList: [],// 动态标签联动搜索列表
+        }
+    },
+    computed: {
+
+    },
+    methods: {
+        // 切换沟通情况
+        radioChange(evt) {
+            for (let i = 0; i < this.items.length; i++) {
+                if (this.items[i].value === evt.detail.value) {
+                    this.current = i
+                    this.remarksParams.communicationSituation = evt.detail.value*1
+                    console.log('communicationSituation',this.remarksParams.communicationSituation)
+                    if(this.remarksParams.communicationSituation === 1){
+					    this.remarksParams.communicationMethods = ''
+						 console.log('communicationMethods',this.remarksParams.communicationMethods)
+                    }
+                    break
+                }
+            }
+            
+			
+        },
+        // 选择联系方式
+        checkboxChange(evnt){
+            let data  = evnt.detail.value
+            this.remarksParams.communicationMethods = data.join(',')
+            console.log('communicationMethods',this.remarksParams.communicationMethods)
+        },
+        bindPickerChange(type, e) {
+            //选择筛选条件
+            switch (type) {
+            case 1:
+                this.priceFlagText = this.priceActions[e.target.value].name
+                this.remarksParams.pinceSensitve = this.priceActions[e.target.value].value
+                break
+            case 2:
+                this.intenFlagText = this.intenActions[e.target.value].name
+                this.remarksParams.satisfied = this.intenActions[e.target.value].value
+                break
+            case 3:
+                this.followStateText = this.stateActions[e.target.value].name
+                this.remarksParams.followup = this.stateActions[e.target.value].value
+                break
+            case 4: // 客户来源
+                this.sourceStateText = this.sourceActions[e.target.value].name
+                this.remarksParams.customerSource = this.sourceActions[e.target.value].value
+                break
+            case 5: // 客户性别
+                this.genderText = this.genderActions[e.target.value].name
+                this.remarksParams.customerGender = this.genderActions[e.target.value].value
+                break
+            case 6: // 客户年龄
+                this.customerAge = this.ageActions[e.target.value].name
+                this.remarksParams.customerAge = this.ageActions[e.target.value].name
+                break
+            case 7: // 加群情况
+                this.additiveText = this.additiveActions[e.target.value].name
+                this.remarksParams.groupAddition = this.additiveActions[e.target.value].value
+                break
+            }
+        },
+        handleCheckedLabel(label, index) {
+            // 选择标签
+            label.isChecked = !label.isChecked
+            if (label.isChecked) {
+                if (!this.contains(this.firstLabelList, label.label)) {
+                    this.firstLabelList.push(label.label)
+                }
+            } else {
+                this.firstLabelList.splice(this.firstLabelList.indexOf(label.label), 1)
+            }
+            console.log('firstLabelList', this.firstLabelList)
+        },
+        // 标签联动搜索
+        async getCmremarkslist(index,value,type){
+            try{
+                const res = await this.UserService.getCmremarkslist({ remarks: value , type : type })
+                const data = res.data 
+                if(data && data.length > 0){
+                    if(type === 1){
+                        this.staticLabelsActionList = data
+                        this.staticLabelsList[index].isAssociation = true
+                    }else{
+                        this.trendsLabelsActionList = data
+                        this.trendsLabelsList[index].isAssociation = true
+                    }
+                }else{
+                    if(type === 1){
+                        this.staticLabelsActionList = []
+                        this.staticLabelsList[index].isAssociation = false
+                    }else{
+                        this.trendsLabelsActionList = []
+                        this.trendsLabelsList[index].isAssociation = false
+                    }
+                }
+            }catch(error){
+                console.log('=========>获取静态标签联想列表失败')
+            }
+        },
+        // 静态标签联想
+        handleStaticLabelsAction(index, event) {
+            this.staticLabelsActionList = []
+            this.checkStaticLabelsIndex = index
+            if (event.detail.value != '') {
+                this.getCmremarkslist(index,event.detail.value,1)
+            } else {
+                this.staticLabelsList[index].isAssociation = false
+            }
+        },
+		 //隐藏对应的联想弹窗
+        hideStaticLabelsAction(item, event) {
+            item.isAssociation = false
+        },
+        //选择静态标签
+        handleSelectStaticLabels(ass, item) {
+            item.isAssociation = false
+            item.label = ass
+        },
+        //添加静态标签
+        handleAddStaticLabels(item, index) {
+            let obj = { label: '', isAssociation: false }
+            item.isAssociation = false
+            this.staticLabelsList.push(obj)
+        },
+        //删除静态标签
+        handleDelStaticLabels(item, index) {
+            this.staticLabelsList.splice(index, 1)
+        },
+        // 动态标签联想
+        handleTrendsLabelsAction(index, event) {
+            this.trendsLabelsActionList = []
+            this.checkTrendsLabelsIndex = index
+            if (event.detail.value != '') {
+                this.getCmremarkslist(index,event.detail.value,0)
+            } else {
+                this.trendsLabelsList[index].isAssociation = false
+            }
+        },
+		 //隐藏对应的联想弹窗
+        hideTrendsLabelsAction(item, event) {
+            item.isAssociation = false
+        },
+        //选择动态标签
+        handleSelectTrendsLabels(ass, item) {
+            item.isAssociation = false
+            item.label = ass
+        },
+        //添加动态标签
+        handleAddTrendsLabels(item, index) {
+            let obj = { label: '', isAssociation: false }
+            item.isAssociation = false
+            this.trendsLabelsList.push(obj)
+        },
+        //删除动态标签
+        handleDelTrendsLabels(item, index) {
+            this.trendsLabelsList.splice(index, 1)
+        },
+		
+    }
+}
+
+export default addMixins

+ 84 - 20
pages/seller/remarks/record-details.vue

@@ -1,6 +1,20 @@
 <template>
 	<view class="container qualifications" :style="{ paddingBottom: isIphoneX ? '68rpx' : '0' }">
 		<view class="remarks-content">
+			<view class="list-view-title">
+				<view class="list-view-h1">
+					沟通情况:
+					<template v-if="remarksParams.communicationSituation === 0">
+						<text>已沟通</text>
+						<text v-if="remarksParams.communicationMethods === 1"> (电话) </text>
+						<text v-if="remarksParams.communicationMethods === 2"> (微信) </text>
+						<text v-if="remarksParams.communicationMethods ==='1,2' || remarksParams.communicationMethods ==='2,1'"> (电话,微信) </text>
+					</template>
+					<template v-else>
+						<text> 联系不上 </text>
+					</template>	
+				</view>
+			</view>
 			<view class="list-view-title">
 				<view class="list-view-h1"
 					>咨询人:<text>{{ remarksParams.questionMan }}</text></view
@@ -11,9 +25,28 @@
 					>咨询类别:{{ remarksParams.consultBack ? remarksParams.consultBack : '无' }}</view
 				>
 			</view>
-			<view class="list-view-title">
+			<view class="list-view-title" v-if="remarksParams.customerSource">
+				<view class="list-view-h1">
+					客户来源:
+					<text>{{ remarksParams.customerSource | sourceActionsFilters }}</text>
+				</view>
+			</view>
+			<view class="list-view-title" v-if="remarksParams.customerGender">
 				<view class="list-view-h1">
-					机构类型:<text>{{ remarksParams.clubType ? remarksParams.clubType : '无' }}</text>
+					客户性别:
+					<text>{{ remarksParams.customerGender | genderActionsFilters }}</text>
+				</view>
+			</view>
+			<view class="list-view-title" v-if="remarksParams.customerAge">
+				<view class="list-view-h1">
+					客户年龄:
+					<text>{{ remarksParams.customerAge }}</text>
+				</view>
+			</view>
+			<view class="list-view-title" v-if="remarksParams.groupAddition">
+				<view class="list-view-h1">
+					加群情况:
+					<text>{{ remarksParams.groupAddition | additiveActionsFilters }}</text>
 				</view>
 			</view>
 			<view class="list-view-title" v-if="remarksParams.productName"> <view class="list-view-h1">咨询商品:</view> </view>
@@ -26,12 +59,14 @@
 					</view>
 				</view>
 			</view>
-			<view class="list-view-title"> <view class="list-view-h1">关键词记录:</view> </view>
-			<view class="tui-remarks-content">
-				<text class="tui-remarks-span" v-for="(label, labelIndex) in remarksParams.remarks" :key="labelIndex">
-					{{ label.label }}
-				</text>
-			</view>
+			<template v-if="labelsList.length>0">
+				<view class="list-view-title"> <view class="list-view-h1">标签记录:</view> </view>
+				<view class="tui-remarks-content">
+					<text class="tui-remarks-span" v-for="(label, labelIndex) in labelsList" :key="labelIndex">
+						{{ label.label }}
+					</text>
+				</view>
+			</template>
 			<view class="list-view-title" v-if="remarksParams.status">
 				<view class="list-view-h1"
 					>关联报备:<text>{{ remarksParams.reportText }}</text></view
@@ -115,7 +150,8 @@ export default {
 			productActions: [],
 			remarksParams: {},
 			remarksId: 0,
-			categorys: '产品,二手,耗材'
+			categorys: '产品,二手,耗材',
+			labelsList:[]
 		}
 	},
 	onLoad(option) {
@@ -161,21 +197,49 @@ export default {
 				4: '随便看看'
 			}
 		 return map[value]
+		},
+		sourceActionsFilters(value) {
+			// 客户来源
+			const map = {
+				0: '网站',
+				1: '小程序',
+				2: '公众号',
+				3: '小红书',
+				4: '微博',
+				5: '搜狐',
+				6: '其他'
+				
+			}
+			return map[value]
+		},
+		genderActionsFilters(value) {
+			// 客户性别
+			const map = {
+				0: '男',
+				1: '女'
+			}
+			return map[value]
+		},
+		additiveActionsFilters(value) {
+			// 加群情况
+			const map = {
+				0: '已加群',
+				1: '未加群'
+			}
+			return map[value]
 		}
 	},
 	methods: {
 		...mapMutations(['login']),
-		getUserRemarksVisitDetail() {
-			//资料详情
-			this.UserService.getUserRemarksVisitDetail({
-				remarksId: this.remarksId
-			})
-				.then(response => {
-					this.remarksParams = response.data
-				})
-				.catch(error => {
-					this.$util.msg(error.msg, 2000)
-				})
+		async getUserRemarksVisitDetail() {
+			//备注详情
+			try{
+				const res = await this.UserService.getUserRemarksVisitDetail({ remarksId: this.remarksId })
+				this.remarksParams = res.data
+				this.labelsList = [...this.remarksParams.remarks,...this.remarksParams.stateKeyword,...this.remarksParams.trendsKeyword]
+			}catch(error){
+				this.$util.msg(error.msg, 2000)
+			}
 		},
 		previewImg(image, index) {
 			//顶部商品图片预览

+ 169 - 146
pages/seller/remarks/record-list.vue

@@ -18,8 +18,7 @@
 						<text class="iconfont icon-shanchu1" v-if="isShowClose" @click="delInputText()"></text>
 					</view>
 					<view class="search-screen" @click="showScreenDrawer">
-						<text class="iconfont icon-gengduo1"></text>
-						筛选
+						<text class="iconfont icon-gengduo1"></text> 筛选
 					</view>
 				</view>
 			</view>
@@ -31,7 +30,7 @@
 					<view class="top-right-btn" @click="handlerGoReportList">查看报备记录</view>
 				</view>
 			</view>
-		</view>	
+		</view>
 		<view class="remarks-content" :style="{ paddingBottom: isIphoneX ? '220rpx' : '148rpx' }">
 			<view :class="{ 'tui-order-list': scrollTop >= 0 }" class="clearfix">
 				<!-- 空白页 -->
@@ -45,30 +44,41 @@
 						class="tui-remarks-cell  tui-mtop clearfix"
 						v-for="(remark, index) in remarksList"
 						:key="index"
-						:class="{orange:remark.followup==1,blue:remark.followup==2,grey:remark.followup==3}"
+						:class="{
+							orange: remark.followup == 1,
+							blue: remark.followup == 2,
+							grey: remark.followup == 3
+						}"
 						@click.stop="details(remark.remarksId)"
 					>
 						<view class="tui-remarks-title">
 							<view class="tui-remarks-title-bot">
 								<view class="tui-remarks-text-view">
-									<view class="tui-remarks-text h"><text class="iconfont icon-bianji"></text>记录人:{{ remark.recordName }}</view>
+									<view class="tui-remarks-text h"
+										><text class="iconfont icon-bianji"></text>记录人:{{ remark.recordName }}</view
+									>
 									<view class="tui-remarks-text y" v-if="remark.followup">
-										<text :class="{orange:remark.followup==1,blue:remark.followup==2,grey:remark.followup==3}">
+										<text
+											:class="{
+												orange: remark.followup == 1,
+												blue: remark.followup == 2,
+												grey: remark.followup == 3
+											}"
+										>
 											{{ remark.followup | followupFilters }}
 										</text>
 									</view>
 								</view>
 								<view class="tui-remarks-text-view">
 									<view class="tui-remarks-text h" v-if="listQuery.manager >= 0">
-										<text class="iconfont icon-guanliyuan"></text>管理员:{{ remark.leaderName ? remark.leaderName : '' }}
+										<text class="iconfont icon-guanliyuan"></text>管理员:{{
+											remark.leaderName ? remark.leaderName : ''
+										}}
 									</view>
-									<view class="tui-remarks-text y">
-										{{ remark.addDate }}
-									</view
-									>
+									<view class="tui-remarks-text y"> {{ remark.addDate }} </view>
 								</view>
 							</view>
-						</view> 
+						</view>
 						<view class="tui-remarks-name">
 							<view class="tui-remarks-name-text h">
 								咨询人:{{ remark.questionMan ? remark.questionMan : '' }}
@@ -79,7 +89,7 @@
 						</view>
 						<view class="tui-remarks-name none" v-if="remark.satisfied">
 							<view class="tui-remarks-name-text h">
-								意向程度:<text class="red">{{ remark.satisfied | intenActionsFilters }}</text> 
+								意向程度:<text class="red">{{ remark.satisfied | intenActionsFilters }}</text>
 							</view>
 							<view class="tui-remarks-name-text y" v-if="remark.status">
 								报备状态:<text
@@ -93,11 +103,18 @@
 							</view>
 						</view>
 						<view class="tui-remarks-content">
-							<text class="tui-remarks-span" v-for="(label, labelIndex) in remark.remarks" :key="labelIndex">
+							<text
+								class="tui-remarks-span"
+								v-for="(label, labelIndex) in remark.remarks"
+								:key="labelIndex"
+							>
 								{{ label.label }}
 							</text>
 						</view>
-						<view class="tui-remarks-button" v-if="remark.createServiceProviderId === listQuery.serviceProviderId">
+						<view
+							class="tui-remarks-button"
+							v-if="remark.createServiceProviderId === listQuery.serviceProviderId"
+						>
 							<view class="btn edit" @click.stop="handEditRemark(remark.remarksId)">修改</view>
 							<view class="btn del" @click.stop="deleteRemark(remark.remarksId)">删除</view>
 						</view>
@@ -114,9 +131,7 @@
 			<view class="tui-popup-box clearfix">
 				<view class="tui-right-flex tui-popup-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
 					<view class="tui-flex-1">
-						<view class="tui-button cancel" @click="handleShowFereepopup"
-							>添加记录</view
-						>
+						<view class="tui-button cancel" @click="handleShowFereepopup">添加记录</view>
 						<view class="tui-button confirm" @click="handleAddRecord">新增咨询人</view>
 					</view>
 					<view class="tui-flex-1">
@@ -126,20 +141,19 @@
 			</view>
 		</tui-bottom-popup>
 		<!-- 筛选抽屉 -->
-		<cm-screenDrawer ref="screendrawer"
-						:popupType="2"
-						:rightDrawer="isScreenDrawer"
-						@handSearchConfirm="handSearchConfirmData">
-		</cm-screenDrawer>
-		</cm-clubpopup>
+		<cm-screenDrawer
+			ref="screendrawer"
+			:popupType="2"
+			:rightDrawer="isScreenDrawer"
+			@handSearchConfirm="handSearchConfirmData"
+		/>
 		<!-- 咨询人列表弹窗 -->
 		<cm-refereepopup
 			ref="cmrefereepopup"
 			v-if="isClubConsultShow"
 			:show="isClubConsultShow"
 			@handleChoiceaConsult="handleChoiceaConsultData"
-		>
-		</cm-refereepopup>
+		/>
 		<!-- 弹窗提示 -->
 		<tui-modal
 			:show="modal"
@@ -151,8 +165,8 @@
 			:size="32"
 			shape="circle"
 			:maskClosable="false"
-		>
-		</tui-modal>
+		/>
+
 		<!-- 操作弹窗 -->
 		<cm-clubmodal
 			ref="clubModal"
@@ -160,8 +174,7 @@
 			:show="isClubModalShow"
 			:modalType="2"
 			@handleChoiceaText="handleChoiceaTextData"
-		>
-		</cm-clubmodal>
+		/>
 	</view>
 </template>
 <script>
@@ -171,15 +184,15 @@ import cmClubmodal from '../components/cm-clubmodal'
 import cmScreenDrawer from '../components/cm-screen-drawer'
 
 const defaultListQuery = {
-	startAddTime:'',
-	endAddTime:'',
-	consult:'',
+	startAddTime: '',
+	endAddTime: '',
+	consult: '',
 	pinceSensitve: 0, //价格敏感度
 	satisfied: 0, // 意向程度
 	followup: 0, // 跟进状态
-	leaderId:0,
-	groupId:0,
-	manager:0,
+	leaderId: 0,
+	groupId: 0,
+	manager: 0,
 	serviceProviderId: 0,
 	pageNum: 1,
 	pageSize: 10
@@ -227,14 +240,12 @@ export default {
 			questionMan: '',
 			questionManId: '',
 			handleRemarksId: 0,
-			isClubConsultShow:false,
+			isClubConsultShow: false,
 			isClubModalShow: false,
-			isScreenDrawer:false,
+			isScreenDrawer: false
 		}
 	},
-	onLoad(option) {
-		
-	},
+	onLoad(option) {},
 	filters: {
 		statusFilters(value) {
 			// 订单来源
@@ -251,28 +262,30 @@ export default {
 			let number = Number(value).toFixed(2)
 			return number
 		},
-		followupFilters(value) {// 订单来源
-		    const map = {
-		        1: '跟进中',
-		        2: '跟进完成',
-		        3: '已放弃',
-		    }
-		    return map[value]
-		},
-		intenActionsFilters(value) {// 意向
-		    // 意向
-		    if (value) {
-		    	const map = {
-		    		1: '意向强烈',
-		    		2: '意向一般',
-		    		3: '意向平淡',
-		    		4: '随便看看'
-		    	}
-		    	return map[value]
-		    } else {
-		    	return ''
-		    }
+		followupFilters(value) {
+			// 订单来源
+			const map = {
+				1: '跟进中',
+				2: '跟进完成',
+				3: '已放弃'
+			}
+			return map[value]
 		},
+		intenActionsFilters(value) {
+			// 意向
+			// 意向
+			if (value) {
+				const map = {
+					1: '意向强烈',
+					2: '意向一般',
+					3: '意向平淡',
+					4: '随便看看'
+				}
+				return map[value]
+			} else {
+				return ''
+			}
+		}
 	},
 	computed: {
 		...mapState(['hasLogin', 'userInfo'])
@@ -357,11 +370,11 @@ export default {
 		},
 		handEditRemark(remarksId) {
 			//跳转修改画像
-			this.$api.navigateTo(`/pages/seller/remarks/add-record?type=edit&remarksId=${remarksId}&questionMan=${
-					this.questionMan
-				}`)
+			this.$api.navigateTo(
+				`/pages/seller/remarks/add-record?type=edit&remarksId=${remarksId}&questionMan=${this.questionMan}`
+			)
 		},
-		handSearchConfirmData(data){
+		handSearchConfirmData(data) {
 			//确定筛选
 			this.listQuery.startAddTime = data.startAddTime
 			this.listQuery.endAddTime = data.endAddTime
@@ -379,40 +392,50 @@ export default {
 			//跳转选择咨询人
 			this.$api.navigateTo('/pages/seller/remarks/customer-list')
 		},
-		handleChoiceaConsultData(data){// 选择咨询人添加记录
+		handleChoiceaConsultData(data) {
+			// 选择咨询人添加记录
 			//跳转添加记录
-			this.$api.navigateTo(`/pages/seller/remarks/add-record?type=add&questionManId=${data.questionManId}&questionMan=${
+			this.$api.navigateTo(
+				`/pages/seller/remarks/add-record?type=add&questionManId=${data.questionManId}&questionMan=${
 					data.questionMan
-				}`)
+				}`
+			)
 		},
-		handleAddRecord() {// 新增咨询人显示弹框
+		handleAddRecord() {
+			// 新增咨询人显示弹框
 			this.isClubModalShow = true
 		},
-		handleShowFereepopup(){// 显示咨询人弹窗
+		handleShowFereepopup() {
+			// 显示咨询人弹窗
 			this.isClubConsultShow = true
 		},
-		handleChoiceaTextData(data) {// 新增咨询人监听时间
-			console.log('data',data)
+		handleChoiceaTextData(data) {
+			// 新增咨询人监听时间
+			console.log('data', data)
 			this.handleSaveVisitor(data)
 		},
-		handleSaveVisitor(data) {
+		async handleSaveVisitor(name) {
 			// 添加咨询人
+			try {
+				let params = { name: name, serviceProviderId: this.listQuery.serviceProviderId }
+				const res = await this.UserService.getUserClubVisitorSave(params)
+				const data = res.data
+				setTimeout(() => {
+					this.$api.navigateTo(
+						`/pages/seller/remarks/add-record?questionManId=${data.questionManId}&questionMan=${
+							data.questionMan
+						}&remarksId=${data.remarksId}`
+					)
+				}, 1000)
+			} catch (error) {
+				console.log('=======>添加咨询人失败~')
+			}
 			this.UserService.getUserClubVisitorSave({
 				name: data,
 				serviceProviderId: this.listQuery.serviceProviderId
 			})
-				.then(response => {
-					setTimeout(() => {
-						this.$api.navigateTo(
-							`/pages/seller/remarks/add-record?questionManId=${response.data.questionManId}&questionMan=${
-								response.data.questionMan
-							}`
-						)
-					}, 1000)
-				})
-				.catch(error => {
-					console.log('=======>添加咨询人失败~')
-				})
+				.then(response => {})
+				.catch(error => {})
 		},
 		handleClick(e) {
 			//取消收藏
@@ -436,7 +459,7 @@ export default {
 					this.$util.msg(error.msg, 2000)
 				})
 		},
-		showScreenDrawer(){
+		showScreenDrawer() {
 			//显示筛选抽屉
 			this.isScreenDrawer = true
 		},
@@ -463,7 +486,7 @@ export default {
 		details(remarksId) {
 			this.$api.navigateTo(`/pages/seller/remarks/record-details?remarksId=${remarksId}`)
 		},
-		handlerGoReportList(){
+		handlerGoReportList() {
 			this.$api.navigateTo(`/pages/seller/remarks/report-visitor-list`)
 		}
 	},
@@ -483,7 +506,7 @@ export default {
 			uni.stopPullDownRefresh()
 		}, 200)
 	},
-	
+
 	onShow() {
 		this.init()
 	}
@@ -498,10 +521,10 @@ page {
 .empty-container {
 	z-index: 99;
 }
-.container-fiexd-top{
+.container-fiexd-top {
 	width: 100%;
 	height: 208rpx;
-	background: #F5F5F5;
+	background: #f5f5f5;
 	box-sizing: border-box;
 	position: fixed;
 	top: 0;
@@ -569,31 +592,31 @@ page {
 			}
 		}
 	}
-	.fiexd-top-title{
+	.fiexd-top-title {
 		width: 100%;
 		height: 96rpx;
 		box-sizing: border-box;
 		padding: 24rpx;
-		.top-left{
+		.top-left {
 			float: left;
 			line-height: 48rpx;
 			font-size: 26rpx;
 			color: #666666;
-			text{
-				color: #FF5B00;
+			text {
+				color: #ff5b00;
 			}
 		}
-		.top-right{
+		.top-right {
 			float: right;
-			.top-right-btn{
+			.top-right-btn {
 				height: 48rpx;
 				padding: 0 20rpx;
 				box-sizing: border-box;
-				border: 1px solid #FF5B00;
+				border: 1px solid #ff5b00;
 				font-size: 26rpx;
 				text-align: center;
 				line-height: 48rpx;
-				color: #FF5B00;
+				color: #ff5b00;
 				border-radius: 24rpx;
 			}
 		}
@@ -616,17 +639,17 @@ page {
 		width: 100%;
 		border-radius: 16rpx;
 		margin-bottom: 24rpx;
-		background: #FFFFFF;
+		background: #ffffff;
 		box-sizing: border-box;
-		padding:0 24rpx 24rpx 24rpx;
-		&.orange{
-			background: #FFFFFF linear-gradient(180deg, #FFEDE5 0%, rgba(255, 255, 255, 0) 50%);
+		padding: 0 24rpx 24rpx 24rpx;
+		&.orange {
+			background: #ffffff linear-gradient(180deg, #ffede5 0%, rgba(255, 255, 255, 0) 50%);
 		}
-		&.blue{
-			background: #FFFFFF linear-gradient(180deg, #DEEFFF 0%, rgba(255, 255, 255, 0) 50%);
+		&.blue {
+			background: #ffffff linear-gradient(180deg, #deefff 0%, rgba(255, 255, 255, 0) 50%);
 		}
-		&.grey{
-			background: #FFFFFF linear-gradient(180deg, #ECECEC 0%, rgba(255, 255, 255, 0) 50%);
+		&.grey {
+			background: #ffffff linear-gradient(180deg, #ececec 0%, rgba(255, 255, 255, 0) 50%);
 			color: #999999;
 		}
 		.tui-remarks-title {
@@ -660,33 +683,33 @@ page {
 						font-size: $font-size-26;
 						color: #999999;
 						text-align: right;
-						.orange{
+						.orange {
 							display: inline-block;
 							padding: 0 15rpx;
 							border-radius: 24rpx;
 							line-height: 48rpx;
 							font-size: 24rpx;
-							background-color: #FF5B00;
-							color: #FFFFFF;
+							background-color: #ff5b00;
+							color: #ffffff;
 							text-align: center;
 						}
-						.blue{
+						.blue {
 							display: inline-block;
 							padding: 0 15rpx;
 							border-radius: 24rpx;
 							line-height: 48rpx;
 							font-size: 24rpx;
-							background-color: #1890F9;
-							color: #FFFFFF;
+							background-color: #1890f9;
+							color: #ffffff;
 							text-align: center;
 						}
-						.grey{
+						.grey {
 							display: inline-block;
 							padding: 0 15rpx;
 							border-radius: 24rpx;
 							line-height: 48rpx;
 							font-size: 24rpx;
-							background-color: #E1E1E1;
+							background-color: #e1e1e1;
 							color: #999999;
 							text-align: center;
 						}
@@ -696,7 +719,7 @@ page {
 			.tui-remarks-title-bot {
 				width: 100%;
 				height: auto;
-				.tui-remarks-text-view{
+				.tui-remarks-text-view {
 					width: 100%;
 					height: 48rpx;
 					.tui-remarks-text {
@@ -714,39 +737,39 @@ page {
 						-webkit-line-clamp: 1;
 						line-clamp: 1;
 						-webkit-box-orient: vertical;
-						&.a{
+						&.a {
 							width: 100%;
 						}
 						&.y {
 							text-align: right;
-							.orange{
+							.orange {
 								display: inline-block;
 								padding: 0 15rpx;
 								border-radius: 24rpx;
 								line-height: 48rpx;
 								font-size: 24rpx;
-								background-color: #FF5B00;
-								color: #FFFFFF;
+								background-color: #ff5b00;
+								color: #ffffff;
 								text-align: center;
 							}
-							.blue{
+							.blue {
 								display: inline-block;
 								padding: 0 15rpx;
 								border-radius: 24rpx;
 								line-height: 48rpx;
 								font-size: 24rpx;
-								background-color: #1890F9;
-								color: #FFFFFF;
+								background-color: #1890f9;
+								color: #ffffff;
 								text-align: center;
 							}
-							.grey{
+							.grey {
 								display: inline-block;
 								padding: 0 15rpx;
 								border-radius: 24rpx;
 								line-height: 48rpx;
 								font-size: 24rpx;
-								background-color: #E1E1E1;
-								color: #FFFFFF;
+								background-color: #e1e1e1;
+								color: #ffffff;
 								text-align: center;
 							}
 						}
@@ -764,7 +787,7 @@ page {
 			margin-bottom: 10rpx;
 			margin-top: 20rpx;
 			float: left;
-			&.none{
+			&.none {
 				margin-top: 0;
 				margin-bottom: 20rpx;
 			}
@@ -781,10 +804,10 @@ page {
 				-webkit-line-clamp: 1;
 				line-clamp: 1;
 				-webkit-box-orient: vertical;
-				.red{
-					color: #F94B4B;
+				.red {
+					color: #f94b4b;
 				}
-				&.a{
+				&.a {
 					width: 100%;
 				}
 				&.h {
@@ -794,14 +817,14 @@ page {
 				&.y {
 					width: 60%;
 					padding-left: 24rpx;
-					.reviewed{
-						color: #FF5B00;
+					.reviewed {
+						color: #ff5b00;
 					}
-					.approved{
-						color: #0DB26D;
+					.approved {
+						color: #0db26d;
 					}
-					.failed{
-						color: #F94B4B;
+					.failed {
+						color: #f94b4b;
 					}
 				}
 			}
@@ -814,7 +837,7 @@ page {
 				line-height: 48rpx;
 				text-align: center;
 				padding: 0 20rpx;
-				background-color: #F7F7F7;
+				background-color: #f7f7f7;
 				font-size: $font-size-26;
 				color: #666666;
 				border-radius: 25rpx;
@@ -829,7 +852,7 @@ page {
 		.tui-remarks-button {
 			width: 100%;
 			height: 68rpx;
-			border-top: 1px solid #E1E1E1;
+			border-top: 1px solid #e1e1e1;
 			padding-top: 20rpx;
 			.btn {
 				width: 50%;
@@ -839,12 +862,12 @@ page {
 				font-size: $font-size-34;
 				float: left;
 				font-weight: bold;
-				&.edit{
-					color: #1890F9;
-					border-right: 1px solid #E1E1E1;
+				&.edit {
+					color: #1890f9;
+					border-right: 1px solid #e1e1e1;
 				}
-				&.del{
-					color: #F94B4B;
+				&.del {
+					color: #f94b4b;
 				}
 			}
 		}
@@ -880,7 +903,7 @@ page {
 			box-sizing: border-box;
 			&.cancel {
 				background: #ffe6dc;
-				color: #FF5B00;
+				color: #ff5b00;
 			}
 			&.disabled {
 				background: #e1e1e1;
@@ -891,12 +914,12 @@ page {
 				color: #ffffff;
 			}
 		}
-		.tui-button-text{
+		.tui-button-text {
 			width: 600rpx;
 			height: 48rpx;
 			line-height: 48rpx;
 			text-align: center;
-			color: #FF5B00;
+			color: #ff5b00;
 			font-size: $font-size-26;
 			margin: 0 auto;
 			margin-top: 15rpx;

+ 2 - 2
pages/supplier/user/my-shop.vue

@@ -405,8 +405,8 @@
 				</view>
 			</view>
 		</template>
-		<!-- ross弹窗 -->
-		<cmRossPopup v-if="showRossHtml" :popupShow="showRossHtml"></cmRossPopup>
+        <!-- 供应商收集用户信息弹窗 -->
+        <cmRossPopup v-if="showRossHtml" :popupShow="showRossHtml" :advertisement="advertisement" />
 		<!-- 侧边 -->
 		<scroll-top :isScrollTop="isScrollTop" :bottom="200"></scroll-top>
 	</view>

+ 20 - 22
pages/tabBar/home/index.vue

@@ -49,7 +49,7 @@
 			:beanNumber="beanNumber"
 			@cancel="handleBeanlClick"
 		></activityBean>
-        <cm-seller-modal :sellerUserId="sellerUserId"></cm-seller-modal>
+        <cm-seller-modal :suid="suid"></cm-seller-modal>
 	</view>
 </template>
 
@@ -127,30 +127,12 @@ export default {
 			couponEntry: 2,
 			autoplay: true,
             isScroll: false,
-            sellerUserId: 0, // 协销id
+            suid: 0, // 协销id
+            options: {}, // 分享数据
 		}
 	},
 	onLoad(option) {
-        console.log('options', option)
-        if(!uni.getStorageSync('sellerUserId')) {
-            uni.setStorageSync('sellerUserId', option.sellerUserId || 0)
-        }
-    },
-    onShow() {
-        if (!uni.getStorageSync('spUserId')) {
-            this.sellerUserId = uni.getStorageSync('sellerUserId')
-        } else {
-            if (uni.getStorageSync('spUserId') === uni.getStorageSync('sellerUserId')) {
-                this.sellerUserId = uni.getStorageSync('sellerUserId')
-            } else {
-                uni.setStorageSync('sellerUserId', 0)
-                this.sellerUserId = 0
-            }
-        }
-        if (this.userInfo.userIdentity === 1) {
-            this.sellerUserId = 0
-            uni.setStorageSync('sellerUserId', 0)
-        }
+        this.options = option
     },
     computed: {
         ...mapState(['hasLogin', 'userInfo'])
@@ -192,6 +174,22 @@ export default {
 	onShow() {
 		this.autoplay = true
 		this.GetWxAuthorize()
+		const suid = this.options.suid ? this.options.suid : uni.getStorageSync('suid') * 1 ? uni.getStorageSync('suid') * 1 : 0 // 协销userId
+		const spId = this.options.spId ? this.options.spId : uni.getStorageSync('spId') * 1 ? uni.getStorageSync('spId') * 1 : 0 // 协销id
+		const isShare = this.options.type == 4 ? true : false //是否从分享页进入
+		if ((isShare || uni.getStorageSync('suid') * 1 > 0) && this.userInfo.userIdentity !== 1) { // 分享进入 且 用户非协销
+		    if (!uni.getStorageSync('spUserId') || (uni.getStorageSync('spUserId') * 1 === uni.getStorageSync('suid') * 1)) {// 如果未分配或者分配相同
+		        this.suid = suid
+		        uni.setStorageSync('suid', suid)
+		        uni.setStorageSync('spId', spId)
+		    } else {
+		        uni.setStorageSync('suid', 0)
+		        this.suid = 0
+		        uni.setStorageSync('spId', 0)
+		    }
+		    
+		}
+		console.log(this.suid, "uni.getStorageSync('spId')", uni.getStorageSync('spId'))
 	},
 	onHide() {
 		this.autoplay = false

+ 1 - 1
pages/user/pay/card-order.vue

@@ -300,7 +300,7 @@ export default {
 					this.balanceAmount = this.obligation - this.payAmount // 计算剩余支付金额
 					// 支付方式配置
 					if(data.onlinePayWays){
-						this.checkPayMode(data.onlinePayWays)
+						this.checkPayMode(data.onlinePayWays,data.weChatFlag)
 					}
 					setTimeout(() => {
 						this.skeletonShow = false

+ 6 - 3
pages/user/pay/mixins/cardMixins.js

@@ -72,11 +72,15 @@ const cardMixins = {
                 break
             }
         },
-        checkPayMode(range) {
+        checkPayMode(range,weChatFlag) {
             // 校验支付模式
             // test range = '4'
             // 1微信 2支付宝 3个人网银 4企业网银 5快捷支付
-            this.weChatFlag = range.indexOf('1') > -1
+            if(weChatFlag === '2'){
+                this.weChatFlag =  false
+            }else{
+                this.weChatFlag = range.indexOf('1') > -1
+            }
             this.B2BpayFlag = range.indexOf('4') > -1
             this.QuickPayFlag = range.indexOf('5') > -1
             // 设置默认支付方式
@@ -85,7 +89,6 @@ const cardMixins = {
             }else{
                 this.tabCurrentIndex = this.weChatFlag ? 0 : this.B2BpayFlag ? 1 : 2
             }
-            
             this.tabClick(this.tabCurrentIndex)
         }
     }

+ 1 - 1
services/config.env.js

@@ -6,7 +6,7 @@ if(process.env.NODE_ENV === 'development'){
     // URL_CONFIG = 'http://192.168.2.102:18002' //志国联调地址
     // URL_CONFIG = 'http://192.168.2.103:18002'    //陈凯联调地址
     URL_CONFIG = 'https://core-b.caimei365.com'
-    // URL_CONFIG = 'https://core.caimei365.com'  
+    // URL_CONFIG = 'https://core.caimei365.com'   
 }else{
     // 生产环境
     // URL_CONFIG = 'https://core-b.caimei365.com'

+ 46 - 3
services/user.service.js

@@ -543,6 +543,39 @@ export default class UserService {
 	        isLoading: false
 	    })
     }
+    /**
+	 *@获取有限展示标签;
+	 *@param	
+	 */
+    getPriorKeyword (data = {}) {
+	    return this.AjaxService.get({
+	        url:'/user/club/remarks/getPriorKeyword',
+	        data,
+	        isLoading: false
+	    })
+    }
+    /**
+	 *@查询机构历史填写信息;
+	 *@param	
+	 */
+    getHistoryInfo (data = {}) {
+	    return this.AjaxService.get({
+	        url:'/user/club/remarks/getHistoryInfo',
+	        data,
+	        isLoading: false
+	    })
+    }
+    /**
+	 *@机构画像获取用户需求;
+	 *@param	
+	 */
+    getCustomDemand (data = {}) {
+	    return this.AjaxService.get({
+	        url:'/user/club/getCustomDemand',
+	        data,
+	        isLoading: false
+	    })
+    }
     /**
 	 *@获取协销组长列表
 	 */
@@ -876,6 +909,16 @@ export default class UserService {
 	        isLoading: false,
 	    }) 
     }
+    /**
+	 *@获取供应商广告弹窗信息
+	 */
+    getUserPopUpInfo(data = {}) {
+	    return this.AjaxService.get({
+	        url: '/user/information/getPopUpInfo',
+	        data,
+	        isLoading: false,
+	    }) 
+    }
     /**
 	 *@插入填写咨询人基本信息
 	 *@param consultName:页面类型
@@ -893,9 +936,9 @@ export default class UserService {
     /**
 	 *@查看访问者是否浏览过roos相关页面
 	 */
-    userInformationVisitRoos(data = {}) {
+    getShopAdvert(data = {}) {
 	    return this.AjaxService.get({
-	        url: '/user/information/visitRoos',
+	        url: '/user/information/getShopAdvert',
 	        data,
 	        isLoading: false,
 	    }) 
@@ -951,7 +994,7 @@ export default class UserService {
 	        isLoading: false ,
 	    }) 
     } 
-	/**
+    /**
      * @param 供应商落地页  
      */
     supplierLoading(data = {}) {

+ 31 - 33
store/index.js

@@ -25,7 +25,7 @@ const store = new Vuex.Store({
         isLoginType: 0,
         isLoginProductId: 0,
         isManage: false,// 是否是管理员或者小组长
-        isRossShow:false // 是否显示ross广告图
+        shopAdvert:[] // 供应商广告图列表
     },
     mutations: {
         login(state, provider) { //用户身份 1、协销 2、资质机构 3、供应商 4.个人机构
@@ -83,32 +83,31 @@ const store = new Vuex.Store({
             })
         },
         async updateNoticeNum(state) { // 更新通知消息数量
-            const userInfo = await caimeiApi.getStorage()
-            const commonId = userInfo.clubId ? userInfo.clubId : 0
-            getUserService.getAuthClubCount({ commonId: commonId })
-                .then(response => {
-                    state.noticeNum = response.data.count
-                    if (state.noticeNum >= 100) {
-                        uni.setTabBarBadge({
-                            index: 2,
-                            text: '99+'
-                        })
-                    } else if (state.noticeNum > 0) {
-                        uni.setTabBarBadge({
-                            index: 2,
-                            text: String(state.noticeNum)
-                        })
-                    } else {
-                        uni.removeTabBarBadge({
-                            index: 2,
-                        })
-                    }
-                })
-                .catch(error => {
-                    uni.removeTabBarBadge({
-                        index: 2,
-                    })
+            try{
+                const userInfo = await caimeiApi.getStorage()
+                const commonId = userInfo.clubId ? userInfo.clubId : 0
+                const res = await getUserService.getAuthClubCount({ commonId: commonId })
+                state.noticeNum = res.data.count
+                if (state.noticeNum >= 100) {
+				    uni.setTabBarBadge({
+				        index: 2,
+				        text: '99+'
+				    })
+                } else if (state.noticeNum > 0) {
+				    uni.setTabBarBadge({
+				        index: 2,
+				        text: String(state.noticeNum)
+				    })
+                } else {
+				    uni.removeTabBarBadge({
+				        index: 2,
+				    })
+                }
+            }catch(error){
+                uni.removeTabBarBadge({
+				    index: 2,
                 })
+            }
         },
         // async updateSellerNoticeNum(state) { // 更新协销通知消息数量
         //     const userInfo = await caimeiApi.getStorage()
@@ -143,13 +142,12 @@ const store = new Vuex.Store({
         async updateRossShow(state){
             const USER_EVEN = await caimeiApi.getStorage()
             if(USER_EVEN.userIdentity === 1) { return }
-            getUserService.userInformationVisitRoos({ userId: USER_EVEN.userId ? USER_EVEN.userId : 0 })
-			    .then(response => {
-                    state.isRossShow = response.data
-			    })
-			    .catch(error => {
-                    console.log(error)
-			    })
+            try{
+                const res = await getUserService.getShopAdvert({ userId: USER_EVEN.userId ? USER_EVEN.userId : 0 })
+                state.shopAdvert = res.data
+            }catch(error){
+				 console.log(error)
+            }
         },
         updateAllNum(state, num) {
             if (num >= 100) {

+ 72 - 54
utils/cmSrsMixins.js

@@ -1,6 +1,6 @@
 // 统计Ross 用户 
 import Vue from 'vue'
-import { includeList , roosConfig } from './router.config.js' // 配置信息
+import { includeList } from './router.config.js' // 配置信息
 // 参数
 const defaultParams = {
     accessClient: 1, // 来源 0 网站 1 小程序
@@ -16,90 +16,108 @@ const defaultParams = {
 const cmSrsMixins = {
     data() {
         return {
-            handleProsId: 0,
-            handleShopId: 0,
+            handleProsId: '',
+            handleShopId: '',
             handleProsKey: '',
             handleShopKey: '',
             showRossHtml: false,
-            isDisabled: true
+            isDisabled: true,
+            advertisement:{},// 弹窗广告信息
+            popUpParams: {
+                shopId: '',
+                productId: '',
+                infoId: '',
+                keyword: ''
+            },
         }
     },
     methods: {
         checkedIsRossSet() {
-            if (roosConfig.productIdList.includes(this.handleProsId * 1) ||
-				roosConfig.shopIds.includes(this.handleShopId * 1) ||
-				roosConfig.keyWords.includes(this.handleProsKey) ||
-				roosConfig.shopKeyWords.includes(this.handleShopKey)
-            ) {
+            if (this.handleProsId  || this.handleShopId  || this.handleProsKey || this.handleShopKey) {
+                this.popUpParams.shopId = this.handleShopId
+                this.popUpParams.productId = this.handleProsId
+                this.popUpParams.keyword = this.handleProsKey ? this.handleProsKey : '' || this.handleShopKey ? this.handleShopKey : ''
                 uni.setStorageSync('behaviorType', 2)
                 this.setingSysParams()
                 if (!this.hasLogin) {
                     this.userInformationIsClick()
                 }
-            }else{
+            } else {
                 this.setingSysParams()
             }
         },
         // 接口参数设置
-        async setingSysParams(){
-		    const sysParams = Object.assign({}, defaultParams)
-		    const userSync = uni.getStorageSync('userInfo')
+        async setingSysParams() {
+            const sysParams = Object.assign({}, defaultParams)
+            const userSync = uni.getStorageSync('userInfo')
             const route = this.getPath()
-		    const pageData = this.isIncludeType(route.path)
-		    // 协销不记录
-		    if (userSync.userIdentity === 1) return
-		    // 参数设置
-		    sysParams.userId = userSync.userId ? userSync.userId : 0
-		    sysParams.pagePath = route.fullPath
-		    sysParams.pageType = pageData ? pageData.pageType : ''
-		    sysParams.behaviorType = uni.getStorageSync('behaviorType') ? uni.getStorageSync('behaviorType') : 1
-		    // 根据path获取不同的参数
+            const pageData = this.isIncludeType(route.path)
+            // 协销不记录
+            if (userSync.userIdentity === 1) return
+            // 参数设置
+            sysParams.userId = userSync.userId ? userSync.userId : 0
+            sysParams.pagePath = route.fullPath
+            sysParams.pageType = pageData ? pageData.pageType : ''
+            sysParams.behaviorType = uni.getStorageSync('behaviorType') ? uni.getStorageSync('behaviorType') : 1
+            // 根据path获取不同的参数
             if (route.path === '/pages/supplier/user/my-shop') {
-			    sysParams.shopId = route.query.shopId ? route.query.shopId : 0
-            } 
+                sysParams.shopId = route.query.shopId ? route.query.shopId : 0
+            }
             if (route.path === '/pages/goods/product') {
-			    sysParams.productId = route.query.id ? route.query.id : 0
-			    sysParams.pageLabel = uni.getStorageSync('productLabel')
+                sysParams.productId = route.query.id ? route.query.id : 0
+                sysParams.pageLabel = uni.getStorageSync('productLabel')
             } else {
-			    sysParams.pageLabel = uni.getStorageSync('pageLabel') ? uni.getStorageSync('pageLabel') : pageData.pageLabel
+                sysParams.pageLabel = uni.getStorageSync('pageLabel') ? uni.getStorageSync('pageLabel') :
+                    pageData.pageLabel
             }
-		    console.log('记录路径:', sysParams.pagePath, '标签:', sysParams.pageLabel)
-		    // 统计接口调用
-		    this.userRecordStatistics(sysParams)
-		    console.log('---用户行为轨迹记录成功---')
+            console.log('记录路径:', sysParams.pagePath, '标签:', sysParams.pageLabel)
+            // 统计接口调用
+            this.userRecordStatistics(sysParams)
+            console.log('---用户行为轨迹记录成功---')
         },
-        userRecordStatistics(params){
+        userRecordStatistics(params) {
             // 上送
             this.UserService.userRecordStatistics(params)
-			    .then(response => {
-			        console.log('---用户行为轨迹记录成功---')
+                .then(response => {
+                    console.log('---用户行为轨迹记录成功---')
                     uni.removeStorageSync('pageLabel')
                     uni.removeStorageSync('behaviorType')
-			    })
-			    .catch(error => {
-                    console.log('---用户行为轨迹记录失败---')
-			    })
-        },
-        userInformationIsClick() {
-            // 查看用户是否有过弹框游客当天是否有过弹框
-            this.UserService.userInformationIsClick()
-                .then(response => {
-                    if (response.data) {
-                        setTimeout(() => {
-                            this.showRossHtml = true
-                        }, 5000)
-                    }
                 })
                 .catch(error => {
-                    console.log('查询失败~')
+                    console.log('---用户行为轨迹记录失败---')
                 })
         },
-        isIncludeType(url){
+        async userInformationIsClick() {
+            // 查看用户是否有过弹框游客当天是否有过弹框
+            try {
+                const res = await this.UserService.userInformationIsClick(this.popUpParams)
+                if (res.data) {
+                    this.getUserPopUpInfo()
+                    setTimeout(() => {
+                        this.showRossHtml = true
+                    }, 5000)
+                }
+            } catch (error) {
+                console.log('查询失败~')
+            }
+        },
+        async getUserPopUpInfo() {
+		    // 获取供应商广告弹窗信息
+		    try {
+		        const res = await this.UserService.getUserPopUpInfo(this.popUpParams)
+                const data = res.data
+		        this.advertisement = data
+                this.consultParams.shopId = data.shopId
+		    } catch (error) {
+		        console.log('获取失败~')
+		    }
+        },
+        isIncludeType(url) {
             // 校验返回页面类型
-		    if (!url) return false
-		    return includeList.find(item => url === item.url)
+            if (!url) return false
+            return includeList.find(item => url === item.url)
         },
-        getPath(){
+        getPath() {
             // 获取路径
             const pages = getCurrentPages()
             const len = pages.length
@@ -110,4 +128,4 @@ const cmSrsMixins = {
     }
 }
 
-export default cmSrsMixins
+export default cmSrsMixins

+ 0 - 7
utils/router.config.js

@@ -52,10 +52,3 @@ export const includeList = [
     {title:'重置密码', url:'/pages/supplier/user/setting/password',pageLabel:'重置密码', pageType:66 },
     {title:'更换手机号', url:'/pages/supplier/user/setting/phone',pageLabel:'更换手机号', pageType:67 },
 ]
-//Ross 统计配置
-export const  roosConfig = {
-    productIdList:[7247,7248,7520],//Ross 商品ID集合
-    shopIds:[1378],// Ross 供应商Id
-    keyWords:['Binary Premium','智能体疗管理系统','448k','肌肉重塑疗法','西班牙ROSS','ROSS','智能体疗','西班牙Ross','Ross','西班牙ross','ross'],//搜索关键词
-    shopKeyWords:['深圳艾斯佰丽生物科技有限公司','艾斯佰丽']// 搜索供应商关键词
-}