bd0716 2 years ago
parent
commit
c28e2a071e

+ 4 - 2
activityPages/activityDetail/activityDetail.vue

@@ -208,7 +208,9 @@
         <!-- 操作按钮部分 -->
         <view class="content-bottom">
           <block v-if="detailData.ActiveState == 1">
-            <view class="make-outbound" @click="signupCancel(1)" v-if="detailData.IsShowOutboundCall">{{ detailData.IsSignup == 1 ? "取消外呼" : "预约外呼" }} </view>
+            <view class="make-outbound" @click="signupCancel(1)" v-if="detailData.IsShowOutboundCall">
+              {{ detailData.IsSignup == 1 ? "取消外呼" : detailData.LimitPeopleNum > 0 ? `预约外呼(${detailData.SignupNum}/${detailData.LimitPeopleNum})` : "预约外呼" }}
+            </view>
             <view @click="meetingReminderCancel" class="make-conference" v-if="detailData.IsShowMeetingReminder">
               {{ detailData.IsCancelMeetingReminder == 1 ? "取消会议提醒" : "会议提醒" }}
               <text>(会前15分钟推送微信消息提醒)</text>
@@ -626,7 +628,7 @@ export default {
     //视频的播放事件
     handelVideoPlay() {
       if (!this.isVideoPlay) {
-        Home.microAideoHistoryAdd({ VideoId: this.detailData.ActivityId,SourceType:2 });
+        Home.microAideoHistoryAdd({ VideoId: this.detailData.ActivityId, SourceType: 2 });
       }
       this.isVideoPlay = true;
     },

+ 22 - 34
activityPages/generationAsk/generationAsk.vue

@@ -5,13 +5,13 @@
       <text class="num-tag">{{ advice_content.length }}/100</text>
     </view>
     <view class="btn-cont" @click="submitHandle"> 提交 </view>
-   <freeCharge class="free-charge" :isShowFreeBtn="isShowFree"/>
+    <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
   </view>
 </template>
 
 <script>
 import { activity, Report } from "@/config/api.js";
-import freeCharge  from '@/components/freeCharge'
+import freeCharge from "@/components/freeCharge";
 export default {
   data() {
     return {
@@ -21,43 +21,31 @@ export default {
     };
   },
   components: {
-    freeCharge
+    freeCharge,
   },
   computed: {
     titlePlaceholder() {
-      return this.type == "文章" ? "请描述您的问题,销售会跟进问题,后期在线下为您解答" : "请描述您的问题,分析师会代您向专家提问。";
+      return this.type == "文章" ? "可以留下您对报告内容的看法或者疑问" : "请描述您的问题,分析师会代您向专家提问。";
     },
   },
   methods: {
-    submitHandle() {
-      if (this.type == "文章") {
-        Report.articleAskAdd({
-          ArticleId: Number(this.id),
-          Content: this.advice_content,
-        }).then((res) => {
-          if (res.Ret === 200) {
-            this.$util.toast("提交成功");
-            this.advice_content = "";
-            setTimeout(() => {
-              uni.navigateBack();
-            }, 500);
-          }
-        });
-      } else {
-        activity
-          .activityAskAdd({
-            ActivityId: Number(this.id),
-            Content: this.advice_content,
-          })
-          .then((res) => {
-            if (res.Ret === 200) {
-              this.$util.toast("提交成功");
-              this.advice_content = "";
-              setTimeout(() => {
-                uni.navigateBack();
-              }, 500);
-            }
-          });
+    async submitHandle() {
+      const res =
+        this.type == "文章"
+          ? await Report.articleAskAdd({
+              ArticleId: Number(this.id),
+              Content: this.advice_content,
+            })
+          : activity.activityAskAdd({
+              ActivityId: Number(this.id),
+              Content: this.advice_content,
+            });
+      if (res.Ret === 200) {
+        this.$util.toast("提交成功");
+        this.advice_content = "";
+        setTimeout(() => {
+          uni.navigateBack();
+        }, 500);
       }
     },
   },
@@ -65,7 +53,7 @@ export default {
     this.id = option.id;
     this.type = option.type || "";
     uni.setNavigationBarTitle({
-      title: this.type == "文章" ? "提问" : this.type == "提问" ? "实时提问" : "帮我带问",
+      title: this.type == "文章" ? "留言" : this.type == "提问" ? "实时提问" : "帮我带问",
     });
   },
 };

+ 18 - 4
activityPages/themeActivity/themeActivity.vue

@@ -2,7 +2,8 @@
   <view class="container theme-container">
     <view class="top-title" v-if="!type">
       <view :class="['content-title', !contentDetail.IsJump && 'jump-title']" @click="jumpHandler">
-        <text>{{ contentDetail.Label }}</text>
+        <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>
       </view>
     </view>
@@ -232,8 +233,18 @@ export default {
     .content-title {
       display: flex;
       align-items: center;
-      padding: 7rpx 12rpx;
-      background-color: #f8f8fa;
+      .jump-text {
+        margin-left: 10rpx;
+        font-size: 24rpx;
+        color: #3385ff;
+      }
+      .jump-label {
+        font-size: 28rpx;
+        padding: 6rpx 18rpx;
+        background-color: #3385ff;
+        border-radius: 52rpx;
+        color: #fff;
+      }
       .new_icon {
         width: 60rpx;
         height: 30rpx;
@@ -241,7 +252,10 @@ export default {
       }
     }
     .jump-title {
-      color: #999;
+      .jump-label {
+        background-color: #f8f8fa;
+        color: #999;
+      }
     }
   }
   .collect-ul {

+ 1 - 1
config/api.js

@@ -27,7 +27,7 @@ export const Report = {
   },
   /* 新增文章带问接口 ArticleId*/
   articleAskAdd: (params) => {
-    return postHttp("/article/askAdd", params, 0);
+    return postHttp("/report/commentAdd", params, 0);
   },
   /* 下载PDF打水印接口*/
   articlePdfwatermark: (params) => {

+ 8 - 6
pageMy/reportPage/reportPage.vue

@@ -9,12 +9,9 @@
           </cover-view>
         </cover-view> -->
         <cover-view class="footer-con">
-          <cover-view class="handle-item" @click="applyHandle">
-            <cover-image
-              class="download-img"
-              :src="isInterviewApply ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/apply_act.png' : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/apply_ico.png'"
-            ></cover-image>
-            <cover-view>申请访谈</cover-view>
+          <cover-view class="handle-item" @click="leavingMessage">
+            <cover-image class="download-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/leaving_message.png"></cover-image>
+            <cover-view>留言</cover-view>
           </cover-view>
           <cover-view class="handle-item" @click="collectHandle">
             <cover-image
@@ -278,6 +275,11 @@ export default {
     async removeBton() {
       const res = await FreeButton.userFreeButtonUpdate();
     },
+    leavingMessage() {
+      uni.navigateTo({
+        url: "/activityPages/generationAsk/generationAsk?id=" + this.id + "&type=文章",
+      });
+    },
   },
   async onShow() {
     this.readTiem = 0;

+ 161 - 0
pages-search/components/roadshow.vue

@@ -0,0 +1,161 @@
+<template>
+  <view :class="['roadshow-search',tabsRoadshowSearch == 5 && 'roadshow-search-top']">
+    <view class="audio-video-content">
+      <view class="audio-item" v-for="item in roadshowPageList" :key="item.Id">
+        <view class="cover-item" :style="{ 'background-image': 'url(' + item.BackgroundImg + ')' }">
+          <!-- type:3 -- 产业视频 -->
+          <block v-if="item.Type == 2 || item.Type == 3">
+            <image class="img-bg" @click="handelPlay(item)" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/play_icon_index.png"></image>
+          </block>
+          <block v-else>
+            <image
+              class="img-bg"
+              @click.stop="handelPlay(item)"
+              :src="
+                curVoiceId === item.ActivityId && !curAudioPaused
+                  ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/back_stop_index.png'
+                  : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/back_group_index.png'
+              "
+            ></image>
+          </block>
+          <text class="time">{{ item.PublishTime }}</text>
+        </view>
+        <view class="title-share">
+          <view class="title text_twoLine">{{ item.Title }}</view>
+          <view class="share">
+            <view class="share-text" :style="[classifyColor(item.ChartPermissionName)]">
+              <image :src="classifyIcon(item)"></image>
+              {{ item.Type == 1 ? "音频" : "视频" }}|{{ item.ChartPermissionName }}
+            </view>
+            <button class="share-icon" open-type="share" :data-item="item">
+              <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/share-btn-icon.png"></image>
+            </button>
+          </view>
+        </view>
+      </view>
+    </view>
+  </view>
+</template>
+
+<script>
+import { Search, activity, Report } from "@/config/api";
+import { color_word_bg, MultimediaIcon } from "@/utils/styleClassify";
+export default {
+  props: {
+    roadshowPageList: {
+      type: Array,
+      default: [],
+      required: true,
+    },
+    tabsRoadshowSearch:{
+      type: Number,
+      required: true,
+    }
+  },
+  data() {
+    return {};
+  },
+
+  methods: {
+    //播放的权限判断
+    handelPlay(item) {
+      let content_item = null;
+      if (item.AudioActivityId) {
+        content_item = {
+          ActivityId: item.AudioActivityId,
+          PlaySeconds: item.AudioPlaySeconds,
+          ResourceUrl: item.AudioResourceUrl,
+          Title: item.AudioTitle,
+          Type: item.AudioType,
+        };
+      }
+      if (!this.$store.state.isAuth && !this.$store.state.isBind) {
+        if (item.AuthInfo.HasPermission == 1) {
+          item.Type == 1 || item.AudioType == 1 ? this.audioPlayBack(content_item ? content_item : item) : this.handelVideoPlay(item);
+        } else {
+          this.hasPermission = item.AuthInfo.HasPermission;
+          this.jurisdictionList.ActivityId = item.Id;
+          this.jurisdictionList.isAudioVideo = item.Type;
+          if (this.hasPermission == 2) {
+            this.jurisdictionList.SellerMobile = item.AuthInfo.SellerMobile;
+            this.jurisdictionList.SellerName = item.AuthInfo.SellerName;
+            this.jurisdictionList.PopupMsg = item.AuthInfo.PopupMsg;
+            this.isShowhasPermission = true;
+          } else if (this.hasPermission == 3 || this.hasPermission == 4 || this.hasPermission == 5) {
+            this.jurisdictionList.PopupMsg = item.AuthInfo.PopupMsg;
+            this.applyForIsShow = true;
+          }
+        }
+      } else {
+        this.$store.dispatch("checkHandle");
+      }
+    },
+    //视频的播放事件
+    handelVideoPlay(item) {
+      if (this.$store.state.videoPlay.playVideoId != item.Id) {
+        this.$store.commit("videoPlay/palyTimeUpdate", 0);
+        console.log(this.$store.state.videoPlay.palyCurrentTime);
+        this.$store.commit("videoPlay/playVideo", item.Id);
+      }
+      this.globalBgAudioManager.stop();
+      this.videoPopList = item;
+      this.showVideoPop = true;
+    },
+    //音频的播放事件
+    async audioPlayBack(item) {
+      this.curVideoId = 0;
+      this.$store.commit("audioBg/parseIntAudio", true);
+      // 判断是否为同一个音频
+      if (this.$store.state.audioBg.indexId == item.ActivityId) {
+        if (this.globalBgAudioManager.paused) {
+          this.globalBgAudioManager.play();
+        } else {
+          this.globalBgAudioManager.pause();
+        }
+      } else {
+        let VoiceList = {
+          Url: item.ResourceUrl,
+          Name: item.Title,
+          PlaySeconds: item.PlaySeconds,
+        };
+        this.$store.commit("audioBg/addAudio", { list: VoiceList, indexId: item.ActivityId, activityTitle: item.Title });
+      }
+      this.showAudioPop = true;
+    },
+    //音视频的背景色 文字颜色
+    classifyColor(item) {
+      let text_color = color_word_bg.color_word.find((key) => key.name == item).color;
+      let back_ground = color_word_bg.color_bg.find((key) => key.name == item).color;
+      let _isColor = { color: text_color, "background-color": back_ground };
+      return _isColor;
+    },
+    //音视频的图标
+    classifyIcon(item) {
+      let srcItem = MultimediaIcon.find((key) => key.name == (item.AudioChartPermissionName || item.ChartPermissionName));
+      let imgSrc = item.Type == 1 || item.AudioType == 1 ? srcItem.audio : srcItem.video;
+      return imgSrc;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.roadshow-search {
+    padding: 35rpx;
+  .audio-video-content {
+    width: calc(100% + 40rpx);
+    height: calc(100% + 25rpx);
+    margin: -20rpx 0 0 -20rpx;
+    padding: 0 !important;
+    .audio-item {
+      width: 100%;
+      height: auto;
+      box-shadow: none;
+    }
+  }
+  @import "@/components/audioVideo.scss";
+}
+.roadshow-search-top {
+  padding-top: 90rpx !important;
+}
+</style>

+ 82 - 34
pages-search/indedxSearch/indedxSearch.vue

@@ -32,20 +32,19 @@
           </view>
           <view style="display: flex; align-items: center">
             <view class="summary-select">
-              <text @click="summarySelectHandler(item, '纪要')" :class="['select-item', summarySelectActive == item.value && 'active-item']" v-for="item in summarySelect" :key="item.value">{{
-                item.name
-              }}</text>
+              <text @click="item, '纪要'" :class="['select-item', summarySelectActive == item.value && 'active-item']" v-for="item in summarySelect" :key="item.value">{{ item.name }}</text>
             </view>
             <view v-if="tabsActive === 1" class="more-rivet" @click="tabsActiveMore(2)"> 更多 <u-icon name="arrow-right" color="#3385FF" size="28"></u-icon> </view>
           </view>
         </view>
-        <view class="activity-select" style="display: flex; align-items: center; justify-content: flex-end" v-if="tabsActive == 4">
-          <view class="summary-select">
-            <text @click="summarySelectHandler(item, '活动')" :class="['select-item', activitySelectActive == item.value && 'active-item']" v-for="item in activitySelect" :key="item.value">
-              {{ item.name }}
-            </text>
-          </view>
-          <view v-if="tabsActive === 1" class="more-rivet" @click="tabsActiveMore(2)"> 更多 <u-icon name="arrow-right" color="#3385FF" size="28"></u-icon> </view>
+        <view class="activity-select" style="display: flex; align-items: center; justify-content: flex-end" v-if="tabsActive == 4 || tabsActive == 5">
+          <block v-for="item in activitySelect" :key="item.type">
+            <view :class="['summary-select', item.type == 5 && 'select-roadshow']" v-if="tabsActive == item.type">
+              <text @click="summarySelectHandler(key, item.name)" :class="['select-item', activitySelectActive == key.value && 'active-item']" v-for="key in item.list" :key="key.value">
+                {{ key.name }}
+              </text>
+            </view>
+          </block>
         </view>
       </block>
     </view>
@@ -78,9 +77,7 @@
               <view class="more-rivet" @click="tabsActiveMore(3)"> 更多 <u-icon name="arrow-right" color="#3385FF" size="28"></u-icon> </view>
             </view>
           </view>
-          <reportPage :reportPageData="reportPageData" id="container-report-page"
-		  v-if="Object.keys(reportPageData).length && (tabsActive == 3 || tabsActive == 1)" />
-
+          <reportPage :reportPageData="reportPageData" id="container-report-page" v-if="Object.keys(reportPageData).length && (tabsActive == 3 || tabsActive == 1)" />
           <view class="more-activity more-box" v-if="tabsActive === 1 && haveResultActivity">
             <text class="more-text"> 活动/回放 </text>
             <view>
@@ -88,6 +85,13 @@
             </view>
           </view>
           <activityBack :collectLists="collectList" :tabsActiveSearch="tabsActive" v-if="collectList.length && (tabsActive == 4 || tabsActive == 1)" />
+          <view class="more-activity more-box" v-if="tabsActive === 1 && haveResultRoadshow">
+            <text class="more-text"> 微路演 </text>
+            <view>
+              <view class="more-rivet" @click="tabsActiveMore(5)"> 更多 <u-icon name="arrow-right" color="#3385FF" size="28"></u-icon> </view>
+            </view>
+          </view>
+          <roadshowPage :roadshowPageList="roadshowPageList" :tabsRoadshowSearch="tabsActive" v-if="roadshowPageList.length && (tabsActive == 5 || tabsActive == 1)" />
         </view>
       </block>
       <view class="nodata" v-else>
@@ -100,14 +104,15 @@
 
 <script>
 import { KeywordList, TabsList, SummarySelect, ActivitySelect } from "./searchList";
-import { Search, activity, Report } from "@/config/api";
+import { Search, activity, Report, Home } from "@/config/api";
 import { Debounce, Throttle } from "@/config/util.js";
 import summaryChart from "../components/summaryChart.vue";
 import activityBack from "../components/activityBack.vue";
 import reportPage from "../components/report.vue";
+import roadshowPage from "../components/roadshow.vue";
 
 export default {
-  components: { summaryChart, activityBack, reportPage },
+  components: { summaryChart, activityBack, reportPage, roadshowPage },
   data() {
     return {
       searchTxt: "",
@@ -120,10 +125,12 @@ export default {
       resultDataList: [], ////纪要与图表
       collectList: [], //活动的数据
       reportPageData: {}, //报告的数据
+      roadshowPageList: [], //微路演的数据
       // haveResult: true, //是否有搜索数据
-      haveResultSummary: true, //是否有搜索数据
-      haveResultActivity: true, //是否有搜索数据
-      haveResultReport: true, //是否有搜索数据
+      haveResultSummary: true, //是否有搜索数据 纪要
+      haveResultActivity: true, //是否有搜索数据 活动
+      haveResultReport: true, //是否有搜索数据 报告
+      haveResultRoadshow: true, //是否有搜索数据 微路演
       summarySelectActive: "Matching",
       activitySelectActive: "0",
       refresh: false, //正在下拉
@@ -152,8 +159,16 @@ export default {
       return ActivitySelect;
     },
     haveResult() {
-      let all = this.haveResultSummary || this.haveResultActivity || this.haveResultReport;
-      return this.tabsActive == 1 ? all : this.tabsActive == 2 ? this.haveResultSummary : this.tabsActive == 3 ? this.haveResultReport : this.haveResultActivity;
+      let all = this.haveResultSummary || this.haveResultActivity || this.haveResultReport || this.haveResultRoadshow;
+      return this.tabsActive == 1
+        ? all
+        : this.tabsActive == 2
+        ? this.haveResultSummary
+        : this.tabsActive == 3
+        ? this.haveResultReport
+        : this.tabsActive == 4
+        ? this.haveResultActivity
+        : this.haveResultRoadshow;
     },
   },
   watch: {
@@ -221,12 +236,15 @@ export default {
         this.synthesiz();
         this.getReportList();
         this.getActivityBackList();
+        this.getRoadshowList();
       } else if (this.tabsActive == 2) {
         this.synthesiz();
       } else if (this.tabsActive == 3) {
         this.getReportList();
       } else if (this.tabsActive == 4) {
         this.getActivityBackList();
+      } else if (this.tabsActive == 5) {
+        this.getRoadshowList();
       }
     },
     //纪要 图表的搜索
@@ -319,6 +337,29 @@ export default {
         }
       }
     },
+    //获取微路演
+    async getRoadshowList() {
+      const res = await Home.microRoadshowList({
+        PageSize: this.pageSize == 5 ? 6 : this.pageSize,
+        CurrentIndex: this.pageNum,
+        KeyWord: this.searchTxt.replace(/^\s+|\s+$/g, ""),
+        Filter: Number(this.activitySelectActive),
+      });
+      if (res.Ret === 200) {
+        this.status = this.pageNum < res.Data.Paging.Pages ? "loadmore" : "nomore";
+        this.totalPage = res.Data.Paging.Pages; //总页数
+        if (this.pageNum == 1) {
+          this.roadshowPageList = res.Data.List || [];
+          this.haveResultRoadshow = this.roadshowPageList.length > 0 ? true : false;
+          if (this.refresh) {
+            uni.stopPullDownRefresh();
+            this.refresh = false;
+          }
+        } else {
+          this.roadshowPageList = this.roadshowPageList.concat(res.Data.List);
+        }
+      }
+    },
     //点击了更多
     tabsActiveMore(val) {
       this.tabsActive = val;
@@ -333,10 +374,14 @@ export default {
         this.resultList = [];
         this.resultDataList = [];
         this.synthesiz();
-      } else {
+      } else if (type == "活动") {
         this.activitySelectActive = item.value;
         this.collectList = [];
         this.getActivityBackList();
+      } else if (type == "微路演") {
+        this.activitySelectActive = item.value;
+        this.roadshowPageList = [];
+        this.getRoadshowList();
       }
     },
     /* 历史搜索清空 */
@@ -359,6 +404,7 @@ export default {
       this.resultDataList = [];
       this.collectList = [];
       this.reportPageData = {};
+      this.roadshowPageList = [];
     },
   },
   onLoad(options) {
@@ -484,7 +530,6 @@ export default {
   .search-tabs {
     display: flex;
     align-items: center;
-    justify-content: center;
     width: 100%;
     font-size: 32rpx;
     color: #333333;
@@ -593,6 +638,9 @@ export default {
     z-index: 99;
     background-color: #f5f6fa;
   }
+  .select-roadshow {
+    width: 345rpx !important;
+  }
   .more-summary {
     top: 184rpx;
   }
@@ -607,16 +655,16 @@ export default {
 }
 </style>
 <style lang="scss">
-	#container-report-page{
-		.industry-video-module{
-			  .global-video-box{
-				  .video-content{
-					  top: 400rpx!important;
-				  }
-				  .close-icon{
-					  top: 330rpx!important;
-				  }
-			  }
-		}
-	}
+#container-report-page {
+  .industry-video-module {
+    .global-video-box {
+      .video-content {
+        top: 400rpx !important;
+      }
+      .close-icon {
+        top: 330rpx !important;
+      }
+    }
+  }
+}
 </style>

+ 22 - 3
pages-search/indedxSearch/searchList.js

@@ -27,9 +27,13 @@ export const TabsList = [
     id: 3,
   },
   {
-    title: "活动/回放",
+    title: "活动",
     id: 4,
   },
+  {
+    title: "微路演",
+    id: 5,
+  },
 ];
 
 export const SummarySelect = [
@@ -37,6 +41,21 @@ export const SummarySelect = [
   { name: "发布时间", value: "PublishDate" },
 ];
 export const ActivitySelect = [
-  { name: "全部", value: "0" },
-  { name: "可回放", value: "1" },
+  {
+    type: 4,
+    name: "活动",
+    list: [
+      { name: "全部", value: "0" },
+      { name: "可回放", value: "1" },
+    ],
+  },
+  {
+    type: 5,
+    name: "微路演",
+    list: [
+      { name: "全部", value: "0" },
+      { name: "视频", value: "1" },
+      { name: "音频", value: "2" },
+    ],
+  },
 ];