Browse Source

Merge branch 'CYGX_11.0'

hbchen 1 year ago
parent
commit
0a2fe079fe
37 changed files with 2691 additions and 1047 deletions
  1. 7 5
      activityPages/activityDetail/activityDetail.vue
  2. 171 22
      activityPages/activityDetail/jurisdiction/components.vue
  3. 3 1
      activityPages/components/selectMixins.js
  4. 8 4
      activityPages/endActivity/endActivity.vue
  5. 1 0
      activityPages/playBack/playBack.vue
  6. 6 27
      activityPages/themeActivity/themeActivity.vue
  7. 63 10
      components/ItemComponent/activityItem.vue
  8. 28 11
      components/ItemComponent/reportItem.vue
  9. 25 0
      components/activity/indexActivity.js
  10. 21 13
      components/activity/indexActivity.scss
  11. 277 0
      components/activity/purchaserActivityList.vue
  12. 1 1
      components/modalDialog.vue
  13. 24 0
      config/modules/purchaser.js
  14. 24 7
      pageMy/myCollection/myCollection.vue
  15. 6 1
      pageMy/mySchedulepage/mySchedulepage.vue
  16. 167 22
      pageMy/reportDetail/reportDetail.vue
  17. 164 19
      pageMy/reportPage/reportPage.vue
  18. 4 2
      pages-purchaser/components/cssAuthorTheme.scss
  19. 47 0
      pages-purchaser/components/purchaser-report-list-mixins.js
  20. 35 0
      pages-purchaser/components/purchaser-report-list.scss
  21. 75 0
      pages-purchaser/finishedActivity/finishedActivity.vue
  22. 171 0
      pages-purchaser/lastestReport/lastestReport.vue
  23. 40 0
      pages-purchaser/leaflet/leaflet.vue
  24. 176 0
      pages-purchaser/purchaserActivity/purchaserActivity.vue
  25. 339 0
      pages-purchaser/researchList/researchList.vue
  26. 1 1
      pages-purchaser/researchTheme/researchTheme.vue
  27. 36 0
      pages-purchaser/survey/surveyDetail.vue
  28. 83 0
      pages-purchaser/survey/surveySubmit.vue
  29. 5 1
      pages-search/components/activityBack.vue
  30. 24 8
      pages-search/components/report.vue
  31. 58 3
      pages.json
  32. 7 184
      pages/activity/activity.vue
  33. 227 0
      pages/activity/components/activityTypeList.vue
  34. 5 0
      pages/purchaser/components/Tabs.js
  35. 360 703
      pages/purchaser/purchaser.vue
  36. 1 1
      pages/reportForm/reportForm.vue
  37. 1 1
      reportPages/keyCompany/keyCompany.vue

+ 7 - 5
activityPages/activityDetail/activityDetail.vue

@@ -14,8 +14,9 @@
           <!-- 内容部分 -->
           <view class="content">
             <view v-if="detailData.ActivityName" class="dialog-title brackets-title">
-              <image style="width:83rpx;height:33rpx"  v-if="detailData.IsResearchPoints" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
-              <image v-if="!detailData.IsResearchPoints && detailData.IsExternalLabel" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"></image>
+              <image v-if="detailData.IsResearchPoints" src="https://hzstatic.hzinsights.com/cygx/icon/Research_Points.png"></image>
+							<image v-else-if="detailData.IsResearch" src="https://hzstatic.hzinsights.com/cygx/icon/Research_normal.png"></image>
+              <image v-else-if="!detailData.IsResearchPoints && detailData.IsExternalLabel" src="https://hzstatic.hzinsights.com/cygx/icon/activity_external.png"></image>
               {{ detailData.ActivityName }}
             </view>
             <block v-if="detailData.FileType == 1">
@@ -124,7 +125,7 @@
               <view class="network-right dustrial-content">
                 <view class="item" v-for="item in detailData.Listndustrial" :key="item.IndustrialManagementId">
                   <view :class="['dustrial-li', item.IsJump && 'dustrial-item']" @click="goDustrialHandler(item)">{{ item.IndustryName }} </view>
-                  <image v-if="item.IndustryNewLabel" class="new_icon" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png" mode=""></image>
+                  <image v-if="item.IndustryNewLabel" class="new_icon" src="https://hzstatic.hzinsights.com/cygx/icon/new_report.png" mode=""></image>
                 </view>
               </view>
             </view>
@@ -834,10 +835,11 @@ export default {
       margin-bottom: 15rpx;
       color: #000;
       image {
-        width: 83rpx;
-        height: 33rpx;
+        width: 73rpx;
+        height: 30rpx;
         vertical-align: middle;
         margin-right: 5rpx;
+				margin-bottom: 5rpx;
       }
     }
     .brackets-title {

+ 171 - 22
activityPages/activityDetail/jurisdiction/components.vue

@@ -4,11 +4,15 @@
       <image src="https://hzstatic.hzinsights.com/cygx/czbk/noauth.png" class="noauth-ico"></image>
       <block v-if="jurisdictionList.HasPermission !== 2">
         <view v-if="jurisdictionList.IsResearch" class="research-noauth">
-          暂无 <text class="strong-text">买方研选</text> 权限
-          <text style="margin-bottom: 30rpx"> 您可申请开通试用 </text>
+					<text v-if="jurisdictionList.IsResearchSpecial" 
+					style="margin:0 auto 100rpx ;width: 612rpx;"> 签约买方研选套餐才可参与此活动,请联系对口销售 </text>
+					<block v-else>
+						暂无 <text class="strong-text">买方研选</text> 权限
+						<text style="margin-bottom: 30rpx"> 您可申请开通试用 </text>
+					</block>
         </view>
         <view class="tip" v-else>{{ jurisdictionList.PopupMsg }}</view>
-        <view class="btn-cont" v-if="jurisdictionList.Type !== '专项调研'" @click="applyAuth"> 立即申请 </view>
+        <view class="btn-cont" v-if="jurisdictionList.Type !== '专项调研' && (!jurisdictionList.IsResearchSpecial)" @click="applyAuth"> 立即申请 </view>
       </block>
       <view class="tip" v-if="jurisdictionList.HasPermission === 2">
         <view v-if="jurisdictionList.IsResearch" class="research-noauth">
@@ -35,14 +39,79 @@
         {{ jurisdictionList.IsResearch ? "提交申请" : "立即申请" }}
       </view>
       <view class="btn-cont back-btn" @click="backIndex"> 返回</view>
-      <view style="margin-top: 100rpx" v-if="jurisdictionList.IsResearch">
-        <view class="research-btn" @click="goRouterResearch('介绍')">
+      <view class="product-introduction-box" v-if="jurisdictionList.IsResearch">
+<!--    <view class="research-btn" @click="goRouterResearch('介绍')">
           <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/report_Yx.png"></image>
           点击查看买方研选产品介绍
         </view>
         <view class="research-btn" @click="goRouterResearch('报价')">
           <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/quotation_icon.png"></image>
           点击查看买方研选服务报价单
+        </view> -->
+        <view class="product-introduction">
+          <view class="introduction-header">
+            <view class="introduction-header-left"></view>
+            <view class="introduction-header-right">
+              <view class="introduction-title-CN">
+                产品介绍
+              </view>
+              <view class="introduction-title-US">
+                Product Introduction
+              </view>
+            </view>
+          </view>
+          <view class="introduction-body">
+            <view class="introduction-body-box">
+              <view class="body-box-title">
+                独家亮点
+              </view>
+              <view class="introduction-body-row"><span class="highHight-text">低至1000元</span>起访谈优质专家</view>
+              <view class="introduction-body-row">重点公司小范围交流<span class="highHight-text">破圈</span>参加</view>
+              <view class="introduction-body-row"><span class="highHight-text">海量</span>调研过程及纪要共享</view>
+            </view>
+            <view class="introduction-body-box">
+              <view class="body-box-title">
+                优质资源
+              </view>
+              <view class="introduction-body-row"><span class="highHight-text">500+</span>篇/年调研纪要更新,</view>
+              <view class="introduction-body-row"><span class="highHight-text">300+</span>场/年海内外重点公司小范围交流,</view>
+              <view class="introduction-body-row"><span class="highHight-text">100+</span>场/年热点线下调研,</view>
+              <view class="introduction-body-row"><span class="highHight-text">30000+</span>名优质行业专家长期合作,</view>
+              <view class="introduction-body-row"><span class="highHight-text">1000+</span>名优秀买方汇集,</view>
+            </view>
+            <view class="introduction-body-box">
+              <view class="body-box-title" style="margin-bottom: 18rpx;">
+                服务报价
+              </view>
+              <view class="body-row-content">
+                <view class="body-row-title">
+                  3万/年
+                </view>
+                <view class="introduction-body-row">含无限量调研纪要查阅</view>
+                <view class="introduction-body-row"><span class="highHight-text">以及3次</span>公开专家访谈;</view>
+              </view>
+              <view class="body-row-content">
+                <view class="body-row-title">
+                  5万/年
+                </view>
+                <view class="introduction-body-row">含无限量调研纪要查阅</view>
+                <view class="introduction-body-row">
+                  <span class="highHight-text">以及15次</span>公开专家访谈<span class="highHight-text">或30次</span>重点公司、专家小范围交流;
+                </view>
+              </view>
+              <view class="body-row-content" style="margin-bottom: 0;">
+                <view class="body-row-title">
+                  10万/年
+                </view>
+                <view class="introduction-body-row">含无限量调研纪要查阅</view>
+                <view class="introduction-body-row">
+                  <span class="highHight-text">以及40次</span>公开专家访谈
+                  <span class="highHight-text">或80次</span>重点公司、专家小范围交流
+                  <span class="highHight-text">或20次</span>私享专家一对一。
+                </view>
+              </view>
+            </view>
+          </view>
         </view>
       </view>
     </block>
@@ -155,7 +224,7 @@ export default {
 
 <style scoped lang="scss">
 .noauth-cont {
-  padding-top: 150rpx;
+  padding-top: 170rpx;
   text-align: center;
   font-size: 28rpx;
 
@@ -210,6 +279,86 @@ export default {
       z-index: 1;
     }
   }
+  .product-introduction-box{
+    background-color: #F7F7F7;
+    padding-top: 10rpx;
+    margin-top: 60rpx;
+    .product-introduction{
+      padding: 60rpx 60rpx 0;
+      background-color: white;
+      .introduction-header{
+        margin-bottom: 40rpx;
+        display: flex;
+        .introduction-header-left{
+          background-color: #CAAF8B;
+          height: 90rpx;
+          width: 14rpx;
+          margin-right: 20rpx;
+        }
+        .introduction-header-right{
+          text-align: left;
+          .introduction-title-CN{
+            font-weight: 500;
+            font-size: 34rpx;
+            color: #333333;
+            line-height: 42rpx;
+            margin-bottom: 8rpx;
+          }
+          .introduction-title-US{
+            font-weight: 400;
+            font-size: 28rpx;
+            color: #C0C4CC;
+            line-height: 42rpx;
+          }
+        }
+      }
+      .introduction-body{
+        .introduction-body-box{
+          text-align: left;
+          margin-bottom: 40rpx;
+          .body-row-content{
+            margin-bottom: 40rpx;
+            font-size: 34rpx;
+            line-height: 48rpx;
+            font-weight: 600;
+            color: #CAAF8B;
+            .body-row-title{
+              margin-left: 40rpx;
+            }
+          }
+          .body-box-title{
+            font-weight: 600;
+            font-size: 34rpx;
+            line-height: 48rpx;
+            padding-left: 40rpx;
+            position: relative;
+            margin-bottom: 22rpx;
+            &::before{
+              content: "";
+              height: 20rpx;
+              width: 20rpx;
+              background-color: #CAAF8B;
+              border-radius: 20rpx;
+              position: absolute;
+              left: 0;
+              top: 16rpx;
+            }
+          }
+          .introduction-body-row{
+            margin-left: 40rpx;
+            font-weight: 400;
+            font-size: 26rpx;
+            color: #333333;
+            line-height: 36rpx;
+          }
+          .highHight-text{
+            color: #CAAF8B;
+          }
+        }
+
+      }
+    }
+  }
   .month_card {
     width: 100%;
     height: 565rpx;
@@ -248,21 +397,21 @@ export default {
       margin-top: 10rpx;
     }
   }
-  .research-btn {
-    display: flex;
-    align-items: center;
-    font-size: 32rpx;
-    width: 546rpx;
-    height: 78rpx;
-    margin: 30rpx auto;
-    background: #f8f8fa;
-    border-radius: 4rpx;
-    padding-left: 40rpx;
-    image {
-      width: 40rpx;
-      height: 40rpx;
-      margin-right: 10rpx;
-    }
-  }
+  // .research-btn {
+  //   display: flex;
+  //   align-items: center;
+  //   font-size: 32rpx;
+  //   width: 546rpx;
+  //   height: 78rpx;
+  //   margin: 30rpx auto;
+  //   background: #f8f8fa;
+  //   border-radius: 4rpx;
+  //   padding-left: 40rpx;
+  //   image {
+  //     width: 40rpx;
+  //     height: 40rpx;
+  //     margin-right: 10rpx;
+  //   }
+  // }
 }
 </style>

+ 3 - 1
activityPages/components/selectMixins.js

@@ -35,8 +35,10 @@ export default {
   methods: {
     // 获取权限、所有的行业
     async getUserSearchContent() {
+      // IsHideResearch 行业列表是否隐藏 买方研选
       const res = await activity.getUserSearchContent({
         IsShowJurisdiction: this.isGetJurisdiction,
+        IsHideResearch:this.hideResearch
       });
       if (res.Ret === 200) {
         this.isShowJurisdiction = res.Data.IsShowJurisdiction;
@@ -108,7 +110,7 @@ export default {
             str.push(key.PermissionName);
           }
         });
-      if ((str.length == 6 && this.listChartPermission.length == 6) || str.length <= 0) {
+      if ((str.length == this.listChartPermission.length) || str.length <= 0) {
         this.chartPermissionName = "所有行业";
       } else {
         this.chartPermissionName = str.join(",");

+ 8 - 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,9 @@ export default {
       selectMultipleType: "", // 筛选的类型
       dataList: [],
       haveData: true,
+			// hongze 弘则活动 research 研选活动
+			endType:'',
+      hideResearch:true
     };
   },
   methods: {
@@ -81,7 +84,8 @@ export default {
       });
     },
   },
-  onLoad() {
+  onLoad(options) {
+		this.endType = options.type?options.type:'hongze'
     this.getActivityList();
   },
 };

+ 1 - 0
activityPages/playBack/playBack.vue

@@ -134,6 +134,7 @@ export default {
       ],
       mediumActive: "",
       haveData: true,
+      hideResearch:true, 
     };
   },
   mixins: [mediaMixins, selectMixins],

+ 6 - 27
activityPages/themeActivity/themeActivity.vue

@@ -7,7 +7,7 @@
           <view :class="['content-title', !contentDetail.IsJump && 'jump-title']" @click="jumpHandler">
             <text class="jump-label">{{ contentDetail.Label }}</text>
             <text v-if="contentDetail.IsJump" class="jump-text"> 查看资源包>></text>
-            <image v-if="contentDetail.IndustryNewLabel" class="new_icon" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png" mode=""></image>
+            <image v-if="contentDetail.IndustryNewLabel" class="new_icon" src="https://hzstatic.hzinsights.com/cygx/icon/new_report.png" mode=""></image>
           </view>
         </view>
         <view :class="['screen-item', (isEndActivity || !type) && 'end-select-item']">
@@ -87,8 +87,9 @@
               <view class="item">
                 <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 v-if="item.IsResearchPoints" src="https://hzstatic.hzinsights.com/cygx/icon/Research_Points.png"></image>
+										<image v-else-if="item.IsResearch" src="https://hzstatic.hzinsights.com/cygx/icon/Research_normal.png"></image>
+                    <image v-else-if="item.IsExternalLabel" src="https://hzstatic.hzinsights.com/cygx/icon/activity_external.png"></image>
                     {{ item.ActivityName }}
                   </view>
                   <text class="text_twoLine" v-if="item.Expert && item.SourceType == 1">专家背景:{{ item.Expert }} </text>
@@ -229,6 +230,7 @@ export default {
       activityId: "",
       haveData: true,
       isEndActivity: false,
+      hideResearch:false, 
     };
   },
   components: {
@@ -323,6 +325,7 @@ export default {
 
     // 进入页面的初始化
     loadInit(option) {
+			console.log(option);
       this.label = option.title;
       this.type = option.type;
       this.chartPermissionIds = option.permissionIds || "";
@@ -346,30 +349,6 @@ export default {
 		async playBack(item){
 			await this.$store.dispatch("showLoginModal")
 			this.PlayBackAll(item)
-		},
-		async signupCheck(item,type,valName = ""){
-			await this.$store.dispatch("showLoginModal")
-			this.signupIsAddOfCancel(item,type,valName)
-		},
-		async summaryHandelCheck(item){
-			await this.$store.dispatch("showLoginModal")
-			this.summaryIsHandel(item)
-		},
-		async meetingReminderCheck(id, type){
-			await this.$store.dispatch("showLoginModal")
-			this.meetingReminderAdd(id, type)
-		},
-		async askingCheck(item, type = ""){
-			await this.$store.dispatch("showLoginModal")
-			this.askingGo(item, type)
-		},
-		async wanttosignupCheck(item){
-			await this.$store.dispatch("showLoginModal")
-			this.wanttosignup(item)
-		},
-		async goDetailCheck(item){
-			await this.$store.dispatch("showLoginModal")
-			this.goDetail(item)
 		}
   },
   onLoad(option) {

+ 63 - 10
components/ItemComponent/activityItem.vue

@@ -10,7 +10,9 @@
       </block>
     </view>
     <view class="content-type"> {{ list.ActivityTypeName || "专项产业调研" }}</view>
-    <view :class="['content-title', list.ResearchTheme && 'content-min-hight']" v-if="list.ActivityName || list.ResearchTheme">
+    <view :class="['content-title', list.ResearchTheme && 'content-min-hight',
+    list.IsResearchPoints?'yan-xuan-point-tag':list.IsResearch?'yan-xuan-tag':list.IsExternalLabel?'external-label':'']" 
+    v-if="list.ActivityName || list.ResearchTheme">
       <mp-html :content="richTextClamp(3) + (list.ActivityName || list.ResearchTheme) + '</div>'" />
     </view>
     <view style="display: flex" class="content-text content-min-hight text_twoLine" v-if="list.ActivityTimeText && list.SourceType !== 1">
@@ -634,19 +636,26 @@ export default {
       color: #fff;
     }
     .is-up {
-      background: linear-gradient(90deg, #0151ff 0%, #01b9ff 100%);
+      // background: linear-gradient(90deg, #0151ff 0%, #01b9ff 100%);
+      background-color: #DFE8FF;
+      color: #3385FF;
     }
     .is-up-state {
-      background: #ff9110;
+      background-color: #FFFCF6;
+      color:#F1925C ;  
     }
     .is-down-state {
-      background-color: #01a7ff;
+      background-color: #F6F9FF;
+      color: #3385FF;
     }
     .is-down {
-      background: linear-gradient(90deg, #ff8a05 0%, #ffb74d 100%);
+      // background: linear-gradient(90deg, #ff8a05 0%, #ffb74d 100%);
+      background-color: #FFFAF2;
+      color: #FF8A00;
     }
     .is-end {
-      background: #dddddd;
+      color: #C0C0C0;
+      background-color: #EDF2F5;
     }
     .state {
       border-radius: 4rpx 0 4rpx 0;
@@ -665,13 +674,57 @@ export default {
     font-weight: 400;
     color: #333333;
     line-height: 44rpx;
+    position: relative;
     image {
-      width: 83rpx;
-      height: 33rpx;
-      vertical-align: middle;
-      margin-right: 5rpx;
+      width: 73rpx;
+      height: 30rpx;
+      vertical-align: bottom;
+			padding-bottom: 6rpx;
+      margin-right: 16rpx;
     }
   }
+  .yan-xuan-point-tag{
+		text-indent: 82rpx;
+		&::before {
+		  content: "";
+		  position: absolute;
+		  top: 8rpx;
+			background-image: url(https://hzstatic.hzinsights.com/cygx/icon/Research_Points.png);
+			background-size: 100% 100%;
+			background-repeat: no-repeat;
+		  left: 0;
+		  width: 73rpx;
+		  height: 30rpx;
+		}
+	}
+  .yan-xuan-tag{
+		text-indent: 82rpx;
+		&::before {
+		  content: "";
+		  position: absolute;
+		  top: 8rpx;
+			background-image: url(https://hzstatic.hzinsights.com/cygx/icon/Research_normal.png);
+			background-size: 100% 100%;
+			background-repeat: no-repeat;
+		  left: 0;
+		  width: 73rpx;
+		  height: 30rpx;
+		}
+	}
+  .external-label{
+    text-indent: 82rpx;
+		&::before {
+		  content: "";
+		  position: absolute;
+		  top: 8rpx;
+			background-image: url(https://hzstatic.hzinsights.com/cygx/icon/activity_external.png);
+			background-size: 100% 100%;
+			background-repeat: no-repeat;
+		  left: 0;
+		  width: 73rpx;
+		  height: 30rpx;
+		}
+  }
   .content-text {
     font-size: 28rpx;
     font-weight: 400;

+ 28 - 11
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.CategoryId == '0'?'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">
@@ -75,17 +76,33 @@ export default {
     font-weight: 500;
     color: #333333;
     line-height: 38rpx;
-    text-indent: 0.5em;
-    &::before {
-      content: "";
-      position: absolute;
-      top: 5rpx;
-      left: 0;
-      width: 6rpx;
-      height: 31rpx;
-      background-color: #3385ff;
-    }
+    text-indent: 20rpx;
   }
+	.front-vertical-line{
+		&::before {
+		  content: "";
+		  position: absolute;
+		  top: 6rpx;
+		  left: 4rpx;
+		  width: 6rpx;
+		  height: 31rpx;
+		  background-color: #3385ff;
+		}
+	}
+	.yan-xuan-tag{
+		text-indent: 82rpx;
+		&::before {
+		  content: "";
+		  position: absolute;
+		  top: 6rpx;
+			background-image: url(https://hzstatic.hzinsights.com/cygx/icon/Research_normal.png);
+			background-size: 100% 100%;
+			background-repeat: no-repeat;
+		  left: 0;
+		  width: 73rpx;
+		  height: 30rpx;
+		}
+	}
 
   .item-content,
   .item-rich-text {

+ 25 - 0
components/activity/indexActivity.js

@@ -69,6 +69,7 @@ export default {
     signupIsAddOfCancel(item, type, valName = "") {
       let id = this.activityIdAdd || item.ActivityId;
       this.itemData = item;
+			console.log(this.itemData,item.IsSignup);
       if (item && item.IsSignup == 1) {
         if (item.IsResearchPoints) {
           if (isTimeGreaterThanCurrent(item.CancelDeadline)) {
@@ -349,5 +350,29 @@ export default {
         this.isResearchModalShow = true;
       }
     },
+		async signupCheck(item,type,valName = ""){
+			await this.$store.dispatch("showLoginModal")
+			this.signupIsAddOfCancel(item,type,valName)
+		},
+		async summaryHandelCheck(item){
+			await this.$store.dispatch("showLoginModal")
+			this.summaryIsHandel(item)
+		},
+		async meetingReminderCheck(id, type){
+			await this.$store.dispatch("showLoginModal")
+			this.meetingReminderAdd(id, type)
+		},
+		async askingCheck(item, type = ""){
+			await this.$store.dispatch("showLoginModal")
+			this.askingGo(item, type)
+		},
+		async wanttosignupCheck(item){
+			await this.$store.dispatch("showLoginModal")
+			this.wanttosignup(item)
+		},
+		async goDetailCheck(item){
+			await this.$store.dispatch("showLoginModal")
+			this.goDetail(item)
+		}
   },
 };

+ 21 - 13
components/activity/indexActivity.scss

@@ -20,19 +20,23 @@
     border-bottom: 1px solid #e5e5e5;
 
     text {
-      background: linear-gradient(264deg, #01baff 0%, #0044ff 100%);
-      width: 95rpx;
+      // background: linear-gradient(264deg, #01baff 0%, #0044ff 100%);
+      background-color: #DFE8FF;
+      color: #3385FF;
+      width: 110rpx;
       height: 40rpx;
       text-align: center;
       margin-right: 20rpx;
       font-size: 24rpx;
       line-height: 40rpx;
-      color: #fff;
-      border-radius: 8rpx;
+      // color: #fff;
+      border-radius: 4rpx;
     }
 
     .xianxia {
-      background: linear-gradient(264deg, #ff8801 0%, #ffb950 100%);
+      // background: linear-gradient(264deg, #ff8801 0%, #ffb950 100%);
+      background-color: #FFFAF2;
+      color: #FF8A00;
     }
   }
 
@@ -75,20 +79,23 @@
         width: 95rpx;
         height: 40rpx;
         background: #c9c9c9;
-        border-radius: 8rpx 0rpx 8rpx 0rpx;
+        border-radius: 4rpx;
         font-size: 20rpx;
         text-align: center;
         line-height: 40rpx;
-        color: #fff;
+        color: #C0C0C0;
+        background-color: #EDF2F5;
         z-index: 5;
       }
 
       .proceed {
-        background-color: #ffb54a;
+        background-color: #FFFCF6;
+        color:#F1925C ;        
       }
 
       .begin {
-        background-color: #01a7ff;
+        background-color: #F6F9FF;
+        color: #3385FF;
       }
     }
 
@@ -109,10 +116,11 @@
           font-weight: 700;
           margin-bottom: 20rpx;
           image {
-            width: 83rpx;
-            height: 33rpx;
-            vertical-align: middle;
-            margin-right: 5rpx;
+            width: 73rpx;
+            height: 30rpx;
+            vertical-align: bottom;
+            margin-right: 16rpx;
+						margin-bottom: 4rpx;
           }
         }
       }

+ 277 - 0
components/activity/purchaserActivityList.vue

@@ -0,0 +1,277 @@
+<template>
+	<block v-if="isLoad">
+		<view class="purchaser-activity-list" v-if="collectList && collectList.length > 0">
+			<view class="purchaser-activity-box" v-for="(item,index) in collectList" :key="item.ActivityId"
+			:style="{'border-color':item.ActivityType==1?'#8FA4C4':'#E7E0CD'}">
+				<view class="purchaser-activity-head" >
+					<text :class="item.ActivityType == 1 ? 'online' : 'offline'" 
+					class="activity-which-line">{{ item.ActivityType == 1 ? "线上" : "线下" }}</text>
+					<text class="activity-label-text">
+						{{item.ActivityTypeName}}
+					</text>
+					<text class="activity-label-text">
+						{{item.Label}}
+					</text>
+				</view>
+				<view class="activity-title text_twoLine" @click="goDetailCheck(item)">
+					<image v-if="item.IsResearchPoints" src="https://hzstatic.hzinsights.com/cygx/icon/Research_Points.png"></image>
+					<!-- <image v-else-if="item.IsResearch" src="https://hzstatic.hzinsights.com/cygx/icon/Research_normal.png"></image> -->
+					<image v-else-if="item.IsExternalLabel" src="https://hzstatic.hzinsights.com/cygx/icon/activity_external.png"></image>
+					{{ item.ActivityName }}
+				</view>
+				<view class="activity-time-city-row" @click="goDetailCheck(item)">
+					<text class="activity-time">{{ item.SourceType == 2 ? "" : item.ActivityTimeText }}</text>
+					<view class="activity-city" v-if="item.City">
+						<image src="https://hzstatic.hzinsights.com/cygx/icon/location-new.png"></image>
+						{{ item.City }}
+					</view>
+				</view>
+				<view class="activity-buttons-row">
+					<block v-if="item.ActiveState == 1">
+						<text v-if="item.IsShowOutboundCall && item.ActivityTypeId == 1"
+						class="main-button" @click="signupCheck(item, 1)">{{ item.IsSignup == 1 ? "取消外呼" : "预约外呼" }}</text>
+						<text v-if="item.IsShowAppointment" @click="summaryHandelCheck(item)">{{ item.IsAppointment == 1 ? "取消纪要" : "预约纪要" }}</text>
+						<text v-if="item.IsShowMeetingReminder" @click="meetingReminderCheck(item.ActivityId, item.IsCancelMeetingReminder)">
+							{{ item.IsCancelMeetingReminder == 0 ? "消息提醒" : "取消提醒" }}
+						</text>
+						<view v-if="item.IsShowHelpSsk">
+							<text @click="askingCheck(item)">帮我带问</text>
+						</view>
+						<text v-if="item.IsShowOutboundCall && item.ActivityTypeId != 1"
+						 class="main-button" @click="signupCheck(item, 1)">{{ item.IsSignup == 1 ? "取消外呼" : "预约外呼" }}</text>
+						<text v-if="item.IsShowDetails" @click="goDetailCheck(item)" class="main-button">查看详情</text>
+						<block v-if="item.IsShowSignup">
+							<block v-if="item.IsCClassMeeting && !item.IsYidongConduct">
+								<text class="main-button" @click="signupCheck(item, 3, 'CClass')">{{ item.IsSignup == 1 ? "取消报名" : "我要报名" }}</text>
+							</block>
+							<block v-else>
+								<text class="main-button" v-if="item.IsSignup !== 1" @click="wanttosignupCheck(item)">我要报名</text>
+								<text class="main-button" v-else @click="signupCheck(item, 2)">{{ item.SignupType == 1 ? "取消外呼" : "取消报名" }}</text>
+							</block>
+						</block>
+					</block>
+					<view class="bottom-box real-time" v-if="item.ActiveState == 2 && item.ActivityTypeId == 1">
+						<text class="main-button" @click="askingCheck(item, '提问')">实时提问</text>
+					</view>
+				</view>
+			</view>
+			<slot name="finished"></slot>
+			<SelectPopup :selectShow.sync="selectShow" @signupIsAddOfCancel="signupIsAddOfCancel" :selectYdong="selectYdong" />
+			<!-- 所有自定义弹框 -->
+			<modalDialog
+				:isShow="isShow"
+				:signupType="signupType"
+				:goFollow="goFollow"
+				:hasPermission="hasPermission"
+				:jurisdictionList="jurisdictionList"
+				:editIsShow="editIsShow"
+				:isCancelShow="isCancelShow"
+				:idTypeCancel="idTypeCancel"
+				:countryCode="countryCode"
+				:mobileEdit="mobileEdit"
+				:goOnNextStep="goOnNextStep"
+				:isShowhasPermission="isShowhasPermission"
+				:applyForIsShow="applyForIsShow"
+				:mailboxBinding="mailboxBinding"
+			/>
+			 <ShowResearchDlg :isResearchModalShow.sync="isResearchModalShow" :jurisdictionList="jurisdictionList" :checkResearchList.sync="checkResearchList" />
+		</view>
+		<slot v-else></slot>
+	</block>
+	<view  v-else>
+		
+	</view>
+</template>
+
+<script>
+	import myActivityMixin from "@/components/activity/indexActivity.js";
+	import modalDialog from "@/components/modalDialog.vue";
+	import SelectPopup from "@/components/activity/selectPopup";
+	import {  activity} from "@/config/api.js";
+	import ShowResearchDlg from "@/components/activity/showResearchDlg.vue";
+	export default {
+		mixins: [myActivityMixin],
+		components:{modalDialog,SelectPopup,ShowResearchDlg},
+		props:{
+			// 1-未开始、进行中 0-已结束
+			activityType:{
+				type: Number,
+				default:1
+			},
+			whichDay:{
+				type: String,
+				default:''
+			},
+			typeName:{
+				type: String,
+				default:''
+			}
+		},
+		data(){
+			return {
+				pageSize:10,
+				page_no:1,
+				collectList:[],
+				pages:0,
+				isLoad:false
+			}
+		},
+		methods:{
+			// 获取列表数据
+			async getActivityList() {
+			  const res = await activity.getActivityListNew({
+			    PageSize: this.pageSize,
+			    CurrentIndex: this.page_no,
+					IsResearch:true,
+					ActiveState:this.activityType==1? '':3,
+					WhichDay:this.whichDay,
+					ActivityTypeId:this.typeName
+			  })
+			  if (res.Ret === 200) {
+			    if (this.page_no === 1) {
+			      this.collectList = res.Data.List || [];
+			    } else {
+			      this.collectList = this.collectList.concat(res.Data.List || []);
+			    }
+					this.pages = res.Data.Paging.Pages || 0
+					this.isLoad=true
+			  }
+			},
+			reloadActivityList(){
+				this.page_no=1
+				this.getActivityList()
+			},
+			loadActivityMore(){
+				this.page_no++
+				this.getActivityList()
+			},
+		},
+		created() {
+			// this.getActivityList()
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	// 从查研观向11.0 版本开始陆续更换各个页面的页面主题。先从研选页面开始
+	.purchaser-activity-box{
+		width: 100%;
+		padding: 40rpx 20rpx 30rpx;
+		border-top: solid 10rpx ;
+		border-radius: 16rpx;
+		background-color: white;
+		margin-bottom: 20rpx;
+		.purchaser-activity-head{
+			display: flex;
+			align-items: center;
+			margin-bottom: 40rpx;
+			.activity-which-line{
+				min-width: 110rpx;
+				height: 40rpx;
+				border-radius: 4rpx;
+				font-size: 24rpx;
+				line-height: 34rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				color: #333333;
+				font-weight: 500;
+			}
+			.online{
+				background-color: #DFE8FF;
+			}
+			.offline{
+				background-color: #F2E8CC;
+			}
+			.activity-label-text{
+				white-space: nowrap;
+				margin-left: 20rpx;
+				background-color:#F0F1F3 ;
+				color: #333333;
+				font-weight: 400;
+				font-size: 24rpx;
+				line-height: 34rpx;
+				height: 40rpx;
+				min-width: 154rpx;
+				padding: 0 12rpx;
+				border-radius: 40rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				&:last-child{
+					overflow: hidden;
+					text-overflow: ellipsis;
+					white-space: nowrap;
+					display: block;
+					padding: 4rpx 12rpx;
+					text-align: center;
+				}
+			}
+		}
+		.activity-title{
+			font-weight: 700;
+			margin-bottom: 20rpx;
+			image{
+				width: 73rpx;
+				height: 30rpx;
+				vertical-align: bottom;
+				margin-right: 8rpx;
+				margin-bottom: 4rpx;
+			}
+		}
+		.activity-time-city-row{
+			display: flex;
+			margin-bottom: 40rpx;
+			.activity-time{
+				font-size: 24rpx;
+				font-weight: 400;
+				line-height: 34rpx;
+				color: #333333;
+				margin-right: 20rpx;
+				white-space: nowrap;
+			}
+			.activity-city{
+				display: flex;
+				align-items: center;
+				font-size: 24rpx;
+				line-height: 34rpx;
+				color: #376CBB;
+				overflow: hidden;
+				image{
+					height: 24rpx;
+					min-width: 24rpx;
+					width: 24rpx;
+				}
+				text{
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
+				}
+			}
+		}
+		.activity-buttons-row{
+			display: flex;
+			align-items: center;
+			justify-content: flex-end;
+			text{
+				height: 52rpx;
+				min-width: 136rpx;
+				width: 136rpx;
+				padding: 4rpx 20rpx;
+				box-sizing: border-box;
+				color: #376CBB;
+				background-color: white;
+				border: solid 2rpx #376CBB;
+				white-space: nowrap;
+				font-size: 24rpx;
+				line-height: 44rpx;
+				margin-left: 20rpx;
+				border-radius: 52rpx;
+			}
+			.main-button{
+				color: white;
+				background-color: #376CBB;
+			}
+		}
+	}
+</style>

+ 1 - 1
components/modalDialog.vue

@@ -30,7 +30,7 @@
         :confirm-style="{ fontWeight: '700' }"
       >
         <view class="slot-content" v-if="jurisdictionList.IsResearch">
-          <rich-text :nodes="jurisdictionList.PopupMsg"></rich-text>
+          <rich-text :nodes="jurisdictionList.PopupMsg || ''"></rich-text>
         </view>
       </u-modal>
     </block>

+ 24 - 0
config/modules/purchaser.js

@@ -0,0 +1,24 @@
+import { getHttp, postHttp } from "../request.js";
+
+/* 研选  */
+export const purchaserApi = {
+    /* 获取研选banner列表*/
+    getPurchaserBanner: () => {
+      return getHttp("/banner/listYx");
+    },
+		/**
+		 * 调研提交
+		 * params:{string Content:Content}
+		 */
+		purchaserSurveySubmit: (params) => {
+		  return postHttp("/banner/add/yxSurvey",params);
+		},
+		/**
+		 * 调研详情
+		 * params:{number SuveryId:SuveryId}
+		 */
+		purchaserSurveyDetail: (params) => {
+		  return getHttp("/banner/yxSurvey/detail",params);
+		},
+  };
+	

+ 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: 82rpx;
+				&::before {
+				  content: "";
+				  position: absolute;
+				  top: 5rpx;
+					background-image: url(https://hzstatic.hzinsights.com/cygx/icon/Research_normal.png);
+					background-size: 100% 100%;
+					background-repeat: no-repeat;
+				  left: 0;
+				  width: 73rpx;
+				  height: 30rpx;
+				}
+			}
       .item-user {
         display: flex;
         align-items: center;

+ 6 - 1
pageMy/mySchedulepage/mySchedulepage.vue

@@ -35,7 +35,12 @@
           </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 v-if="item.IsResearchPoints" src="https://hzstatic.hzinsights.com/cygx/icon/Research_Points.png"></image>
+								<image v-else-if="item.IsResearch" src="https://hzstatic.hzinsights.com/cygx/icon/Research_normal.png"></image>
+								<image v-else-if="item.IsExternalLabel" src="https://hzstatic.hzinsights.com/cygx/icon/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>

+ 167 - 22
pageMy/reportDetail/reportDetail.vue

@@ -42,15 +42,80 @@
             </view>
             <view v-if="haveAuth === 3" class="btn-cont" @click="sellerApplyAuth"> {{ isShowText ? "提交申请" : "立即申请" }}</view>
             <view class="btn-cont back-btn" @click="backIndex"> 返回 </view>
-            <view style="margin-top: 100rpx" v-if="reportInfo.IsResearch">
-              <view class="research-btn" @click="goRouterResearch('介绍')">
+            <view class="product-introduction-box" v-if="reportInfo.IsResearch">
+<!--              <view class="research-btn" @click="goRouterResearch('介绍')">
                 <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/report_Yx.png"></image>
                 点击查看买方研选产品介绍
               </view>
               <view class="research-btn" @click="goRouterResearch('报价')">
                 <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/quotation_icon.png"></image>
                 点击查看买方研选服务报价单
-              </view>
+              </view> -->
+							<view class="product-introduction">
+								<view class="introduction-header">
+									<view class="introduction-header-left"></view>
+									<view class="introduction-header-right">
+										<view class="introduction-title-CN">
+											产品介绍
+										</view>
+										<view class="introduction-title-US">
+											Product Introduction
+										</view>
+									</view>
+								</view>
+								<view class="introduction-body">
+                  <view class="introduction-body-box">
+                    <view class="body-box-title">
+                      独家亮点
+                    </view>
+                    <view class="introduction-body-row"><span class="highHight-text">低至1000元</span>起访谈优质专家</view>
+                    <view class="introduction-body-row">重点公司小范围交流<span class="highHight-text">破圈</span>参加</view>
+                    <view class="introduction-body-row"><span class="highHight-text">海量</span>调研过程及纪要共享</view>
+                  </view>
+                  <view class="introduction-body-box">
+                    <view class="body-box-title">
+                      优质资源
+                    </view>
+                    <view class="introduction-body-row"><span class="highHight-text">500+</span>篇/年调研纪要更新,</view>
+                    <view class="introduction-body-row"><span class="highHight-text">300+</span>场/年海内外重点公司小范围交流,</view>
+                    <view class="introduction-body-row"><span class="highHight-text">100+</span>场/年热点线下调研,</view>
+                    <view class="introduction-body-row"><span class="highHight-text">30000+</span>名优质行业专家长期合作,</view>
+                    <view class="introduction-body-row"><span class="highHight-text">1000+</span>名优秀买方汇集,</view>
+                  </view>
+                  <view class="introduction-body-box">
+                    <view class="body-box-title" style="margin-bottom: 18rpx;">
+                      服务报价
+                    </view>
+                    <view class="body-row-content">
+                      <view class="body-row-title">
+                        3万/年
+                      </view>
+                      <view class="introduction-body-row">含无限量调研纪要查阅</view>
+                      <view class="introduction-body-row"><span class="highHight-text">以及3次</span>公开专家访谈;</view>
+                    </view>
+                    <view class="body-row-content">
+                      <view class="body-row-title">
+                        5万/年
+                      </view>
+                      <view class="introduction-body-row">含无限量调研纪要查阅</view>
+                      <view class="introduction-body-row">
+                        <span class="highHight-text">以及15次</span>公开专家访谈<span class="highHight-text">或30次</span>重点公司、专家小范围交流;
+                      </view>
+                    </view>
+                    <view class="body-row-content" style="margin-bottom: 0;">
+                      <view class="body-row-title">
+                        10万/年
+                      </view>
+                      <view class="introduction-body-row">含无限量调研纪要查阅</view>
+                      <view class="introduction-body-row">
+                        <span class="highHight-text">以及40次</span>公开专家访谈
+                        <span class="highHight-text">或80次</span>重点公司、专家小范围交流
+                        <span class="highHight-text">或20次</span>私享专家一对一。
+                      </view>
+                    </view>
+                  </view>
+								</view>
+							</view>
             </view>
           </block>
           <block v-else>
@@ -346,7 +411,7 @@ export default {
 <style lang="scss" scoped>
 .reportDetail-container {
   background-color: #fff;
-  padding: 20rpx 34rpx 134rpx;
+  padding: 20rpx 0 134rpx;
   .report-top {
     color: #999999;
     .report-title {
@@ -408,7 +473,7 @@ export default {
     }
   }
   .noauth-cont {
-    padding-top: 150rpx;
+    padding-top: 170rpx;
     text-align: center;
     font-size: 28rpx;
     .noauth-ico {
@@ -456,6 +521,86 @@ export default {
         z-index: 1;
       }
     }
+    .product-introduction-box{
+			background-color: #F7F7F7;
+			padding-top: 10rpx;
+			margin-top: 60rpx;
+			.product-introduction{
+				padding: 60rpx 60rpx 0;
+				background-color: white;
+				.introduction-header{
+					margin-bottom: 40rpx;
+					display: flex;
+					.introduction-header-left{
+						background-color: #CAAF8B;
+						height: 90rpx;
+						width: 14rpx;
+						margin-right: 20rpx;
+					}
+					.introduction-header-right{
+						text-align: left;
+						.introduction-title-CN{
+							font-weight: 500;
+							font-size: 34rpx;
+							color: #333333;
+							line-height: 42rpx;
+							margin-bottom: 8rpx;
+						}
+						.introduction-title-US{
+							font-weight: 400;
+							font-size: 28rpx;
+							color: #C0C4CC;
+							line-height: 42rpx;
+						}
+					}
+				}
+				.introduction-body{
+          .introduction-body-box{
+            text-align: left;
+            margin-bottom: 40rpx;
+            .body-row-content{
+              margin-bottom: 40rpx;
+              font-size: 34rpx;
+              line-height: 48rpx;
+              font-weight: 600;
+              color: #CAAF8B;
+              .body-row-title{
+                margin-left: 40rpx;
+              }
+            }
+            .body-box-title{
+              font-weight: 600;
+              font-size: 34rpx;
+              line-height: 48rpx;
+              padding-left: 40rpx;
+              position: relative;
+              margin-bottom: 22rpx;
+              &::before{
+                content: "";
+                height: 20rpx;
+                width: 20rpx;
+                background-color: #CAAF8B;
+                border-radius: 20rpx;
+                position: absolute;
+                left: 0;
+                top: 16rpx;
+              }
+            }
+            .introduction-body-row{
+              margin-left: 40rpx;
+              font-weight: 400;
+              font-size: 26rpx;
+              color: #333333;
+              line-height: 36rpx;
+            }
+            .highHight-text{
+              color: #CAAF8B;
+            }
+          }
+
+				}
+			}
+		}
   }
   .month_card {
     width: 100%;
@@ -494,22 +639,22 @@ export default {
       margin-top: 10rpx;
     }
   }
-  .research-btn {
-    display: flex;
-    align-items: center;
-    font-size: 32rpx;
-    width: 546rpx;
-    height: 78rpx;
-    margin: 30rpx auto;
-    background: #f8f8fa;
-    border-radius: 4rpx;
-    padding-left: 40rpx;
-    /* 字体/333 */
-    image {
-      width: 40rpx;
-      height: 40rpx;
-      margin-right: 10rpx;
-    }
-  }
+  // .research-btn {
+  //   display: flex;
+  //   align-items: center;
+  //   font-size: 32rpx;
+  //   width: 546rpx;
+  //   height: 78rpx;
+  //   margin: 30rpx auto;
+  //   background: #f8f8fa;
+  //   border-radius: 4rpx;
+  //   padding-left: 40rpx;
+  //   /* 字体/333 */
+  //   image {
+  //     width: 40rpx;
+  //     height: 40rpx;
+  //     margin-right: 10rpx;
+  //   }
+  // }
 }
 </style>

+ 164 - 19
pageMy/reportPage/reportPage.vue

@@ -69,14 +69,79 @@
           </view>
           <view v-if="haveAuth === 3" class="btn-cont" @click="sellerApplyAuth"> {{ isShowText ? "提交申请" : "立即申请" }}</view>
           <view class="btn-cont back-btn" @click="backIndex"> 返回 </view>
-          <view style="margin-top: 100rpx" v-if="reportInfo.IsResearch">
-            <view class="research-btn" @click="goRouterResearch('介绍')">
+          <view class="product-introduction-box" v-if="reportInfo.IsResearch">
+  <!--      <view class="research-btn" @click="goRouterResearch('介绍')">
               <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/report_Yx.png"></image>
               点击查看买方研选产品介绍
             </view>
             <view class="research-btn" @click="goRouterResearch('报价')">
               <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/quotation_icon.png"></image>
               点击查看买方研选服务报价单
+            </view> -->
+            <view class="product-introduction">
+              <view class="introduction-header">
+                <view class="introduction-header-left"></view>
+                <view class="introduction-header-right">
+                  <view class="introduction-title-CN">
+                    产品介绍
+                  </view>
+                  <view class="introduction-title-US">
+                    Product Introduction
+                  </view>
+                </view>
+              </view>
+              <view class="introduction-body">
+                <view class="introduction-body-box">
+                  <view class="body-box-title">
+                    独家亮点
+                  </view>
+                  <view class="introduction-body-row"><span class="highHight-text">低至1000元</span>起访谈优质专家</view>
+                  <view class="introduction-body-row">重点公司小范围交流<span class="highHight-text">破圈</span>参加</view>
+                  <view class="introduction-body-row"><span class="highHight-text">海量</span>调研过程及纪要共享</view>
+                </view>
+                <view class="introduction-body-box">
+                  <view class="body-box-title">
+                    优质资源
+                  </view>
+                  <view class="introduction-body-row"><span class="highHight-text">500+</span>篇/年调研纪要更新,</view>
+                  <view class="introduction-body-row"><span class="highHight-text">300+</span>场/年海内外重点公司小范围交流,</view>
+                  <view class="introduction-body-row"><span class="highHight-text">100+</span>场/年热点线下调研,</view>
+                  <view class="introduction-body-row"><span class="highHight-text">30000+</span>名优质行业专家长期合作,</view>
+                  <view class="introduction-body-row"><span class="highHight-text">1000+</span>名优秀买方汇集,</view>
+                </view>
+                <view class="introduction-body-box">
+                  <view class="body-box-title" style="margin-bottom: 18rpx;">
+                    服务报价
+                  </view>
+                  <view class="body-row-content">
+                    <view class="body-row-title">
+                      3万/年
+                    </view>
+                    <view class="introduction-body-row">含无限量调研纪要查阅</view>
+                    <view class="introduction-body-row"><span class="highHight-text">以及3次</span>公开专家访谈;</view>
+                  </view>
+                  <view class="body-row-content">
+                    <view class="body-row-title">
+                      5万/年
+                    </view>
+                    <view class="introduction-body-row">含无限量调研纪要查阅</view>
+                    <view class="introduction-body-row">
+                      <span class="highHight-text">以及15次</span>公开专家访谈<span class="highHight-text">或30次</span>重点公司、专家小范围交流;
+                    </view>
+                  </view>
+                  <view class="body-row-content" style="margin-bottom: 0;">
+                    <view class="body-row-title">
+                      10万/年
+                    </view>
+                    <view class="introduction-body-row">含无限量调研纪要查阅</view>
+                    <view class="introduction-body-row">
+                      <span class="highHight-text">以及40次</span>公开专家访谈
+                      <span class="highHight-text">或80次</span>重点公司、专家小范围交流
+                      <span class="highHight-text">或20次</span>私享专家一对一。
+                    </view>
+                  </view>
+                </view>
+              </view>
             </view>
           </view>
         </block>
@@ -478,7 +543,7 @@ export default {
     }
   }
   .noauth-cont {
-    padding-top: 150rpx;
+    padding-top: 170rpx;
     text-align: center;
     font-size: 28rpx;
     .noauth-ico {
@@ -526,6 +591,86 @@ export default {
         z-index: 1;
       }
     }
+    .product-introduction-box{
+			background-color: #F7F7F7;
+			padding-top: 10rpx;
+			margin-top: 60rpx;
+			.product-introduction{
+				padding: 60rpx 60rpx 0;
+				background-color: white;
+				.introduction-header{
+					margin-bottom: 40rpx;
+					display: flex;
+					.introduction-header-left{
+						background-color: #CAAF8B;
+						height: 90rpx;
+						width: 14rpx;
+						margin-right: 20rpx;
+					}
+					.introduction-header-right{
+						text-align: left;
+						.introduction-title-CN{
+							font-weight: 500;
+							font-size: 34rpx;
+							color: #333333;
+							line-height: 42rpx;
+							margin-bottom: 8rpx;
+						}
+						.introduction-title-US{
+							font-weight: 400;
+							font-size: 28rpx;
+							color: #C0C4CC;
+							line-height: 42rpx;
+						}
+					}
+				}
+				.introduction-body{
+          .introduction-body-box{
+            text-align: left;
+            margin-bottom: 40rpx;
+            .body-row-content{
+              margin-bottom: 40rpx;
+              font-size: 34rpx;
+              line-height: 48rpx;
+              font-weight: 600;
+              color: #CAAF8B;
+              .body-row-title{
+                margin-left: 40rpx;
+              }
+            }
+            .body-box-title{
+              font-weight: 600;
+              font-size: 34rpx;
+              line-height: 48rpx;
+              padding-left: 40rpx;
+              position: relative;
+              margin-bottom: 22rpx;
+              &::before{
+                content: "";
+                height: 20rpx;
+                width: 20rpx;
+                background-color: #CAAF8B;
+                border-radius: 20rpx;
+                position: absolute;
+                left: 0;
+                top: 16rpx;
+              }
+            }
+            .introduction-body-row{
+              margin-left: 40rpx;
+              font-weight: 400;
+              font-size: 26rpx;
+              color: #333333;
+              line-height: 36rpx;
+            }
+            .highHight-text{
+              color: #CAAF8B;
+            }
+          }
+
+				}
+			}
+		}
   }
   .month_card {
     width: 100%;
@@ -564,21 +709,21 @@ export default {
       margin-top: 10rpx;
     }
   }
-  .research-btn {
-    display: flex;
-    align-items: center;
-    font-size: 32rpx;
-    width: 546rpx;
-    height: 78rpx;
-    margin: 30rpx auto;
-    background: #f8f8fa;
-    border-radius: 4rpx;
-    padding-left: 40rpx;
-    image {
-      width: 40rpx;
-      height: 40rpx;
-      margin-right: 10rpx;
-    }
-  }
+  // .research-btn {
+  //   display: flex;
+  //   align-items: center;
+  //   font-size: 32rpx;
+  //   width: 546rpx;
+  //   height: 78rpx;
+  //   margin: 30rpx auto;
+  //   background: #f8f8fa;
+  //   border-radius: 4rpx;
+  //   padding-left: 40rpx;
+  //   image {
+  //     width: 40rpx;
+  //     height: 40rpx;
+  //     margin-right: 10rpx;
+  //   }
+  // }
 }
 </style>

+ 4 - 2
pages-purchaser/components/cssAuthorTheme.scss

@@ -113,11 +113,13 @@
     }
 
     .li-type {
+        min-width: 126rpx;
         padding: 0 15rpx;
-        height: 29rpx;
-        margin-top: 6rpx;
+        height: 34rpx;
+        // margin-top: 6rpx;
         display: flex;
         align-items: center;
+        justify-content: center;
         border-radius: 4rpx;
         color: #fff;
         font-size: 24rpx;

+ 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 });
+		},
+  }
+};

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

@@ -0,0 +1,35 @@
+@import  "./cssAuthorTheme.scss";
+
+.announcement{
+	background: #fff;
+	padding: 0 30rpx;
+	.content-ul {
+		border-top: 1px solid #f6f6f6;
+		padding:0;
+		// .li-type {
+		// 	min-width: 126rpx;
+		// 	padding: 0 15rpx;
+		// 	// width: 91rpx;
+		// 	height: 34rpx;
+		// 	// 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;
+				}
+			}
+		}
+	}
+}

+ 75 - 0
pages-purchaser/finishedActivity/finishedActivity.vue

@@ -0,0 +1,75 @@
+<template>
+	<view class="finished-activity-container">
+		<purchaserActivityList style="width: 682rpx;" ref="purchaserActivityListRef" :activityType="0">
+			<view class="no-data-box">
+				<view class="no-data">
+					<image src="https://hzstatic.hzinsights.com/cygx/icon/activity-no-data.png" ></image>
+					<text>暂无对应活动</text>
+				</view>
+			</view>
+		</purchaserActivityList>
+		<Loading />
+	</view>
+</template>
+
+<script>
+	import purchaserActivityList from "@/components/activity/purchaserActivityList.vue"
+	import { Throttle } from "@/config/util.js";
+	import { activity } from "@/config/api";
+	
+	export default {
+		components:{purchaserActivityList},
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		},
+		onLoad() {
+			this.$refs.purchaserActivityListRef.reloadActivityList();
+		},
+		onReachBottom: Throttle(function () {
+		  if (this.$refs.purchaserActivityListRef.page_no >= this.$refs.purchaserActivityListRef.pages) return;
+		  this.$refs.purchaserActivityListRef.loadActivityMore();
+		}),
+	}
+</script>
+
+<style lang="scss" scoped>
+	.finished-activity-container{
+		background-color: #F3F5F9;
+		// height: 100vh;
+		min-height: 100vh;
+		padding: 20rpx 34rpx 36rpx;
+		.no-data-box{
+			width: 682rpx;
+			height: calc(100vh - 56rpx);
+			border-radius: 16rpx;
+			background-color: white;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			justify-content: center;
+			.no-data{
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+				justify-content: center;
+				margin-bottom: 40rpx;
+				image{
+					width: 412rpx;
+					height: 380rpx;
+					margin-bottom: 40rpx;
+				}
+				text{
+					font-size: 24rpx;
+					line-height: 34rpx;
+					color: #999999;
+				}
+			}
+		}
+	}
+	
+</style>

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

@@ -0,0 +1,171 @@
+<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(option) {
+			this.researchArticleTypeList();
+			// this.researchArticleNewList()
+			this.loadShare(option);
+		},
+		/** 用户点击分享 */
+		onShareAppMessage: function (res) {
+		  return {
+		    title: "最新报告",
+		    path: "pages-purchaser/lastestReport/lastestReport?ArticleTypeIds=" + this.newCheckboxValue.join(","),
+		  };
+		},
+		methods: {
+			loadShare(option){
+				this.newCheckboxValue = option.ArticleTypeIds?option.ArticleTypeIds.split(',') || []:[]
+				this.researchArticleNewList();
+			},
+			// 复选框组的选择事件
+			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>

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

@@ -0,0 +1,40 @@
+<template>
+	<view class="leaflet-image">
+		<image :src="leafletImageUrl" mode="widthFix"></image>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				leafletImageUrlParams:'',
+				leafletImageUrl:''
+			}
+		},
+		methods: {
+			
+		},
+		onLoad(option) {
+			this.leafletImageUrlParams = option.leafletImage
+			this.leafletImageUrl = option.leafletImage?decodeURIComponent(option.leafletImage):''
+		},
+		/** 用户点击分享 */
+		onShareAppMessage: function (res) {
+		  return {
+		    title: "买方研选宣传单",
+		    path: "/pages-purchaser/leaflet/leaflet?leafletImage="+this.leafletImageUrlParams,
+		  };
+		},
+	}
+</script>
+
+<style lang="scss">
+	.leaflet-image{
+		image{
+			width: 100vw;
+			vertical-align: bottom;
+			object-fit: cover;
+		}
+	}
+</style>

+ 176 - 0
pages-purchaser/purchaserActivity/purchaserActivity.vue

@@ -0,0 +1,176 @@
+<template>
+	<view class="purchaser-activity-container">
+		<view class="search-bar">
+			<text v-for="item in activityTimeList" :key="item.Id" :class="item.IsChoose ? 'active' : ''" 
+			@click="isActivityDate(item.Id)">{{ item.StatusName }}</text>
+			<text v-for="item in activityTypeList" :key="item.Id" :class="item.IsChoose ? 'active' : ''" 
+			@click="isActivityType(item.Id)">{{ item.StatusName }}</text>
+		</view>
+		<view class="purchaser-activity-list">
+			<purchaserActivityList style="width: 682rpx;" ref="purchaserActivityListRef" :whichDay="whichDay"
+			:typeName="typeName">
+				<view class="no-data-box">
+					<view class="no-data">
+						<image src="https://hzstatic.hzinsights.com/cygx/icon/activity-no-data.png" ></image>
+						<text>暂无对应活动</text>
+					</view>
+				</view>
+			</purchaserActivityList>
+		</view>
+		<Loading />
+	</view>
+</template>
+
+<script>
+	import purchaserActivityList from "@/components/activity/purchaserActivityList.vue"
+	import { Throttle } from "@/config/util.js";
+	import { activity } from "@/config/api";
+	
+	export default {
+		components:{purchaserActivityList},
+		data() {
+			return {
+				activityTimeList: [
+				  { Id: 1, IsChoose: false, StatusName: "今日活动" },
+				  { Id: 2, IsChoose: false, StatusName: "明日活动" },
+				],
+				activityTypeList: [
+				  { Id: 3, IsChoose: false, StatusName: "公司调研电话会" }
+				],
+				whichDay:'',
+				typeName:''
+			}
+		},
+		methods: {
+			// 今日明日的点击事件
+			isActivityDate(id) {
+			  this.activityTimeList.forEach((item) => {
+			    if (item.Id == id) item.IsChoose = !item.IsChoose;
+			  });
+			  const arr = [];
+			  this.activityTimeList.forEach((item) => item.IsChoose && arr.push(item.Id));
+			  this.whichDay = arr.join(",");
+				this.typeName=""
+				this.activityTypeList.map(item =>{
+					item.IsChoose=false
+				})
+				this.$nextTick(()=>{
+					this.$refs.purchaserActivityListRef.reloadActivityList();
+				})
+				
+			},
+			isActivityType(id){
+				this.activityTypeList.forEach((item) => {
+				  if (item.Id == id) item.IsChoose = !item.IsChoose;
+				});
+				const arr = [];
+				this.activityTypeList.forEach((item) => item.IsChoose && arr.push(item.Id));
+				this.typeName = arr.join(",");
+				this.whichDay=""
+				this.activityTimeList.map(item =>{
+					item.IsChoose=false
+				})
+				this.$nextTick(()=>{
+					this.$refs.purchaserActivityListRef.reloadActivityList();
+				})
+			},
+			loadShare(option){
+				// if(!option) return
+				this.whichDay = option.whichDay || ""
+				let whichDayArr = this.whichDay.split(',')
+				this.typeName = option.typeName || ""
+				let typeNameArr = this.typeName.split(',')
+				this.activityTimeList.map(item =>{
+					item.IsChoose=  whichDayArr.includes(item.Id+'') 
+				})
+				this.activityTypeList.forEach((item) => {
+				  item.IsChoose=  typeNameArr.includes(item.Id+'') 
+				});
+				this.$nextTick(()=>{
+					this.$refs.purchaserActivityListRef.reloadActivityList();
+				})
+			}
+		},
+		/** 用户点击分享 */
+		onShareAppMessage: function (res) {
+		  return {
+		    title: this.isHorzMobile ? "好友向您推荐此内容,上传名片享查研观向免费月卡!" : "近期所有研选活动预告",
+		    path: "/pages-purchaser/purchaserActivity/purchaserActivity?whichDay=" + this.whichDay + "&typeName=" + this.typeName,
+		  };
+		},
+		onLoad(option) {
+			this.loadShare(option);
+		},
+		onReachBottom: Throttle(function () {
+		  if (this.$refs.purchaserActivityListRef.page_no >= this.$refs.purchaserActivityListRef.pages) return;
+		  this.$refs.purchaserActivityListRef.loadActivityMore();
+		}),
+	}
+</script>
+
+<style lang="scss" scoped>
+	.purchaser-activity-container{
+		background-color: #F3F5F9;
+		min-height: 100vh;
+		// height: 100vh;
+		.search-bar{
+			width: 100vw;
+			height: 82rpx;
+			display: flex;
+			align-items: center;
+			padding: 0 34rpx;
+			background-color: white;
+			position: sticky;
+			top: 0;
+			text {
+			  // width: 136rpx;
+				min-width: 136rpx;
+				padding: 4rpx 20rpx;
+				height: 42rpx;
+			  text-align: center;
+			  line-height: 34rpx;
+			  background-color: #f8f8fa;
+			  box-sizing: border-box;
+			  border-radius: 44rpx;
+				margin-right: 20rpx;
+				font-size: 24rpx;
+				white-space: nowrap;
+			}
+			.active {
+			  background-color: #3385ff;
+			  color: #fff;
+			}
+		}
+		.purchaser-activity-list{
+			padding: 20rpx 34rpx 36rpx;
+			.no-data-box{
+				width: 682rpx;
+				// height: 100%;
+				border-radius: 16rpx;
+				background-color: white;
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+				justify-content: center;
+				.no-data{
+					display: flex;
+					flex-direction: column;
+					align-items: center;
+					justify-content: center;
+					height: calc(100vh - 138rpx);
+					image{
+						width: 412rpx;
+						height: 380rpx;
+						margin-bottom: 40rpx;
+					}
+					text{
+						font-size: 24rpx;
+						line-height: 34rpx;
+						color: #999999;
+					}
+				}
+			}
+		}
+	}
+	
+</style>

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

@@ -0,0 +1,339 @@
+<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://hzstatic.hzinsights.com/cygx/icon/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" });
+			},
+			loadShare(option){
+				this.tagActive = option.tagActive || "用户"
+			}
+		},
+		/** 用户点击分享 */
+		onShareAppMessage: function (res) {
+		  return {
+		    title: "研选榜单",
+		    path: "/pages-purchaser/researchList/researchList?tagActive=" + this.tagActive,
+		  };
+		},
+		onLoad(option) {
+			this.loadShare(option);
+		},
+	}
+</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>

+ 1 - 1
pages-purchaser/researchTheme/researchTheme.vue

@@ -10,7 +10,7 @@
         <view class="li-item hot-item">
           <view style="display: flex" class="text_oneLine hot-new" @click="themeDetails(item, '主题热度榜')">
             <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> -->
+            <!-- <image class="new-img" v-if="item.IsNew" src="https://hzstatic.hzinsights.com/cygx/icon/new_report.png"></image> -->
             <image class="hot-icon" v-if="item.IsHot" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/hot_report.png" mode=""></image>
           </view>
           <text :class="item.IsFollw ? 'cancel-attention' : 'attention'" @click="isAttention(item, '主题')">{{ item.IsFollw ? "取消关注" : "+ 关注" }}</text>

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

@@ -0,0 +1,36 @@
+<template>
+	<view class="survey-box">
+		{{surveyText}}
+	</view>
+</template>
+
+<script>
+	import {purchaserApi} from "@/config/modules/purchaser.js"
+	export default {
+		data() {
+			return {
+				surveyText:""
+			}
+		},
+		methods: {
+			getDetail(surveyId){
+				purchaserApi.purchaserSurveyDetail({SuveryId:surveyId}).then(res=>{
+					if(res.Ret == 200){
+						this.surveyText = res.Data.Detail.Content || '暂无'
+					}
+				})
+			}
+		},
+		onLoad(option) {
+			// console.log(option,'option');
+			this.getDetail(option.surveyId || 0)
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.survey-box{
+		padding: 60rpx 40rpx;
+		font-size: 32rpx;
+	}
+</style>

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

@@ -0,0 +1,83 @@
+<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'
+	import {purchaserApi} from "@/config/modules/purchaser.js"
+	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
+				}
+				purchaserApi.purchaserSurveySubmit({Content:this.surveyText}).then(res=>{
+					if (res.Ret === 200) {
+						uni.showToast({
+							title:'提交成功,请等待销售与您联系',
+							duration:2000,
+							icon:'none'
+						})
+						setTimeout(()=>{
+							uni.navigateBack()
+						},2000)
+					}
+				})
+			}
+		},
+		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 v-if="item.IsResearchPoints" src="https://hzstatic.hzinsights.com/cygx/icon/Research_Points.png"></image>
+								  <image v-else-if="item.IsResearch" src="https://hzstatic.hzinsights.com/cygx/icon/Research_normal.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>

+ 24 - 8
pages-search/components/report.vue

@@ -16,7 +16,7 @@
               </view>
               {{ item.IndustryName }}
               <image class="hot-icon" v-if="item.IsHot" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/hot_report.png" mode=""></image>
-              <image v-if="item.IsNew" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png" mode=""></image>
+              <image v-if="item.IsNew" src="https://hzstatic.hzinsights.com/cygx/icon/new_report.png" mode=""></image>
             </view>
             <view class="publish">
               <text class="reg-hint" v-if="item.IsRed"></text>
@@ -73,7 +73,7 @@
               </view>
               {{ item.IndustryName }}
               <image class="hot-icon" v-if="item.IsHot" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/hot_report.png" mode=""></image>
-              <image v-if="item.IsNew" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png" mode=""></image>
+              <image v-if="item.IsNew" src="https://hzstatic.hzinsights.com/cygx/icon/new_report.png" mode=""></image>
             </view>
             <view class="publish">
               {{ item.PublishDate }}
@@ -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 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: 82rpx;
+				&::before {
+				  content: "";
+				  position: absolute;
+				  top: 5rpx;
+					background-image: url(https://hzstatic.hzinsights.com/cygx/icon/Research_normal.png);
+					background-size: 100% 100%;
+					background-repeat: no-repeat;
+				  left: 0;
+				  width: 73rpx;
+				  height: 30rpx;
+				}
+			}
       .item-user {
         display: flex;
         align-items: center;

+ 58 - 3
pages.json

@@ -450,8 +450,62 @@
             "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
+						}
+					}
+			    ,
+					{
+						"path" : "finishedActivity/finishedActivity",
+						"style" :                                                                                    
+						{
+								"navigationBarTitleText": "已结束活动",
+								"enablePullDownRefresh": false
+						}
+					}
+					,
+					{
+						"path" : "purchaserActivity/purchaserActivity",
+						"style" :                                                                                    
+						{
+								"navigationBarTitleText": "研选活动",
+								"enablePullDownRefresh": false
+						}
+					}
+				]
     },
     {
       "root": "pages-message",
@@ -501,7 +555,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": {

+ 7 - 184
pages/activity/activity.vue

@@ -41,64 +41,8 @@
     <!-- 活动列表 -->
     <block>
       <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 {
@@ -156,8 +102,10 @@ export default {
   methods: {
     // 获取权限、所有的行业
     async getUserSearchContent() {
+      // IsHideResearch 行业列表是否隐藏 买方研选
       const res = await activity.getUserSearchContent({
         IsShowJurisdiction: this.isGetJurisdiction,
+        IsHideResearch:false
       });
       if (res.Ret === 200) {
         this.isShowJurisdiction = res.Data.IsShowJurisdiction;
@@ -237,7 +185,7 @@ export default {
             str.push(key.PermissionName);
           }
         });
-      if ((str.length == 6 && this.listChartPermission.length == 6) || str.length <= 0) {
+      if ((str.length ==  this.listChartPermission.length) || str.length <= 0) {
         this.chartPermissionName = "所有行业";
       } else {
         this.chartPermissionName = str.join(",");
@@ -307,30 +255,6 @@ export default {
         });
       }
     },
-    // 去往详情
-    goDetails(item, key) {
-			console.log(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
-        // );
-				let url ="/activityPages/themeActivity/themeActivity?title=" + key + "&type=" + type + "&id=" + id + "&whichDay=" + this.whichDay + str
-				uni.navigateTo({
-				  url,
-				});
-      } 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=活动页面");
@@ -488,107 +412,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;

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

@@ -0,0 +1,227 @@
+<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: 73rpx; right: -6rpx;height:30rpx" class="item-image" lazy-load src="https://hzstatic.hzinsights.com/cygx/icon/Research_Points.png"></image>
+								<image v-else-if="val.IsResearch" 
+								style="width: 73rpx; right: -6rpx;height:30rpx" 
+								class="item-image" lazy-load 
+								src="https://hzstatic.hzinsights.com/cygx/icon/Research_normal.png"></image>
+								<view class="item-trip" v-else-if="val.TripStatus == 2">确定行程</view>
+								<view class="item-trip item-city" v-else-if="val.City.length == 2">{{ val.City }}</view>
+								<image
+									style="width: 73rpx; right: -6rpx;height: 30rpx;"
+									v-else-if="val.IsExternalLabel"
+									class="item-image"
+									lazy-load
+									src="https://hzstatic.hzinsights.com/cygx/icon/activity_external.png"
+								></image>
+								<image v-else-if="val.IsNew" class="item-image" lazy-load src="https://hzstatic.hzinsights.com/cygx/icon/new_report.png"></image>
+	              <text class="text_oneLine"> {{ val.KeyWord }}</text>
+	            </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: 73rpx; right: -6rpx;height:30rpx" class="item-image" lazy-load src="https://hzstatic.hzinsights.com/cygx/icon/Research_Points.png"></image>
+								<image v-else-if="val.IsResearch" 
+								style="width: 73rpx; right: -6rpx;height:30rpx" 
+								class="item-image" lazy-load 
+								src="https://hzstatic.hzinsights.com/cygx/icon/Research_normal.png"></image>
+								<view class="item-trip" v-else-if="val.TripStatus == 2">确定行程</view>
+								<view class="item-trip item-city" v-else-if="val.City.length == 2">{{ val.City }}</view>
+								<image
+									style="width: 73rpx; right: -6rpx;height: 30rpx;"
+									v-else-if="val.IsExternalLabel"
+									class="item-image"
+									lazy-load
+									src="https://hzstatic.hzinsights.com/cygx/icon/activity_external.png"
+								></image>
+								<image v-else-if="val.IsNew" class="item-image" lazy-load src="https://hzstatic.hzinsights.com/cygx/icon/new_report.png"></image>
+	              <text class="text_oneLine"> {{ val.KeyWord }}</text>
+	            </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
+					// );
+					let url ="/activityPages/themeActivity/themeActivity?title=" + key + "&type=" + type + "&id=" + id + "&whichDay=" + this.whichDay + str
+					uni.navigateTo({
+						url,
+					});
+				} 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: "明日活动" }
+];

+ 360 - 703
pages/purchaser/purchaser.vue

@@ -2,428 +2,180 @@
   <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.IndexImg" 
+						@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="purchaser-content-box">
+				<view class="purchaser-content-box-head">
+					<view class="content-box-head-title">
+						<image src="https://hzstatic.hzinsights.com/cygx/icon/purchaser-report.png"></image>
+						<text>近期报告更新</text>
+					</view>
+					<view class="content-box-head-more" @click="toReportTotal">
+						<text>全部更新</text>
+						<image src="https://hzstatic.hzinsights.com/cygx/icon/right-arrow-circle.png"></image>
+					</view>
+				</view>
+				<view class="purchaser-content-box-body">
+					<view class="purchaser-content-box-row" v-for="item in recentReportList" :key="item.ArticleId">
+						<text class="purchaser-content-row-tag" :style="{padding:item.ArticleTypeName.length==2?'4rpx 28rpx':'4rpx 15rpx'}">
+							{{item.ArticleTypeName}}
+						</text>
+						<view class="purchaser-content-row-title" :style="{ marginLeft: item.Title.substr(0, 1) != '【' ? '14rpx' : 0 }"
+						@click="goDetail(item)">
+							{{item.Title}}
+							<text v-for="it in item.List" class="purchaser-content-row-object" :key="it.IndustrialManagementId"
+							@click="(e) =>themeDetails(e,it, '月度收藏榜')">#{{it.IndustryName}}</text>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="purchaser-content-box">
+				<view class="purchaser-content-box-head">
+					<view class="content-box-head-title">
+						<image src="https://hzstatic.hzinsights.com/cygx/icon/purchaser.png"></image>
+						<text>研选活动</text>
+					</view>
+					<view class="content-box-head-more" @click="toActivityTotal">
+						<text>查看全部</text>
+						<image src="https://hzstatic.hzinsights.com/cygx/icon/right-arrow-circle.png"></image>
+					</view>
+				</view>
+				
+				<purchaserActivityList style="width: 682rpx;" ref="purchaserActivityListRef" >
+					<view class="no-data-box">
+						<view class="no-data">
+							<image src="https://hzstatic.hzinsights.com/cygx/icon/activity-no-data.png" ></image>
+							<text>暂无对应活动</text>
+						</view>
+						<view class="end-activity-text" @click="endActivity">已结束活动>></view>
+					</view>
+					<view class="end-activity-text" @click="endActivity" slot="finished">已结束活动>></view>
+				</purchaserActivityList>
+
+			</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 purchaserActivityList from "@/components/activity/purchaserActivityList.vue"
+import {purchaserApi} from "@/config/modules/purchaser.js"
+import { Research , activity} from "@/config/api.js";
+import { Throttle } from "@/config/util.js";
+
 export default {
-  components: { freeCharge, SearchBar },
+  components: { freeCharge, SearchBar ,purchaserActivityList},
   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:[],
+			researchBanner:{},
+			recentReportList:[],
     };
   },
-  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,
-    },
-  },
   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(){
+			//获取banner信息
+			purchaserApi.getPurchaserBanner().then(res=>{
+				console.log(res);
+				if (res.Ret === 200) {
+					this.researchBanner = res.Data.ListB[0] || {}
+					this.bannerDataList = res.Data.ListA || []
+				}
+			})
+		},
+			
+		async getRecentReportList(){
+			// 获取最近更新报告
+			const res = await Research.researchArticleNewList({
+			  PageSize: 5,
+			  CurrentIndex: 1,
+			  ArticleTypeIds: '',
+			});
+			if (res.Ret === 200) {
+			  this.recentReportList = res.Data.List || []
+			}
+		},
+		//去往文章详情页面
+		goDetail(item) {
+		  this.$store.commit("setRouterReport", "月度收藏榜");
+		  uni.navigateTo({ url: "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId });
+		},
+		//去往主题详情
+		themeDetails(e,item, source) {
+			e.stopPropagation();
+		  uni.navigateTo({ url: "/reportPages/researchTheme/researchTheme?id=" + item.IndustrialManagementId + "&pageRouter=" + source });
+		},
+		// 跳转研选已结束活动
+		endActivity() {
+		  uni.navigateTo({
+		    url: "/pages-purchaser/finishedActivity/finishedActivity",
+		  });
+		},
+		// 宣传单跳转
+		bannerSwiperHandler(item){
+			if(!item){
+				// 榜单
+				uni.navigateTo({
+					url: "/pages-purchaser/researchList/researchList"
+				})
+				return 
+			}
+			uni.navigateTo({
+				url: "/"+item.Path
+			})
+		},
+		toReportTotal(){
+			uni.navigateTo({
+				url: "/pages-purchaser/lastestReport/lastestReport"
+			})
+		},
+		toActivityTotal(){
+			uni.navigateTo({
+				url: "/pages-purchaser/purchaserActivity/purchaserActivity"
+			})
+		},
     /* 搜索 */
     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.$refs.purchaserActivityListRef.reloadActivityList();
   },
   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();
-  },
   /**
    * 用户点击分享
    */
@@ -435,321 +187,226 @@ export default {
       fail: (err) => {},
     };
   },
+	onReachBottom: Throttle(function () {
+	  if (this.$refs.purchaserActivityListRef.page_no >= this.$refs.purchaserActivityListRef.pages) return;
+	  this.$refs.purchaserActivityListRef.loadActivityMore();
+	}),
 };
 </script>
 <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;
-  }
+  background-color:#F3F5F9;
+	.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: 20rpx;
+			.banner-box-left{
+				height: 110rpx;
+				width: 448rpx;
+				margin-right: 20rpx;
+				swiper{
+					height: 100%;
+					width: 100%;
+					image{
+						height: 100%;
+						width: 100%;
+						border-radius: 8rpx;
+					}
+				}
+			}
+			.banner-box-right{
+				image{
+					height: 110rpx;
+					width: 214rpx;
+					vertical-align: bottom;
+					border-radius: 8rpx;
+				}
+			}
+		}
+		.purchaser-content-box{
+			margin-bottom: 20rpx;
+			.purchaser-content-box-head{
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				padding:20rpx;
+				font-size: 28rpx;
+				font-weight: 400;
+				color: #3385FF;
+				.content-box-head-title{
+					display: flex;
+					align-items: center;
+					image{
+						height: 30rpx;
+						width: 30rpx;
+						margin-right: 10rpx;
+					}
+					text{
+						font-weight: bold;
+						color: #333333;
+						font-size: 32rpx;
+						line-height: 45rpx;
+					}
+				}
+				.content-box-head-more{
+					height: 36rpx;
+					min-width: 120rpx;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					border-radius: 36rpx;
+					background-color: #E5EFFF;
+					display: flex;
+					align-items: center;
+					text{
+						font-size: 20rpx;
+						line-height: 28rpx;
+						font-weight: 400;
+						color: #7990B1;
+						margin-right: 4rpx;
+					}
+					image{
+						height: 15rpx;
+						width: 15rpx;
+					}
+				}
+			}
+			.purchaser-content-box-body{
+				padding: 0 20rpx 20rpx;
+				background-color: white;
+				border-radius: 16rpx;
+				border-top: 10rpx solid #8FA4C4;
+				.purchaser-content-box-row{
+					padding: 30rpx 0;
+					border-bottom: solid 1px #DCDFE6;
+					display: flex;
+					align-items: flex-start;
+					&:last-child{
+						border-bottom: none;
+					}
+					.purchaser-content-row-tag{
+						white-space: nowrap;
+						// padding: 4rpx 15rpx;
+						width: 110rpx;
+						// min-width: 110rpx;
+						height: 36rpx;
+						color: white;
+						font-size: 20rpx;
+						line-height: 28rpx;
+						font-weight: bold;
+						border-radius: 38rpx;
+						color: #928563;
+						background-color: #F2E8CC;
+						text-align: justify;
+						text-justify: inter-ideograph; // IE兼容
+						text-align-last: justify;
+						margin-right:8px ;
+						&:after{
+							content: "";
+							width: 110px;
+							display: block;
+						}
+					}
+					.purchaser-content-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: 46rpx;
+						.purchaser-content-row-object{
+							color: #3385FF;
+							display: inline-block;
+							margin-left: 8rpx;
+						}
+					}
+				}
+			}
+			.no-data-box{
+				width: 682rpx;
+				height: 710rpx;
+				border-radius: 16rpx;
+				background-color: white;
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+				justify-content: center;
+				.no-data{
+					display: flex;
+					flex-direction: column;
+					align-items: center;
+					margin-bottom: 40rpx;
+					image{
+						width: 412rpx;
+						height: 380rpx;
+						margin-bottom: 40rpx;
+					}
+					text{
+						font-size: 24rpx;
+						line-height: 34rpx;
+						color: #999999;
+					}
+				}
+			}
+			.end-activity-text{
+				text-align: center;
+				font-size: 24rpx;
+				line-height: 34rpx;
+				color:#376CBB ;
+			}
+		}
+	}
+  // .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>
+<style lang="scss">
+	wx-swiper .wx-swiper-dot {
+		width: 6rpx;
+		height: 6rpx;
+		border-radius: 6rpx;
+		margin-bottom: -16rpx;
+	}
+	
+</style>

+ 1 - 1
pages/reportForm/reportForm.vue

@@ -116,7 +116,7 @@
               <view class="ndustry-box-read">
                 <text>{{ item.IndustryName }}</text>
                 <image class="hot-icon" v-if="item.IsHot" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/hot_report.png" mode=""></image>
-                <image v-if="item.IsNew" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png" mode=""></image>
+                <image v-if="item.IsNew" src="https://hzstatic.hzinsights.com/cygx/icon/new_report.png" mode=""></image>
               </view>
               <view class="ndustry-box-arrow">
                 <text v-if="item.IsRed" class="read"></text>

+ 1 - 1
reportPages/keyCompany/keyCompany.vue

@@ -59,7 +59,7 @@
                   <view :id="'subject' + key.IndustrialSubjectId" class="li-subject">
                     <view class="item-name">
                       <text style="display: inline-block; vertical-align: middle; font-weight: 600">{{ key.SubjectName }}</text>
-                      <image v-if="key.IsNew" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"></image>
+                      <image v-if="key.IsNew" src="https://hzstatic.hzinsights.com/cygx/icon/new_report.png"></image>
                     </view>
                     <text class="itel-label" v-for="val in key.CompanyLabel" :key="val"># {{ val }}</text>
                   </view>