Explorar el Código

Merge branch 'master' into 12.9

bding hace 1 año
padre
commit
3c53155461

+ 42 - 33
components/report/timeLine.vue

@@ -1,16 +1,16 @@
-<template>
+p<template>
   <view class="time-line">
     <view class="line-item" v-for="(item, index) in dataList" :key="index" @click="goDetailFromTimeLine(item, index)">
       <view class="time">{{ item.date }}</view>
+      <view class="morning-meeting-content" v-if="item.Resource == 3">
+        <view class="title-morning" @click="morningReportHandler(item)">
+          {{ item.Title }}
+        </view>
+        <view class="subject-name-morning" v-for="key in item.ListSubject" :key="key.IndustrialSubjectId"> #{{ key.SubjectName }} </view>
+      </view>
       <view class="content" v-if="item.Content.length">
         <text class="content-reg" v-if="item.IsRed"></text>
-        <rich-text
-          :style="{ height: item.isExpand ? 'auto' : richTextHeight + 'px' }"
-          :data-index="index"
-          :class="['rich-text', item.isExpand && 'expand', (item.ArticleId || item.ChartId) && 'texe-color']"
-          :nodes="item.Content"
-        >
-        </rich-text>
+        <rich-text :data-index="index" :key="index" :class="['rich-text', (item.ArticleId || item.ChartId) && 'texe-color']" :nodes="textNumProcessing(item)"> </rich-text>
         <view class="expan-btn" :class="[{ pos: !item.isExpand }, (item.ArticleId || item.ChartId) && 'expan-btn-padding']" @click.stop="handleExpand(item, index)" v-if="item.isShowBtn">{{
           item.isExpand ? "收起" : "展开"
         }}</view>
@@ -128,26 +128,21 @@ export default {
       this.$parent.timeLine.splice(index, 1, item);
     },
     getConentsHeight() {
-      const query = wx.createSelectorQuery().in(this);
-      query.selectAll(".rich-text").boundingClientRect();
-      query.exec((res) => {
-        //根据timeLine的第一项确定当前手机三行文字的高度
-        const standardHeight = res[0][0].height;
-        this.richTextHeight = standardHeight;
-        res[0].forEach((item) => {
-          let temp = this.$parent.timeLine[item.dataset.index];
-          //超过这个高度的,需要显示展开/收起按钮
-          if (item.height > standardHeight) {
-            temp.isExpand = false;
-            temp.isShowBtn = true;
-          } else {
-            temp.isExpand = true;
-            temp.isShowBtn = false;
-          }
-        });
-        //然后把timeLine的第一项扔掉
-        this.$parent.timeLine.shift();
+      setTimeout(() => {
         this.loadTimeLine = false;
+      }, 200);
+    },
+    textNumProcessing(item) {
+      console.log(item, this.dataList);
+
+      let str = !item.isExpand ? item.Content.substring(0, 60) + "...." : item.Content;
+      console.log(str);
+      let strText = str;
+      return strText;
+    },
+    morningReportHandler(item) {
+      uni.navigateTo({
+        url: "/pageMy/reportDetail/reportDetail?id=" + item.LinkArticleId,
       });
     },
   },
@@ -250,12 +245,12 @@ export default {
       color: #666666;
       position: relative;
       .rich-text {
-        overflow: hidden;
-        text-overflow: ellipsis;
-        text-align: justify;
-        display: -webkit-box;
-        -webkit-line-clamp: 3;
-        -webkit-box-orient: vertical;
+        // overflow: hidden;
+        // text-overflow: ellipsis;
+        // text-align: justify;
+        // display: -webkit-box;
+        // -webkit-line-clamp: 3;
+        // -webkit-box-orient: vertical;
         position: relative;
         &.expand {
           -webkit-line-clamp: 999;
@@ -303,5 +298,19 @@ export default {
       }
     }
   }
+  .morning-meeting-content {
+    display: flex;
+    flex-wrap: wrap;
+    color: $uni-color-new;
+    font-size: 28rpx;
+    margin-bottom: 15rpx;
+    .title-morning {
+      font-weight: 600;
+      text-decoration: underline;
+    }
+    .subject-name-morning {
+      margin-left: 10rpx;
+    }
+  }
 }
 </style>

+ 4 - 0
config/modules/Reports.js

@@ -179,4 +179,8 @@ export const Reports = {
   permissionNoyx: (params) => {
     return getHttp("/permission/noyx", params, 0);
   },
+  // 策略系列培训视频接口
+  microRoadshowTrainingList: (params) => {
+    return getHttp("/micro_roadshow/training/list", params, 0);
+  },
 };

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

@@ -12,6 +12,8 @@
         <blok v-if="haveData">
           <view class="global_card_content user-li" v-for="item in collectionList" :key="item.ArticleId">
             <view class="li-item">
+              <image class="recommend-icon" v-if="item.ArticleTypeId > 0" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/new_cygx/recommend_YX.png"></image>
+
               <text class="li-type global_content_center">
                 {{ item.ArticleTypeName }}
               </text>
@@ -195,6 +197,11 @@ export default {
       .li-title {
         display: flex;
       }
+      .recommend-icon {
+        width: 30rpx;
+        height: 30rpx;
+        margin-right: 15rpx;
+      }
     }
     .li-type {
       width: 126rpx;

+ 9 - 3
pages-search/components/synthetical.vue

@@ -4,7 +4,7 @@
       <view class="item-ul">
         <block v-for="(item, index) in newDataList" :key="index">
           <view v-if="index % 2 == 0 && item.IsShowData">
-            <block v-if="item.Source === 'article' || item.Source === 'yanxuanspecial'"> <ReportItem :list="item.Article" /></block>
+            <block v-if="item.Source === 'article' || item.Source === 'yanxuanspecial' || item.Source === 'reportselection'"> <ReportItem :list="item.Article" /></block>
             <block v-if="item.Source === 'newchart'">
               <ChartItem :list="item.Newchart" :isMyChartCollection="isMyChartCollection" @myChartIsTop="myChartIsTop" @myChartCollect="myChartCollect" />
             </block>
@@ -26,7 +26,7 @@
       <view class="item-ul">
         <block v-for="(item, index) in newDataList" :key="index">
           <view v-if="index % 2 !== 0 && item.IsShowData">
-            <block v-if="item.Source === 'article' || item.Source === 'yanxuanspecial'"> <ReportItem :list="item.Article" /></block>
+            <block v-if="item.Source === 'article' || item.Source === 'yanxuanspecial' || item.Source === 'reportselection'"> <ReportItem :list="item.Article" /></block>
             <block v-if="item.Source === 'newchart'">
               <ChartItem :list="item.Newchart" :isMyChartCollection="isMyChartCollection" @myChartIsTop="myChartIsTop" @myChartCollect="myChartCollect" />
             </block>
@@ -121,9 +121,12 @@ export default {
         let listArr = [];
         res.Data.List &&
           res.Data.List.forEach((item) => {
+             if (item.ReportSelection && item.ReportSelection.MarketStrategy) {
+              item.ReportSelection.Body = [item.ReportSelection.MarketStrategy];
+            }
             let obj = {
               Source: item.Source,
-              Article: item.Article || item.YanxuanSpecial,
+              Article: item.Article || item.YanxuanSpecial || item.ReportSelection,
               Newchart: item.Newchart,
               Activity: item.Activity || item.Activityspecial,
               Roadshow: item.Roadshow || item.Activityvideo || item.Activityvoice || item.AskserieVideo,
@@ -136,10 +139,13 @@ export default {
             if (obj.YanxuanSpecial && obj.YanxuanSpecial.BodyHighlight) {
               obj.YanxuanSpecial.Body = obj.YanxuanSpecial.BodyHighlight;
             }
+            
             listArr.push({ ...obj, IsShowData: obj.Article || obj.Newchart || obj.Roadshow || obj.Activity || obj.ThreeSummary || obj.IndustrialResource });
           });
         this.newDataList = this.pageNumSynthetical === 1 ? listArr : [...this.newDataList, ...listArr];
         this.haveData = this.newDataList && this.newDataList.length ? true : false;
+        clearInterval(this.$parent.timerOut);
+        this.$store.commit("requestHideLoading");
       }
     },
     // 晨会弹框显示

+ 14 - 11
pages-search/indedxSearch/indedxSearch.vue

@@ -3,16 +3,7 @@
     <view class="container search-container">
       <view class="sticky-content">
         <view class="searchTarget-header">
-          <input
-            type="text"
-            :placeholder="searchPlaceholderList.TabSearch"
-            placeholder-class="sea_ipt_placeholder"
-            class="sea_ipt"
-            v-model="searchTxt"
-            focus="true"
-            confirm-type="search"
-            @confirm="searchHandle"
-          />
+          <input type="text" :placeholder="searchPlaceholderList.TabSearch" placeholder-class="sea_ipt_placeholder" class="sea_ipt" v-model="searchTxt" confirm-type="search" @confirm="searchHandle" />
           <icon type="search" size="15" class="sea_ico" />
           <view class="ipt-right">
             <icon type="clear" size="16" color="#E0E0E0" v-show="searchTxt" @click="clearIpt" />
@@ -61,7 +52,7 @@
       </view>
       <view v-else class="content">
         <block v-if="haveResult">
-          <block v-if="tabsActive === 1">
+          <block v-if="tabsActive == 1">
             <synthetical :searchTxt="searchTxt" :isSyntheticalShow="isSyntheticalShow" :pageNumSynthetical="pageNumSynthetical" />
           </block>
           <view v-else>
@@ -127,6 +118,7 @@ export default {
       },
       isSearchKeyWord: [],
       isSyntheticalShow: false,
+      timerOut: null,
     };
   },
   computed: {
@@ -214,6 +206,9 @@ export default {
         this.isSearchKeyWord.push(this.searchTxt);
         await User.userSearchKeyWordLog({ KeyWord: this.searchTxt });
       }
+      this.timerOut = setInterval(() => {
+        this.$store.commit("requestShowLoading");
+      }, 300);
       if (this.tabsActive == 1) {
         this.isSyntheticalShow = true;
         this.pageNumSynthetical = 1;
@@ -273,6 +268,8 @@ export default {
           res.Data.List.length && this.resultDataList.push(...res.Data.List);
         }
         this.resultList = this.resultDataList;
+        clearInterval(this.timerOut);
+        this.$store.commit("requestHideLoading");
       }
     },
     //活动回放的接口获取列表
@@ -306,6 +303,8 @@ export default {
       } else {
         this.collectList.push(...res.Data.List);
       }
+      clearInterval(this.timerOut);
+      this.$store.commit("requestHideLoading");
     },
     //获取报告的
     async getReportList() {
@@ -324,6 +323,8 @@ export default {
         } else {
           this.haveResultReport = false;
         }
+        clearInterval(this.timerOut);
+        this.$store.commit("requestHideLoading");
       }
     },
     //获取微路演
@@ -347,6 +348,8 @@ export default {
         } else {
           this.roadshowPageList = this.roadshowPageList.concat(res.Data.List);
         }
+        clearInterval(this.timerOut);
+        this.$store.commit("requestHideLoading");
       }
     },
     //点击了更多

+ 7 - 0
pages.json

@@ -262,6 +262,13 @@
             "navigationBarTitleText": "申请详情",
             "enablePullDownRefresh": false
           }
+        },
+        {
+          "path": "trainVideoPages/trainVideoPages",
+          "style": {
+            "navigationBarTitleText": "策略系列培训",
+            "enablePullDownRefresh": false
+          }
         }
       ]
     },

+ 26 - 0
pages/index/components/morningDlg.vue

@@ -8,6 +8,12 @@
         <view class="content-box">
           <view class="report-content-title">{{ morningItem.IndustryName }}</view>
           <view class="content-body">
+            <view class="morning-meeting-content">
+              <view class="title-morning" @click="morningReportHandler(morningItem)">
+                {{ morningItem.Title }}
+              </view>
+              <view class="subject-name-morning" v-for="key in morningItem.ListSubject" :key="key.IndustrialSubjectId"> #{{ key.SubjectName }} </view>
+            </view>
             <mp-html :content="strFontSize(morningItem.Content)" />
           </view>
         </view>
@@ -58,6 +64,11 @@ export default {
       });
       this.onClose();
     },
+    morningReportHandler(item) {
+      uni.navigateTo({
+        url: "/pageMy/reportDetail/reportDetail?id=" + item.LinkArticleId,
+      });
+    },
   },
 };
 </script>
@@ -103,11 +114,26 @@ export default {
       }
     }
     .content-body {
+      font-size: 28rpx;
       margin-top: 15rpx;
     }
   }
   .report-content-title {
     text-align: center;
   }
+  .morning-meeting-content {
+    display: flex;
+    flex-wrap: wrap;
+    color: $uni-color-new;
+    font-size: 28rpx;
+    margin: 15rpx 0;
+    .title-morning {
+      font-weight: 600;
+      text-decoration: underline;
+    }
+    .subject-name-morning {
+      margin-left: 10rpx;
+    }
+  }
 }
 </style>

+ 44 - 20
pages/index/index.vue

@@ -49,6 +49,7 @@
           <view class="lable-row" v-for="(item, index) in lableIsRows" :key="index">
             <view :class="['lable-item', lable.isAct && 'item-active']" v-for="lable in item" :key="lable.TagId" @click="lableKeysHandler(lable)">
               {{ lable.TagName }}
+              <image v-if="lable.TagName == '问答'" class="item-image" lazy-load src="https://hzstatic.hzinsights.com/cygx/icon/new_report.png"></image>
             </view>
           </view>
         </view>
@@ -176,20 +177,20 @@ export default {
     },
     lableIsRows() {
       //处理标签的样式
-      const numTags = this.dataListLable.length;
-      const rows = [];
+      // const numTags =.length;
+      const rows = [this.dataListLable];
 
-      if (numTags <= 4) {
-        rows.push(this.dataListLable);
-      } else if (numTags > 4 && numTags <= 8) {
-        const firstRow = this.dataListLable.slice(0, 4);
-        const secondRow = this.dataListLable.slice(4);
-        rows.push(firstRow, secondRow);
-      } else if (numTags >= 9) {
-        const firstRow = this.dataListLable.filter((_, index) => index % 2 === 0);
-        const secondRow = this.dataListLable.filter((_, index) => index % 2 !== 0);
-        rows.push(firstRow, secondRow);
-      }
+      // if (numTags <= 4) {
+      //   rows.push(this.dataListLable);
+      // } else if (numTags > 4 && numTags <= 8) {
+      //   const firstRow = this.dataListLable.slice(0, 4);
+      //   const secondRow = this.dataListLable.slice(4);
+      //   rows.push(firstRow, secondRow);
+      // } else if (numTags >= 9) {
+      //   const firstRow = this.dataListLable.filter((_, index) => index % 2 === 0);
+      //   const secondRow = this.dataListLable.filter((_, index) => index % 2 !== 0);
+      //   rows.push(firstRow, secondRow);
+      // }
 
       return rows;
     },
@@ -276,7 +277,7 @@ export default {
             uni.navigateTo({
               url: "/pageMy/login/login",
             });
-          } 
+          }
         },
       });
     },
@@ -409,6 +410,15 @@ export default {
       const res = await Home.homeTagListCustom();
       if (res.Ret === 200) {
         this.dataListLable = res.Data.List || [];
+        let arr = [];
+        if (this.actIdLable) {
+          arr = this.actIdLable.split(",").map((_) => Number(_));
+        }
+        this.dataListLable.forEach((item) => {
+          if (arr.includes(item.TagId)) {
+            item.isAct = true;
+          }
+        });
         this.industryTablList = res.Data.ListPermission || [];
       }
     },
@@ -429,7 +439,10 @@ export default {
       this.getNewList();
     });
   },
-  onLoad() {
+  onLoad(options) {
+    console.log(options);
+    this.industrytabActId = options.industrytabActId ? Number(options.industrytabActId) : 0;
+    this.actIdLable = options.findIndexId;
     this.getBannerList();
     this.getNewList();
     this.homeTagListCustom();
@@ -454,6 +467,7 @@ export default {
     this.page_no = 1;
     this.refresh = true;
     this.getNewList();
+    this.homeTagListCustom();
   },
   onPageScroll(val) {
     this.isScrollNumber = val.scrollTop;
@@ -474,9 +488,10 @@ export default {
         imageUrl: item.AudioShareImg || item.ShareImg,
       };
     } else {
+      console.log(this.actIdLable);
       return {
         title: this.isHorzMobile ? "好友向您推荐此内容,上传名片享查研观向免费月卡!" : "弘则研究—聚焦·前瞻·客观·深度",
-        path: "/pages/index/index",
+        path: "/pages/index/index?industrytabActId=" + this.industrytabActId + "&findIndexId=" + this.actIdLable,
         success: (res) => {},
         fail: (err) => {},
       };
@@ -574,7 +589,7 @@ export default {
   }
 
   .content-ul {
-    padding: 20rpx 10rpx;
+    padding: 0rpx 10rpx 20rpx;
     display: flex;
     justify-content: space-between;
     .item-ul {
@@ -608,21 +623,30 @@ export default {
     overflow-x: auto;
     width: 100%;
     background-color: #fff;
-    padding: 10rpx 0 20rpx 20rpx;
+    padding: 18rpx 0 18rpx 20rpx;
     .lable-row {
       display: flex;
       font-size: 24rpx;
     }
     .lable-item {
+      position: relative;
       flex-shrink: 0;
-      padding: 8rpx 40rpx;
+      padding: 6rpx 35rpx;
       background: #ffffff;
       border: 1rpx solid #dcdfe6;
       border-radius: 39rpx;
       margin-right: 20rpx;
       white-space: nowrap;
-      margin-top: 20rpx;
+      // padding-top: 20rpx;
       color: #999999;
+      .item-image {
+        position: absolute;
+        top: -16rpx;
+        right: -18rpx;
+        width: 60rpx;
+        height: 30rpx;
+        border-radius: 4rpx;
+      }
     }
     .item-active {
       border: none;

+ 61 - 5
pages/material/material.vue

@@ -2,11 +2,11 @@
   <view class="container Index-container">
     <view class="top-content-box">
       <search-bar @goSearch="goSearch" :searchTitle="searchPlaceholderList.SummarySearch" :width="70" />
-      <view class="top-tabs">
+      <view class="top-tabs tabs-content-ul">
         <block v-for="item in topTabBars" :key="item.Id">
           <view v-if="item.IsShow" :class="['item', item.Id == topTabsActive && 'tabs-active']" @click="topTabsChange(item)">
             {{ item.Name }}
-            <block v-if="(item.Id === 3 || item.Name == '图表') && wholeShowListData.IsShowChart">
+            <block v-if="(item.Id === 3 || item.Id === 5) && wholeShowListData.IsShowChart">
               <image class="limit-img tabs-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/limit_icon.png" mode=""></image>
             </block>
             <view class="active" v-if="item.Id == topTabsActive"></view>
@@ -29,6 +29,15 @@
               item.Name
             }}</view>
           </view>
+          <!-- 我的收藏滚动显示 -->
+          <view class="notice" @click="noticeBarHandler" v-if="secondActive==0">
+            <van-notice-bar
+              custom-class="custom-class-notice"
+              color="#E37318"
+              background="#FFF1E9"
+              text="如何定制自己的图表面板:在上方分栏下选择感兴趣的图表类别,点击标题查看大图,点亮☆收藏就可以在自己的图表首页可见。也可在报告中随时点☆收藏感兴趣的图表。"
+            />
+          </view>
         </block>
         <view v-if="topTabsActive == '4'" class="medium-ul">
           <view class="global_two_tabs">
@@ -104,6 +113,17 @@
       <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/new_cygx/Joined_play_list.png"></image>
     </view>
     <Loading />
+    <van-popup custom-class="custom-class-popup" :show="isNoticeBarShow" :close-on-click-overlay="false" @close="onCloseHandler">
+      <view class="close-iocn">
+        <van-icon @click="onCloseHandler" color="#333" name="cross" />
+      </view>
+      <view class="popup-box">
+        如何定制自己的图表面板:在上方分栏下选择感兴趣的图表类别,点击标题查看大图,点亮<van-icon name="star" color="#E37318" />收藏就可以在自己的图表首页可见。也可在报告中随时点<van-icon
+          name="star"
+          color="#E37318"
+        />收藏感兴趣的图表。
+      </view>
+    </van-popup>
   </view>
 </template>
 
@@ -155,6 +175,7 @@ export default {
       listChartPermission: [], // 行业
       chartPermissionName: "全行业",
       chartPermissionIds: "",
+      isNoticeBarShow: false,
     };
   },
   components: {
@@ -213,6 +234,13 @@ export default {
   methods: {
     //点击顶部一级分类
     topTabsChange(item) {
+      if (item.Id == 5) {
+        // 精选看板的点击事件
+        uni.navigateTo({
+          url: "/reportPages/selectedBulletin/selectedBulletin",
+        });
+        return;
+      }
       this.topTabsActive = item.Id;
       this.chartChildren = [];
       this.chartChildrenActive = 0;
@@ -549,6 +577,14 @@ export default {
       this.showAudioPop = true;
       uni.$emit("play-list-emit", {});
     },
+    // 点击了图表下的滚动条
+    noticeBarHandler() {
+      this.isNoticeBarShow = true;
+    },
+    // 关闭滚动条的弹框
+    onCloseHandler() {
+      this.isNoticeBarShow = false;
+    },
   },
   onHide() {
     this.$store.commit("audioBg/parseIntAudio", false);
@@ -641,8 +677,8 @@ export default {
         flex-shrink: 0;
         .limit-img {
           position: absolute;
-          top: -15rpx;
-          right: 50rpx;
+          top: -20rpx;
+          right: -30rpx;
           z-index: 99;
         }
         .active {
@@ -662,7 +698,13 @@ export default {
       }
     }
   }
-
+  .tabs-content-ul {
+    padding: 35rpx 50rpx 10rpx 20rpx !important;
+    .item {
+      flex: none !important;
+      padding: 0 20rpx;
+    }
+  }
   .tabs-content {
     .children-ul {
       padding: 20rpx 20rpx 0;
@@ -792,5 +834,19 @@ export default {
   /deep/ .van-ellipsis {
     font-size: 24rpx;
   }
+  .custom-class-popup {
+    border-radius: 12rpx;
+    .close-iocn {
+      padding: 25rpx 35rpx;
+      display: flex;
+      justify-content: flex-end;
+    }
+    .popup-box {
+      width: 632rpx;
+      padding: 0 30rpx 50rpx;
+      line-height: 48rpx;
+      font-size: 32rpx;
+    }
+  }
 }
 </style>

+ 7 - 0
pages/purchaser/purchaser.vue

@@ -29,6 +29,7 @@
         </view>
         <view class="purchaser-content-box-body">
           <view class="purchaser-content-box-row" v-for="item in recentReportList" :key="item.ArticleId">
+            <image class="recommend-icon" v-if="item.TopTime > 0" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/new_cygx/recommend_YX.png"></image>
             <text class="purchaser-content-row-tag" :style="{ padding: item.ArticleTypeName.length == 2 ? '4rpx 28rpx' : '4rpx 15rpx' }">
               {{ item.ArticleTypeName }}
             </text>
@@ -389,6 +390,12 @@ export default {
       z-index: 11;
     }
   }
+  .recommend-icon {
+    flex-shrink: 0;
+    width: 30rpx;
+    height: 30rpx;
+    margin-right: 15rpx;
+  }
 }
 </style>
 <style lang="scss">

+ 7 - 20
pages/reportForm/reportForm.vue

@@ -28,10 +28,10 @@
             </swiper-item>
           </view>
         </swiper>
-        <view class="bulletin" @click="lookBulletinhandler">
+        <!-- <view class="bulletin" @click="lookBulletinhandler">
           <image :src="bulletinData.IndexImg"></image>
           <image v-if="bulletinData.IsShowSustainable" class="limit-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/limit_icon.png"></image>
-        </view>
+        </view> -->
       </view>
       <view class="tab-cont-two">
         <block v-for="(item, index) in tabBarsTow" :key="item.CategoryId">
@@ -253,12 +253,6 @@ export default {
       hasPermission: "", //权限
       labelListData: [],
       timeLine: [], //时间线数据
-      mockTimeLine: [
-        {
-          date: "不重要",
-          Content: "<p>hello,world</p><p>hello,world</p><p>hello,world</p>",
-        }, //第一项是为了获取当前手机下,三行是多少相对高度
-      ],
       bannerDataList: [],
       bulletinData: {},
     };
@@ -452,8 +446,8 @@ export default {
             let temp = item;
             temp.date = item.PublishTime.split(" ")[0];
             if (item.Content.length) {
-              temp.isExpand = true;
-              temp.isShowBtn = true;
+              item.isShowBtn = item.Content.length > 60 ? true : false;
+              item.isExpand = item.Content.length > 60 ? false : true;
             }
             return temp;
           });
@@ -468,17 +462,9 @@ export default {
             this.timeLine = this.timeLine.concat(list);
           }
         }
-        this.timeLine.unshift(this.mockTimeLine[0]);
-        //在获取高度前把所有的晨会展开,收起的话无法获取正确高度
-        this.timeLine.forEach((item) => {
-          if (item.Content.length) {
-            item.isExpand = true;
-            item.isShowBtn = true;
-          }
-        });
         setTimeout(() => {
-          this.$refs.timeChild.getConentsHeight();
           this.$refs.timeChild.loadTimeLine = true;
+          this.$refs.timeChild.getConentsHeight();
         }, 0);
       });
     },
@@ -746,7 +732,8 @@ export default {
     display: flex;
     justify-content: space-between;
     swiper {
-      width: 447rpx;
+      // width: 447rpx;
+      flex: 1;
       height: 110rpx;
       border-radius: 16rpx;
       overflow: hidden;

+ 3 - 16
reportPages/IndustryReport/IndustryReport.vue

@@ -106,12 +106,7 @@ export default {
       jurisdictionList: {},
       hasPermission: "", //权限
       timeLine: [], //时间线数据
-      mockTimeLine: [
-        {
-          date: "不重要",
-          Content: "<p>hello,world</p><p>hello,world</p><p>hello,world</p>",
-        }, //第一项是为了获取当前手机下,三行是多少相对高度
-      ],
+      mockTimeLine: [],
       dataFollow: {},
       isSendWx: "",
       chapterId: 0,
@@ -204,8 +199,8 @@ export default {
               let temp = item;
               temp.date = item.PublishTime.split(" ")[0];
               if (item.Content.length) {
-                temp.isExpand = true;
-                temp.isShowBtn = true;
+                item.isShowBtn = item.Content.length > 60 ? true : false;
+                item.isExpand = item.Content.length > 60 ? false : true;
               }
               return temp;
             });
@@ -220,14 +215,6 @@ export default {
               this.timeLine = this.timeLine.concat(list);
             }
           }
-          this.timeLine.unshift(this.mockTimeLine[0]);
-          //在获取高度前把所有的晨会展开,收起的话无法获取正确高度
-          this.timeLine.forEach((item) => {
-            if (item.Content.length) {
-              item.isExpand = true;
-              item.isShowBtn = true;
-            }
-          });
           setTimeout(() => {
             this.$refs.timeChild.getConentsHeight();
           }, 0);

+ 25 - 0
reportPages/morningDetails/morningDetails.vue

@@ -9,6 +9,12 @@
       <!-- 这里是循环的盒子 -->
       <view class="report-ul" v-for="item in reportDetails.List" :key="item.Id">
         <view class="li-title">{{ item.IndustryName }}</view>
+        <view class="morning-meeting-content">
+          <view class="title-morning" @click="morningReportHandler(item)">
+            {{ item.Title }}
+          </view>
+          <view class="subject-name-morning" v-for="key in item.ListSubject" :key="key.IndustrialSubjectId"> #{{ key.SubjectName }} </view>
+        </view>
         <view class="li-text">
           <mp-html :content="strFontSize(item.Content)" />
         </view>
@@ -93,6 +99,11 @@ export default {
         url: "/pages/index/index",
       });
     },
+    morningReportHandler(item) {
+      uni.navigateTo({
+        url: "/pageMy/reportDetail/reportDetail?id=" + item.LinkArticleId,
+      });
+    },
   },
   onLoad(options) {
     this.reportId = Number(options.id) || 8;
@@ -216,5 +227,19 @@ export default {
       color: #999999;
     }
   }
+  .morning-meeting-content {
+    display: flex;
+    flex-wrap: wrap;
+    color: $uni-color-new;
+    font-size: 28rpx;
+    margin: 15rpx 0;
+    .title-morning {
+      font-weight: 600;
+      text-decoration: underline;
+    }
+    .subject-name-morning {
+      margin-left: 10rpx;
+    }
+  }
 }
 </style>

+ 135 - 0
reportPages/trainVideoPages/trainVideoPages.vue

@@ -0,0 +1,135 @@
+<template>
+  <view class="container train-video-pages">
+    <view class="title-box">
+      <view class="item">弘则策略首席 马冬凡 主讲</view>
+    </view>
+    <view class="ul-content">
+      <view v-for="item in videoList" :key="item.SourceId" class="global_card_content container-roadshow-item">
+        <view class="global_title item-title" @click="goDetails">
+          {{ item.Title }}
+        </view>
+        <view class="content-box" @click.stop="handelPlay(item)">
+          <image :src="item.BackgroundImg"></image>
+        </view>
+        <text class="time">{{ item.PublishTime }}</text>
+      </view>
+    </view>
+    <videoModule :showVideoPop.sync="showVideoPop" :curVideoId="curVideoId" :videoPopList="videoPopList" />
+  </view>
+</template>
+
+<script>
+import { Reports } from "@/config/api.js";
+
+import videoModule from "@/components/videoModule/index";
+export default {
+  data() {
+    return {
+      showVideoPop: false,
+      showAudioPop: false, //播放音频
+      videoPopList: {},
+      videoList: [],
+    };
+  },
+  components: {
+    videoModule,
+    // modalDialog,
+  },
+  methods: {
+    //播放的权限判断
+    async handelPlay(item) {
+      await this.$store.dispatch("showLoginModal");
+      if (item.AuthInfo.HasPermission == 1) {
+        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;
+      //     }
+      //   }
+    },
+    //视频的播放事件
+    handelVideoPlay(item) {
+      if (this.$store.state.videoPlay.playVideoId != item.Id) {
+        this.$store.commit("videoPlay/palyTimeUpdate", 0);
+        this.$store.commit("videoPlay/playVideo", item.Id);
+      }
+      this.globalBgAudioManager.stop();
+      this.videoPopList = item;
+      this.showVideoPop = true;
+    },
+    async getVideoList(item) {
+      const res = await Reports.microRoadshowTrainingList();
+      if (res.Ret === 200) {
+        this.videoList = res.Data.List;
+      }
+    },
+  },
+  onLoad() {
+    this.getVideoList();
+  },
+};
+</script>
+
+<style scoped lang="scss">
+.train-video-pages {
+  background-color: #f3f5f9;
+  word-break: break-all;
+  .title-box {
+    display: flex;
+    align-items: center;
+    width: 100%;
+    height: 96rpx;
+    border-top: 0.5rpx solid #dcdfe6;
+    border-bottom: 0.5rpx solid #dcdfe6;
+    padding-left: 25rpx;
+    background-color: #fff;
+    font-size: 28rpx;
+    color: #333;
+    .item {
+      padding: 10rpx 25rpx;
+      border-radius: 100rpx;
+      background-color: #f8f8fa;
+    }
+  }
+  .ul-content {
+    display: flex;
+    flex-wrap: wrap;
+    padding: 30rpx 25rpx;
+    justify-content: space-between;
+    .container-roadshow-item {
+      background-color: #fff;
+      width: 340rpx;
+      height: 440rpx;
+      margin-bottom: 20rpx;
+      .content-box {
+        flex: 1;
+        height: 228rpx;
+        background-color: #f0f1f3;
+        margin: 20rpx 0;
+        image {
+          width: 100%;
+          height: 100%;
+        }
+      }
+    }
+    .item-title {
+      height: 105rpx;
+    }
+    .time {
+      font-size: 24rpx;
+      color: #666;
+      text-align: right;
+    }
+  }
+}
+</style>