Ver código fonte

Merge branch 'master' into 9.10

bding 2 anos atrás
pai
commit
e1aba8087a

+ 32 - 20
activityPages/activityDetail/activityDetail.vue

@@ -100,7 +100,7 @@
             </view>
           </block>
           <view class="city-box">
-            <text v-if="detailData.ActivityTypeName">活动类型:</text>
+            <text class="network-left" v-if="detailData.ActivityTypeName">活动类型:</text>
             <view class="city">
               <text style="color: #333">
                 <block v-if="detailData.ChartPermissionName !== '买方研选'">({{ detailData.ChartPermissionName }})</block>
@@ -171,7 +171,7 @@
             <view class="network-right network-link" style="color: #2c83ff" v-else>
               <view class="">
                 <text class="default text_oneLine" @click="networkBtn">{{ detailData.OnlineParticipation }}</text>
-                <text class="default copy-link" @click="copyLink">复制链接</text>
+                <text class="default copy-link" @click="copyLink(1)">复制链接</text>
               </view>
             </view>
           </view>
@@ -180,7 +180,7 @@
             <view class="network-right network-zoom" style="color: #2c83ff">
               <view>
                 <text class="default text_zoom">{{ detailData.LinkParticipants }}</text>
-                <view> 点击<text class="default copy-link copy-zoom" @click="copyLink">复制链接</text>在手机浏览器打开,并输入会议密码 </view>
+                <view> 点击<text class="default copy-link copy-zoom" @click="copyLink(1)">复制链接</text>在手机浏览器打开,并输入会议密码 </view>
               </view>
             </view>
           </view>
@@ -209,6 +209,16 @@
             <view class="network-left">相关报告:</view>
             <view class="network-right look-link" style="color: #2c83ff" @click="articleLinkHandler"> 点击查看 </view>
           </view>
+          <view class="network" v-if="detailData.TencentConferenceNumber">
+            <view class="network-left">腾讯会议号:</view>
+            <view class="network-right network-link" v-if="!detailData.IsSignup && (detailData.IsYidongConduct || detailData.IsLimitPeople)">请报名获取</view>
+            <view class="network-right network-link" style="color: #2c83ff" v-else>
+              <view class="">
+                <text class="default tencent text_oneLine">{{ detailData.TencentConferenceNumber }}</text>
+                <text class="default copy-link" @click="copyLink(2)">复制会议号</text>
+              </view>
+            </view>
+          </view>
           <view v-if="detailData.Theme" class="network">
             <view class="network-left">主&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;题: </view>
             <view class="network-right">
@@ -250,16 +260,8 @@
           </view>
         </view>
       </block>
-
       <!-- 参会方式的弹出层 -->
-      <view class="select-box">
-        <u-popup v-model="selectShow" mode="bottom">
-          <view style="color: #333333; font-size: 28rpxrpx">请选择参会方式</view>
-          <view style="color: #2c83ff" @click="signupIsAddOfCancel(1)">预约外呼</view>
-          <view style="color: #2c83ff" @click="signupIsAddOfCancel(2)">自主拨入</view>
-          <view style="color: #a9afb8" @click="selectShow = false">取消</view>
-        </u-popup>
-      </view>
+      <SelectPopup :selectShow.sync="selectShow" @signupIsAddOfCancel="signupIsAddOfCancel" :selectYdong="selectYdong" />
       <view class="select-box">
         <u-popup v-model="selectShowLink" mode="bottom">
           <view style="color: #2c83ff" class="text_oneLine article-title" @click="goDetail(item.ArticleId)" v-for="item in detailData.ArticleList" :key="item.ArticleId"> {{ item.Title }}</view>
@@ -300,6 +302,7 @@ import freeCharge from "@/components/freeCharge";
 import audioModule from "@/components/audioModule/index";
 import manageMixin from "./manageMixin";
 import IsTrackFollow from "@/components/isTrackFollow.vue";
+import SelectPopup from "@/components/activity/selectPopup";
 let app = getApp({ allowDefault: true });
 export default {
   filters: {
@@ -325,7 +328,8 @@ export default {
         cutId: "",
         state: "",
       },
-      selectShow: false,
+      selectShow: false, // 参会方式的隐藏显示
+      selectYdong: false, // 参会方式展示的文案
       haveAuth: "",
       jurisdictionList: {},
       editIsShow: false, //外呼莫泰框
@@ -385,6 +389,7 @@ export default {
     freeCharge,
     audioModule,
     IsTrackFollow,
+    SelectPopup,
   },
   watch: {
     haveAuth: {
@@ -472,7 +477,7 @@ export default {
     },
     // 提问
     async askingGo(type = "") {
-      await activity.checkAskActivity({ ActivityId: this.id, PageRouter: this.$store.state.pageRouterActivity });
+      await activity.checkAskActivity({ ActivityId: Number(this.id), PageRouter: this.$store.state.pageRouterActivity });
       uni.navigateTo({
         url: "/activityPages/generationAsk/generationAsk?id=" + this.id + "&type=" + type,
       });
@@ -492,19 +497,18 @@ export default {
       });
     },
     // 复制的操作
-    copyLink() {
+    copyLink(type) {
       uni.setClipboardData({
-        data: this.detailData.LinkParticipants || this.detailData.OnlineParticipation,
+        data: type == 1 ? this.detailData.LinkParticipants || this.detailData.OnlineParticipation : this.detailData.TencentConferenceNumber,
         success: function () {
           uni.showToast({
-            title: "复制成功,可在浏览器打开",
+            title: `复制成功${type == 1 ? ",可在浏览器打开" : ""}`,
             icon: "none",
             duration: 2000,
           });
         },
       });
     },
-
     // 跳转产业标签
     goDustrialHandler(item) {
       if (!item.IsJump) return;
@@ -713,7 +717,11 @@ export default {
     .city-box {
       display: flex;
       align-items: center;
-
+      .network-left {
+        width: 170rpx;
+        text-align-last: justify;
+        text-align: justify;
+      }
       text {
         padding: 0;
       }
@@ -752,7 +760,7 @@ export default {
     padding: 0 !important;
     display: flex;
     .network-left {
-      width: 160rpx;
+      width: 190rpx;
       text-align-last: justify;
       text-align: justify;
       flex-shrink: 0;
@@ -803,7 +811,11 @@ export default {
         :first-child {
           width: 350rpx;
         }
+        .tencent {
+          width: 320rpx;
+        }
         .copy-link {
+          flex-shrink: 0;
           padding: 5rpx 17rpx !important;
           border-radius: 34rpx;
           background-color: #ebf4ff;

+ 6 - 1
activityPages/activityDetail/manageMixin.js

@@ -4,6 +4,7 @@ export default {
   methods: {
     //报名/取消报名
     signupIsAddOfCancel(type, valName = "") {
+      type = type ? type : valName;
       if (this.detailData.IsSignup == 1) {
         const str = this.detailData.ActivityTime.replace(/-/g, "/");
         const date = new Date(str);
@@ -171,8 +172,12 @@ export default {
     },
     // 我要报名
     wanttosignup() {
-      if (this.detailData.IsLimitPeople && [1, 2, 3].includes(this.detailData.ActivityTypeId)) {
+      if (
+        (!this.detailData.IsYidongConduct && this.detailData.IsLimitPeople && [1, 2, 3].includes(this.detailData.ActivityTypeId)) ||
+        (this.detailData.IsYidongConduct && this.detailData.IsCanOutboundCall)
+      ) {
         this.selectShow = true;
+        this.selectYdong = this.detailData.IsYidongConduct;
       } else {
         this.signupIsAddOfCancel(3);
       }

+ 5 - 10
activityPages/themeActivity/themeActivity.vue

@@ -110,7 +110,7 @@
                       <text v-if="item.IsShowOutboundCall && item.ActivityTypeId != 1" class="button" @click="signupIsAddOfCancel(item, 1)">{{ item.IsSignup == 1 ? "取消外呼" : "预约外呼" }}</text>
                       <text v-if="item.IsShowDetails" @click="goDetail(item)" class="button">查看详情</text>
                       <block v-if="item.IsShowSignup">
-                        <block v-if="item.IsCClassMeeting">
+                        <block v-if="item.IsCClassMeeting && !item.IsYidongConduct">
                           <text class="button" @click="signupIsAddOfCancel(item, 3, 'CClass')">{{ item.IsSignup == 1 ? "取消报名" : "我要报名" }}</text>
                         </block>
                         <block v-else>
@@ -151,14 +151,8 @@
         <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/act_search.png" mode="" class="nodata_ico"></image>
         <text>暂时没有符合条件的活动</text>
       </view>
-      <view class="select-box">
-        <u-popup v-model="selectShow" mode="bottom">
-          <view style="color: #333333; font-size: 28rpxrpx">请选择参会方式</view>
-          <view style="color: #2c83ff" @click="signupIsAddOfCancel('', 1)">预约外呼</view>
-          <view style="color: #2c83ff" @click="signupIsAddOfCancel('', 2)">自主拨入</view>
-          <view style="color: #a9afb8" @click="selectShow = false">取消</view>
-        </u-popup>
-      </view>
+      <SelectPopup :selectShow.sync="selectShow" @signupIsAddOfCancel="signupIsAddOfCancel" :selectYdong="selectYdong" />
+
       <!-- 所有自定义弹框 -->
       <modalDialog
         :isShow="isShow"
@@ -195,6 +189,7 @@ import selectMixins from "../components/selectMixins.js";
 import audioModule from "@/components/audioModule/index";
 import mediaMixins from "@/components/activity/mediaMixins";
 import videoModule from "@/components/videoModule/index";
+import SelectPopup from "@/components/activity/selectPopup";
 
 export default {
   mixins: [myActivityMixin, selectMixins, mediaMixins],
@@ -207,7 +202,6 @@ export default {
       label: "",
       type: "",
       activityId: "",
-      selectShow: false,
       haveData: true,
       isEndActivity: false,
     };
@@ -217,6 +211,7 @@ export default {
     freeCharge,
     audioModule,
     videoModule,
+    SelectPopup,
   },
   methods: {
     // 判断几个按钮

+ 8 - 14
components/ItemComponent/activityItem.vue

@@ -46,7 +46,7 @@
           }}</text>
           <text class="item-btn" v-if="list.IsShowDetails" @click.stop="goDetail(list)">查看详情</text>
           <block v-if="list.IsShowSignup">
-            <block v-if="list.IsCClassMeeting">
+            <block v-if="list.IsCClassMeeting && !list.IsYidongConduct">
               <text class="item-btn btn-solid" @click.stop="signupIsAddOfCancel(list, 3, 'CClass')">{{ list.IsSignup == 1 ? "取消报名" : "我要报名" }}</text>
             </block>
             <block v-else>
@@ -111,25 +111,17 @@
         <rich-text v-else :nodes="specialAccounts"></rich-text>
       </view>
     </u-modal>
-    <view class="select-box">
-      <u-popup v-model="selectShow" mode="bottom">
-        <view style="color: #333333; font-size: 28rpxrpx">请选择参会方式</view>
-        <view style="color: #2c83ff" @click.stop="signupIsAddOfCancel('', 1)">预约外呼</view>
-        <view style="color: #2c83ff" @click.stop="signupIsAddOfCancel('', 2)">自主拨入</view>
-        <view style="color: #a9afb8" @click.stop="selectShow = false">取消</view>
-      </u-popup>
-    </view>
+    <SelectPopup :selectShow.sync="selectShow" @signupIsAddOfCancel="signupIsAddOfCancel" :selectYdong="selectYdong" />
   </view>
 </template>
 
 <script>
-import myActivityMixin from "@/components/activity/indexActivity.js";
 import modalDialog from "../modalDialog.vue";
 import { activity, User } from "@/config/api.js";
-
+import SelectPopup from "@/components/activity/selectPopup";
 export default {
   name: "",
-  components: { modalDialog },
+  components: { modalDialog, SelectPopup },
   props: {
     list: {
       type: Object,
@@ -167,7 +159,8 @@ export default {
       isShowhasPermission: false, //拨打销售电话
       applyForIsShow: false, //潜在用户
       mailboxBinding: false, //是否绑定邮箱
-      selectShow: false, //
+      selectShow: false, //是否显示弹框
+      selectYdong: false, // 参会方式展示的文案
       specialIsHintShow: false, // 按钮的显示
       specialGoFollowShow: false, // 弹框的隐藏显示
       specialAccounts: `您已开启【专项调研】新活动通知<br/><br/>请关注【查研观向小助手】公众号,及时获取微信消息提醒`,
@@ -200,8 +193,9 @@ export default {
       if (item.YidongActivityId) {
         this.goDetail(item);
         return;
-      } else if (item.IsLimitPeople == 1 && [1, 2, 3].includes(item.ActivityTypeId)) {
+      } else if ((item.IsYidongConduct && item.IsCanOutboundCall)|| (!item.IsYidongConduct && item.IsLimitPeople == 1 && [1, 2, 3].includes(item.ActivityTypeId))) {
         this.selectShow = true;
+        this.selectYdong = item.IsYidongConduct;
       } else {
         this.activityIdAdd = "";
         this.signupIsAddOfCancel(item, 3);

+ 8 - 2
components/activity/indexActivity.js

@@ -37,6 +37,8 @@ export default {
       isShowhasPermission: false, //拨打销售电话
       applyForIsShow: false, //潜在用户
       mailboxBinding: false, //是否绑定邮箱
+      selectShow: false, // 是否显示选择弹框
+      selectYdong: false,
     };
   },
   methods: {
@@ -46,8 +48,9 @@ export default {
       if (item.YidongActivityId) {
         this.goDetail(item);
         return;
-      } else if (item.IsLimitPeople == 1 && [1, 2, 3].includes(item.ActivityTypeId)) {
+      } else if ((item.IsYidongConduct && item.IsCanOutboundCall) || (!item.IsYidongConduct && item.IsLimitPeople == 1 && [1, 2, 3].includes(item.ActivityTypeId))) {
         this.selectShow = true;
+        this.selectYdong = item.IsYidongConduct;
       } else {
         this.activityIdAdd = "";
         this.signupIsAddOfCancel(item, 3);
@@ -82,7 +85,9 @@ export default {
               if (res.Ret === 200) {
                 this.collectList.forEach((valueAct) => {
                   if (valueAct.ActivityId === id) {
+                    console.log(valueAct.IsSignup, "==========");
                     valueAct.IsSignup = 0;
+                    console.log(valueAct.IsSignup, "-----------");
                   }
                 });
                 this.init();
@@ -156,6 +161,7 @@ export default {
           this.flag = false;
         }, 500);
       }
+      this.activityIdAdd = "";
     },
     // 弹框的初始化
     init() {
@@ -287,7 +293,7 @@ export default {
           cancelColor: "#606266",
           success: async (res) => {
             if (res.confirm) {
-              const res = await activity.postAppointmentCancel({ ActivityId: item.ActivityId ,PageRouter: this.$store.state.pageRouterActivity});
+              const res = await activity.postAppointmentCancel({ ActivityId: item.ActivityId, PageRouter: this.$store.state.pageRouterActivity });
               if (res.Ret === 200) {
                 item.IsAppointment = 0;
                 this.init();

+ 66 - 0
components/activity/selectPopup.vue

@@ -0,0 +1,66 @@
+<template>
+  <!-- 参会方式弹出层 -->
+  <view class="select-box">
+    <u-popup v-model="popupShow" mode="bottom" @close="closeSelectHandle">
+      <view style="color: #333333; font-size: 28rpxrpx">请选择参会方式</view>
+      <view style="color: #2c83ff" @click="signupIsAddOfCancel('', 1)">预约外呼</view>
+      <view v-if="selectYdong" style="color: #2c83ff" @click="signupIsAddOfCancel('', 4)">自主入会</view>
+      <view v-else style="color: #2c83ff" @click="signupIsAddOfCancel('', 2)">自主拨入</view>
+      <view style="color: #a9afb8" @click="closeSelectHandle">取消</view>
+    </u-popup>
+  </view>
+</template>
+
+<script>
+export default {
+  name: "",
+  components: {},
+  props: {
+    selectShow: {
+      type: Boolean,
+      default: false,
+      required: true,
+    },
+    selectYdong: {
+      type: Boolean,
+      default: false,
+      required: true,
+    },
+  },
+  data() {
+    return {
+      popupShow: false,
+    };
+  },
+  watch: {
+    selectShow: {
+      handler(newVal) {
+        this.popupShow = newVal;
+      },
+    },
+  },
+  methods: {
+    // 关闭弹框事件
+    closeSelectHandle() {
+      this.popupShow = false;
+      this.$emit("update:selectShow", false);
+    },
+    // 点击后的事件
+    signupIsAddOfCancel(val, type) {
+      this.$emit("signupIsAddOfCancel", val, type);
+    },
+  },
+};
+</script>
+<style scoped lang="scss">
+.select-box {
+  width: 100%;
+  view {
+    height: 95prx;
+    line-height: 95rpx;
+    text-align: center;
+    font-size: 32rpx;
+    border-bottom: 1rpx solid #ebebeb;
+  }
+}
+</style>

+ 8 - 1
pageMy/myCollection/myCollection.vue

@@ -146,7 +146,14 @@ export default {
     },
     // 去往文章详情页面
     goDetailReport(item) {
-      this.$store.dispatch("checkHandle", "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId);
+      if (item.IsRoadShow) {
+        //跳转路演精华
+        uni.navigateTo({
+          url: "/reportPages/roadEssence/roadEssence?id=" + item.ArticleId,
+        });
+      } else {
+        this.$store.dispatch("checkHandle", "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId);
+      }
     },
 
     // 去往主题详情

+ 6 - 1
pageMy/myLeavingMessage/myLeavingMessage.vue

@@ -46,7 +46,12 @@ export default {
     goDetail(item) {
       this.$store.commit("setRouterActivity", "我的留言");
       this.$store.commit("setRouterReport", "我的留言");
-      if (item.RedirectType == 1) {
+      if (item.IsRoadShow) {
+        //跳转路演精华
+        uni.navigateTo({
+          url: "/reportPages/roadEssence/roadEssence?id=" + item.ArticleId,
+        });
+      } else if (item.RedirectType == 1) {
         uni.navigateTo({
           url: "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId,
         });

+ 4 - 10
pageMy/mySchedulepage/mySchedulepage.vue

@@ -63,7 +63,7 @@
                     <text v-if="item.IsShowOutboundCall && item.ActivityTypeId != 1" class="button" @click="signupIsAddOfCancel(item, 1)">{{ item.IsSignup == 1 ? "取消外呼" : "预约外呼" }}</text>
                     <text v-if="item.IsShowDetails" @click="goDetail(item)" class="button">查看详情</text>
                     <block v-if="item.IsShowSignup">
-                      <block v-if="item.IsCClassMeeting">
+                      <block v-if="item.IsCClassMeeting && !item.IsYidongConduct">
                         <text class="button" @click="signupIsAddOfCancel(item, 3, 'CClass')">{{ item.IsSignup == 1 ? "取消报名" : "我要报名" }}</text>
                       </block>
                       <block v-else>
@@ -122,14 +122,7 @@
       :applyForIsShow="applyForIsShow"
       :mailboxBinding="mailboxBinding"
     />
-    <view class="select-box">
-      <u-popup v-model="selectShow" mode="bottom">
-        <view style="color: #333333; font-size: 28rpxrpx">请选择参会方式</view>
-        <view style="color: #2c83ff" @click="signupIsAddOfCancel('', 1)">预约外呼</view>
-        <view style="color: #2c83ff" @click="signupIsAddOfCancel('', 2)">自主拨入</view>
-        <view style="color: #a9afb8" @click="selectShow = false">取消</view>
-      </u-popup>
-    </view>
+    <SelectPopup :selectShow.sync="selectShow" @signupIsAddOfCancel="signupIsAddOfCancel" :selectYdong="selectYdong" />
     <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
     <view v-if="showAudioBox">
       <audioModule :showAudioPop.sync="showAudioPop" />
@@ -147,6 +140,7 @@ import freeCharge from "@/components/freeCharge";
 import audioModule from "@/components/audioModule/index";
 import mediaMixins from "@/components/activity/mediaMixins";
 import videoModule from "@/components/videoModule/index";
+import SelectPopup from "@/components/activity/selectPopup";
 
 let app = getApp();
 export default {
@@ -156,6 +150,7 @@ export default {
     freeCharge,
     audioModule,
     videoModule,
+    SelectPopup,
   },
   data() {
     return {
@@ -166,7 +161,6 @@ export default {
       haveData: true,
       isShowJurisdiction: false, //
       isrefresh: true,
-      selectShow: false,
       listChartPermission: [],
       listChartPermissionInit: [],
       collectTypeList: [],

+ 21 - 0
pageMy/reportPage/reportPage.vue

@@ -13,6 +13,10 @@
         </cover-view>
       </cover-view>
       <cover-view class="footer-con">
+        <cover-view class="handle-item" @click="goRevolvePage">
+          <cover-image class="download-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/report-revolve.png"></cover-image>
+          <cover-view>全屏</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>
@@ -301,6 +305,23 @@ export default {
         url: "/activityPages/generationAsk/generationAsk?id=" + this.id + "&type=文章",
       });
     },
+    // 去往横屏页面
+    goRevolvePage() {
+      let token = this.reportInfo.HttpUrl;
+      uni.navigateTo({
+        url: "/pageMy/reportRevolve/reportRevolve",
+        events: {
+          // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
+          acceptDataFromOpenedPage: function (data) {
+            console.log(data);
+          },
+        },
+        success: function (res) {
+          // 通过eventChannel向被打开页面传送数据
+          res.eventChannel.emit("acceptDataFromOpenerPage", { url: JSON.stringify(token) });
+        },
+      });
+    },
   },
   async onShow() {
     this.readTiem = 0;

+ 58 - 0
pageMy/reportRevolve/reportRevolve.vue

@@ -0,0 +1,58 @@
+<template>
+  <view class="container reportRevolve-container">
+    <web-view :src="reportUrl" v-if="reportUrl"> </web-view>
+    <!-- <cover-view class="clear-view">
+        <cover-image class="clear-icon" @click="isClearHandler" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/close-icon.png"></cover-image>
+      </cover-view> -->
+  </view>
+</template>
+
+<script>
+import { Report, User, Reports, FreeButton } from "@/config/api.js";
+import { reportStrategyUrl } from "@/config/config";
+let app = getApp({ allowDefault: true });
+export default {
+  data() {
+    return {
+      reportUrl: "",
+    };
+  },
+
+  computed: {},
+  methods: {
+    isClearHandler() {
+      uni.navigateBack();
+    },
+  },
+  onLoad(option) {
+    const eventChannel = this.getOpenerEventChannel();
+    // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
+    eventChannel.on("acceptDataFromOpenerPage", ({ url }) => {
+      this.reportUrl = JSON.parse(decodeURIComponent(url));
+    });
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.reportRevolve-container {
+  .clear-view {
+    position: fixed;
+    width: 100%;
+    height: 60rpx;
+    z-index: 99999;
+    font-size: 24rpx;
+    box-sizing: border-box;
+    left: 80rpx;
+    top: 16rpx;
+    .clear-icon {
+      width: 20rpx;
+      height: 20rpx;
+      z-index: 99999;
+    }
+  }
+  //   padding-bottom: 200rpx;
+  //   padding-bottom: calc(200rpx + constant(safe-area-inset-bottom));
+  //   padding-bottom: calc(200rpx + env(safe-area-inset-bottom));
+}
+</style>

+ 4 - 11
pages-search/components/activityBack.vue

@@ -63,7 +63,7 @@
                       <text v-if="item.IsShowOutboundCall && item.ActivityTypeId != 1" class="button" @click="signupIsAddOfCancel(item, 1)">{{ item.IsSignup == 1 ? "取消外呼" : "预约外呼" }}</text>
                       <text v-if="item.IsShowDetails" @click="goDetail(item)" class="button">查看详情</text>
                       <block v-if="item.IsShowSignup">
-                        <block v-if="item.IsCClassMeeting">
+                        <block v-if="item.IsCClassMeeting && !item.IsYidongConduct">
                           <text class="button" @click="signupIsAddOfCancel(item, 3, 'CClass')">{{ item.IsSignup == 1 ? "取消报名" : "我要报名" }}</text>
                         </block>
                         <block v-else>
@@ -119,14 +119,7 @@
       :mailboxBinding="mailboxBinding"
     />
     <!-- 参会方式弹出层 -->
-    <view class="select-box">
-      <u-popup v-model="selectShow" mode="bottom">
-        <view style="color: #333333; font-size: 28rpxrpx">请选择参会方式</view>
-        <view style="color: #2c83ff" @click="signupIsAddOfCancel('', 1)">预约外呼</view>
-        <view style="color: #2c83ff" @click="signupIsAddOfCancel('', 2)">自主拨入</view>
-        <view style="color: #a9afb8" @click="selectShow = false">取消</view>
-      </u-popup>
-    </view>
+    <SelectPopup :selectShow.sync="selectShow" @signupIsAddOfCancel="signupIsAddOfCancel" :selectYdong="selectYdong" />
     <view v-if="showAudioBox">
       <audioModule :showAudioPop.sync="showAudioPop" />
     </view>
@@ -164,6 +157,7 @@ import freeCharge from "@/components/freeCharge";
 import audioModule from "@/components/audioModule/index";
 import videoModule from "@/components/videoModule/index";
 import { activity } from "@/config/api";
+import SelectPopup from "@/components/activity/selectPopup";
 export default {
   props: {
     collectLists: {
@@ -191,8 +185,6 @@ export default {
           state: 1,
         },
       ],
-      selectShow: false,
-      selectShow: false,
     };
   },
   mixins: [myActivityMixin, mediaMixins, specialMixins],
@@ -201,6 +193,7 @@ export default {
     freeCharge,
     audioModule,
     videoModule,
+    SelectPopup,
   },
   watch: {
     collectLists: {

+ 8 - 0
pages.json

@@ -337,6 +337,14 @@
             "enablePullDownRefresh": false,
             "navigationStyle": "custom"
           }
+        },
+        {
+          "path": "reportRevolve/reportRevolve",
+          "style": {
+            "enablePullDownRefresh": false,
+            "pageOrientation": "landscape",
+            "navigationStyle": "custom"
+          }
         }
       ]
     },

+ 63 - 2
reportPages/roadEssence/roadEssence.vue

@@ -66,6 +66,19 @@
         </view>
       </view>
       <view class="content-link" v-if="detali.ReportLink" @click="goDetali"> 查看深度报告 </view>
+      <view class="bottom-icon">
+        <view class="item" @click="leavingMessage">
+          <image class="icon-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/leaving_message.png"></image>
+          <view>留言</view>
+        </view>
+        <view class="item" @click="collectHandle">
+          <image
+            class="icon-img"
+            :src="isCollection ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_act.png' : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_ico.png'"
+          ></image>
+          <view>收藏</view>
+        </view>
+      </view>
       <statement :show="isShowStatement" />
     </block>
     <view class="noauth-cont" v-else-if="haveAuth === 3 || haveAuth === 4">
@@ -92,7 +105,7 @@
 </template>
 
 <script>
-import { Reports, User, FreeButton } from "@/config/api.js";
+import { Reports, Report, User, FreeButton } from "@/config/api.js";
 import statement from "@/reportPages/components/statement.vue";
 import freeCharge from "@/components/freeCharge";
 import audioModule from "@/components/audioModule/index";
@@ -108,6 +121,7 @@ export default {
       haveAuth: "", //权限判断
       videoUrl: "",
       isShowAlert: false,
+      isCollection: false, //是否收藏
       timesTheSpeed: [
         { name: "倍速", value: 1 },
         { name: "1.25倍", value: 1.25 },
@@ -153,6 +167,23 @@ export default {
     },
   },
   methods: {
+    // 留言
+    leavingMessage() {
+      uni.navigateTo({
+        url: "/activityPages/generationAsk/generationAsk?id=" + this.id + "&type=文章",
+      });
+    },
+    /* 收藏 */
+    collectHandle() {
+      Report.collectRpt({
+        ArticleId: this.id,
+        PageRouter: this.$store.state.pageRouterReport,
+      }).then((res) => {
+        this.isCollection = !this.isCollection;
+        this.$util.toast(res.Msg);
+      });
+    },
+    // 获取报告详情
     async getDetail() {
       const res = await Reports.roadshowEssence({
         ArticleId: this.id,
@@ -163,6 +194,7 @@ export default {
           let arr = res.Data.Detail.VideoPlaySeconds.split(":");
           res.Data.Detail.VideoPlaySeconds = arr[0] * 60 + (arr[1] - 0);
           this.detali = res.Data.Detail;
+          this.isCollection = this.detali.IsCollect;
           this.videoUrl = res.Data.Detail.VideoUrl;
           if (this.globalBgAudioManager.src === this.videoUrl && this.globalBgAudioManager.paused === false) {
             this.isPlay = true;
@@ -314,7 +346,7 @@ export default {
 
 <style lang="scss" scoped>
 .content-road {
-  padding: 10rpx 34rpx 34rpx;
+  padding: 10rpx 34rpx 134rpx 34rpx;
 
   .container-top {
     font-size: 28rpx;
@@ -477,6 +509,35 @@ export default {
       }
     }
   }
+  .bottom-icon {
+    position: fixed;
+    display: flex;
+    width: 100%;
+    height: constant(100rpx + safe-area-inset-bottom);
+    height: env(100rpx + safe-area-inset-bottom);
+    justify-content: space-around;
+    z-index: 99;
+    bottom: 0;
+    padding-bottom: constant(safe-area-inset-bottom);
+    padding-bottom: env(safe-area-inset-bottom);
+    left: 0;
+    font-size: 20rpx;
+    color: #999;
+    background-color: #fff;
+    border-top: 1px solid #dddddd;
+    padding-top: 20rpx;
+    .item {
+      display: flex;
+      align-items: center;
+      flex-direction: column;
+      justify-content: center;
+      .icon-img {
+        width: 44rpx;
+        height: 44rpx;
+        margin-bottom: 4rpx;
+      }
+    }
+  }
   @import "../jurisdiction.scss";
 }
 </style>