Browse Source

merge master

bd0716 2 years ago
parent
commit
82690160e5
42 changed files with 1559 additions and 1122 deletions
  1. 29 27
      activityPages/activityDetail/activityDetail.vue
  2. 26 36
      activityPages/activityDetail/jurisdiction/components.vue
  3. 7 9
      activityPages/activityDetail/manageMixin.js
  4. 0 0
      activityPages/components/index.js
  5. 82 0
      activityPages/components/specialMixins.js
  6. 16 8
      activityPages/editOutbound/editOutbound.vue
  7. 46 9
      activityPages/playBack/playBack.vue
  8. 81 47
      activityPages/specialDetail/specialDetail.vue
  9. 55 30
      activityPages/specialResearchPage/specialResearchPage.vue
  10. 6 4
      activityPages/themeActivity/themeActivity.vue
  11. 12 42
      components/activity/indexActivity.js
  12. 200 144
      components/activity/indexActivity.scss
  13. 20 13
      components/audioModule/index.vue
  14. 169 216
      components/modalDialog.vue
  15. 18 3
      components/suspen_button.vue
  16. 18 3
      config/api.js
  17. 1 1
      manifest.json
  18. 8 5
      mixin/index.js
  19. 1 0
      pageMy/applyInterview/applyInterview.vue
  20. 3 0
      pageMy/applyResult/applyResult.vue
  21. 1 1
      pageMy/applyTrial/applyTrial.vue
  22. 4 2
      pageMy/authGuide/authGuide.vue
  23. 9 6
      pageMy/browseHistory/browseHistory.vue
  24. 9 15
      pageMy/chartPage/chartPage.vue
  25. 1 0
      pageMy/downloadFile/downloadFile.vue
  26. 2 0
      pageMy/freeTrial/freeTrial.vue
  27. 13 3
      pageMy/login/login.vue
  28. 9 6
      pageMy/myCollection/myCollection.vue
  29. 97 47
      pageMy/mySchedulepage/mySchedulepage.vue
  30. 19 7
      pageMy/reportDetail/reportDetail.vue
  31. 4 21
      pageMy/reportPage/reportPage.vue
  32. 2 0
      pageMy/transitionPages/transitionPages.vue
  33. 82 41
      pages-search/components/activityBack.vue
  34. 16 7
      pages-search/indedxSearch/indedxSearch.vue
  35. 28 15
      pages/activity/activity.vue
  36. 46 4
      pages/index/index.vue
  37. 5 2
      pages/pcWebViev/pcWebViev.vue
  38. 4 2
      pages/purchaser/purchaser.vue
  39. 137 82
      pages/reportForm/reportForm.vue
  40. 249 249
      reportPages/IndustryReport/IndustryReport.vue
  41. 12 8
      reportPages/reportSecretDetail/reportSecretDetail.vue
  42. 12 7
      reportPages/roadEssence/roadEssence.vue

+ 29 - 27
activityPages/activityDetail/activityDetail.vue

@@ -83,9 +83,9 @@
                 <block v-if="detailData.ChartPermissionName !== '买方研选'">({{ detailData.ChartPermissionName }})</block>
                 {{ detailData.ActivityTypeName }}
               </text>
-              <view class="choose-limit" @click="strictSelection" v-if="detailData.IsShowSustainable">
-                <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/purchaser.png" mode=""></image>
-                <image class="limit-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/limit_icon.png" mode=""></image>
+              <view class="choose-limit" @click="strictSelection">
+                <image v-if="detailData.ChartPermissionName.includes('研选')" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/purchaser.png" mode=""></image>
+                <image v-if="detailData.IsShowSustainable" class="limit-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/limit_icon.png" mode=""></image>
               </view>
               <image v-if="detailData.City" style="margin-left: 15rpx" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/location.png" mode=""></image>
               <text v-if="detailData.City">{{ detailData.City }}</text>
@@ -247,7 +247,6 @@
         :isShow="isShow"
         :signupType="signupType"
         :goFollow="goFollow"
-        :signupStatus="signupStatus"
         :isCancelShow="isCancelShow"
         :idTypeCancel="idTypeCancel"
         @cancelShowBtn="cancelEnsure"
@@ -262,7 +261,7 @@
     </view>
     <!-- 权限部分 -->
     <view v-else>
-      <jurisdiction :idAct="id" :haveAuth="haveAuth" :industryMsg="industryMsg" :msgType="msgType" :sellerMobile="sellerMobile" :sellerName="sellerName"></jurisdiction>
+      <jurisdiction :idAct="id" :jurisdictionList="jurisdictionList"></jurisdiction>
     </view>
     <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
     <view v-show="false">
@@ -296,7 +295,6 @@ export default {
       isGain: true,
       signupType: "", //关注类型
       goFollow: false, //是否关注公众号
-      signupStatus: "Success", //4个不同的类型提示文案
       isShow: false, //弹框
       isCancelShow: false,
       idTypeCancel: {
@@ -313,10 +311,7 @@ export default {
       },
       isNeedAddCountryCode: false,
       haveAuth: "",
-      industryMsg: "",
-      sellerMobile: "",
-      sellerName: "", //销售名称
-      msgType: "",
+      jurisdictionList: {},
       editIsShow: false, //外呼莫泰框
       countryCode: "", //外呼区号
       mobileEdit: "", //外呼手机号
@@ -387,7 +382,7 @@ export default {
     },
   },
   methods: {
-    //获取是否需要填写区号接口
+    // 获取是否需要填写区号接口
     countryCcode() {
       User.countryCcode().then((res) => {
         if (res.Ret == 200) {
@@ -395,6 +390,7 @@ export default {
         }
       });
     },
+    // 获取详情
     getActivityDetail() {
       activity
         .getActivityDetail({
@@ -403,10 +399,7 @@ export default {
         .then((res) => {
           if (res.Ret == 200) {
             this.haveAuth = res.Data.HasPermission;
-            this.industryMsg = res.Data.PopupMsg;
-            this.sellerMobile = res.Data.SellerMobile;
-            this.sellerName = res.Data.SellerName;
-            this.msgType = res.Data.MsgType;
+            this.jurisdictionList = res.Data;
             if (res.Data.HasPermission == 1) {
               this.detailData = res.Data.Detail;
               let pages = getCurrentPages();
@@ -422,13 +415,14 @@ export default {
           }
         });
     },
-    //拨打电话
+    // 拨打电话
     phonebtn(phone) {
       uni.makePhoneCall({
         phoneNumber: phone,
       });
     },
-    //  跳转新的小程序
+
+    // 跳转新的小程序
     networkBtn() {
       if (this.detailData.OnlineParticipation.includes("http")) {
         uni.navigateTo({
@@ -441,19 +435,25 @@ export default {
         });
       }
     },
+
+    // 弹框的回调事件
     cancelEnsure() {
       this.getActivityDetail();
     },
+
+    // 跳转
     goDetail(id) {
       uni.navigateTo({
         url: "/pageMy/reportDetail/reportDetail?id=" + id,
       });
     },
+    // 提问
     askingGo(type = "") {
       uni.navigateTo({
         url: "/activityPages/generationAsk/generationAsk?id=" + this.id + "&type=" + type,
       });
     },
+    // 添加会议提醒
     meetingReminderAdd() {
       activity
         .meetingReminderAdd({
@@ -475,7 +475,8 @@ export default {
           }
         });
     },
-    //取消会议提醒接口
+
+    // 取消会议提醒接口
     meetingReminderCancel() {
       if (this.detailData.IsCancelMeetingReminder == 1) {
         activity
@@ -501,6 +502,7 @@ export default {
         this.meetingReminderAdd();
       }
     },
+    // 我要报名
     wanttosignup() {
       if (this.detailData.IsLimitPeople == 1 && this.detailData.ActivityTypeName == "公司调研电话会") {
         this.selectShow = true;
@@ -508,6 +510,7 @@ export default {
         this.signupAdd(3);
       }
     },
+
     //点击了严选
     strictSelection() {
       activity.descriptionOfResearch().then((res) => {
@@ -522,6 +525,7 @@ export default {
         }
       });
     },
+    // 复制的操作
     copyLink() {
       uni.setClipboardData({
         data: this.detailData.LinkParticipants || this.detailData.OnlineParticipation,
@@ -534,7 +538,8 @@ export default {
         },
       });
     },
-    //跳转产业标签
+
+    // 跳转产业标签
     goDustrialHandler(item) {
       if (!item.IsJump) return;
       if (item.IsResearch) {
@@ -545,7 +550,7 @@ export default {
         this.$store.dispatch("checkHandle", "/reportPages/IndustryReport/IndustryReport?id=" + item.IndustrialManagementId);
       }
     },
-    //音频点击暂停播放
+    // 音频点击暂停播放
     audioPlayBack() {
       if (this.$store.state.audioBg.activityId == this.detailData.ActivityId) {
         if (this.globalBgAudioManager.paused) {
@@ -557,16 +562,12 @@ export default {
         this.$store.commit("audioBg/addAudio", { list: this.detailData.VoiceList, activityId: this.detailData.ActivityId, activityTitle: this.detailData.ActivityName });
       }
     },
-    // //拖动进度条
-    // handleAudioSliderChangeing(e) {
-    //   this.curTime = e.detail.value;
-    //   this.globalBgAudioManager.seek(this.curTime);
-    // },
-    //拖动进度条
+
+    // 拖动进度条
     handleAudioSliderChangeing(e) {
       this.curTime = e.detail.value;
     },
-    //拖动进度条
+    // 拖动进度条
     handleAudioSliderChange(e) {
       const value = e.detail.value;
       this.globalBgAudioManager.seek(value);
@@ -576,6 +577,7 @@ export default {
         this.$store.commit("audioBg/setSlide", false);
       }, 300);
     },
+    // 手指离开拖动进度条
     touchstartHandler() {
       this.$store.commit("audioBg/setSlide", true);
     },

+ 26 - 36
activityPages/activityDetail/jurisdiction/components.vue

@@ -1,24 +1,28 @@
 <template>
-  <view class="noauth-cont" v-if="haveAuth === 2 || haveAuth === 3 || haveAuth === 4 || haveAuth === 5">
+  <view class="noauth-cont" v-if="jurisdictionList.HasPermission === 2 || jurisdictionList.HasPermission === 3 || jurisdictionList.HasPermission === 4 || jurisdictionList.HasPermission === 5">
     <block v-if="!isShowAlert">
       <image src="https://hzstatic.hzinsights.com/cygx/czbk/noauth.png" class="noauth-ico"></image>
-      <block v-if="haveAuth == 3">
-        <view class="tip">{{ industryMsg }}</view>
-        <view class="btn-cont" @click="applyAuth"> 立即申请 </view>
+      <block v-if="jurisdictionList.HasPermission == 3">
+        <view class="tip">{{ jurisdictionList.PopupMsg }}</view>
+        <view class="btn-cont" v-if="jurisdictionList.Type !== '专项调研'" @click="applyAuth"> 立即申请 </view>
       </block>
-      <block v-if="haveAuth == 4 || haveAuth == 5">
-        <view class="tip">{{ industryMsg }}</view>
-        <view class="btn-cont" @click="applyAuth"> 立即申请 </view>
+      <block v-if="jurisdictionList.HasPermission == 4 || jurisdictionList.HasPermission == 5">
+        <view class="tip">{{ jurisdictionList.PopupMsg }}</view>
+        <view class="btn-cont" v-if="jurisdictionList.Type !== '专项调研'" @click="applyAuth"> 立即申请 </view>
       </block>
-      <view class="tip" v-if="haveAuth === 2">
-        <text style="margin-bottom: 20rpx"> 您暂无权限参加此活动 </text>
-        <text>若想参加可以联系对口销售 </text>
-        <text @click="callPhone(sellerMobile)"
-          >{{ sellerName }}:<text style="color: #d4bf86; display: inline-block">{{ sellerMobile }}</text></text
-        >
-        <text>申请开通对应的试用权限</text>
+      <view class="tip" v-if="jurisdictionList.HasPermission === 2">
+        <block v-if="jurisdictionList.Type == '专项调研'"> 需要升级行业套餐权限才可参与此活动,请联系对口销售</block>
+        <block v-else>
+          <text style="margin-bottom: 20rpx"> 您暂无权限参加此活动 </text>
+          <text>若想参加可以联系对口销售 </text>
+          <text @click="callPhone(jurisdictionList.SellerMobile)" v-if="jurisdictionList.Type !== '专项调研'">
+            {{ jurisdictionList.SellerName }}:
+            <text style="color: #d4bf86; display: inline-block">{{ jurisdictionList.SellerMobile }}</text>
+          </text>
+          <text>申请开通对应的试用权限</text>
+        </block>
       </view>
-      <view v-if="haveAuth === 2" class="btn-cont" @click="sellerApplyAuth"> 立即申请 </view>
+      <view v-if="jurisdictionList.HasPermission === 2 && jurisdictionList.Type !== '专项调研'" class="btn-cont" @click="sellerApplyAuth"> 立即申请 </view>
       <view class="btn-cont back-btn" @click="backIndex"> 返回</view>
     </block>
     <block v-else>
@@ -34,25 +38,10 @@
 import { User, FreeButton } from "@/config/api.js";
 export default {
   props: {
-    haveAuth: {
-      type: Number,
-      required: true,
-    },
-    industryMsg: {
-      type: String,
-      required: true,
-    },
-    sellerMobile: {
-      type: String,
-      required: true,
-    },
-    sellerName: {
-      type: String,
-      required: true,
-    },
-    msgType: {
-      type: String,
+    jurisdictionList: {
+      type: Object,
       required: true,
+      default: {},
     },
     idAct: {
       type: Number,
@@ -68,11 +57,11 @@ export default {
     /* 无权限申请开通权限 */
     applyAuth() {
       /* 区分是否是潜在用户 */
-      this.haveAuth === 3
+      this.jurisdictionList.HasPermission === 3
         ? uni.navigateTo({
             url: "/pageMy/applyTrial/applyTrial?tryType=Activity&detailId=" + this.idAct,
           })
-        : this.haveAuth === 5
+        : this.jurisdictionList.HasPermission === 5
         ? this.sellerApplyAuth()
         : uni.showModal({
             title: "",
@@ -125,7 +114,8 @@ export default {
     },
   },
   mounted() {
-    this.userIsShowAlert();
+    // 免费送月卡
+    // this.userIsShowAlert();
   },
 };
 </script>

+ 7 - 9
activityPages/activityDetail/manageMixin.js

@@ -2,7 +2,7 @@ import { activity, User } from "@/config/api.js";
 let app = getApp();
 export default {
   methods: {
-    //报名
+    // 报名
     signupAdd(type = 1) {
       if (this.isNeedAddCountryCode) {
         this.isAreaCode = true;
@@ -19,7 +19,6 @@ export default {
           .then((res) => {
             if (res.Ret == 200) {
               this.signupType = res.Data.SignupType;
-              this.signupStatus = res.Data.SignupStatus;
               this.countryCode = res.Data.CountryCode;
               this.mobileEdit = res.Data.Mobile;
               this.goOnNextStep = res.Data.GoFollow;
@@ -47,7 +46,7 @@ export default {
       }
       this.selectShow = false;
     },
-    //取消报名
+    // 取消报名
     signupCancel(type) {
       if (this.detailData.IsSignup == 1) {
         this.isCancelShow = true;
@@ -61,13 +60,12 @@ export default {
         this.signupAdd();
       }
     },
-    //预约/取消
+    // 预约/取消
     async summaryIsHandel() {
       if (this.detailData.IsAppointment == 0) {
         const res = await activity.postAppointmentAdd({ ActivityId: Number(this.id) });
         if (res.Ret == 200) {
           this.signupType = "summaryIsHandel";
-          this.signupStatus = res.Data.SignupStatus;
           this.idTypeCancel = {
             cutId: res.Data.ActivityId,
             state: 1,
@@ -105,7 +103,7 @@ export default {
         });
       }
     },
-    //取消会议提醒接口
+    // 取消会议提醒接口
     meetingReminderCancel() {
       if (this.detailData.IsCancelMeetingReminder == 1) {
         activity
@@ -131,7 +129,7 @@ export default {
         this.meetingReminderAdd();
       }
     },
-    //添加会议提醒
+    // 添加会议提醒
     meetingReminderAdd() {
       activity
         .meetingReminderAdd({
@@ -153,7 +151,7 @@ export default {
           }
         });
     },
-    //我要报名
+    // 我要报名
     wanttosignup() {
       if (this.detailData.IsLimitPeople == 1 && this.detailData.ActivityTypeName == "公司调研电话会") {
         this.selectShow = true;
@@ -161,7 +159,7 @@ export default {
         this.signupAdd(3);
       }
     },
-    //提问
+    // 提问
     askingGo(type = "") {
       uni.navigateTo({
         url: "/activityPages/generationAsk/generationAsk?id=" + this.id + "&type=" + type,

+ 0 - 0
components/activity/index.js → activityPages/components/index.js


+ 82 - 0
activityPages/components/specialMixins.js

@@ -0,0 +1,82 @@
+import { activity, User } from "@/config/api.js";
+export default {
+  data() {
+    return {
+      specialIsHintShow: false, // 按钮的显示
+      specialGoFollowShow: false, // 弹框的隐藏显示
+      specialAccounts: `您已开启【专项调研】新活动通知<br/><br/>请关注【查研观向小助手】公众号,及时获取微信消息提醒`,
+      specialIsFollow: false, // 是否关注
+      specialPopupMsg: "", // 消息的文案
+      show_cancel_button: false, // 取消按钮的隐藏显示
+      show_confirm_button: false, // 确定按钮的隐藏显示
+    };
+  },
+  computed: {},
+  methods: {
+    // 点击小icon
+    reminderTextHandler(item) {
+      this.specialPopupMsg = "";
+      this.specialIsHintShow = true;
+      this.specialGoFollowShow = true;
+      this.specialAccounts = item.Explain;
+    },
+    // 报名或者取消报名
+    async applyOfcancel(item, type = "") {
+      this.show_confirm_button = true;
+      if ((type != "back" && item.IsTrip == 1) || (type == "back" && item.IsSignup == 1)) {
+        // 取消报名
+        const str = item.ActivityTime.replace(/-/g, "/");
+        const date = new Date(str);
+        const times = date.getTime();
+        const num = new Date().getTime();
+        let twoDays = times - num <= 3600000 * 48;
+        uni.showModal({
+          content: twoDays ? "活动开始前48小时内,取消报名仍会维持扣点,确定要取消报名吗?" : "您要取消此次专项调研的预报名吗?",
+          confirmColor: "#3385FF",
+          cancelColor: "#606266",
+          success: async (res) => {
+            if (res.confirm) {
+              const res = await activity.activityApecialCancel({
+                ActivityId: item.ActivityId,
+              });
+              if (res.Ret === 200) {
+                uni.showToast({
+                  title: "已取消",
+                  duration: 2000,
+                });
+                item.TripNum > 0 && (item.TripNum -= 1);
+                type == "back" ? (item.IsSignup = 0) : (item.IsTrip = 0);
+              }
+            }
+          },
+        });
+      } else {
+        // 报名
+        const res = await activity.activityApecialAdd({ ActivityId: item.ActivityId });
+        if (res.Ret == 200) {
+          this.modalShow(res);
+          if (res.Data.SignupStatus == 1) {
+            type == "back" ? (item.IsSignup = 1) : (item.IsTrip = 1);
+          }
+        }
+      }
+    },
+
+    // 弹框的数据重置
+    ininModalHandler() {
+      this.show_cancel_button = false;
+      this.show_confirm_button = false;
+      this.specialIsHintShow = false;
+      this.specialGoFollowShow = false;
+      this.isCancelBtn = false;
+    },
+
+    // 显示弹框
+    modalShow(res) {
+      this.show_confirm_button = true;
+      this.specialGoFollowShow = true;
+      this.specialAccounts = res.Data.PopupMsg;
+      this.specialPopupMsg = res.Data.PopupMsg2;
+    },
+  },
+};

+ 16 - 8
activityPages/editOutbound/editOutbound.vue

@@ -56,13 +56,13 @@
         <rich-text :nodes="content"></rich-text>
       </view>
     </u-modal>
-   <freeCharge class="free-charge" :isShowFreeBtn="isShowFree"/>
+    <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
   </view>
 </template>
 
 <script>
 import { activity } from "@/config/api.js";
-import freeCharge  from '@/components/freeCharge'
+import freeCharge from "@/components/freeCharge";
 export default {
   data() {
     return {
@@ -82,17 +82,21 @@ export default {
     };
   },
   components: {
-    freeCharge
+    freeCharge,
   },
   methods: {
+    // 显示地区的选项
     areaCode() {
       this.areacodeShow = true;
     },
+
+    // 选择了地区
     areacode(code) {
       this.telephone = code;
       this.areacodeShow = false;
     },
-    //提交
+
+    // 提交
     submit() {
       activity
         .addOutboundMobile({
@@ -131,7 +135,8 @@ export default {
           }
         });
     },
-    //取消修改
+
+    // 取消修改
     cancelModification() {
       if (this.identification == "修改") {
         if (this.goOnNextStep == "true") {
@@ -153,17 +158,20 @@ export default {
         uni.navigateBack();
       }
     },
-    //去关注公众号
+
+    // 去关注公众号
     goFollowShowBtn() {
       uni.redirectTo({
         url: "/activityPages/accountsOfficial/accountsOfficial",
       });
     },
-    //弹框的取消
+
+    // 弹框的取消
     cancelDialog() {
       uni.navigateBack();
     },
-    //右上角的返回
+
+    // 右上角的返回
     backArrowleft() {
       if (this.identification == "修改") {
         if (this.goOnNextStep == "true") {

+ 46 - 9
activityPages/playBack/playBack.vue

@@ -22,10 +22,10 @@
           </van-dropdown-item>
         </van-dropdown-menu>
       </view>
-      <text v-for="item in activityTimeList" :key="item.Id" :class="item.IsChoose ? 'active' : ''" @click="isActivityDate(item.Id)">{{ item.StatusName }}</text>
+      <text @click="mediumClickHandler(item)" v-for="item in mediumSelect" :key="item.value" :class="[item.IsChoose ? 'active' : '', 'text-item', 'medium-item']">{{ item.name }}</text>
     </view>
     <!-- 活动列表 -->
-    <view class="collect-ul">
+    <view class="collect-ul" v-if="haveData">
       <view class="collect-ltem" v-for="(item, index) in collectList" :key="index">
         <view class="title-date" @click="goDetail(item)">
           <text :class="item.ActivityType == 1 ? '' : 'xianxia'">{{ item.ActivityType == 1 ? "线上" : "线下" }}</text>
@@ -70,6 +70,10 @@
       </view>
       <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="totalPage > 1" />
     </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 v-if="showAudioBox">
       <audioModule :showAudioPop.sync="showAudioPop" />
     </view>
@@ -106,16 +110,23 @@ export default {
         loading: "加载中",
         nomore: "已经到底了",
       },
+      totalPage: "",
       isShowhasPermission: false, //  联系销售的提交申请
       applyForIsShow: false, // 提交申请
       jurisdictionList: {},
       hasPermission: "", //权限
+      mediumSelect: [
+        { name: "视频", value: 1, IsChoose: false },
+        { name: "音频", value: 2, IsChoose: false },
+      ],
+      mediumActive: "",
+      haveData: true,
     };
   },
   mixins: [mediaMixins],
   components: { audioModule, modalDialog, videoModule },
   methods: {
-    //获取活动
+    // 获取活动
     async getActivityList() {
       const res = await activity.getActivityListNew({
         PageSize: this.pageSize,
@@ -124,9 +135,11 @@ export default {
         PlayBack: 1,
         IsShowJurisdiction: this.isGetJurisdiction,
         ChartPermissionIds: this.chartPermissionIds,
+        Filter: this.mediumActive == "1,2" || !this.mediumActive ? 0 : Number(this.mediumActive),
       });
       if (res.Ret === 200) {
         this.status = this.page_no < res.Data.Paging.Pages ? "loadmore" : "nomore";
+        this.totalPage = res.Data.Paging.Pages; //总页数
         if (this.page_no === 1) {
           this.collectList = res.Data.List || [];
           this.haveData = this.collectList.length ? true : false;
@@ -139,6 +152,7 @@ export default {
         }
       }
     },
+    // 获取权限 、行业的接口
     async getUserSearchContent() {
       const res = await activity.getUserSearchContent({
         IsShowJurisdiction: this.isGetJurisdiction,
@@ -149,7 +163,8 @@ export default {
         this.clickPermission();
       }
     },
-    //是否有权限的点击事件
+
+    // 是否有权限的点击事件
     async permissioActivity() {
       if (!this.$store.state.isAuth && !this.$store.state.isBind) {
         this.selectComponent("#industry").toggle(false);
@@ -169,7 +184,8 @@ export default {
         });
       }
     },
-    //点击后有权限的
+
+    // 点击后有权限的
     clickPermission() {
       if (this.isShowJurisdiction) {
         const arr = [];
@@ -182,11 +198,12 @@ export default {
         this.chartPermissionIds = arr.join(",");
       }
     },
-    //去往详情页面
+
+    // 去往详情页面
     goDetail(item) {
       this.$store.dispatch("checkHandle", "/activityPages/activityDetail/activityDetail?id=" + item.ActivityId);
     },
-    //下拉选择的确定事件
+    // 下拉选择的确定事件
     replacementConfirm() {
       const arr = [];
       const str = [];
@@ -206,6 +223,7 @@ export default {
       this.getActivityList();
       this.selectComponent("#industry").toggle(false);
     },
+
     // 下拉的选择的重置事件
     replacementBtn() {
       this.chartPermissionIds = "";
@@ -214,11 +232,26 @@ export default {
       this.chartPermissionName = "所有行业";
       this.getActivityList();
     },
+
     // 选择的选中事件
     overallClick(item) {
       if (this.isShowJurisdiction) return;
       item.IsChoose = !item.IsChoose;
     },
+    // 点击视频 、音频 的筛选
+    mediumClickHandler(item) {
+      item.IsChoose = !item.IsChoose;
+      let arr = [];
+      this.mediumSelect.forEach((item) => {
+        if (item.IsChoose) {
+          arr.push(item.value);
+        }
+      });
+      this.mediumActive = arr.join(",");
+      console.log(this.mediumActive);
+      this.page_no = 1;
+      this.getActivityList();
+    },
   },
 
   onLoad() {
@@ -296,6 +329,7 @@ export default {
     color: #333;
     display: flex;
     align-items: center;
+    justify-content: space-between;
     .text-item {
       width: 150rpx;
       text-align: center;
@@ -303,7 +337,10 @@ export default {
       box-sizing: border-box;
       border-radius: 26rpx;
       background-color: #f8f8fa;
-      margin-right: 20rpx;
+      // margin-right: 20rpx;
+    }
+    .medium-item {
+      width: 135rpx;
     }
     .active {
       background-color: #3385ff;
@@ -363,7 +400,7 @@ export default {
 /deep/.van-dropdown-menu__item {
   box-sizing: border-box;
   width: 190rpx;
-  margin-right: 40rpx;
+  // margin-right: 20rpx;
   padding-right: 20rpx;
   height: 51rpx;
   border-radius: 26rpx;

+ 81 - 47
activityPages/specialDetail/specialDetail.vue

@@ -5,7 +5,7 @@
         <view class="notice">
           <van-notice-bar color="#FFFFFF" background="#FE9000" text="专项调研行程持续更新中,满五家即开团,欢迎点击感兴趣预报名" />
         </view>
-        <view class="inform-btn" @click="specialFollow">{{ isFollow ? "取消通知" : "新调研通知" }}</view>
+        <view class="inform-btn" @click="specialFollow">{{ specialIsFollow ? "取消通知" : "新调研通知" }}</view>
       </view>
       <view class="content">
         <view class="dialog-title" :class="1 == 1 ? 'brackets-title' : ''">{{ detailData.ResearchTheme }}</view>
@@ -17,7 +17,11 @@
           <view class="network-left">所属行业:</view>
           <view class="network-right">{{ detailData.ChartPermissionName }}</view>
         </view>
-        <view class="network">
+        <view class="network" v-if="detailData.TripStatus == 2">
+          <view class="network-left">开始时间:</view>
+          <view class="network-right">{{ detailData.ActivityTimeTextByDay }}</view>
+        </view>
+        <view class="network" v-else>
           <view class="network-left">预期时间:</view>
           <view class="network-right">{{ detailData.ActivityTimeText }}</view>
         </view>
@@ -44,6 +48,11 @@
             <view class="network-right">{{ detailData.Label }}</view>
           </view>
         </block>
+        <view class="reminder-item">
+          <image v-if="detailData.TripStatus == 1" class="item" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Y_apply.png"></image>
+          <image v-if="detailData.TripStatus == 2" class="item" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/confirm_XC.png"></image>
+          <image v-if="detailData.Explain" @click="reminderTextHandler(detailData)" class="reminder" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/reminder_icon.png"></image>
+        </view>
       </view>
       <view class="" style="height: 50rpx"></view>
       <view class="look-Trip" @click="lookImg">
@@ -51,27 +60,41 @@
         <van-icon name="arrow" />
       </view>
       <view class="interest-btn">
-        <text class="button" v-if="detailData.IsSignup !== 1" @click="interest">感兴趣</text>
-        <text class="button" @click="beNotInterested" v-else>已预报名</text>
+        <block v-if="detailData.TripStatus == 2">
+          <text v-if="detailData.ActiveState == 1" class="button" @click="applyOfcancel(detailData)">
+            {{ detailData.IsTrip == 0 ? `我要报名(${detailData.TripNum}/${detailData.LimitPeopleNum})` : "取消报名" }}
+          </text>
+        </block>
+        <block v-else>
+          <text class="button" v-if="detailData.IsSignup !== 1" @click="interest">感兴趣</text>
+          <text class="button" @click="beNotInterested" v-else>已预报名</text>
+        </block>
       </view>
     </view>
     <!-- 权限部分 -->
     <view v-else>
-      <jurisdiction :idAct="id" :haveAuth="haveAuth" :industryMsg="industryMsg" :msgType="msgType" :sellerMobile="sellerMobile" :sellerName="sellerName"></jurisdiction>
+      <jurisdiction :idAct="id" :jurisdictionList="jurisdictionList"></jurisdiction>
     </view>
     <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
     <u-modal
-      v-model="goFollowShow"
+      v-model="specialGoFollowShow"
       :content-style="{ fontSize: '32rpx' }"
-      :show-cancel-button="false"
+      :show-cancel-button="show_cancel_button"
       confirm-text="知道了"
-      @cancel="isCancelBtn = false"
+      :show-confirm-button="show_confirm_button"
       :show-title="false"
       :cancel-style="{ borderRight: '1rpx solid #EBEBEB' }"
       :confirm-style="{ fontWeight: '700' }"
+      :mask-close-able="specialIsHintShow"
+      @confirm="ininModalHandler"
+      @cancel="ininModalHandler"
     >
       <view class="slot-content">
-        <rich-text :nodes="accounts"></rich-text>
+        <block v-if="specialPopupMsg">
+          <text>{{ specialAccounts }}</text>
+          <text class="light-hint">{{ specialPopupMsg }}</text>
+        </block>
+        <rich-text v-else :nodes="specialAccounts"></rich-text>
       </view>
     </u-modal>
   </view>
@@ -81,6 +104,7 @@
 import { activity, User } from "@/config/api.js";
 import jurisdiction from "../activityDetail/jurisdiction/components.vue";
 import freeCharge from "@/components/freeCharge";
+import specialMixins from "../components/specialMixins";
 let app = getApp({ allowDefault: true });
 export default {
   data() {
@@ -88,45 +112,31 @@ export default {
       id: "",
       detailData: {},
       haveAuth: "",
-      industryMsg: "",
-      sellerMobile: "",
-      sellerName: "", //销售名称
-      msgType: "",
-      isFollow: false,
-      accounts: `您已开启【专项调研】新活动通知<br/><br/>请关注【查研观向小助手】公众号,及时获取微信消息提醒`,
-      goFollowShow: false,
+      specialIsFollow: false,
+      jurisdictionList: {},
     };
   },
   components: {
     jurisdiction,
     freeCharge,
   },
-  watch: {
-    haveAuth: {
-      handler() {
-        //上传页面统计
-        // if (this.haveAuth == 1) {
-        //   this.$store.dispatch("statistics", { PageType: "ActivitParticulars", DetailId: this.id });
-        // }
-      },
-      immediate: true,
-    },
-  },
+  mixins: [specialMixins],
+
   methods: {
+    // 获取详情
     async getActivityDetail() {
       const res = await activity.getSpecialDetailList({ ActivityId: this.id });
       if (res.Ret == 200) {
-        this.isFollow = res.Data.IsFollow;
+        this.specialIsFollow = res.Data.IsFollow;
         this.haveAuth = res.Data.HasPermission;
-        this.industryMsg = res.Data.PopupMsg;
-        this.sellerMobile = res.Data.SellerMobile;
-        this.sellerName = res.Data.SellerName;
-        this.msgType = res.Data.MsgType;
+        this.jurisdictionList = res.Data;
+        this.jurisdictionList.Type = "专项调研";
         if (res.Data.HasPermission == 1) {
           this.detailData = res.Data.Detail;
         }
       }
     },
+
     //感兴趣
     async interest() {
       const res = await activity.postSpecialSignupAdd({
@@ -135,15 +145,11 @@ export default {
       if (res.Ret === 200) {
         this.detailData.IsSignup = 1;
         this.currentPages();
-        uni.showModal({
-          content: "预报名成功,已通知您的销售",
-          confirmText: "知道了",
-          showCancel: false,
-          confirmColor: "#3385FF",
-        });
+        this.modalShow(res);
       }
     },
-    //已预报名、就是不感兴趣
+
+    // 已预报名、就是不感兴趣
     beNotInterested() {
       uni.showModal({
         content: "您要取消此次专研调研的预报名吗?",
@@ -162,6 +168,8 @@ export default {
         },
       });
     },
+
+    // 控制列表页面的状态
     currentPages() {
       let pages = getCurrentPages();
       let prevPage = pages[pages.length - 2];
@@ -171,15 +179,17 @@ export default {
         prevPage.$vm.collectList[index].IsSignup = this.detailData.IsSignup;
       }
     },
-    //查看行程的事件
+
+    // 查看行程的事件
     lookImg() {
       uni.previewImage({
         urls: [this.detailData.TripImgLink], //查看图片的数组
       });
     },
+
     //新调研通知
     async specialFollow() {
-      if (this.isFollow) {
+      if (this.specialIsFollow) {
         uni.showModal({
           content: "您要取消【专项调研】新活动通知吗?",
           confirmColor: "#3385FF",
@@ -188,7 +198,7 @@ export default {
             if (res.confirm) {
               const res = await activity.postSpecialFollow();
               if (res.Ret === 200) {
-                this.isFollow = !this.isFollow;
+                this.specialIsFollow = !this.specialIsFollow;
               }
             }
           },
@@ -196,14 +206,14 @@ export default {
       } else {
         const res = await activity.postSpecialFollow();
         if (res.Ret === 200) {
-          this.isFollow = !this.isFollow;
-          this.goFollowShow = true;
+          this.specialIsFollow = !this.specialIsFollow;
+          this.specialGoFollowShow = true;
         }
       }
     },
   },
   onLoad(option) {
-    this.id = option.id || '';
+    this.id = option.id || "";
   },
   async onShow() {
     await this.$store.dispatch("checkHandle");
@@ -278,6 +288,7 @@ export default {
     margin-bottom: -20rpx;
     color: #333333;
     font-size: 28rpx;
+    position: relative;
     view {
       padding-left: 20rpx;
     }
@@ -292,7 +303,27 @@ export default {
       display: inline-block;
       color: #2c83ff;
     }
-
+    .reminder-item {
+      position: absolute;
+      top: 0;
+      right: 0;
+      width: 204rpx;
+      height: 118rpx;
+      z-index: 9;
+      .item {
+        width: 100%;
+        height: 100%;
+      }
+      .reminder {
+        position: absolute;
+        top: 0rpx;
+        right: 0rpx;
+        width: 28rpx;
+        height: 28rpx;
+        z-index: 10;
+        padding: 10rpx 10rpx 20rpx 20rpx;
+      }
+    }
     .dialog-title {
       width: 682rpx;
       padding: 20rpx;
@@ -328,7 +359,10 @@ export default {
       }
     }
   }
-
+  .light-hint {
+    color: #999;
+    font-size: 24rpx;
+  }
   .network {
     margin-bottom: 30rpx;
     padding: 0 !important;

+ 55 - 30
activityPages/specialResearchPage/specialResearchPage.vue

@@ -2,9 +2,9 @@
   <view class="container special-research">
     <view class="top-notice">
       <view class="notice">
-        <van-notice-bar color="#FFFFFF" background="#FE9000" text="专项调研行程持续更新中,满五家即开团,欢迎点击感兴趣预报名" />
+        <van-notice-bar color="#FFFFFF" background="#FE9000" :text="wholeShowListData.ActivitySpecialExplain" />
       </view>
-      <view class="inform-btn" @click="specialFollow">{{ isFollow ? "取消通知" : "新调研通知" }}</view>
+      <view class="inform-btn" @click="specialFollow">{{ specialIsFollow ? "取消通知" : "新调研通知" }}</view>
     </view>
     <!-- 活动列表 -->
     <view>
@@ -19,21 +19,38 @@
           </view>
           <view class="item-li">
             <view class="item-img" @click="goDetail(item)">
-              <image :src="item.ImgUrl" />
+              <image :src="item.ImgUrl"> </image>
+              <text v-if="item.ActiveState == 1" class="img-status begin">未开始</text>
+              <text v-else-if="item.ActiveState == 2" class="img-status proceed">进行中</text>
+              <text v-else-if="item.ActiveState == 0 && item.TripStatus == 2" class="img-status">已结束</text>
             </view>
             <view class="item">
               <view class="item-text" @click="goDetail(item)">
                 <text class="activity-title"> {{ item.ResearchTheme }} </text>
-                <text class="text_twoLine">预期时间:{{ item.ActivityTimeText }} </text>
+                <view style="display: flex" class="text_twoLine" v-if="item.TripStatus == 2">
+                  <text style="flex-shrink: 0"> 活动时间:</text>
+                  <text> {{ item.ActivityTimeTextByDay }}</text>
+                </view>
+                <text class="text_twoLine" v-else>预期时间:{{ item.ActivityTimeText }} </text>
               </view>
               <view class="bottom-box">
                 <view class="" style="width: 130rpx"> </view>
                 <text @click="lookImg(item)">行程安排</text>
-                <text class="button" v-if="item.IsSignup !== 1" @click="interest(item)">感兴趣</text>
-                <text class="button" @click="beNotInterested(item)" v-else>已预报名</text>
+                <block v-if="item.TripStatus == 2">
+                  <text v-if="item.ActiveState == 1" class="button" @click="applyOfcancel(item)">{{ item.IsTrip == 0 ? "我要报名" : "取消报名" }}</text>
+                </block>
+                <block v-else>
+                  <text class="button" v-if="item.IsSignup !== 1" @click="interest(item)">感兴趣</text>
+                  <text class="button" @click="beNotInterested(item)" v-else>已预报名</text>
+                </block>
               </view>
             </view>
           </view>
+          <view class="reminder-item">
+            <image v-if="item.TripStatus == 1" class="item" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Y_apply.png"></image>
+            <image v-if="item.TripStatus == 2" class="item" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/confirm_XC.png"></image>
+            <image v-if="item.Explain" @click="reminderTextHandler(item)" class="reminder" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/reminder_icon.png"></image>
+          </view>
         </view>
         <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="totalPage > 1" />
       </view>
@@ -42,17 +59,24 @@
     </view>
     <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
     <u-modal
-      v-model="goFollowShow"
+      v-model="specialGoFollowShow"
       :content-style="{ fontSize: '32rpx' }"
-      :show-cancel-button="false"
+      :show-cancel-button="show_cancel_button"
       confirm-text="知道了"
-      @cancel="isCancelBtn = false"
+      :show-confirm-button="show_confirm_button"
       :show-title="false"
       :cancel-style="{ borderRight: '1rpx solid #EBEBEB' }"
       :confirm-style="{ fontWeight: '700' }"
+      :mask-close-able="specialIsHintShow"
+      @confirm="ininModalHandler"
+      @cancel="ininModalHandler"
     >
       <view class="slot-content">
-        <rich-text :nodes="accounts"></rich-text>
+        <block v-if="specialPopupMsg">
+          <text>{{ specialAccounts }}</text>
+          <text class="light-hint">{{ specialPopupMsg }}</text>
+        </block>
+        <rich-text v-else :nodes="specialAccounts"></rich-text>
       </view>
     </u-modal>
   </view>
@@ -62,6 +86,7 @@
 import { activity, User } from "@/config/api.js";
 import { Throttle } from "@/config/util.js";
 import freeCharge from "@/components/freeCharge";
+import specialMixins from "../components/specialMixins";
 export default {
   data() {
     return {
@@ -75,23 +100,21 @@ export default {
         loading: "加载中",
         nomore: "已经到底了",
       },
-      isFollow: false,
-      accounts: `您已开启【专项调研】新活动通知<br/><br/>请关注【查研观向小助手】公众号,及时获取微信消息提醒`,
-      goFollowShow: false,
     };
   },
+  mixins: [specialMixins],
   components: {
     freeCharge,
   },
   methods: {
-    //获取事件
+    // 获取事件
     async getActivityList() {
       const res = await activity.getSpecialList({
         PageSize: this.pageSize,
         CurrentIndex: this.page_no,
       });
       if (res.Ret === 200) {
-        this.isFollow = res.Data.IsFollow;
+        this.specialIsFollow = res.Data.IsFollow;
         this.status = this.page_no < res.Data.Paging.Pages ? "loadmore" : "nomore";
         if (this.page_no === 1) {
           this.collectList = res.Data.List || [];
@@ -104,32 +127,31 @@ export default {
         }
       }
     },
-    //查看行程的事件
+
+    // 查看行程的事件
     lookImg(item) {
       uni.previewImage({
         urls: [item.TripImgLink], //查看图片的数组
       });
     },
-    //去往详情页面
+
+    // 去往详情页面
     goDetail(item) {
       this.$store.dispatch("checkHandle", "/activityPages/specialDetail/specialDetail?id=" + item.ActivityId);
     },
-    //感兴趣
+
+    // 点击感兴趣
     async interest(item) {
       const res = await activity.postSpecialSignupAdd({
         ActivityId: item.ActivityId,
       });
       if (res.Ret === 200) {
         item.IsSignup = 1;
-        uni.showModal({
-          content: "预报名成功,已通知您的销售",
-          confirmText: "知道了",
-          showCancel: false,
-          confirmColor: "#3385FF",
-        });
+        this.modalShow(res);
       }
     },
-    //已预报名、就是不感兴趣
+
+    // 已预报名、就是不感兴趣
     beNotInterested(item) {
       uni.showModal({
         content: "您要取消此次专研调研的预报名吗?",
@@ -147,9 +169,11 @@ export default {
         },
       });
     },
-    //新调研通知
+
+    // 新调研通知
     async specialFollow() {
-      if (this.isFollow) {
+      this.show_confirm_button = true;
+      if (this.specialIsFollow) {
         uni.showModal({
           content: "您要取消【专项调研】新活动通知吗?",
           confirmColor: "#3385FF",
@@ -158,7 +182,7 @@ export default {
             if (res.confirm) {
               const res = await activity.postSpecialFollow();
               if (res.Ret === 200) {
-                this.isFollow = !this.isFollow;
+                this.specialIsFollow = !this.specialIsFollow;
               }
             }
           },
@@ -166,8 +190,9 @@ export default {
       } else {
         const res = await activity.postSpecialFollow();
         if (res.Ret === 200) {
-          this.isFollow = !this.isFollow;
-          this.goFollowShow = true;
+          this.show_cancel_button = true;
+          this.specialIsFollow = !this.specialIsFollow;
+          this.specialGoFollowShow = true;
         }
       }
     },

+ 6 - 4
activityPages/themeActivity/themeActivity.vue

@@ -79,13 +79,11 @@
         :isShow="isShow"
         :signupType="signupType"
         :goFollow="goFollow"
-        :signupStatus="signupStatus"
         :hasPermission="hasPermission"
         :jurisdictionList="jurisdictionList"
         :editIsShow="editIsShow"
         :isCancelShow="isCancelShow"
         :idTypeCancel="idTypeCancel"
-        @cancelShowBtn="cancelEnsure"
         :countryCode="countryCode"
         :mobileEdit="mobileEdit"
         :goOnNextStep="goOnNextStep"
@@ -103,7 +101,7 @@
 import { activity, User } from "@/config/api.js";
 import { Throttle } from "@/config/util.js";
 import modalDialog from "@/components/modalDialog.vue";
-import myMixin from "@/components/activity/index.js";
+import myMixin from "../components/index.js";
 import myActivityMixin from "@/components/activity/indexActivity.js";
 import areaCode from "@/components/activity/areaCode.vue";
 import freeCharge from "@/components/freeCharge";
@@ -128,6 +126,7 @@ export default {
     freeCharge,
   },
   methods: {
+    // 获取列表数据
     async getActivityList() {
       const res = await activity.getActivityListNew({
         PageSize: this.pageSize,
@@ -159,7 +158,8 @@ export default {
         }
       }
     },
-    //获取是否需要填写区号接口
+
+    // 获取是否需要填写区号接口
     countryCcode() {
       User.countryCcode().then((res) => {
         if (res.Ret == 200) {
@@ -167,6 +167,8 @@ export default {
         }
       });
     },
+
+    // 点击了top的标签
     jumpHandler() {
       if (this.contentDetail.IsJump) {
         if (this.contentDetail.IsResearch) {

+ 12 - 42
components/activity/indexActivity.js

@@ -26,15 +26,8 @@ export default {
       isShow: false, //弹框
       signupType: "", //关注类型
       goFollow: false, //是否关注公众号
-      signupStatus: "Success", //4个不同的类型提示文案
       hasPermission: "", //是否有权限
-      jurisdictionList: {
-        SellerMobile: "",
-        PopupMsg: "",
-        OperationMode: "",
-        SellerName: "",
-        ActivityId: "",
-      },
+      jurisdictionList: {},
       editIsShow: false, //外呼莫泰框
       isCancelShow: false,
       idTypeCancel: {
@@ -140,13 +133,11 @@ export default {
             .then((res) => {
               if (res.Ret == 200) {
                 this.hasPermission = res.Data.HasPermission;
-                this.jurisdictionList.ActivityId = res.Data.ActivityId;
-
+                this.jurisdictionList = res.Data;
                 if (this.hasPermission == 1) {
                   const index = this.collectList.findIndex((key) => key.ActivityId == id);
                   this.collectList[index].SignupType = type;
                   this.signupType = valName == "CClass" ? "CClass" : res.Data.SignupType;
-                  this.signupStatus = res.Data.SignupStatus;
                   this.countryCode = res.Data.CountryCode;
                   this.mobileEdit = res.Data.Mobile;
                   this.goOnNextStep = res.Data.GoFollow;
@@ -166,21 +157,13 @@ export default {
                     } else if (res.Data.GoFollow) {
                       this.goFollow = res.Data.GoFollow;
                     } else if (res.Data.SignupStatus == "Success") {
-                      this.collectList.findIndex((key) => {
-                        if (key.ActivityId == id) {
-                          key.IsSignup = 1;
-                        }
-                      });
                       this.isShow = true;
                     }
+                    item.IsSignup = 1;
                   }
                 } else if (this.hasPermission == 2) {
-                  this.jurisdictionList.SellerMobile = res.Data.SellerMobile;
-                  this.jurisdictionList.SellerName = res.Data.SellerName;
-                  this.jurisdictionList.PopupMsg = res.Data.PopupMsg;
                   this.isShowhasPermission = true;
                 } else if (this.hasPermission == 3 || this.hasPermission == 4 || this.hasPermission == 5) {
-                  this.jurisdictionList.PopupMsg = res.Data.PopupMsg;
                   this.applyForIsShow = true;
                 }
               }
@@ -195,7 +178,6 @@ export default {
     init() {
       this.signupType = "";
       this.goFollow = false;
-      this.signupStatus = "";
       this.isShow = false;
       this.isCancelShow = false;
     },
@@ -212,7 +194,7 @@ export default {
         .then((res) => {
           if (res.Ret == 200) {
             this.hasPermission = res.Data.HasPermission;
-            this.jurisdictionList.ActivityId = res.Data.ActivityId;
+            this.jurisdictionList = res.Data;
             if (this.hasPermission == 1) {
               if ((res.Data.GoFollow && res.Data.SignupStatus !== "Success") || !res.Data.GoFollow) {
                 this.isShow = true;
@@ -220,7 +202,6 @@ export default {
                 this.goFollow = res.Data.GoFollow;
               }
               this.signupType = 999;
-              this.signupStatus = res.Data.SignupStatus;
               this.idTypeCancel = {
                 cutId: res.Data.ActivityId,
                 state: 1,
@@ -232,12 +213,8 @@ export default {
                 }
               });
             } else if (this.hasPermission == 2) {
-              this.jurisdictionList.SellerMobile = res.Data.SellerMobile;
-              this.jurisdictionList.SellerName = res.Data.SellerName;
-              this.jurisdictionList.PopupMsg = res.Data.PopupMsg;
               this.isShowhasPermission = true;
             } else if (this.hasPermission == 3 || this.hasPermission == 4 || this.hasPermission == 5) {
-              this.jurisdictionList.PopupMsg = res.Data.PopupMsg;
               this.applyForIsShow = true;
             }
           }
@@ -276,18 +253,14 @@ export default {
       const res = await activity.checkAskActivity({ ActivityId: item.ActivityId });
       if (res.Ret == 200) {
         this.hasPermission = res.Data.HasPermission;
-        this.jurisdictionList.ActivityId = res.Data.ActivityId;
+        this.jurisdictionList = res.Data;
         if (this.hasPermission == 1) {
           uni.navigateTo({
             url: "/activityPages/generationAsk/generationAsk?id=" + item.ActivityId + "&type=" + type,
           });
         } else if (this.hasPermission == 2) {
-          this.jurisdictionList.SellerMobile = res.Data.SellerMobile;
-          this.jurisdictionList.SellerName = res.Data.SellerName;
-          this.jurisdictionList.PopupMsg = res.Data.PopupMsg;
           this.isShowhasPermission = true;
         } else if (this.hasPermission == 3 || this.hasPermission == 4 || this.hasPermission == 5) {
-          this.jurisdictionList.PopupMsg = res.Data.PopupMsg;
           this.applyForIsShow = true;
         }
       }
@@ -296,7 +269,6 @@ export default {
     init() {
       this.signupType = "";
       this.goFollow = false;
-      this.signupStatus = "";
       this.isShow = false;
       this.isCancelShow = false;
     },
@@ -306,11 +278,9 @@ export default {
         const res = await activity.postAppointmentAdd({ ActivityId: item.ActivityId });
         if (res.Ret == 200) {
           this.hasPermission = res.Data.HasPermission;
-          this.jurisdictionList.ActivityId = res.Data.ActivityId;
+          this.jurisdictionList = res.Data;
           if (this.hasPermission == 1) {
-            item.IsAppointment = 1;
             this.signupType = "summaryIsHandel";
-            this.signupStatus = res.Data.SignupStatus;
             this.goOnNextStep = res.Data.GoFollow;
             if (res.Data.SignupStatus !== "Success") {
               this.isShow = true;
@@ -320,14 +290,11 @@ export default {
               } else if (res.Data.SignupStatus == "Success") {
                 this.isShow = true;
               }
+              item.IsAppointment = 1;
             }
           } else if (this.hasPermission == 2) {
-            this.jurisdictionList.SellerMobile = res.Data.SellerMobile;
-            this.jurisdictionList.SellerName = res.Data.SellerName;
-            this.jurisdictionList.PopupMsg = res.Data.PopupMsg;
             this.isShowhasPermission = true;
           } else if (this.hasPermission == 3 || this.hasPermission == 4 || this.hasPermission == 5) {
-            this.jurisdictionList.PopupMsg = res.Data.PopupMsg;
             this.applyForIsShow = true;
           }
         }
@@ -351,10 +318,13 @@ export default {
         });
       }
     },
-    cancelEnsure() {},
     //去往详情页面
     goDetail(item) {
-      this.$store.dispatch("checkHandle", "/activityPages/activityDetail/activityDetail?id=" + item.ActivityId);
+      if (item.SourceType && item.SourceType == 2) {
+        this.$store.dispatch("checkHandle", "/activityPages/specialDetail/specialDetail?id=" + item.ActivityId);
+      } else {
+        this.$store.dispatch("checkHandle", "/activityPages/activityDetail/activityDetail?id=" + item.ActivityId);
+      }
     },
   },
 };

+ 200 - 144
components/activity/indexActivity.scss

@@ -1,168 +1,224 @@
 .collect-ul {
-    padding: 0 34rpx;
-  
-    .collect-ltem {
-      width: 682rpx;
-      height: 390rpx;
-      background: #ffffff;
-      box-shadow: 0rpx 3rpx 6rpx rgba(141, 141, 141, 0.16);
-      border-radius: 16rpx;
-      padding: 0 20rpx 20rpx;
-      margin-top: 30rpx;
+  padding: 0 34rpx;
+
+  .collect-ltem {
+    width: 682rpx;
+    height: 390rpx;
+    background: #ffffff;
+    box-shadow: 0rpx 3rpx 6rpx rgba(141, 141, 141, 0.16);
+    border-radius: 16rpx;
+    padding: 0 20rpx 20rpx;
+    margin-top: 30rpx;
+  }
+
+  .title-date {
+    height: 90rpx;
+    display: flex;
+    align-items: center;
+    font-size: 28rpx;
+    color: #333;
+    border-bottom: 1px solid #e5e5e5;
+
+    text {
+      background: linear-gradient(264deg, #01baff 0%, #0044ff 100%);
+      width: 95rpx;
+      height: 40rpx;
+      text-align: center;
+      margin-right: 20rpx;
+      font-size: 24rpx;
+      line-height: 40rpx;
+      color: #fff;
+      border-radius: 8rpx;
     }
-  
-    .title-date {
-      height: 90rpx;
-      display: flex;
-      align-items: center;
-      font-size: 28rpx;
-      color: #333;
-      border-bottom: 1px solid #e5e5e5;
-  
-      text {
-        background: linear-gradient(264deg, #01baff 0%, #0044ff 100%);
+
+    .xianxia {
+      background: linear-gradient(264deg, #ff8801 0%, #ffb950 100%);
+    }
+  }
+
+  .item-li {
+    display: flex;
+    padding: 20rpx 0 16rpx;
+
+    .item-img {
+      flex-shrink: 0;
+      width: 191rpx;
+      height: 254rpx;
+      border-radius: 8rpx;
+      overflow: hidden;
+      position: relative;
+      background: #efefef;
+
+      image {
+        width: 100%;
+        height: 100%;
+      }
+
+      .img-type {
+        position: absolute;
+        top: 0;
+        left: 0;
+        color: #fff;
+        height: 100%;
+        width: 100%;
+
+        image {
+          height: 100%;
+          width: 100%;
+        }
+      }
+
+      .img-status {
+        position: absolute;
+        top: 0;
+        left: 0;
         width: 95rpx;
         height: 40rpx;
+        background: #c9c9c9;
+        border-radius: 8rpx 0rpx 8rpx 0rpx;
+        font-size: 20rpx;
         text-align: center;
-        margin-right: 20rpx;
-        font-size: 24rpx;
         line-height: 40rpx;
         color: #fff;
-        border-radius: 8rpx;
+        z-index: 5;
       }
-  
-      .xianxia {
-        background: linear-gradient(264deg, #ff8801 0%, #ffb950 100%);
+
+      .proceed {
+        background-color: #ffb54a;
+      }
+
+      .begin {
+        background-color: #01a7ff;
       }
     }
-  
-    .item-li {
+
+    .item {
+      width: 450rpx;
       display: flex;
-      padding: 20rpx 0 16rpx;
-      .item-img {
-        flex-shrink: 0;
-        width: 191rpx;
-        height: 254rpx;
-        border-radius: 8rpx;
-        overflow: hidden;
-        position: relative;
-        background: #efefef;
-        image {
-          width: 100%;
-          height: 100%;
-        }
-        .img-type {
-            position: absolute;
-            top: 0;
-            left: 0;
-            color: #fff;
-            height: 100%;
-            width: 100%;
-            image {
-                height: 100%;
-                width: 100%;
-            }
-          }
-        .img-status {
-          position: absolute;
-          top: 0;
-          left: 0;
-          width: 95rpx;
-          height: 40rpx;
-          background: #c9c9c9;
-          border-radius: 8rpx 0rpx 8rpx 0rpx;
-          font-size: 20rpx;
-          text-align: center;
-          line-height: 40rpx;
-          color: #fff;
-          z-index: 5;
-        }
-        .proceed {
-          background-color: #ffb54a;
-        }
-        .begin {
-          background-color: #01a7ff;
+      flex-direction: column;
+      justify-content: space-between;
+      padding-left: 20rpx;
+      font-size: 28rpx;
+      color: #666666;
+
+      .item-text {
+        min-height: 200rpx;
+
+        .activity-title {
+          color: #333333;
+          font-weight: 700;
+          margin-bottom: 20rpx;
         }
       }
-  
-      .item {
-        width: 450rpx;
+    }
+
+    .real-time {
+      justify-content: flex-end !important;
+    }
+
+    .bottom-box {
+      display: flex;
+      justify-content: flex-end;
+      align-items: center;
+      color: #3385FF;
+      overflow: hidden;
+      overflow-x: auto;
+
+      text {
         display: flex;
-        flex-direction: column;
-        justify-content: space-between;
-        padding-left: 20rpx;
-        font-size: 28rpx;
-        color: #666666;
-        .item-text {
-          min-height: 200rpx;
-          .activity-title {
-            color: #333333;
-            font-weight: 700;
-            margin-bottom: 20rpx;
-          }
-        }
+        align-items: center;
+        justify-content:center;
+        width: 113rpx;
+        height: 42rpx;
+        background: #ffffff;
+        border: 2rpx solid #3385ff;
+        border-radius: 4rpx;
+        font-size: 24rpx;
+        flex-shrink: 0;
+        margin-right: 20rpx;
       }
-      .real-time{
-        justify-content: flex-end !important;
+
+      text:last-child {
+        margin-right: 0rpx !important;
+      }
+
+      image {
+        width: 27rpx;
+        height: 32rpx;
+        margin-right: 12rpx;
+      }
+
+      .button {
+        background: #3385ff;
+        color: #fff;
       }
-      .bottom-box {
+    }
+
+    .city {
+      justify-content: space-between !important;
+
+      .city-img {
         display: flex;
-        justify-content:flex-end;
         align-items: center;
-        color: #3385FF;
-        overflow: hidden;
-        overflow-x:auto;
-        text {
-          width: 113rpx;
-          height: 42rpx;
-          background: #ffffff;
-          border: 2rpx solid #3385ff;
-          border-radius: 4rpx;
-          text-align: center;
-          line-height: 40rpx;
-          font-size: 24rpx;
-          flex-shrink: 0;
-          margin-right: 20rpx;
-        }
-        text:last-child {
-          margin-right: 0rpx !important;
-        }
-        image {
-          width: 27rpx;
-          height: 32rpx;
-          margin-right: 12rpx;
-        }
-        .button {
-          background: #3385ff;
-          color: #fff;
-        }
-      }
-      .city {
-        justify-content: space-between !important;
-        .city-img {
-          display: flex;
-          align-items: center;
-          width:113rpx ;
-        }
+        width: 113rpx;
       }
     }
   }
-  .expert-item {
-    justify-content:flex-start !important;
+}
+
+.expert-item {
+  justify-content: flex-start !important;
+}
+
+.four-btn {
+  justify-content: space-between !important;
+
+  text:last-child {
+    margin-right: 20rpx !important;
   }
-  .four-btn {
-    justify-content:space-between !important;
-    text:last-child {
-      margin-right: 20rpx !important;
-    }
+}
+
+.select-box {
+  width: 100%;
+
+  view {
+    height: 95prx;
+    line-height: 95rpx;
+    text-align: center;
+    font-size: 32rpx;
+    border-bottom: 1rpx solid #ebebeb;
   }
-  .select-box {
-    width: 100%;
-    view {
-      height: 95prx;
-      line-height: 95rpx;
-      text-align: center;
-      font-size: 32rpx;
-      border-bottom: 1rpx solid #ebebeb;
+}
+
+.light-hint {
+  color: #999;
+  font-size: 24rpx;
+}
+
+.collect-ltem {
+  position: relative;
+
+  .reminder-item {
+    position: absolute;
+    top: 0;
+    right: 0;
+    width: 204rpx;
+    height: 118rpx;
+    z-index: 9;
+
+    .item {
+      width: 100%;
+      height: 100%;
+    }
+
+    .reminder {
+      position: absolute;
+      top: 0rpx;
+      right: 0rpx;
+      width: 28rpx;
+      height: 28rpx;
+      z-index: 10;
+      padding: 10rpx 10rpx 20rpx 20rpx;
     }
-  }
+  }
+}

+ 20 - 13
components/audioModule/index.vue

@@ -110,7 +110,7 @@ export default {
     },
   },
   watch: {
-    audioInit: {
+    audioInit: { // 切换了音频播放 重置下数据
       handler(nval) {
         this.init();
       },
@@ -120,7 +120,7 @@ export default {
 
   created() {},
   mounted() {
-    uni.getSystemInfo({
+    uni.getSystemInfo({ //判断机型
       success: (res) => {
         this.isosName = res.osName;
       },
@@ -154,6 +154,7 @@ export default {
     },
     //音频播放事件
     listenAudio() {
+      // 音频播放
       this.globalBgAudioManager.onPlay(async () => {
         if (this.isRecord) {
           console.log("音频播放");
@@ -167,7 +168,7 @@ export default {
         this.$store.commit("audioBg/updateAudioPause", false);
         this.isRecord = true;
       });
-
+      // 音频暂停
       this.globalBgAudioManager.onPause(() => {
         console.log("音频暂停");
         this.backAudioPlay();
@@ -175,7 +176,7 @@ export default {
         this.play = false;
         this.$store.commit("audioBg/updateAudioPause", true);
       });
-
+      // 音频停止
       this.globalBgAudioManager.onStop(() => {
         console.log("音频停止");
         this.backAudioPlay();
@@ -189,7 +190,7 @@ export default {
           this.$store.commit("audioBg/updateAudioPause", true);
         }
       });
-
+      // 音频onEnded
       this.globalBgAudioManager.onEnded(() => {
         console.log("音频onEnded");
         this.backAudioPlay();
@@ -199,7 +200,7 @@ export default {
         this.$store.commit("audioBg/parseIntAudio", false);
         this.$store.commit("audioBg/removeAudio");
       });
-
+      // 音频onError
       this.globalBgAudioManager.onError((e) => {
         console.log("音频onError", e);
         this.$store.commit("audioBg/removeAudio");
@@ -210,7 +211,7 @@ export default {
         });
       });
 
-      //音频的播放时间更新
+      // 音频的播放时间更新
       this.globalBgAudioManager.onTimeUpdate(() => {
         if (this.globalBgAudioManager.src && parseInt(this.globalBgAudioManager.currentTime) !== 0 && !this.isSlide) {
           this.curTime = parseInt(this.globalBgAudioManager.currentTime);
@@ -218,11 +219,13 @@ export default {
         }
       });
     },
-    //拖动进度条
+
+    // 拖动进度条
     handleAudioSliderChangeing(e) {
       this.curTime = e.detail.value;
     },
-    //拖动进度条
+
+    // 拖动进度条
     handleAudioSliderChange(e) {
       const value = e.detail.value;
       this.globalBgAudioManager.seek(value);
@@ -231,7 +234,8 @@ export default {
         this.$store.commit("audioBg/setSlide", false);
       }, 300);
     },
-    //音频点击暂停播放
+
+    // 音频点击暂停播放
     handleChangePlayStatus() {
       if (!this.globalBgAudioManager.paused) {
         this.globalBgAudioManager.pause();
@@ -239,7 +243,8 @@ export default {
         this.globalBgAudioManager.play();
       }
     },
-    //倍速播放
+
+    // 倍速播放
     isTimesHandler(i) {
       let index = i == 3 ? 0 : i + 1;
       this.$store.commit("audioBg/setMultiple", this.timesTheSpeed[index].value);
@@ -250,6 +255,7 @@ export default {
       }
       this.isRecord = false;
     },
+
     //快进 快退
     speedReverseHandler(type) {
       let isTime = type == "reverse" ? this.curTime - 15 : this.curTime + 15;
@@ -257,7 +263,8 @@ export default {
       this.globalBgAudioManager.seek(isTime);
       this.isRecord = false;
     },
-    //播放了记录
+
+    // 播放了记录
     backAudioPlay() {
       if ((this.$store.state.audioBg.activityId || this.$store.state.audioBg.indexId) && this.palyTime >= 0) {
         activity.backAudioPlay({
@@ -266,7 +273,7 @@ export default {
         });
       }
     },
-
+    // 手指离开了拖动进度条 
     touchstartHandler() {
       this.$store.commit("audioBg/setSlide", true);
     },

+ 169 - 216
components/modalDialog.vue

@@ -1,56 +1,22 @@
 <template>
   <view>
-    <u-modal v-model="show" :content-style="{ fontSize: '32rpx' }" @confirm="contentBtn" :show-title="false" confirm-text="知道了" :confirm-style="{ fontWeight: '700' }">
-      <view class="slot-content">
-        <rich-text :nodes.sync="content"></rich-text>
-      </view>
-    </u-modal>
-
-    <!-- 关注公众号 -->
-    <u-modal
-      v-model="goFollowShow"
-      :content-style="{ fontSize: '32rpx' }"
-      @confirm="goFollowShowBtn"
-      :show-cancel-button="true"
-      confirm-text="去关注"
-      @cancel="cancel"
-      :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>
-
-    <u-modal
-      v-model="cancelShow"
-      :content="canceltext"
-      :content-style="{ fontSize: '32rpx', lineHeight: '80rpx' }"
-      :confirm-style="{ fontWeight: '700' }"
-      @confirm="cancelShowBtn"
-      @cancel="cancelBtn"
-      :show-title="false"
-      :show-cancel-button="true"
-      :cancel-style="{ borderRight: '1rpx solid #EBEBEB' }"
-    ></u-modal>
-
-    <!-- 立即申请 -->
     <u-modal
-      v-model="applyIsShow"
+      v-model="isModalShow"
       :content-style="{ fontSize: '32rpx' }"
-      @confirm="applyIsShowBtn"
+      @confirm="confirmModal"
       :show-cancel-button="true"
-      :confirm-text="isShowAlert ? '立即上传' : '立即申请'"
-      @cancel="applyIsShowCancel"
+      :confirm-text="confirmText"
+      :cancel-text="editIsShowDlg ? '前去修改' : '取消'"
+      @cancel="cancelModal"
       :show-title="false"
       :cancel-style="{ borderRight: '1rpx solid #EBEBEB' }"
       :confirm-style="{ fontWeight: '700' }"
     >
       <view class="slot-content">
-        <rich-text :nodes="jurisdictionText"></rich-text>
+        <rich-text :nodes="content"></rich-text>
       </view>
     </u-modal>
+    <!-- 修改手机号 -->
 
     <!-- 拨打电话 -->
     <u-modal
@@ -81,42 +47,6 @@
         <text>申请开通对应的试用权限</text>
       </view>
     </u-modal>
-    <u-modal v-model="showRelation" confirm-text="知道了" :confirm-style="{ fontWeight: '700' }" :content="contentRelation"></u-modal>
-
-    <!-- 修改手机号 -->
-    <u-modal
-      width="650"
-      v-model="editIsShowDlg"
-      :content-style="{ fontSize: '32rpx' }"
-      @confirm="GoOutboundMobileBtn"
-      :show-cancel-button="true"
-      confirm-text="无需修改"
-      cancel-text="前去修改"
-      cancel-color="#3385FF"
-      @cancel="GoOutboundMobileIsGo"
-      :show-title="false"
-      :cancel-style="{ borderRight: '1rpx solid #EBEBEB' }"
-    >
-      <view class="slot-content">
-        <rich-text :nodes="editIsShowAccounts"></rich-text>
-      </view>
-    </u-modal>
-
-    <u-modal
-      v-model="mailboxBindingDlg"
-      :content-style="{ fontSize: '32rpx' }"
-      @confirm="gmailboxBindingDlgBtn"
-      :show-cancel-button="true"
-      confirm-text="设置"
-      @cancel="cancelMailboxBindingDlg"
-      :show-title="false"
-      :cancel-style="{ borderRight: '1rpx solid #EBEBEB' }"
-      :confirm-style="{ fontWeight: '700' }"
-    >
-      <view class="slot-content">
-        <rich-text :nodes="mailboxText"></rich-text>
-      </view>
-    </u-modal>
   </view>
 </template>
 
@@ -129,19 +59,15 @@ export default {
       show: false,
       cancelShow: false,
       applyIsShow: false,
-      showRelation: false,
       showhasPermission: false,
-      contentRelation: "申请已提交,请等待销售人员与您联系",
-      content: "",
       accounts: "",
-      canceltext: "",
       jurisdictionText: "",
       hasPermissionText: "",
       editIsShowAccounts: "",
       editIsShowDlg: false,
       mailboxBindingDlg: false,
-      mailboxText: "您当前绑定的联系方式为邮箱,请先设置您的外呼号码",
       isShowAlert: false, //获取权限弹窗是否展示免费月卡接口
+      contentType: "",
     };
   },
   props: {
@@ -152,10 +78,6 @@ export default {
     signupType: {
       // type: Number,
     },
-    signupStatus: {
-      type: String,
-      default: "Success",
-    },
     goFollow: {
       type: Boolean,
     },
@@ -190,7 +112,6 @@ export default {
     mobileEdit: {
       type: String,
     },
-
     goOnNextStep: {
       type: Boolean,
       default: false,
@@ -220,63 +141,11 @@ export default {
     isShow() {
       this.show = this.isShow;
     },
-    signupType() {
-      if (this.signupStatus !== "Success") return;
-      if (this.signupType == 1) {
-        this.content = `${this.countryCode}-${this.mobileEdit}<br/>预约成功,已加入您的活动日程 <br/><br/> 请关注【查研观向小助手】公众号,及时获取活动信息变更提醒
-
-`;
-        this.accounts = `
-					${this.countryCode}-${this.mobileEdit}<br/>
-					预约成功,已加入您的活动日程<br/><br/>
-
-					想要及时获取活动时间变更通知,请关注【查研观向小助手】公众号
-				`;
-      } else if (this.signupType == 999) {
-        this.content = "设置成功<br /> <br/>请关注【查研观向小助手】公众号,会前15分钟为您推送微信提醒";
-        this.accounts = `设置成功,会前15分钟会为您推送微信消息提醒<br/><br/>
-									请关注【查研观向小助手】公众号,以获取微信消息提醒`;
-      } else if (this.signupType == "summaryIsHandel") {
-        this.content = "会议纪要预约成功 <br/><br/> 请关注【查研观向小助手】公众号,若有调研纪要发布/更新,将及时为您推送微信消息";
-        this.accounts = `
-						会议纪要预约成功<br/><br/>
-
-						请关注【查研观向小助手】公众号,若有调研纪要发布/更新,将及时为您推送微信消息	`;
-      } else {
-        this.content = `报名成功,已加入您的活动日程 <br/><br/> 请关注【查研观向小助手】公众号,${this.signupType == "CClass" ? "及时获取活动信息变更提醒" : "会前1小时为您推送微信提醒"}`;
-        this.accounts = `
-						报名成功,已加入您的活动日程<br/><br/>
-
-						想要及时获取活动时间变更通知,请关注【查研观向小助手】公众号	`;
-      }
-    },
-    signupStatus() {
-      if (this.signupStatus == "Success") return;
-      if (this.signupStatus == "FullStarffed") {
-        this.content = "此活动报名人数已满,请留意下期活动";
-      } else if (this.signupStatus == "TwoPeople") {
-        this.content = "单机构最多2人报名同一活动,您所在机构报名人数已满";
-      } else if (this.signupStatus == "BreakPromise") {
-        this.content = "由于爽约次数过多,您暂时被限制报名资格";
-      } else if (this.signupStatus == "Overtime") {
-        this.content = "活动开始前1小时内无法预约,请联系对口销售处理";
-      }
-    },
-    "idTypeCancel.type": {
-      handler: function () {
-        if (this.idTypeCancel.type == 1) {
-          this.canceltext = "您要取消此次活动预约外呼吗?";
-        } else {
-          this.canceltext = "您要取消此次活动的报名吗?";
-        }
-      },
-      deep: true,
-    },
     isCancelShow() {
       this.cancelShow = this.isCancelShow;
     },
     applyForIsShow() {
-      this.jurisdictionText = this.isShowAlert ? "上传名片并填写简单信息,24小时内我们会为您开通一个月的免费月卡" : this.jurisdictionList.PopupMsg;
+      this.content = this.isShowAlert ? "上传名片并填写简单信息,24小时内我们会为您开通一个月的免费月卡" : this.jurisdictionList.PopupMsg;
       this.applyIsShow = this.applyForIsShow;
     },
     isShowhasPermission() {
@@ -284,75 +153,96 @@ export default {
       this.showhasPermission = this.isShowhasPermission;
     },
   },
+  computed: {
+    isModalShow: {
+      get() {
+        let isShow = this.show || this.cancelShow || this.goFollowShow || this.applyIsShow || this.mailboxBindingDlg;
+        return isShow;
+      },
+      set() {},
+    },
+    confirmText() {
+      let text = this.mailboxBindingDlg
+        ? "设置"
+        : this.applyIsShow && this.isShowAlert
+        ? "立即上传"
+        : this.applyIsShow && !this.isShowAlert
+        ? "立即申请"
+        : this.goFollowShow
+        ? "去关注"
+        : this.show
+        ? "知道了"
+        : this.editIsShowDlg
+        ? "无需修改"
+        : "";
+      return text;
+    },
+    content: {
+      get() {
+        let str = this.mailboxBindingDlg ? "您当前绑定的联系方式为邮箱,请先设置您的外呼号码" : this.applyIsShow || this.goFollowShow || this.show ? this.jurisdictionList.PopupMsg : "";
+        return str;
+      },
+      set() {},
+    },
+  },
   methods: {
-    contentBtn() {
+    /**
+     *
+     *
+     *
+     * 确定
+     *
+     *
+     */
+    confirmModal() {
+      this.show
+        ? this.contentBtn()
+        : this.goFollowShow
+        ? this.goFollowShowBtn()
+        : this.cancelShow
+        ? this.cancelShowBtn()
+        : this.applyIsShow
+        ? this.applyIsShowBtn()
+        : this.mailboxBindingDlg
+        ? this.gmailboxBindingDlgBtn()
+        : this.editIsShowDlg
+        ? this.GoOutboundMobileBtn()
+        : "";
+      this.initData();
+    },
+    /**
+     *
+     *
+     *
+     * 取消
+     *
+     *
+     */
+    cancelModal() {
+      this.editIsShowDlg ? this.GoOutboundMobileIsGo : this.initData();
+    },
+    /**
+     *
+     *
+     *
+     * 重置
+     *
+     *
+     */
+    initData() {
       this.$parent.isShow = false;
       this.show = false;
-      this.$emit("cancelShowBtn", this.idTypeCancel, this.signupType, this.idTypeCancel.isNum);
-    },
-    //去关注
-    goFollowShowBtn() {
-      this.$parent.goFollow = false;
-      this.goFollowShow = false;
-      this.$emit("cancelShowBtn", this.idTypeCancel, this.signupType, this.idTypeCancel.isNum);
-      uni.navigateTo({
-        url: "/activityPages/accountsOfficial/accountsOfficial",
-      });
-    },
-    cancel() {
       this.$parent.goFollow = false;
       this.goFollowShow = false;
-
-      this.$emit("cancelShowBtn", this.idTypeCancel, this.signupType, this.idTypeCancel.isNum);
-    },
-    cancelBtn() {
-      this.$parent.isCancelShow = false;
-      this.cancelShow = false;
-    },
-    cancelShowBtn() {
-      activity
-        .signupCancel({
-          ActivityId: this.idTypeCancel.id,
-          SignupType: this.idTypeCancel.type,
-        })
-        .then((res) => {
-          if (res.Ret == 200) {
-            this.idTypeCancel.cutId = res.Data.ActivityId;
-            if (this.signupType == 1) {
-              uni.showToast({
-                title: "预约外呼已取消",
-                duration: 2000,
-              });
-            } else {
-              uni.showToast({
-                title: "已取消报名",
-                duration: 2000,
-              });
-            }
-            this.$emit("cancelShowBtn", this.idTypeCancel, this.signupType, this.idTypeCancel.isNum);
-          }
-          this.$parent.isCancelShow = false;
-          this.cancelShow = false;
-        });
-    },
-    //立即申请
-    applyIsShowBtn() {
-      this.applyIsShow = false;
-      this.$parent.applyForIsShow = false;
-      if (this.hasPermission == 3) {
-        uni.navigateTo({
-          url: "/pageMy/applyTrial/applyTrial?tryType=Activity&detailId=" + this.jurisdictionList.ActivityId,
-        });
-      } else if (this.hasPermission == 4) {
-        this.showRelation = true;
-      } else if (this.hasPermission == 5) {
-        this.showhasPermissionBtn();
-      }
-    },
-    applyIsShowCancel() {
       this.applyIsShow = false;
       this.$parent.applyForIsShow = false;
+      this.$parent.mailboxBinding = false;
+      this.mailboxBindingDlg = false;
+      this.$parent.signupType = "";
+      this.$parent.isCancelShow = false;
+      this.cancelShow = false;
     },
+
     showhasPermissionBtn() {
 		// isAudioVideo -- 3 产业视频
       User.applyTry({
@@ -366,7 +256,7 @@ export default {
     },
     mobileDial() {
       uni.makePhoneCall({
-        phoneNumber: this.jurisdictionList.SellerMobile, //仅为示例
+        phoneNumber: this.jurisdictionList.SellerMobile, // 拨打电话
       });
       this.showhasPermission = false;
       this.$parent.isShowhasPermission = false;
@@ -400,18 +290,7 @@ export default {
           this.mobileEdit,
       });
     },
-    gmailboxBindingDlgBtn() {
-      this.$parent.mailboxBinding = false;
-      this.mailboxBindingDlg = false;
-      this.$parent.signupType = "";
-      uni.navigateTo({
-        url: "/activityPages/editOutbound/editOutbound?title=设置外呼号码&identification=邮箱&goOnNextStep=" + this.goOnNextStep + "&id=" + this.idTypeCancel.cutId,
-      });
-    },
-    cancelMailboxBindingDlg() {
-      this.$parent.mailboxBinding = false;
-      this.mailboxBindingDlg = false;
-    },
+
     //获取权限弹窗是否展示免费月卡接口
     async userIsShowAlert() {
       const res = await FreeButton.userIsShowAlert();
@@ -419,14 +298,88 @@ export default {
         this.isShowAlert = res.Data.IsShow;
       }
     },
+
+    /**
+     *
+     *
+     *
+     *
+     *
+     *confirm  模块
+     *
+     *
+     *
+     *
+     *
+     *
+     */
+    //正常的
+    contentBtn() {
+      this.$emit("cancelShowBtn", this.idTypeCancel, this.signupType, this.idTypeCancel.isNum);
+    },
+    //去关注
+    goFollowShowBtn() {
+      this.$emit("cancelShowBtn", this.idTypeCancel, this.signupType, this.idTypeCancel.isNum);
+      uni.navigateTo({
+        url: "/activityPages/accountsOfficial/accountsOfficial",
+      });
+    },
+    async cancelShowBtn() {
+      const res = await activity.signupCancel({
+        ActivityId: this.idTypeCancel.id,
+        SignupType: this.idTypeCancel.type,
+      });
+
+      if (res.Ret == 200) {
+        this.idTypeCancel.cutId = res.Data.ActivityId;
+        if (this.signupType == 1) {
+          uni.showToast({
+            title: "预约外呼已取消",
+            duration: 2000,
+          });
+        } else {
+          uni.showToast({
+            title: "已取消报名",
+            duration: 2000,
+          });
+        }
+        this.$emit("cancelShowBtn", this.idTypeCancel, this.signupType, this.idTypeCancel.isNum);
+      }
+      this.$parent.isCancelShow = false;
+      this.cancelShow = false;
+    },
+    //立即申请
+    applyIsShowBtn() {
+      if (this.hasPermission == 3) {
+        uni.navigateTo({
+          url: "/pageMy/applyTrial/applyTrial?tryType=Activity&detailId=" + this.jurisdictionList.ActivityId,
+        });
+      } else if (this.hasPermission == 4) {
+        uni.showModal({
+          content: "申请已提交,请等待销售人员与您联系",
+          confirmText: "知道了",
+          showCancel: false,
+          confirmColor: "#3385FF",
+        });
+      } else if (this.hasPermission == 5) {
+        this.showhasPermissionBtn();
+      }
+    },
+    //去设置
+    gmailboxBindingDlgBtn() {
+      uni.navigateTo({
+        url: "/activityPages/editOutbound/editOutbound?title=设置外呼号码&identification=邮箱&goOnNextStep=" + this.goOnNextStep + "&id=" + this.idTypeCancel.cutId,
+      });
+    },
   },
   mounted() {
-    this.userIsShowAlert();
+    // 免费送月卡
+    // this.userIsShowAlert();
   },
 };
 </script>
 
-<style scoped lang="scss">
+<style lang="scss">
 .slot-content {
   width: 100%;
   padding: 50rpx;

+ 18 - 3
components/suspen_button.vue

@@ -14,13 +14,17 @@
         <image v-if="!$slots.left" mode="widthFix" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/last_week.png"> </image>
       </view>
     </view>
-    <view :class="[open ? 'mask-show' : '']"  @click.stop="onOpen"> </view>
+    <view :class="[open ? 'mask-show' : '']" @click.stop="onOpen"> </view>
+    <image @click="closeButtonHandler" class="px-suspen-close" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/close-icon.png"></image>
   </view>
 </template>
 
 <script>
 export default {
-  props: {},
+  props: {
+    show:{
+    }
+  },
   data() {
     return {
       first: true, //样式的一个切换
@@ -39,6 +43,10 @@ export default {
       });
       this.onOpen();
     },
+    // 点击了取消的按钮
+    closeButtonHandler() {
+      this.$emit('update:show',false)
+    },
   },
 };
 </script>
@@ -66,7 +74,14 @@ export default {
   bottom: 320rpx;
   right: 180rpx;
 }
-
+.px-suspen-close {
+  position: fixed;
+  width: 35rpx;
+  height: 35rpx;
+  z-index: 99;
+  bottom: 315rpx;
+  right: 50rpx;
+}
 .px-button {
   position: absolute;
   border-radius: 50%;

+ 18 - 3
config/api.js

@@ -37,7 +37,6 @@ export const Report = {
   getSearchReportAndResource: (params) => {
     return getHttp("/report/searchReportAndResource", params, 1);
   },
-  
 };
 
 /* 用户 */
@@ -288,6 +287,10 @@ export const Reports = {
   getIndustryReadList: (params) => {
     return getHttp("/report_billboard/industry/readList", params);
   },
+  /* 产业报告公司列表 */
+  getHomeStockName: (params) => {
+    return getHttp("/report/home/stockName", params);
+  },
 };
 /* 活动  */
 export const activity = {
@@ -343,6 +346,10 @@ export const activity = {
   getActivityListNew: (params) => {
     return getHttp("/activity/listNew", params);
   },
+  /*获取主题活动接口*/
+  getActivityListSearch: (params) => {
+    return getHttp("/activity/listSearch", params);
+  },
   /*获取活动类型下的主题列表接口(4.3版本)*/
   getActivityLabelTypeList: (params) => {
     return getHttp("/activity/labelTypeListV5", params);
@@ -353,11 +360,11 @@ export const activity = {
   },
   /*获取专项产业调研列表接口*/
   getSpecialList: (params) => {
-    return getHttp("/activity/special/list", params);
+    return getHttp("/activity_special/list", params);
   },
   /*获取专项产业调研列表接口*/
   getSpecialDetailList: (params) => {
-    return getHttp("/activity/special/detail", params);
+    return getHttp("/activity_special/detail", params);
   },
   /*感兴趣、不感兴趣接口*/
   postSpecialSignupAdd: (params) => {
@@ -379,6 +386,14 @@ export const activity = {
   backAudioPlay: (params) => {
     return postHttp("/activity/voiceHistory/add", params, 0);
   },
+  //专项产业报名取消报名接口
+  activityApecialAdd: (params) => {
+    return postHttp("/activity_special/add", params, 0);
+  },
+  //专项产业取消报名接口
+  activityApecialCancel: (params) => {
+    return postHttp("/activity_special/trip/cancel", params, 0);
+  },
 };
 export const Research = {
   /* 近期更新主题列表接口 */

+ 1 - 1
manifest.json

@@ -74,7 +74,7 @@
             "enable" : false
         },
         "requiredBackgroundModes" : [ "audio" ],
-        "lazyCodeLoading": "requiredComponents"
+        "lazyCodeLoading" : "requiredComponents"
     },
     "mp-alipay" : {
         "usingComponents" : true,

+ 8 - 5
mixin/index.js

@@ -1,9 +1,9 @@
-import { FreeButton,Reports } from "@/config/api.js";
+import { FreeButton, Reports } from "@/config/api.js";
 export default {
   data() {
     return {
       isShowFree: false, //免费标签的隐现
-      isHorzMobile: null, //手机号是否是弘则的
+      isHorzMobile: false, //手机号是否是弘则的
       globalBgAudioManager: uni.getBackgroundAudioManager(), //背景音频
       navBarStyle: {
         height: 60 + "px",
@@ -29,16 +29,19 @@ export default {
         }
       },
     });
-    this.userIsShowShare();
+
+    // 判断手机号是不是弘则研究
+    // this.userIsShowShare();
+    
   },
   methods: {
     //免费标签的隐现
     async isShowFreeButton() {
       const res = await Reports.reportIsShow();
       if (res.Ret === 200) {
-        this.wholeShowListData = res.Data
+        this.wholeShowListData = res.Data;
         this.isShowFree = res.Data.IsShowFreeButton;
-        this.searchPlaceholderList = res.Data.SearchTxtList
+        this.searchPlaceholderList = res.Data.SearchTxtList;
       }
     },
     //判断手机号是否是弘则的

+ 1 - 0
pageMy/applyInterview/applyInterview.vue

@@ -82,6 +82,7 @@ export default {
         }
       });
     },
+    // 跳转文章详情
     goDetail(id) {
       uni.navigateTo({
         url: "/pageMy/reportDetail/reportDetail?id=" + id,

+ 3 - 0
pageMy/applyResult/applyResult.vue

@@ -18,11 +18,14 @@ export default {
     };
   },
   methods: {
+    // 拨打电话
     callNum() {
       uni.makePhoneCall({
         phoneNumber: this.phone,
       });
     },
+    
+    //  返回
     goIndex() {
       uni.navigateBack({
         delta: 2,

+ 1 - 1
pageMy/applyTrial/applyTrial.vue

@@ -97,7 +97,7 @@ export default {
         this.$util.toast(`请${!this.fileList.length ? "上传名片" : !this.name ? "输入姓名" : !this.company ? "输入公司名" : ""}`);
       }
     },
-    //预览图片
+    // 预览图片
     viewImage(path, imgList) {
       uni.previewImage({
         current: path, // 当前显示图片的http链接

+ 4 - 2
pageMy/authGuide/authGuide.vue

@@ -85,7 +85,8 @@ export default {
         }
       });
     },
-    //微信授权登录
+
+    // 微信授权登录
     getUserInfo(e) {
       if (e.detail.userInfo) {
         let userInfo = e.detail.userInfo;
@@ -95,7 +96,8 @@ export default {
         this.cancelBind();
       }
     },
-    //获取用户的当前设置
+    
+    // 获取用户的当前设置
     getSetting() {
       return new Promise(function (resolve, reject) {
         uni.getSetting({

+ 9 - 6
pageMy/browseHistory/browseHistory.vue

@@ -44,18 +44,18 @@ import freeCharge from "@/components/freeCharge";
 export default {
   data() {
     return {
-      refresh: false, //正在下拉
       status: "loadmore",
+      totalPage: "",
       page_no: 1,
       pageSize: 10,
-      historyList: [],
       haveData: null,
+      refresh: false, //正在下拉
+      historyList: [],
       loadText: {
         loadmore: "上拉加载更多",
         loading: "加载中",
         nomore: "已经到底了",
       },
-      totalPage: "",
     };
   },
   onLoad() {
@@ -87,11 +87,13 @@ export default {
         }
       });
     },
-    //去往文章详情页面
+
+    // 去往文章详情页面
     goDetailReport(item) {
       this.$store.dispatch("checkHandle", "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId);
     },
-    //去往主题详情
+
+    // 去往主题详情
     themeDetails(item, val) {
       if (item.Source === 1) {
         //非严选
@@ -101,7 +103,8 @@ export default {
         this.$store.dispatch("checkHandle", "/reportPages/researchTheme/researchTheme?id=" + val.IndustrialManagementId);
       }
     },
-    //收藏
+
+    // 收藏
     async collectClick(item) {
       const res = await Report.collectRpt({ ArticleId: item.ArticleId });
       if (res.Ret === 200) {

+ 9 - 15
pageMy/chartPage/chartPage.vue

@@ -24,16 +24,17 @@ export default {
   data() {
     return {
       id: "",
-      chartData: {},
       httpUrl: "",
       isCollection: false,
+      chartData: {},
     };
   },
   components: {
     freeCharge,
   },
   computed: {
-     strategyUrl() {
+    strategyUrl() {
+      // web-view 的URL
       return reportStrategyUrl;
     },
   },
@@ -63,25 +64,18 @@ export default {
       }
     },
   },
+
+  onLoad(option) {
+    this.id = option.id || "";
+  },
+
   async onShow() {
     await this.$store.dispatch("checkHandle");
     if (!this.$store.state.isAuth && !this.$store.state.isBind) {
-      //已授权已绑定
+      //已授权已绑定 才获取详情
       this.id && this.myChartDetail();
     }
   },
-  onLoad(option) {
-    // /* 兼容iphonex底部 */
-    uni.getSystemInfo({
-      success: (res) => {
-        let ua = res.model;
-        if (ua.search("iPhone X") != -1 || ua.search("iPhone 11") != -1 || ua.search("iPhone 11 Pro Max") != -1) {
-          this.isIphoneX = true;
-        }
-      },
-    });
-    this.id = option.id || "";
-  },
   /**
    * 用户点击分享
    */

+ 1 - 0
pageMy/downloadFile/downloadFile.vue

@@ -1,4 +1,5 @@
 <template>
+<!-- 下载页面 -->
   <view class="progress-box">
     <progress :percent="progress" show-info stroke-width="3" />
   </view>

+ 2 - 0
pageMy/freeTrial/freeTrial.vue

@@ -1,4 +1,5 @@
 <template>
+ <!-- 这个页面应该是不用了 免费送月卡页面 这里应该就不重要了 -->
   <view class="container container-free">
     <view class="nav-bar-wrap" :style="{ height: navBarStyle.height, paddingTop: navBarStyle.paddingTop, paddingBottom: navBarStyle.paddingBottom }">
       <view class="content">
@@ -27,6 +28,7 @@ export default {
     };
   },
   methods: {
+    /**这个页面应该是不用了 免费送月卡页面 这里应该就不重要了 就不备注了 */
     initNavBar() {
       let menuButtonInfo = uni.getMenuButtonBoundingClientRect();
       this.navBarStyle = {

+ 13 - 3
pageMy/login/login.vue

@@ -61,8 +61,6 @@ export default {
   data() {
     return {
       bind_type: 1, //绑定方式
-      checked: false,
-      isArgee: false,
       seconds: 60,
       tips: "获取验证码",
       email: "", //邮箱
@@ -72,8 +70,9 @@ export default {
       phone_code: "",
       showCountryCode: "+86",
       countryCode: "86", //区号
-      isAreaCode: false,
       scene: "", //分享人的分享码
+      isAreaCode: false, //选择区号
+      checked: false, //勾选了同意
     };
   },
   methods: {
@@ -87,6 +86,7 @@ export default {
       this.phone_code = "";
       this.checked = false;
     },
+
     /* 授权获取手机号 */
     getPhoneNumber(e) {
       if (e.detail.errMsg == "getPhoneNumber:ok") {
@@ -104,9 +104,11 @@ export default {
         });
       }
     },
+    // 选了区号
     codeChange(text) {
       this.tips = text;
     },
+
     /* 获取邮箱验证码 */
     getCode() {
       if (this.$refs.uCode.canGetCode) {
@@ -134,6 +136,7 @@ export default {
         }
       }
     },
+
     /* 绑定 */
     bindHandle() {
       let params;
@@ -159,11 +162,13 @@ export default {
         }
       }
     },
+    // 查看用户协议
     lookArgeement() {
       uni.navigateTo({
         url: "/pageMy/agreement/agreement",
       });
     },
+
     /* 绑定手机号 */
     bindPhoneHandle() {
       if (this.phoneIpt && this.phone_code && this.checked) {
@@ -179,6 +184,7 @@ export default {
         this.$util.toast(!this.checked ? "请先勾选用户服务协议" : !this.phoneIpt ? "请输入手机号" : "请输入验证码");
       }
     },
+
     //绑定登陆
     bindLogin(params) {
       User.Bind(params).then((res) => {
@@ -209,11 +215,15 @@ export default {
         }
       });
     },
+    
+    // 选择了地区的区号
     areacode(num) {
       this.showCountryCode = "+" + num;
       this.countryCode = num;
       this.isAreaCode = false;
     },
+
+    // 选择区号的取消
     cancel() {
       this.isAreaCode = false;
     },

+ 9 - 6
pageMy/myCollection/myCollection.vue

@@ -44,18 +44,18 @@ import freeCharge from "@/components/freeCharge";
 export default {
   data() {
     return {
-      refresh: false, //正在下拉
       page_no: 1,
       pageSize: 10,
       collectList: [],
-      haveData: true,
       status: "loadmore",
+      totalPage: "",
       loadText: {
         loadmore: "上拉加载更多",
         loading: "加载中",
         nomore: "已经到底了",
       },
-      totalPage: "",
+      haveData: true, //是否有数据
+      refresh: false, //正在下拉
     };
   },
   onLoad() {
@@ -87,11 +87,13 @@ export default {
         }
       });
     },
-    //去往文章详情页面
+
+    // 去往文章详情页面
     goDetailReport(item) {
       this.$store.dispatch("checkHandle", "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId);
     },
-    //去往主题详情
+
+    // 去往主题详情
     themeDetails(item, val) {
       if (item.Source === 1) {
         //非严选
@@ -101,7 +103,8 @@ export default {
         this.$store.dispatch("checkHandle", "/reportPages/researchTheme/researchTheme?id=" + val.IndustrialManagementId);
       }
     },
-    //收藏
+    
+    // 收藏
     async collectClick(item) {
       const res = await Report.collectRpt({ ArticleId: item.ArticleId });
       if (res.Ret === 200) {

+ 97 - 47
pageMy/mySchedulepage/mySchedulepage.vue

@@ -4,7 +4,7 @@
       <view class="collect-ltem" v-for="(item, index) in collectList" :key="index">
         <view class="title-date" @click="goDetail(item)">
           <text :class="item.ActivityType == 1 ? '' : 'xianxia'">{{ item.ActivityType == 1 ? "线上" : "线下" }}</text>
-          {{ item.ActivityTimeText }}
+          {{ item.SourceType == 2 ? "" : item.ActivityTimeText }}
           <view class="audio-back" v-if="item.AudioLink" @click.stop="PlayBackAll(item)">
             <block v-if="item.FileType == 2">
               <image class="audio-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/video_play.png"></image>
@@ -26,7 +26,9 @@
             <image :src="item.ImgUrl"></image>
             <text v-if="item.ActiveState == 1" class="img-status begin">未开始</text>
             <text v-else-if="item.ActiveState == 2" class="img-status proceed">进行中</text>
-            <text v-else class="img-status">已结束</text>
+            <block v-else>
+              <text v-if="item.TripStatus != 1" class="img-status">已结束</text>
+            </block>
             <view class="img-type">
               <image :src="item.ImgUrlText" mode=""></image>
             </view>
@@ -34,52 +36,68 @@
           <view class="item">
             <view class="item-text" @click="goDetail(item)">
               <text class="activity-title"> {{ item.ActivityName }} </text>
-              <text class="text_twoLine" v-if="item.Expert">专家背景:{{ item.Expert }} </text>
+              <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>
+              <view style="display: flex" class="text_twoLine" v-if="item.ActivityTimeText && item.SourceType == 2">
+                <text style="flex-shrink: 0"> 活动时间:</text>
+                <text> {{ item.ActivityTimeText }}</text>
+              </view>
             </view>
-            <block v-if="item.ActiveState == 1">
-              <view :class="['bottom-box', item.ActivityTypeId == 1 && item.IsLimitPeople == 0 && 'expert-item', item.City && 'city']">
-                <view class="city-img" v-if="item.City">
-                  <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/location.png"></image>
-                  {{ item.City }}
-                </view>
-                <view style="display: flex">
-                  <text v-if="item.IsShowOutboundCall && item.ActivityTypeId == 1" class="button" @click="signupIsAddOfCancel(item, 1)">{{ item.IsSignup == 1 ? "取消外呼" : "预约外呼" }}</text>
-                  <text v-if="item.IsShowAppointment" @click="summaryIsHandel(item)">{{ item.IsAppointment == 1 ? "取消纪要" : "预约纪要" }}</text>
-                  <text v-if="item.IsShowMeetingReminder" @click="meetingReminderAdd(item.ActivityId, item.IsCancelMeetingReminder)">
-                    {{ item.IsCancelMeetingReminder == 0 ? "消息提醒" : "取消提醒" }}
-                  </text>
-                  <view v-if="item.IsShowHelpSsk" style="width: 130rpx">
-                    <text @click="askingGo(item)">帮我带问</text>
+            <block v-if="item.SourceType == 1">
+              <block v-if="item.ActiveState == 1">
+                <view :class="['bottom-box', item.ActivityTypeId == 1 && item.IsLimitPeople == 0 && 'expert-item', item.City && 'city']">
+                  <view class="city-img" v-if="item.City">
+                    <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/location.png"></image>
+                    {{ item.City }}
                   </view>
-                  <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">
-                      <text class="button" @click="signupIsAddOfCancel(item, 3, 'CClass')">{{ item.IsSignup == 1 ? "取消报名" : "我要报名" }}</text>
+                  <view style="display: flex">
+                    <text v-if="item.IsShowOutboundCall && item.ActivityTypeId == 1" class="button" @click="signupIsAddOfCancel(item, 1)">{{ item.IsSignup == 1 ? "取消外呼" : "预约外呼" }}</text>
+                    <text v-if="item.IsShowAppointment" @click="summaryIsHandel(item)">{{ item.IsAppointment == 1 ? "取消纪要" : "预约纪要" }}</text>
+                    <text v-if="item.IsShowMeetingReminder" @click="meetingReminderAdd(item.ActivityId, item.IsCancelMeetingReminder)">
+                      {{ item.IsCancelMeetingReminder == 0 ? "消息提醒" : "取消提醒" }}
+                    </text>
+                    <view v-if="item.IsShowHelpSsk" style="width: 130rpx">
+                      <text @click="askingGo(item)">帮我带问</text>
+                    </view>
+                    <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">
+                        <text class="button" @click="signupIsAddOfCancel(item, 3, 'CClass')">{{ item.IsSignup == 1 ? "取消报名" : "我要报名" }}</text>
+                      </block>
+                      <block v-else>
+                        <text class="button" v-if="item.IsSignup !== 1" @click="wanttosignup(item)">我要报名</text>
+                        <text class="button" v-else @click="signupIsAddOfCancel(item, 2)">{{ item.SignupType == 1 ? "取消外呼" : "取消报名" }}</text>
+                      </block>
                     </block>
-                    <block v-else>
-                      <text class="button" v-if="item.IsSignup !== 1" @click="wanttosignup(item)">我要报名</text>
-                      <text class="button" v-else @click="signupIsAddOfCancel(item, 2)">{{ item.SignupType == 1 ? "取消外呼" : "取消报名" }}</text>
-                    </block>
-                  </block>
+                  </view>
                 </view>
-              </view>
-            </block>
-            <block v-else>
-              <view class="bottom-box city" v-if="item.City">
-                <view class="city-img">
-                  <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/location.png"></image>
-                  {{ item.City }}
+              </block>
+              <block v-else>
+                <view class="bottom-box city" v-if="item.City">
+                  <view class="city-img">
+                    <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/location.png"></image>
+                    {{ item.City }}
+                  </view>
                 </view>
-              </view>
-              <view class="bottom-box real-time" v-if="item.ActiveState == 2 && item.ActivityTypeId == 1">
-                <text class="button" @click="askingGo(item, '提问')">实时提问</text>
+                <view class="bottom-box real-time" v-if="item.ActiveState == 2 && item.ActivityTypeId == 1">
+                  <text class="button" @click="askingGo(item, '提问')">实时提问</text>
+                </view>
+              </block>
+            </block>
+            <block v-if="item.SourceType == 2">
+              <view class="bottom-box">
+                <view class="" style="width: 130rpx"> </view>
+                <text @click="lookImg(item)">行程安排</text>
+                <text v-if="item.ActiveState == 1" class="button" @click="applyOfcancel(item, index)">{{ item.IsSignup == 0 ? "我要报名" : "取消报名" }}</text>
               </view>
             </block>
           </view>
         </view>
+        <view class="reminder-item" v-if="item.SourceType == 2">
+          <image class="item" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/confirm_XC.png"></image>
+        </view>
       </view>
       <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="totalPage > 1" />
     </view>
@@ -92,13 +110,11 @@
       :isShow="isShow"
       :signupType="signupType"
       :goFollow="goFollow"
-      :signupStatus="signupStatus"
       :hasPermission="hasPermission"
       :jurisdictionList="jurisdictionList"
       :editIsShow="editIsShow"
       :isCancelShow="isCancelShow"
       :idTypeCancel="idTypeCancel"
-      @cancelShowBtn="cancelEnsure"
       :countryCode="countryCode"
       :mobileEdit="mobileEdit"
       :goOnNextStep="goOnNextStep"
@@ -119,7 +135,6 @@
       <audioModule :showAudioPop.sync="showAudioPop" />
     </view>
     <videoModule :showVideoPop="showVideoPop" :videoPopList="videoPopList" />
-
   </view>
 </template>
 
@@ -140,21 +155,21 @@ export default {
     modalDialog,
     freeCharge,
     audioModule,
-    videoModule
+    videoModule,
   },
   data() {
     return {
-      collectTypeList: [],
-      haveData: true,
+      isGetJurisdiction: 0,
       whichDay: "",
-      listChartPermission: [],
-      listChartPermissionInit: [],
       chartPermissionIds: "",
+      activityTypeId: "",
+      haveData: true,
       isShowJurisdiction: false, //
-      isGetJurisdiction: 0,
       isrefresh: true,
-      activityTypeId: "",
       selectShow: false,
+      listChartPermission: [],
+      listChartPermissionInit: [],
+      collectTypeList: [],
     };
   },
   methods: {
@@ -177,6 +192,41 @@ export default {
         }
       }
     },
+
+    //查看行程的事件
+    lookImg(item) {
+      uni.previewImage({
+        urls: [item.TripImgLink], //查看图片的数组
+      });
+    },
+
+    //报名或者取消报名
+    async applyOfcancel(item, index) {
+      const str = item.ActivityTime.replace(/-/g, "/");
+      const date = new Date(str);
+      const times = date.getTime();
+      const num = new Date().getTime();
+      let twoDays = times - num <= 3600000 * 48;
+      uni.showModal({
+        content: twoDays ? "活动开始前48小时内,取消报名仍会维持扣点,确定要取消报名吗?" : "您要取消此次专项调研的预报名吗?",
+        confirmColor: "#3385FF",
+        cancelColor: "#606266",
+        success: async (res) => {
+          if (res.confirm) {
+            const res = await activity.activityApecialCancel({
+              ActivityId: item.ActivityId,
+            });
+            if (res.Ret === 200) {
+              uni.showToast({
+                title: res.Msg,
+                duration: 2000,
+              });
+              this.collectList.splice(index, 1);
+            }
+          }
+        },
+      });
+    },
   },
   //load
   onLoad(option) {

+ 19 - 7
pageMy/reportDetail/reportDetail.vue

@@ -41,19 +41,19 @@ let app = getApp({ allowDefault: true });
 export default {
   data() {
     return {
-      haveAuth: false,
       access_token: "", //用户标识
-      isIphoneX: false, //判断机型
       reportInfo: "",
-      showNav: false,
       id: "",
-      isShowTip: false,
       sale_name: "", //可联系销售名称
       sale_number: "", //可联系销售电话
       industry: "", //行业
       readTiem: 0,
       setIntervalTiem: null,
       isShowAlert: false,
+      haveAuth: false,
+      isShowTip: false,
+      showNav: false,
+      isIphoneX: false, //判断机型
     };
   },
   computed: {
@@ -90,6 +90,7 @@ export default {
         }
       });
     },
+
     /* 无权限申请开通权限 */
     applyAuth() {
       /* 区分是否是潜在用户 */
@@ -117,7 +118,8 @@ export default {
             success: function (res) {},
           });
     },
-    //销售的立即申请
+
+    // 销售的立即申请
     sellerApplyAuth() {
       User.applyTry({
         TryType: "Article",
@@ -136,6 +138,7 @@ export default {
         }
       });
     },
+
     // 返回首頁
     backIndex() {
       uni.navigateBack({
@@ -146,11 +149,14 @@ export default {
         },
       });
     },
+
+    // 拨打电话
     callPhone(num) {
       uni.makePhoneCall({
         phoneNumber: num,
       });
     },
+
     /* 申请访谈 */
     applyHandle() {
       // 申请访谈
@@ -180,6 +186,7 @@ export default {
         );
       }
     },
+
     /* 访谈接口 */
     interviewApi() {
       Report.applyRpt({
@@ -188,6 +195,7 @@ export default {
         this.reportInfo.IsInterviewApply = !this.reportInfo.IsInterviewApply;
       });
     },
+
     /* 收藏 */
     collectHandle() {
       Report.collectRpt({
@@ -197,6 +205,7 @@ export default {
         this.$util.toast(res.Msg);
       });
     },
+
     /* 错误 */
     errorDetails() {
       uni.showModal({
@@ -215,7 +224,8 @@ export default {
         },
       });
     },
-    //获取权限弹窗是否展示免费月卡接口
+
+    // 获取权限弹窗是否展示免费月卡接口
     async userIsShowAlert() {
       const res = await FreeButton.userIsShowAlert();
       if (res.Ret === 200) {
@@ -242,7 +252,9 @@ export default {
     if (!this.id && !+this.id > 0) {
       this.errorDetails();
     }
-    this.userIsShowAlert();
+
+    // 免费送月卡
+    // this.userIsShowAlert();
   },
   /**
    * 用户点击分享

+ 4 - 21
pageMy/reportPage/reportPage.vue

@@ -2,12 +2,6 @@
   <view class="container reportDetail-container">
     <block v-if="haveAuth === 1">
       <web-view :src="strategyUrl + '?url=' + linkurl" v-if="linkurl">
-        <!-- <cover-view bindtap="searchViewTap" class="search-view">
-          <cover-view class="search-view-box" @click="btnSearch">
-            <cover-image class="search-icon" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/search.png"></cover-image>
-            <cover-view class="search-text">搜索您想要的纪要</cover-view>
-          </cover-view>
-        </cover-view> -->
         <cover-view class="footer-con">
           <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>
@@ -69,23 +63,21 @@ let app = getApp({ allowDefault: true });
 export default {
   data() {
     return {
-      haveAuth: false,
-      // haveFree:false,//是否付费
+      readTiem: 0,
       access_token: "", //用户标识
-      isIphoneX: false, //判断机型
       reportInfo: "",
-      showNav: false,
       id: "",
       linkurl: "",
-      isShowTip: false,
       sale_name: "", //可联系销售名称
       sale_number: "", //可联系销售电话
       industry: "", //行业
-      readTiem: 0,
       setIntervalTiem: null,
       fileLink: false,
       isCollection: false,
       isInterviewApply: false,
+      isShowTip: false,
+      showNav: false,
+      haveAuth: false,
     };
   },
   components: {
@@ -296,15 +288,6 @@ export default {
     }
   },
   onLoad(option) {
-    // /* 兼容iphonex底部 */
-    uni.getSystemInfo({
-      success: (res) => {
-        let ua = res.model;
-        if (ua.search("iPhone X") != -1 || ua.search("iPhone 11") != -1 || ua.search("iPhone 11 Pro Max") != -1) {
-          this.isIphoneX = true;
-        }
-      },
-    });
     this.id = option.id ? option.id : "";
     if (!this.id && !+this.id > 0) {
       this.errorDetails();

+ 2 - 0
pageMy/transitionPages/transitionPages.vue

@@ -13,11 +13,13 @@ export default {
     return {};
   },
   methods: {
+    // 跳转上传信息的页面
     applyAuth() {
       uni.navigateTo({
         url: "/pageMy/applyTrial/applyTrial",
       });
     },
+    // 返回
     backIndex() {
       uni.switchTab({
         url: "/pages/index/index",

+ 82 - 41
pages-search/components/activityBack.vue

@@ -6,7 +6,7 @@
         <view class="collect-ltem" v-for="(item, index) in collectList" :key="index">
           <view class="title-date" @click="goDetail(item)">
             <text :class="item.ActivityType == 1 ? '' : 'xianxia'">{{ item.ActivityType == 1 ? "线上" : "线下" }}</text>
-            {{ item.ActivityTimeText }}
+            {{ item.SourceType == 2 ? "" : item.ActivityTimeText }}
             <view class="audio-back" v-if="item.AudioLink" @click.stop="PlayBackAll(item)">
               <block v-if="item.FileType == 2">
                 <image class="audio-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/video_play.png"></image>
@@ -25,7 +25,7 @@
           </view>
           <view class="item-li">
             <view class="item-img" @click="goDetail(item)">
-              <image :src="item.ImgUrl"> </image>
+              <image :src="item.ImgUrl"></image>
               <text v-if="item.ActiveState == 1" class="img-status begin">未开始</text>
               <text v-else-if="item.ActiveState == 2" class="img-status proceed">进行中</text>
               <text v-else class="img-status">已结束</text>
@@ -36,52 +36,68 @@
             <view class="item">
               <view class="item-text" @click="goDetail(item)">
                 <text class="activity-title"> {{ item.ActivityName }} </text>
-                <text class="text_twoLine" v-if="item.Expert">专家背景:{{ item.Expert }} </text>
+                <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>
+                <view style="display: flex" class="text_twoLine" v-if="item.ActivityTimeText && item.SourceType == 2">
+                  <text style="flex-shrink: 0"> 活动时间:</text>
+                  <text> {{ item.ActivityTimeText }}</text>
+                </view>
               </view>
-              <block v-if="item.ActiveState == 1">
-                <view :class="['bottom-box', item.ActivityTypeId == 1 && item.IsLimitPeople == 0 && 'expert-item', item.City && 'city']">
-                  <view class="city-img" v-if="item.City">
-                    <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/location.png"></image>
-                    {{ item.City }}
-                  </view>
-                  <view style="display: flex">
-                    <text v-if="item.IsShowOutboundCall && item.ActivityTypeId == 1" class="button" @click="signupIsAddOfCancel(item, 1)">{{ item.IsSignup == 1 ? "取消外呼" : "预约外呼" }}</text>
-                    <text v-if="item.IsShowAppointment" @click="summaryIsHandel(item)">{{ item.IsAppointment == 1 ? "取消纪要" : "预约纪要" }}</text>
-                    <text v-if="item.IsShowMeetingReminder" @click="meetingReminderAdd(item.ActivityId, item.IsCancelMeetingReminder)">
-                      {{ item.IsCancelMeetingReminder == 0 ? "消息提醒" : "取消提醒" }}
-                    </text>
-                    <view v-if="item.IsShowHelpSsk" style="width: 130rpx">
-                      <text @click="askingGo(item)">帮我带问</text>
+              <block v-if="item.SourceType == 1">
+                <block v-if="item.ActiveState == 1">
+                  <view :class="['bottom-box', item.ActivityTypeId == 1 && item.IsLimitPeople == 0 && 'expert-item', item.City && 'city']">
+                    <view class="city-img" v-if="item.City">
+                      <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/location.png"></image>
+                      {{ item.City }}
                     </view>
-                    <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">
-                        <text class="button" @click="signupIsAddOfCancel(item, 3, 'CClass')">{{ item.IsSignup == 1 ? "取消报名" : "我要报名" }}</text>
+                    <view style="display: flex">
+                      <text v-if="item.IsShowOutboundCall && item.ActivityTypeId == 1" class="button" @click="signupIsAddOfCancel(item, 1)">{{ item.IsSignup == 1 ? "取消外呼" : "预约外呼" }}</text>
+                      <text v-if="item.IsShowAppointment" @click="summaryIsHandel(item)">{{ item.IsAppointment == 1 ? "取消纪要" : "预约纪要" }}</text>
+                      <text v-if="item.IsShowMeetingReminder" @click="meetingReminderAdd(item.ActivityId, item.IsCancelMeetingReminder)">
+                        {{ item.IsCancelMeetingReminder == 0 ? "消息提醒" : "取消提醒" }}
+                      </text>
+                      <view v-if="item.IsShowHelpSsk" style="width: 130rpx">
+                        <text @click="askingGo(item)">帮我带问</text>
+                      </view>
+                      <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">
+                          <text class="button" @click="signupIsAddOfCancel(item, 3, 'CClass')">{{ item.IsSignup == 1 ? "取消报名" : "我要报名" }}</text>
+                        </block>
+                        <block v-else>
+                          <text class="button" v-if="item.IsSignup !== 1" @click="wanttosignup(item)">我要报名</text>
+                          <text class="button" v-else @click="signupIsAddOfCancel(item, 2)">{{ item.SignupType == 1 ? "取消外呼" : "取消报名" }}</text>
+                        </block>
                       </block>
-                      <block v-else>
-                        <text class="button" v-if="item.IsSignup !== 1" @click="wanttosignup(item)">我要报名</text>
-                        <text class="button" v-else @click="signupIsAddOfCancel(item, 2)">{{ item.SignupType == 1 ? "取消外呼" : "取消报名" }}</text>
-                      </block>
-                    </block>
+                    </view>
                   </view>
-                </view>
-              </block>
-              <block v-else>
-                <view class="bottom-box city" v-if="item.City">
-                  <view class="city-img">
-                    <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/location.png" />
-                    {{ item.City }}
+                </block>
+                <block v-else>
+                  <view class="bottom-box city" v-if="item.City">
+                    <view class="city-img">
+                      <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/location.png"></image>
+                      {{ item.City }}
+                    </view>
                   </view>
-                </view>
-                <view class="bottom-box real-time" v-if="item.ActiveState == 2 && item.ActivityTypeId == 1">
-                  <text class="button" @click="askingGo(item, '提问')">实时提问</text>
+                  <view class="bottom-box real-time" v-if="item.ActiveState == 2 && item.ActivityTypeId == 1">
+                    <text class="button" @click="askingGo(item, '提问')">实时提问</text>
+                  </view>
+                </block>
+              </block>
+              <block v-if="item.SourceType == 2">
+                <view class="bottom-box">
+                  <view class="" style="width: 130rpx"> </view>
+                  <text @click="lookImg(item)">行程安排</text>
+                  <text v-if="item.ActiveState == 1" class="button" @click="applyOfcancel(item, 'back')">{{ item.IsSignup == 0 ? "我要报名" : "取消报名" }}</text>
                 </view>
               </block>
             </view>
           </view>
+          <view class="reminder-item" v-if="item.SourceType == 2">
+            <image class="item" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/confirm_XC.png"></image>
+          </view>
         </view>
       </view>
     </view>
@@ -90,13 +106,11 @@
       :isShow="isShow"
       :signupType="signupType"
       :goFollow="goFollow"
-      :signupStatus="signupStatus"
       :hasPermission="hasPermission"
       :jurisdictionList="jurisdictionList"
       :editIsShow="editIsShow"
       :isCancelShow="isCancelShow"
       :idTypeCancel="idTypeCancel"
-      @cancelShowBtn="cancelEnsure"
       :countryCode="countryCode"
       :mobileEdit="mobileEdit"
       :goOnNextStep="goOnNextStep"
@@ -120,13 +134,34 @@
     </view>
     <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
     <videoModule :showVideoPop="showVideoPop" :videoPopList="videoPopList" />
+    <u-modal
+      v-model="specialGoFollowShow"
+      :content-style="{ fontSize: '32rpx' }"
+      :show-cancel-button="show_cancel_button"
+      confirm-text="知道了"
+      @cancel="isCancelBtn = false"
+      :show-confirm-button="show_confirm_button"
+      :show-title="false"
+      :cancel-style="{ borderRight: '1rpx solid #EBEBEB' }"
+      :confirm-style="{ fontWeight: '700' }"
+      :mask-close-able="specialIsHintShow"
+    >
+      <view class="slot-content">
+        <block v-if="specialPopupMsg">
+          <text>{{ specialAccounts }}</text>
+          <text class="light-hint">{{ specialPopupMsg }}</text>
+        </block>
+        <rich-text v-else :nodes="specialAccounts"></rich-text>
+      </view>
+    </u-modal>
   </view>
 </template>
 
 <script>
 import modalDialog from "@/components/modalDialog.vue";
 import areaCode from "@/components/activity/areaCode.vue";
-import myMixin from "@/components/activity/index.js";
+import myMixin from "@/activityPages/components/index.js";
+import specialMixins from "@/activityPages/components/specialMixins.js";
 import myActivityMixin from "@/components/activity/indexActivity.js";
 import mediaMixins from "@/components/activity/mediaMixins";
 import freeCharge from "@/components/freeCharge";
@@ -163,7 +198,7 @@ export default {
       selectShow: false,
     };
   },
-  mixins: [myMixin, myActivityMixin, mediaMixins],
+  mixins: [myMixin, myActivityMixin, mediaMixins, specialMixins],
   components: {
     modalDialog,
     areaCode,
@@ -189,6 +224,12 @@ export default {
         }
       });
     },
+    //查看行程的事件
+    lookImg(item) {
+      uni.previewImage({
+        urls: [item.TripImgLink], //查看图片的数组
+      });
+    },
   },
 };
 </script>

+ 16 - 7
pages-search/indedxSearch/indedxSearch.vue

@@ -297,13 +297,22 @@ export default {
     },
     //活动回放的接口获取列表
     async getActivityBackList() {
-      const res = await activity.getActivityListNew({
-        PageSize: this.pageSize,
-        CurrentIndex: this.pageNum,
-        KeyWord: this.searchTxt,
-        ActiveState: "1,2,3", //活动进行状态
-        PlayBack: Number(this.activitySelectActive),
-      });
+      const res =
+        this.tabsActive === 1 || this.activitySelectActive == 0
+          ? await activity.getActivityListSearch({
+              PageSize: this.pageSize,
+              CurrentIndex: this.pageNum,
+              KeyWord: this.searchTxt,
+              ActiveState: "1,2,3", //活动进行状态
+              PlayBack: Number(this.activitySelectActive),
+            })
+          : await activity.getActivityListNew({
+              PageSize: this.pageSize,
+              CurrentIndex: this.pageNum,
+              KeyWord: this.searchTxt,
+              ActiveState: "1,2,3", //活动进行状态
+              PlayBack: Number(this.activitySelectActive),
+            });
       if (res.Ret !== 200) return;
       this.status = this.pageNum < res.Data.Paging.Pages ? "loadmore" : "nomore";
       this.totalPage = res.Data.Paging.Pages; //总页数

+ 28 - 15
pages/activity/activity.vue

@@ -109,25 +109,25 @@ export default {
   },
   data() {
     return {
-      collectTypeList: [],
+      whichDay: "",
+      activityTypeId: "",
+      chartPermissionIds: "",
       chartPermissionName: "所有行业",
+      isGetJurisdiction: 0,
+      isrefresh: true,
+      isShowJurisdiction: false, //
       haveData: true,
+      listChartPermission: [],
+      listChartPermissionInit: [],
+      collectTypeList: [],
       activityTimeList: [
         { Id: 1, IsChoose: false, StatusName: "今日活动" },
         { Id: 2, IsChoose: false, StatusName: "明日活动" },
       ],
-      whichDay: "",
-      listChartPermission: [],
-      listChartPermissionInit: [],
-      chartPermissionIds: "",
-      isShowJurisdiction: false, //
-      isGetJurisdiction: 0,
-      isrefresh: true,
-      activityTypeId: "",
     };
   },
   computed: {
-    messageTitle() {
+    messageTitle() {  // 计算分享时候的title
       let arr = this.whichDay ? this.whichDay.split(",") : [];
       let whichData = arr.length == 2 ? "今日活动,明日活动" : arr == "1" ? "今日活动" : arr == "2" ? "明日活动" : "";
       let title = whichData ? whichData + "," + this.chartPermissionName : this.chartPermissionName !== "所有行业" ? this.chartPermissionName : "";
@@ -135,6 +135,7 @@ export default {
     },
   },
   methods: {
+
     //获取胶囊位置
     initNavBar() {
       let menuButtonInfo = uni.getMenuButtonBoundingClientRect();
@@ -144,6 +145,8 @@ export default {
         paddingBottom: "4px",
       };
     },
+
+    // 获取权限、所有的行业
     async getUserSearchContent() {
       const res = await activity.getUserSearchContent({
         IsShowJurisdiction: this.isGetJurisdiction,
@@ -158,7 +161,8 @@ export default {
         }
       }
     },
-    //获取列表数据
+
+    // 获取列表数据
     async getActivityLabelTypeList() {
       const res = await activity.getActivityLabelTypeList({
         ChartPermissionIds: this.chartPermissionIds,
@@ -176,6 +180,7 @@ export default {
         }
       }
     },
+
     // 下拉的选择的关闭事件
     closeTheWindow() {
       const types = this.chartPermissionIds ? this.chartPermissionIds.split(",").map(Number) : [];
@@ -192,6 +197,7 @@ export default {
         this.chartPermissionName = str.length == 6 ? "所有行业" : str.join(",");
       }
     },
+
     // 下拉的选择的选中事件
     overallClick(item) {
       if (this.isShowJurisdiction) return;
@@ -201,6 +207,7 @@ export default {
         }
       });
     },
+
     // 下拉的选择的重置事件
     replacementBtn() {
       this.listChartPermission = this.listChartPermissionInit;
@@ -210,7 +217,8 @@ export default {
       this.chartPermissionName = "所有行业";
       this.getActivityLabelTypeList();
     },
-    //下拉选择的确定事件
+
+    // 下拉选择的确定事件
     replacementConfirm() {
       const arr = [];
       const str = [];
@@ -230,7 +238,8 @@ export default {
       this.getActivityLabelTypeList();
       this.selectComponent("#industry").toggle(false);
     },
-    //今日明日的点击事件
+
+    // 今日明日的点击事件
     isActivityDate(id) {
       this.selectComponent("#industry").toggle(false);
       this.activityTimeList.forEach((item) => {
@@ -241,7 +250,8 @@ export default {
       this.whichDay = arr.join(",");
       this.getActivityLabelTypeList();
     },
-    //是否有权限的点击事件
+
+    // 是否有权限的点击事件
     async permissioActivity() {
       if (!this.$store.state.isAuth && !this.$store.state.isBind) {
         this.selectComponent("#industry").toggle(false);
@@ -261,7 +271,8 @@ export default {
         });
       }
     },
-    //点击后有权限的
+
+    // 点击后有权限的
     clickPermission() {
       if (this.isShowJurisdiction) {
         const arr = [];
@@ -274,6 +285,7 @@ export default {
         this.chartPermissionIds = arr.join(",");
       }
     },
+    // 进入页面 判断是否是分享的
     loadShare(option) {
       if (option && Object.keys(option).length !== 0) {
         this.whichDay = option.whichDay || "";
@@ -289,6 +301,7 @@ export default {
         });
       }
     },
+    // 去往详情
     goDetails(item, key) {
       if (item.Resource === 1 || key === 1) {
         let type = item.ActivityTypeName || "";

+ 46 - 4
pages/index/index.vue

@@ -35,14 +35,19 @@
             }}</view>
           </view>
         </block>
+        <view  v-if="topTabsActive == '4'"  class="medium-ul">
+          <view class="item-content">
+            <view @click="mediumClickHandler(item)" :class="['item', mediumActive === item.value && 'item-act']" v-for="item in mediumSelect" :key="item.value">{{ item.name }}</view>
+          </view>
+        </view>
       </view>
     </view>
     <block v-if="haveData">
       <view class="audio-video-content" v-if="topTabsActive == 4">
         <view class="audio-item" v-for="item in videoAudioList" :key="item.Id">
           <view class="cover-item" :style="{ 'background-image': 'url(' + item.BackgroundImg + ')' }">
-			  <!-- type:3 -- 产业视频 -->
-            <block v-if="item.Type == 2 || item.Type == 3"> 
+            <!-- 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>
@@ -221,7 +226,7 @@
       <audioModule :showAudioPop.sync="showAudioPop" />
     </view>
     <videoModule :showVideoPop="showVideoPop" :curVideoId="curVideoId" :videoPopList="videoPopList" />
-    <suspenButton v-if="wholeShowListData.IsShow" />
+    <suspenButton :show.sync="wholeShowListData.IsShow" v-if="wholeShowListData.IsShow" />
     <modalDialog :isShowhasPermission="isShowhasPermission" :applyForIsShow="applyForIsShow" :jurisdictionList="jurisdictionList" :hasPermission="hasPermission" />
   </view>
 </template>
@@ -274,6 +279,12 @@ export default {
       curVideoId: 0, //音频Id
       showVideoPop: false,
       videoPopList: {},
+      mediumSelect: [
+        { name: "全部", value: 0 },
+        { name: "视频", value: 1 },
+        { name: "音频", value: 2 },
+      ],
+      mediumActive: 0,
     };
   },
   components: {
@@ -391,6 +402,11 @@ export default {
       this.chartChildrenActive = item.CtagId;
       this.initData();
     },
+    // 点击为路演的筛选
+    mediumClickHandler(item) {
+      this.mediumActive = item.value;
+      this.initData();
+    },
     //点击
     initData() {
       this.pageNum = 1;
@@ -452,6 +468,7 @@ export default {
           AudioId: this.audioShareId,
           VideoId: this.activityShareId ? "" : this.videoShareId,
           ActivityVideoId: this.activityShareId && this.videoShareId,
+          Filter:this.mediumActive,
         });
         if (res.Ret === 200) {
           this.status = this.pageNum < res.Data.Paging.Pages ? "loadmore" : "nomore";
@@ -709,7 +726,7 @@ export default {
     if (from === "button") {
       let item = target.dataset.item;
       let audio_id = item.Type == 1 || item.AudioType == 1 ? item.Id : "";
-	  // type=2 -- 活动视频 type=3 -- 产业视频
+      // type=2 -- 活动视频 type=3 -- 产业视频
       let video_id = item.Type == 2 || item.Type == 3 ? item.Id : "";
       let activity_id = item.Type == 2 && item.ActivityId > 0 ? item.ActivityId : "";
       let title_share = item.AudioTitle || item.Title;
@@ -815,6 +832,31 @@ export default {
         color: #fff;
       }
     }
+    .medium-ul {
+      display: flex;
+      justify-content: flex-end;
+      padding: 10px 0;
+      .item-content {
+        display: flex;
+        height: 51rpx;
+        background: #f8f8fa;
+        width: 345rpx;
+        border-radius: 64rpx;
+        color: #999999;
+      }
+      .item {
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        width: 115rpx;
+        height: 51rpx;
+        border-radius: 47rpx;
+      }
+      .item-act {
+        background-color: #3385ff;
+        color: #fff;
+      }
+    }
     .chart-children {
       padding: 10rpx 20rpx;
       margin: 0rpx 20rpx 20rpx 0;

+ 5 - 2
pages/pcWebViev/pcWebViev.vue

@@ -26,6 +26,7 @@ export default {
     },
   },
   methods: {
+    // 获取token
     getToken() {
       uni.login({
         success: (result) => {
@@ -41,11 +42,13 @@ export default {
         },
       });
     },
+    // 获取web-view 的消息
     handleGetMessage(e) {
       const data = e.detail.data[e.detail.data.length - 1];
       this.urlShare = data.url;
       this.titleShare = data.title;
     },
+    // 进入页面 处理数据
     initLoad(optios) {
       let urlType = [
         "index",
@@ -59,8 +62,8 @@ export default {
         "chartPage",
         "specialDetail",
         "specialResearchPage",
-        'purchaser',
-        'IndustryReport'
+        "purchaser",
+        "IndustryReport",
       ];
       if (JSON.stringify(optios) !== "{}" && optios.path) {
         let pathUrl = optios.path.split("/")[2];

+ 4 - 2
pages/purchaser/purchaser.vue

@@ -154,6 +154,7 @@ export default {
     };
   },
   mounted() {
+    // 处理数据 列表同步详情
     uni.$on("updateFllowTheme", (data) => {
       this.hotList.forEach((item) => {
         if (item.IndustrialManagementId == data.id) {
@@ -161,6 +162,7 @@ export default {
         }
       });
     });
+    // 处理数据 列表同步详情
     uni.$on("updateFllowAuthor", (data) => {
       this.kolList.forEach((item) => {
         if (item.DepartmentId == data.id) {
@@ -340,7 +342,7 @@ export default {
     width: 70%;
     height: 63rpx;
     font-size: 30rpx;
-    color: #8D8D8D;
+    color: #8d8d8d;
     background-color: #f6f6f6;
     padding-left: 33rpx;
     border-radius: 70rpx;
@@ -355,7 +357,7 @@ export default {
 .resear-container {
   background-color: #f7f7f7;
   .notice-content {
-    position:sticky;
+    position: sticky;
     left: 0;
     top: 200rpx;
     z-index: 99;

+ 137 - 82
pages/reportForm/reportForm.vue

@@ -62,6 +62,9 @@
           </view>
         </view>
       </view>
+      <view v-if="labelListData.length" :class="[labelListData.length > 9 ? 'label-content-column' : 'label-content']">
+        <view @click="strategyLabelHadel(item)" :class="['item', item.Stock.length > 6 && 'item-size', 'text_oneLine']" v-for="item in labelListData" :key="item.ArticleId"> {{ item.Stock }} </view>
+      </view>
       <!-- 产业报告 -->
       <view class="industry">
         <view style="height: 12rpx" v-if="!tradeList"></view>
@@ -98,38 +101,27 @@
               </view>
             </view>
           </view>
-		  <!-- 多于6个时 取消展开/收起 的交互 全部显示 ------- 查研观向 8.4 -->
-<!--          <view class="content-box" v-if="item.IndustrialSubjectList.length > 6">
-            <u-read-more :toggle="true" :show-height="item.IndustrialSubjectList.length > 6 ? 140 : 150" :shadow-style="shadowStyle" close-text="展开" color="#D1D1D1">
-              <view class="read-more">
-                <view v-for="val in item.IndustrialSubjectList" :key="val.IndustrialSubjectId" @click="goIndustryReport(item.IndustrialManagementId)" class="text-box">
-                  {{ val.SubjectName }}
-                </view>
-              </view>
-            </u-read-more>
-          </view> -->
           <view class="content-box" @click="goIndustryReport(item.IndustrialManagementId)">
             <view class="read-more">
-				<view class="industry-video-item" @click.stop="handelVideoPlay(item)"
-				:style="{'background-image':'url('+item.IndustryVideo.BackgroundImg+ ')'}" v-if="item.IndustryVideo">
-					5min
-					<br />
-					逻辑解析
-					<view class="industry-video-icon">
-						<image src="https://hzstatic.hzinsights.com/cygx/video-right-top-icon.svg"></image>
-					</view>
-				</view>
-				<block v-if="item.IndustrialSubjectList">
-					<view v-if="item.IndustryVideo" style="display: flex;flex-wrap: wrap;width: 420rpx;">
-						<view v-for="val in item.IndustrialSubjectList.slice(0,4)" :key="val.IndustrialSubjectId" class="text-box">{{ val.SubjectName }}</view>
-					</view>
-					<block v-if="item.IndustryVideo && item.IndustrialSubjectList.length>4">
-						<view v-for="val in item.IndustrialSubjectList.slice(4)" :key="val.IndustrialSubjectId" class="text-box">{{ val.SubjectName }}</view>
-					</block>
-					<block v-if="!item.IndustryVideo">
-						<view v-for="val in item.IndustrialSubjectList" :key="val.IndustrialSubjectId" class="text-box">{{ val.SubjectName }}</view>
-					</block>
-				</block>
+              <view class="industry-video-item" @click.stop="handelVideoPlay(item)" :style="{ 'background-image': 'url(' + item.IndustryVideo.BackgroundImg + ')' }" v-if="item.IndustryVideo">
+                5min
+                <br />
+                逻辑解析
+                <view class="industry-video-icon">
+                  <image src="https://hzstatic.hzinsights.com/cygx/video-right-top-icon.svg"></image>
+                </view>
+              </view>
+              <block v-if="item.IndustrialSubjectList">
+                <view v-if="item.IndustryVideo" style="display: flex; flex-wrap: wrap; width: 420rpx">
+                  <view v-for="val in item.IndustrialSubjectList.slice(0, 4)" :key="val.IndustrialSubjectId" class="text-box">{{ val.SubjectName }}</view>
+                </view>
+                <block v-if="item.IndustryVideo && item.IndustrialSubjectList.length > 4">
+                  <view v-for="val in item.IndustrialSubjectList.slice(4)" :key="val.IndustrialSubjectId" class="text-box">{{ val.SubjectName }}</view>
+                </block>
+                <block v-if="!item.IndustryVideo">
+                  <view v-for="val in item.IndustrialSubjectList" :key="val.IndustrialSubjectId" class="text-box">{{ val.SubjectName }}</view>
+                </block>
+              </block>
             </view>
           </view>
         </view>
@@ -153,10 +145,10 @@
       </view>
     </u-modal>
     <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
-	<!-- 视频模块 -->
-	<videoModule :showVideoPop="showVideoPop" :videoPopList="videoPopList" />
-	<modalDialog :isShowhasPermission="isShowhasPermission" :applyForIsShow="applyForIsShow" :jurisdictionList="jurisdictionList" :hasPermission="hasPermission" />
-    <suspenButton v-if="wholeShowListData.IsShow" />
+    <!-- 视频模块 -->
+    <videoModule :showVideoPop="showVideoPop" :videoPopList="videoPopList" />
+    <modalDialog :isShowhasPermission="isShowhasPermission" :applyForIsShow="applyForIsShow" :jurisdictionList="jurisdictionList" :hasPermission="hasPermission" />
+    <suspenButton :show.sync="wholeShowListData.IsShow" v-if="wholeShowListData.IsShow" />
   </view>
 </template>
 
@@ -176,8 +168,8 @@ export default {
     coverGuide,
     freeCharge,
     suspenButton,
-	videoModule,
-	modalDialog
+    videoModule,
+    modalDialog,
   },
   data() {
     return {
@@ -217,12 +209,13 @@ export default {
       isCancelBtn: false,
       scrollLeft: 0,
       showTransition: false, //点击绝密后的隐现
-	  showVideoPop:false, //视频弹窗显示控制
-	  videoPopList:{},// 视频信息
-	  isShowhasPermission: false, //  联系销售的提交申请
-	  applyForIsShow: false, // 提交申请
-	  jurisdictionList: {},
-	  hasPermission: "", //权限
+      showVideoPop: false, //视频弹窗显示控制
+      videoPopList: {}, // 视频信息
+      isShowhasPermission: false, //  联系销售的提交申请
+      applyForIsShow: false, // 提交申请
+      jurisdictionList: {},
+      hasPermission: "", //权限
+      labelListData: [],
     };
   },
   onLoad(option) {
@@ -260,6 +253,7 @@ export default {
             ChartPermissionId: Number(this.tabAct_id),
           });
         }
+        this.getHomeStockName();
       });
     },
     //获取二级事件
@@ -276,12 +270,14 @@ export default {
     toggleTab(item, index) {
       this.strategyIndex = index;
       this.deepCoverFocus = [];
+      this.labelListData = [];
       if (this.tabAct_id !== item.ChartPermissionId) {
         this.tabAct_id = item.ChartPermissionId;
         this.$store.dispatch("statistics", {
           PageType: "Report",
           ChartPermissionId: Number(this.tabAct_id),
         });
+        this.getHomeStockName();
         this.pageNum = 1;
         uni.pageScrollTo({
           scrollTop: 0,
@@ -454,46 +450,60 @@ export default {
       this.page_no = 1;
       this.getIndustryList();
     },
-	// 视频播放权限判断
-	handelVideoPlay(item){
-		if (!this.$store.state.isAuth && !this.$store.state.isBind) {
-		  if (item.AuthInfo.HasPermission == 1) {
-		    this.playVideo(item)
-		  } else {
-		    this.hasPermission = item.AuthInfo.HasPermission;
-		    this.jurisdictionList.ActivityId = item.IndustryVideo.Id;
-		    this.jurisdictionList.isAudioVideo = 3;
-		    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.isAuth && !this.$store.state.isBind) {
+        if (item.AuthInfo.HasPermission == 1) {
+          this.playVideo(item);
+        } else {
+          this.hasPermission = item.AuthInfo.HasPermission;
+          this.jurisdictionList.ActivityId = item.IndustryVideo.Id;
+          this.jurisdictionList.isAudioVideo = 3;
+          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");
+      }
+    },
+    playVideo(item) {
+      let params = {
+        Id: item.IndustryVideo.Id,
+        ResourceUrl: item.IndustryVideo.ResourceUrl,
+        BackgroundImg: item.IndustryVideo.BackgroundImg,
+        Title: `5min【${item.IndustryName}】逻辑解析`,
+      };
+      if (this.$store.state.videoPlay.playVideoId != item.Id) {
+        this.$store.commit("videoPlay/palyTimeUpdate", 0);
+        this.$store.commit("videoPlay/playVideo", item.Id);
+      }
+      // console.log(params);
+      this.globalBgAudioManager.stop();
+      this.videoPopList = params;
+      this.showVideoPop = true;
+    },
+    // 获取产业下的标签
+    async getHomeStockName() {
+      const res = await Reports.getHomeStockName({
+        ChartPermissionId: this.tabAct_id,
+      });
+      if (res.Ret === 200) {
+        this.labelListData = res.Data.List || [];
+      }
+    },
 
-	},
-	playVideo(item){
-		let params={
-			Id:item.IndustryVideo.Id,
-			ResourceUrl:item.IndustryVideo.ResourceUrl,
-			BackgroundImg:item.IndustryVideo.BackgroundImg,
-			Title:`5min【${item.IndustryName}】逻辑解析`
-		}
-		if (this.$store.state.videoPlay.playVideoId != item.Id) {
-		  this.$store.commit("videoPlay/palyTimeUpdate", 0);
-		  this.$store.commit("videoPlay/playVideo", item.Id);
-		}
-		// console.log(params);
-		this.globalBgAudioManager.stop();
-		this.videoPopList = params;
-		this.showVideoPop = true;
-	}
+    // 策略平台的 标签 点击事件
+    strategyLabelHadel(item) {
+      //去往文章详情页面
+      this.$store.dispatch("checkHandle", "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId);
+    },
   },
   /* 触底 */
   onReachBottom: Throttle(function () {
@@ -591,7 +601,7 @@ export default {
         flex: 1;
         height: 100%;
         font-size: 30rpx;
-        color: #8D8D8D;
+        color: #8d8d8d;
         background-color: #f6f6f6;
         padding-left: 33rpx;
         border-radius: 70rpx;
@@ -644,6 +654,51 @@ export default {
       }
     }
   }
+  .label-content {
+    display: flex;
+    flex-wrap: wrap;
+    background-color: #fff;
+    padding: 30rpx 30rpx 0rpx 80rpx;
+    margin: 20rpx 0 0;
+    .item {
+      margin-bottom: 20px !important;
+    }
+  }
+  .label-content-column {
+    display: flex;
+    flex-wrap: wrap;
+    flex-direction: column;
+    overflow: hidden;
+    padding: 30rpx 30rpx 0;
+    overflow-x: auto;
+    height: 258rpx;
+    margin: 20rpx 0 0;
+    background-color: #fff;
+    justify-content: space-between;
+    &::after {
+      content: "";
+      width: 0rpx;
+      height: 46rpx;
+    }
+  }
+  .label-content .item,
+  .label-content-column .item {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    margin-right: 40rpx;
+    margin-bottom: 10px;
+    width: 170rpx;
+    height: 46rpx;
+    background: #f5f5f5;
+    box-shadow: 0px 2rpx 9rpx 0rpx rgba(0, 0, 0, 0.16), inset 0rpx 4rpx 4rpx 0rpx rgba(255, 255, 255, 0.49);
+    border-radius: 65rpx;
+    font-size: 26rpx;
+  }
+  .label-content .item,
+  .label-content-column .item-size {
+    font-size: 24rpx;
+  }
 }
 .content-intimate {
   position: fixed;

+ 249 - 249
reportPages/IndustryReport/IndustryReport.vue

@@ -3,19 +3,14 @@
     <view v-if="haveData">
       <view class="content-top">
         <view class="top-bg">
-			<!-- 详情封面图 -->
-			<image :src="industryVideo.DetailImgUrl" class="industry-video-poster" 
-			v-show="industryVideo.Id && industryVideo.DetailImgUrl && !havePlayed"
-			@click="handelVideoPlay"></image>
-			<!-- 视频 -->
-			<video :src="industryVideo.ResourceUrl" class="industry-video" id="industry-video"
-			v-show="industryVideo.ResourceUrl && (havePlayed || (!industryVideo.DetailImgUrl))" controls></video>
-			<view class="top-bg-title" 
-			:style="{'height':industryVideo.Id?'70rpx':'99rpx',
-			'background-color':industryVideo.Id?'white':'#d1ebff'}">产业赛道布局于{{ layoutTime }}</view>
-		</view>
-		<!-- industryVideo.ResourceUrl -- 视频url -->
-        <view class="top-box" :style="{'top':industryVideo.Id?'418rpx':'99rpx'}">
+          <!-- 详情封面图 -->
+          <image :src="industryVideo.DetailImgUrl" class="industry-video-poster" v-show="industryVideo.Id && industryVideo.DetailImgUrl && !havePlayed" @click="handelVideoPlay"></image>
+          <!-- 视频 -->
+          <video :src="industryVideo.ResourceUrl" class="industry-video" id="industry-video" v-show="industryVideo.ResourceUrl && (havePlayed || !industryVideo.DetailImgUrl)" controls></video>
+          <view class="top-bg-title" :style="{ height: industryVideo.Id ? '70rpx' : '99rpx', 'background-color': industryVideo.Id ? 'white' : '#d1ebff' }">产业赛道布局于{{ layoutTime }}</view>
+        </view>
+        <!-- industryVideo.ResourceUrl -- 视频url -->
+        <view class="top-box" :style="{ top: industryVideo.Id ? '418rpx' : '99rpx' }">
           <view class="top-tab-cont">
             <view class="tab-cont">
               <scroll-view scroll-x="true" scroll-with-animation class="scroll-tab" :scroll-into-view="'_' + tabIndex">
@@ -32,9 +27,9 @@
           </view>
         </view>
       </view>
-      <view class="collect-ul" :style="{'padding-top':industryVideo.ResourceUrl?'528rpx':'210rpx'}">
+      <view class="collect-ul" :style="{ 'padding-top': industryVideo.ResourceUrl ? '528rpx' : '210rpx' }">
         <!-- 其他tab -->
-        <block v-show="tabAct_id!==99999">
+        <block v-show="tabAct_id !== 99999">
           <view class="collect-ltem" v-for="(item, index) in collectList" :key="index" @click="goDetail(item, index)">
             <view class="item-left">
               <text class="title text_twoLine"
@@ -45,23 +40,22 @@
             </view>
             <u-icon name="arrow-right" color="#BDBDBD" size="34"></u-icon>
           </view>
-          <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="totalPage > 1&&tabAct_id!==99999" />
+          <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="totalPage > 1 && tabAct_id !== 99999" />
         </block>
         <!-- 时间线 -->
-        <block v-if="tabAct_id===99999">
+        <block v-if="tabAct_id === 99999">
           <view class="time-line">
-            <view class="line-item" v-for="(item,index) in timeLine" :key="index" @click="goDetailFromTimeLine(item, index)">
-              <view class="time">{{item.date}}</view>
+            <view class="line-item" v-for="(item, index) in timeLine" :key="index" @click="goDetailFromTimeLine(item, index)">
+              <view class="time">{{ item.date }}</view>
               <view class="content" v-if="item.Content.length">
-                <rich-text class="rich-text" :style="{height:item.isExpand?'auto':richTextHeight+'px'}" :data-index="index" :class="{'expand':item.isExpand}"
-                  :nodes="item.Content">
-                </rich-text> 
-                <view class="expan-btn" :class="{'pos':!item.isExpand}" @click="handleExpand(item,index)" v-if="item.isShowBtn">{{item.isExpand?'收起':'展开'}}</view>
+                <rich-text class="rich-text" :style="{ height: item.isExpand ? 'auto' : richTextHeight + 'px' }" :data-index="index" :class="{ expand: item.isExpand }" :nodes="item.Content">
+                </rich-text>
+                <view class="expan-btn" :class="{ pos: !item.isExpand }" @click="handleExpand(item, index)" v-if="item.isShowBtn">{{ item.isExpand ? "收起" : "展开" }}</view>
               </view>
-              <view class="title" v-else>{{item.Title}}</view>
+              <view class="title" v-else>{{ item.Title }}</view>
             </view>
             <view v-show="loadTimeLine" class="loadTimeLine"></view>
-            <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="totalPage > 1&&tabAct_id===99999" />
+            <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="totalPage > 1 && tabAct_id === 99999" />
           </view>
         </block>
       </view>
@@ -71,8 +65,8 @@
       <text>暂时没有报告的内容</text>
     </view>
     <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
-   <!-- 权限弹窗 -->
-   	<modalDialog :isShowhasPermission="isShowhasPermission" :applyForIsShow="applyForIsShow" :jurisdictionList="jurisdictionList" :hasPermission="hasPermission" />
+    <!-- 权限弹窗 -->
+    <modalDialog :isShowhasPermission="isShowhasPermission" :applyForIsShow="applyForIsShow" :jurisdictionList="jurisdictionList" :hasPermission="hasPermission" />
   </view>
 </template>
 
@@ -107,22 +101,22 @@ export default {
       toggleTabIndex: 0,
       titleReport: "",
       pcTabActive: "",
-      industryVideo:{},
-      authInfo:{},
-      havePlayed:false,
+      industryVideo: {},
+      authInfo: {},
+      havePlayed: false,
       isShowhasPermission: false, //  联系销售的提交申请
       applyForIsShow: false, // 提交申请
       jurisdictionList: {},
       hasPermission: "", //权限
-      timeLine:[],//时间线数据
-      mockTimeLine:[
+      timeLine: [], //时间线数据
+      mockTimeLine: [
         {
-          date:'不重要',
-          Content:'<p>hello,world</p><p>hello,world</p><p>hello,world</p>'
-        },//第一项是为了获取当前手机下,三行是多少相对高度
+          date: "不重要",
+          Content: "<p>hello,world</p><p>hello,world</p><p>hello,world</p>",
+        }, //第一项是为了获取当前手机下,三行是多少相对高度
       ],
-      loadTimeLine:false,//时间线的遮罩
-      richTextHeight:1000,//晨会富文本最大高度
+      loadTimeLine: false, //时间线的遮罩
+      richTextHeight: 1000, //晨会富文本最大高度
     };
   },
   onLoad(option) {
@@ -135,7 +129,7 @@ export default {
   },
   components: {
     freeCharge,
-	  modalDialog
+    modalDialog,
   },
   watch: {
     //监听tabs的变化
@@ -156,8 +150,8 @@ export default {
       if (this.tabAct_id !== item.CategoryId) {
         this.tabAct_id = item.CategoryId;
         this.pageNum = 1;
-        this.timeLine=[]
-        this.totalPage=""
+        this.timeLine = [];
+        this.totalPage = "";
         uni.pageScrollTo({
           scrollTop: 0,
           duration: 0,
@@ -167,7 +161,7 @@ export default {
     toArticleCategoryList() {
       Reports.toArticleCategoryList({
         IndustrialManagementId: this.industrialManagementId,
-        ShowTimeLine:1
+        ShowTimeLine: 1,
       }).then((res) => {
         if (res.Ret == 200) {
           uni.setNavigationBarTitle({
@@ -175,8 +169,8 @@ export default {
           });
           this.titleReport = res.Data.IndustryName;
           this.layoutTime = res.Data.LayoutTime;
-		  this.industryVideo = res.Data.IndustryVideo
-		  this.authInfo = res.Data.AuthInfo
+          this.industryVideo = res.Data.IndustryVideo;
+          this.authInfo = res.Data.AuthInfo;
           if (res.Data.List) {
             this.tabAct_id = res.Data.List[0].CategoryId;
             this.tabBars = res.Data.List;
@@ -187,51 +181,51 @@ export default {
     /* 获取列表 */
     getCollectList() {
       //just for test
-      if(this.tabAct_id===99999) {
+      if (this.tabAct_id === 99999) {
         Reports.getArticleList({
-        PageSize: this.pageSize,
-        CurrentIndex: this.page_no,
-        CategoryId: 99999,
-        IndustrialManagementId: this.industrialManagementId,
-      }).then((res)=>{
-       if(res.Ret===200){
-         this.loadTimeLine = true
-         this.status = this.page_no < res.Data.Paging.Pages ? "loadmore" : "nomore"
-         this.totalPage = res.Data.Paging.Pages
-         let list = res.Data.List||[]
-         list = list.map(item=>{
-            let temp = item
-            temp.date = item.PublishTime.split(" ")[0]
-            if(item.Content.length){
-              temp.isExpand = true
-              temp.isShowBtn = true
+          PageSize: this.pageSize,
+          CurrentIndex: this.page_no,
+          CategoryId: 99999,
+          IndustrialManagementId: this.industrialManagementId,
+        }).then((res) => {
+          if (res.Ret === 200) {
+            this.loadTimeLine = true;
+            this.status = this.page_no < res.Data.Paging.Pages ? "loadmore" : "nomore";
+            this.totalPage = res.Data.Paging.Pages;
+            let list = res.Data.List || [];
+            list = list.map((item) => {
+              let temp = item;
+              temp.date = item.PublishTime.split(" ")[0];
+              if (item.Content.length) {
+                temp.isExpand = true;
+                temp.isShowBtn = true;
+              }
+              return temp;
+            });
+            if (this.page_no === 1) {
+              this.timeLine = list;
+              this.haveData = this.timeLine.length ? true : false;
+              if (this.refresh) {
+                uni.stopPullDownRefresh();
+                this.refresh = false;
+              }
+            } else {
+              this.timeLine = this.timeLine.concat(list);
             }
-            return temp
-          })
-         if(this.page_no===1){
-          this.timeLine = list
-          this.haveData = this.timeLine.length ? true : false;
-          if (this.refresh) {
-            uni.stopPullDownRefresh();
-            this.refresh = false;
-          }
-         }else{
-           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.getConentsHeight()
-        },0)
-      })
-        return
+          this.timeLine.unshift(this.mockTimeLine[0]);
+          //在获取高度前把所有的晨会展开,收起的话无法获取正确高度
+          this.timeLine.forEach((item) => {
+            if (item.Content.length) {
+              item.isExpand = true;
+              item.isShowBtn = true;
+            }
+          });
+          setTimeout(() => {
+            this.getConentsHeight();
+          }, 0);
+        });
+        return;
       }
       Reports.getArticleList({
         PageSize: this.pageSize,
@@ -265,7 +259,7 @@ export default {
       await this.$store.dispatch("checkHandle");
       if (!this.$store.state.isAuth && !this.$store.state.isBind) {
         // 已授权已绑定
-        if (item.SubCategoryName=== "路演精华") {
+        if (item.SubCategoryName === "路演精华") {
           //跳转路演精华
           uni.navigateTo({
             url: "/reportPages/roadEssence/roadEssence?id=" + item.ArticleId,
@@ -277,75 +271,78 @@ export default {
         }
       }
     },
-	// 视频播放权限判断
-	handelVideoPlay(){
-		if (!this.$store.state.isAuth && !this.$store.state.isBind) {
-		  if (this.authInfo.HasPermission == 1) {
-		    this.playVideo()
-		  } else {
-		    this.hasPermission = this.authInfo.HasPermission;
-		    this.jurisdictionList.ActivityId = this.industryVideo.Id;
-		    this.jurisdictionList.isAudioVideo = 3;
-		    if (this.hasPermission == 2) {
-		      this.jurisdictionList.SellerMobile = this.authInfo.SellerMobile;
-		      this.jurisdictionList.SellerName = this.authInfo.SellerName;
-		      this.jurisdictionList.PopupMsg = this.authInfo.PopupMsg;
-		      this.isShowhasPermission = true;
-		    } else if (this.hasPermission == 3 || this.hasPermission == 4 || this.hasPermission == 5) {
-		      this.jurisdictionList.PopupMsg = this.authInfo.PopupMsg;
-		      this.applyForIsShow = true;
-		    }
-		  }
-		} else {
-		  this.$store.dispatch("checkHandle");
-		}
-	},
-	// 播放视频
-	playVideo(){		
-		const query = uni.createSelectorQuery().in(this)
-		query.select("#industry-video").context(data =>{
-			data.context.play()
-			setTimeout(()=>{
-				this.havePlayed=true
-			},10)
-		}).exec()
-	},
+    // 视频播放权限判断
+    handelVideoPlay() {
+      if (!this.$store.state.isAuth && !this.$store.state.isBind) {
+        if (this.authInfo.HasPermission == 1) {
+          this.playVideo();
+        } else {
+          this.hasPermission = this.authInfo.HasPermission;
+          this.jurisdictionList.ActivityId = this.industryVideo.Id;
+          this.jurisdictionList.isAudioVideo = 3;
+          if (this.hasPermission == 2) {
+            this.jurisdictionList.SellerMobile = this.authInfo.SellerMobile;
+            this.jurisdictionList.SellerName = this.authInfo.SellerName;
+            this.jurisdictionList.PopupMsg = this.authInfo.PopupMsg;
+            this.isShowhasPermission = true;
+          } else if (this.hasPermission == 3 || this.hasPermission == 4 || this.hasPermission == 5) {
+            this.jurisdictionList.PopupMsg = this.authInfo.PopupMsg;
+            this.applyForIsShow = true;
+          }
+        }
+      } else {
+        this.$store.dispatch("checkHandle");
+      }
+    },
+    // 播放视频
+    playVideo() {
+      const query = uni.createSelectorQuery().in(this);
+      query
+        .select("#industry-video")
+        .context((data) => {
+          data.context.play();
+          setTimeout(() => {
+            this.havePlayed = true;
+          }, 10);
+        })
+        .exec();
+    },
     //展开收起晨会内容
-    handleExpand(item,index){
-      item.isExpand = !item.isExpand
-      this.timeLine.splice(index,1,item)
+    handleExpand(item, index) {
+      item.isExpand = !item.isExpand;
+      this.timeLine.splice(index, 1, item);
     },
     //获取所有晨会内容的高度并决定是否显示展开收起按钮
-    getConentsHeight(){
-      const query = wx.createSelectorQuery()
-      query.selectAll(".rich-text").boundingClientRect()
-      query.exec(res=>{
+    getConentsHeight() {
+      const query = wx.createSelectorQuery();
+      query.selectAll(".rich-text").boundingClientRect();
+      query.exec((res) => {
         /* console.log(res[0][0].height) */
         //根据timeLine的第一项确定当前手机三行文字的高度
-        const standardHeight = res[0][0].height 
-        this.richTextHeight = standardHeight
-        res[0].forEach(item=>{
-          let temp = this.timeLine[item.dataset.index]
+        const standardHeight = res[0][0].height;
+        this.richTextHeight = standardHeight;
+        res[0].forEach((item) => {
+          let temp = this.timeLine[item.dataset.index];
           //超过这个高度的,需要显示展开/收起按钮
-          if(item.height>standardHeight){
-            temp.isExpand = false
-            temp.isShowBtn = true
-          }else{
-            temp.isExpand = true
-            temp.isShowBtn = false
+          if (item.height > standardHeight) {
+            temp.isExpand = false;
+            temp.isShowBtn = true;
+          } else {
+            temp.isExpand = true;
+            temp.isShowBtn = false;
           }
-        })
+        });
         //然后把timeLine的第一项扔掉
-        this.timeLine.shift()
-        this.loadTimeLine = false
-      })
+        this.timeLine.shift();
+        this.loadTimeLine = false;
+      });
     },
-    async goDetailFromTimeLine(item, index){
-      if(item.Content.length!==0) return;
+    async goDetailFromTimeLine(item, index) {
+      if (item.Content.length !== 0) return;
       await this.$store.dispatch("checkHandle");
       if (!this.$store.state.isAuth && !this.$store.state.isBind) {
         // 已授权已绑定
-        if (item.SubCategoryName=== "路演精华") {
+        if (item.SubCategoryName === "路演精华") {
           //跳转路演精华
           uni.navigateTo({
             url: "/reportPages/roadEssence/roadEssence?id=" + item.Id,
@@ -357,9 +354,9 @@ export default {
         }
       }
     },
-    getNode(content,isExpand){
-      return `<div style='-webkit-line-clamp: ${isExpand?9999:3};-webkit-box-orient: vertical;display: -webkit-box;overflow: hidden;text-overflow: ellipsis;'>${content}</div>`
-    }
+    getNode(content, isExpand) {
+      return `<div style='-webkit-line-clamp: ${isExpand ? 9999 : 3};-webkit-box-orient: vertical;display: -webkit-box;overflow: hidden;text-overflow: ellipsis;'>${content}</div>`;
+    },
   },
   /* 触底 */
   onReachBottom: Throttle(function () {
@@ -403,34 +400,34 @@ export default {
     width: 100%;
     z-index: 100;
     background-color: white;
-	text-align: center;
-	.industry-video-poster{
-		border-radius: 8rpx 8rpx 0 0;
-		height: 340rpx;
-		width: 728rpx;
-	}
-	.industry-video{
-		height: 340rpx;
-		width: 728rpx;
-	}
-	.top-bg-title{
-		height: 99rpx;
-		color: #2c83ff;
-		background-color: #d1ebff;
-		font-size: 28rpx;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-	}
-	.test{
-		position: relative;
-		span{
-			position: absolute;
-			left: 30rpx;
-			bottom: 30rpx;
-			color: white;
-		}
-	}
+    text-align: center;
+    .industry-video-poster {
+      border-radius: 8rpx 8rpx 0 0;
+      height: 340rpx;
+      width: 728rpx;
+    }
+    .industry-video {
+      height: 340rpx;
+      width: 728rpx;
+    }
+    .top-bg-title {
+      height: 99rpx;
+      color: #2c83ff;
+      background-color: #d1ebff;
+      font-size: 28rpx;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+    }
+    .test {
+      position: relative;
+      span {
+        position: absolute;
+        left: 30rpx;
+        bottom: 30rpx;
+        color: white;
+      }
+    }
   }
   .top-box {
     position: fixed;
@@ -533,95 +530,99 @@ export default {
         color: #999;
       }
     }
-    .time-line{
-      margin-top:15rpx;
-      padding:30rpx 40rpx 50rpx 40rpx;
+    .time-line {
+      margin-top: 15rpx;
+      padding: 30rpx 40rpx 50rpx 40rpx;
       min-height: calc(100vh - 190rpx);
-      background-color:#FFFFFF;
+      background-color: #ffffff;
       position: relative;
-      .loadTimeLine{
-        top:0;bottom:0;left:0;right:0;
-        position:absolute;
+      .loadTimeLine {
+        top: 0;
+        bottom: 0;
+        left: 0;
+        right: 0;
+        position: absolute;
         background-color: #fff;
         z-index: 6;
       }
-      .line-item{
-        position:relative;
-        padding:0 0 50rpx 40rpx;
+      .line-item {
+        position: relative;
+        padding: 0 0 50rpx 40rpx;
         /* border-left:1rpx solid #DAE9FD; */
-        &:last-child{
+        &:last-child {
           padding-bottom: 0;
-          &::after{
+          &::after {
             height: calc(100% - 25rpx);
           }
         }
-        &:first-child{
-          .time{
-            &::after{
-              background-color: #3385FF;
+        &:first-child {
+          .time {
+            &::after {
+              background-color: #3385ff;
             }
           }
         }
-        &::before,&::after{
-          position:absolute;
+        &::before,
+        &::after {
+          position: absolute;
           content: "";
-          
         }
-        &::before{
-          width:24rpx;
+        &::before {
+          width: 24rpx;
           height: 24rpx;
-          background-color: #DAE9FD;
+          background-color: #dae9fd;
           z-index: 1;
-          left:0;
-          top:27rpx;
-          transform: translate(-50%,-50%);
+          left: 0;
+          top: 27rpx;
+          transform: translate(-50%, -50%);
           border-radius: 50%;
         }
-        &::after{
-          top:17rpx;
-          left:0;
-          width:1rpx;
-          height:calc(100%);
-          background-color: #DAE9FD;
+        &::after {
+          top: 17rpx;
+          left: 0;
+          width: 1rpx;
+          height: calc(100%);
+          background-color: #dae9fd;
           z-index: 2;
         }
-        .time{
-          width:245rpx;
+        .time {
+          width: 245rpx;
           height: 55rpx;
           text-align: center;
           line-height: 45rpx;
-          padding:5rpx 20rpx;
-          background-color: #F5F9FF;
+          padding: 5rpx 20rpx;
+          background-color: #f5f9ff;
           border-radius: 64rpx;
-          color:#5181C9;
+          color: #5181c9;
           font-size: 32rpx;
-          margin-bottom:20rpx;
+          margin-bottom: 20rpx;
           position: relative;
-          &::before,&::after{
-            position:absolute;
+          &::before,
+          &::after {
+            position: absolute;
             content: "";
-            left:-36rpx;
-            top:27rpx;
-            width:24rpx;
-            height:1rpx;
-            background-color:#DAE9FD;
+            left: -36rpx;
+            top: 27rpx;
+            width: 24rpx;
+            height: 1rpx;
+            background-color: #dae9fd;
             z-index: 1;
           }
-          &::after{
-            left:-40rpx;
-            top:27rpx;
-            width:12rpx;
-            height:12rpx;
+          &::after {
+            left: -40rpx;
+            top: 27rpx;
+            width: 12rpx;
+            height: 12rpx;
             border-radius: 50%;
-            transform: translate(-50%,-50%);
-            background-color:#9DC5FF;
+            transform: translate(-50%, -50%);
+            background-color: #9dc5ff;
             z-index: 3;
           }
         }
-        .content{
-          color:#666666;
+        .content {
+          color: #666666;
           position: relative;
-          .rich-text{
+          .rich-text {
             overflow: hidden;
             text-overflow: ellipsis;
             text-align: justify;
@@ -629,41 +630,40 @@ export default {
             -webkit-line-clamp: 3;
             -webkit-box-orient: vertical;
             position: relative;
-            &.expand{
+            &.expand {
               -webkit-line-clamp: 999;
               height: auto;
             }
           }
-          .expan-btn{
-            color:#2C83FF;
+          .expan-btn {
+            color: #2c83ff;
             text-align: right;
-            &.pos{
-              padding:0 0 0 40rpx;
+            &.pos {
+              padding: 0 0 0 40rpx;
               background-color: rgba(255, 255, 255, 0.882);
-              position:absolute;
-              right:0;
-              bottom:0;
+              position: absolute;
+              right: 0;
+              bottom: 0;
             }
           }
         }
-        .title{
-          color:#3385FF;
+        .title {
+          color: #3385ff;
         }
       }
     }
-    
   }
 }
-#industry-content{
-  .industry-video-module{
-	  .global-video-box{
-		  .video-content{
-			  top: 400rpx!important;
-		  }
-		  .close-icon{
-			  top: 330rpx!important;
-		  }
-	  }
+#industry-content {
+  .industry-video-module {
+    .global-video-box {
+      .video-content {
+        top: 400rpx !important;
+      }
+      .close-icon {
+        top: 330rpx !important;
+      }
+    }
   }
 }
 </style>

+ 12 - 8
reportPages/reportSecretDetail/reportSecretDetail.vue

@@ -1,6 +1,6 @@
 <template>
   <view class="container content-secret forbid-copy">
-    <block v-if="hasPermission == 1 || !hasPermission">
+    <block v-if="hasPermission == 1">
       <view class="container-top" v-if="detali">
         <view class="content-title">
           {{ detali.Title }}
@@ -189,14 +189,16 @@ export default {
               ArticleId: this.id,
             });
       if (res.Ret === 200) {
-        let arr = res.Data.Detail.VideoPlaySeconds.split(":");
-        res.Data.Detail.VideoPlaySeconds = arr[0] * 60 + (arr[1] - 0);
-        this.detali = res.Data.Detail;
         this.hasPermission = res.Data.HasPermission;
-        this.videoUrl = res.Data.Detail.VideoUrl;
         this.isType == 1 ? (this.dataList = res.Data.List || []) : (this.dataListResearch = res.Data.List || []);
-        if (this.globalBgAudioManager.src === this.videoUrl && this.globalBgAudioManager.paused === false) {
-          this.isPlay = true;
+        if (res.Data.Detail) {
+          let arr = res.Data.Detail.VideoPlaySeconds.split(":");
+          res.Data.Detail.VideoPlaySeconds = arr[0] * 60 + (arr[1] - 0);
+          this.detali = res.Data.Detail;
+          this.videoUrl = res.Data.Detail.VideoUrl;
+          if (this.globalBgAudioManager.src === this.videoUrl && this.globalBgAudioManager.paused === false) {
+            this.isPlay = true;
+          }
         }
       }
     },
@@ -300,9 +302,11 @@ export default {
     uni.setNavigationBarTitle({
       title: this.isType == 1 ? "报告精选" : this.isType == 2 ? "本周研究汇总" : "上周纪要汇总",
     });
-    this.userIsShowAlert();
     await this.$store.dispatch("checkHandle");
     if (!this.$store.state.isAuth && !this.$store.state.isBind) this.getDetilaiList();
+
+    // 免费送月卡
+    // this.userIsShowAlert();
   },
 
   onShow() {

+ 12 - 7
reportPages/roadEssence/roadEssence.vue

@@ -158,13 +158,15 @@ export default {
         ArticleId: this.id,
       });
       if (res.Ret === 200) {
-        let arr = res.Data.Detail.VideoPlaySeconds.split(":");
-        res.Data.Detail.VideoPlaySeconds = arr[0] * 60 + (arr[1] - 0);
-        this.detali = res.Data.Detail;
         this.haveAuth = res.Data.HasPermission;
-        this.videoUrl = res.Data.Detail.VideoUrl;
-        if (this.globalBgAudioManager.src === this.videoUrl && this.globalBgAudioManager.paused === false) {
-          this.isPlay = true;
+        if (res.Data.Detail) {
+         let arr = res.Data.Detail.VideoPlaySeconds.split(":");
+          res.Data.Detail.VideoPlaySeconds = arr[0] * 60 + (arr[1] - 0);
+          this.detali = res.Data.Detail;
+          this.videoUrl = res.Data.Detail.VideoUrl;
+          if (this.globalBgAudioManager.src === this.videoUrl && this.globalBgAudioManager.paused === false) {
+            this.isPlay = true;
+          }
         }
       }
     },
@@ -279,7 +281,10 @@ export default {
   },
   async onLoad(option) {
     this.id = Number(option.id) || "";
-    this.userIsShowAlert();
+
+    // 免费送月卡
+    // this.userIsShowAlert();
+
     await this.$store.dispatch("checkHandle");
     if (!this.$store.state.isAuth && !this.$store.state.isBind) {
       //已授权已绑定