Jelajahi Sumber

小程序4.0开始

db 3 tahun lalu
induk
melakukan
bf244649a0

TEMPAT SAMPAH
.DS_Store


+ 19 - 7
activityPages/activityDetail/activityDetail.vue

@@ -73,19 +73,18 @@
 					</view>
 					<view class="network-right" v-else>{{detailData.Address}}</view>
 				</view>
-				<view class="network" v-if="detailData.ReportLink">
-					<view class="network-left">相关报告:</view>
-					<view class="network-right" style="color: #2C83FF;" @click="goDetail">
-						查看报告链接
-					</view>
-				</view>
 				<view v-if="detailData.Highlights" class="network">
 					<view class="network-left">活动亮点: </view>
 					<view class="network-right">
 					 <rich-text :nodes="detailData.Highlights"></rich-text>
 					</view>
 				</view>
-				
+				<view class="network" v-if="detailData.ReportLink">
+					<view class="network-left">相关报告:</view>
+					<view class="network-right" style="color: #2C83FF;" @click="goDetail">
+						查看报告链接
+					</view>
+				</view>
 				<view v-if="detailData.Theme" class="network">
 					<view class="network-left">主&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;题: </view>
 					<view class="network-right">
@@ -198,6 +197,17 @@
 		components: {
 			modalDialog,
 			jurisdiction
+		},
+		watch:{
+			haveAuth:{
+				handler(){
+					if(this.haveAuth==1){
+						this.$store.dispatch("statistics",{PageType:'ActivitParticulars',DetailId:this.id})
+					}
+					
+				},
+				immediate:true
+			}
 		},
 		methods: {
 			//获取是否需要填写区号接口
@@ -346,6 +356,8 @@
 				this.getActivityDetail()
 			})
 			
+		},
+		onShow() {
 		},
 		/**
 		 * 用户点击分享

+ 117 - 6
activityPages/activitySearch/activitySearch.vue

@@ -35,6 +35,19 @@
 								</view>
 								<text>{{key.StatusName}}</text>
 							</view>
+						</view>
+						<view style="background-color: #f8f8fa;width: 100%;">
+							<view style="margin: 0 auto;width: 682rpx;border-bottom: 2rpx solid #E5E5E5;">
+							</view>
+						</view>
+						<view class="menu-items">
+						<view class="menu-items-box" @click="timeListBtn('statusstate', key)"
+								v-for="key in activityTimeList" :key="key.Id">
+								<view class="items-box">
+									<u-icon v-if="key.IsChoose" name="checkbox-mark" color="#2C83FF" size="24"></u-icon>
+								</view>
+								<text>{{ key.StatusName }}</text>
+						</view>
 						</view>
 						<view class="replacement-box">
 							<view class="replacement">
@@ -126,7 +139,7 @@
 									v-if="item.ActivityTypeName=='分析师电话会'||item.ActivityTypeName=='分析师线下沙龙'">主讲人:{{item.Speaker}}</text>
 							</view>
 						</view>
-						<text style="padding-bottom: 30rpx ;">活动时间:{{item.ActivityTime}}</text>
+						<text style="padding-bottom: 30rpx ;">活动时间:{{item.ActivityTimeText}}</text>
 					</view>
 
 					<view class="" style="display: flex;align-items: center;padding-right: 30rpx;">
@@ -238,6 +251,7 @@
 					this.chartPermissionName = option.chartName
 					this.activityTypeName = option.typeName
 					this.searchTxt = option.text
+					this.activityTimeStatus = option.timeStatus;
 					this.isGain = false
 					this.isShowSearch = true
 				} else {
@@ -257,7 +271,100 @@
 			this.page_no++;
 			this.getList()
 		}),
-		methods: {
+		methods: {
+			preserve() {
+			const arr = []
+			const str = []
+			this.listActivityStaus.forEach(item => {
+				if (item.IsChoose) {
+					arr.push(item.Id)
+					str.push(item.StatusName)
+				}
+			})
+			if (str.length == this.listActivityStaus.length) {
+				this.activeStateName = '所有状态'
+			} else if (str.length <= 0) {
+				this.activeStateName = '活动状态'
+			} else {
+				this.activeStateName = str.join(',')
+			}
+			this.activeState = arr.join(',')
+			const arrTwo = []
+			this.activityTimeList.forEach(key => {
+				if (key.IsChoose) {
+					arrTwo.push(key.Id)
+				}
+			})
+			this.activityTimeStatus = arrTwo.join(',')
+			const hyArr = []
+			const hyStr = []
+			this.listChartPermission.forEach(key => {
+				if (key.IsChoose) {
+					hyArr.push(key.ChartPermissionId)
+					hyStr.push(key.PermissionName)
+				}
+			})
+			if (hyStr.length == this.listChartPermission.length) {
+				this.chartPermissionName = '所有行业'
+			} else if (hyStr.length <= 0) {
+				this.chartPermissionName = '行业分类'
+			} else {
+				this.chartPermissionName = hyStr.join(',')
+			}
+			this.chartPermissionIds = hyArr.join(',')
+			const lxArr = []
+			const lxStr = []
+			this.listActivityType.forEach(key => {
+				if (key.IsChoose) {
+					lxArr.push(key.ActivityTypeId)
+					lxStr.push(key.ActivityTypeName)
+				}
+			})
+			if (lxStr.length == this.listActivityType.length) {
+				this.activityTypeName = '所有活动'
+			} else if (lxStr.length <= 0) {
+				this.activityTypeName = '活动类型'
+			} else {
+				this.activityTypeName = lxStr.join(',')
+			}
+			this.activityTypeIds = lxArr.join(',')
+			this.getList()
+		},
+		shareOption() {
+			const arr = this.activeState.split(',').map(item => item - 0)
+			this.listActivityStaus.forEach(item => {
+				if (arr.indexOf(item.Id) !== -1) {
+					item.IsChoose = true
+				} else {
+					item.IsChoose = false
+				}
+			})
+			const arrTwo = this.activityTimeStatus.split(',').map(item => item - 0)
+			this.activityTimeList.forEach(item => {
+				if (arrTwo.indexOf(item.Id) !== -1) {
+					item.IsChoose = true
+				} else {
+					item.IsChoose = false
+				}
+			})
+			const hyarr = this.chartPermissionIds.split(',').map(item => item - 0)
+			this.listChartPermission.forEach(key => {
+				if (hyarr.indexOf(key.ChartPermissionId) !== -1) {
+					key.IsChoose = true
+				} else {
+					key.IsChoose = false
+				}
+			})
+			const lxarr = this.activityTypeIds.split(',').map(item => item - 0)
+			this.listActivityType.forEach(key => {
+				if (lxarr.indexOf(key.ActivityTypeId) !== -1) {
+					key.IsChoose = true
+				} else {
+					key.IsChoose = false
+				}
+			})
+			this.preserve()
+		},
 			searchHandle() {
 				if (this.searchTxt) {
 					//添加搜索记录
@@ -295,7 +402,8 @@
 					ActiveState: this.activeState, //活动进行状态
 					ActivityTypeIds: this.activityTypeIds, //活动类型id 多个用 , 隔开
 					ChartPermissionIds: this.chartPermissionIds, //行业id 多个用 , 隔开
-					KeyWord: this.searchTxt,
+					KeyWord: this.searchTxt,
+					WhichDay:this.activityTimeStatus
 				}).then(res => {
 					if (res.Ret !== 200) return
 					this.status = this.page_no < res.Data.Paging.Pages ? 'loadmore' : 'nomore';
@@ -348,7 +456,9 @@
 				this.listActivityStaus.forEach(item => item.IsChoose = true)
 				this.activeState = '1,2,3'
 				this.activeStateName = '全部状态'
-				this.chartPermissionIds = ''
+				this.chartPermissionIds = ''
+				this.activityTimeList.forEach(key => {key.IsChoose=false})
+				this.activityTimeStatus=''
 				this.listChartPermission.forEach(item => item.IsChoose = false)
 				this.chartPermissionName = '行业分类'
 				this.listActivityType.forEach(item => item.IsChoose = false)
@@ -464,7 +574,8 @@
 			}
 
 		},
-		onShow() {
+		onShow() {
+			this.$store.dispatch("statistics",{PageType:'ActivitSearch'})
 		},
 		/**
 		 * 用户点击分享
@@ -475,7 +586,7 @@
 				path: '/activityPages/activitySearch/activitySearch?statesId=' + this.activeState + '&typeIds=' + this
 					.activityTypeIds + '&chartIds=' + this.chartPermissionIds + '&stateName=' + this.activeStateName +
 					'&chartName=' + this.chartPermissionName + '&typeName=' + this.activityTypeName + '&text=' + this
-					.searchTxt,
+					.searchTxt +"&timeStatus=" + this.activityTimeStatus,
 				success: (res) => {},
 				fail: (err) => {}
 			}

+ 24 - 84
activityPages/index.js

@@ -58,7 +58,9 @@ export default {
 			},
 			isShowhasPermission: false, //拨打销售电话
 			applyForIsShow: false, //潜在用户
-			flag: false
+			flag: false,
+			activityTimeList:[{Id: 1, IsChoose: false, StatusName: "今日活动"},{Id: 2, IsChoose: false, StatusName: "明日活动"}],
+			activityTimeStatus:''
 		}
 	},
 	methods: {
@@ -96,34 +98,7 @@ export default {
 			this.activityIdAdd = id
 			this.selectShow = true
 		},
-		shareOption() {
-			const arr = this.activeState.split(',').map(item => item - 0)
-			this.listActivityStaus.forEach(item => {
-				if (arr.indexOf(item.Id) !== -1) {
-					item.IsChoose = true
-				} else {
-					item.IsChoose = false
-				}
-			})
 
-			const hyarr = this.chartPermissionIds.split(',').map(item => item - 0)
-			this.listChartPermission.forEach(key => {
-				if (hyarr.indexOf(key.ChartPermissionId) !== -1) {
-					key.IsChoose = true
-				} else {
-					key.IsChoose = false
-				}
-			})
-			const lxarr = this.activityTypeIds.split(',').map(item => item - 0)
-			this.listActivityType.forEach(key => {
-				if (lxarr.indexOf(key.ActivityTypeId) !== -1) {
-					key.IsChoose = true
-				} else {
-					key.IsChoose = false
-				}
-			})
-			this.preserve()
-		},
 		countryCcode() {
 			User.countryCcode().then(res => {
 				if (res.Ret == 200) {
@@ -276,7 +251,15 @@ export default {
 				} else {
 					this.activeStateName = str.join(',')
 				}
-				this.activeState = arr.join(',')
+				this.activeState = arr.join(',')
+				
+				const arrTwo = []
+				this.activityTimeList.forEach(key => {
+					if (key.IsChoose) {
+						arrTwo.push(key.Id)
+					}
+				})
+				this.activityTimeStatus = arrTwo.join(',')
 			} else if (type == 'industry') {
 				const arr = []
 				const str = []
@@ -321,9 +304,11 @@ export default {
 		/* 新布局产业选项重置按钮 */
 		replacementBtn(type) {
 			if (type == 'statusstate') {
-				this.listActivityStaus.forEach(item => item.IsChoose = false)
+				this.listActivityStaus.forEach(item => item.IsChoose = false)
+				this.activityTimeList.forEach(key => {key.IsChoose=false})
 				this.listActivityStaus[0].IsChoose = true
-				this.activeState = '1'
+				this.activeState = '1'
+				this.activityTimeStatus=''
 				this.activeStateName = '未开始'
 			} else if (type == 'industry') {
 				this.listChartPermission=this.listChartPermissionInit
@@ -364,59 +349,6 @@ export default {
 				}
 			})
 		},
-		//遍历
-		preserve() {
-			const arr = []
-			const str = []
-			this.listActivityStaus.forEach(item => {
-				if (item.IsChoose) {
-					arr.push(item.Id)
-					str.push(item.StatusName)
-				}
-			})
-			if (str.length == this.listActivityStaus.length) {
-				this.activeStateName = '所有状态'
-			} else if (str.length <= 0) {
-				this.activeStateName = '活动状态'
-			} else {
-				this.activeStateName = str.join(',')
-			}
-			this.activeState = arr.join(',')
-			const hyArr = []
-			const hyStr = []
-			this.listChartPermission.forEach(key => {
-				if (key.IsChoose) {
-					hyArr.push(key.ChartPermissionId)
-					hyStr.push(key.PermissionName)
-				}
-			})
-			if (hyStr.length == this.listChartPermission.length) {
-				this.chartPermissionName = '所有行业'
-			} else if (hyStr.length <= 0) {
-				this.chartPermissionName = '行业分类'
-			} else {
-				this.chartPermissionName = hyStr.join(',')
-			}
-			this.chartPermissionIds = hyArr.join(',')
-			const lxArr = []
-			const lxStr = []
-			this.listActivityType.forEach(key => {
-				if (key.IsChoose) {
-					lxArr.push(key.ActivityTypeId)
-					lxStr.push(key.ActivityTypeName)
-				}
-			})
-			if (lxStr.length == this.listActivityType.length) {
-				this.activityTypeName = '所有活动'
-			} else if (lxStr.length <= 0) {
-				this.activityTypeName = '活动类型'
-			} else {
-				this.activityTypeName = lxStr.join(',')
-			}
-			this.activityTypeIds = lxArr.join(',')
-			this.getList()
-		},
-		//重置
 		init() {
 			this.signupType = ''
 			this.goFollow = false
@@ -445,6 +377,14 @@ export default {
 				}
 			})
 
+		},
+		//今日,明日 活动的选择
+		timeListBtn(type,item){
+			this.activityTimeList.forEach(key => {
+				if (key.Id == item.Id) {
+					key.IsChoose = !key.IsChoose
+				}
+			})
 		}
 	},
 }

+ 4 - 6
activityPages/index.scss

@@ -1,6 +1,8 @@
-.activity-content {
+.activity-content {
+		// position: relative;
 		background-color: #F7F7F7;
-		.top-content {
+		.top-content {
+			padding-bottom: 2rpx;
 			.tab {
 				display: flex;
 				font-size: 32rpx;
@@ -9,7 +11,6 @@
 				.tab-item {
 					flex: 1;
 					text-align: center;
-
 					.scroll-tab-item {
 						height: 78rpx;
 						line-height: 48rpx;
@@ -29,8 +30,6 @@
 						font-weight: bold;
 						font-size: 34rpx;
 					}
-
-					image {}
 				}
 			}
 
@@ -187,7 +186,6 @@
 
 				.replacement-box {
 					background-color: #fff;
-					padding-bottom: 40rpx;
 					border-radius: 0rpx 0rpx 16rpx 16rpx;
 				}
 

+ 1 - 0
activityPages/networkAttend/networkAttend.vue

@@ -13,6 +13,7 @@
 		},
 		onLoad(opion) {
 			this.url=opion.url
+			console.log(this.url);
 		}
 	}
 </script>

+ 8 - 0
config/api.js

@@ -91,6 +91,10 @@ export const User = {
 	countryCcodeAdd: params => {
 		return postHttp('/user/countryCcode/Add',params,0)
 	},
+	//上传页面访问统计
+    pageHistory: params => {
+		return postHttp('/config/pageHistory',params,0)
+	},
 }
 
 /* 首页 */
@@ -222,4 +226,8 @@ export const activity ={
 	meetingReminderCancel: params => {
 		return postHttp('/activity/meetingReminder/cancel',params)
 	},
+	/* 获取敏捷搜索关键词的列表接口*/
+	fastSearchKeWord: params => {
+		return getHttp('/activity/fastSearchKeWord',params)
+	},
 }

+ 2 - 2
pages.json

@@ -200,8 +200,8 @@
 			{
 				"pagePath": "pages/activity/activity",
 				"text": "活动",
-				"iconPath": "static/img/activity_ico.png",
-				"selectedIconPath": "static/img/activity_act.png"
+				"iconPath": "static/img/tab/activity_ico.png",
+				"selectedIconPath": "static/img/tab/activity_act.png"
 			},
 			{
 				"pagePath": "pages/my/my",

+ 309 - 27
pages/activity/activity.vue

@@ -1,7 +1,6 @@
 <template>
 	<view class="container activity-content">
-		<!-- tabs -->
-		<view class="top-content">
+		<view class="top-content" id="idtop">
 			<view class="tab">
 				<view class="tab-item" v-for="(item, index) in tabs" :key="item.id">
 					<view class="scroll-tab-item" :class="{ active: tabsActive == index }"
@@ -12,12 +11,22 @@
 					</view>
 				</view>
 			</view>
-			<!-- 搜索 -->
-			<view class="index-fixed" v-if="tabsActive == 0" @click="goSearch">
-				<icon type="search" size="15" class="search_ico" />
-				<text>请输入关键字</text>
+		</view>
+		<view class="dynamic-content" v-if="tabsActive == 0">
+			<view class="target-title">
+				活动预告:
+			</view>
+			<view class="target-item" v-for="(item,index) in dynamicList" :key="index" @click="changeTarget(index,item)"
+				:class="{'bgcolor':spanIndex.indexOf(index)>-1}">
+				{{item.KeyWord}}
 			</view>
-			<view class="select-conyent" v-if="tabsActive == 0">
+			<view class="target-item target-search" @click="goSearch">
+				<image src="../../static/img/search_iocn.png" mode=""></image>
+				<text style="margin-left: 10rpx;">更多...</text>
+			</view>
+		</view>
+		<view class="select-sticky" v-if="tabsActive == 0">
+			<view class="select-conyent">
 				<van-dropdown-menu active-color="#333333">
 					<van-dropdown-item id="statusstate" :title="activeStateName" @close="closeTheWindow('statusstate')">
 						<view class="menu-items">
@@ -29,6 +38,19 @@
 								<text>{{ key.StatusName }}</text>
 							</view>
 						</view>
+						<view style="background-color: #f8f8fa;width: 100%;">
+							<view style="margin: 0 auto;width: 682rpx;border-bottom: 2rpx solid #E5E5E5;">
+							</view>
+						</view>
+						<view class="menu-items">
+							<view class="menu-items-box" @click="timeListBtn('statusstate', key)"
+								v-for="key in activityTimeList" :key="key.Id">
+								<view class="items-box">
+									<u-icon v-if="key.IsChoose" name="checkbox-mark" color="#2C83FF" size="24"></u-icon>
+								</view>
+								<text>{{ key.StatusName }}</text>
+							</view>
+						</view>
 						<view class="replacement-box">
 							<view class="replacement">
 								<text @click="replacementBtn('statusstate')" class="replacement-box">重置</text>
@@ -81,8 +103,11 @@
 					</van-dropdown-item>
 				</van-dropdown-menu>
 			</view>
+
 		</view>
-		<view class="box-content" :class="{ head: tabsActive == 1 }" v-if="haveData">
+
+		<!-- </view> -->
+		<view class="box-content" id="contentList" :class="{ head: tabsActive == 1 }" v-if="haveData">
 			<view class="content-list" v-for="(item, index) in collectList" :key="index">
 				<view class="list-top" @click="goDetail(item)">
 					<view class="list-top-box">
@@ -124,7 +149,7 @@
 							</view>
 						</view>
 
-						<text style="padding-bottom: 30rpx">活动时间:{{ item.ActivityTime }}</text>
+						<text style="padding-bottom: 30rpx">活动时间:{{ item.ActivityTimeText }}</text>
 					</view>
 					<view class="" style="display: flex; align-items: center; padding-right: 30rpx">
 						<u-icon style="padding-bottom: 30rpx" name="arrow-right" color="#BDBDBD" size="34"></u-icon>
@@ -171,7 +196,7 @@
 			<u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20"
 				v-if="totalPage > 1" />
 		</view>
-		<view class="nodata" v-else>
+		<view class="nodata" :class="tabsActive == 0?'':'nodataTwo'" v-else>
 			<image src="@/static/img/act_search.png" mode="" class="nodata_ico"></image>
 			<text>{{tabsActive==1?'暂无日程':"暂无活动"}}</text>
 		</view>
@@ -216,19 +241,19 @@
 				tabsActive: 0,
 				totalPage: "",
 				haveData: true,
+				spanIndex: [],
 				activeStateName: "未开始",
 				activeState: "1", //活动进行状态
+				dynamicList: [],
+				dynamicLKeyWodr: [],
+				keyWord: ''
 			};
 		},
-		watch: {
-			tabsActive() {},
-		},
 		mixins: [myMixin],
 		components: {
 			modalDialog,
 			areaCode,
 		},
-
 		onLoad(option) {
 			this.$store.dispatch("checkHandle", 'load').then(res => {
 				app.globalData.isAuth = res.IsAuth;
@@ -241,7 +266,9 @@
 					this.activeStateName = option.stateName;
 					this.chartPermissionName = option.chartName;
 					this.activityTypeName = option.typeName;
-					// this.tabsActive = option.tabs;
+					this.activityTimeStatus = option.timeStatus;
+					this.spanIndex = option.indexs ? option.indexs.split(',').map(item => item - 0) : []
+					this.keyWord = option.keys
 					this.isGain = false;
 				} else {
 					this.isGain = true;
@@ -251,7 +278,7 @@
 				}
 				this.getUserSearchContent();
 			})
-
+			this.fastSearchKeWord()
 		},
 		//切换tabs 刷新页面
 		onTabItemTap() {
@@ -264,13 +291,58 @@
 				this.activityTypeIds = ""; //活动类型id 多个用 , 隔开
 				this.chartPermissionIds = ""; //行业id 多个用 , 隔开
 				this.page_no = 1;
-				this.collectList = [];
+				this.collectList = [];
+				this.spanIndex=[]
+				this.keyWord= ''
+				this.activityTimeList.forEach(key => {key.IsChoose=false})
+				this.activityTimeStatus=''
 				this.getList();
 				this.getUserSearchContent();
 			}
 
 		},
 		methods: {
+			shareOption() {
+				const arr = this.activeState.split(',').map(item => item - 0)
+				this.listActivityStaus.forEach(item => {
+					if (arr.indexOf(item.Id) !== -1) {
+						item.IsChoose = true
+					} else {
+						item.IsChoose = false
+					}
+				})
+				const arrTwo = this.activityTimeStatus.split(',').map(item => item - 0)
+				this.activityTimeList.forEach(item => {
+					if (arrTwo.indexOf(item.Id) !== -1) {
+						item.IsChoose = true
+					} else {
+						item.IsChoose = false
+					}
+				})
+				const hyarr = this.chartPermissionIds.split(',').map(item => item - 0)
+				this.listChartPermission.forEach(key => {
+					if (hyarr.indexOf(key.ChartPermissionId) !== -1) {
+						key.IsChoose = true
+					} else {
+						key.IsChoose = false
+					}
+				})
+				const lxarr = this.activityTypeIds.split(',').map(item => item - 0)
+				this.listActivityType.forEach(key => {
+					if (lxarr.indexOf(key.ActivityTypeId) !== -1) {
+						key.IsChoose = true
+					} else {
+						key.IsChoose = false
+					}
+				})
+				this.preserve()
+			},
+			fastSearchKeWord() {
+				activity.fastSearchKeWord().then(res => {
+					if (res.Ret !== 200) return
+					this.dynamicList = res.Data.List || []
+				})
+			},
 			//获取列表
 			getList() {
 				activity
@@ -281,6 +353,8 @@
 						ActivityTypeIds: this.activityTypeIds, //活动类型id 多个用 , 隔开
 						ChartPermissionIds: this.chartPermissionIds, //行业id 多个用 , 隔开
 						IsShowJurisdiction: this.isId,
+						KeyWord: this.keyWord,
+						WhichDay: this.activityTimeStatus
 					})
 					.then((res) => {
 						if (res.Ret !== 200) return;
@@ -333,7 +407,7 @@
 						this.isShowJurisdiction = res.Data.IsShowJurisdiction;
 						this.listActivityStaus = res.Data.ListActivityStaus;
 						this.listActivityType = res.Data.ListActivityType;
-						this.listChartPermission = res.Data.ListChartPermission || [];
+						this.listChartPermission = res.Data.ListChartPermission || [];
 						this.listChartPermissionInit = res.Data.ListChartPermission2
 						if (name == "traverse") {
 							const hyArr = [];
@@ -344,12 +418,13 @@
 							});
 							this.chartPermissionIds = hyArr.join(",");
 						}
+						if (this.isGain) {
+							// this.preserve()
+						} else {
+							this.shareOption()
+						}
 					});
-				if (this.isGain) {
-					// this.preserve()
-				} else {
-					this.shareOption();
-				}
+
 
 			},
 			//头部tabs切换
@@ -507,8 +582,81 @@
 						}
 					});
 			},
+			//遍历
+			preserve() {
+				const arr = []
+				const str = []
+				this.listActivityStaus.forEach(item => {
+					if (item.IsChoose) {
+						arr.push(item.Id)
+						str.push(item.StatusName)
+					}
+				})
+				if (str.length == this.listActivityStaus.length) {
+					this.activeStateName = '所有状态'
+				} else {
+					this.activeStateName = str.join(',')
+				}
+				this.activeState = arr.join(',')
+				const arrTwo = []
+				this.activityTimeList.forEach(key => {
+					if (key.IsChoose) {
+						arrTwo.push(key.Id)
+					}
+				})
+				this.activityTimeStatus = arrTwo.join(',')
+				const hyArr = []
+				const hyStr = []
+				this.listChartPermission.forEach(key => {
+					if (key.IsChoose) {
+						hyArr.push(key.ChartPermissionId)
+						hyStr.push(key.PermissionName)
+					}
+				})
+				if (hyStr.length == this.listChartPermission.length && hyStr.length > 0) {
+					this.chartPermissionName = '所有行业'
+				} else if (hyStr.length <= 0) {
+					this.chartPermissionName = '行业分类'
+				} else {
+					this.chartPermissionName = hyStr.join(',')
+				}
+				this.chartPermissionIds = hyArr.join(',')
+				const lxArr = []
+				const lxStr = []
+				this.listActivityType.forEach(key => {
+					if (key.IsChoose) {
+						lxArr.push(key.ActivityTypeId)
+						lxStr.push(key.ActivityTypeName)
+					}
+				})
+				if (lxStr.length == this.listActivityType.length && lxStr.length > 0) {
+					this.activityTypeName = '所有活动'
+				} else if (lxStr.length <= 0) {
+					this.activityTypeName = '活动类型'
+				} else {
+					this.activityTypeName = lxStr.join(',')
+				}
+				this.activityTypeIds = lxArr.join(',')
+				this.getList()
+			},
+			//选择标签
+			changeTarget(index, item) {
+				let arrIndex = this.spanIndex.indexOf(index);
+				if (arrIndex > -1) {
+					this.spanIndex.splice(arrIndex, 1);
+					this.dynamicLKeyWodr.splice(arrIndex, 1);
+				} else {
+					this.spanIndex.push(index);
+					this.dynamicLKeyWodr.push(item.KeyWord)
+				}
+				this.keyWord = this.dynamicLKeyWodr.join(',')
+				this.page_no = 1
+				this.getList()
+			},
+		},
+		onShow() {
+			this.$store.dispatch("statistics",{PageType:'Activit'})
 		},
-		onShow() {},
 		/**
 		 * 用户点击分享
 		 */
@@ -534,7 +682,12 @@
 					"&typeName=" +
 					this.activityTypeName +
 					"&tabs=" +
-					this.tabsActive,
+					this.tabsActive +
+					"&timeStatus=" +
+					this.activityTimeStatus +
+					"&indexs=" + this.spanIndex +
+					"&keys=" + this.keyWord,
+
 				success: (res) => {},
 				fail: (err) => {},
 			};
@@ -559,7 +712,7 @@
 			} else {
 				this.getScheduleList();
 			}
-		}),
+		})
 	};
 </script>
 
@@ -567,6 +720,135 @@
 	@import "../../activityPages/index.scss";
 
 	.box-content {
-		padding: 290rpx 34rpx 20rpx !important;
+		padding: 0rpx 34rpx 20rpx !important;
+	}
+
+	.dynamic-content {
+		padding: 90rpx 30rpx 10rpx;
+		width: 100%;
+		background-color: #fff;
+		display: flex;
+		flex-wrap: wrap;
+		border-bottom: 3px solid #F7F7F7;
+
+		.target-title {
+			padding: 5rpx 20rpx 4rpx 5rpx;
+			border-radius: 20rpx;
+			margin: 15rpx 20rpx 15rpx 0;
+			font-size: 30rpx;
+			color: #2C83FF;
+
+		}
+
+		.target-item {
+			padding: 5rpx 20rpx;
+			color: #2C83FF;
+			font-size: 30rpx;
+			font-weight: 400;
+			font-family: PingFang SC;
+			background-color: #EBF4FF;
+			margin: 15rpx 20rpx 15rpx 0;
+			border-radius: 27rpx;
+		}
+
+		.target-search {
+			display: flex;
+			justify-content: center;
+			align-items: center;
+
+			image {
+				width: 30rpx;
+				height: 30rpx;
+			}
+		}
+
+		.bgcolor {
+			background-color: #3385FF !important;
+			color: #fff !important;
+
+		}
+	}
+
+	.select-sticky {
+		position: sticky !important;
+		width: 100%;
+		top: 78rpx;
+		z-index: 9999;
+		background-color: #fff;
+
+		.select-conyent {
+			padding: 0 30rpx;
+
+			.decide {
+				background-color: #F8F8FA;
+				display: flex;
+				align-items: center;
+				margin: 0 auto;
+				height: 110rpx;
+				width: 100%;
+				padding-left: 30rpx;
+			}
+
+			.items-box {
+				width: 40rpx;
+			}
+
+			.menu-items {
+				background-color: #F8F8FA;
+				width: 100%;
+				display: flex;
+				flex-wrap: wrap;
+				padding: 30rpx 30rpx 0;
+
+				.menu-items-box {
+					display: flex;
+					width: 50%;
+					font-size: 28rpx;
+					font-weight: 400;
+					margin-bottom: 40rpx;
+
+				}
+			}
+
+			.replacement-box {
+				background-color: #fff;
+				border-radius: 0rpx 0rpx 16rpx 16rpx;
+			}
+
+			.replacement {
+				margin: 0rpx 30rpx 20rpx;
+				display: flex;
+				background-color: #2C83FF;
+				opacity: 1;
+				height: 60rpx;
+				line-height: 58rpx;
+				font-size: 28rpx;
+				font-weight: 400;
+				color: #FFFFFF;
+				border-radius: 30rpx;
+
+				text {
+					flex: 1;
+					text-align: center;
+
+				}
+
+				.replacement-box {
+					border: 1rpx solid #2C83FF;
+					opacity: 1;
+					color: #2C83FF;
+					background: #FFFFFF;
+					border-radius: 28rpx 0rpx 28rpx 28rpx;
+				}
+			}
+		}
+	}
+
+	.activity-content .nodata {
+		padding-top: 80rpx !important;
+	}
+
+	.activity-content .nodataTwo {
+		padding-top: 280rpx !important;
 	}
 </style>

+ 1 - 1
pages/advice/advice.vue

@@ -193,7 +193,7 @@
 		width: 368rpx;
 		height: 80rpx;
 		// position: relative;
-    background-color: #3385FF;
+		background: linear-gradient(268deg, #2DDBFF 0%, #1599FF 49%, #005EFF 100%);
 		color: #fff;
 		font-size: 34rpx;
 		margin: 0 auto;

+ 19 - 3
pages/index/index.vue

@@ -24,7 +24,11 @@
 						<image src="@/static/img/border_act.png" mode="" class="border_act" v-if="tabAct_id == item.ChartPermissionId"></image>
 						</view>
 					</block>
+					<view class="show-right">
+						<image src="../../static/img/collect_act.png" mode=""></image>
+					</view>
 				</scroll-view>
+				
 			</view>
 		</view>
 		<block v-if="haveData">	
@@ -95,7 +99,7 @@ export default {
 	watch: {
 		tabAct_id: {
 			handler() {
-				this.getReportList();
+				this.getReportList();		
 			},
 			immediate:true
 		}
@@ -106,10 +110,10 @@ export default {
 			this.tabAct_id = optios.tabid
 			this.getReportList();
 		}
-		
 		this.getTabs();
 	},
 	onShow() {
+		this.$store.dispatch("statistics",{PageType:'Summary',ChartPermissionId:this.tabAct_id})
 		// #ifdef MP-WEIXIN
 			uni.hideHomeButton()
 		// #endif
@@ -124,6 +128,7 @@ export default {
 				   scrollTop: 0,
 				   duration: 0,
 				});
+				this.$store.dispatch("statistics",{PageType:'Summary',ChartPermissionId:this.tabAct_id})
 			}
 		},
 		/* 获取列表 */
@@ -304,14 +309,25 @@ export default {
 			font-size: 32rpx;
 			box-shadow: 0 3rpx 6rpx rgba(187,216,255,0.2);
 			.scroll-tab {
+				position: relative;
 				width: 100%;
+				// height: 100rpx;
 				white-space: nowrap;
+				.show-right {
+					position: absolute;
+					top: 0rpx;
+					right: -10rpx;
+					image {
+						width: 40rpx;
+						height: 30rpx;
+					}
+				}
 			}
 			.scroll-tab-item {
 				// flex-grow: 1;
 				text-align: center;
 				display: inline-block;
-				padding: 0 8rpx 30rpx 8rpx;
+				padding: 20rpx 8rpx 30rpx 8rpx;
 				margin-right: 40rpx;
 				border-bottom: 8rpx solid transparent;
 				position: relative;

+ 16 - 1
pages/login/login.vue

@@ -7,7 +7,7 @@
 		<view class="bind-cont">
 			<view class="tel-bind" v-if="bind_type === 1">
 				<view class="ipt-item">
-					<label class="item-label">手机号</label>
+					<label class="item-label item-iphone" @click="isAreaCode=true">+86<u-icon :name="isAreaCode?'arrow-up':'arrow-down'" color="#2979ff" size="28"></u-icon></label>
 					<input type="text" v-model="phoneIpt" class="ipt" placeholder="请输入手机号" style="width: 300rpx;">
           <button open-type="getPhoneNumber" value="用户授权" @getphonenumber="getPhoneNumber" class='code-btn'>微信手机号绑定</button> 
 				</view>
@@ -45,11 +45,13 @@
 				<button @click="bindHandle" class='infobutton bind-btn'>提交</button>
 			</view>
 		</view>
+		<areaCode :isAreaCode="isAreaCode" :areaCode="areaCode" />
 	</view>
 </template>
 
 <script>
 	import { User } from '@/config/api.js';
+	import areaCode from "@/components/areaCode.vue";
 	export default {
 		data() {
 			return {
@@ -64,8 +66,16 @@
 				phoneIpt:'',
 				phone_code:'',
 				countryCode:'',//区号
+				isAreaCode: false,
+				areaCode: {
+					id: '',
+					type: ''
+				},
 			};
 		},
+		components: {
+			areaCode,
+		},
 		methods:{
 			/* 切换方式 */
 			toggleTab(val) {
@@ -304,5 +314,10 @@
 			}
 		}
 	}
+	// .item-iphone {
+	// 	display: flex;
+	// 	justify-content: space-between;
+	// 	align-items: center;
+	// }
 }
 </style>

+ 4 - 3
pages/reportDetail/reportDetail.vue

@@ -59,8 +59,8 @@
 				access_token:'',//用户标识
 				isIphoneX:false,//判断机型
 				reportInfo:'',
-				//linkurl:'https://details.hzinsights.com/raiReportDtl',//线上链接地址
-				linkurl:'http://192.168.1.25:2000/raiReportDtl',//链接地址
+				linkurl:'https://details.hzinsights.com/raiReportDtl',//线上链接地址
+				//linkurl:'http://192.168.1.25:2000/raiReportDtl',//链接地址
 				showNav:false,
 				id:'',
 				idReport:null,
@@ -91,7 +91,8 @@
 						this.sale_number = res.Data.Detail.SellerMobile;
 						if(res.Data.HasPermission === 1) { //有访问权限
 							this.reportInfo = res.Data.Detail;
-							this.access_token = this.access_token || this.$db.get('access_token');
+							this.access_token = this.access_token || this.$db.get('access_token');
+							this.$store.dispatch("statistics",{PageType:'ReportParticulars',DetailId:this.id})
 						}
 					}
 				})

+ 45 - 21
pages/reportForm/reportForm.vue

@@ -275,7 +275,8 @@
 				Reports.getClassify().then(res => {
 					this.tabBars = res.Data.List
 					if (!this.tabAct_id) {
-						this.tabAct_id = res.Data.List[0].ChartPermissionId
+						this.tabAct_id = res.Data.List[0].ChartPermissionId
+						this.$store.dispatch("statistics",{PageType:'Report',ChartPermissionId:this.tabAct_id})
 					}
 
 				})
@@ -293,8 +294,9 @@
 			//tabs切换事件
 			toggleTab(item, index) {
 				this.strategyIndex = index
-				if (this.tabAct_id !== item.ChartPermissionId) {
-					this.tabAct_id = item.ChartPermissionId;
+				if (this.tabAct_id !== item.ChartPermissionId) {
+					this.tabAct_id = item.ChartPermissionId;
+					this.$store.dispatch("statistics",{PageType:'Report',ChartPermissionId:this.tabAct_id})
 					this.pageNum = 1;
 					uni.pageScrollTo({
 						scrollTop: 0,
@@ -378,22 +380,39 @@
 				// });
 			},
 			//点击顶置的图标
-		async	isOverhead(id) {
-			await	this.public('show',false)
-					Reports.postToptt({
-						IndustrialManagementId: id
-					}).then(res => {
-						if (res.Ret === 200) {
-							this.page_no = 1;
-							this.refresh = true;
-							this.industryList = []
-							this.getIndustryList()
-							uni.showToast({
-								title: res.Msg,
-								duration: 2000
-							});
-						}
-					})
+			isOverhead(id) {
+				this.$store.dispatch('checkHandle').then(res => {
+					app.globalData.isAuth = res.IsAuth;
+					app.globalData.isBind = res.IsBind;
+					if ((!res.IsAuth) && (!res.IsBind)) { //已授权已绑定
+						Reports.postToptt({
+							IndustrialManagementId: id
+						}).then(res => {
+							if (res.Ret === 200) {
+								this.page_no = 1;
+								this.refresh = true;
+								this.industryList = []
+								this.getIndustryList()
+								uni.showToast({
+									title: res.Msg,
+									duration: 2000
+								});
+							}
+						})
+					} else if (res.IsAuth) { //未授权
+						this.tabsActive = 0
+						uni.navigateTo({
+							url: '/pages/authGuide/authGuide'
+						})
+					} else if (res.IsBind && !res.IsAuth) { //已授权未绑定
+						this.tabsActive = 0
+						uni.navigateTo({
+							url: '/pages/login/login'
+						})
+					}
+				})
+				
+					
 			},
 			hideIsred(is) {
 				this.tabBarsTow[this.strategyIndexTwo].IsRed = is
@@ -485,8 +504,12 @@
 			}
 			wx.stopPullDownRefresh();
 		}),
-		onShow() {
-			if (this.tabAct_id && app.globalData.isSx) {
+		onShow() {
+			console.log(this.tabAct_id);
+			if(this.tabAct_id){
+				this.$store.dispatch("statistics",{PageType:'Report',ChartPermissionId:this.tabAct_id})
+			}
+			if (this.tabAct_id && app.globalData.isSx) {
 				this.getTradeList()
 			}
 
@@ -514,6 +537,7 @@
 
 		},
 		onHide(){
+			if(this.strategyIndex==4 || this.strategyIndex==5) return
 			this.selectComponent('#menuItem').toggle(false);
 		},
 	}

+ 2 - 12
pages/search/search.vue

@@ -144,18 +144,7 @@
 					this.tabAct_id=1
 					this.isResult = false;
 				}
-			},
-      //监听tabs的变化
-      tabAct_id: {
-      			handler() {
-					if(this.isTabAct){
-						// console.log(111)
-						// this.getDataList();
-					}
-      				
-      			},
-      			// immediate:true
-      		}
+			}
 		},
 		methods:{
       //tabs切换事件
@@ -289,6 +278,7 @@
 			}
 		},
 		onShow() {
+			this.$store.dispatch("statistics",{PageType:'SummarySearch'})
 			this.getKeyWord();
 			
 		}

+ 3 - 3
reportPages/IndustryReport/IndustryReport.vue

@@ -79,15 +79,15 @@
 			};
 		},
     onLoad(option) {
-		this.$store.dispatch("checkHandle",'load').then(res=>{
-			this.industrialManagementId=option.id
+		this.industrialManagementId=option.id
+		this.$store.dispatch("checkHandle",'load').then(res=>{		
 			this.tabAct_id=option.tab
 			this.toArticleCategoryList()
 		})
 		
     },
 	onShow() {
-		
+		this.$store.dispatch("statistics",{PageType:'IndustryList',IndustrialManagementId:this.industrialManagementId})
 	},
     watch:{
       //监听tabs的变化

+ 2 - 0
reportPages/industrialReport/industrialReport.vue

@@ -50,6 +50,8 @@
 		 })
 		
     },
+	onShow() {
+	},
     methods:{
     /* 获取列表 */
     getCollectList() {

+ 1 - 0
reportPages/reportSearch/reportSearch.vue

@@ -241,6 +241,7 @@
 			
 		},
 		onShow() {
+			this.$store.dispatch("statistics",{PageType:'ReportSearch'})
 			this.getKeyWord()		
 		},
 		/**

TEMPAT SAMPAH
static/img/search_iocn.png


+ 0 - 0
static/img/activity_act.png → static/img/tab/activity_act.png


+ 0 - 0
static/img/activity_ico.png → static/img/tab/activity_ico.png


+ 12 - 0
store/index.js

@@ -39,6 +39,18 @@ const store = new Vuex.Store({
 					reject(err)
 				})
 			})
+		},
+		//获取用户的pv/uv
+		statistics(type,payload){
+			return new Promise ((resolve,reject)=>{
+				User.pageHistory(payload).then(res => {
+					if(res.Ret === 200){
+						resolve(res.Data)
+					}
+				}).catch(err => {
+					reject(err)
+				})
+			})
 		}
 	},
 	getters: {