Browse Source

查研观向11.0 暂存

hbchen 1 year ago
parent
commit
570ee7732b

+ 7 - 4
activityPages/endActivity/endActivity.vue

@@ -1,8 +1,8 @@
 <template>
   <view class="container container-end-actibity">
     <!-- 筛选部分 -->
-    <view class="select-content-activity">
-      <view class="screen-item">
+    <view class="select-content-activity" >
+      <view class="screen-item" v-if="endType=='hongze'">
         <text :class="[isShowJurisdiction ? 'active' : '', 'text-item']" @click="permissioActivity">有权限行业</text>
         <!-- 各种状态选择 -->
         <view class="select-conyent" ref="select-conyent">
@@ -25,7 +25,7 @@
         </view>
         <text @click="selectMultipleHandler(item, '类型')" v-for="item in activityTypeList" :key="item.Id" :class="['select-item-multiple', item.IsChoose && 'active']">{{ item.StatusName }}</text>
       </view>
-      <view class="screen-item screen-item-ul">
+      <view class="screen-item screen-item-ul" :style="endType=='research'?'margin-top:0':''">
         <text @click="monthWeekHandler(item)" v-for="item in activityMonthWeekList" :key="item.Id" :class="['text-item', item.IsChoose && 'active']">{{ item.StatusName }}</text>
       </view>
     </view>
@@ -53,6 +53,8 @@ export default {
       selectMultipleType: "", // 筛选的类型
       dataList: [],
       haveData: true,
+			// hongze 弘则活动 research 研选活动
+			endType:''
     };
   },
   methods: {
@@ -81,7 +83,8 @@ export default {
       });
     },
   },
-  onLoad() {
+  onLoad(options) {
+		this.endType = options.type?options.type:'hongze'
     this.getActivityList();
   },
 };

+ 3 - 1
activityPages/themeActivity/themeActivity.vue

@@ -88,7 +88,8 @@
                 <view class="item-text" @click="goDetail(item)">
                   <view class="activity-title text_twoLine">
                     <image style="width:83rpx;height:33rpx" v-if="item.IsResearchPoints" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
-                    <image v-if="!item.IsResearchPoints && item.IsExternalLabel" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"></image>
+										<image style="width:83rpx;height:33rpx" v-else-if="true" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
+                    <image v-if="item.IsExternalLabel" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"></image>
                     {{ item.ActivityName }}
                   </view>
                   <text class="text_twoLine" v-if="item.Expert && item.SourceType == 1">专家背景:{{ item.Expert }} </text>
@@ -311,6 +312,7 @@ export default {
 
     // 进入页面的初始化
     loadInit(option) {
+			console.log(option);
       this.label = option.title;
       this.type = option.type;
       this.chartPermissionIds = option.permissionIds || "";

+ 5 - 3
components/ItemComponent/activityItem.vue

@@ -12,7 +12,8 @@
     <view class="content-type"> {{ list.ActivityTypeName || "专项产业调研" }}</view>
     <view :class="['content-title', 'text-Line', list.ResearchTheme && 'content-min-hight']" v-if="list.ActivityName || list.ResearchTheme">
       <image style="width:83rpx;height:33rpx" v-if="list.IsResearchPoints" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
-      <image v-if="!list.IsResearchPoints && list.IsExternalLabel" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"></image>
+			<image v-else-if="true" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"></image>
+      <image v-else-if="list.IsExternalLabel" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"></image>
       {{ list.ActivityName || list.ResearchTheme }}
     </view>
     <view style="display: flex" class="content-text content-min-hight text_twoLine" v-if="list.ActivityTimeText && list.SourceType !== 1">
@@ -665,8 +666,9 @@ export default {
     image {
       width: 83rpx;
       height: 33rpx;
-      vertical-align: middle;
-      margin-right: 5rpx;
+      vertical-align: bottom;
+			padding-bottom: 6rpx;
+      margin-right: 16rpx;
     }
   }
   .content-text {

+ 27 - 10
components/ItemComponent/reportItem.vue

@@ -1,6 +1,7 @@
 <template>
   <view class="container-report-item" @click="goDetail(list)">
-    <view class="item-title" v-if="list.Title">
+    <view class="item-title" 
+		:class="list.CategoryName == '买方研选'?'yan-xuan-tag':'front-vertical-line'" v-if="list.Title" >
       <mp-html :content="richTextClamp(3) + list.Title + '</div>'" />
     </view>
     <view class="item-image" v-if="list.BodyHtml">
@@ -76,16 +77,32 @@ export default {
     color: #333333;
     line-height: 38rpx;
     text-indent: 0.5em;
-    &::before {
-      content: "";
-      position: absolute;
-      top: 5rpx;
-      left: 0;
-      width: 6rpx;
-      height: 31rpx;
-      background-color: #3385ff;
-    }
   }
+	.front-vertical-line{
+		&::before {
+		  content: "";
+		  position: absolute;
+		  top: 5rpx;
+		  left: 0;
+		  width: 6rpx;
+		  height: 31rpx;
+		  background-color: #3385ff;
+		}
+	}
+	.yan-xuan-tag{
+		text-indent: 90rpx;
+		&::before {
+		  content: "";
+		  position: absolute;
+		  top: 5rpx;
+			background-image: url(https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png);
+			background-size: 100% 100%;
+			background-repeat: no-repeat;
+		  left: 0;
+		  width: 82rpx;
+		  height: 32rpx;
+		}
+	}
 
   .item-content,
   .item-rich-text {

+ 3 - 2
components/activity/indexActivity.scss

@@ -111,8 +111,9 @@
           image {
             width: 83rpx;
             height: 33rpx;
-            vertical-align: middle;
-            margin-right: 5rpx;
+            vertical-align: bottom;
+            margin-right: 16rpx;
+						margin-bottom: 4rpx;
           }
         }
       }

+ 24 - 7
pageMy/myCollection/myCollection.vue

@@ -27,13 +27,11 @@
               <text> {{ item.NickName }}</text>
             </view>
           </blok>
-          <view class="item-title">
-            <text style="display: inline" @click="goDetailReport(item)">
-              {{ item.Title }}
-            </text>
-            <text @click="themeDetails(item, val)" class="item-industry" v-for="val in item.List" :key="val.IndustrialManagementId">
-              # {{ val.IndustryName }}
-            </text>
+          <view class="item-title" :class="item.CategoryId==0?'yan-xuan-tag':''" @click="goDetailReport(item)">
+							{{item.Title}}
+							<text @click.stop="themeDetails(item, val)" class="item-industry" v-for="val in item.List" :key="val.IndustrialManagementId">
+							  # {{ val.IndustryName }}
+							</text>
           </view>
           <view class="item-more">
             <text>{{ item.PublishDate }}</text>
@@ -161,6 +159,9 @@ export default {
 
     // 去往主题详情
     themeDetails(item, val) {
+			// console.log(e);
+			// e.stopPropagation()
+			// e.preventDefault()
       if (item.Source === 1) {
         //非严选
         uni.navigateTo({ url: "/reportPages/IndustryReport/IndustryReport?id=" + val.IndustrialManagementId });
@@ -314,12 +315,28 @@ export default {
       padding: 35rpx 20rpx 0;
       .item-title {
         font-weight: 500;
+				position: relative;
         .item-industry {
+					text-indent: 0;
           margin-left: 10rpx;
           color: #3385ff;
           display: inline-block;
         }
       }
+			.yan-xuan-tag{
+				text-indent: 90rpx;
+				&::before {
+				  content: "";
+				  position: absolute;
+				  top: 5rpx;
+					background-image: url(https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png);
+					background-size: 100% 100%;
+					background-repeat: no-repeat;
+				  left: 0;
+				  width: 82rpx;
+				  height: 32rpx;
+				}
+			}
       .item-user {
         display: flex;
         align-items: center;

+ 5 - 1
pageMy/mySchedulepage/mySchedulepage.vue

@@ -35,7 +35,11 @@
           </view>
           <view class="item">
             <view class="item-text" @click="goDetail(item)">
-              <text class="activity-title"> {{ item.ActivityName }} </text>
+              <view class="activity-title text_twoLine">
+								<image style="width:83rpx;height:33rpx" v-if="item.IsResearchPoints" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
+								<image style="width:83rpx;height:33rpx" v-else-if="true" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"></image>
+								{{ item.ActivityName }}
+							</view>
               <text class="text_twoLine" v-if="item.Expert && item.SourceType == 1">专家背景:{{ item.Expert }} </text>
               <text class="text_twoLine" v-if="item.DistinguishedGuest">嘉宾:{{ item.DistinguishedGuest }} </text>
               <text class="text_twoLine" v-if="item.Speaker">主讲人:{{ item.Speaker }}</text>

+ 47 - 0
pages-purchaser/components/purchaser-report-list-mixins.js

@@ -0,0 +1,47 @@
+import { Reports, Research, Report } from "@/config/api.js";
+export default {
+  data() {
+    return {
+
+    };
+  },
+  methods: {
+		//收藏
+		async collectClick(item) {
+		  await this.$store.dispatch("showLoginModal");
+		  const res = await Report.collectRpt({ ArticleId: item.ArticleId, PageRouter: "月度收藏榜" });
+		  if (res.Ret === 200) {
+		    item.IsCollect = !item.IsCollect;
+		    item.IsCollect
+		      ? (item.CollectNum += 1) &&
+		        uni.showToast({
+		          title: "收藏成功",
+		          icon: "none",
+		          duration: 2000,
+		        })
+		      : (item.CollectNum -= 1);
+		    !item.IsCollect &&
+		      uni.showToast({
+		        title: "已取消收藏",
+		        icon: "none",
+		        duration: 2000,
+		      });
+		  }
+		},
+		//去往作者详情
+		authorDetails(item) {
+		  uni.navigateTo({
+		    url: "/reportPages/authorPages/authorPages?id=" + item.DepartmentId,
+		  });
+		},
+		//去往文章详情页面
+		goDetail(item) {
+		  this.$store.commit("setRouterReport", "月度收藏榜");
+		  uni.navigateTo({ url: "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId });
+		},
+		//去往主题详情
+		themeDetails(item, source) {
+		  uni.navigateTo({ url: "/reportPages/researchTheme/researchTheme?id=" + item.IndustrialManagementId + "&pageRouter=" + source });
+		},
+  }
+};

+ 34 - 0
pages-purchaser/components/purchaser-report-list.scss

@@ -0,0 +1,34 @@
+@import  "./cssAuthorTheme.scss";
+
+.announcement{
+	background: #fff;
+	padding: 0 30rpx;
+	.content-ul {
+		border-top: 1px solid #f6f6f6;
+		padding:0;
+		.li-type {
+			padding: 0;
+			width: 91rpx;
+			height: 28rpx;
+			margin-top: 6rpx;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			flex-shrink: 0;
+			border-radius: 4rpx;
+			color: #fff;
+			font-size: 20rpx;
+			font-weight: 500;
+		}
+		.li-item {
+			.li-user {
+				width: 200rpx;
+				.user_report-img {
+					width: 23rpx;
+					height: 26rpx;
+					flex-shrink: 0;
+				}
+			}
+		}
+	}
+}

+ 159 - 0
pages-purchaser/lastestReport/lastestReport.vue

@@ -0,0 +1,159 @@
+<template>
+	<view class="lastest-report-container">
+		<view class="announcement" >
+			<van-checkbox-group class="checkbox-ui" :value="newCheckboxValue" @change="checkboxChange">
+				<van-checkbox
+					style="margin-right: 30rpx; flex-shrink: 0"
+					shape="square"
+					icon-size="14"
+					:name="item.ArticleTypeId"
+					v-for="item in checkboxGroup"
+					:key="item.ArticleTypeId"
+					>{{ item.ArticleTypeName }}</van-checkbox
+				>
+			</van-checkbox-group>
+		  <view class="content-ul">
+		    <blok v-if="haveData">
+		      <view class="user-li" v-for="(item, index) in collectionList" :key="item.ArticleId">
+		        <view class="li-item">
+		          <text class="li-type" :style="{ background: item.ButtonStyle }">
+		            {{ item.ArticleTypeName }}
+		          </text>
+		          <view>
+		            <text
+		              class="title"
+		              @click="goDetail(item)"
+		              :style="{ display: 'inline', marginLeft: item.Title.substr(0, 1) != '【' ? '14rpx' : 0 }"
+		              >{{ item.Title }}</text
+		            >
+		            <text class="li-industry" @click="themeDetails(key, '月度收藏榜')" v-for="key in item.List" :key="key.IndustrialManagementId">
+		              # {{ key.IndustryName }}
+		            </text>
+		          </view>
+		        </view>
+		        <view class="li-item li-bottom" style="color: #999999">
+		          <viwe class="time-user">
+		            <text>
+		              {{ item.PublishDate }}
+		            </text>
+		            <view class="li-user" @click="authorDetails(item)">
+		              <image class="user_report-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/user_report.png"></image>
+		              <text class="text_oneLine"> {{ item.NickName }}</text>
+		            </view>
+		          </viwe>
+		
+		          <view class="li-item user-img">
+		            <view class="img-box">
+		              <image class="user-pv" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/examine_icon.png"></image>
+		              <text>
+		                {{ item.Pv }}
+		              </text>
+		            </view>
+		            <view class="img-box" @click="collectClick(item)">
+		              <image v-if="item.IsCollect" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_act.png"></image>
+		              <image v-else src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_ico.png"></image>
+		              <text class=""> {{ item.CollectNum }}人收藏 </text>
+		            </view>
+		          </view>
+		        </view>
+		      </view>
+		    </blok>
+		    <view class="nodata" v-else>
+		      <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/act_search.png" mode="" class="nodata_ico"></image>
+		      <text>暂无活动</text>
+		    </view>
+		  </view>
+		  <u-loadmore :status="status" :load-text="loadText" v-if="page_no > 1" />
+		</view>
+		<Loading />
+	</view>
+</template>
+
+<script>
+	import { Research } from "@/config/api.js";
+	import purchaserReportListMixins from "../components/purchaser-report-list-mixins.js";
+	export default {
+		data() {
+			return {
+				collectionList: [], //用户收藏
+				newCheckboxValue: [],
+				checkboxGroup: [],
+				status: "loadmore",
+				loadText: {
+				  loadmore: "上拉加载更多",
+				  loading: "加载中",
+				  nomore: "已经到底了",
+				},
+				page_no: 1,
+				pageSize: 10,
+				haveData: true,
+			}
+		},
+		// purchaserReportListMixins 混入了 收藏、作者详情、文章详情、主题详情-method
+		mixins:[purchaserReportListMixins],
+		onLoad() {
+			this.researchArticleTypeList();
+			this.researchArticleNewList()
+		},
+		methods: {
+			// 复选框组的选择事件
+			checkboxChange(e) {
+			  this.newCheckboxValue = e.detail;
+			  this.page_no = 1;
+			  this.researchArticleNewList();
+			},
+			// 获取最新下的文章类型
+			async researchArticleTypeList() {
+			  const res = await Research.researchArticleTypeList();
+			  if (res.Ret === 200) {
+			    this.checkboxGroup = res.Data.List;
+			  }
+			},
+			// 获取最新的文章列表
+			async researchArticleNewList() {
+			  const res = await Research.researchArticleNewList({
+			    PageSize: this.pageSize,
+			    CurrentIndex: this.page_no,
+			    ArticleTypeIds: this.newCheckboxValue.join(","),
+			  });
+			  if (res.Ret === 200) {
+			    this.status = res.Data.Paging.IsEnd ? "nomore" : "loadmore";
+			    this.collectionList = this.page_no === 1 ? res.Data.List || [] : [...this.collectionList, ...res.Data.List];
+			    if (this.page_no == 1) {
+			      this.haveData = this.collectionList.length ? true : false;
+			    }
+			  }
+			},
+		},
+		onReachBottom() {
+		  if (this.status == "nomore") return;
+		  this.status = "loading";
+		  this.page_no++;
+		  this.researchArticleNewList();
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import "../components/purchaser-report-list.scss";
+	.lastest-report-container{
+		background-color: #f7f7f7;
+		padding-top: 20rpx;
+		box-sizing: border-box;
+		.checkbox-ui {
+			width: 100%;
+			padding: 30rpx 0;
+			overflow: hidden;
+			overflow-x: auto;
+			display: flex;
+			border-bottom: 1rpx solid #ececec;
+		}
+	}
+</style>
+<style lang="scss">
+	.van-checkbox-group {
+	  display: flex;
+	  flex-wrap: wrap;
+	}
+	
+</style>

+ 26 - 0
pages-purchaser/leaflet/leaflet.vue

@@ -0,0 +1,26 @@
+<template>
+	<view>
+		报价单
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				url:''
+			}
+		},
+		methods: {
+			
+		},
+		onLoad(option) {
+			let id = option.Id || 0
+			console.log(id);
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 326 - 0
pages-purchaser/researchList/researchList.vue

@@ -0,0 +1,326 @@
+<template>
+	<view class="research-list-container">
+		<view class="announcement">
+		  <view class="tab-cont">
+		    <scroll-view
+		      scroll-x="true"
+		      scroll-with-animation
+		      class="scroll-tab"
+		      :scroll-into-view="'_' + tabIndex"
+		    >
+		      <block v-for="(item, index) in researchTabBars" :key="index">
+		        <view class="scroll-tab-item" :class="{ active: tagActive == item.name }" @click.stop="typeChange(item)">
+		          {{ item.titel }}
+		          <image
+		            src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/border_act.png"
+		            mode=""
+		            class="border_act"
+		            v-if="tagActive == item.name"
+		          ></image>
+		        </view>
+		      </block>
+		    </scroll-view>
+		  </view>
+		  <view class="content-ul" v-if="tagActive == '用户'">
+				<view class="user-li" v-for="(item, index) in collectionList" :key="item.ArticleId">
+					<view class="li-item">
+						<text class="li-serial" :style="{ background: serialBackground(index) }">
+							{{ index + 1 }}
+						</text>
+						<view>
+							<text
+								class="title"
+								@click="goDetail(item)"
+								:style="{ display: 'inline', marginLeft: item.Title.substr(0, 1) != '【' ? '14rpx' : 0 }"
+								>{{ item.Title }}</text
+							>
+							<text class="li-industry" @click="themeDetails(key, '月度收藏榜')" v-for="key in item.List" :key="key.IndustrialManagementId">
+								# {{ key.IndustryName }}
+							</text>
+						</view>
+					</view>
+					<view class="li-item li-bottom" style="color: #999999">
+						<viwe class="time-user">
+							<text>
+								{{ item.PublishDate }}
+							</text>
+							<view class="li-user" @click="authorDetails(item)">
+								<image class="user_report-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/user_report.png"></image>
+								<text class="text_oneLine"> {{ item.NickName }}</text>
+							</view>
+						</viwe>
+	
+						<view class="li-item user-img">
+							<view class="img-box">
+								<image class="user-pv" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/examine_icon.png"></image>
+								<text>
+									{{ item.Pv }}
+								</text>
+							</view>
+							<view class="img-box" @click="collectClick(item)">
+								<image v-if="item.IsCollect" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_act.png"></image>
+								<image v-else src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_ico.png"></image>
+								<text class=""> {{ item.CollectNum }}人收藏 </text>
+							</view>
+						</view>
+					</view>
+				</view>
+		    <!-- <view class="content-bottom">最新榜单您已掌握,明天再刷刷看~</view> -->
+		  </view>
+		
+		  <view class="content-ul" v-if="hotList.length && tagActive == '主题'">
+		    <view class="hot-li" v-for="(item, index) in hotList" :key="item.IndustrialManagementId">
+		      <view class="li-item hot-item">
+		        <view style="display: flex" class="text_oneLine hot-new" @click="themeDetails(item, '主题热度榜')">
+		          <text class="li-serial serial-number" :style="{ background: serialBackground(index) }">
+		            {{ index + 1 }}
+		          </text>
+		          <text class="text_oneLine title" style="display: inline"> # {{ item.IndustryName }} </text>
+		          <image class="new-img" v-if="item.IsNew" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"></image>
+		        </view>
+		        <text :class="item.IsFollw ? 'cancel-attention' : 'attention'" @click="isAttention(item, '主题')">{{
+		          item.IsFollw ? "取消关注" : "+ 关注"
+		        }}</text>
+		      </view>
+		      <view class="li-item read-more" @click="themeDetails(item, '主题热度榜')">
+		        <text class="text-box text_oneLine" v-for="val in item.IndustrialSubjectList" :key="val.IndustrialSubjectId">
+		          {{ val.SubjectName }}
+		        </text>
+		      </view>
+		    </view>
+		    <view class="content-button" @click="goThemeAuthor('主题')">查看全部主题>></view>
+		  </view>
+		  <view class="content-ul" v-if="kolList.length && tagActive == '专家'">
+		    <view class="kol-li" v-for="(item, index) in kolList" :key="item.DepartmentId">
+		      <text class="li-serial serial-number" :style="{ background: serialBackground(index) }">
+		        {{ index + 1 }}
+		      </text>
+		      <image @click="authorDetails(item)" :src="item.ImgUrl" v-if="item.ImgUrl"></image>
+		      <view class="li-item kol-item">
+		        <view class="item-top">
+		          <text @click="authorDetails(item)">
+		            {{ item.NickName }}
+		          </text>
+		          <text :class="item.IsFollw ? 'cancel-attention' : 'attention'" @click="isAttention(item, '专家')">{{
+		            item.IsFollw ? "取消关注" : "+ 关注"
+		          }}</text>
+		        </view>
+		        <text @click="themeDetails(val, 'KOL榜')" class="kol-text text_oneLine" v-for="val in item.List" :key="val.IndustrialManagementId">
+		          # {{ val.IndustryName }}
+		        </text>
+		      </view>
+		    </view>
+		    <view class="content-button" @click="goThemeAuthor('作者')">查看全部作者>></view>
+		  </view>
+		</view>
+		<u-modal
+		  v-model="goFollowShow"
+		  :content-style="{ fontSize: '32rpx' }"
+		  @confirm="goFollowShowBtn"
+		  :show-cancel-button="isCancelBtn"
+		  :confirm-text="confirmText"
+		  @cancel="isCancelBtn = false"
+		  :show-title="false"
+		  :cancel-style="{ borderRight: '1rpx solid #EBEBEB' }"
+		  :confirm-style="{ fontWeight: '700' }"
+		>
+		  <view class="slot-content">
+		    <rich-text :nodes="accounts"></rich-text>
+		  </view>
+		</u-modal>
+		<Loading />
+	</view>
+</template>
+
+<script>
+	import { Reports, Research } from "@/config/api.js";
+	import purchaserReportListMixins from "../components/purchaser-report-list-mixins.js";
+	export default {
+		
+		data() {
+			return {
+				accounts: "",
+				tagActive: "用户",
+				collectionList: [], //用户收藏
+				hotList: [],
+				kolList: [],
+				researchTabBars:[
+					{ titel: "月度收藏榜", name: "用户" },
+					{ titel: "主题热度榜", name: "主题" },
+					{ titel: "KOL榜", name: "专家" },
+				],
+				confirmText: "知道了",
+				isCancelBtn: false,
+				goFollowShow: false,
+			}
+		},
+		// purchaserReportListMixins 混入了 收藏、作者详情、文章详情、主题详情-method
+		mixins:[purchaserReportListMixins],
+		watch: {
+		  tagActive: {
+		    handler(val) {
+		      val == "用户" ? this.researchCollectionList() : val == "主题" ? this.researchHotList() : this.researchKolList();
+		    },
+		    immediate: true,
+		  },
+		},
+		mounted() {
+		  // 处理数据 列表同步详情
+		  uni.$on("updateFllowTheme", (data) => {
+		    this.hotList.forEach((item) => {
+		      if (item.IndustrialManagementId == data.id) {
+		        item.IsFollw = data.isFollw;
+		      }
+		    });
+		  });
+		  // 处理数据 列表同步详情
+		  uni.$on("updateFllowAuthor", (data) => {
+		    this.kolList.forEach((item) => {
+		      if (item.DepartmentId == data.id) {
+		        item.IsFollw = data.isFollw;
+		      }
+		    });
+		  });
+		},
+		methods: {
+			//tabs切换
+			typeChange(item) {
+			  this.tagActive = item.name;
+			},
+			//计算遍历的颜色
+			serialBackground(index) {
+			  index += 1;
+			  return index == 1 ? "#D7584F" : index == 2 ? "#E98033" : index == 3 ? "#FDD367" : "#D3D3D3";
+			},
+			//用户收藏榜
+			async researchCollectionList() {
+			  const res = await Research.researchCollectionList({ ChartPermissionId: 31 });
+			  if (res.Ret === 200) {
+			    this.collectionList = res.Data.List || [];
+			  }
+			},
+			//主题热度/近期更新更多
+			async researchHotList() {
+			  const res = await Research.researchHotList({ ChartPermissionId: 31, ThemeType: 1 });
+			  if (res.Ret === 200) {
+			    this.hotList = res.Data.List || [];
+			  }
+			},
+			//KOL榜列表接口
+			async researchKolList() {
+			  const res = await Research.researchKolList({ ChartPermissionId: 31 });
+			  if (res.Ret === 200) {
+			    this.kolList = res.Data.List || [];
+			  }
+			},
+			//关注
+			async isAttention(item, val) {
+			  await this.$store.dispatch("showLoginModal");
+			  const res =
+			    val === "主题"
+			      ? await Reports.reportFllow({ IndustrialManagementId: item.IndustrialManagementId, PageRouter: this.$store.state.pageRouterReport })
+			      : await Reports.reportFllowDepartment({ DepartmentId: item.DepartmentId, PageRouter: this.$store.state.pageRouterReport });
+			  if (res.Ret === 200) {
+			    item.IsFollw = !item.IsFollw;
+			    if (res.Data.Status == 1) {
+			      this.goFollowShow = true;
+			      this.confirmText = res.Data.GoFollow ? "去关注" : "知道了";
+			      if (res.Data.GoFollow) {
+			        this.accounts = `${val == "主题" ? "产业" : "作者"}关注成功 <br> 想要及时获取该${
+			          val === "主题" ? "产业内容的更新推送" : "作者的报告更新提示"
+			        },请关注【查研观向小助手】公众号`;
+			        this.isCancelBtn = true;
+			      } else {
+			        this.accounts =
+			          `${val == "主题" ? "产业" : "作者"}` +
+			          `关注成功<br>请关注【查研观向小助手】公众号,及时获取${val === "主题" ? "产业" : "作者"}报告更新提醒`;
+			      }
+			    } else {
+			      uni.showToast({
+			        title: "已取消关注",
+			        icon: "none",
+			        duration: 2000,
+			      });
+			    }
+			  }
+			},
+			//去关注
+			goFollowShowBtn() {
+			  if (this.confirmText == "去关注") {
+			    uni.navigateTo({
+			      url: "/activityPages/accountsOfficial/accountsOfficial",
+			    });
+			  }
+			  this.goFollowShow = false;
+			},
+			// 跳转主题 of 作者
+			goThemeAuthor(type) {
+			  type === "主题"
+			    ? uni.navigateTo({ url: "/pages-purchaser/researchTheme/researchTheme" })
+			    : uni.navigateTo({ url: "/pages-purchaser/researchAuthor/researchAuthor" });
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import "../components/purchaser-report-list.scss";
+	.research-list-container{
+		background-color: #f7f7f7;
+		padding-top: 20rpx;
+		box-sizing: border-box;
+		.tab-cont {
+			height: 115rpx;
+			background-color: #fff;
+			font-size: 32rpx;
+			border-bottom: 1rpx solid #ececec;
+			.scroll-tab {
+				position: relative;
+				width: 100%;
+				white-space: nowrap;
+				display: flex;
+				justify-content: space-around;
+			}
+			.scroll-tab-item {
+				text-align: center;
+				display: inline-block;
+				padding: 32rpx 8rpx 30rpx 8rpx;
+				border-bottom: 8rpx solid transparent;
+				margin-right: 60rpx;
+				position: relative;
+				color: #999999;
+				font-size: 32rpx;
+				&:last-child {
+					margin-right: 0;
+				}
+				&.active {
+					border-bottom: none;
+					color: #333;
+					font-weight: 500;
+				}
+				.border_act {
+					width: 80%;
+					height: 8rpx;
+					position: absolute;
+					bottom: 0;
+					left: 50%;
+					transform: translateX(-50%);
+				}
+			}
+		}
+		// .content-bottom {
+		//   background-color: #fff;
+		//   text-align: center;
+		//   line-height: 100rpx;
+		//   color: #c4c4c4;
+		//   font-size: 20rpx;
+		// }
+		.content-button {
+			height: 100rpx;
+			width: 100%;
+			text-align: center;
+			line-height: 100rpx;
+			color: #3385ff;
+		}
+	}
+</style>

+ 28 - 0
pages-purchaser/survey/surveyDetail.vue

@@ -0,0 +1,28 @@
+<template>
+	<view class="survey-box">
+		{{surveyText}}
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				surveyText:"放假都是就覅噢积分穷人家自己辅导费加工费记得根据佛倒计时发件地是和覅风刀霜剑爱附件活塞和分类撒谎腐败的世界杯金飞达"+
+					"的附件萨林杰爱 房间打扫季付比赛覅多少返回蒂萨发哈覅红诶过Hi好个覅和覅活动if和第四幅和实地"
+			}
+		},
+		methods: {
+
+		},
+		onLoad(option) {
+
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.survey-box{
+		padding: 30rpx 20rpx;
+	}
+</style>

+ 79 - 0
pages-purchaser/survey/surveySubmit.vue

@@ -0,0 +1,79 @@
+<template>
+	<view class="survey-box">
+<!-- 		<textarea :value="surveyText" placeholder="请详述您的调研需求" placeholder-style="color:#999999" 
+		 :maxlength="100" /> -->
+		 <view class="survey-textArea">
+		 	<van-field :value="surveyText" type="textarea" :maxlength="100" placeholder="请详述您的调研需求"
+		 	:border="false" :show-word-limit="true" :autosize="{minHeight: 100}" @change="inputChange($event)"></van-field>
+		 </view>
+		<view @click="submit" class="submit">提交</view>
+
+	</view>
+</template>
+
+<script>
+	import {leafletUrl} from '@/config/config'
+	export default {
+		data() {
+			return {
+				surveyText:''
+			}
+		},
+		methods: {
+			inputChange(e){
+				this.surveyText=e.detail
+			},
+			submit(){
+				// console.log(this.surveyText);
+				if(!this.surveyText){
+					uni.showToast({
+						title:'调研需求不能为空',
+						icon:'none'
+					})
+					return
+				}
+				//TODO: 提交接口对接
+				uni.showToast({
+					title:'提交成功,请等待销售与您联系',
+					duration:1500,
+					icon:'none'
+				})
+				setTimeout(()=>{
+					uni.navigateBack()
+				},1500)
+			}
+		},
+		onLoad(option) {
+			let id = option.Id || 0
+			this.url=`${leafletUrl}?Id=${id}#wechat_redirect`
+			console.log(this.url);
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.survey-box{
+		padding: 30rpx 20rpx;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		.survey-textArea{
+			width: 100%;
+			border: solid 2rpx #999999;
+			border-radius: 16rpx;
+			padding: 6rpx;
+			box-sizing: border-box;
+			margin-bottom: 40rpx;
+		}
+		.submit{
+			width: 240rpx;
+			height: 60rpx;
+			background: linear-gradient(90deg, #0151ff 0%, #01b9ff 100%);
+			color: white;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+		}
+	}
+</style>

+ 5 - 1
pages-search/components/activityBack.vue

@@ -35,7 +35,11 @@
             </view>
             <view class="item">
               <view class="item-text" @click="goDetail(item)">
-                <text class="activity-title"> {{ item.ActivityName }} </text>
+								<view class="activity-title text_twoLine">
+								  <image style="width:83rpx;height:33rpx" v-if="item.IsResearchPoints" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
+									<image style="width:83rpx;height:33rpx" v-else-if="true" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"></image>
+								  {{ item.ActivityName }}
+								</view>
                 <text class="text_twoLine" v-if="item.Expert && item.SourceType == 1">专家背景:{{ item.Expert }} </text>
                 <text class="text_twoLine" v-if="item.DistinguishedGuest">嘉宾:{{ item.DistinguishedGuest }} </text>
                 <text class="text_twoLine" v-if="item.Speaker">主讲人:{{ item.Speaker }}</text>

+ 22 - 6
pages-search/components/report.vue

@@ -100,12 +100,12 @@
             <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/user_report.png"></image>
             <text> {{ item.NickName }}</text>
           </view>
-          <view class="item-title">
-            <text style="display: inline; margin-right: 10rpx" @click="goDetailReport(item)">{{ item.Title }} </text>
-            <text class="item-industry" v-for="key in item.List" :key="key.IndustrialManagementId" @click="themeDetails(key)"
-              >#{{ key.IndustryName }}&nbsp;&nbsp;&nbsp;</text
-            >
-          </view>
+					<view class="item-title" :class="true?'yan-xuan-tag':''" @click="goDetailReport(item)">
+							{{item.Title}}
+							<text @click.stop="themeDetails(item, val)" class="item-industry" v-for="val in item.List" :key="val.IndustrialManagementId">
+							  # {{ val.IndustryName }}&nbsp;&nbsp;&nbsp;
+							</text>
+					</view>
           <view class="item-more">
             <text>{{ item.PublishDate }}</text>
             <view class="pv-ollect">
@@ -449,12 +449,28 @@ export default {
       padding: 35rpx 20rpx 0;
       .item-title {
         font-weight: 500;
+				position: relative;
         .item-industry {
+					text-indent: 0;
           margin-right: 10rpx;
           color: #3385ff;
           display: inline-block;
         }
       }
+			.yan-xuan-tag{
+				text-indent: 90rpx;
+				&::before {
+				  content: "";
+				  position: absolute;
+				  top: 5rpx;
+					background-image: url(https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png);
+					background-size: 100% 100%;
+					background-repeat: no-repeat;
+				  left: 0;
+				  width: 82rpx;
+				  height: 32rpx;
+				}
+			}
       .item-user {
         display: flex;
         align-items: center;

+ 40 - 3
pages.json

@@ -450,8 +450,44 @@
             "enablePullDownRefresh": false,
             "navigationStyle":"custom"
           }
-        }
-      ]
+        },
+				{
+					"path" : "leaflet/leaflet",
+					"style" : {
+						"navigationBarTitleText": "买方研选宣传单",
+						"enablePullDownRefresh": false
+					}
+				},
+				{
+					"path" : "survey/surveySubmit",
+					"style" : {
+						"navigationBarTitleText": "我要调研",
+						"enablePullDownRefresh": false
+					}
+				},
+				{
+					"path" : "survey/surveyDetail",
+					"style" : {
+						"navigationBarTitleText": "调研需求",
+						"enablePullDownRefresh": false
+					}
+				},
+				{
+					"path" : "researchList/researchList",
+					"style" :{
+						"navigationBarTitleText": "研选榜单",
+						"enablePullDownRefresh": false
+					}
+				}
+			  ,
+				{
+					"path" : "lastestReport/lastestReport",
+					"style" : {
+							"navigationBarTitleText": "最新报告",
+							"enablePullDownRefresh": false
+						}
+					}
+			]
     },
     {
       "root": "pages-message",
@@ -501,7 +537,8 @@
       "van-checkbox": "/wxcomponents/vant/dist/checkbox/index",
       "van-checkbox-group": "/wxcomponents/vant/dist/checkbox-group/index",
       "van-dialog": "/wxcomponents/vant/dist/dialog/index",
-      "van-popup": "/wxcomponents/vant/dist/popup/index"
+      "van-popup": "/wxcomponents/vant/dist/popup/index",
+			"van-field": "/wxcomponents/vant/dist/field/index"
     }
   },
   "tabBar": {

+ 5 - 175
pages/activity/activity.vue

@@ -41,64 +41,8 @@
     <!-- 活动列表 -->
     <block v-if="isUserBindingPhoneNumber">
       <view class="collect-activity" v-if="haveData">
-        <view class="content-list">
-          <view class="half">
-            <block v-for="(item, index) in collectTypeList" :key="index">
-              <view class="activity-ltem" v-if="item.Position == 1">
-                <image class="zindex-one" :src="item.ImgUrl" lazy-load></image>
-                <view class="content">
-                  <view class="item-img" @click="goDetails(item)"> </view>
-                  <view :style="{ 'background-image': 'url(' + item.ImgUrlBg + ')' }" class="activity-ui">
-                    <view class="activity-li" :style="{ 'background-image': 'url(' + val.ImgUrlBg + ')' }" v-for="val in item.List" :key="val.ActivityId" @click="goDetails(val, item.Resource)">
-                      <image v-if="val.IsResearchPoints" style="width: 83rpx; right: -6rpx;height:33rpx" class="item-image" lazy-load src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
-                      <block v-else>
-                        <image
-                          style="width: 73rpx; right: -6rpx"
-                          v-if="val.IsExternalLabel"
-                          class="item-image"
-                          lazy-load
-                          src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"
-                        ></image>
-                        <image v-if="!val.IsExternalLabel && val.IsNew" class="item-image" lazy-load src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"></image>
-                      </block>
-                      <text class="text_oneLine"> {{ val.KeyWord }}</text>
-                      <view class="item-trip" v-if="val.TripStatus == 2">确定行程</view>
-                      <view class="item-trip item-city" v-if="!val.IsResearchPoints && val.City.length == 2">{{ val.City }}</view>
-                    </view>
-                  </view>
-                </view>
-              </view>
-            </block>
-          </view>
-          <view class="half">
-            <block v-for="(item, index) in collectTypeList" :key="index">
-              <view class="activity-ltem" v-if="item.Position == 2">
-                <image class="zindex-one" :src="item.ImgUrl" lazy-load></image>
-                <view class="content">
-                  <view class="item-img" @click="goDetails(item)"> </view>
-                  <view :style="{ 'background-image': 'url(' + item.ImgUrlBg + ')' }" class="activity-ui">
-                    <view class="activity-li" :style="{ 'background-image': 'url(' + val.ImgUrlBg + ')' }" v-for="val in item.List" :key="val.ActivityId" @click="goDetails(val, item.Resource)">
-                      <image v-if="val.IsResearchPoints" style="width: 83rpx; right: -6rpx;height:33rpx" class="item-image" lazy-load src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
-                      <block v-else>
-                        <image v-if="!val.IsExternalLabel && val.IsNew" class="item-image" lazy-load src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"></image>
-                        <image
-                          style="width: 73rpx; right: -6rpx"
-                          v-if="val.IsExternalLabel"
-                          class="item-image"
-                          lazy-load
-                          src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"
-                        ></image>
-                      </block>
-                      <text class="text_oneLine"> {{ val.KeyWord }}</text>
-                      <view class="item-trip" v-if="val.TripStatus == 2">确定行程</view>
-                      <view class="item-trip item-city" v-if="!val.IsResearchPoints && val.City.length == 2">{{ val.City }}</view>
-                    </view>
-                  </view>
-                </view>
-              </view>
-            </block>
-          </view>
-        </view>
+				<activityTypeList :dataList="collectTypeList" :chartPermissionIds="chartPermissionIds"
+				 :isShowJurisdiction="isShowJurisdiction" :whichDay="whichDay" containerStyle="padding: 34rpx;display: flex;"/>
         <view class="end-activity-text" v-if="collectTypeList.length" @click="endActivity">已结束活动 >></view>
       </view>
       <view class="nodata" v-if="!haveData">
@@ -116,6 +60,7 @@
 import { activity } from "@/config/api.js";
 import { Throttle } from "@/config/util.js";
 import SearchBar from "@/components/search-bar/searchBar.vue";
+import activityTypeList from "./components/activityTypeList.vue"
 import freeCharge from "@/components/freeCharge";
 import NotHaveLogin from "../../components/notHaveLogin.vue";
 let app = getApp();
@@ -124,6 +69,7 @@ export default {
     freeCharge,
     SearchBar,
     NotHaveLogin,
+		activityTypeList
   },
   data() {
     return {
@@ -307,22 +253,7 @@ export default {
         });
       }
     },
-    // 去往详情
-    goDetails(item, key) {
-      if (item.Resource === 1 || key === 1) {
-        let type = item.ActivityTypeName || "";
-        let key = item.ActivityTypeId || item.KeyWord;
-        let id = typeof key == "string" ? item.ActivityId : "";
-        let str = type ? "&permissionIds=" + this.chartPermissionIds + "&showJurisdiction=" + (this.isShowJurisdiction ? "show" : "") : "";
-        this.$store.dispatch("checkHandle", "/activityPages/themeActivity/themeActivity?title=" + key + "&type=" + type + "&id=" + id + "&whichDay=" + this.whichDay + str);
-      } else {
-        if (key) {
-          uni.navigateTo({ url: "/activityPages/specialDetail/specialDetail?id=" + item.ActivityId });
-        } else {
-          uni.navigateTo({ url: "/activityPages/specialResearchPage/specialResearchPage" });
-        }
-      }
-    },
+
     //去往搜索事件
     goSearch() {
       this.$store.dispatch("checkHandle", "/pages-search/indedxSearch/indedxSearch?source=活动页面");
@@ -480,107 +411,6 @@ export default {
     width: 374rpx;
     height: 288rpx;
   }
-  .content-list {
-    display: flex;
-    padding: 34rpx;
-  }
-  .half {
-    width: 50%;
-  }
-  .activity-ltem {
-    width: 331rpx;
-    position: relative;
-    margin-bottom: 30rpx;
-    .zindex-one {
-      position: absolute;
-      top: 0;
-      left: 0;
-      height: 250rpx;
-      width: 100%;
-      z-index: 1;
-    }
-    .zindex-two {
-      position: absolute;
-      top: 0;
-      left: 0;
-      width: 100%;
-      height: 100%;
-      z-index: 2;
-    }
-    .content {
-      position: sticky;
-      top: 0;
-      left: 0;
-      width: 100%;
-      border-radius: 15rpx;
-      overflow: hidden;
-      z-index: 3;
-    }
-    .item-img {
-      width: 100%;
-      height: 147rpx;
-      margin-bottom: 30rpx;
-      font-size: 34rpx;
-      color: #fff;
-    }
-    .activity-li {
-      width: 100%;
-      height: 86rpx;
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      background-repeat: no-repeat;
-      background-size: 100% 100%;
-      padding: 0 20rpx;
-      position: relative;
-      font-size: 26rpx;
-      color: #fff;
-      .item-image {
-        position: absolute;
-        right: 0;
-        top: 0;
-        width: 60rpx;
-        height: 30rpx;
-        border-radius: 4rpx;
-        color: #fff;
-      }
-      .new_img {
-        width: 26rpx;
-        height: 28rpx;
-      }
-      .item-trip {
-        position: absolute;
-        right: -10rpx;
-        top: 0;
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        width: 73rpx;
-        height: 30rpx;
-        background: linear-gradient(90deg, #da5555 0%, #e87a7a 100%);
-        border-radius: 4rpx;
-        font-size: 16rpx;
-      }
-      .item-city {
-        background: linear-gradient(90deg, #408dff 0%, #6fa9ff 100%);
-      }
-    }
-  }
-  .more {
-    width: 100%;
-    text-align: center;
-    font-size: 34rpx;
-    color: #3385ff;
-    margin-top: 90rpx;
-  }
-  .activity-ui {
-    max-height: 666rpx;
-    overflow: hidden;
-    overflow-y: auto;
-    padding: 20rpx;
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-  }
   .end-activity-text {
     display: flex;
     justify-content: center;

+ 218 - 0
pages/activity/components/activityTypeList.vue

@@ -0,0 +1,218 @@
+<template>
+	<view :style="containerStyle">
+	  <view class="half">
+	    <block v-for="(item, index) in dataList" :key="index">
+	      <view class="activity-ltem" v-if="item.Position == 1">
+	        <image class="zindex-one" :src="item.ImgUrl" lazy-load></image>
+	        <view class="content">
+	          <view class="item-img" @click="goDetails(item)"> </view>
+	          <view :style="{ 'background-image': 'url(' + item.ImgUrlBg + ')' }" class="activity-ui">
+	            <view class="activity-li" :style="{ 'background-image': 'url(' + val.ImgUrlBg + ')' }" v-for="val in item.List" :key="val.ActivityId" @click="goDetails(val, item.Resource)">
+	              <image v-if="val.IsResearchPoints" style="width: 83rpx; right: -6rpx;height:33rpx" class="item-image" lazy-load src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
+								<image v-else-if="true" 
+								style="width: 83rpx; right: -6rpx;height:33rpx" 
+								class="item-image" lazy-load 
+								src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
+								<image
+									style="width: 73rpx; right: -6rpx"
+									v-else-if="val.IsExternalLabel"
+									class="item-image"
+									lazy-load
+									src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"
+								></image>
+								<image v-else-if="val.IsNew" class="item-image" lazy-load src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"></image>
+	              <text class="text_oneLine"> {{ val.KeyWord }}</text>
+	              <view class="item-trip" v-if="val.TripStatus == 2">确定行程</view>
+	              <view class="item-trip item-city" v-if="!val.IsResearchPoints && val.City.length == 2">{{ val.City }}</view>
+	            </view>
+	          </view>
+	        </view>
+	      </view>
+	    </block>
+	  </view>
+	  <view class="half">
+	    <block v-for="(item, index) in dataList" :key="index">
+	      <view class="activity-ltem" v-if="item.Position == 2">
+	        <image class="zindex-one" :src="item.ImgUrl" lazy-load></image>
+	        <view class="content">
+	          <view class="item-img" @click="goDetails(item)"> </view>
+	          <view :style="{ 'background-image': 'url(' + item.ImgUrlBg + ')' }" class="activity-ui">
+	            <view class="activity-li" :style="{ 'background-image': 'url(' + val.ImgUrlBg + ')' }" v-for="val in item.List" :key="val.ActivityId" @click="goDetails(val, item.Resource)">
+	              <image v-if="val.IsResearchPoints" style="width: 83rpx; right: -6rpx;height:33rpx" class="item-image" lazy-load src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
+	              <block v-else>
+	                <image v-if="!val.IsExternalLabel && val.IsNew" class="item-image" lazy-load src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"></image>
+	                <image
+	                  style="width: 73rpx; right: -6rpx"
+	                  v-if="val.IsExternalLabel"
+	                  class="item-image"
+	                  lazy-load
+	                  src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"
+	                ></image>
+	              </block>
+	              <text class="text_oneLine"> {{ val.KeyWord }}</text>
+	              <view class="item-trip" v-if="val.TripStatus == 2">确定行程</view>
+	              <view class="item-trip item-city" v-if="!val.IsResearchPoints && val.City.length == 2">{{ val.City }}</view>
+	            </view>
+	          </view>
+	        </view>
+	      </view>
+	    </block>
+	  </view>
+	</view>
+</template>
+
+<script>
+	
+	export default {
+		name:"activityTypeList",
+		props:{
+			dataList:{
+				required:true,
+				type:Array,
+				default:() => []
+			},
+			chartPermissionIds:{
+				type:String,
+				default:""
+			},
+			isShowJurisdiction:{
+				type:Boolean,
+				default:false
+			},
+			whichDay:{
+				type:String,
+				default:""
+			},
+			containerStyle:{
+				type:String,
+				default:""
+			}
+		},
+		data(){
+			return {
+				
+			}
+		},
+		methods:{
+			// 去往详情
+			goDetails(item, key) {
+			  if (item.Resource === 1 || key === 1) {
+			    let type = item.ActivityTypeName || "";
+			    let key = item.ActivityTypeId || item.KeyWord;
+			    let id = typeof key == "string" ? item.ActivityId : "";
+			    let str = type ? "&permissionIds=" + this.chartPermissionIds + "&showJurisdiction=" + (this.isShowJurisdiction ? "show" : "") : "";
+			    this.$store.dispatch("checkHandle", "/activityPages/themeActivity/themeActivity?title=" + key + "&type=" + type + "&id=" + id + "&whichDay=" + this.whichDay + str);
+			  } else {
+			    if (key) {
+			      uni.navigateTo({ url: "/activityPages/specialDetail/specialDetail?id=" + item.ActivityId });
+			    } else {
+			      uni.navigateTo({ url: "/activityPages/specialResearchPage/specialResearchPage" });
+			    }
+			  }
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.half {
+	  width: calc(50% - 12rpx);
+		&:first-child{
+			margin-right: 24rpx;
+		}
+	}
+	.activity-ltem {
+	  // width: 331rpx;
+	  position: relative;
+	  margin-bottom: 30rpx;
+	  .zindex-one {
+	    position: absolute;
+	    top: 0;
+	    left: 0;
+	    height: 250rpx;
+	    width: 100%;
+	    z-index: 1;
+	  }
+	  .zindex-two {
+	    position: absolute;
+	    top: 0;
+	    left: 0;
+	    width: 100%;
+	    height: 100%;
+	    z-index: 2;
+	  }
+	  .content {
+	    position: sticky;
+	    top: 0;
+	    left: 0;
+	    width: 100%;
+	    border-radius: 15rpx;
+	    overflow: hidden;
+	    z-index: 3;
+	  }
+	  .item-img {
+	    width: 100%;
+	    height: 147rpx;
+	    margin-bottom: 30rpx;
+	    font-size: 34rpx;
+	    color: #fff;
+	  }
+	  .activity-li {
+	    width: 100%;
+	    height: 86rpx;
+	    display: flex;
+	    align-items: center;
+	    justify-content: center;
+	    background-repeat: no-repeat;
+	    background-size: 100% 100%;
+	    padding: 0 20rpx;
+	    position: relative;
+	    font-size: 26rpx;
+	    color: #fff;
+	    .item-image {
+	      position: absolute;
+	      right: 0;
+	      top: 0;
+	      width: 60rpx;
+	      height: 30rpx;
+	      border-radius: 4rpx;
+	      color: #fff;
+	    }
+	    .new_img {
+	      width: 26rpx;
+	      height: 28rpx;
+	    }
+	    .item-trip {
+	      position: absolute;
+	      right: -10rpx;
+	      top: 0;
+	      display: flex;
+	      align-items: center;
+	      justify-content: center;
+	      width: 73rpx;
+	      height: 30rpx;
+	      background: linear-gradient(90deg, #da5555 0%, #e87a7a 100%);
+	      border-radius: 4rpx;
+	      font-size: 16rpx;
+	    }
+	    .item-city {
+	      background: linear-gradient(90deg, #408dff 0%, #6fa9ff 100%);
+	    }
+	  }
+	}
+	// .more {
+	//   width: 100%;
+	//   text-align: center;
+	//   font-size: 34rpx;
+	//   color: #3385ff;
+	//   margin-top: 90rpx;
+	// }
+	.activity-ui {
+	  max-height: 666rpx;
+	  overflow: hidden;
+	  overflow-y: auto;
+	  padding: 20rpx;
+	  background-repeat: no-repeat;
+	  background-size: 100% 100%;
+	}
+</style>

+ 5 - 0
pages/purchaser/components/Tabs.js

@@ -18,3 +18,8 @@ export const CheckboxGroup = [
   { name: "榜单2", val: 21 },
   { name: "榜单3", val: 22 },
 ];
+
+export const ActivityTimeList= [
+	{ Id: 1, IsChoose: false, StatusName: "今日活动" },
+	{ Id: 2, IsChoose: false, StatusName: "明日活动" }
+];

+ 319 - 700
pages/purchaser/purchaser.vue

@@ -2,428 +2,200 @@
   <view class="container resear-container">
     <view class="top-content-box">
       <search-bar @goSearch="goSearch" :searchTitle="searchPlaceholderList.SummarySearch" :width="70" />
-      <view class="content-tabs">
-        <view
-          v-for="item in TabBars"
-          :key="item.val"
-          :class="['item', item.val == topTabsActive && 'tabs-active']"
-          @click="topTabsClickHandler(item)"
-        >
-          {{ item.titel }}
-          <view class="active" v-if="item.val == topTabsActive"></view>
-        </view>
-      </view>
-    </view>
-    <view class="notice-content" v-if="wholeShowListData.YanXuan_Explain">
+		</view>
+			<view class="resear-body">
+				<view class="resear-banner-box">
+					<view class="banner-box-left">
+						<swiper autoplay :interval="4000" circular indicator-dots
+						indicator-color="rgba(255, 255, 255, 0.43)" indicator-active-color="#ffffff">
+							<swiper-item v-for="item in bannerDataList" :key="item.BannerId" 
+							@click="bannerSwiperHandler(item)" class="swiper-item">
+								<image :src="item.IndexImg"></image>
+							</swiper-item>
+						</swiper>
+					</view>
+					<view class="banner-box-right">
+						<image :src="researchBanner.IndexImg" @click="bannerSwiperHandler(null)"></image>
+					</view>
+				</view>
+				<view class="recent-report-box">
+					<view class="recent-report-box-head">
+						<text class="report-box-head-title">近期报告更新</text>
+						<text @click="toReportTotal">查看全部 >></text>
+					</view>
+					<view class="recent-report-box-body">
+						<view class="recent-report-box-row" v-for="item in recentReportList" :key="item.ReportId">
+							<text class="recent-report-row-tag" :style="{ background: item.ButtonStyle }">
+								{{item.tag}}
+							</text>
+							<view class="recent-report-row-title" :style="{ marginLeft: item.title.substr(0, 1) != '【' ? '14rpx' : 0 }">
+								{{item.title}}
+								<text v-for="it in item.obejctList" class="recent-report-row-object" :key="it.text">{{it.text}}</text>
+							</view>
+						</view>
+					</view>
+				</view>
+				<view class="resear-activity-box" v-if="activityTypeData && activityTypeData.length > 0">
+					<view class="resear-activity-head">
+						<text class="resear-activity-head-title">研选活动</text>
+						<text v-for="item in ActivityTimeList" :key="item.Id" :class="item.IsChoose ? 'active' : ''" 
+						class="resear-activity-head-options" @click="isActivityDate(item.Id)">{{ item.StatusName }}</text>
+					</view>
+					<view class="" style="padding: 10rpx;">
+						<activityTypeList :dataList="activityTypeData" containerStyle="display: flex;width:100%;margin-bottom: -30rpx;" :whichDay="whichDay"/>
+					</view>
+					
+				</view>
+				<view class="end-activity-text" @click="endActivity">已结束活动 >></view>
+			</view>
+   <!-- <view class="notice-content" v-if="wholeShowListData.YanXuan_Explain">
       <view class="notice">
         <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/placard_icon.png"></image>
         <view class="notice-bar">
           <van-notice-bar color="#3385FF" background="#DFECFF" text="买方研选内容试行阶段,限时免费。也欢迎您向我们提宝贵建议。" />
         </view>
       </view>
-    </view>
-    <view class="announcement">
-      <view class="tab-cont" v-if="topTabsActive == 2">
-        <scroll-view
-          scroll-x="true"
-          @scroll="scrollMove"
-          :scroll-left="scrollLeft"
-          scroll-with-animation
-          class="scroll-tab"
-          :scroll-into-view="'_' + tabIndex"
-        >
-          <block v-for="(item, index) in researchTabBars" :key="index">
-            <view class="scroll-tab-item" :class="{ active: tagActive == item.name }" @click.stop="typeChange(item)">
-              {{ item.titel }}
-              <image
-                src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/border_act.png"
-                mode=""
-                class="border_act"
-                v-if="tagActive == item.name"
-              ></image>
-            </view>
-          </block>
-        </scroll-view>
-      </view>
-      <blok v-else>
-        <van-checkbox-group class="checkbox-ui" :value="newCheckboxValue" @change="checkboxChange">
-          <van-checkbox
-            style="margin-right: 30rpx; flex-shrink: 0"
-            shape="square"
-            icon-size="14"
-            :name="item.ArticleTypeId"
-            v-for="item in checkboxGroup"
-            :key="item.ArticleTypeId"
-            >{{ item.ArticleTypeName }}</van-checkbox
-          >
-        </van-checkbox-group>
-      </blok>
-      <view class="content-ul" v-if="tagActive == '用户' || topTabsActive == 1">
-        <blok v-if="haveData">
-          <view class="user-li" v-for="(item, index) in collectionList" :key="item.ArticleId">
-            <view class="li-item">
-              <text class="li-serial" :style="{ background: serialBackground(index) }" v-if="topTabsActive == 2">
-                {{ index + 1 }}
-              </text>
-              <text class="li-type" :style="{ background: item.ButtonStyle }" v-else>
-                {{ item.ArticleTypeName }}
-              </text>
-              <view>
-                <text
-                  class="title"
-                  @click="goDetail(item)"
-                  :style="{ display: 'inline', marginLeft: item.Title.substr(0, 1) != '【' ? '14rpx' : 0 }"
-                  >{{ item.Title }}</text
-                >
-                <text class="li-industry" @click="themeDetails(key, '月度收藏榜')" v-for="key in item.List" :key="key.IndustrialManagementId">
-                  # {{ key.IndustryName }}
-                </text>
-              </view>
-            </view>
-            <view class="li-item li-bottom" style="color: #999999">
-              <viwe class="time-user">
-                <text>
-                  {{ item.PublishDate }}
-                </text>
-                <view class="li-user" @click="authorDetails(item)">
-                  <image class="user_report-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/user_report.png"></image>
-                  <text class="text_oneLine"> {{ item.NickName }}</text>
-                </view>
-              </viwe>
-
-              <view class="li-item user-img">
-                <view class="img-box">
-                  <image class="user-pv" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/examine_icon.png"></image>
-                  <text>
-                    {{ item.Pv }}
-                  </text>
-                </view>
-                <view class="img-box" @click="collectClick(item)">
-                  <image v-if="item.IsCollect" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_act.png"></image>
-                  <image v-else src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_ico.png"></image>
-                  <text class=""> {{ item.CollectNum }}人收藏 </text>
-                </view>
-              </view>
-            </view>
-          </view>
-        </blok>
-        <!-- <view class="content-bottom" v-if="topTabsActive == 2">最新榜单您已掌握,明天再刷刷看~</view> -->
-        <view class="nodata" v-else>
-          <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/act_search.png" mode="" class="nodata_ico"></image>
-          <text>暂无活动</text>
-        </view>
-      </view>
-
-      <view class="content-ul" v-if="topTabsActive == 2 && hotList.length && tagActive == '主题'">
-        <view class="hot-li" v-for="(item, index) in hotList" :key="item.IndustrialManagementId">
-          <view class="li-item hot-item">
-            <view style="display: flex" class="text_oneLine hot-new" @click="themeDetails(item, '主题热度榜')">
-              <text class="li-serial serial-number" :style="{ background: serialBackground(index) }">
-                {{ index + 1 }}
-              </text>
-              <text class="text_oneLine title" style="display: inline"> # {{ item.IndustryName }} </text>
-              <image class="new-img" v-if="item.IsNew" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"></image>
-            </view>
-            <text :class="item.IsFollw ? 'cancel-attention' : 'attention'" @click="isAttention(item, '主题')">{{
-              item.IsFollw ? "取消关注" : "+ 关注"
-            }}</text>
-          </view>
-          <view class="li-item read-more" @click="themeDetails(item, '主题热度榜')">
-            <text class="text-box text_oneLine" v-for="val in item.IndustrialSubjectList" :key="val.IndustrialSubjectId">
-              {{ val.SubjectName }}
-            </text>
-          </view>
-        </view>
-        <view class="content-button" @click="goThemeAuthor('主题')">查看全部主题>></view>
-      </view>
-      <view class="content-ul" v-if="topTabsActive == 2 && kolList.length && tagActive == '专家'">
-        <view class="kol-li" v-for="(item, index) in kolList" :key="item.DepartmentId">
-          <text class="li-serial serial-number" :style="{ background: serialBackground(index) }">
-            {{ index + 1 }}
-          </text>
-          <image @click="authorDetails(item)" :src="item.ImgUrl" v-if="item.ImgUrl"></image>
-          <view class="li-item kol-item">
-            <view class="item-top">
-              <text @click="authorDetails(item)">
-                {{ item.NickName }}
-              </text>
-              <text :class="item.IsFollw ? 'cancel-attention' : 'attention'" @click="isAttention(item, '专家')">{{
-                item.IsFollw ? "取消关注" : "+ 关注"
-              }}</text>
-            </view>
-            <text @click="themeDetails(val, 'KOL榜')" class="kol-text text_oneLine" v-for="val in item.List" :key="val.IndustrialManagementId">
-              # {{ val.IndustryName }}
-            </text>
-          </view>
-        </view>
-        <view class="content-button" @click="goThemeAuthor('作者')">查看全部作者>></view>
-      </view>
-      <u-loadmore :status="status" :load-text="loadText" v-if="page_no > 1" />
-    </view>
+    </view> -->
     <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
-    <u-modal
-      v-model="goFollowShow"
-      :content-style="{ fontSize: '32rpx' }"
-      @confirm="goFollowShowBtn"
-      :show-cancel-button="isCancelBtn"
-      :confirm-text="confirmText"
-      @cancel="isCancelBtn = false"
-      :show-title="false"
-      :cancel-style="{ borderRight: '1rpx solid #EBEBEB' }"
-      :confirm-style="{ fontWeight: '700' }"
-    >
-      <view class="slot-content">
-        <rich-text :nodes="accounts"></rich-text>
-      </view>
-    </u-modal>
     <Loading />
   </view>
 </template>
 
 <script>
-import { Reports, Research, Report } from "@/config/api.js";
 import freeCharge from "@/components/freeCharge";
 import SearchBar from "@/components/search-bar/searchBar.vue";
-import { ResearchTabBars, TabBars, CheckboxGroup } from "./components/Tabs";
+import activityTypeList from "@/pages/activity/components/activityTypeList.vue";
+import { ActivityTimeList } from "./components/Tabs";
 export default {
-  components: { freeCharge, SearchBar },
+  components: { freeCharge, SearchBar , activityTypeList },
   data() {
     return {
-      // themeNewList: [],
-      topTabsActive: 1,
-      tagActive: "用户",
-      collectionList: [], //用户收藏
-      hotList: [],
-      kolList: [],
-      confirmText: "知道了",
-      accounts: "",
-      isCancelBtn: false,
-      goFollowShow: false,
-      newCheckboxValue: [],
-      checkboxGroup: [],
-      status: "loadmore",
-      loadText: {
-        loadmore: "上拉加载更多",
-        loading: "加载中",
-        nomore: "已经到底了",
-      },
-      page_no: 1,
-      pageSize: 10,
-      haveData: true,
+			//==============================
+			bannerDataList:[{BannerId:1,IndexImg:'https://img0.baidu.com/it/u=606944329,1526388717&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
+			type:'link'},
+			{BannerId:2,IndexImg:'https://img2.baidu.com/it/u=2896911436,1340659831&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
+			type:'popup'}],
+			researchBanner:{BannerId:3,IndexImg:'https://img1.baidu.com/it/u=2011359500,1951616114&fm=253&fmt=auto&app=138&f=JPEG?w=750&h=500'},
+			recentReportList:[{ReportId:1,tag:'观点',
+			title:'返回蒂萨符号是很符合付款单花洒符号阿接电话付款是到款积分号地块三和案件都好看AUS号地块福建省急的话喀什范德萨范德萨',
+			obejctList:[{text:'#风电轴承'},{text:'#发范德萨阿范德萨很快'},{text:'#好婆婆解耦股拼接'},{text:'#f菲特广东省广泛的'}],
+			ButtonStyle:"linear-gradient(90deg, #2A65F5 0%, #628FFD 100%)"},
+			{ReportId:2,tag:'纪要',
+			title:'返回蒂萨符范德萨范德萨',
+			obejctList:[{text:'#风电轴承'},{text:'#发范德萨阿范德萨很快'},{text:'#好婆婆解耦股拼接'},{text:'#f菲特广东省广泛的'}],
+			ButtonStyle:"red"},
+			{ReportId:3,tag:'沙龙',
+			title:'返回蒂萨符范德萨范德萨返回蒂萨符号付款单花洒符号阿接款是积案件都好看',
+			obejctList:[{text:'#发范德萨阿范德萨很快'}],ButtonStyle:"blue"},
+			{ReportId:4,tag:'沙龙',
+			title:'返回蒂萨符范德萨范德萨付款是到款积分号地块三和案件都好看',
+			obejctList:[{text:'#风电轴承'}],ButtonStyle:"yellow"},
+			{ReportId:5,tag:'观点',
+			title:'返回蒂萨符范德萨款积分号地块三和案件都好看',
+			obejctList:[{text:'#风电轴承'}],ButtonStyle:"green"}],
+			whichDay:'',
+			
+			activityTypeData:[{ActivityTypeId:3,ActivityTypeName:'公司调研电话会',Position:1,Resource:1,
+			ImgUrl:"https://hzstatic.hzinsights.com/static/temp/20220830202208/20220830/qmbriwe2AIxrBVgas3ma8QtJaUMW.png",
+			ImgUrlBg:'https://hzstatic.hzinsights.com/static/temp/20220830202208/20220830/ZwGL8Fx6S4yBBKHegU0OlOYqRiwF.png',
+			List:[{ImgUrlBg:"https://hzstatic.hzinsights.com/static/temp/20220905202209/20220905/Lg4JDMn3kCYXmS1fMsvOLd7Ur9AI.png",
+			ActivityId:2397,IsResearchPoints:false,IsExternalLabel:false,IsNew:true,KeyWord:"Mini LED",TripStatus:0,City:""},
+			{ImgUrlBg:"https://hzstatic.hzinsights.com/static/temp/20220905202209/20220905/Lg4JDMn3kCYXmS1fMsvOLd7Ur9AI.png",
+			ActivityId:2397,IsResearchPoints:false,IsExternalLabel:false,IsNew:true,KeyWord:"Mini LED",TripStatus:0,City:""},
+			{ImgUrlBg:"https://hzstatic.hzinsights.com/static/temp/20220905202209/20220905/Lg4JDMn3kCYXmS1fMsvOLd7Ur9AI.png",
+			ActivityId:2397,IsResearchPoints:false,IsExternalLabel:false,IsNew:true,KeyWord:"Mini LED",TripStatus:0,City:""},
+			{ImgUrlBg:"https://hzstatic.hzinsights.com/static/temp/20220905202209/20220905/Lg4JDMn3kCYXmS1fMsvOLd7Ur9AI.png",
+			ActivityId:2397,IsResearchPoints:false,IsExternalLabel:false,IsNew:true,KeyWord:"Mini LED",TripStatus:0,City:""},
+			{ImgUrlBg:"https://hzstatic.hzinsights.com/static/temp/20220905202209/20220905/Lg4JDMn3kCYXmS1fMsvOLd7Ur9AI.png",
+			ActivityId:2397,IsResearchPoints:false,IsExternalLabel:false,IsNew:true,KeyWord:"Mini LED",TripStatus:0,City:""}],
+			},{ActivityTypeId:6,ActivityTypeName:'公司调研电话会',Position:2,Resource:2,
+			ImgUrl:"https://hzstatic.hzinsights.com/static/temp/20220830202208/20220830/qmbriwe2AIxrBVgas3ma8QtJaUMW.png",
+			ImgUrlBg:'https://hzstatic.hzinsights.com/static/temp/20220830202208/20220830/ZwGL8Fx6S4yBBKHegU0OlOYqRiwF.png',
+			List:[{ImgUrlBg:"https://hzstatic.hzinsights.com/static/temp/20220905202209/20220905/Lg4JDMn3kCYXmS1fMsvOLd7Ur9AI.png",
+			ActivityId:2397,IsResearchPoints:false,IsExternalLabel:false,IsNew:true,KeyWord:"Mini LED",TripStatus:0,City:""},
+			{ImgUrlBg:"https://hzstatic.hzinsights.com/static/temp/20220905202209/20220905/Lg4JDMn3kCYXmS1fMsvOLd7Ur9AI.png",
+			ActivityId:2397,IsResearchPoints:false,IsExternalLabel:false,IsNew:true,KeyWord:"Mini LED",TripStatus:0,City:""},
+			{ImgUrlBg:"https://hzstatic.hzinsights.com/static/temp/20220905202209/20220905/Lg4JDMn3kCYXmS1fMsvOLd7Ur9AI.png",
+			ActivityId:2397,IsResearchPoints:false,IsExternalLabel:false,IsNew:true,KeyWord:"Mini LED",TripStatus:0,City:""},
+			{ImgUrlBg:"https://hzstatic.hzinsights.com/static/temp/20220905202209/20220905/Lg4JDMn3kCYXmS1fMsvOLd7Ur9AI.png",
+			ActivityId:2397,IsResearchPoints:false,IsExternalLabel:false,IsNew:true,KeyWord:"Mini LED",TripStatus:0,City:""},
+			{ImgUrlBg:"https://hzstatic.hzinsights.com/static/temp/20220905202209/20220905/Lg4JDMn3kCYXmS1fMsvOLd7Ur9AI.png",
+			ActivityId:2397,IsResearchPoints:false,IsExternalLabel:false,IsNew:true,KeyWord:"Mini LED",TripStatus:0,City:""}],
+			}]
     };
   },
-  mounted() {
-    // 处理数据 列表同步详情
-    uni.$on("updateFllowTheme", (data) => {
-      this.hotList.forEach((item) => {
-        if (item.IndustrialManagementId == data.id) {
-          item.IsFollw = data.isFollw;
-        }
-      });
-    });
-    // 处理数据 列表同步详情
-    uni.$on("updateFllowAuthor", (data) => {
-      this.kolList.forEach((item) => {
-        if (item.DepartmentId == data.id) {
-          item.IsFollw = data.isFollw;
-        }
-      });
-    });
-  },
   computed: {
-    researchTabBars() {
-      return ResearchTabBars;
-    },
-    TabBars() {
-      return TabBars;
-    },
-  },
-  watch: {
-    tagActive: {
-      handler(val) {
-        this.topTabsActive == 2 && val == "用户" ? this.researchCollectionList() : val == "主题" ? this.researchHotList() : this.researchKolList();
-      },
-      immediate: true,
-    },
-    topTabsActive: {
-      handler(val) {
-        this.collectionList = [];
-        val == 2 ? this.researchCollectionList() : this.researchArticleNewList();
-      },
-      immediate: true,
-    },
+		ActivityTimeList() {
+		  return ActivityTimeList;
+		},
   },
   methods: {
-    //用户收藏榜
-    async researchCollectionList() {
-      const res = await Research.researchCollectionList({ ChartPermissionId: 31 });
-      if (res.Ret === 200) {
-        this.collectionList = res.Data.List || [];
-      }
-    },
-    //主题热度/近期更新更多
-    async researchHotList() {
-      const res = await Research.researchHotList({ ChartPermissionId: 31, ThemeType: 1 });
-      if (res.Ret === 200) {
-        this.hotList = res.Data.List || [];
-      }
-    },
-    //KOL榜列表接口
-    async researchKolList() {
-      const res = await Research.researchKolList({ ChartPermissionId: 31 });
-      if (res.Ret === 200) {
-        this.kolList = res.Data.List || [];
-      }
-    },
-    //tabs切换
-    typeChange(item) {
-      this.tagActive = item.name;
-    },
-    //关注
-    async isAttention(item, val) {
-      await this.$store.dispatch("showLoginModal");
-      const res =
-        val === "主题"
-          ? await Reports.reportFllow({ IndustrialManagementId: item.IndustrialManagementId, PageRouter: this.$store.state.pageRouterReport })
-          : await Reports.reportFllowDepartment({ DepartmentId: item.DepartmentId, PageRouter: this.$store.state.pageRouterReport });
-      if (res.Ret === 200) {
-        item.IsFollw = !item.IsFollw;
-        if (res.Data.Status == 1) {
-          this.goFollowShow = true;
-          this.confirmText = res.Data.GoFollow ? "去关注" : "知道了";
-          if (res.Data.GoFollow) {
-            this.accounts = `${val == "主题" ? "产业" : "作者"}关注成功 <br> 想要及时获取该${
-              val === "主题" ? "产业内容的更新推送" : "作者的报告更新提示"
-            },请关注【查研观向小助手】公众号`;
-            this.isCancelBtn = true;
-          } else {
-            this.accounts =
-              `${val == "主题" ? "产业" : "作者"}` +
-              `关注成功<br>请关注【查研观向小助手】公众号,及时获取${val === "主题" ? "产业" : "作者"}报告更新提醒`;
-          }
-        } else {
-          uni.showToast({
-            title: "已取消关注",
-            icon: "none",
-            duration: 2000,
-          });
-        }
-      }
-    },
-    //去关注
-    goFollowShowBtn() {
-      if (this.confirmText == "去关注") {
-        uni.navigateTo({
-          url: "/activityPages/accountsOfficial/accountsOfficial",
-        });
-      }
-      this.goFollowShow = false;
-    },
-    //收藏
-    async collectClick(item) {
-      await this.$store.dispatch("showLoginModal");
-      const res = await Report.collectRpt({ ArticleId: item.ArticleId, PageRouter: "月度收藏榜" });
-      if (res.Ret === 200) {
-        item.IsCollect = !item.IsCollect;
-        item.IsCollect
-          ? (item.CollectNum += 1) &&
-            uni.showToast({
-              title: "收藏成功",
-              icon: "none",
-              duration: 2000,
-            })
-          : (item.CollectNum -= 1);
-        !item.IsCollect &&
-          uni.showToast({
-            title: "已取消收藏",
-            icon: "none",
-            duration: 2000,
-          });
-      }
-    },
-    //去往作者详情
-    authorDetails(item) {
-      uni.navigateTo({
-        url: "/reportPages/authorPages/authorPages?id=" + item.DepartmentId,
-      });
-    },
-    //去往文章详情页面
-    goDetail(item) {
-      this.$store.commit("setRouterReport", "月度收藏榜");
-      uni.navigateTo({ url: "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId });
-    },
-    //去往主题详情
-    themeDetails(item, source) {
-      uni.navigateTo({ url: "/reportPages/researchTheme/researchTheme?id=" + item.IndustrialManagementId + "&pageRouter=" + source });
-      // uni.navigateTo({ url: "/reportPages/researchTheme/researchTheme?id=" + item.IndustrialManagementId + "&pageRouter=" + source);
-    },
-    //计算遍历的颜色
-    serialBackground(index) {
-      index += 1;
-      return index == 1 ? "#D7584F" : index == 2 ? "#E98033" : index == 3 ? "#FDD367" : "#D3D3D3";
-    },
+		getBannerData(){
+			//TODO: 获取banner信息接口对接
+		},
+			
+		getRecentReportList(){
+			//TODO: 获取最近更新报告接口对接
+		},
+		getActivityList(){
+			//TODO: 获取活动列表接口对接
+		},
+		// 今日明日的点击事件
+		isActivityDate(id) {
+			const arr = []
+		  this.ActivityTimeList.forEach((item) => {
+		    if (item.Id == id) item.IsChoose = !item.IsChoose
+				item.IsChoose && arr.push(item.Id)
+		  });
+		  this.whichDay = arr.join(",")
+		  this.getActivityList()
+		},
+		// 跳转研选已结束活动
+		endActivity() {
+		  uni.navigateTo({
+		    url: "/activityPages/endActivity/endActivity?type=research",
+		  });
+		},
+		// 宣传单跳转
+		bannerSwiperHandler(item){
+			if(!item){
+				// 榜单
+				uni.navigateTo({
+					url: "/pages-purchaser/researchList/researchList"
+				})
+				return 
+			}
+			if(item.type=='popup'){
+				// 调研
+				uni.navigateTo({
+					url: "/pages-purchaser/survey/surveySubmit"
+				})
+			}else{
+				uni.navigateTo({
+					url: "/pages-purchaser/leaflet/leaflet?Id="+item.BannerId
+				})
+			}
+		},
+		toReportTotal(){
+			uni.navigateTo({
+				url: "/pages-purchaser/lastestReport/lastestReport"
+			})
+		},
     /* 搜索 */
     async goSearch() {
       await this.$store.dispatch("checkHandle", "/pages-search/indedxSearch/indedxSearch?id=研选" + "&source=买方研选页面");
     },
-    // 头部tab的点击事件
-    topTabsClickHandler(item) {
-      this.topTabsActive = item.val;
-      this.haveData = true;
-      this.page_no = 1;
-    },
-    // 复选框组的选择事件
-    checkboxChange(e) {
-      this.newCheckboxValue = e.detail;
-      this.page_no = 1;
-      this.researchArticleNewList();
-    },
-    // 跳转主题 of 作者
-    goThemeAuthor(type) {
-      type === "主题"
-        ? uni.navigateTo({ url: "/pages-purchaser/researchTheme/researchTheme" })
-        : uni.navigateTo({ url: "/pages-purchaser/researchAuthor/researchAuthor" });
-    },
-    // 获取最新下的文章类型
-    async researchArticleTypeList() {
-      const res = await Research.researchArticleTypeList();
-      if (res.Ret === 200) {
-        this.checkboxGroup = res.Data.List;
-      }
-    },
-    // 获取最新的文章列表
-    async researchArticleNewList() {
-      const res = await Research.researchArticleNewList({
-        PageSize: this.pageSize,
-        CurrentIndex: this.page_no,
-        ArticleTypeIds: this.newCheckboxValue.join(","),
-      });
-      if (res.Ret === 200) {
-        this.status = res.Data.Paging.IsEnd ? "nomore" : "loadmore";
-        this.collectionList = this.page_no === 1 ? res.Data.List || [] : [...this.collectionList, ...res.Data.List];
-        if (this.page_no == 1) {
-          this.haveData = this.collectionList.length ? true : false;
-        }
-      }
-    },
+
   },
   onLoad() {
-    this.researchArticleTypeList();
+		this.getBannerData()
+		this.getRecentReportList()
+		this.getActivityList()
   },
   onShow() {
     this.$store.commit("setRouterReport", "买方研选");
     this.getRecordTracking("买方研选");
   },
-  /* 下拉刷新 */
-  // onPullDownRefresh() {
-  //   wx.stopPullDownRefresh();
-  // },
-  onReachBottom() {
-    if (this.status == "nomore" || this.topTabsActive != 1) return;
-    this.status = "loading";
-    this.page_no++;
-    this.researchArticleNewList();
-  },
   /**
    * 用户点击分享
    */
@@ -440,316 +212,163 @@ export default {
 <style lang="scss">
 .resear-container {
   background-color: #f7f7f7;
-  .nav-bar-wrap,
-  .top-content-box {
-    position: sticky;
-    top: 0;
-    left: 0;
-    z-index: 999;
-    padding-left: 30rpx;
-  }
-  .top-content-box {
-    padding-left: 0;
-    margin-bottom: 20rpx;
-    .content-tabs {
-      background-color: #fff;
-      display: flex;
-      justify-content: center;
-      padding-bottom: 10rpx;
-      .item {
-        padding-top: 20rpx;
-        font-size: 34rpx;
-        position: relative;
-        padding-bottom: 8rpx;
-        margin-right: 60rpx;
-        flex-shrink: 0;
-        .active {
-          position: absolute;
-          left: 0;
-          bottom: 0;
-          height: 4rpx;
-          width: 100%;
-          border-radius: 1rpx;
-          background: linear-gradient(90deg, #2e85ff 0%, #7eeaf6 100%);
-        }
-      }
-      .tabs-active {
-        color: #3385ff;
-        font-weight: 500;
-      }
-    }
-  }
-  .notice-content {
-    position: sticky;
-    left: 0;
-    top: 200rpx;
-    z-index: 99;
-    width: 100%;
-    background-color: #fff;
-    padding-bottom: 20rpx;
-  }
-  .notice {
-    height: 56rpx;
-    overflow: hidden;
-    background-color: #dfecff;
-    display: flex;
-    align-items: center;
-    padding-left: 30rpx;
-    image {
-      width: 30rpx;
-      height: 30rpx;
-    }
-    .notice-bar {
-      flex: 1;
-    }
-    .van-notice-bar {
-      height: 56rpx;
-    }
-  }
-  .content-ul {
-    border-top: 1px solid #f6f6f6;
-    .user-li,
-    .hot-li,
-    .kol-li {
-      padding: 30rpx 0 20rpx;
-      border-bottom: 1px solid #f6f6f6;
-    }
-    .user-img {
-      width: 38%;
-      justify-content: space-between;
-      .img-box {
-        display: flex;
-        align-items: center;
-      }
-      .user-pv {
-        width: 21rpx;
-        height: 16rpx;
-      }
-    }
-    .kol-li {
-      display: flex;
-      align-items: center;
-      padding-bottom: 30rpx;
-      image {
-        width: 120rpx;
-        height: 120rpx;
-        border-radius: 8rpx;
-        margin: 0 20rpx 0 15rpx;
-        overflow: hidden;
-        flex-shrink: 0;
-      }
-    }
-    .kol-item {
-      display: flex;
-      flex-wrap: wrap;
-      width: 480rpx;
-      height: 120rpx;
-      align-items: baseline;
-      margin-bottom: 20rpx;
-      .item-top {
-        width: 100%;
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        font-size: 29rpx;
-        font-weight: 700;
-      }
-      .kol-text {
-        width: 50%;
-        margin-top: 10rpx;
-        flex-shrink: 0;
-      }
-    }
-
-    .li-serial {
-      width: 26rpx;
-      height: 26rpx;
-      line-height: 26rpx;
-      color: #fff;
-      font-size: 20rpx;
-      text-align: center;
-      border-radius: 4rpx 4rpx 4rpx 4rpx;
-      margin: 7rpx 10rpx 0 20rpx;
-      flex-shrink: 0;
-    }
-    .li-type {
-      // padding: 0 15rpx;
-      width: 91rpx;
-      height: 28rpx;
-      margin-top: 6rpx;
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      flex-shrink: 0;
-      border-radius: 4rpx;
-      color: #fff;
-      font-size: 20rpx;
-      font-weight: 500;
-    }
-    .serial-number {
-      margin-top: 0 !important;
-    }
-    .li-item {
-      display: flex;
-      .title {
-        font-size: 28rpx;
-        line-height: 39rpx;
-        font-weight: 500;
-        color: #333;
-        margin-right: 20rpx;
-      }
-      .li-industry {
-        color: #3385ff;
-        margin-right: 20rpx;
-        display: inline-block;
-        font-weight: 400;
-      }
-      .time-user {
-        display: flex;
-        align-items: center;
-        font-size: 24rpx;
-      }
-      .li-user {
-        display: flex;
-        align-items: center;
-        flex-shrink: 0;
-        width: 200rpx;
-        margin-left: 75rpx;
-        .user_report-img {
-          width: 23rpx;
-          height: 26rpx;
-          flex-shrink: 0;
-        }
-      }
-      .li-title {
-        display: flex;
-      }
-    }
-    .li-bottom {
-      display: flex;
-      justify-content: space-between;
-      align-items: center;
-      margin-top: 30rpx;
-      width: 100%;
-      image {
-        width: 23rpx;
-        height: 26rpx;
-        margin-right: 10rpx;
-      }
-    }
-    .read-more {
-      margin-left: 30rpx;
-      margin-top: 20rpx;
-      display: flex;
-      flex-wrap: wrap;
-      .text-box {
-        margin-bottom: 27rpx;
-        margin-right: 40rpx;
-        padding: 0;
-        font-size: 24rpx;
-        color: #408fff;
-        width: 170rpx;
-        height: 46rpx;
-        line-height: 46rpx;
-        text-align: center !important;
-        background: url(~@/static/img/report_bg.png) no-repeat;
-        background-size: 100% 100%;
-        text-indent: 0em;
-      }
-    }
-    .attention {
-      flex-shrink: 0;
-      padding: 5rpx 28rpx;
-      border-radius: 37rpx 37rpx 37rpx 37rpx;
-      color: #fff;
-      background: #3385ff;
-      font-weight: 400;
-      font-size: 24rpx;
-    }
-    .hot-item {
-      justify-content: space-between;
-      align-items: center;
-      .hot-new {
-        align-items: center;
-        flex: 1;
-        padding-right: 20rpx;
-      }
-      .new-img {
-        width: 60rpx;
-        height: 30rpx;
-        margin-left: 15rpx;
-        flex-shrink: 0;
-      }
-    }
-  }
-  .announcement {
-    background: #fff;
-    padding: 0 30rpx;
-    .tab-cont {
-      height: 115rpx;
-      background-color: #fff;
-      font-size: 32rpx;
-      border-bottom: 1rpx solid #ececec;
-      .scroll-tab {
-        position: relative;
-        width: 100%;
-        white-space: nowrap;
-        display: flex;
-        justify-content: space-around;
-      }
-      .scroll-tab-item {
-        text-align: center;
-        display: inline-block;
-        padding: 32rpx 8rpx 30rpx 8rpx;
-        border-bottom: 8rpx solid transparent;
-        margin-right: 60rpx;
-        position: relative;
-        color: #999999;
-        font-size: 32rpx;
-        &:last-child {
-          margin-right: 0;
-        }
-        &.active {
-          border-bottom: none;
-          color: #333;
-          font-weight: 500;
-        }
-        .border_act {
-          width: 80%;
-          height: 8rpx;
-          position: absolute;
-          bottom: 0;
-          left: 50%;
-          transform: translateX(-50%);
-        }
-      }
-    }
-  }
-  .content-bottom {
-    background-color: #fff;
-    text-align: center;
-    line-height: 100rpx;
-    color: #c4c4c4;
-    font-size: 20rpx;
-  }
-  .checkbox-ui {
-    width: 100%;
-    padding: 30rpx 0;
-    overflow: hidden;
-    overflow-x: auto;
-    display: flex;
-    border-bottom: 1rpx solid #ececec;
-  }
-  .content-button {
-    height: 100rpx;
-    width: 100%;
-    text-align: center;
-    line-height: 100rpx;
-    color: #3385ff;
-  }
-  .van-checkbox-group {
-    display: flex;
-    flex-wrap: wrap;
-  }
+	.top-content-box {
+		position: sticky;
+		top: 0;
+		left: 0;
+		right: 0;
+		z-index: 999;
+		padding-left: 30rpx;
+		background-color: white;
+	}
+	.resear-body{
+		padding: 20rpx 34rpx;
+		box-sizing: border-box;
+		.resear-banner-box{
+			display: flex;
+			align-items: center;
+			margin-bottom: 32rpx;
+			.banner-box-left{
+				height: 204rpx;
+				width: 448rpx;
+				margin-right: 20rpx;
+				swiper{
+					height: 100%;
+					width: 100%;
+					image{
+						height: 100%;
+						width: 100%;
+						border-radius: 16rpx;
+					}
+				}
+			}
+			.banner-box-right{
+				image{
+					height: 204rpx;
+					width: 214rpx;
+					vertical-align: bottom;
+					border-radius: 16rpx;
+				}
+			}
+		}
+		.recent-report-box{
+			padding:20rpx 0;
+			background-color: white;
+			border-radius: 16rpx;
+			margin-bottom: 20rpx;
+			.recent-report-box-head{
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				padding:0 20rpx 20rpx;
+				font-size: 28rpx;
+				font-weight: 400;
+				color: #666666;
+				.report-box-head-title{
+					font-weight: bold;
+					color: #333333;
+				}
+			}
+			.recent-report-box-body{
+				padding: 0 20rpx;
+				.recent-report-box-row{
+					padding: 24rpx 0;
+					border-top: solid 1px #DCDFE6;
+					display: flex;
+					align-items: flex-start;
+					.recent-report-row-tag{
+						white-space: nowrap;
+						padding: 0 15rpx;
+						min-width: 78rpx;
+						height: 34rpx;
+						color: white;
+						font-size: 24rpx;
+						font-weight: bold;
+						border-radius: 8rpx;
+						margin-top: 6rpx;
+					}
+					.recent-report-row-title{
+						-webkit-line-clamp: 2;
+						text-overflow: ellipsis;
+						overflow: hidden;
+						display: -webkit-box;
+						-webkit-box-orient: vertical;
+						word-break: break-all;
+						font-size: 28rpx;
+						font-weight: bold;
+						color: #333333;
+						line-height: 40rpx;
+						.recent-report-row-object{
+							color: #3385FF;
+							display: inline-block;
+							margin-left: 2rpx;
+						}
+					}
+				}
+			}
+		}
+		.resear-activity-box{
+			background-color: white;
+			.resear-activity-head{
+				padding:20rpx;
+				display: flex;
+				align-items: center;
+				.resear-activity-head-title{
+					font-size: 28rpx;
+					font-weight: bold;
+					color: #333333;
+					line-height: 44rpx;
+				}
+				.resear-activity-head-options{
+					width: 156rpx;
+					text-align: center;
+					line-height: 44rpx;
+					background-color: #f8f8fa;
+					box-sizing: border-box;
+					border-radius: 48rpx;
+					margin-left: 20rpx;
+					font-size: 24rpx;
+					color: #333333;
+				}
+				.active {
+				  background-color: #3385ff;
+				  color: #fff;
+				}
+			}
+		}
+		.end-activity-text {
+		  display: flex;
+		  justify-content: center;
+		  margin-top: 20rpx;
+		  color: #3385ff;
+		}
+	}
+  // .notice-content {
+  //   position: sticky;
+  //   left: 0;
+  //   top: 200rpx;
+  //   z-index: 99;
+  //   width: 100%;
+  //   background-color: #fff;
+  //   padding-bottom: 20rpx;
+  // }
+  // .notice {
+  //   height: 56rpx;
+  //   overflow: hidden;
+  //   background-color: #dfecff;
+  //   display: flex;
+  //   align-items: center;
+  //   padding-left: 30rpx;
+  //   image {
+  //     width: 30rpx;
+  //     height: 30rpx;
+  //   }
+  //   .notice-bar {
+  //     flex: 1;
+  //   }
+  //   .van-notice-bar {
+  //     height: 56rpx;
+  //   }
+  // }
 }
 </style>