Explorar o código

Merge remote-tracking branch 'remotes/origin/developer' into developerA

zhengjinyi hai 1 ano
pai
achega
576e25e088

+ 1 - 1
common/css/iconfont.scss

@@ -699,4 +699,4 @@
 
 .icon-wodebeifenx:before {
   content: "\e611";
-}
+}

+ 7 - 2
components/cm-module/homeIndex/pageSpecial.vue

@@ -178,7 +178,10 @@ export default {
 		swiperChange(e) {//轮播图切换
 			this.current = e.detail.current
 		},
-		NavToDetailPage(item) {
+		NavToDetailPage(item) {
+            console.log(item)
+            // 采美供应商广告图点击量统计
+            this.cmsMoudleHits(5, item.id)
 			//跳转
 			this.$api.FlooryNavigateTo(item)
 		},
@@ -246,7 +249,9 @@ export default {
 				uni.navigateTo({
 					url: url
 				})
-			}
+			}
+            // 采美活动点击量统计
+            this.cmsMoudleHits(3, pros.id)
 		},
 		LiveGoPath() {
 			//查看直播

+ 3 - 1
components/cm-module/homeIndex/quickOperation.vue

@@ -49,7 +49,9 @@ export default {
     mounted() {},
     methods: {
         // 链接跳转
-        NavToDetailPage(pros) {
+        NavToDetailPage(pros) {
+            // 采美快捷运营点击量统计
+            this.cmsMoudleHits(4, pros.id)
 			this.$api.FlooryNavigateTo(pros)
         },
         swiperChange(e) {

+ 2 - 1
manifest.json

@@ -44,7 +44,8 @@
                     "<uses-feature android:name=\"android.hardware.camera\"/>",
                     "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
                     "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
-                ]
+                ],
+                "autoSdkPermissions" : true
             },
             /* ios打包配置 */
             "ios" : {},

+ 19 - 1
mixins/cmsMixins.js

@@ -23,7 +23,25 @@ const cmsMixins = {
                 .catch(error => {
                     console.log(`<-------统计${sYsText}数据异常------>`)
                 })
-        },
+        },
+        // 模块点击量统计
+        async cmsMoudleHits(type, authorId) {
+            try {
+                await this.ProductService.cmsMoudleHits({type, authorId})
+                console.log('<-------统计数据成功------>')
+            } catch(e) {
+                console.log('<-------统计数据异常------>')
+            }
+        },
+        // 搜索词统计
+        async cmsKeywordHits(keyword) {
+            try {
+                await this.ProductService.cmsKeywordHits(keyword)
+                console.log('<-------统计数据成功------>')
+            } catch(e) {
+                console.log('<-------统计数据异常------>')
+            }
+        }
     }
 }
 

+ 16 - 3
pages.json

@@ -629,7 +629,21 @@
 						"navigationBarTitleText": "服务通知",
 						"enablePullDownRefresh": true
 					}
-				}
+				},
+                {
+                    "path": "club/notice-article",
+                    "style": {
+                        "navigationBarTitleText": "最新文章",
+                        "enablePullDownRefresh": true
+                    }
+                },
+                {
+                    "path": "club/notice-activity",
+                    "style": {
+                        "navigationBarTitleText": "最新活动",
+                        "enablePullDownRefresh": true
+                    }
+                }
 			]
 		},
 		{
@@ -1394,5 +1408,4 @@
 			"query": "" //启动参数,在页面的onLoad函数里面得到
 		}]
 	}
-}
-
+}

+ 3 - 1
pages/h5/activity/activity-list.vue

@@ -101,7 +101,9 @@
 			NavigateToActivity(item){//跳转活动详情
 				if(item.status!=3 ){
 					if(item.crmLink){
-						this.cmsSysStatistics(6)
+						this.cmsSysStatistics(6)
+                        // 采美活动点击量统计
+                        this.cmsMoudleHits(3, item.id)
 						this.$api.navigateTo(`/pages/h5/activity/activity?link=${item.crmLink}&linkId=${item.linkParam.id}`)
 					}
 				}else{

+ 5 - 3
pages/h5/article/path.vue

@@ -48,9 +48,11 @@
                     URL_CONFIG = 'https://www.caimei365.com/'
                 }
                 this.activityPath = `${URL_CONFIG}/document/pdfdetails.html?type=1&src=${link}`
-            },
-            
-		},
+            }
+		},
+        onShareAppMessage(options) {
+            console.log(options)
+        }
 	}
 </script>
 	

+ 35 - 1
pages/notice/club/components/notice-cell.vue

@@ -70,7 +70,41 @@
 					{{ noticeCouponText(cell)}}
 				</view> 
 			</view>
-		</template>
+		</template>
+        <!-- 文章最新通知 -->
+        <template v-if="cellType === 5">
+            <view class="tui-notice-cell">
+            	<view class="tui-cell-top">
+            		<view class="cell-title"> 最新文章通知 </view>
+            		<view class="cell-time"> {{ cell.time }} </view>
+            	</view>
+            	<view class="tui-cell-content"> 
+            		<view class="cell-image">
+            			<img :src="cell.mainImage" alt="">
+            		</view>
+            		<view class="cell-content">
+            			{{ cell.content }}
+            		</view> 
+            	</view> 
+            </view>
+        </template>
+        <!-- 最新活动通知 -->
+        <template v-if="cellType === 6">
+        	<view class="tui-notice-cell clearfix">
+        		<view class="tui-cell-top">
+        			<view class="cell-title"> 最新活动通知 </view>
+        			<view class="cell-time"> {{ cell.time }} </view>
+        		</view>
+                <view class="tui-cell-content">
+                	<view class="cell-image">
+                		<img :src="cell.mainImage" alt="">
+                	</view>
+                    <view class="cell-content"> 
+                        {{ cell.content }}
+                    </view> 
+                </view> 
+        	</view>
+        </template>
 	</view>
 </template>
 

+ 1 - 1
pages/notice/club/mixins/notice.mixins.js

@@ -37,7 +37,7 @@ const noticeMixins = {
                 3: '优惠券待领取通知'
             }
             return map[value]
-        },
+        }
     },
     methods: {
         getUserAuthClubMessageList() {

+ 231 - 0
pages/notice/club/notice-activity.vue

@@ -0,0 +1,231 @@
+<template>
+	<view class="container cart clearfix">
+		<tui-skeleton
+			v-if="skeletonShow"
+			backgroundColor="#fafafa"
+			borderRadius="10rpx"
+			:isLoading="true"
+			:loadingType="5"
+		></tui-skeleton>
+		<view class="container-main" v-else>
+			<view class="clearfix">
+				<!-- 空白页 -->
+				<view class="empty-container" v-if="isEmpty">
+					<image class="empty-container-image" :src="StaticUrl + '/icon/icon-notice-empty@2x.png'"></image>
+					<text class="error-text">暂无任何消息~</text>
+				</view>
+				<!-- 列表 -->
+				<view
+					class="tui-notice"
+					v-else
+					v-for="(cell, index) in list"
+					:key="index"
+					@click.stop="handleOrderClick(cell)"
+				>
+					<tui-swipe-action :operateWidth="80" :backgroundColor="'#F7F7F7'">
+						<template v-slot:content>
+							<notice-cell :cellType="6" :cell="cell"></notice-cell>
+						</template>
+						<template v-slot:button>
+							<view class="tui-custom-btn_box">
+								<view class="tui-custom-btn" @click.stop="deleteBtn(cell.id, index)">
+									<text class="iconfont icon-shanchu3"></text>
+								</view>
+							</view>
+						</template>
+					</tui-swipe-action>
+				</view>
+				<!--加载loadding-->
+				<tui-loadmore :visible="loadding" :index="3" type="black" />
+				<tui-nomore :visible="!pullUpOn" :backgroundColor="'#F7F7F7'" :text="nomoreText" />
+				<!--加载loadding-->
+			</view>
+		</view>
+	</view>
+</template>
+<script>
+import { mapState, mapMutations } from 'vuex'
+import noticeMixins from './mixins/notice.mixins.js'
+import noticeCell from './components/notice-cell.vue'
+export default {
+	mixins: [noticeMixins],
+	components: {
+		noticeCell
+	},
+	data() {
+		return {
+			skeletonShow: true,
+			StaticUrl: this.$Static,
+			listQuery: {
+				source: 2,
+				commonId: 0,
+				messageType: 0,
+				pageNum: 1,
+				pageSize: 10
+			},
+			list: [],
+			isEmpty: false,
+			loadding: false,
+			pullUpOn: true,
+			pullFlag: true,
+			hasNextPage: false,
+			nomoreText: '上拉显示更多'
+		}
+	},
+	onLoad(option) {
+		this.initData(option)
+	},
+	methods: {
+		async initData(option) {
+			const userInfo = await this.$api.getStorage()
+			this.listQuery.messageType = option.messageType
+			this.listQuery.commonId = userInfo.clubId ? userInfo.clubId : 0
+			this.getUserAuthClubMessageList()
+		},
+		handleOrderClick(cell) {
+            uni.navigateTo({
+                url: `/pages/h5/article/path?link=${cell.appLink}`
+            })
+		},
+	},
+	onReachBottom() {
+		if (this.hasNextPage) {
+			this.loadding = true
+			this.pullUpOn = true
+			this.getReachBottomData()
+		}
+	},
+	onPullDownRefresh() {
+		//下拉刷新
+		this.listQuery.pageNum = 1
+		this.getUserAuthClubMessageList()
+		uni.stopPullDownRefresh()
+	},
+	onShow() {}
+}
+</script>
+
+<style lang="scss">
+page {
+	background-color: #f7f7f7;
+}
+.container-main {
+	width: 100%;
+	box-sizing: border-box;
+	padding: 24rpx 0;
+	.empty-container-image {
+		width: 260rpx;
+		height: 260rpx;
+		margin-top: -300rpx;
+	}
+}
+.tui-notice {
+	margin-bottom: 24rpx;
+}
+.tui-notice-cell {
+	width: 702rpx;
+	height: auto;
+	background-color: #ffffff;
+	border-radius: 16rpx;
+	box-sizing: border-box;
+	padding: 16rpx 24rpx;
+	margin: 0 auto;
+	.tui-cell-top {
+		width: 100%;
+		height: 88rpx;
+		line-height: 88rpx;
+		.cell-title {
+			font-size: 32rpx;
+			color: #333333;
+			float: left;
+			font-weight: bold;
+		}
+		.cell-time {
+			font-size: 24rpx;
+			color: #999999;
+			float: right;
+		}
+	}
+	.tui-cell-content {
+		width: 100%;
+		height: 160rpx;
+		box-sizing: border-box;
+		padding: 16rpx;
+		border-radius: 8rpx;
+		background-color: #f7f7f7;
+		.cell-image {
+			width: 128rpx;
+			height: 128rpx;
+			border-radius: 8rpx;
+			float: left;
+			image {
+				width: 128rpx;
+				height: 128rpx;
+				display: block;
+				border-radius: 8rpx;
+			}
+		}
+		.cell-content {
+		    width: 490rpx;
+		    height: 100%;
+		    box-sizing: border-box;
+		    padding: 0 20rpx;
+		    line-height: 42rpx;
+		    font-size: 28rpx;
+		    color: #666666;
+		    text-align: justify;
+		    float: left;
+		    text-overflow: ellipsis;
+		    display: -webkit-box;
+		    word-break: break-all;
+		    -webkit-box-orient: vertical;
+		    -webkit-line-clamp: 3;
+		    overflow: hidden;
+		}
+	}
+	.tui-cell-bot {
+		width: 100%;
+		height: 80rpx;
+		box-sizing: border-box;
+		padding: 16rpx 0 0 0;
+		.tui-cell-btn {
+			width: 160rpx;
+			height: 64rpx;
+			border-radius: 35rpx;
+			box-sizing: border-box;
+			border: 1px solid #999999;
+			text-align: center;
+			line-height: 64rpx;
+			font-size: 26rpx;
+			color: #333333;
+			float: right;
+			margin-left: 24rpx;
+		}
+	}
+}
+.tui-custom-btn_box {
+	width: 80px;
+	height: 100%;
+	padding: 0 20rpx;
+	box-sizing: border-box;
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	background-color: #f7f7f7;
+}
+
+.tui-custom-btn {
+	width: 56rpx;
+	height: 56rpx;
+	border-radius: 50%;
+	background-color: #f94b4b;
+	color: #ffffff;
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	flex-shrink: 0;
+	.icon-shanchu3 {
+		font-size: 32rpx;
+	}
+}
+</style>

+ 247 - 0
pages/notice/club/notice-article.vue

@@ -0,0 +1,247 @@
+<template>
+    <view class="container cart clearfix">
+        <tui-skeleton
+            v-if="skeletonShow"
+            backgroundColor="#fafafa"
+            borderRadius="10rpx"
+            :isLoading="true"
+            :loadingType="5"
+        ></tui-skeleton>
+        <view class="container-main" v-else>
+            <view class="clearfix">
+                <!-- 空白页 -->
+                <view class="empty-container" v-if="isEmpty">
+                    <image class="empty-container-image" :src="StaticUrl + '/icon/icon-notice-empty@2x.png'"></image>
+                    <text class="error-text">暂无任何消息~</text>
+                </view>
+                <!-- 列表 -->
+                <view
+                    class="tui-notice"
+                    v-else
+                    v-for="(cell, index) in list"
+                    :key="index"
+                    @click.stop="handleOrderClick(cell)"
+                >
+                    <tui-swipe-action :operateWidth="80" :backgroundColor="'#F7F7F7'">
+                        <template v-slot:content>
+                            <notice-cell :cellType="5" :cell="cell"></notice-cell>
+                        </template>
+                        <template v-slot:button>
+                            <view class="tui-custom-btn_box">
+                                <view class="tui-custom-btn" @click.stop="deleteBtn(cell.id, index)">
+                                    <text class="iconfont icon-shanchu3"></text>
+                                </view>
+                            </view>
+                        </template>
+                    </tui-swipe-action>
+                </view>
+                <!--加载loadding-->
+                <tui-loadmore :visible="loadding" :index="3" type="black" />
+                <tui-nomore :visible="!pullUpOn" :backgroundColor="'#F7F7F7'" :text="nomoreText" />
+                <!--加载loadding-->
+            </view>
+        </view>
+    </view>
+</template>
+<script>
+import { mapState, mapMutations } from 'vuex'
+import noticeMixins from './mixins/notice.mixins.js'
+import noticeCell from './components/notice-cell.vue'
+export default {
+    mixins: [noticeMixins],
+    components: {
+        noticeCell
+    },
+    data() {
+        return {
+            skeletonShow: true,
+            StaticUrl: this.$Static,
+            listQuery: {
+                source: 2,
+                commonId: 0,
+                messageType: 0,
+                pageNum: 1,
+                pageSize: 10
+            },
+            list: [
+                {
+                    id: 1,
+                    time: '16546464',
+                    content: 'abnwahdowadjhwadojw',
+                    link: 'https://www.caimei365.com/info/detail-7880-1.html'
+                },
+                {
+                    id: 1,
+                    time: '16546464',
+                    content: 'abnwahdowadjhwadojw'
+                }
+            ],
+            isEmpty: false,
+            loadding: false,
+            pullUpOn: true,
+            pullFlag: true,
+            hasNextPage: false,
+            nomoreText: '上拉显示更多'
+        }
+    },
+    onLoad(option) {
+        this.initData(option)
+    },
+    methods: {
+        async initData(option) {
+            const userInfo = await this.$api.getStorage()
+            this.listQuery.messageType = option.messageType
+            this.listQuery.commonId = userInfo.clubId ? userInfo.clubId : 0
+            this.getUserAuthClubMessageList()
+        },
+        handleOrderClick(cell) {
+            const link = `${
+                process.env.NODE_ENV === 'development' ? 'http://120.79.25.27:8009' : 'https://www.caimei365.com'
+            }/info/detail-${cell.thisId}-1.html`
+            console.log(link)
+            uni.navigateTo({
+                url: `/pages/h5/article/path?link=${link}`
+            })
+        }
+    },
+    onReachBottom() {
+        if (this.hasNextPage) {
+            this.loadding = true
+            this.pullUpOn = true
+            this.getReachBottomData()
+        }
+    },
+    onPullDownRefresh() {
+        //下拉刷新
+        this.listQuery.pageNum = 1
+        this.getUserAuthClubMessageList()
+        uni.stopPullDownRefresh()
+    },
+    onShow() {}
+}
+</script>
+
+<style lang="scss">
+page {
+    background-color: #f7f7f7;
+}
+.container-main {
+    width: 100%;
+    box-sizing: border-box;
+    padding: 24rpx 0;
+    .empty-container-image {
+        width: 260rpx;
+        height: 260rpx;
+        margin-top: -300rpx;
+    }
+}
+.tui-notice {
+    margin-bottom: 24rpx;
+}
+.tui-notice-cell {
+    width: 702rpx;
+    height: auto;
+    background-color: #ffffff;
+    border-radius: 16rpx;
+    box-sizing: border-box;
+    padding: 16rpx 24rpx;
+    margin: 0 auto;
+    .tui-cell-top {
+        width: 100%;
+        height: 88rpx;
+        line-height: 88rpx;
+        .cell-title {
+            font-size: 32rpx;
+            color: #333333;
+            float: left;
+            font-weight: bold;
+        }
+        .cell-time {
+            font-size: 24rpx;
+            color: #999999;
+            float: right;
+        }
+    }
+    .tui-cell-content {
+        width: 100%;
+        height: 160rpx;
+        box-sizing: border-box;
+        padding: 16rpx;
+        border-radius: 8rpx;
+        background-color: #f7f7f7;
+        .cell-image {
+            width: 128rpx;
+            height: 128rpx;
+            border-radius: 8rpx;
+            float: left;
+            image {
+                width: 128rpx;
+                height: 128rpx;
+                display: block;
+                border-radius: 8rpx;
+            }
+        }
+        .cell-content {
+            width: 490rpx;
+            height: 100%;
+            box-sizing: border-box;
+            padding: 0 20rpx;
+            line-height: 42rpx;
+            font-size: 28rpx;
+            color: #666666;
+            text-align: justify;
+            float: left;
+            text-overflow: ellipsis;
+            display: -webkit-box;
+            word-break: break-all;
+            -webkit-box-orient: vertical;
+            -webkit-line-clamp: 3;
+            overflow: hidden;
+        }
+    }
+    .tui-cell-bot {
+        width: 100%;
+        height: 80rpx;
+        box-sizing: border-box;
+        padding: 16rpx 0 0 0;
+        .tui-cell-btn {
+            width: 160rpx;
+            height: 64rpx;
+            border-radius: 35rpx;
+            box-sizing: border-box;
+            border: 1px solid #999999;
+            text-align: center;
+            line-height: 64rpx;
+            font-size: 26rpx;
+            color: #333333;
+            float: right;
+            margin-left: 24rpx;
+        }
+    }
+}
+.tui-custom-btn_box {
+    width: 80px;
+    height: 100%;
+    padding: 0 20rpx;
+    box-sizing: border-box;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    background-color: #f7f7f7;
+}
+
+.tui-custom-btn {
+    width: 56rpx;
+    height: 56rpx;
+    border-radius: 50%;
+    background-color: #f94b4b;
+    color: #ffffff;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    flex-shrink: 0;
+    .icon-shanchu3 {
+        font-size: 32rpx;
+    }
+}
+</style>

+ 5 - 3
pages/search/search.vue

@@ -495,7 +495,8 @@ import cmRossPopup from '@/components/cm-module/cm-ross/cm-ross-popup'
 import wxLogin from '@/common/config/wxLogin.js'
 import { debounce } from '@/common/config/common.js'
 import cmSrsMixins from '@/utils/cmSrsMixins.js'
-import searchMixins from './mixins/searchMixins.js'
+import searchMixins from './mixins/searchMixins.js'
+import cmsMixins from '@/mixins/cmsMixins.js'
 const myDebounce = fn => debounce(fn, 500, false)
 
 export default {
@@ -504,7 +505,7 @@ export default {
 		uniGrader,
 		cmRossPopup
 	},
-	mixins: [cmSrsMixins,searchMixins],
+	mixins: [cmSrsMixins,searchMixins,cmsMixins],
 	data() {
 		return {
 			CustomBar: this.CustomBar, // 顶部导航栏高度
@@ -699,7 +700,8 @@ export default {
 			//搜索
 			if (this.listQuery.keyword == '') {
 				this.$util.msg('请输入搜索关键词', 2000)
-			} else {
+			} else {
+                this.cmsKeywordHits(this.listQuery.keyword)
 				switch (this.searchKeyType) {
 					case 1:
 						this.listData = []

+ 293 - 267
pages/tabBar/notice/index.vue

@@ -1,267 +1,293 @@
-<template>
-	<view class="notice clearfix" :style="{ paddingTop: CustomBar + 'px' }">
-		<tui-skeleton
-			v-if="skeletonShow"
-			backgroundColor="#fafafa"
-			borderRadius="10rpx"
-			:isLoading="true"
-			:loadingType="5"
-		></tui-skeleton>
-		<view v-else>
-			<view class="navbar-wrap" :style="{ height: CustomBar + 'px', paddingTop: StatusBar + 'px' }">
-				<view
-					class="navbar-text"
-					:style="{ lineHeight: CustomBar - StatusBar + 'px;', fontSize: fontSizeSetting + 'px;' }"
-				>
-					消息 <text @click="clearNews" class="iconfont icon-qingli"></text>
-				</view>
-			</view>
-			<view class="container-notice">
-				<view class="notice-cell" @click="navigator('/pages/notice/club/notice-order?messageType=1')">
-					<view class="notice-cell-icon">
-						<image class="icon-image" :src="StaticUrl + 'icon/icon-notice-order@2x.png'" mode=""></image>
-					</view>
-					<view class="notice-cell-text"> 交易物流 <text class="cell-text">官方</text> </view>
-					<view class="notice-cell-badge" v-if="tradeCount > 0">
-						<text class="uni-badge uni-badge-error uni-small uni-badge--small icon-num">
-							{{ tradeCount | BadgeType }}
-						</text>
-					</view>
-				</view>
-				<view class="notice-cell" @click="navigator('/pages/notice/club/notice-users?messageType=2')">
-					<view class="notice-cell-icon">
-						<image class="icon-image" :src="StaticUrl + 'icon/icon-notice-users@2x.png'" mode=""></image>
-					</view>
-					<view class="notice-cell-text"> 账户通知 <text class="cell-text">官方</text> </view>
-					<view class="notice-cell-badge" v-if="accountCount > 0">
-						<text class="uni-badge uni-badge-error uni-small uni-badge--small icon-num">
-							{{ accountCount | BadgeType }}
-						</text>
-					</view>
-				</view>
-				<view class="notice-cell" @click="navigator('/pages/notice/club/notice-serve?messageType=3')">
-					<view class="notice-cell-icon">
-						<image class="icon-image" :src="StaticUrl + 'icon/icon-notice-serve@2x.png'" mode=""></image>
-					</view>
-					<view class="notice-cell-text"> 服务通知 <text class="cell-text">官方</text> </view>
-					<view class="notice-cell-badge" v-if="notificationCount > 0">
-						<text class="uni-badge uni-badge-error uni-small uni-badge--small icon-num">
-							{{ notificationCount | BadgeType }}
-						</text>
-					</view>
-				</view>
-				<view class="notice-cell" @click="navigator('/pages/notice/club/notice-coupon?messageType=4')">
-					<view class="notice-cell-icon">
-						<image class="icon-image" :src="StaticUrl + 'icon/icon-notice-coupon@2x.png'" mode=""></image>
-					</view>
-					<view class="notice-cell-text"> 优惠促销 <text class="cell-text">官方</text> </view>
-					<view class="notice-cell-badge" v-if="promotionCount > 0">
-						<text class="uni-badge uni-badge-error uni-small uni-badge--small icon-num">
-							{{ promotionCount | BadgeType }}
-						</text>
-					</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-<script>
-import { mapState, mapMutations } from 'vuex'
-export default {
-	data() {
-		return {
-			CustomBar: this.CustomBar,
-			StatusBar: this.StatusBar,
-			StaticUrl: this.$Static,
-			skeletonShow: true,
-			clubId: 0,
-			allCount:0,
-			tradeCount: 0,
-			accountCount: 0,
-			notificationCount: 0,
-			promotionCount: 0
-		}
-	},
-	onLoad() {},
-	filters: {
-		BadgeType(value) {
-			if (value) {
-				return value > 99 ? '99+' : value
-			}
-		}
-	},
-	computed: {
-		...mapState(['hasLogin', 'userInfo'])
-	},
-	methods: {
-		...mapMutations(['updateNoticeNum']),
-		async initData() {
-			const userInfo = await this.$api.getStorage()
-			this.skeletonShow = true //预加载圆圈
-			this.clubId = userInfo.clubId ? userInfo.clubId : 0
-			this.updateNoticeNum()
-			this.getUserAuthClubMessageCount()
-		},
-		clearNews() {
-			// 标记消息已读
-			if(this.allCount == 0){
-				this.$util.msg('暂无未读消息', 2000)
-				return
-			}
-			this.UserService.authUpdateMessageAsRead({ commonId:this.clubId,messageType: '' })
-				.then(response => {
-					uni.vibrateShort({
-						success: function() {
-							console.log('success')
-						}
-					})
-					this.initData()
-					this.$util.msg('已将所有消息标记为已读', 2000)
-				})
-				.catch(error => {
-					console.log('标记通知消息已读', error.msg)
-				})
-		},
-		getUserAuthClubMessageCount() {
-			//供应商详情
-			this.UserService.getUserAuthClubMessageCount({ commonId: this.clubId })
-				.then(response => {
-					this.allCount = response.data.count
-					this.tradeCount = response.data.tradeCount // 交易物流
-					this.accountCount = response.data.account // 账户通知
-					this.notificationCount = response.data.notificationCount // 服务通知
-					this.promotionCount = response.data.promotionCount // 优惠促销
-					this.skeletonShow = false //预加载圆圈隐藏
-				})
-				.catch(error => {
-					this.$util.msg(error.msg, 2000)
-				})
-			this.skeletonShow = false
-		},
-		initLogin() {
-			this.$api.redirectTo('/pages/login/login')
-		},
-		navigator(url) {
-			this.$api.navigateTo(url)
-		}
-	},
-	onPullDownRefresh() {
-		//下拉刷新
-		this.initData()
-		uni.stopPullDownRefresh()
-	},
-	onShow() {
-		if (this.hasLogin) {
-			this.initData()
-		} else {
-			this.initLogin()
-		}
-	}
-}
-</script>
-
-<style lang="scss">
-.navbar-wrap {
-	position: fixed;
-	width: 100%;
-	top: 0;
-	z-index: 100000;
-	box-sizing: border-box;
-	background: #ffffff;
-	.navbar-text {
-		font-size: 30rpx;
-		color: #000000;
-		font-weight: 500;
-		text-align: center;
-		.iconfont {
-			display: inline-block;
-			width: 48rpx;
-			height: 48rpx;
-			border-radius: 50%;
-			background-color: #f5f5f5;
-			text-align: center;
-			line-height: 48rpx;
-			color: #666666;
-			font-size: 30rpx;
-			margin-left: 20rpx;
-		}
-	}
-}
-.container-notice {
-	width: 100%;
-	height: auto;
-	box-sizing: border-box;
-	padding: 0 24rpx;
-	padding-top: 20rpx;
-	.notice-cell {
-		width: 100%;
-		height: 130rpx;
-		box-sizing: border-box;
-		padding: 19rpx 0;
-		border-bottom: 1px solid #e1e1e1;
-		.notice-cell-icon {
-			width: 92rpx;
-			height: 92rpx;
-			float: left;
-			.icon-image {
-				width: 92rpx;
-				height: 92rpx;
-				display: block;
-			}
-		}
-		.notice-cell-text {
-			width: 400rpx;
-			height: 100%;
-			line-height: 92rpx;
-			font-size: 34rpx;
-			text-align: left;
-			margin-left: 24rpx;
-			float: left;
-			.cell-text {
-				display: inline-block;
-				height: 32rpx;
-				padding: 0 11rpx;
-				line-height: 32rpx;
-				border-radius: 20rpx;
-				text-align: center;
-				border: 1px solid #FF5B00;
-				font-size: 24rpx;
-				color: #FF5B00;
-				margin-left: 10rpx;
-			}
-		}
-		.notice-cell-badge {
-			width: 92rpx;
-			height: 92rpx;
-			float: right;
-			box-sizing: border-box;
-			padding: 25rpx 15rpx;
-			text-align: right;
-		}
-	}
-}
-.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: #ff2a2a;
-}
-</style>
+<template>
+	<view class="notice clearfix" :style="{ paddingTop: CustomBar + 'px' }">
+		<tui-skeleton
+			v-if="skeletonShow"
+			backgroundColor="#fafafa"
+			borderRadius="10rpx"
+			:isLoading="true"
+			:loadingType="5"
+		></tui-skeleton>
+		<view v-else>
+			<view class="navbar-wrap" :style="{ height: CustomBar + 'px', paddingTop: StatusBar + 'px' }">
+				<view
+					class="navbar-text"
+					:style="{ lineHeight: CustomBar - StatusBar + 'px;', fontSize: fontSizeSetting + 'px;' }"
+				>
+					消息 <text @click="clearNews" class="iconfont icon-qingli"></text>
+				</view>
+			</view>
+			<view class="container-notice">
+				<view class="notice-cell" @click="navigator('/pages/notice/club/notice-order?messageType=1')">
+					<view class="notice-cell-icon">
+						<image class="icon-image" :src="StaticUrl + 'icon/icon-notice-order@2x.png'" mode=""></image>
+					</view>
+					<view class="notice-cell-text"> 交易物流 <text class="cell-text">官方</text> </view>
+					<view class="notice-cell-badge" v-if="tradeCount > 0">
+						<text class="uni-badge uni-badge-error uni-small uni-badge--small icon-num">
+							{{ tradeCount | BadgeType }}
+						</text>
+					</view>
+				</view>
+				<view class="notice-cell" @click="navigator('/pages/notice/club/notice-users?messageType=2')">
+					<view class="notice-cell-icon">
+						<image class="icon-image" :src="StaticUrl + 'icon/icon-notice-users@2x.png'" mode=""></image>
+					</view>
+					<view class="notice-cell-text"> 账户通知 <text class="cell-text">官方</text> </view>
+					<view class="notice-cell-badge" v-if="accountCount > 0">
+						<text class="uni-badge uni-badge-error uni-small uni-badge--small icon-num">
+							{{ accountCount | BadgeType }}
+						</text>
+					</view>
+				</view>
+				<view class="notice-cell" @click="navigator('/pages/notice/club/notice-serve?messageType=3')">
+					<view class="notice-cell-icon">
+						<image class="icon-image" :src="StaticUrl + 'icon/icon-notice-serve@2x.png'" mode=""></image>
+					</view>
+					<view class="notice-cell-text"> 服务通知 <text class="cell-text">官方</text> </view>
+					<view class="notice-cell-badge" v-if="notificationCount > 0">
+						<text class="uni-badge uni-badge-error uni-small uni-badge--small icon-num">
+							{{ notificationCount | BadgeType }}
+						</text>
+					</view>
+				</view>
+				<view class="notice-cell" @click="navigator('/pages/notice/club/notice-coupon?messageType=4')">
+					<view class="notice-cell-icon">
+						<image class="icon-image" :src="StaticUrl + 'icon/icon-notice-coupon@2x.png'" mode=""></image>
+					</view>
+					<view class="notice-cell-text"> 优惠促销 <text class="cell-text">官方</text> </view>
+					<view class="notice-cell-badge" v-if="promotionCount > 0">
+						<text class="uni-badge uni-badge-error uni-small uni-badge--small icon-num">
+							{{ promotionCount | BadgeType }}
+						</text>
+					</view>
+				</view>
+                <view class="notice-cell" @click="navigator('/pages/notice/club/notice-article?messageType=5')">
+                	<view class="notice-cell-icon">
+                		<image class="icon-image" :src="StaticUrl + 'icon/icon-notice-text@2x.png'" mode=""></image>
+                	</view>
+                	<view class="notice-cell-text"> 最新文章 <text class="cell-text">官方</text> </view>
+                	<view class="notice-cell-badge" v-if="articleCount > 0">
+                		<text class="uni-badge uni-badge-error uni-small uni-badge--small icon-num">
+                			{{ articleCount | BadgeType }}
+                		</text>
+                	</view>
+                </view>
+                <view class="notice-cell" @click="navigator('/pages/notice/club/notice-activity?messageType=6')">
+                	<view class="notice-cell-icon">
+                		<image class="icon-image" :src="StaticUrl + 'icon/icon-notice-active@2x.png'" mode=""></image>
+                	</view>
+                	<view class="notice-cell-text"> 最新活动 <text class="cell-text">官方</text> </view>
+                	<view class="notice-cell-badge" v-if="activityCount > 0">
+                		<text class="uni-badge uni-badge-error uni-small uni-badge--small icon-num">
+                			{{ activityCount | BadgeType }}
+                		</text>
+                	</view>
+                </view>
+			</view>
+		</view>
+	</view>
+</template>
+<script>
+import { mapState, mapMutations } from 'vuex'
+export default {
+	data() {
+		return {
+			CustomBar: this.CustomBar,
+			StatusBar: this.StatusBar,
+			StaticUrl: this.$Static,
+			skeletonShow: true,
+			clubId: 0,
+			allCount:0,
+			tradeCount: 0,
+			accountCount: 0,
+			notificationCount: 0,
+			promotionCount: 0,
+            articleCount: 0,
+            activityCount: 0
+		}
+	},
+	onLoad() {},
+	filters: {
+		BadgeType(value) {
+			if (value) {
+				return value > 99 ? '99+' : value
+			}
+		}
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo'])
+	},
+	methods: {
+		...mapMutations(['updateNoticeNum']),
+		async initData() {
+			const userInfo = await this.$api.getStorage()
+			this.skeletonShow = true //预加载圆圈
+			this.clubId = userInfo.clubId ? userInfo.clubId : 0
+			this.updateNoticeNum()
+			this.getUserAuthClubMessageCount()
+		},
+		clearNews() {
+			// 标记消息已读
+			if(this.allCount == 0){
+				this.$util.msg('暂无未读消息', 2000)
+				return
+			}
+			this.UserService.authUpdateMessageAsRead({ commonId:this.clubId,messageType: '' })
+				.then(response => {
+					uni.vibrateShort({
+						success: function() {
+							console.log('success')
+						}
+					})
+					this.initData()
+					this.$util.msg('已将所有消息标记为已读', 2000)
+				})
+				.catch(error => {
+					console.log('标记通知消息已读', error.msg)
+				})
+		},
+		getUserAuthClubMessageCount() {
+			//供应商详情
+			this.UserService.getUserAuthClubMessageCount({ commonId: this.clubId })
+				.then(response => {
+					this.allCount = response.data.count
+					this.tradeCount = response.data.tradeCount // 交易物流
+					this.accountCount = response.data.account // 账户通知
+					this.notificationCount = response.data.notificationCount // 服务通知
+					this.promotionCount = response.data.promotionCount // 优惠促销
+                    this.activityCount = response.data.activityCount // 活动通知
+                    this.articleCount = response.data.infoCount // 文章通知
+					this.skeletonShow = false //预加载圆圈隐藏
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
+			this.skeletonShow = false
+		},
+		initLogin() {
+			this.$api.redirectTo('/pages/login/login')
+		},
+		navigator(url) {
+			this.$api.navigateTo(url)
+		}
+	},
+	onPullDownRefresh() {
+		//下拉刷新
+		this.initData()
+		uni.stopPullDownRefresh()
+	},
+	onShow() {
+		if (this.hasLogin) {
+			this.initData()
+		} else {
+			this.initLogin()
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.navbar-wrap {
+	position: fixed;
+	width: 100%;
+	top: 0;
+	z-index: 100000;
+	box-sizing: border-box;
+	background: #ffffff;
+	.navbar-text {
+		font-size: 30rpx;
+		color: #000000;
+		font-weight: 500;
+		text-align: center;
+		.iconfont {
+			display: inline-block;
+			width: 48rpx;
+			height: 48rpx;
+			border-radius: 50%;
+			background-color: #f5f5f5;
+			text-align: center;
+			line-height: 48rpx;
+			color: #666666;
+			font-size: 30rpx;
+			margin-left: 20rpx;
+		}
+	}
+}
+.container-notice {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	padding: 0 24rpx;
+	padding-top: 20rpx;
+	.notice-cell {
+		width: 100%;
+		height: 130rpx;
+		box-sizing: border-box;
+		padding: 19rpx 0;
+		border-bottom: 1px solid #e1e1e1;
+		.notice-cell-icon {
+			width: 92rpx;
+			height: 92rpx;
+			float: left;
+			.icon-image {
+				width: 92rpx;
+				height: 92rpx;
+				display: block;
+			}
+		}
+		.notice-cell-text {
+			width: 400rpx;
+			height: 100%;
+			line-height: 92rpx;
+			font-size: 34rpx;
+			text-align: left;
+			margin-left: 24rpx;
+			float: left;
+			.cell-text {
+				display: inline-block;
+				height: 32rpx;
+				padding: 0 11rpx;
+				line-height: 32rpx;
+				border-radius: 20rpx;
+				text-align: center;
+				border: 1px solid #FF5B00;
+				font-size: 24rpx;
+				color: #FF5B00;
+				margin-left: 10rpx;
+			}
+		}
+		.notice-cell-badge {
+			width: 92rpx;
+			height: 92rpx;
+			float: right;
+			box-sizing: border-box;
+			padding: 25rpx 15rpx;
+			text-align: right;
+		}
+	}
+}
+.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: #ff2a2a;
+}
+</style>

+ 582 - 559
services/product.service.js

@@ -1,559 +1,582 @@
-/**
- * 这是与购物有关的业务逻辑的服务
- */
-export default class ProductService {
-    constructor(AjaxService) {
-        Object.assign(this, { AjaxService })
-        this.name = 'ProductService'
-    }
-    /**
-	 * @商城首页-常用商品列表
-	 * @param:userId 用户ID(未登录传0或者''),
-	 * @param:preferredFlag 新品上线(001) 优惠商品(010) 常用商品(100),,
-	 * @param:pageNum 页码
-	 * @param:pageSize 每页条数
-	 */
-    queryProductPreferred (data = {}) {
-        return this.AjaxService.get({ url:'/product/preferred', data, isLoading: false })
-    }
-    /**
-	 * @分类-商品列表
-	 * @param:userId 用户ID(未登录传0或者''),
-	 * @param:bigTypeID 
-	 * @param:smallTypeID, 
-	 * @param:tinyTypeID 
-	 * @param:sortType 
-	 * @param:pageNum 页码
-	 * @param:pageSize 每页条数
-	 */
-    GetProductListByTypeID(data = {}) {
-        return this.AjaxService.get({ url:'/product/listByTypeID', data, isLoading: false })
-    }
-    /**
-	 * @商品列表-查询商品价格
-	 * @param:userId 用户ID(未登录传0或者'')
-	 * @param:productID 商品ID','符号拼接
-	 */
-    querySearchProductPrice (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/price/list',
-            data,
-            isLoading: false ,
-              
-        })
-    }
-	
-    /**
-	 * @查询凑单商品页初始化
-	 * @param:promotionsId 促销ID
-	 */
-    queryProductPromotionInfo (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/promotions/info',
-            data,
-            isLoading: false ,
-              
-        })
-    }
-    /**
-	 * @查询凑单商品列表
-	 * @param:promotionsId 促销ID
-	 * @param:pageSize 查询条数
-	 * @param:pageNum 查询页数
-	 */
-    queryProductPromotionList (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/promotions/product',
-            data,
-            isLoading: true ,
-              
-        })
-    }
-	
-    /**
-	 * @商品详情-查询商品详情
-	 * @param:userId 用户ID(未登录传0或者'')
-	 * @param:productIds 商品ID
-	 */
-    QueryProductDetils (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/product/details',
-            data,
-            isLoading: false ,
-              
-        })
-    }
-    /**
-	 * @商品详情-查看相关优惠券
-	 * @param:userId 用户ID(未登录传0或者'')
-	 * @param:productId 商品ID
-	 * @param:source 来源 1 WWW  2小程序
-	 * @param:status 优惠券领取状态 1 未领取  2 已领取
-	 */
-    QueryProductDetilsCoupons (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/coupon/details/coupons',
-            data,
-            isLoading: true ,
-              
-        })
-    }
-    /**
-	 * @商品详情-相关推荐
-	 * @param:productIds 商品ID
-	 */
-    queryProductDetilsRelevant (data = {}) {
-        return this.AjaxService.get({ 
-            url:'/commodity/detail/recommend', 
-            data, 
-            isLoading: false ,
-        })
-    }
-	
-    /**
-	 * @加入购物车
-	 * @param:userId 用户ID(必填)
-	 * @param:productID 用户ID(必填)
-	 * @param:productCount 商品数量(必填)
-	 */
-    shoppingAddCart (data = {}) {
-        return this.AjaxService.post({
-            url:'/order/club/cart/add',
-            data,
-            isLoading: true ,
-              
-        })
-    }
-    /**
-	 * @批量加入购物车
-	 * @param:userId 用户ID(必填)
-	 * @param:productInfo 商品及数量信息:[// 商品Id 数量]
-	 */
-    ShoppingAddCarts (data = {}) {
-        return this.AjaxService.post({
-            url:'/order/club/cart/add/bulk',
-            data,
-            isLoading: true ,
-              
-        })
-    }
-    /**
-	 * @机构添加购物车替换Sku
-	 * @param:userId 用户ID(必填)
-	 */
-    ShoppingCheckSku (data = {}) {
-	    return this.AjaxService.get({ 
-	        url:'/order/club/check/sku', 
-	        data, 
-	        isLoading: false ,
-	          
-	    })
-    }
-    /**
-	 * @查询购物车数量
-	 * @param:userId 用户ID(必填)
-	 */
-    ProductCartNumber (data = {}) {
-        return this.AjaxService.get({
-            url:'/order/club/cart/count',
-            data,
-            isLoading: false ,
-        })
-    }
-	
-    /**
-	 * @购物车列表
-	 * @param:userId 用户ID(必填)
-	 */
-    QueryShoppingCartList (data = {}) {
-        return this.AjaxService.get({
-            url:'/order/club/cart/list',
-            data,
-            isLoading: false ,
-              
-        })
-    }
-	
-    /**
-	 * @更新购物车加减数量
-	 * @param:userId 用户ID(必填)
-	 */
-    ShoppingCartUpdate (data = {}) {
-        return this.AjaxService.post({
-            url:'/order/club/cart/update',
-            data,
-            isLoading: false ,
-              
-        })
-    }
-	
-    /**
-	 * @购物车领券弹窗优惠券列表
-	 * @param:userId 用户ID(必填)
-	 * @param:shopId 供应商ID(必填)
-	 * @param:source 来源 1 WWW 2小程序
-	 * @param:status 状态 1 未领取 2已领取
-	 */
-    ShoppingCartGetCoupon(data = {}) {
-        return this.AjaxService.get({
-            url:'/order/club/coupon',
-            data,
-            isLoading: true ,
-              
-        })
-    }
-    /**
-	 * @删除购物车商品
-	 * @param:userId 用户ID(必填)
-	 * @param:productIDs 商品ID(用','号拼接)
-	 */
-    ShoppingCartDelete (data = {}) {
-        return this.AjaxService.post({
-            url:'/order/club/cart/delete',
-            data,
-            isLoading: true ,
-              
-        })
-    }
-    /* 二级列表 */
-    GetPageTopic (data = {}) {
-        return this.AjaxService.get({ url:'/commodity/page/floor', data, isLoading: false })
-    }
-    /* 二级列表banner */
-    GetPageTopicBanner (data = {}) {
-        return this.AjaxService.get({ url:'/commodity/page/floor', data, isLoading: false })
-    }
-    /* 活动专题列表 */
-    GetPromotionsrList (data = {}) {
-        return this.AjaxService.get({ 
-            url:'/commodity/promotions/list', 
-            data, 
-            isLoading: true ,
-              
-        })
-    }
-    /* 搜索项目仪器列表 */
-    GetSearchEquipmentList (data = {}) {
-        return this.AjaxService.get({ 
-            url:'/commodity/search/query/equipment', 
-            data, 
-            isLoading: true ,
-              
-        })
-    }
-    /* 项目仪器详情 */
-    GetEquipmentDetails (data = {}) {
-        return this.AjaxService.get({ 
-            url:'/commodity/equipment/details', 
-            data, 
-            isLoading: true ,
-              
-        })
-    }
-    /* 查询搜索历史记录 */
-    GetProductSearchHistory (data = {}) {
-        return this.AjaxService.get({ 
-            url:'/commodity/search/query/history', 
-            data, 
-            isLoading: false ,
-        })
-    }
-    /* 添加搜索历史记录 */
-    GetAddProductSearchHistory (data = {}) {
-        return this.AjaxService.get({ 
-            url:'/commodity/search/query/history/add', 
-            data, 
-            isLoading: true ,
-        })
-    }
-    /* 清除搜索历史记录 */
-    GetDeleteProductSearchHistory (data = {}) {
-        return this.AjaxService.get({ 
-            url:'/commodity/search/query/history/delete', 
-            data, 
-            isLoading: false ,
-        })
-    }
-    /* 搜索商品列表 */
-    GetProductSearchList (data = {}) {
-        return this.AjaxService.get({ 
-            url:'/commodity/search/query/product', 
-            data, 
-            isLoading: true ,
-              
-        })
-    }
-    /* 搜索分类商品列表 */
-    GetSearchProductTypeData (data = {}) {
-        return this.AjaxService.get({ 
-            url:'/commodity/search/query/product/type', 
-            data, 
-            isLoading: true,
-              
-        })
-    }
-    /* 搜索分类商品列表 */
-    GetSearchCombinationProduct (data = {}) {
-        return this.AjaxService.get({ 
-            url:'/commodity/seller/product/combination', 
-            data, 
-            isLoading: true,
-              
-        })
-    }
-    /* 获取商品评价 */
-    GetProductEvaluate (data = {}) {
-        return this.AjaxService.get({ url:'/product/evaluate', data, isLoading: false })
-    }
-    /* 获取再次购买商品列表 */
-    GetRepeatBuyAgainProductList (data = {}) {
-        return this.AjaxService.get({ 
-            url:'/commodity/product/repeat', 
-            data, 
-            isLoading: true ,
-              
-        })
-    }
-    /* 新商品搜索查询商品阶梯价格 */
-    GetSearchProductLadderPrice (data = {}) {
-        return this.AjaxService.get({ 
-            url:'/commodity/price/ladder', 
-            data, 
-            isLoading: false,
-              
-        })
-    }
-    /* 获取分类导航 */
-    GetProductClassify (data = {}) {
-        return this.AjaxService.get({ url:'/product/classify', data, isLoading: true })
-    }
-    /* 获取小程序三个模块商品列表 */
-    GetProductPreferred (data = {}) {
-        return this.AjaxService.get({ url:'/product/preferred', data, isLoading: true })
-    }
-    /* 发票信息回显 */
-    GetPersonalCenterFindInvoice (data = {}) {
-        return this.AjaxService.get({ url:'/personalCenter/findInvoice', data, isLoading: false })
-    }
-    /* 发票信息保存 */
-    GetPersonalCenterInvoice (data = {}) {
-        return this.AjaxService.post({ url:'/personalCenter/invoice', data, isLoading: true })
-    }
-    /**
-	 * @优惠券-是定商品活动页列表
-	 * @param:userId 用户userId(未登录传0)
-	 * @param:pageNum 页码
-	 * @param:pageSize 每页条数
-	 * @param:couponId 优惠券ID
-	 */
-    QueryCouponActivityList (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/coupon/activity/page',
-            data,
-            isLoading: true,
-              
-        })
-    }
-    /**
-	 * @优惠券-个人中心优惠券列表
-	 * @param:userId 用户userId(必传)
-	 * @param:pageNum 页码
-	 * @param:pageSize 每页条数
-	 * @param:status 使用状态 1未使用 2已使用 3已失效
-	 */
-    QueryCouponCenter (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/coupon/center',
-            data,
-            isLoading: false ,
-              
-        })
-    }
-    /**
-	 * @优惠券-领取中心优惠券列表
-	 * @param:userId 用户userId(未登录传0)
-	 * @param:pageNum 每页页码
-	 * @param:pageSize 条数
-	 */
-    QueryCouponCollarList (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/coupon/collar/list',
-            data,
-            isLoading: false ,
-              
-        })
-    }
-    /**
-	 * @优惠券-美博会优惠券列表
-	 * @param:userId 用户userId(未登录传0)
-	 * @param:pageNum 每页页码
-	 * @param:pageSize 条数
-	 */
-    QueryCouponCenterList (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/coupon/center/list',
-            data,
-            isLoading: false ,
-              
-        })
-    }
-    /**
-	 * @优惠券-协销价值优惠券列表
-	 * @param:pageNum 每页页码
-	 * @param:pageSize 条数
-	 */
-    QueryMoneyCouponList (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/coupon/money/coupon/list',
-            data,
-            isLoading: true ,
-              
-        })
-    }
-    /**
-	 * @优惠券-根据优惠券查询优惠券详细信息
-	 * @param:couponId 优惠券Id
-	 */
-    QueryCouponDetail (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/coupon/coupon/detail',
-            data,
-            isLoading: true ,
-              
-        })
-    }
-    /**
-	 * @优惠券-领取优惠券
-	 * @param:userId 用户userId
-	 * @param:couponId 优惠券Id
-	 * @param:source 来源: 1WWW 2小程序
-	 */
-    ReceiveCoupon (data = {}) {
-        return this.AjaxService.post({
-            url:'/commodity/coupon/collar',
-            data,
-            isLoading: true ,
-              
-        })
-    }
-    /**
-	 * @优惠券-兑换优惠券
-	 * @param:userId 用户userId
-	 * @param:redemptionCode 优惠券兑换码
-	 * @param:source 来源: 1WWW 2小程序
-	 */
-    ExchangeCoupon (data = {}) {
-        return this.AjaxService.post({
-            url:'/commodity/coupon/redeem',
-            data,
-            isLoading: true ,
-              
-        })
-    }
-    /**
-	 * @优惠券-我的优惠券数量统计
-	 * @param:userId 用户userId(必传)
-	 */
-    QueryCouponsCount (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/coupon/coupons/count',
-            data,
-            isLoading: false ,
-              
-        })
-    }
-    /**
-	 * @商品收藏-操作
-	 * @param:userId 用户userId(必传)
-	 * @param:productId 商品Id
-	 */
-    getProductUserLike (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/userLike/likeOne',
-            data,
-            isLoading: false ,
-              
-        })
-    }
-    /**
-	 * @商品收藏-列表
-	 * @param:userId 用户userId(必传)
-	 * @param:pageNum 页码
-	 * @param:pageSize 条数
-	 */
-    getProductUserLikeList (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/userLike/likeList',
-            data,
-            isLoading: false ,
-              
-        })
-    }
-    /**
-	 * @商品收藏-取消收藏
-	 * @param:userId 用户userId(必传)
-	 * @param:productIDs 商品Id字符串逗号隔开
-	 */
-    getDeleteUserLike (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/userLike/deleteList',
-            data,
-            isLoading: false ,
-              
-        })
-    }
-    /**
-	 * @会员优惠商品
-	 * @param:userId 用户userId(必传)
-	 * @param:productIDs 商品Id字符串逗号隔开
-	 */
-    getSvipProductPage (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/svip/product/page',
-            data,
-            isLoading: true ,
-              
-        })
-    }
-    /**
-	 * @商品详情组合商品列表
-	 * @param:userId 用户userId(必传)
-	 * @param:productId 商品Id字符串逗号隔开
-	 * @param:source 来源 1 网站 2 小程序
-	 */
-    getCommodityCombinationList (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/seller/combination/list',
-            data,
-            isLoading: true ,
-              
-        })
-    }
-    /**
-	 * @搜索筛选项查询商品品牌
-	 * @param:keyword 关键词
-	 * @param:id 分类id
-	 * @param:idtype 1 一级分类 2 二级分类 3 三级分类
-	 * @param:identity 
-	 */
-    getCommoditySearchQUeryBrand (data = {}) {
-        return this.AjaxService.get({
-            url:'/commodity/search/query/brand',
-            data,
-            isloading: true ,
-              
-        })
-    }
-    /**
-	 * @数据统计
-	 * @param:TypeId 1:首页banner;2:直播模块;3:最新活动;4:热门文章;5:新品橱窗;6:活动列表
-	 */
-    sYsStatisticsTypesSatisticsNumber (data = {}) {
-	    return this.AjaxService.get({
-	        url:'/commodity/StatisticsType/statisticsNumber',
-	        data,
-	        isLoading: false ,
-	          
-	    })
-    }
-}
+/**
+ * 这是与购物有关的业务逻辑的服务
+ */
+export default class ProductService {
+    constructor(AjaxService) {
+        Object.assign(this, { AjaxService })
+        this.name = 'ProductService'
+    }
+    /**
+	 * @商城首页-常用商品列表
+	 * @param:userId 用户ID(未登录传0或者''),
+	 * @param:preferredFlag 新品上线(001) 优惠商品(010) 常用商品(100),,
+	 * @param:pageNum 页码
+	 * @param:pageSize 每页条数
+	 */
+    queryProductPreferred (data = {}) {
+        return this.AjaxService.get({ url:'/product/preferred', data, isLoading: false })
+    }
+    /**
+	 * @分类-商品列表
+	 * @param:userId 用户ID(未登录传0或者''),
+	 * @param:bigTypeID 
+	 * @param:smallTypeID, 
+	 * @param:tinyTypeID 
+	 * @param:sortType 
+	 * @param:pageNum 页码
+	 * @param:pageSize 每页条数
+	 */
+    GetProductListByTypeID(data = {}) {
+        return this.AjaxService.get({ url:'/product/listByTypeID', data, isLoading: false })
+    }
+    /**
+	 * @商品列表-查询商品价格
+	 * @param:userId 用户ID(未登录传0或者'')
+	 * @param:productID 商品ID','符号拼接
+	 */
+    querySearchProductPrice (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/price/list',
+            data,
+            isLoading: false ,
+              
+        })
+    }
+	
+    /**
+	 * @查询凑单商品页初始化
+	 * @param:promotionsId 促销ID
+	 */
+    queryProductPromotionInfo (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/promotions/info',
+            data,
+            isLoading: false ,
+              
+        })
+    }
+    /**
+	 * @查询凑单商品列表
+	 * @param:promotionsId 促销ID
+	 * @param:pageSize 查询条数
+	 * @param:pageNum 查询页数
+	 */
+    queryProductPromotionList (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/promotions/product',
+            data,
+            isLoading: true ,
+              
+        })
+    }
+	
+    /**
+	 * @商品详情-查询商品详情
+	 * @param:userId 用户ID(未登录传0或者'')
+	 * @param:productIds 商品ID
+	 */
+    QueryProductDetils (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/product/details',
+            data,
+            isLoading: false ,
+              
+        })
+    }
+    /**
+	 * @商品详情-查看相关优惠券
+	 * @param:userId 用户ID(未登录传0或者'')
+	 * @param:productId 商品ID
+	 * @param:source 来源 1 WWW  2小程序
+	 * @param:status 优惠券领取状态 1 未领取  2 已领取
+	 */
+    QueryProductDetilsCoupons (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/coupon/details/coupons',
+            data,
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 * @商品详情-相关推荐
+	 * @param:productIds 商品ID
+	 */
+    queryProductDetilsRelevant (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/detail/recommend', 
+            data, 
+            isLoading: false ,
+        })
+    }
+	
+    /**
+	 * @加入购物车
+	 * @param:userId 用户ID(必填)
+	 * @param:productID 用户ID(必填)
+	 * @param:productCount 商品数量(必填)
+	 */
+    shoppingAddCart (data = {}) {
+        return this.AjaxService.post({
+            url:'/order/club/cart/add',
+            data,
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 * @批量加入购物车
+	 * @param:userId 用户ID(必填)
+	 * @param:productInfo 商品及数量信息:[// 商品Id 数量]
+	 */
+    ShoppingAddCarts (data = {}) {
+        return this.AjaxService.post({
+            url:'/order/club/cart/add/bulk',
+            data,
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 * @机构添加购物车替换Sku
+	 * @param:userId 用户ID(必填)
+	 */
+    ShoppingCheckSku (data = {}) {
+	    return this.AjaxService.get({ 
+	        url:'/order/club/check/sku', 
+	        data, 
+	        isLoading: false ,
+	          
+	    })
+    }
+    /**
+	 * @查询购物车数量
+	 * @param:userId 用户ID(必填)
+	 */
+    ProductCartNumber (data = {}) {
+        return this.AjaxService.get({
+            url:'/order/club/cart/count',
+            data,
+            isLoading: false ,
+        })
+    }
+	
+    /**
+	 * @购物车列表
+	 * @param:userId 用户ID(必填)
+	 */
+    QueryShoppingCartList (data = {}) {
+        return this.AjaxService.get({
+            url:'/order/club/cart/list',
+            data,
+            isLoading: false ,
+              
+        })
+    }
+	
+    /**
+	 * @更新购物车加减数量
+	 * @param:userId 用户ID(必填)
+	 */
+    ShoppingCartUpdate (data = {}) {
+        return this.AjaxService.post({
+            url:'/order/club/cart/update',
+            data,
+            isLoading: false ,
+              
+        })
+    }
+	
+    /**
+	 * @购物车领券弹窗优惠券列表
+	 * @param:userId 用户ID(必填)
+	 * @param:shopId 供应商ID(必填)
+	 * @param:source 来源 1 WWW 2小程序
+	 * @param:status 状态 1 未领取 2已领取
+	 */
+    ShoppingCartGetCoupon(data = {}) {
+        return this.AjaxService.get({
+            url:'/order/club/coupon',
+            data,
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 * @删除购物车商品
+	 * @param:userId 用户ID(必填)
+	 * @param:productIDs 商品ID(用','号拼接)
+	 */
+    ShoppingCartDelete (data = {}) {
+        return this.AjaxService.post({
+            url:'/order/club/cart/delete',
+            data,
+            isLoading: true ,
+              
+        })
+    }
+    /* 二级列表 */
+    GetPageTopic (data = {}) {
+        return this.AjaxService.get({ url:'/commodity/page/floor', data, isLoading: false })
+    }
+    /* 二级列表banner */
+    GetPageTopicBanner (data = {}) {
+        return this.AjaxService.get({ url:'/commodity/page/floor', data, isLoading: false })
+    }
+    /* 活动专题列表 */
+    GetPromotionsrList (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/promotions/list', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /* 搜索项目仪器列表 */
+    GetSearchEquipmentList (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/search/query/equipment', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /* 项目仪器详情 */
+    GetEquipmentDetails (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/equipment/details', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /* 查询搜索历史记录 */
+    GetProductSearchHistory (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/search/query/history', 
+            data, 
+            isLoading: false ,
+        })
+    }
+    /* 添加搜索历史记录 */
+    GetAddProductSearchHistory (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/search/query/history/add', 
+            data, 
+            isLoading: true ,
+        })
+    }
+    /* 清除搜索历史记录 */
+    GetDeleteProductSearchHistory (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/search/query/history/delete', 
+            data, 
+            isLoading: false ,
+        })
+    }
+    /* 搜索商品列表 */
+    GetProductSearchList (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/search/query/product', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /* 搜索分类商品列表 */
+    GetSearchProductTypeData (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/search/query/product/type', 
+            data, 
+            isLoading: true,
+              
+        })
+    }
+    /* 搜索分类商品列表 */
+    GetSearchCombinationProduct (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/seller/product/combination', 
+            data, 
+            isLoading: true,
+              
+        })
+    }
+    /* 获取商品评价 */
+    GetProductEvaluate (data = {}) {
+        return this.AjaxService.get({ url:'/product/evaluate', data, isLoading: false })
+    }
+    /* 获取再次购买商品列表 */
+    GetRepeatBuyAgainProductList (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/product/repeat', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /* 新商品搜索查询商品阶梯价格 */
+    GetSearchProductLadderPrice (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/price/ladder', 
+            data, 
+            isLoading: false,
+              
+        })
+    }
+    /* 获取分类导航 */
+    GetProductClassify (data = {}) {
+        return this.AjaxService.get({ url:'/product/classify', data, isLoading: true })
+    }
+    /* 获取小程序三个模块商品列表 */
+    GetProductPreferred (data = {}) {
+        return this.AjaxService.get({ url:'/product/preferred', data, isLoading: true })
+    }
+    /* 发票信息回显 */
+    GetPersonalCenterFindInvoice (data = {}) {
+        return this.AjaxService.get({ url:'/personalCenter/findInvoice', data, isLoading: false })
+    }
+    /* 发票信息保存 */
+    GetPersonalCenterInvoice (data = {}) {
+        return this.AjaxService.post({ url:'/personalCenter/invoice', data, isLoading: true })
+    }
+    /**
+	 * @优惠券-是定商品活动页列表
+	 * @param:userId 用户userId(未登录传0)
+	 * @param:pageNum 页码
+	 * @param:pageSize 每页条数
+	 * @param:couponId 优惠券ID
+	 */
+    QueryCouponActivityList (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/coupon/activity/page',
+            data,
+            isLoading: true,
+              
+        })
+    }
+    /**
+	 * @优惠券-个人中心优惠券列表
+	 * @param:userId 用户userId(必传)
+	 * @param:pageNum 页码
+	 * @param:pageSize 每页条数
+	 * @param:status 使用状态 1未使用 2已使用 3已失效
+	 */
+    QueryCouponCenter (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/coupon/center',
+            data,
+            isLoading: false ,
+              
+        })
+    }
+    /**
+	 * @优惠券-领取中心优惠券列表
+	 * @param:userId 用户userId(未登录传0)
+	 * @param:pageNum 每页页码
+	 * @param:pageSize 条数
+	 */
+    QueryCouponCollarList (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/coupon/collar/list',
+            data,
+            isLoading: false ,
+              
+        })
+    }
+    /**
+	 * @优惠券-美博会优惠券列表
+	 * @param:userId 用户userId(未登录传0)
+	 * @param:pageNum 每页页码
+	 * @param:pageSize 条数
+	 */
+    QueryCouponCenterList (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/coupon/center/list',
+            data,
+            isLoading: false ,
+              
+        })
+    }
+    /**
+	 * @优惠券-协销价值优惠券列表
+	 * @param:pageNum 每页页码
+	 * @param:pageSize 条数
+	 */
+    QueryMoneyCouponList (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/coupon/money/coupon/list',
+            data,
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 * @优惠券-根据优惠券查询优惠券详细信息
+	 * @param:couponId 优惠券Id
+	 */
+    QueryCouponDetail (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/coupon/coupon/detail',
+            data,
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 * @优惠券-领取优惠券
+	 * @param:userId 用户userId
+	 * @param:couponId 优惠券Id
+	 * @param:source 来源: 1WWW 2小程序
+	 */
+    ReceiveCoupon (data = {}) {
+        return this.AjaxService.post({
+            url:'/commodity/coupon/collar',
+            data,
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 * @优惠券-兑换优惠券
+	 * @param:userId 用户userId
+	 * @param:redemptionCode 优惠券兑换码
+	 * @param:source 来源: 1WWW 2小程序
+	 */
+    ExchangeCoupon (data = {}) {
+        return this.AjaxService.post({
+            url:'/commodity/coupon/redeem',
+            data,
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 * @优惠券-我的优惠券数量统计
+	 * @param:userId 用户userId(必传)
+	 */
+    QueryCouponsCount (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/coupon/coupons/count',
+            data,
+            isLoading: false ,
+              
+        })
+    }
+    /**
+	 * @商品收藏-操作
+	 * @param:userId 用户userId(必传)
+	 * @param:productId 商品Id
+	 */
+    getProductUserLike (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/userLike/likeOne',
+            data,
+            isLoading: false ,
+              
+        })
+    }
+    /**
+	 * @商品收藏-列表
+	 * @param:userId 用户userId(必传)
+	 * @param:pageNum 页码
+	 * @param:pageSize 条数
+	 */
+    getProductUserLikeList (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/userLike/likeList',
+            data,
+            isLoading: false ,
+              
+        })
+    }
+    /**
+	 * @商品收藏-取消收藏
+	 * @param:userId 用户userId(必传)
+	 * @param:productIDs 商品Id字符串逗号隔开
+	 */
+    getDeleteUserLike (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/userLike/deleteList',
+            data,
+            isLoading: false ,
+              
+        })
+    }
+    /**
+	 * @会员优惠商品
+	 * @param:userId 用户userId(必传)
+	 * @param:productIDs 商品Id字符串逗号隔开
+	 */
+    getSvipProductPage (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/svip/product/page',
+            data,
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 * @商品详情组合商品列表
+	 * @param:userId 用户userId(必传)
+	 * @param:productId 商品Id字符串逗号隔开
+	 * @param:source 来源 1 网站 2 小程序
+	 */
+    getCommodityCombinationList (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/seller/combination/list',
+            data,
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 * @搜索筛选项查询商品品牌
+	 * @param:keyword 关键词
+	 * @param:id 分类id
+	 * @param:idtype 1 一级分类 2 二级分类 3 三级分类
+	 * @param:identity 
+	 */
+    getCommoditySearchQUeryBrand (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/search/query/brand',
+            data,
+            isloading: true ,
+              
+        })
+    }
+    /**
+	 * @数据统计
+	 * @param:TypeId 1:首页banner;2:直播模块;3:最新活动;4:热门文章;5:新品橱窗;6:活动列表
+	 */
+    sYsStatisticsTypesSatisticsNumber (data = {}) {
+	    return this.AjaxService.get({
+	        url:'/commodity/StatisticsType/statisticsNumber',
+	        data,
+	        isLoading: false ,
+	          
+	    })
+    }
+    /**
+     * @模块点击量统计
+     * @param:type  3 活动专区首页, 4 快捷运营菜单, 5 供应商广告图,6 关键词列表,
+     * @param:authorId id
+     */
+    cmsMoudleHits (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/statistics/addPv',
+            data,
+            isLoading: false,
+        })
+    }
+    /**
+     * @搜索词统计
+     * @param:keyword
+     */
+    cmsKeywordHits (data = {}) {
+        return this.AjaxService.get({
+            url:'/commodity/search/query/con/keyword',
+            data,
+            isLoading: false,
+        })
+    }
+}