瀏覽代碼

10.2.1 commit

bding 2 年之前
父節點
當前提交
8d2f35d75b
共有 44 個文件被更改,包括 2277 次插入1581 次删除
  1. 354 264
      activityPages/activityDetail/activityDetail.vue
  2. 1 3
      activityPages/components/selectMixins.js
  3. 91 77
      activityPages/playBack/playBack.vue
  4. 98 89
      activityPages/specialDetail/specialDetail.vue
  5. 86 75
      activityPages/specialResearchPage/specialResearchPage.vue
  6. 210 163
      activityPages/themeActivity/themeActivity.vue
  7. 27 9
      components/ItemComponent/activityItem.vue
  8. 6 6
      components/ItemComponent/chartItem.vue
  9. 1 1
      components/ItemComponent/reportItem.vue
  10. 42 25
      components/ItemComponent/roadshowItem.vue
  11. 11 6
      components/activity/indexActivity.js
  12. 71 0
      components/notHaveLogin.vue
  13. 13 17
      components/report/timeLine.vue
  14. 1 1
      config/modules/Reports.js
  15. 12 2
      mixin/index.js
  16. 6 4
      pageMy/browseHistory/browseHistory.vue
  17. 22 14
      pageMy/chartPage/chartPage.vue
  18. 40 27
      pageMy/login/login.vue
  19. 7 4
      pageMy/myCollection/myCollection.vue
  20. 30 5
      pageMy/myPage/myPage.vue
  21. 0 1
      pageMy/mySchedulepage/mySchedulepage.vue
  22. 40 36
      pageMy/reportDetail/reportDetail.vue
  23. 83 67
      pageMy/reportPage/reportPage.vue
  24. 1 1
      pages-purchaser/components/mixinsAuthorTheme.js
  25. 38 27
      pages-search/components/report.vue
  26. 2 1
      pages-search/components/roadshow.vue
  27. 123 87
      pages-search/indedxSearch/indedxSearch.vue
  28. 104 66
      pages/activity/activity.vue
  29. 37 7
      pages/index/index.vue
  30. 57 11
      pages/material/material.vue
  31. 61 22
      pages/purchaser/purchaser.vue
  32. 4 5
      pages/reportForm/components/strategy.vue
  33. 89 72
      pages/reportForm/reportForm.vue
  34. 66 53
      reportPages/IndustryReport/IndustryReport.vue
  35. 8 5
      reportPages/authorPages/authorPages.vue
  36. 45 27
      reportPages/hotList/hotList.vue
  37. 27 4
      reportPages/industrialReport/industrialReport.vue
  38. 93 84
      reportPages/keyCompany/keyCompany.vue
  39. 1 1
      reportPages/recentPages/recentPages.vue
  40. 114 111
      reportPages/reportSecretDetail/reportSecretDetail.vue
  41. 3 1
      reportPages/researchTheme/researchTheme.vue
  42. 110 96
      reportPages/roadEssence/roadEssence.vue
  43. 1 1
      reportPages/secretDetails/secretDetails.vue
  44. 41 3
      store/index.js

+ 354 - 264
activityPages/activityDetail/activityDetail.vue

@@ -1,297 +1,369 @@
 <template>
-  <view class="container activity-detail">
-    <is-track-follow :isShowFollowButton.sync="detailData.IsShowFollowButton" source="activity" :sourceId="detailData.ActivityId" :isFollowData.sync="detailData.IsFollowButton" />
-    <view class="" v-if="haveAuth == 1">
-      <block v-if="detailData.YidongActivityUrl">
-        <web-view :src="detailData.YidongActivityUrl"></web-view>
-      </block>
-      <block v-else>
-        <!-- 头部滚动显示 -->
-        <view class="notice" v-if="detailData.IsLimitPeople">
-          <van-notice-bar color="#FFFFFF" background="#FE9000" text="该活动参与名额有限,报名客户请按时参加,若不能按时参加请及时取消报名,爽约会影响您的后续报名资格" />
-        </view>
-        <!-- 内容部分 -->
-        <view class="content">
-          <view v-if="detailData.ActivityName" class="dialog-title brackets-title">{{ detailData.ActivityName }}</view>
-          <block v-if="detailData.FileType == 1">
-            <view class="audio-card" v-if="detailData.VoiceList && detailData.VoiceList.Url">
-              <view class="slider-paly">
-                <view style="flex: 1; padding-top: 20rpx">
-                  <slider
-                    activeColor="#3385FF"
-                    :max="detailData.VoiceList.PlaySeconds"
-                    :value="curTime"
-                    @touchstart="touchstartHandler"
-                    @change="handleAudioSliderChange($event)"
-                    @changing="handleAudioSliderChangeing($event)"
-                    block-size="16"
-                    class="slider"
-                  />
-                  <view class="card-time">
-                    <view class="time">{{ curTime | formatVoiceTime }}</view>
-                    <view class="time">{{ detailData.VoiceList.PlaySeconds | formatVoiceTime }}</view>
+  <block>
+    <view class="container activity-detail" v-if="isUserBindingPhoneNumber">
+      <is-track-follow
+        :isShowFollowButton.sync="detailData.IsShowFollowButton"
+        source="activity"
+        :sourceId="detailData.ActivityId"
+        :isFollowData.sync="detailData.IsFollowButton"
+      />
+      <view class="" v-if="haveAuth == 1">
+        <block v-if="detailData.YidongActivityUrl">
+          <web-view :src="detailData.YidongActivityUrl"></web-view>
+        </block>
+        <block v-else>
+          <!-- 头部滚动显示 -->
+          <view class="notice" v-if="detailData.IsLimitPeople">
+            <van-notice-bar
+              color="#FFFFFF"
+              background="#FE9000"
+              text="该活动参与名额有限,报名客户请按时参加,若不能按时参加请及时取消报名,爽约会影响您的后续报名资格"
+            />
+          </view>
+          <!-- 内容部分 -->
+          <view class="content">
+            <view v-if="detailData.ActivityName" class="dialog-title brackets-title">{{ detailData.ActivityName }}</view>
+            <block v-if="detailData.FileType == 1">
+              <view class="audio-card" v-if="detailData.VoiceList && detailData.VoiceList.Url">
+                <view class="slider-paly">
+                  <view style="flex: 1; padding-top: 20rpx">
+                    <slider
+                      activeColor="#3385FF"
+                      :max="detailData.VoiceList.PlaySeconds"
+                      :value="curTime"
+                      @touchstart="touchstartHandler"
+                      @change="handleAudioSliderChange($event)"
+                      @changing="handleAudioSliderChangeing($event)"
+                      block-size="16"
+                      class="slider"
+                    />
+                    <view class="card-time">
+                      <view class="time">{{ curTime | formatVoiceTime }}</view>
+                      <view class="time">{{ detailData.VoiceList.PlaySeconds | formatVoiceTime }}</view>
+                    </view>
+                  </view>
+                  <view class="is-paly-card">
+                    <image
+                      @click.stop="audioPlayBack"
+                      class=""
+                      :src="
+                        curVoiceId === detailData.ActivityId && !curAudioPaused
+                          ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/play_icon.gif'
+                          : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/pause_icon.png'
+                      "
+                    ></image>
                   </view>
                 </view>
-                <view class="is-paly-card">
+                <view class="fast-reverse">
                   <image
-                    @click.stop="audioPlayBack"
-                    class=""
-                    :src="
-                      curVoiceId === detailData.ActivityId && !curAudioPaused
-                        ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/play_icon.gif'
-                        : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/pause_icon.png'
-                    "
+                    @click="speedReverseHandler('reverse')"
+                    class="speed-img"
+                    src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/fastReverse_icon.png"
                   ></image>
+                  <block v-for="(item, index) in timesTheSpeed" :key="item.value">
+                    <view class="speed-button" v-if="isTimes == item.value" @click="isTimesHandler(index)">
+                      {{ item.name }}
+                    </view>
+                  </block>
+                  <image
+                    @click="speedReverseHandler('speed')"
+                    class="speed-img"
+                    src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/speed_icon.png"
+                  ></image>
+                </view>
+                <view class="card-title text_twoLine">
+                  {{ detailTitle(detailData.VoiceList.Name) }}
+                  <view class="title-image">
+                    <image
+                      @click="myLeavingMessageHandler"
+                      src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/leaving_message.png"
+                    ></image>
+                    <image
+                      @click="isCollectionHandeler"
+                      :src="
+                        detailData.IsCollect
+                          ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/collected_icon.png'
+                          : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/not_collected.png'
+                      "
+                    ></image>
+                  </view>
                 </view>
               </view>
-              <view class="fast-reverse">
-                <image @click="speedReverseHandler('reverse')" class="speed-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/fastReverse_icon.png"></image>
-                <block v-for="(item, index) in timesTheSpeed" :key="item.value">
-                  <view class="speed-button" v-if="isTimes == item.value" @click="isTimesHandler(index)">
-                    {{ item.name }}
+            </block>
+            <block v-if="detailData.FileType == 2">
+              <view class="video-play" v-if="detailData.VideoDetail && detailData.VideoDetail.ResourceUrl">
+                <video
+                  :id="detailData.ActivityId"
+                  :src="detailData.VideoDetail.ResourceUrl"
+                  enable-play-gesture
+                  :custom-cache="false"
+                  object-fit="contain"
+                  show-mute-btn
+                  @ended="handleVideoEnd"
+                  @play="handelVideoPlay"
+                  @loadedmetadata="loadedmetadataHandle"
+                  @timeupdate="handleVideoTimeUpdate"
+                ></video>
+                <view class="title text_twoLine">
+                  {{ detailTitle(detailData.VideoDetail.Title) }}
+                  <view class="title-image">
+                    <image
+                      @click="myLeavingMessageHandler"
+                      src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/leaving_message.png"
+                    ></image>
+                    <image
+                      @click="isCollectionHandeler"
+                      :src="
+                        detailData.IsCollect
+                          ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/collected_icon.png'
+                          : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/not_collected.png'
+                      "
+                    ></image>
                   </view>
-                </block>
-                <image @click="speedReverseHandler('speed')" class="speed-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/speed_icon.png"></image>
+                </view>
               </view>
-              <view class="card-title text_twoLine">
-                {{ detailTitle(detailData.VoiceList.Name) }}
-                <view class="title-image">
-                  <image @click="myLeavingMessageHandler" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/leaving_message.png"></image>
+            </block>
+            <view class="city-box">
+              <text class="network-left" v-if="detailData.ActivityTypeName">活动类型:</text>
+              <view class="city">
+                <text style="color: #333">
+                  <block v-if="detailData.ChartPermissionName !== '买方研选'">({{ detailData.ChartPermissionName }})</block>
+                  {{ detailData.ActivityTypeName }}
+                </text>
+                <view class="choose-limit" @click="strictSelection">
                   <image
-                    @click="isCollectionHandeler"
-                    :src="
-                      detailData.IsCollect
-                        ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/collected_icon.png'
-                        : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/not_collected.png'
-                    "
+                    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>
               </view>
             </view>
-          </block>
-          <block v-if="detailData.FileType == 2">
-            <view class="video-play" v-if="detailData.VideoDetail && detailData.VideoDetail.ResourceUrl">
-              <video
-                :id="detailData.ActivityId"
-                :src="detailData.VideoDetail.ResourceUrl"
-                enable-play-gesture
-                :custom-cache="false"
-                object-fit="contain"
-                show-mute-btn
-                @ended="handleVideoEnd"
-                @play="handelVideoPlay"
-                @loadedmetadata="loadedmetadataHandle"
-                @timeupdate="handleVideoTimeUpdate"
-              ></video>
-              <view class="title text_twoLine">
-                {{ detailTitle(detailData.VideoDetail.Title) }}
-                <view class="title-image">
-                  <image @click="myLeavingMessageHandler" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/leaving_message.png"></image>
+            <view v-if="detailData.Listndustrial.length" class="network dustrial-ui">
+              <view class="network-left">产业标签:</view>
+              <view class="network-right dustrial-content">
+                <view class="item" v-for="item in detailData.Listndustrial" :key="item.IndustrialManagementId">
+                  <view :class="['dustrial-li', item.IsJump && 'dustrial-item']" @click="goDustrialHandler(item)">{{ item.IndustryName }} </view>
                   <image
-                    @click="isCollectionHandeler"
-                    :src="
-                      detailData.IsCollect
-                        ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/collected_icon.png'
-                        : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/not_collected.png'
-                    "
+                    v-if="item.IndustryNewLabel"
+                    class="new_icon"
+                    src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"
+                    mode=""
                   ></image>
                 </view>
               </view>
             </view>
-          </block>
-          <view class="city-box">
-            <text class="network-left" v-if="detailData.ActivityTypeName">活动类型:</text>
-            <view class="city">
-              <text style="color: #333">
-                <block v-if="detailData.ChartPermissionName !== '买方研选'">({{ detailData.ChartPermissionName }})</block>
-                {{ detailData.ActivityTypeName }}
-              </text>
-              <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>
+            <view v-if="detailData.ActivityTimeText" class="network">
+              <view class="network-left">活动时间:</view>
+              <view class="network-right">{{ detailData.ActivityTimeText }}</view>
             </view>
-          </view>
-          <view v-if="detailData.Listndustrial.length" class="network dustrial-ui">
-            <view class="network-left">产业标签:</view>
-            <view class="network-right dustrial-content">
-              <view class="item" v-for="item in detailData.Listndustrial" :key="item.IndustrialManagementId">
-                <view :class="['dustrial-li', item.IsJump && 'dustrial-item']" @click="goDustrialHandler(item)">{{ item.IndustryName }} </view>
-                <image v-if="item.IndustryNewLabel" class="new_icon" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png" mode=""></image>
+            <view v-if="detailData.DistinguishedGuest" class="network">
+              <view class="network-left">嘉&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;宾:</view>
+              <view class="network-right">{{ detailData.DistinguishedGuest }}</view>
+            </view>
+            <view v-if="detailData.Host" class="network">
+              <view class="network-left">主&nbsp;&nbsp;持&nbsp;人:</view>
+              <view class="network-right">{{ detailData.Host }}</view>
+            </view>
+            <view v-if="detailData.Speaker" class="network">
+              <view class="network-left">主&nbsp;&nbsp;讲&nbsp;人:</view>
+              <view class="network-right">{{ detailData.Speaker }}</view>
+            </view>
+            <view v-if="detailData.Expert" class="network">
+              <view class="network-left">专家背景:</view>
+              <view class="network-right">
+                <rich-text :nodes="detailData.Expert"></rich-text>
               </view>
             </view>
-          </view>
-          <view v-if="detailData.ActivityTimeText" class="network">
-            <view class="network-left">活动时间:</view>
-            <view class="network-right">{{ detailData.ActivityTimeText }}</view>
-          </view>
-          <view v-if="detailData.DistinguishedGuest" class="network">
-            <view class="network-left">嘉&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;宾:</view>
-            <view class="network-right">{{ detailData.DistinguishedGuest }}</view>
-          </view>
-          <view v-if="detailData.Host" class="network">
-            <view class="network-left">主&nbsp;&nbsp;持&nbsp;人:</view>
-            <view class="network-right">{{ detailData.Host }}</view>
-          </view>
-          <view v-if="detailData.Speaker" class="network">
-            <view class="network-left">主&nbsp;&nbsp;讲&nbsp;人:</view>
-            <view class="network-right">{{ detailData.Speaker }}</view>
-          </view>
-          <view v-if="detailData.Expert" class="network">
-            <view class="network-left">专家背景:</view>
-            <view class="network-right">
-              <rich-text :nodes="detailData.Expert"></rich-text>
+            <view v-if="detailData.MainlandTell" class="network">
+              <view class="network-left">大陆拨入:</view>
+              <view class="network-right" style="color: #2c83ff" @click="phonebtn(detailData.MainlandTell)">{{ detailData.MainlandTell }}</view>
             </view>
-          </view>
-          <view v-if="detailData.MainlandTell" class="network">
-            <view class="network-left">大陆拨入:</view>
-            <view class="network-right" style="color: #2c83ff" @click="phonebtn(detailData.MainlandTell)">{{ detailData.MainlandTell }}</view>
-          </view>
-          <view v-if="detailData.HongKongTell" class="network">
-            <view class="network-left">香港拨入:</view>
-            <view class="network-right" style="color: #2c83ff" @click="phonebtn(detailData.HongKongTell)">{{ detailData.HongKongTell }}</view>
-          </view>
-          <view v-if="detailData.TaiwanTell" class="network">
-            <view class="network-left">台湾拨入:</view>
-            <view class="network-right" style="color: #2c83ff" @click="phonebtn(detailData.TaiwanTell)">{{ detailData.TaiwanTell }}</view>
-          </view>
-          <view v-if="detailData.AmericaTell" class="network">
-            <view class="network-left">美国拨入:</view>
-            <view class="network-right" style="color: #2c83ff" @click="phonebtn(detailData.AmericaTell)">{{ detailData.AmericaTell }}</view>
-          </view>
-          <view v-if="detailData.ParticipationCode" class="network">
-            <view class="network-left">拨入密码:</view>
-            <view class="network-right">{{ [1, 2, 3].includes(detailData.ActivityTypeId) && detailData.IsLimitPeople && !detailData.IsSignup ? "请报名获取" : detailData.ParticipationCode }}</view>
-          </view>
-          <view class="network" v-if="detailData.OnlineParticipation">
-            <view class="network-left">网络参会:</view>
-            <view class="network-right network-link" v-if="[1, 2].includes(detailData.ActivityTypeId) && detailData.IsLimitPeople && !detailData.IsSignup"> 请报名获取 </view>
-            <view class="network-right network-link" style="color: #2c83ff" v-else>
-              <view class="">
-                <text class="default text_oneLine" @click="networkBtn">{{ detailData.OnlineParticipation }}</text>
-                <text class="default copy-link" @click="copyLink(1)">复制链接</text>
+            <view v-if="detailData.HongKongTell" class="network">
+              <view class="network-left">香港拨入:</view>
+              <view class="network-right" style="color: #2c83ff" @click="phonebtn(detailData.HongKongTell)">{{ detailData.HongKongTell }}</view>
+            </view>
+            <view v-if="detailData.TaiwanTell" class="network">
+              <view class="network-left">台湾拨入:</view>
+              <view class="network-right" style="color: #2c83ff" @click="phonebtn(detailData.TaiwanTell)">{{ detailData.TaiwanTell }}</view>
+            </view>
+            <view v-if="detailData.AmericaTell" class="network">
+              <view class="network-left">美国拨入:</view>
+              <view class="network-right" style="color: #2c83ff" @click="phonebtn(detailData.AmericaTell)">{{ detailData.AmericaTell }}</view>
+            </view>
+            <view v-if="detailData.ParticipationCode" class="network">
+              <view class="network-left">拨入密码:</view>
+              <view class="network-right">{{
+                [1, 2, 3].includes(detailData.ActivityTypeId) && detailData.IsLimitPeople && !detailData.IsSignup
+                  ? "请报名获取"
+                  : detailData.ParticipationCode
+              }}</view>
+            </view>
+            <view class="network" v-if="detailData.OnlineParticipation">
+              <view class="network-left">网络参会:</view>
+              <view
+                class="network-right network-link"
+                v-if="[1, 2].includes(detailData.ActivityTypeId) && detailData.IsLimitPeople && !detailData.IsSignup"
+              >
+                请报名获取
+              </view>
+              <view class="network-right network-link" style="color: #2c83ff" v-else>
+                <view class="">
+                  <text class="default text_oneLine" @click="networkBtn">{{ detailData.OnlineParticipation }}</text>
+                  <text class="default copy-link" @click="copyLink(1)">复制链接</text>
+                </view>
               </view>
             </view>
-          </view>
-          <view class="network" v-if="detailData.LinkParticipants">
-            <view class="network-left">链接参会:</view>
-            <view class="network-right network-zoom" style="color: #2c83ff">
-              <view>
-                <text class="default text_zoom">{{ detailData.LinkParticipants }}</text>
-                <view> 点击<text class="default copy-link copy-zoom" @click="copyLink(1)">复制链接</text>在手机浏览器打开,并输入会议密码 </view>
+            <view class="network" v-if="detailData.LinkParticipants">
+              <view class="network-left">链接参会:</view>
+              <view class="network-right network-zoom" style="color: #2c83ff">
+                <view>
+                  <text class="default text_zoom">{{ detailData.LinkParticipants }}</text>
+                  <view> 点击<text class="default copy-link copy-zoom" @click="copyLink(1)">复制链接</text>在手机浏览器打开,并输入会议密码 </view>
+                </view>
               </view>
             </view>
-          </view>
-          <view v-if="detailData.AppAttendance" class="network">
-            <view class="network-left">App参会: </view>
-            <view class="network-right">
-              <rich-text :nodes="detailData.AppAttendance"></rich-text>
+            <view v-if="detailData.AppAttendance" class="network">
+              <view class="network-left">App参会: </view>
+              <view class="network-right">
+                <rich-text :nodes="detailData.AppAttendance"></rich-text>
+              </view>
             </view>
-          </view>
-          <view v-if="detailData.ConferencePassword" class="network">
-            <view class="network-left">拨入密码:</view>
-            <view class="network-right">{{ detailData.ActivityTypeName == "公司调研电话会" && detailData.IsLimitPeople && !detailData.IsSignup ? "请报名获取" : detailData.ConferencePassword }}</view>
-          </view>
-          <view v-if="detailData.Address" class="network">
-            <view class="network-left">活动地址:</view>
-            <view class="network-right" v-if="!detailData.IsSignup && detailData.ActivityTypeName == '公司线下调研' && detailData.IsLimitPeople">请报名获取 </view>
-            <view class="network-right" v-else>{{ detailData.Address }}</view>
-          </view>
-          <view v-if="detailData.Highlights" class="network">
-            <view class="network-left">活动亮点: </view>
-            <view class="network-right">
-              <rich-text :nodes="detailData.Highlights"></rich-text>
+            <view v-if="detailData.ConferencePassword" class="network">
+              <view class="network-left">拨入密码:</view>
+              <view class="network-right">{{
+                detailData.ActivityTypeName == "公司调研电话会" && detailData.IsLimitPeople && !detailData.IsSignup
+                  ? "请报名获取"
+                  : detailData.ConferencePassword
+              }}</view>
             </view>
-          </view>
-          <view class="network" v-if="detailData.ArticleList.length">
-            <view class="network-left">相关报告:</view>
-            <view class="network-right look-link" style="color: #2c83ff" @click="articleLinkHandler"> 点击查看 </view>
-          </view>
-          <view class="network" v-if="detailData.TencentConferenceNumber">
-            <view class="network-left">腾讯会议号:</view>
-            <view class="network-right network-link" v-if="!detailData.IsSignup && (detailData.IsYidongConduct || detailData.IsLimitPeople)">请报名获取</view>
-            <view class="network-right network-link" style="color: #2c83ff" v-else>
-              <view class="">
-                <text class="default tencent text_oneLine">{{ detailData.TencentConferenceNumber }}</text>
-                <text class="default copy-link" @click="copyLink(2)">复制会议号</text>
+            <view v-if="detailData.Address" class="network">
+              <view class="network-left">活动地址:</view>
+              <view class="network-right" v-if="!detailData.IsSignup && detailData.ActivityTypeName == '公司线下调研' && detailData.IsLimitPeople"
+                >请报名获取
               </view>
+              <view class="network-right" v-else>{{ detailData.Address }}</view>
             </view>
-          </view>
-          <view v-if="detailData.Theme" class="network">
-            <view class="network-left">主&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;题: </view>
-            <view class="network-right">
-              <rich-text :nodes="detailData.Theme"></rich-text>
-            </view>
-          </view>
-          <view v-if="detailData.Remarks" class="network">
-            <view class="network-left">备&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注: </view>
-            <view class="network-right">
-              <rich-text :nodes="detailData.Remarks"></rich-text>
+            <view v-if="detailData.Highlights" class="network">
+              <view class="network-left">活动亮点: </view>
+              <view class="network-right">
+                <rich-text :nodes="detailData.Highlights"></rich-text>
+              </view>
             </view>
-          </view>
-        </view>
-        <view class="" style="height: 50rpx"></view>
-        <!-- 操作按钮部分 -->
-        <view class="content-bottom">
-          <block v-if="detailData.ActiveState == 1">
-            <view class="make-outbound" @click="signupIsAddOfCancel(1)" v-if="detailData.IsShowOutboundCall">
-              {{ detailData.LimitPeopleNum > 0 ? `${showOutboundCall}(${detailData.SignupNum}/${detailData.LimitPeopleNum})` : showOutboundCall }}
+            <view class="network" v-if="detailData.ArticleList.length">
+              <view class="network-left">相关报告:</view>
+              <view class="network-right look-link" style="color: #2c83ff" @click="articleLinkHandler"> 点击查看 </view>
             </view>
-            <view @click="meetingReminderCancel" class="make-conference" v-if="detailData.IsShowMeetingReminder">
-              {{ detailData.IsCancelMeetingReminder == 1 ? "取消会议提醒" : "会议提醒" }}
-              <text>(会前15分钟推送微信消息提醒)</text>
+            <view class="network" v-if="detailData.TencentConferenceNumber">
+              <view class="network-left">腾讯会议号:</view>
+              <view class="network-right network-link" v-if="!detailData.IsSignup && (detailData.IsYidongConduct || detailData.IsLimitPeople)"
+                >请报名获取</view
+              >
+              <view class="network-right network-link" style="color: #2c83ff" v-else>
+                <view class="">
+                  <text class="default tencent text_oneLine">{{ detailData.TencentConferenceNumber }}</text>
+                  <text class="default copy-link" @click="copyLink(2)">复制会议号</text>
+                </view>
+              </view>
             </view>
-            <view v-if="detailData.IsShowAppointment" @click="summaryIsHandel" class="make-generation make-conference">{{ detailData.IsAppointment == 1 ? "取消纪要" : "预约纪要" }}</view>
-            <view v-if="detailData.IsShowHelpSsk" class="make-generation make-conference" @click="askingGo"> 帮我带问 </view>
-            <view class="make-outbound" @click="wanttosignup" v-if="!detailData.IsSignup && detailData.IsShowSignup">
-              {{ detailData.LimitPeopleNum > 0 ? `我要报名(${detailData.SignupNum}/${detailData.LimitPeopleNum})` : "我要报名" }}
+            <view v-if="detailData.Theme" class="network">
+              <view class="network-left">主&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;题: </view>
+              <view class="network-right">
+                <rich-text :nodes="detailData.Theme"></rich-text>
+              </view>
             </view>
-            <view v-if="detailData.IsSignup && detailData.IsShowSignup" class="make-outbound" @click="signupIsAddOfCancel(2)">
-              {{ detailData.LimitPeopleNum > 0 ? `${showWay}(${detailData.SignupNum}/${detailData.LimitPeopleNum})` : showWay }}
+            <view v-if="detailData.Remarks" class="network">
+              <view class="network-left">备&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注: </view>
+              <view class="network-right">
+                <rich-text :nodes="detailData.Remarks"></rich-text>
+              </view>
             </view>
-          </block>
-          <view class="content-bottom" v-if="detailData.ActiveState == 2 && detailData.ActivityTypeId == 1">
-            <view class="make-conference" @click="askingGo('提问')">
-              实时提问
-              <text>会议过程中,分析师可替您提问专家</text>
+          </view>
+          <view class="" style="height: 50rpx"></view>
+          <!-- 操作按钮部分 -->
+          <view class="content-bottom">
+            <block v-if="detailData.ActiveState == 1">
+              <view class="make-outbound" @click="signupIsAddOfCancel(1)" v-if="detailData.IsShowOutboundCall">
+                {{ detailData.LimitPeopleNum > 0 ? `${showOutboundCall}(${detailData.SignupNum}/${detailData.LimitPeopleNum})` : showOutboundCall }}
+              </view>
+              <view @click="meetingReminderCancel" class="make-conference" v-if="detailData.IsShowMeetingReminder">
+                {{ detailData.IsCancelMeetingReminder == 1 ? "取消会议提醒" : "会议提醒" }}
+                <text>(会前15分钟推送微信消息提醒)</text>
+              </view>
+              <view v-if="detailData.IsShowAppointment" @click="summaryIsHandel" class="make-generation make-conference">{{
+                detailData.IsAppointment == 1 ? "取消纪要" : "预约纪要"
+              }}</view>
+              <view v-if="detailData.IsShowHelpSsk" class="make-generation make-conference" @click="askingGo"> 帮我带问 </view>
+              <view class="make-outbound" @click="wanttosignup" v-if="!detailData.IsSignup && detailData.IsShowSignup">
+                {{ detailData.LimitPeopleNum > 0 ? `我要报名(${detailData.SignupNum}/${detailData.LimitPeopleNum})` : "我要报名" }}
+              </view>
+              <view v-if="detailData.IsSignup && detailData.IsShowSignup" class="make-outbound" @click="signupIsAddOfCancel(2)">
+                {{ detailData.LimitPeopleNum > 0 ? `${showWay}(${detailData.SignupNum}/${detailData.LimitPeopleNum})` : showWay }}
+              </view>
+            </block>
+            <view class="content-bottom" v-if="detailData.ActiveState == 2 && detailData.ActivityTypeId == 1">
+              <view class="make-conference" @click="askingGo('提问')">
+                实时提问
+                <text>会议过程中,分析师可替您提问专家</text>
+              </view>
             </view>
           </view>
+        </block>
+        <!-- 参会方式的弹出层 -->
+        <SelectPopup :selectShow.sync="selectShow" @signupIsAddOfCancel="signupIsAddOfCancel" :selectYdong="selectYdong" />
+        <view class="select-box">
+          <u-popup v-model="selectShowLink" mode="bottom">
+            <view
+              style="color: #2c83ff"
+              class="text_oneLine article-title"
+              @click="goDetail(item.ArticleId)"
+              v-for="item in detailData.ArticleList"
+              :key="item.ArticleId"
+            >
+              {{ item.Title }}</view
+            >
+            <view style="color: #a9afb8" @click="selectShowLink = false">取消</view>
+          </u-popup>
         </view>
-      </block>
-      <!-- 参会方式的弹出层 -->
-      <SelectPopup :selectShow.sync="selectShow" @signupIsAddOfCancel="signupIsAddOfCancel" :selectYdong="selectYdong" />
-      <view class="select-box">
-        <u-popup v-model="selectShowLink" mode="bottom">
-          <view style="color: #2c83ff" class="text_oneLine article-title" @click="goDetail(item.ArticleId)" v-for="item in detailData.ArticleList" :key="item.ArticleId"> {{ item.Title }}</view>
-          <view style="color: #a9afb8" @click="selectShowLink = false">取消</view>
-        </u-popup>
+        <!-- 各种弹框部分 -->
+        <modalDialog
+          :isShow="isShow"
+          :signupType="signupType"
+          :goFollow="goFollow"
+          :isCancelShow="isCancelShow"
+          :idTypeCancel="idTypeCancel"
+          :editIsShow="editIsShow"
+          :countryCode="countryCode"
+          :mobileEdit="mobileEdit"
+          :goOnNextStep="goOnNextStep"
+          :jurisdictionList="jurisdictionList"
+          :mailboxBinding="mailboxBinding"
+        />
+      </view>
+      <!-- 权限部分 -->
+      <view v-else>
+        <jurisdiction :idAct="id" :jurisdictionList="jurisdictionList"></jurisdiction>
+      </view>
+      <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
+      <view v-show="false">
+        <audioModule ref="childrenAudio" :showAudioPop="showAudioPop" />
       </view>
-      <!-- 各种弹框部分 -->
-      <modalDialog
-        :isShow="isShow"
-        :signupType="signupType"
-        :goFollow="goFollow"
-        :isCancelShow="isCancelShow"
-        :idTypeCancel="idTypeCancel"
-        :editIsShow="editIsShow"
-        :countryCode="countryCode"
-        :mobileEdit="mobileEdit"
-        :goOnNextStep="goOnNextStep"
-        :jurisdictionList="jurisdictionList"
-        :mailboxBinding="mailboxBinding"
-      />
-    </view>
-    <!-- 权限部分 -->
-    <view v-else>
-      <jurisdiction :idAct="id" :jurisdictionList="jurisdictionList"></jurisdiction>
-    </view>
-    <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
-    <view v-show="false">
-      <audioModule ref="childrenAudio" :showAudioPop="showAudioPop" />
     </view>
-  </view>
+    <not-have-login v-else />
+  </block>
 </template>
 
 <script>
@@ -303,6 +375,7 @@ import audioModule from "@/components/audioModule/index";
 import manageMixin from "./manageMixin";
 import IsTrackFollow from "@/components/isTrackFollow.vue";
 import SelectPopup from "@/components/activity/selectPopup";
+import NotHaveLogin from "@/components/notHaveLogin.vue";
 let app = getApp({ allowDefault: true });
 export default {
   filters: {
@@ -390,6 +463,7 @@ export default {
     audioModule,
     IsTrackFollow,
     SelectPopup,
+    NotHaveLogin,
   },
   watch: {
     haveAuth: {
@@ -434,7 +508,10 @@ export default {
       let pages = getCurrentPages();
       let prevPage = pages[pages.length - 2];
       let path = prevPage ? prevPage.$page.fullPath : "";
-      if (path.includes("/activityPages/themeActivity/themeActivity") || path.includes("/pages-search/indedxSearch/indedxSearch?source=活动详情页面")) {
+      if (
+        path.includes("/activityPages/themeActivity/themeActivity") ||
+        path.includes("/pages-search/indedxSearch/indedxSearch?source=活动详情页面")
+      ) {
         const index = prevPage.$vm.collectList.findIndex((item) => item.ActivityId == this.id);
         prevPage.$vm.collectList[index].IsSignup = this.detailData.IsSignup;
         prevPage.$vm.collectList[index].SignupNum = this.detailData.SignupNum;
@@ -514,10 +591,10 @@ export default {
       if (!item.IsJump) return;
       if (item.IsResearch) {
         //严选
-        this.$store.dispatch("checkHandle", "/reportPages/researchTheme/researchTheme?id=" + item.IndustrialManagementId);
+        uni.navigateTo({ url: "/reportPages/researchTheme/researchTheme?id=" + item.IndustrialManagementId });
       } else {
         //非严选
-        this.$store.dispatch("checkHandle", "/reportPages/IndustryReport/IndustryReport?id=" + item.IndustrialManagementId);
+        uni.navigateTo({ url: "/reportPages/IndustryReport/IndustryReport?id=" + item.IndustrialManagementId });
       }
     },
     // 音频点击暂停播放
@@ -529,7 +606,11 @@ export default {
           this.globalBgAudioManager.pause();
         }
       } else {
-        this.$store.commit("audioBg/addAudio", { list: this.detailData.VoiceList, activityId: this.detailData.ActivityId, activityTitle: this.detailData.ActivityName });
+        this.$store.commit("audioBg/addAudio", {
+          list: this.detailData.VoiceList,
+          activityId: this.detailData.ActivityId,
+          activityTitle: this.detailData.ActivityName,
+        });
       }
     },
 
@@ -562,7 +643,11 @@ export default {
         }
       } else {
         this.$store.commit("audioBg/removeAudio");
-        this.$store.commit("audioBg/addAudio", { list: this.detailData.VoiceList, activityId: this.detailData.ActivityId, activityTitle: this.detailData.ActivityName });
+        this.$store.commit("audioBg/addAudio", {
+          list: this.detailData.VoiceList,
+          activityId: this.detailData.ActivityId,
+          activityTitle: this.detailData.ActivityName,
+        });
       }
       this.$refs.childrenAudio.isRecord = false;
     },
@@ -613,12 +698,19 @@ export default {
     myLeavingMessageHandler() {
       let title = this.detailData.FileType == 1 ? this.detailData.VoiceList.Name : this.detailData.VideoDetail.Title;
       uni.navigateTo({
-        url: "/activityPages/generationAsk/generationAsk?id=" + this.detailData.ActivityId + "&type=文章&roadshow=" + this.detailData.FileType + "&roadshowTitle=" + title,
+        url:
+          "/activityPages/generationAsk/generationAsk?id=" +
+          this.detailData.ActivityId +
+          "&type=文章&roadshow=" +
+          this.detailData.FileType +
+          "&roadshowTitle=" +
+          title,
       });
     },
 
     // 微路演收藏
     async isCollectionHandeler() {
+      await this.$store.dispatch("showLoginModal");
       const res = await Home.microRoadshowCollect({
         Id: this.detailData.FileType == 1 ? this.detailData.VoiceList.ActivityVoiceId : this.detailData.VideoDetail.Id,
         SourceType: this.detailData.FileType,
@@ -642,18 +734,16 @@ export default {
       }
     },
   },
-  async onLoad(option) {
+  onLoad(option) {
     this.id = option.id || "";
     this.isSendWx = option.IsSendWx || "";
     // 详情页面不写路径
-    await this.$store.dispatch("checkHandle");
-    // this.listenAudio()
+  },
+  onShow() {
     if (!this.$store.state.isAuth && !this.$store.state.isBind) {
       //已授权已绑定
       this.getActivityDetail();
     }
-  },
-  onShow() {
     this.$store.commit("setRouterReport", "活动详情");
   },
   /**

+ 1 - 3
activityPages/components/selectMixins.js

@@ -87,9 +87,7 @@ export default {
         }
       } else {
         //已授权未绑定
-        uni.navigateTo({
-          url: "/pageMy/login/login",
-        });
+        this.$store.dispatch('checkHandle')
       }
     },
     // 下拉选择的确定事件

+ 91 - 77
activityPages/playBack/playBack.vue

@@ -1,89 +1,103 @@
 <template>
-  <view class="container container-play-back">
-    <!-- 筛选部分 -->
-    <view class="select-content-activity">
-      <view class="screen-item">
-        <text :class="[isShowJurisdiction ? 'active' : '', 'text-item']" @click="permissioActivity">有权限行业</text>
-        <!-- 各种状态选择 -->
-        <view class="select-conyent" ref="select-conyent">
-          <van-dropdown-menu active-color="#333333">
-            <van-dropdown-item id="industry" :title="chartPermissionName">
-              <view class="menu-items">
-                <view class="menu-items-box" v-for="item in listChartPermission" :key="item.ChartPermissionId" @click="overallClick(item)">
-                  <view class="items-box">
-                    <u-icon v-if="item.IsChoose" name="checkbox-mark" :color="isShowJurisdiction ? '#ccc' : '#2C83FF'" size="24"></u-icon>
+  <block>
+    <view class="container container-play-back" v-if="isUserBindingPhoneNumber">
+      <!-- 筛选部分 -->
+      <view class="select-content-activity">
+        <view class="screen-item">
+          <text :class="[isShowJurisdiction ? 'active' : '', 'text-item']" @click="permissioActivity">有权限行业</text>
+          <!-- 各种状态选择 -->
+          <view class="select-conyent" ref="select-conyent">
+            <van-dropdown-menu active-color="#333333">
+              <van-dropdown-item id="industry" :title="chartPermissionName">
+                <view class="menu-items">
+                  <view class="menu-items-box" v-for="item in listChartPermission" :key="item.ChartPermissionId" @click="overallClick(item)">
+                    <view class="items-box">
+                      <u-icon v-if="item.IsChoose" name="checkbox-mark" :color="isShowJurisdiction ? '#ccc' : '#2C83FF'" size="24"></u-icon>
+                    </view>
+                    <text>{{ item.PermissionName }}</text>
                   </view>
-                  <text>{{ item.PermissionName }}</text>
                 </view>
-              </view>
-              <view class="replacement">
-                <text @click="replacementBtn" class="replacement-box">重置</text>
-                <text @click="replacementConfirm">确定</text>
-              </view>
-            </van-dropdown-item>
-          </van-dropdown-menu>
+                <view class="replacement">
+                  <text @click="replacementBtn" class="replacement-box">重置</text>
+                  <text @click="replacementConfirm">确定</text>
+                </view>
+              </van-dropdown-item>
+            </van-dropdown-menu>
+          </view>
+          <text
+            @click="mediumClickHandler(item)"
+            v-for="item in mediumSelect"
+            :key="item.value"
+            :class="[item.IsChoose ? 'active' : '', 'text-item', 'medium-item']"
+            >{{ item.name }}</text
+          >
         </view>
-        <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>
-    <!-- 活动列表 -->
-    <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>
-          {{ item.ActivityTimeText }}
-          <view class="audio-back" v-if="item.AudioLink" @click.stop="PlayBackAll(item)">
-            <view class="audio-box">
-              <block v-if="item.FileType == 2">
-                <image class="audio-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/video_play.png"></image>
-              </block>
-              <image
-                v-else
-                class="audio-img"
-                :src="
-                  curVoiceId === item.ActivityId && !curAudioPaused
-                    ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/stop_play.png'
-                    : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/audio_play.png'
-                "
-              ></image>
-              {{ curVoiceId === item.ActivityId && !curAudioPaused ? "暂停" : "回放" }}
+      <!-- 活动列表 -->
+      <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>
+            {{ item.ActivityTimeText }}
+            <view class="audio-back" v-if="item.AudioLink" @click.stop="PlayBackAll(item)">
+              <view class="audio-box">
+                <block v-if="item.FileType == 2">
+                  <image class="audio-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/video_play.png"></image>
+                </block>
+                <image
+                  v-else
+                  class="audio-img"
+                  :src="
+                    curVoiceId === item.ActivityId && !curAudioPaused
+                      ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/stop_play.png'
+                      : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/audio_play.png'
+                  "
+                ></image>
+                {{ curVoiceId === item.ActivityId && !curAudioPaused ? "暂停" : "回放" }}
+              </view>
             </view>
           </view>
-        </view>
-        <view class="item-li">
-          <view class="item-img" @click="goDetail(item)">
-            <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>
-            <view class="img-type">
-              <image :src="item.ImgUrlText" mode=""></image>
+          <view class="item-li">
+            <view class="item-img" @click="goDetail(item)">
+              <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>
+              <view class="img-type">
+                <image :src="item.ImgUrlText" mode=""></image>
+              </view>
             </view>
-          </view>
-          <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.DistinguishedGuest">嘉宾:{{ item.DistinguishedGuest }} </text>
-              <text class="text_twoLine" v-if="item.Speaker">主讲人:{{ item.Speaker }}</text>
+            <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.DistinguishedGuest">嘉宾:{{ item.DistinguishedGuest }} </text>
+                <text class="text_twoLine" v-if="item.Speaker">主讲人:{{ item.Speaker }}</text>
+              </view>
             </view>
           </view>
         </view>
+        <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="totalPage > 1" />
       </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>
-    <videoModule :showVideoPop="showVideoPop" :videoPopList="videoPopList" />
+      <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>
+      <videoModule :showVideoPop="showVideoPop" :videoPopList="videoPopList" />
 
-    <!-- 所有自定义弹框 -->
-    <modalDialog :isShowhasPermission="isShowhasPermission" :applyForIsShow="applyForIsShow" :jurisdictionList="jurisdictionList" :hasPermission="hasPermission" />
-  </view>
+      <!-- 所有自定义弹框 -->
+      <modalDialog
+        :isShowhasPermission="isShowhasPermission"
+        :applyForIsShow="applyForIsShow"
+        :jurisdictionList="jurisdictionList"
+        :hasPermission="hasPermission"
+      />
+    </view>
+    <not-have-login v-else />
+  </block>
 </template>
 
 <script>
@@ -94,6 +108,7 @@ import modalDialog from "@/components/modalDialog.vue";
 import videoModule from "@/components/videoModule/index";
 import mediaMixins from "@/components/activity/mediaMixins";
 import selectMixins from "../components/selectMixins.js";
+import NotHaveLogin from "../../components/notHaveLogin.vue";
 export default {
   data() {
     return {
@@ -121,7 +136,7 @@ export default {
     };
   },
   mixins: [mediaMixins, selectMixins],
-  components: { audioModule, modalDialog, videoModule },
+  components: { audioModule, modalDialog, videoModule, NotHaveLogin },
   methods: {
     // 获取活动
     async getActivityList() {
@@ -151,7 +166,7 @@ export default {
     },
     // 去往详情页面
     goDetail(item) {
-      this.$store.dispatch("checkHandle", "/activityPages/activityDetail/activityDetail?id=" + item.ActivityId + "&PageRouter=活动回放");
+      uni.navigateTo({ url: "/activityPages/activityDetail/activityDetail?id=" + item.ActivityId + "&PageRouter=活动回放" });
     },
 
     // 点击视频 、音频 的筛选
@@ -168,9 +183,8 @@ export default {
       this.getActivityList();
     },
   },
-
   onLoad() {
-    this.getActivityList();
+    this.isUserBindingPhoneNumber && this.getActivityList();
   },
   async onShow() {
     this.$store.commit("setRouterActivity", "活动回放");

+ 98 - 89
activityPages/specialDetail/specialDetail.vue

@@ -1,103 +1,111 @@
 <template>
-  <view class="container special-detail">
-    <view class="" v-if="haveAuth == 1">
-      <view class="top-notice-special">
-        <view class="notice">
-          <van-notice-bar color="#FFFFFF" background="#FE9000" text="专项调研行程持续更新中,满五家即开团,欢迎点击感兴趣预报名" />
-        </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>
-        <view class="network">
-          <view class="network-left">活动类型:</view>
-          <view class="network-right">{{ detailData.ActivityTypeName }}</view>
-        </view>
-        <view class="network">
-          <view class="network-left">所属行业:</view>
-          <view class="network-right">{{ detailData.ChartPermissionName }}</view>
-        </view>
-        <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>
-        <view class="network">
-          <view class="network-left">调研形式:</view>
-          <view class="network-right">
-            {{ detailData.SpecialType == 1 ? "线上" : "线下" }}
-            <block v-if="detailData.SpecialType == 2">({{ detailData.City }})</block>
+  <block>
+    <view class="container special-detail" v-if="isUserBindingPhoneNumber">
+      <view class="" v-if="haveAuth == 1">
+        <view class="top-notice-special">
+          <view class="notice">
+            <van-notice-bar color="#FFFFFF" background="#FE9000" text="专项调研行程持续更新中,满五家即开团,欢迎点击感兴趣预报名" />
           </view>
+          <view class="inform-btn" @click="specialFollow">{{ specialIsFollow ? "取消通知" : "新调研通知" }}</view>
         </view>
-        <block v-if="detailData.IndustrialName || detailData.IndustrialSubjectName">
+        <view class="content">
+          <view class="dialog-title" :class="1 == 1 ? 'brackets-title' : ''">{{ detailData.ResearchTheme }}</view>
           <view class="network">
-            <view class="network-left">产业名称:</view>
-            <view class="network-right">{{ detailData.IndustrialName }}</view>
+            <view class="network-left">活动类型:</view>
+            <view class="network-right">{{ detailData.ActivityTypeName }}</view>
           </view>
           <view class="network">
-            <view class="network-left">相关公司:</view>
-            <view class="network-right">{{ detailData.IndustrialSubjectName }}</view>
+            <view class="network-left">所属行业:</view>
+            <view class="network-right">{{ detailData.ChartPermissionName }}</view>
+          </view>
+          <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>
-        </block>
-        <block v-else>
           <view class="network">
-            <view class="network-left">相关主题:</view>
-            <view class="network-right">{{ detailData.Label }}</view>
+            <view class="network-left">调研形式:</view>
+            <view class="network-right">
+              {{ detailData.SpecialType == 1 ? "线上" : "线下" }}
+              <block v-if="detailData.SpecialType == 2">({{ detailData.City }})</block>
+            </view>
+          </view>
+          <block v-if="detailData.IndustrialName || detailData.IndustrialSubjectName">
+            <view class="network">
+              <view class="network-left">产业名称:</view>
+              <view class="network-right">{{ detailData.IndustrialName }}</view>
+            </view>
+            <view class="network">
+              <view class="network-left">相关公司:</view>
+              <view class="network-right">{{ detailData.IndustrialSubjectName }}</view>
+            </view>
+          </block>
+          <block v-else>
+            <view class="network">
+              <view class="network-left">相关主题:</view>
+              <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>
-        </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 class="" style="height: 50rpx"></view>
+        <view class="look-Trip" @click="lookImg">
+          查看行程安排
+          <van-icon name="arrow" />
+        </view>
+        <view class="interest-btn">
+          <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 class="" style="height: 50rpx"></view>
-      <view class="look-Trip" @click="lookImg">
-        查看行程安排
-        <van-icon name="arrow" />
-      </view>
-      <view class="interest-btn">
-        <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 v-else>
+        <jurisdiction :idAct="id" :jurisdictionList="jurisdictionList"></jurisdiction>
       </view>
+      <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
+      <u-modal
+        v-model="specialGoFollowShow"
+        :content-style="{ fontSize: '32rpx' }"
+        :show-cancel-button="show_cancel_button"
+        confirm-text="知道了"
+        :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">
+          <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>
-    <!-- 权限部分 -->
-    <view v-else>
-      <jurisdiction :idAct="id" :jurisdictionList="jurisdictionList"></jurisdiction>
-    </view>
-    <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
-    <u-modal
-      v-model="specialGoFollowShow"
-      :content-style="{ fontSize: '32rpx' }"
-      :show-cancel-button="show_cancel_button"
-      confirm-text="知道了"
-      :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">
-        <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>
+    <not-have-login v-else />
+  </block>
 </template>
 
 <script>
@@ -105,6 +113,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";
+import NotHaveLogin from "@/components/notHaveLogin.vue";
 let app = getApp({ allowDefault: true });
 export default {
   data() {
@@ -119,6 +128,7 @@ export default {
   components: {
     jurisdiction,
     freeCharge,
+    NotHaveLogin,
   },
   mixins: [specialMixins],
 
@@ -220,8 +230,7 @@ export default {
   onLoad(option) {
     this.id = option.id || "";
   },
-  async onShow() {
-    await this.$store.dispatch("checkHandle");
+  onShow() {
     if (!this.$store.state.isAuth && !this.$store.state.isBind) {
       //已授权已绑定
       this.getActivityDetail();

+ 86 - 75
activityPages/specialResearchPage/specialResearchPage.vue

@@ -1,85 +1,95 @@
 <template>
-  <view class="container special-research">
-    <view class="top-notice">
-      <view class="notice">
-        <van-notice-bar color="#FFFFFF" background="#FE9000" :text="wholeShowListData.ActivitySpecialExplain" />
+  <block>
+    <view class="container special-research" v-if="isUserBindingPhoneNumber">
+      <view class="top-notice">
+        <view class="notice">
+          <van-notice-bar color="#FFFFFF" background="#FE9000" :text="wholeShowListData.ActivitySpecialExplain" />
+        </view>
+        <view class="inform-btn" @click="specialFollow">{{ specialIsFollow ? "取消通知" : "新调研通知" }}</view>
       </view>
-      <view class="inform-btn" @click="specialFollow">{{ specialIsFollow ? "取消通知" : "新调研通知" }}</view>
-    </view>
-    <!-- 活动列表 -->
-    <view>
-      <view class="collect-ul">
-        <view class="collect-ltem" v-for="(item, index) in collectList" :key="index">
-          <view class="title-date" @click="goDetail(item)">
-            <text :class="item.SpecialType == 1 ? '' : 'xianxia'">{{ item.SpecialType == 1 ? "线上" : "线下" }}</text>
-            <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>
-          <view class="item-li">
-            <view class="item-img" @click="goDetail(item)">
-              <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="collect-ul">
+          <view class="collect-ltem" v-for="(item, index) in collectList" :key="index">
+            <view class="title-date" @click="goDetail(item)">
+              <text :class="item.SpecialType == 1 ? '' : 'xianxia'">{{ item.SpecialType == 1 ? "线上" : "线下" }}</text>
+              <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>
-            <view class="item">
-              <view class="item-text" @click="goDetail(item)">
-                <text class="activity-title"> {{ item.ResearchTheme }} </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 class="item-li">
+              <view class="item-img" @click="goDetail(item)">
+                <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="bottom-box">
-                <view class="" style="width: 130rpx"> </view>
-                <text @click="lookImg(item)">行程安排</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 class="item">
+                <view class="item-text" @click="goDetail(item)">
+                  <text class="activity-title"> {{ item.ResearchTheme }} </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>
+                  <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>
-          <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>
+          <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="totalPage > 1" />
         </view>
-        <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="totalPage > 1" />
+        <view class="select-box"> </view>
+        <!-- 所有自定义弹框 -->
       </view>
-      <view class="select-box"> </view>
-      <!-- 所有自定义弹框 -->
+      <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
+      <u-modal
+        v-model="specialGoFollowShow"
+        :content-style="{ fontSize: '32rpx' }"
+        :show-cancel-button="show_cancel_button"
+        confirm-text="知道了"
+        :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">
+          <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>
-    <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
-    <u-modal
-      v-model="specialGoFollowShow"
-      :content-style="{ fontSize: '32rpx' }"
-      :show-cancel-button="show_cancel_button"
-      confirm-text="知道了"
-      :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">
-        <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>
+    <not-have-login v-else />
+  </block>
 </template>
 
 <script>
@@ -87,6 +97,7 @@ import { activity, User } from "@/config/api.js";
 import { Throttle } from "@/config/util.js";
 import freeCharge from "@/components/freeCharge";
 import specialMixins from "../components/specialMixins";
+import NotHaveLogin from "@/components/notHaveLogin.vue";
 export default {
   data() {
     return {
@@ -105,6 +116,7 @@ export default {
   mixins: [specialMixins],
   components: {
     freeCharge,
+    NotHaveLogin,
   },
   methods: {
     // 获取事件
@@ -138,7 +150,7 @@ export default {
 
     // 去往详情页面
     goDetail(item) {
-      this.$store.dispatch("checkHandle", "/activityPages/specialDetail/specialDetail?id=" + item.ActivityId);
+      uni.navigateTo({ url: "/activityPages/specialDetail/specialDetail?id=" + item.ActivityId });
     },
 
     // 点击感兴趣
@@ -203,12 +215,11 @@ export default {
     },
   },
   onLoad(option) {
-    this.getActivityList();
+    this.isUserBindingPhoneNumber && this.getActivityList();
   },
   onShow() {
     this.$store.commit("setRouterReport", "专项调研列表");
     this.$store.commit("setRouterActivity", "专项调研列表");
-    this.$store.dispatch("checkHandle");
   },
   /* 触底 */
   onReachBottom: Throttle(function () {

+ 210 - 163
activityPages/themeActivity/themeActivity.vue

@@ -1,182 +1,218 @@
 <template>
-  <view class="container theme-container">
-    <!-- 筛选部分 -->
-    <view class="select-content-activity">
-      <view class="top-title" v-if="!type">
-        <view :class="['content-title', !contentDetail.IsJump && 'jump-title']" @click="jumpHandler">
-          <text class="jump-label">{{ contentDetail.Label }}</text>
-          <text v-if="contentDetail.IsJump" class="jump-text"> 查看资源包>></text>
-          <image v-if="contentDetail.IndustryNewLabel" class="new_icon" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png" mode=""></image>
+  <block>
+    <view class="container theme-container" v-if="isUserBindingPhoneNumber">
+      <!-- 筛选部分 -->
+      <view class="select-content-activity">
+        <view class="top-title" v-if="!type">
+          <view :class="['content-title', !contentDetail.IsJump && 'jump-title']" @click="jumpHandler">
+            <text class="jump-label">{{ contentDetail.Label }}</text>
+            <text v-if="contentDetail.IsJump" class="jump-text"> 查看资源包>></text>
+            <image
+              v-if="contentDetail.IndustryNewLabel"
+              class="new_icon"
+              src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"
+              mode=""
+            ></image>
+          </view>
         </view>
-      </view>
-      <view :class="['screen-item', (isEndActivity || !type) && 'end-select-item']">
-        <block v-if="!isEndActivity && type">
-          <text :class="[isShowJurisdiction ? 'active' : '', 'text-item']" @click="permissioActivity">有权限行业</text>
-          <!-- 各种状态选择 -->
-          <view class="select-conyent" ref="select-conyent">
-            <van-dropdown-menu active-color="#333333">
-              <van-dropdown-item id="industry" :title="chartPermissionName">
-                <view class="menu-items">
-                  <view class="menu-items-box" v-for="item in listChartPermission" :key="item.ChartPermissionId" @click="overallClick(item)">
-                    <view class="items-box">
-                      <u-icon v-if="item.IsChoose" name="checkbox-mark" :color="isShowJurisdiction ? '#ccc' : '#2C83FF'" size="24"></u-icon>
+        <view :class="['screen-item', (isEndActivity || !type) && 'end-select-item']">
+          <block v-if="!isEndActivity && type">
+            <text :class="[isShowJurisdiction ? 'active' : '', 'text-item']" @click="permissioActivity">有权限行业</text>
+            <!-- 各种状态选择 -->
+            <view class="select-conyent" ref="select-conyent">
+              <van-dropdown-menu active-color="#333333">
+                <van-dropdown-item id="industry" :title="chartPermissionName">
+                  <view class="menu-items">
+                    <view class="menu-items-box" v-for="item in listChartPermission" :key="item.ChartPermissionId" @click="overallClick(item)">
+                      <view class="items-box">
+                        <u-icon v-if="item.IsChoose" name="checkbox-mark" :color="isShowJurisdiction ? '#ccc' : '#2C83FF'" size="24"></u-icon>
+                      </view>
+                      <text>{{ item.PermissionName }}</text>
                     </view>
-                    <text>{{ item.PermissionName }}</text>
                   </view>
-                </view>
-                <view class="replacement">
-                  <text @click="replacementBtn" class="replacement-box">重置</text>
-                  <text @click="replacementConfirm">确定</text>
-                </view>
-              </van-dropdown-item>
-            </van-dropdown-menu>
-          </view>
-        </block>
-        <block v-if="isEndActivity">
-          <text @click="selectMultipleHandler(item, '类型')" v-for="item in activityTypeList" :key="item.Id" :class="['select-item-multiple', item.IsChoose && 'active']">{{ item.StatusName }}</text>
-        </block>
-        <block v-else>
-          <text @click="selectMultipleHandler(item, '日期')" v-for="item in activityTimeList" :key="item.Id" :class="['select-item-multiple', item.IsChoose && 'active']">{{ item.StatusName }}</text>
-        </block>
-      </view>
-      <view class="screen-item screen-item-ul" v-if="isEndActivity">
-        <text @click="monthWeekHandler(item)" v-for="item in activityMonthWeekList" :key="item.Id" :class="['text-item', item.IsChoose && 'active']">{{ item.StatusName }}</text>
-      </view>
-    </view>
-    <!-- 活动列表 -->
-    <view>
-      <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>
-            {{ item.SourceType == 2 ? "" : item.ActivityTimeText }}
-            <view class="audio-back" v-if="item.AudioLink" @click.stop="PlayBackAll(item)">
-              <view class="audio-box">
-                <block v-if="item.FileType == 2">
-                  <image class="audio-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/video_play.png"></image>
-                </block>
-                <image
-                  v-else
-                  class="audio-img"
-                  :src="
-                    curVoiceId === item.ActivityId && !curAudioPaused
-                      ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/stop_play.png'
-                      : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/audio_play.png'
-                  "
-                ></image>
-                {{ curVoiceId === item.ActivityId && !curAudioPaused ? "暂停" : "回放" }}
-              </view>
+                  <view class="replacement">
+                    <text @click="replacementBtn" class="replacement-box">重置</text>
+                    <text @click="replacementConfirm">确定</text>
+                  </view>
+                </van-dropdown-item>
+              </van-dropdown-menu>
             </view>
-          </view>
-          <view class="item-li">
-            <view class="item-img" @click="goDetail(item)">
-              <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>
-              <block v-else>
-                <text v-if="item.TripStatus != 1" class="img-status">已结束</text>
-              </block>
-              <view class="img-type">
-                <image :src="item.ImgUrlText" mode=""></image>
+          </block>
+          <block v-if="isEndActivity">
+            <text
+              @click="selectMultipleHandler(item, '类型')"
+              v-for="item in activityTypeList"
+              :key="item.Id"
+              :class="['select-item-multiple', item.IsChoose && 'active']"
+              >{{ item.StatusName }}</text
+            >
+          </block>
+          <block v-else>
+            <text
+              @click="selectMultipleHandler(item, '日期')"
+              v-for="item in activityTimeList"
+              :key="item.Id"
+              :class="['select-item-multiple', item.IsChoose && 'active']"
+              >{{ item.StatusName }}</text
+            >
+          </block>
+        </view>
+        <view class="screen-item screen-item-ul" v-if="isEndActivity">
+          <text
+            @click="monthWeekHandler(item)"
+            v-for="item in activityMonthWeekList"
+            :key="item.Id"
+            :class="['text-item', item.IsChoose && 'active']"
+            >{{ item.StatusName }}</text
+          >
+        </view>
+      </view>
+      <!-- 活动列表 -->
+      <view>
+        <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>
+              {{ item.SourceType == 2 ? "" : item.ActivityTimeText }}
+              <view class="audio-back" v-if="item.AudioLink" @click.stop="PlayBackAll(item)">
+                <view class="audio-box">
+                  <block v-if="item.FileType == 2">
+                    <image class="audio-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/video_play.png"></image>
+                  </block>
+                  <image
+                    v-else
+                    class="audio-img"
+                    :src="
+                      curVoiceId === item.ActivityId && !curAudioPaused
+                        ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/stop_play.png'
+                        : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/audio_play.png'
+                    "
+                  ></image>
+                  {{ curVoiceId === item.ActivityId && !curAudioPaused ? "暂停" : "回放" }}
+                </view>
               </view>
             </view>
-            <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.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 class="item-li">
+              <view class="item-img" @click="goDetail(item)">
+                <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>
+                <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>
               </view>
-              <block v-if="item.SourceType == 1">
-                <block v-if="item.ActiveState == 1">
-                  <view :class="['bottom-box', isEndBtn(item) > 3 && '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>
+              <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.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.SourceType == 1">
+                  <block v-if="item.ActiveState == 1">
+                    <view :class="['bottom-box', isEndBtn(item) > 3 && '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 && !item.IsYidongConduct">
-                          <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>
+                      <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 && !item.IsYidongConduct">
+                            <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>
+                      </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>
                   </view>
                 </block>
-              </block>
-              <block v-if="item.SourceType == 2">
-                <view class="bottom-box">
-                  <view class="" style="width: 130rpx"> </view>
-                  <text @click="lookImg(item)">行程安排</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 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>
+          <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="totalPage > 1" />
         </view>
-        <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="totalPage > 1" />
+        <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>
+        <SelectPopup :selectShow.sync="selectShow" @signupIsAddOfCancel="signupIsAddOfCancel" :selectYdong="selectYdong" />
+
+        <!-- 所有自定义弹框 -->
+        <modalDialog
+          :isShow="isShow"
+          :signupType="signupType"
+          :goFollow="goFollow"
+          :hasPermission="hasPermission"
+          :jurisdictionList="jurisdictionList"
+          :editIsShow="editIsShow"
+          :isCancelShow="isCancelShow"
+          :idTypeCancel="idTypeCancel"
+          :countryCode="countryCode"
+          :mobileEdit="mobileEdit"
+          :goOnNextStep="goOnNextStep"
+          :isShowhasPermission="isShowhasPermission"
+          :applyForIsShow="applyForIsShow"
+          :mailboxBinding="mailboxBinding"
+        />
       </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>
+      <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
+      <view v-if="showAudioBox">
+        <audioModule :showAudioPop.sync="showAudioPop" />
       </view>
-      <SelectPopup :selectShow.sync="selectShow" @signupIsAddOfCancel="signupIsAddOfCancel" :selectYdong="selectYdong" />
-
-      <!-- 所有自定义弹框 -->
-      <modalDialog
-        :isShow="isShow"
-        :signupType="signupType"
-        :goFollow="goFollow"
-        :hasPermission="hasPermission"
-        :jurisdictionList="jurisdictionList"
-        :editIsShow="editIsShow"
-        :isCancelShow="isCancelShow"
-        :idTypeCancel="idTypeCancel"
-        :countryCode="countryCode"
-        :mobileEdit="mobileEdit"
-        :goOnNextStep="goOnNextStep"
-        :isShowhasPermission="isShowhasPermission"
-        :applyForIsShow="applyForIsShow"
-        :mailboxBinding="mailboxBinding"
-      />
+      <videoModule :showVideoPop="showVideoPop" :videoPopList="videoPopList" />
     </view>
-    <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
-    <view v-if="showAudioBox">
-      <audioModule :showAudioPop.sync="showAudioPop" />
-    </view>
-    <videoModule :showVideoPop="showVideoPop" :videoPopList="videoPopList" />
-  </view>
+    <not-have-login v-else />
+  </block>
 </template>
 
 <script>
@@ -190,6 +226,7 @@ import audioModule from "@/components/audioModule/index";
 import mediaMixins from "@/components/activity/mediaMixins";
 import videoModule from "@/components/videoModule/index";
 import SelectPopup from "@/components/activity/selectPopup";
+import NotHaveLogin from "../../components/notHaveLogin.vue";
 
 export default {
   mixins: [myActivityMixin, selectMixins, mediaMixins],
@@ -212,6 +249,7 @@ export default {
     audioModule,
     videoModule,
     SelectPopup,
+    NotHaveLogin,
   },
   methods: {
     // 判断几个按钮
@@ -265,10 +303,12 @@ export default {
       if (this.contentDetail.IsJump) {
         if (this.contentDetail.IsResearch) {
           //严选
-          this.$store.dispatch("checkHandle", "/reportPages/researchTheme/researchTheme?id=" + this.contentDetail.IndustrialManagementId);
+          uni.navigateTo({ url: "/reportPages/researchTheme/researchTheme?id=" + this.contentDetail.IndustrialManagementId });
         } else {
           //非严选
-          this.$store.dispatch("checkHandle", "/reportPages/IndustryReport/IndustryReport?id=" + this.contentDetail.IndustrialManagementId + "&entrance=活动详情");
+          uni.navigateTo({
+            url: "/reportPages/IndustryReport/IndustryReport?id=" + this.contentDetail.IndustrialManagementId + "&entrance=活动详情",
+          });
         }
       }
     },
@@ -308,7 +348,7 @@ export default {
         this.selectInitHandler(this.whichDay, this.activityMonthWeekList);
         this.selectInitHandler(this.selectActiveId, this.activityTypeList);
       }
-      this.getActivityList();
+      this.isUserBindingPhoneNumber && this.getActivityList();
     },
   },
   onLoad(option) {
@@ -317,7 +357,6 @@ export default {
   onShow() {
     this.$store.commit("setRouterReport", "活动列表");
     this.$store.commit("setRouterActivity", "活动列表");
-    this.$store.dispatch("checkHandle");
     this.$store.commit("audioBg/parseIntAudio", true);
   },
   onHide() {
@@ -340,7 +379,15 @@ export default {
   onShareAppMessage: function (res) {
     return {
       title: this.isHorzMobile ? "好友向您推荐此内容,上传名片享查研观向免费月卡!" : this.type || this.label,
-      path: "/activityPages/themeActivity/themeActivity?title=" + this.label + "&permissionIds=" + this.chartPermissionIds + "&whichDay=" + this.whichDay + "&type=" + this.type,
+      path:
+        "/activityPages/themeActivity/themeActivity?title=" +
+        this.label +
+        "&permissionIds=" +
+        this.chartPermissionIds +
+        "&whichDay=" +
+        this.whichDay +
+        "&type=" +
+        this.type,
     };
   },
 };

+ 27 - 9
components/ItemComponent/activityItem.vue

@@ -2,7 +2,10 @@
   <view class="container-activity-item" @click="goDetail(list)">
     <view class="content-sign">
       <view :class="[list.ActivityType === 0 ? 'is-down' : 'is-up', 'is-up-down']">{{ list.ActivityType === 0 ? "线下" : "线上" }}</view>
-      <view v-if="list.ActiveState == 1 || list.ActiveState == 2" :class="[list.ActiveState == 1 ? 'is-down-state' : 'is-up-state', 'is-up-down', 'state']">
+      <view
+        v-if="list.ActiveState == 1 || list.ActiveState == 2"
+        :class="[list.ActiveState == 1 ? 'is-down-state' : 'is-up-state', 'is-up-down', 'state']"
+      >
         {{ list.ActiveState == 1 ? "未开始" : "进行中" }}
       </view>
       <block v-else>
@@ -34,7 +37,9 @@
           <text class="item-btn btn-solid" v-if="list.IsShowOutboundCall && list.ActivityTypeId == 1" @click.stop="signupIsAddOfCancel(list, 1)">{{
             list.IsSignup == 1 ? "取消外呼" : "预约外呼"
           }}</text>
-          <text class="item-btn" v-if="list.IsShowAppointment" @click.stop="summaryIsHandel(list)">{{ list.IsAppointment == 1 ? "取消纪要" : "预约纪要" }}</text>
+          <text class="item-btn" v-if="list.IsShowAppointment" @click.stop="summaryIsHandel(list)">{{
+            list.IsAppointment == 1 ? "取消纪要" : "预约纪要"
+          }}</text>
           <text class="item-btn" v-if="list.IsShowMeetingReminder" @click.stop="meetingReminderAdd(list, list.IsCancelMeetingReminder)">
             {{ list.IsCancelMeetingReminder == 0 ? "消息提醒" : "取消提醒" }}
           </text>
@@ -47,11 +52,15 @@
           <text class="item-btn" v-if="list.IsShowDetails" @click.stop="goDetail(list)">查看详情</text>
           <block v-if="list.IsShowSignup">
             <block v-if="list.IsCClassMeeting && !list.IsYidongConduct">
-              <text class="item-btn btn-solid" @click.stop="signupIsAddOfCancel(list, 3, 'CClass')">{{ list.IsSignup == 1 ? "取消报名" : "我要报名" }}</text>
+              <text class="item-btn btn-solid" @click.stop="signupIsAddOfCancel(list, 3, 'CClass')">{{
+                list.IsSignup == 1 ? "取消报名" : "我要报名"
+              }}</text>
             </block>
             <block v-else>
               <text class="item-btn btn-solid" v-if="list.IsSignup !== 1" @click.stop="wanttosignup(list)">我要报名</text>
-              <text class="item-btn btn-solid" v-else @click.stop="signupIsAddOfCancel(list, 2)">{{ list.SignupType == 1 ? "取消外呼" : "取消报名" }}</text>
+              <text class="item-btn btn-solid" v-else @click.stop="signupIsAddOfCancel(list, 2)">{{
+                list.SignupType == 1 ? "取消外呼" : "取消报名"
+              }}</text>
             </block>
           </block>
         </block>
@@ -62,7 +71,9 @@
           <view class="" style="width: 130rpx"> </view>
           <text class="item-btn" @click.stop="lookImg(list)">行程安排</text>
           <block v-if="list.TripStatus == 2">
-            <text v-if="list.ActiveState == 1" class="item-btn btn-solid" @click.stop="applyOfcancel(list)">{{ list.IsTrip == 0 ? "我要报名" : "取消报名" }}</text>
+            <text v-if="list.ActiveState == 1" class="item-btn btn-solid" @click.stop="applyOfcancel(list)">{{
+              list.IsTrip == 0 ? "我要报名" : "取消报名"
+            }}</text>
           </block>
           <block v-else>
             <text class="item-btn btn-solid" v-if="list.IsSignup !== 1" @click.stop="interest(list)">感兴趣</text>
@@ -193,7 +204,10 @@ export default {
       if (item.YidongActivityId) {
         this.goDetail(item);
         return;
-      } else if ((item.IsYidongConduct && item.IsCanOutboundCall)|| (!item.IsYidongConduct && item.IsLimitPeople == 1 && [1, 2, 3].includes(item.ActivityTypeId))) {
+      } else if (
+        (item.IsYidongConduct && item.IsCanOutboundCall) ||
+        (!item.IsYidongConduct && item.IsLimitPeople == 1 && [1, 2, 3].includes(item.ActivityTypeId))
+      ) {
         this.selectShow = true;
         this.selectYdong = item.IsYidongConduct;
       } else {
@@ -226,7 +240,11 @@ export default {
           cancelColor: "#606266",
           success: async (res) => {
             if (res.confirm) {
-              const res = await activity.signupCancel({ ActivityId: item.ActivityId, SignupType: type, PageRouter: this.$store.state.pageRouterActivity });
+              const res = await activity.signupCancel({
+                ActivityId: item.ActivityId,
+                SignupType: type,
+                PageRouter: this.$store.state.pageRouterActivity,
+              });
               if (res.Ret === 200) {
                 this.parentDataEmit(itemData, "IsSignup", 0);
                 this.init();
@@ -431,9 +449,9 @@ export default {
     //去往详情页面
     goDetail(item) {
       if (item.SourceType !== 1) {
-        this.$store.dispatch("checkHandle", "/activityPages/specialDetail/specialDetail?id=" + item.ActivityId);
+        uni.navigateTo({ url: "/activityPages/specialDetail/specialDetail?id=" + item.ActivityId });
       } else {
-        this.$store.dispatch("checkHandle", "/activityPages/activityDetail/activityDetail?id=" + item.ActivityId);
+        uni.navigateTo({ url: "/activityPages/activityDetail/activityDetail?id=" + item.ActivityId });
       }
     },
     // 查看行程的事件

+ 6 - 6
components/ItemComponent/chartItem.vue

@@ -42,15 +42,15 @@ export default {
     goDetail(item) {
       if (item.HomeType !== 1) {
         /* 无需授权且已绑定 检验是或否有权限 */
-        this.$store.dispatch("checkHandle", "/pageMy/chartPage/chartPage?id=" + item.ChartId);
+        uni.navigateTo({ url: "/pageMy/chartPage/chartPage?id=" + item.ChartId });
       }
     },
-    myChartIsTop(id){
-      this.$emit("myChartIsTop", id)
+    myChartIsTop(id) {
+      this.$emit("myChartIsTop", id);
+    },
+    myChartCollect(id) {
+      this.$emit("myChartCollect", id);
     },
-    myChartCollect(id){
-      this.$emit("myChartCollect", id)
-    }
   },
 };
 </script>

+ 1 - 1
components/ItemComponent/reportItem.vue

@@ -46,7 +46,7 @@ export default {
     goDetail(item) {
       if (item.HomeType !== 1) {
         /* 无需授权且已绑定 检验是或否有权限 */
-        this.$store.dispatch("checkHandle", "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId);
+        uni.navigateTo({ url: "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId});
       }
     },
     richTextClamp(val) {

+ 42 - 25
components/ItemComponent/roadshowItem.vue

@@ -1,6 +1,6 @@
 <template>
   <view class="container-roadshow-item">
-    <view class="title ">
+    <view class="title">
       <text class="text_twoLine">{{ list.Title }}</text>
     </view>
     <view class="cover-item" :style="{ 'background-image': 'url(' + list.BackgroundImg + ')' }">
@@ -22,7 +22,11 @@
       <view :class="['identification', list.Type != 1 && 'identification-video']"> </view>
       <image
         class="identification-img"
-        :src="list.Type == 1 ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/video-iocn.png' : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/audio-icon.png'"
+        :src="
+          list.Type == 1
+            ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/video-iocn.png'
+            : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/audio-icon.png'
+        "
       ></image>
     </view>
     <view class="title-share">
@@ -30,7 +34,11 @@
         <image @click="myLeavingMessageHandler(list)" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/leaving_message.png"></image>
         <image
           @click="isCollectionHandeler(list)"
-          :src="list.IsCollect ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/collected_icon.png' : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/not_collected.png'"
+          :src="
+            list.IsCollect
+              ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/collected_icon.png'
+              : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/not_collected.png'
+          "
         ></image>
         <button class="share-icon" open-type="share" :data-item="list">
           <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/multimedia/share-btn-icon.png"></image>
@@ -41,7 +49,12 @@
       <audioModule :showAudioPop.sync="showAudioPop" />
     </view>
     <videoModule :showVideoPop="showVideoPop" :curVideoId="curVideoId" :videoPopList="videoPopList" />
-    <modalDialog :isShowhasPermission="isShowhasPermission" :applyForIsShow="applyForIsShow" :jurisdictionList="jurisdictionList" :hasPermission="hasPermission" />
+    <modalDialog
+      :isShowhasPermission="isShowhasPermission"
+      :applyForIsShow="applyForIsShow"
+      :jurisdictionList="jurisdictionList"
+      :hasPermission="hasPermission"
+    />
   </view>
 </template>
 
@@ -95,7 +108,8 @@ export default {
   mounted() {},
   methods: {
     //播放的权限判断
-    handelPlay(item) {
+    async handelPlay(item) {
+      await this.$store.dispatch("showLoginModal");
       let content_item = null;
       if (item.AudioActivityId) {
         content_item = {
@@ -106,25 +120,21 @@ export default {
           Type: item.AudioType,
         };
       }
-      if (!this.$store.state.isAuth && !this.$store.state.isBind) {
-        if (item.AuthInfo.HasPermission == 1) {
-          item.Type == 1 || item.AudioType == 1 ? this.audioPlayBack(content_item ? content_item : item) : this.handelVideoPlay(item);
-        } else {
-          this.hasPermission = item.AuthInfo.HasPermission;
-          this.jurisdictionList.ActivityId = item.Id;
-          this.jurisdictionList.isAudioVideo = item.Type;
-          if (this.hasPermission == 2) {
-            this.jurisdictionList.SellerMobile = item.AuthInfo.SellerMobile;
-            this.jurisdictionList.SellerName = item.AuthInfo.SellerName;
-            this.jurisdictionList.PopupMsg = item.AuthInfo.PopupMsg;
-            this.isShowhasPermission = true;
-          } else if (this.hasPermission == 3 || this.hasPermission == 4 || this.hasPermission == 5) {
-            this.jurisdictionList.PopupMsg = item.AuthInfo.PopupMsg;
-            this.applyForIsShow = true;
-          }
-        }
+      if (item.AuthInfo.HasPermission == 1) {
+        item.Type == 1 || item.AudioType == 1 ? this.audioPlayBack(content_item ? content_item : item) : this.handelVideoPlay(item);
       } else {
-        this.$store.dispatch("checkHandle");
+        this.hasPermission = item.AuthInfo.HasPermission;
+        this.jurisdictionList.ActivityId = item.Id;
+        this.jurisdictionList.isAudioVideo = item.Type;
+        if (this.hasPermission == 2) {
+          this.jurisdictionList.SellerMobile = item.AuthInfo.SellerMobile;
+          this.jurisdictionList.SellerName = item.AuthInfo.SellerName;
+          this.jurisdictionList.PopupMsg = item.AuthInfo.PopupMsg;
+          this.isShowhasPermission = true;
+        } else if (this.hasPermission == 3 || this.hasPermission == 4 || this.hasPermission == 5) {
+          this.jurisdictionList.PopupMsg = item.AuthInfo.PopupMsg;
+          this.applyForIsShow = true;
+        }
       }
     },
     //视频的播放事件
@@ -172,9 +182,16 @@ export default {
       return imgSrc;
     },
     // 微路演留言
-    myLeavingMessageHandler(item) {
+    async myLeavingMessageHandler(item) {
+      await this.$store.dispatch("showLoginModal");
       uni.navigateTo({
-        url: "/activityPages/generationAsk/generationAsk?id=" + (item.Type == 3 ? item.Id : item.ActivityId) + "&type=文章&roadshow=" + item.Type + "&roadshowTitle=" + item.Title,
+        url:
+          "/activityPages/generationAsk/generationAsk?id=" +
+          (item.Type == 3 ? item.Id : item.ActivityId) +
+          "&type=文章&roadshow=" +
+          item.Type +
+          "&roadshowTitle=" +
+          item.Title,
       });
     },
 

+ 11 - 6
components/activity/indexActivity.js

@@ -48,7 +48,10 @@ export default {
       if (item.YidongActivityId) {
         this.goDetail(item);
         return;
-      } else if ((item.IsYidongConduct && item.IsCanOutboundCall) || (!item.IsYidongConduct && item.IsLimitPeople == 1 && [1, 2, 3].includes(item.ActivityTypeId))) {
+      } else if (
+        (item.IsYidongConduct && item.IsCanOutboundCall) ||
+        (!item.IsYidongConduct && item.IsLimitPeople == 1 && [1, 2, 3].includes(item.ActivityTypeId))
+      ) {
         this.selectShow = true;
         this.selectYdong = item.IsYidongConduct;
       } else {
@@ -81,13 +84,15 @@ export default {
           cancelColor: "#606266",
           success: async (res) => {
             if (res.confirm) {
-              const res = await activity.signupCancel({ ActivityId: item.ActivityId, SignupType: type, PageRouter: this.$store.state.pageRouterActivity });
+              const res = await activity.signupCancel({
+                ActivityId: item.ActivityId,
+                SignupType: type,
+                PageRouter: this.$store.state.pageRouterActivity,
+              });
               if (res.Ret === 200) {
                 this.collectList.forEach((valueAct) => {
                   if (valueAct.ActivityId === id) {
-                    console.log(valueAct.IsSignup, "==========");
                     valueAct.IsSignup = 0;
-                    console.log(valueAct.IsSignup, "-----------");
                   }
                 });
                 this.init();
@@ -309,9 +314,9 @@ export default {
     //去往详情页面
     goDetail(item) {
       if (item.SourceType && item.SourceType == 2) {
-        this.$store.dispatch("checkHandle", "/activityPages/specialDetail/specialDetail?id=" + item.ActivityId);
+        uni.navigateTo({ url: "/activityPages/specialDetail/specialDetail?id=" + item.ActivityId });
       } else {
-        this.$store.dispatch("checkHandle", "/activityPages/activityDetail/activityDetail?id=" + item.ActivityId);
+        uni.navigateTo({ url: "/activityPages/activityDetail/activityDetail?id=" + item.ActivityId });
       }
     },
   },

+ 71 - 0
components/notHaveLogin.vue

@@ -0,0 +1,71 @@
+<template>
+  <view class="not-have-login">
+    <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/not_have_login.png"></image>
+    <text> 为了给您提供更好的使用体验,请登录后再查看此页面内容 </text>
+    <view class="btn" @click="goLogin">立即登录</view>
+  </view>
+</template>
+
+<script>
+export default {
+  name: "",
+  components: {},
+  props: {},
+  data() {
+    return {};
+  },
+  computed: {},
+  watch: {},
+  created() {},
+  mounted() {},
+  methods: {
+    goLogin() {
+      uni.showModal({
+        title: "即将前往登录页面,请确认是否继续",
+        confirmColor: "#3385FF",
+        cancelColor: "#606266",
+        success: function (res) {
+          if (res.confirm) {
+            //已授权未绑定
+            uni.navigateTo({
+              url: "/pageMy/login/login",
+            });
+          } else if (res.cancel) {
+            console.log("用户点击取消");
+          }
+        },
+      });
+    },
+  },
+};
+</script>
+<style scoped lang="scss">
+.not-have-login {
+  width: 100%;
+  height: 100%;
+  text-align: center;
+  padding-top: 260rpx;
+  image {
+    width: 480rpx;
+    height: 480rpx;
+  }
+  text {
+    font-size: 34rpx;
+    margin: 100rpx auto 80rpx;
+    width: 476rpx;
+  }
+  .btn {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    padding: 6rpx 50rpx;
+    width: 323rpx;
+    height: 61rpx;
+    background: #3385ff;
+    border-radius: 4rpx;
+    font-size: 24rpx;
+    margin: 0 auto;
+    color: #fff;
+  }
+}
+</style>

+ 13 - 17
components/report/timeLine.vue

@@ -57,25 +57,21 @@ export default {
           TimeLineId: item.TimeLineId,
         }));
       if (item.Content.length !== 0 && !item.ArticleId && !item.ChartId) 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,
+        });
+      } else {
+        !item.ArticleId && !item.ChartId && this.$emit("setRouter");
+        if (item.Id || item.ArticleId) {
           uni.navigateTo({
-            url: "/reportPages/roadEssence/roadEssence?id=" + item.Id,
+            url: "/pageMy/reportDetail/reportDetail?id=" + (item.Id || item.ArticleId),
+          });
+        } else if (item.ChartId) {
+          uni.navigateTo({
+            url: "/pageMy/chartPage/chartPage?id=" + item.ChartId,
           });
-        } else {
-          !item.ArticleId && !item.ChartId && this.$emit("setRouter");
-          if (item.Id || item.ArticleId) {
-            uni.navigateTo({
-              url: "/pageMy/reportDetail/reportDetail?id=" + (item.Id || item.ArticleId),
-            });
-          } else if (item.ChartId) {
-            uni.navigateTo({
-              url: "/pageMy/chartPage/chartPage?id=" + item.ChartId,
-            });
-          }
         }
       }
     }, //展开收起晨会内容

+ 1 - 1
config/modules/Reports.js

@@ -73,7 +73,7 @@ export const Reports = {
   },
   /* 获取是否展示绝密内参接口*/
   reportIsShow: (params) => {
-    return getHttp("/report/isShow", params);
+    return getHttp("/report/isShow", params,0);
   },
   /* 获取报告精选、本周研究汇总、上周纪要汇总列表接口*/
   reportListByType: (params) => {

+ 12 - 2
mixin/index.js

@@ -1,4 +1,5 @@
 import { FreeButton, Reports, User } from "@/config/api.js";
+import { Throttle } from "@/config/util.js";
 export default {
   data() {
     return {
@@ -18,7 +19,8 @@ export default {
       }, //页面进来的路径
     };
   },
-  onShow() {
+  async onShow() {
+    await this.$store.dispatch("checkHandle", "noGO");
     this.isShowFreeButton();
   },
   onLoad(optios) {
@@ -34,7 +36,6 @@ export default {
     //     }
     //   },
     // });
-
     // 判断手机号是不是弘则研究
     // this.userIsShowShare();
   },
@@ -70,4 +71,13 @@ export default {
       return `<div style="font-size:16px;line-height: 1.6">${font}</div>`;
     },
   },
+  computed: {
+    isUserBindingPhoneNumber: {
+      get() {
+        let isShow = !(!this.$store.state.isAuth && this.$store.state.isBind);
+        return isShow;
+      },
+      set() {},
+    },
+  },
 };

+ 6 - 4
pageMy/browseHistory/browseHistory.vue

@@ -12,7 +12,9 @@
           <text style="display: inline" @click="goDetailReport(item)">
             {{ item.Title }}
           </text>
-          <text @click="themeDetails(item, val)" class="item-industry" v-for="val in item.List" :key="val.IndustrialManagementId"> # {{ val.IndustryName }} </text>
+          <text @click="themeDetails(item, val)" class="item-industry" v-for="val in item.List" :key="val.IndustrialManagementId">
+            # {{ val.IndustryName }}
+          </text>
         </view>
         <view class="item-more">
           <text>{{ item.PublishDate }}</text>
@@ -95,17 +97,17 @@ export default {
 
     // 去往文章详情页面
     goDetailReport(item) {
-      this.$store.dispatch("checkHandle", "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId);
+      uni.navigateTo({ url: "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId });
     },
 
     // 去往主题详情
     themeDetails(item, val) {
       if (item.Source === 1) {
         //非严选
-        this.$store.dispatch("checkHandle", "/reportPages/IndustryReport/IndustryReport?id=" + val.IndustrialManagementId);
+        uni.navigateTo({ url: "/reportPages/IndustryReport/IndustryReport?id=" + val.IndustrialManagementId });
       } else {
         //严选
-        this.$store.dispatch("checkHandle", "/reportPages/researchTheme/researchTheme?id=" + val.IndustrialManagementId + "&pageRouter=足迹");
+        uni.navigateTo({ url: "/reportPages/researchTheme/researchTheme?id=" + val.IndustrialManagementId + "&pageRouter=足迹" });
       }
     },
 

+ 22 - 14
pageMy/chartPage/chartPage.vue

@@ -1,23 +1,31 @@
 <template>
-  <view class="container reportDetail-container">
-    <web-view :src="strategyUrl + '?url=' + httpUrl" v-if="httpUrl">
-      <cover-view class="footer-con">
-        <cover-view class="handle-item" @click="collectHandle">
-          <cover-image
-            class="download-img"
-            :src="isCollection ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_act.png' : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_ico.png'"
-          ></cover-image>
-          <cover-view>收藏</cover-view>
+  <block>
+    <view class="container reportDetail-container" v-if="isUserBindingPhoneNumber">
+      <web-view :src="strategyUrl + '?url=' + httpUrl" v-if="httpUrl">
+        <cover-view class="footer-con">
+          <cover-view class="handle-item" @click="collectHandle">
+            <cover-image
+              class="download-img"
+              :src="
+                isCollection
+                  ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_act.png'
+                  : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_ico.png'
+              "
+            ></cover-image>
+            <cover-view>收藏</cover-view>
+          </cover-view>
         </cover-view>
-      </cover-view>
-    </web-view>
-  </view>
+      </web-view>
+    </view>
+    <not-have-login v-else />
+  </block>
 </template>
 
 <script>
 import { Chart } from "@/config/api.js";
 import freeCharge from "@/components/freeCharge";
 import { reportStrategyUrl } from "@/config/config";
+import NotHaveLogin from "@/components/notHaveLogin.vue";
 
 let app = getApp({ allowDefault: true });
 export default {
@@ -31,6 +39,7 @@ export default {
   },
   components: {
     freeCharge,
+    NotHaveLogin,
   },
   computed: {
     strategyUrl() {
@@ -70,8 +79,7 @@ export default {
     this.id = option.id || "";
   },
 
-  async onShow() {
-    await this.$store.dispatch("checkHandle");
+  onShow() {
     if (!this.$store.state.isAuth && !this.$store.state.isBind) {
       //已授权已绑定 才获取详情
       this.id && this.myChartDetail();

+ 40 - 27
pageMy/login/login.vue

@@ -7,9 +7,11 @@
     <view class="bind-cont">
       <view class="tel-bind" v-if="bind_type === 1">
         <view class="ipt-item">
-          <label class="item-label item-iphone" @click="isAreaCode = true">{{ showCountryCode }} <u-icon :name="isAreaCode ? 'arrow-up' : 'arrow-down'" color="#B2B2B2" size="28"></u-icon></label>
+          <label class="item-label item-iphone" @click="isAreaCode = true"
+            >{{ showCountryCode }} <u-icon :name="isAreaCode ? 'arrow-up' : 'arrow-down'" color="#B2B2B2" size="28"></u-icon
+          ></label>
           <input type="number" v-model="phoneIpt" class="ipt" placeholder="请输入手机号" style="width: 300rpx" />
-          <button open-type="getPhoneNumber" value="用户授权" @getphonenumber="getPhoneNumber" class="code-btn">微信手机号绑定</button>
+          <!-- <button open-type="getPhoneNumber" value="用户授权" @getphonenumber="getPhoneNumber" class="code-btn">微信手机号绑定</button> -->
         </view>
         <view class="ipt-item">
           <label class="item-label">验证码</label>
@@ -73,6 +75,12 @@ export default {
       scene: "", //分享人的分享码
       isAreaCode: false, //选择区号
       checked: false, //勾选了同意
+      pathArrData: [
+        "activityPages/themeActivity/themeActivity",
+        "activityPages/playBack/playBack",
+        "activityPages/specialResearchPage/specialResearchPage",
+        "pages/activity/activity",
+      ],
     };
   },
   methods: {
@@ -186,35 +194,40 @@ export default {
     },
 
     //绑定登陆
-    bindLogin(params) {
-      User.Bind(params).then((res) => {
-        if (res.Ret === 200) {
-          let token = res.Data.Authorization;
-          this.$db.set("access_token", token);
-          if (res.Data.IsPotential && this.scene) {
-            uni.reLaunch({
-              url: "/pageMy/transitionPages/transitionPages",
-            });
-          } else {
-            let pages = getCurrentPages();
-            let prevPage = pages[pages.length - 2];
-            let path = prevPage ? prevPage.$page.fullPath : "";
-            if (path.includes("/pages/index/index")) {
+    async bindLogin(params) {
+      const res = await User.Bind(params);
+      if (res.Ret === 200) {
+        let token = res.Data.Authorization;
+        this.$db.set("access_token", token);
+        if (res.Data.IsPotential && this.scene) {
+          uni.reLaunch({
+            url: "/pageMy/transitionPages/transitionPages",
+          });
+        } else {
+          await this.$store.dispatch("checkHandle", "noGO");
+          let pages = getCurrentPages();
+          let prevPage = pages[pages.length - 2];
+          let path = prevPage ? prevPage.route : "";
+          switch (path) {
+            case "pages/index/index":
               uni.$emit("updateNewList");
-            } else if (path.includes("/pages/material/material")) {
+              break;
+            case "pages/material/material":
               uni.$emit("updateAudioVideo");
-            }
-            uni.navigateBack({
-              delta: 1,
-              fail: (err) => {
-                uni.switchTab({
-                  url: "/pages/index/index",
-                });
-              },
-            });
+              break;
+            default:
+              this.pathArrData.includes(path) ? prevPage.onLoad(prevPage.options) : "";
           }
+          uni.navigateBack({
+            delta: 1,
+            fail: (err) => {
+              uni.switchTab({
+                url: "/pages/index/index",
+              });
+            },
+          });
         }
-      });
+      }
     },
 
     // 选择了地区的区号

+ 7 - 4
pageMy/myCollection/myCollection.vue

@@ -31,7 +31,9 @@
             <text style="display: inline" @click="goDetailReport(item)">
               {{ item.Title }}
             </text>
-            <text @click="themeDetails(item, val)" class="item-industry" v-for="val in item.List" :key="val.IndustrialManagementId"> # {{ val.IndustryName }} </text>
+            <text @click="themeDetails(item, val)" class="item-industry" v-for="val in item.List" :key="val.IndustrialManagementId">
+              # {{ val.IndustryName }}
+            </text>
           </view>
           <view class="item-more">
             <text>{{ item.PublishDate }}</text>
@@ -152,7 +154,7 @@ export default {
           url: "/reportPages/roadEssence/roadEssence?id=" + item.ArticleId,
         });
       } else {
-        this.$store.dispatch("checkHandle", "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId);
+        uni.navigateTo({ url: "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId });
       }
     },
 
@@ -160,10 +162,10 @@ export default {
     themeDetails(item, val) {
       if (item.Source === 1) {
         //非严选
-        this.$store.dispatch("checkHandle", "/reportPages/IndustryReport/IndustryReport?id=" + val.IndustrialManagementId);
+        uni.navigateTo({ url: "/reportPages/IndustryReport/IndustryReport?id=" + val.IndustrialManagementId });
       } else {
         //严选
-        this.$store.dispatch("checkHandle", "/reportPages/researchTheme/researchTheme?id=" + val.IndustrialManagementId);
+        uni.navigateTo({ url: "/reportPages/researchTheme/researchTheme?id=" + val.IndustrialManagementId });
       }
     },
 
@@ -199,6 +201,7 @@ export default {
 
     // 微路演收藏
     async isCollectionHandeler(item) {
+      await this.$store.dispatch("showLoginModal");
       const res = await Home.microRoadshowCollect({
         Id: item.Id,
         SourceType: item.Type,

+ 30 - 5
pageMy/myPage/myPage.vue

@@ -1,7 +1,10 @@
 <template>
   <view class="container my-container" v-if="haveData">
     <view class="top-content-box">
-      <view class="nav-bar-wrap" :style="{ height: navBarStyle.height, paddingTop: navBarStyle.paddingTop, paddingBottom: navBarStyle.paddingBottom }">
+      <view
+        class="nav-bar-wrap"
+        :style="{ height: navBarStyle.height, paddingTop: navBarStyle.paddingTop, paddingBottom: navBarStyle.paddingBottom }"
+      >
         <van-icon custom-class="search-icon" name="arrow-left" size="24px" @click="goBack" />
       </view>
     </view>
@@ -11,7 +14,7 @@
         <van-icon @click="myNotice = false" class="my-icon" name="cross" />
       </view>
     </view>
-    <view class="my-info">
+    <view class="my-info" v-if="isUserBindingPhoneNumber">
       <view class="my-top-info">
         <view class="info">
           <view class="info-img">
@@ -63,7 +66,9 @@
           <text>{{ type }}</text>
           <view class="my-bot-box">
             <block v-if="type == '外呼号码'">
-              <text v-if="userInfo.OutboundCountryCode && userInfo.OutboundMobile" style="margin-right: 40rpx; font-size: 28rpx">{{ userInfo.OutboundCountryCode }}-{{ userInfo.OutboundMobile }}</text>
+              <text v-if="userInfo.OutboundCountryCode && userInfo.OutboundMobile" style="margin-right: 40rpx; font-size: 28rpx"
+                >{{ userInfo.OutboundCountryCode }}-{{ userInfo.OutboundMobile }}</text
+              >
               <text v-else style="margin-right: 40rpx; font-size: 28rpx">未设置</text>
             </block>
             <block v-if="type == '关注公众号'">
@@ -78,6 +83,10 @@
       </view>
       <view class="bottom-text">您手边的研究素材库</view>
     </view>
+    <view v-else class="not-bind-login">
+      <not-have-login />
+      <view class="bottom-text">您手边的研究素材库</view>
+    </view>
 
     <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
   </view>
@@ -86,10 +95,12 @@
 <script>
 import { uploadurl, Mine, checkToken, User } from "@/config/api.js";
 import freeCharge from "@/components/freeCharge";
+import NotHaveLogin from "../../components/notHaveLogin.vue";
 let app = getApp();
 export default {
   components: {
     freeCharge,
+    NotHaveLogin,
   },
   data() {
     return {
@@ -110,8 +121,7 @@ export default {
       headimgurl: "",
     };
   },
-  async onShow() {
-    await this.$store.dispatch("checkHandle", "noGO");
+  onShow() {
     this.haveData = true;
     if (!this.$store.state.isAuth && !this.$store.state.isBind) {
       //已授权已绑定
@@ -499,5 +509,20 @@ export default {
     width: 100%;
     text-align: center;
   }
+  .not-bind-login {
+    position: absolute;
+    top: 301rpx;
+    left: 50%;
+    transform: translateX(-50%);
+    width: 95%;
+    height: 1234rpx;
+    background-color: #fff;
+    border-radius: 8rpx;
+    border: 1px solid #ececec;
+    .bottom-text {
+      position: absolute;
+      bottom: -50rpx;
+    }
+  }
 }
 </style>

+ 0 - 1
pageMy/mySchedulepage/mySchedulepage.vue

@@ -241,7 +241,6 @@ export default {
     this.getActivityList();
   },
   async onShow() {
-    await this.$store.dispatch("checkHandle", "noGO");
     this.$store.commit("audioBg/parseIntAudio", true);
   },
   onHide() {

+ 40 - 36
pageMy/reportDetail/reportDetail.vue

@@ -1,54 +1,59 @@
 <template>
-  <view class="container reportDetail-container">
-    <block v-if="haveAuth === 1">
-      <!-- 链接地址 -->
-      <web-view :src="linkurl + '?id=' + id + '&fromType=mpwechat&token=' + access_token + '&IsSendWx=' + isSendWx"></web-view>
-    </block>
-    <view class="noauth-cont" v-else-if="haveAuth === 2 || haveAuth === 3 || haveAuth === 4 || haveAuth === 5">
-      <block v-if="isSpecialArticle_report">
-        <image src="https://hzstatic.hzinsights.com/cygx/czbk/noauth.png" class="noauth-ico"></image>
-        <view class="tip" v-if="haveAuth === 3">
-          需要升级行业套餐权限才可查看此报告,请联系对口销售
-          <view class="btn-cont back-btn" @click="backIndex"> 返回 </view>
-        </view>
+  <block>
+    <view class="container reportDetail-container" v-if="isUserBindingPhoneNumber">
+      <block v-if="haveAuth === 1">
+        <!-- 链接地址 -->
+        <web-view :src="linkurl + '?id=' + id + '&fromType=mpwechat&token=' + access_token + '&IsSendWx=' + isSendWx"></web-view>
       </block>
-      <block v-else>
-        <block v-if="!isShowAlert">
+      <view class="noauth-cont" v-else-if="haveAuth === 2 || haveAuth === 3 || haveAuth === 4 || haveAuth === 5">
+        <block v-if="isSpecialArticle_report">
           <image src="https://hzstatic.hzinsights.com/cygx/czbk/noauth.png" class="noauth-ico"></image>
-          <block v-if="haveAuth !== 3">
-            <view class="tip">您暂无权限查看此报告内容,若想查看可以申请开通对应的试用权限</view>
-            <view class="btn-cont" @click="applyAuth">{{ isShowAlert ? "立即上传" : "立即申请" }} </view>
-          </block>
           <view class="tip" v-if="haveAuth === 3">
-            您暂无权限查看此报告内容
-            <view class="contract">
-              若想查看可以联系对口销售
-              <text @click="callPhone(sale_number)">
-                {{ sale_name }}:
-                <text style="color: #d4bf86">{{ sale_number }}</text>
-              </text>
-            </view>
-            <view>申请开通对应的试用权限</view>
+            需要升级行业套餐权限才可查看此报告,请联系对口销售
+            <view class="btn-cont back-btn" @click="backIndex"> 返回 </view>
           </view>
-          <view v-if="haveAuth === 3" class="btn-cont" @click="sellerApplyAuth"> 立即申请</view>
-          <view class="btn-cont back-btn" @click="backIndex"> 返回 </view>
         </block>
         <block v-else>
-          <text class="moneh-text"> 上传名片并填写简单信息,24小时内我们会为您开通一个月的免费月卡 </text>
-          <img src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/month_card.png" class="month_card" alt="" />
-          <view class="btn-cont btn-dl" @click="applyAuth"> 立即上传 </view>
-          <view class="btn-cont month-back" @click="backIndex"> 返回</view>
+          <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">您暂无权限查看此报告内容,若想查看可以申请开通对应的试用权限</view>
+              <view class="btn-cont" @click="applyAuth">{{ isShowAlert ? "立即上传" : "立即申请" }} </view>
+            </block>
+            <view class="tip" v-if="haveAuth === 3">
+              您暂无权限查看此报告内容
+              <view class="contract">
+                若想查看可以联系对口销售
+                <text @click="callPhone(sale_number)">
+                  {{ sale_name }}:
+                  <text style="color: #d4bf86">{{ sale_number }}</text>
+                </text>
+              </view>
+              <view>申请开通对应的试用权限</view>
+            </view>
+            <view v-if="haveAuth === 3" class="btn-cont" @click="sellerApplyAuth"> 立即申请</view>
+            <view class="btn-cont back-btn" @click="backIndex"> 返回 </view>
+          </block>
+          <block v-else>
+            <text class="moneh-text"> 上传名片并填写简单信息,24小时内我们会为您开通一个月的免费月卡 </text>
+            <img src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/month_card.png" class="month_card" alt="" />
+            <view class="btn-cont btn-dl" @click="applyAuth"> 立即上传 </view>
+            <view class="btn-cont month-back" @click="backIndex"> 返回</view>
+          </block>
         </block>
-      </block>
+      </view>
     </view>
-  </view>
+    <not-have-login v-else />
+  </block>
 </template>
 
 <script>
 import { Report, User, Reports, FreeButton } from "@/config/api.js";
 import { reportLinkUrl } from "@/config/config";
+import notHaveLogin from "@/components/notHaveLogin.vue";
 let app = getApp({ allowDefault: true });
 export default {
+  components: { notHaveLogin },
   data() {
     return {
       access_token: "", //用户标识
@@ -254,7 +259,6 @@ export default {
     }, 1000);
     let page = getCurrentPages(); //查看路径
     if (page.length === 1) {
-      await this.$store.dispatch("checkHandle");
       if (!this.$store.state.isAuth && !this.$store.state.isBind && this.id > 0) this.getDetail();
     } else {
       // 跳转入口

+ 83 - 67
pageMy/reportPage/reportPage.vue

@@ -1,78 +1,94 @@
 <template>
-  <view class="container reportDetail-container">
-    <block v-if="haveAuth === 1">
-      <web-view :src="strategyUrl + '?url=' + linkurl" v-if="linkurl">
-      <cover-view class="search-view">
-        <cover-view class="search-view-box" v-if="reportInfo.IsShowFollowButton">
-          <cover-view>若对该赛道不感兴趣,可点击</cover-view>
-          <cover-image
-            class="search-icon"
-            @click="isFollowHandler"
-            :src="reportInfo.IsFollowButton ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/close_follow.png' : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/follow_.png'"
-          ></cover-image>
-        </cover-view>
-      </cover-view>
-      <cover-view class="footer-con">
-        <cover-view class="handle-item" @click="goRevolvePage">
-          <cover-image class="download-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/report-revolve.png"></cover-image>
-          <cover-view>全屏</cover-view>
-        </cover-view>
-        <cover-view class="handle-item" @click="leavingMessage">
-          <cover-image class="download-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/leaving_message.png"></cover-image>
-          <cover-view>留言</cover-view>
-        </cover-view>
-        <cover-view class="handle-item" @click="collectHandle">
-          <cover-image
-            class="download-img"
-            :src="isCollection ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_act.png' : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_ico.png'"
-          ></cover-image>
-          <cover-view>收藏</cover-view>
-        </cover-view>
-        <cover-view class="handle-item" v-if="fileLink" @click="downloadFile">
-          <cover-image class="download-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/down_ico.png"></cover-image>
-          <cover-view>下载</cover-view>
-        </cover-view>
-      </cover-view>
-      <cover-view class="footer-free-charge free-charge" v-if="isShowFree">
-        <cover-image class="img" @click="toggle" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/free_icon.png"></cover-image>
-        <cover-image @click="removeBton" class="remove-icon" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/free_%20remove.png"></cover-image>
-      </cover-view>
-      </web-view>
-    </block>
-    <view class="noauth-cont" v-else-if="haveAuth === 2 || haveAuth === 3 || haveAuth === 4 || haveAuth === 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">您暂无权限查看此报告内容,若想查看可以申请开通对应的试用权限</view>
-          <view class="btn-cont" @click="applyAuth">{{ isShowAlert ? "立即上传" : "立即申请" }} </view>
-        </block>
-        <view class="tip" v-if="haveAuth === 3">
-          您暂无权限查看此报告内容
-          <view class="contract">
-            若想查看可以联系对口销售
-            <text @click="callPhone(sale_number)"
-              >{{ sale_name }}:<text style="color: #d4bf86">{{ sale_number }}</text></text
-            >
-          </view>
-          <view>申请开通对应的试用权限</view>
-        </view>
-        <view v-if="haveAuth === 3" class="btn-cont" @click="sellerApplyAuth"> 立即申请</view>
-        <view class="btn-cont back-btn" @click="backIndex"> 返回 </view>
-      </block>
-      <block v-else>
-        <text class="moneh-text"> 上传名片并填写简单信息,24小时内我们会为您开通一个月的免费月卡 </text>
-        <img src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/month_card.png" class="month_card" alt="" />
-        <view class="btn-cont btn-dl" @click="applyAuth"> 立即上传 </view>
-        <view class="btn-cont month-back" @click="backIndex"> 返回</view>
+  <block>
+    <view class="container reportDetail-container" v-if="isUserBindingPhoneNumber">
+      <block v-if="haveAuth === 1">
+        <web-view :src="strategyUrl + '?url=' + linkurl" v-if="linkurl">
+          <cover-view class="search-view">
+            <cover-view class="search-view-box" v-if="reportInfo.IsShowFollowButton">
+              <cover-view>若对该赛道不感兴趣,可点击</cover-view>
+              <cover-image
+                class="search-icon"
+                @click="isFollowHandler"
+                :src="
+                  reportInfo.IsFollowButton
+                    ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/close_follow.png'
+                    : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/follow_.png'
+                "
+              ></cover-image>
+            </cover-view>
+          </cover-view>
+          <cover-view class="footer-con">
+            <cover-view class="handle-item" @click="goRevolvePage">
+              <cover-image class="download-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/report-revolve.png"></cover-image>
+              <cover-view>全屏</cover-view>
+            </cover-view>
+            <cover-view class="handle-item" @click="leavingMessage">
+              <cover-image class="download-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/leaving_message.png"></cover-image>
+              <cover-view>留言</cover-view>
+            </cover-view>
+            <cover-view class="handle-item" @click="collectHandle">
+              <cover-image
+                class="download-img"
+                :src="
+                  isCollection
+                    ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_act.png'
+                    : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_ico.png'
+                "
+              ></cover-image>
+              <cover-view>收藏</cover-view>
+            </cover-view>
+            <cover-view class="handle-item" v-if="fileLink" @click="downloadFile">
+              <cover-image class="download-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/down_ico.png"></cover-image>
+              <cover-view>下载</cover-view>
+            </cover-view>
+          </cover-view>
+          <cover-view class="footer-free-charge free-charge" v-if="isShowFree">
+            <cover-image class="img" @click="toggle" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/free_icon.png"></cover-image>
+            <cover-image
+              @click="removeBton"
+              class="remove-icon"
+              src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/free_%20remove.png"
+            ></cover-image>
+          </cover-view>
+        </web-view>
       </block>
+      <view class="noauth-cont" v-else-if="haveAuth === 2 || haveAuth === 3 || haveAuth === 4 || haveAuth === 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">您暂无权限查看此报告内容,若想查看可以申请开通对应的试用权限</view>
+            <view class="btn-cont" @click="applyAuth">{{ isShowAlert ? "立即上传" : "立即申请" }} </view>
+          </block>
+          <view class="tip" v-if="haveAuth === 3">
+            您暂无权限查看此报告内容
+            <view class="contract">
+              若想查看可以联系对口销售
+              <text @click="callPhone(sale_number)"
+                >{{ sale_name }}:<text style="color: #d4bf86">{{ sale_number }}</text></text
+              >
+            </view>
+            <view>申请开通对应的试用权限</view>
+          </view>
+          <view v-if="haveAuth === 3" class="btn-cont" @click="sellerApplyAuth"> 立即申请</view>
+          <view class="btn-cont back-btn" @click="backIndex"> 返回 </view>
+        </block>
+        <block v-else>
+          <text class="moneh-text"> 上传名片并填写简单信息,24小时内我们会为您开通一个月的免费月卡 </text>
+          <img src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/month_card.png" class="month_card" alt="" />
+          <view class="btn-cont btn-dl" @click="applyAuth"> 立即上传 </view>
+          <view class="btn-cont month-back" @click="backIndex"> 返回</view>
+        </block>
+      </view>
     </view>
-  </view>
+    <not-have-login v-else />
+  </block>
 </template>
 
 <script>
 import { Report, User, Reports, FreeButton } from "@/config/api.js";
 import freeCharge from "@/components/freeCharge";
 import { reportStrategyUrl } from "@/config/config";
+import NotHaveLogin from "@/components/notHaveLogin.vue";
 let app = getApp({ allowDefault: true });
 export default {
   data() {
@@ -97,6 +113,7 @@ export default {
   },
   components: {
     freeCharge,
+    NotHaveLogin,
   },
   computed: {
     shareTitle() {
@@ -330,7 +347,6 @@ export default {
     }, 1000);
     let page = getCurrentPages(); //查看路径
     if (page.length === 1) {
-      await this.$store.dispatch("checkHandle");
       if (!this.$store.state.isAuth && !this.$store.state.isBind && this.id > 0) this.getDetail();
     } else {
       // 跳转入口

+ 1 - 1
pages-purchaser/components/mixinsAuthorTheme.js

@@ -28,7 +28,7 @@ export default {
     },
     //去往主题详情
     themeDetails(item, source) {
-      this.$store.dispatch("checkHandle", "/reportPages/researchTheme/researchTheme?id=" + item.IndustrialManagementId + "&pageRouter=" + source);
+      uni.navigateTo({ url: "/reportPages/researchTheme/researchTheme?id=" + item.IndustrialManagementId + "&pageRouter=" + source });
     },
     //关注
     async isAttention(item, val) {

+ 38 - 27
pages-search/components/report.vue

@@ -25,7 +25,12 @@
             </view>
           </view>
           <view class="read-more">
-            <view class="industry-video-item" @click.stop="handelVideoPlay(item)" :style="{ 'background-image': 'url(' + item.IndustryVideo.BackgroundImg + ')' }" v-if="item.IndustryVideo">
+            <view
+              class="industry-video-item"
+              @click.stop="handelVideoPlay(item)"
+              :style="{ 'background-image': 'url(' + item.IndustryVideo.BackgroundImg + ')' }"
+              v-if="item.IndustryVideo"
+            >
               5min
               <br />
               逻辑解析
@@ -97,7 +102,9 @@
           </view>
           <view class="item-title">
             <text style="display: inline; margin-right: 10rpx" @click="goDetailReport(item)">{{ item.Title }} </text>
-            <text class="item-industry" v-for="key in item.List" :key="key.IndustrialManagementId" @click="themeDetails(key)">#{{ key.IndustryName }}&nbsp;&nbsp;&nbsp;</text>
+            <text class="item-industry" v-for="key in item.List" :key="key.IndustrialManagementId" @click="themeDetails(key)"
+              >#{{ key.IndustryName }}&nbsp;&nbsp;&nbsp;</text
+            >
           </view>
           <view class="item-more">
             <text>{{ item.PublishDate }}</text>
@@ -124,7 +131,9 @@
         <view class="content-item" v-for="item in reportPageData.ListHzReport" :key="item.ArticleId">
           <view class="item-title">
             <text style="display: inline; margin-right: 10rpx" @click="goDetailReport(item)"> {{ item.Title }} </text>
-            <text class="item-industry" v-for="key in item.List" :key="key.IndustrialManagementId" @click="themeDetails(key)">#{{ key.IndustryName }}&nbsp;&nbsp;&nbsp;</text>
+            <text class="item-industry" v-for="key in item.List" :key="key.IndustrialManagementId" @click="themeDetails(key)"
+              >#{{ key.IndustryName }}&nbsp;&nbsp;&nbsp;</text
+            >
           </view>
           <view class="item-more">
             <text>{{ item.PublishDate }}</text>
@@ -150,7 +159,12 @@
     <!-- 视频模块 -->
     <videoModule :showVideoPop="showVideoPop" :videoPopList="videoPopList" class="industry-video-module" />
     <!-- 权限弹窗 -->
-    <modalDialog :isShowhasPermission="isShowhasPermission" :applyForIsShow="applyForIsShow" :jurisdictionList="jurisdictionList" :hasPermission="hasPermission" />
+    <modalDialog
+      :isShowhasPermission="isShowhasPermission"
+      :applyForIsShow="applyForIsShow"
+      :jurisdictionList="jurisdictionList"
+      :hasPermission="hasPermission"
+    />
   </view>
 </template>
 
@@ -183,7 +197,7 @@ export default {
   methods: {
     //去往文章详情页面
     goDetailReport(item) {
-      this.$store.dispatch("checkHandle", "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId);
+      uni.navigateTo({ url: "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId });
     },
     /* 进入详情 校验是否有该品种权限 */
     goDetail(item) {
@@ -195,10 +209,10 @@ export default {
     themeDetails(item) {
       if (item.Source === 1) {
         //非严选
-        this.$store.dispatch("checkHandle", "/reportPages/IndustryReport/IndustryReport?id=" + item.IndustrialManagementId);
+        uni.navigateTo({ url: "/reportPages/IndustryReport/IndustryReport?id=" + item.IndustrialManagementId });
       } else {
         //严选
-        this.$store.dispatch("checkHandle", "/reportPages/researchTheme/researchTheme?id=" + item.IndustrialManagementId);
+        uni.navigateTo({ url: "/reportPages/researchTheme/researchTheme?id=" + item.IndustrialManagementId });
       }
     },
     //收藏
@@ -265,27 +279,24 @@ export default {
       this.goFollowShow = false;
     },
     // 播放权限判断
-    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;
-          }
-        }
+    async handelVideoPlay(item) {
+      await this.$store.dispatch("showLoginModal");
+      if (item.AuthInfo.HasPermission == 1) {
+        this.playVideo(item);
       } else {
-        this.$store.dispatch("checkHandle");
+        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;
+        }
       }
     },
     playVideo(item) {

+ 2 - 1
pages-search/components/roadshow.vue

@@ -32,10 +32,11 @@ export default {
   methods: {
     // 微路演收藏
     async isCollectionHandeler(item) {
+      await this.$store.dispatch("showLoginModal");
       const res = await Home.microRoadshowCollect({
         Id: item.Id,
         SourceType: item.Type,
-        PageRouter: this.$store.state.pageRouterReport
+        PageRouter: this.$store.state.pageRouterReport,
       });
       if (res.Ret === 200) {
         let index = this.roadshowPageList.findIndex((key) => key.Id == item.Id);

+ 123 - 87
pages-search/indedxSearch/indedxSearch.vue

@@ -1,107 +1,143 @@
 <template>
-  <view class="container search-container">
-    <view class="sticky-content">
-      <view class="searchTarget-header">
-        <input
-          type="text"
-          :placeholder="searchPlaceholderList.TabSearch"
-          placeholder-class="sea_ipt_placeholder"
-          class="sea_ipt"
-          v-model="searchTxt"
-          focus="true"
-          confirm-type="search"
-          @confirm="searchHandle"
-        />
-        <icon type="search" size="15" class="sea_ico" />
-        <view class="ipt-right">
-          <icon type="clear" size="16" color="#E0E0E0" v-show="searchTxt" @click="clearIpt" />
-          <text class="line">|</text>
-          <text @click="searchHandle" style="color: #3385ff">搜索</text>
-        </view>
-      </view>
-      <view class="search-tabs" v-if="isResult">
-        <view :class="['tabs-item', tabsActive == item.id && 'active']" v-for="item in tabsList" :key="item.id" @click="tabsHandel(item)">
-          {{ item.title }}
-          <view class="item-act" v-if="tabsActive == item.id"></view>
+  <block>
+    <view class="container search-container" v-if="isUserBindingPhoneNumber">
+      <view class="sticky-content">
+        <view class="searchTarget-header">
+          <input
+            type="text"
+            :placeholder="searchPlaceholderList.TabSearch"
+            placeholder-class="sea_ipt_placeholder"
+            class="sea_ipt"
+            v-model="searchTxt"
+            focus="true"
+            confirm-type="search"
+            @confirm="searchHandle"
+          />
+          <icon type="search" size="15" class="sea_ico" />
+          <view class="ipt-right">
+            <icon type="clear" size="16" color="#E0E0E0" v-show="searchTxt" @click="clearIpt" />
+            <text class="line">|</text>
+            <text @click="searchHandle" style="color: #3385ff">搜索</text>
+          </view>
         </view>
-      </view>
-      <block v-if="isResult">
-        <view class="more-summary more-box" v-if="tabsActive == 1 && haveResultSummary">
-          <view>
-            <text class="more-text"> 纪要/图表 </text>
+        <view class="search-tabs" v-if="isResult">
+          <view :class="['tabs-item', tabsActive == item.id && 'active']" v-for="item in tabsList" :key="item.id" @click="tabsHandel(item)">
+            {{ item.title }}
+            <view class="item-act" v-if="tabsActive == item.id"></view>
           </view>
-          <view style="display: flex; align-items: center">
-            <!-- <view class="summary-select">
+        </view>
+        <block v-if="isResult">
+          <view class="more-summary more-box" v-if="tabsActive == 1 && haveResultSummary">
+            <view>
+              <text class="more-text"> 纪要/图表 </text>
+            </view>
+            <view style="display: flex; align-items: center">
+              <!-- <view class="summary-select">
               <text @click="summarySelectHandler(item, '纪要')" :class="['select-item', summarySelectActive == item.value && 'active-item']" v-for="item in summarySelect" :key="item.value">{{
                 item.name
               }}</text>
             </view> -->
-            <view v-if="tabsActive == 1" class="more-rivet" @click="tabsActiveMore(2)"> 更多 <u-icon name="arrow-right" color="#3385FF" size="28"></u-icon> </view>
-          </view>
-        </view>
-        <view class="activity-select" style="display: flex; align-items: center; justify-content: flex-end" v-if="tabsActive == 4 || tabsActive == 5">
-          <block v-for="item in activitySelect" :key="item.type">
-            <view :class="['summary-select', item.type == 5 && 'select-roadshow']" v-if="tabsActive == item.type">
-              <text @click="summarySelectHandler(key, item.name)" :class="['select-item', activitySelectActive == key.value && 'active-item']" v-for="key in item.list" :key="key.value">
-                {{ key.name }}
-              </text>
+              <view v-if="tabsActive == 1" class="more-rivet" @click="tabsActiveMore(2)">
+                更多 <u-icon name="arrow-right" color="#3385FF" size="28"></u-icon>
+              </view>
             </view>
-          </block>
-        </view>
-      </block>
-    </view>
-
-    <view class="search-cont" v-if="!isResult">
-      <block v-for="key in keywordList" :key="key.title">
-        <view class="history" v-if="key.title !== '搜索历史' || (key.title == '搜索历史' && historySearchList.length)">
-          <view class="history-title title">
-            <text>{{ key.title }}</text>
-            <image v-if="key.imgShown" @click="clearHistory" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/empty_ico.png" class="empty_ico"></image>
           </view>
-          <view class="history-item">
-            <block v-for="(item, index) in relyOn(key.title)" :key="item">
-              <block v-if="key.title == '搜索历史'">
-                <view v-if="index < 8" class="item" @click="chooseTarget(item)">{{ item }}</view>
-              </block>
-              <view v-else class="item" @click="chooseTarget(item)">{{ item }}</view>
+          <view
+            class="activity-select"
+            style="display: flex; align-items: center; justify-content: flex-end"
+            v-if="tabsActive == 4 || tabsActive == 5"
+          >
+            <block v-for="item in activitySelect" :key="item.type">
+              <view :class="['summary-select', item.type == 5 && 'select-roadshow']" v-if="tabsActive == item.type">
+                <text
+                  @click="summarySelectHandler(key, item.name)"
+                  :class="['select-item', activitySelectActive == key.value && 'active-item']"
+                  v-for="key in item.list"
+                  :key="key.value"
+                >
+                  {{ key.name }}
+                </text>
+              </view>
             </block>
           </view>
-        </view>
-      </block>
-    </view>
-    <view v-else class="content">
-      <block v-if="haveResult">
-        <view>
-          <summary-chart :resultList="tabsActive == 1 ? resultList.slice(0, 10) : resultList" :tabsActiveChild="tabsActive" v-if="resultList.length && (tabsActive == 2 || tabsActive == 1)" />
-          <view class="more-report more-box" v-if="tabsActive === 1 && haveResultReport">
-            <text class="more-text"> 资源包/报告 </text>
-            <view>
-              <view class="more-rivet" @click="tabsActiveMore(3)"> 更多 <u-icon name="arrow-right" color="#3385FF" size="28"></u-icon> </view>
+        </block>
+      </view>
+
+      <view class="search-cont" v-if="!isResult">
+        <block v-for="key in keywordList" :key="key.title">
+          <view class="history" v-if="key.title !== '搜索历史' || (key.title == '搜索历史' && historySearchList.length)">
+            <view class="history-title title">
+              <text>{{ key.title }}</text>
+              <image
+                v-if="key.imgShown"
+                @click="clearHistory"
+                src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/empty_ico.png"
+                class="empty_ico"
+              ></image>
             </view>
-          </view>
-          <reportPage @updateFllow="updateFllow" :reportPageData="reportPageData" id="container-report-page" v-if="Object.keys(reportPageData).length && (tabsActive == 3 || tabsActive == 1)" />
-          <view class="more-activity more-box" v-if="tabsActive === 1 && haveResultActivity">
-            <text class="more-text"> 活动 </text>
-            <view>
-              <view class="more-rivet" @click="tabsActiveMore(4)"> 更多 <u-icon name="arrow-right" color="#3385FF" size="28"></u-icon> </view>
+            <view class="history-item">
+              <block v-for="(item, index) in relyOn(key.title)" :key="item">
+                <block v-if="key.title == '搜索历史'">
+                  <view v-if="index < 8" class="item" @click="chooseTarget(item)">{{ item }}</view>
+                </block>
+                <view v-else class="item" @click="chooseTarget(item)">{{ item }}</view>
+              </block>
             </view>
           </view>
-          <activityBack :collectLists="collectList" :tabsActiveSearch="tabsActive" v-if="collectList.length && (tabsActive == 4 || tabsActive == 1)" />
-          <view class="more-activity more-box" v-if="tabsActive === 1 && haveResultRoadshow">
-            <text class="more-text"> 微路演 </text>
-            <view>
-              <view class="more-rivet" @click="tabsActiveMore(5)"> 更多 <u-icon name="arrow-right" color="#3385FF" size="28"></u-icon> </view>
+        </block>
+      </view>
+      <view v-else class="content">
+        <block v-if="haveResult">
+          <view>
+            <summary-chart
+              :resultList="tabsActive == 1 ? resultList.slice(0, 10) : resultList"
+              :tabsActiveChild="tabsActive"
+              v-if="resultList.length && (tabsActive == 2 || tabsActive == 1)"
+            />
+            <view class="more-report more-box" v-if="tabsActive === 1 && haveResultReport">
+              <text class="more-text"> 资源包/报告 </text>
+              <view>
+                <view class="more-rivet" @click="tabsActiveMore(3)"> 更多 <u-icon name="arrow-right" color="#3385FF" size="28"></u-icon> </view>
+              </view>
+            </view>
+            <reportPage
+              @updateFllow="updateFllow"
+              :reportPageData="reportPageData"
+              id="container-report-page"
+              v-if="Object.keys(reportPageData).length && (tabsActive == 3 || tabsActive == 1)"
+            />
+            <view class="more-activity more-box" v-if="tabsActive === 1 && haveResultActivity">
+              <text class="more-text"> 活动 </text>
+              <view>
+                <view class="more-rivet" @click="tabsActiveMore(4)"> 更多 <u-icon name="arrow-right" color="#3385FF" size="28"></u-icon> </view>
+              </view>
+            </view>
+            <activityBack
+              :collectLists="collectList"
+              :tabsActiveSearch="tabsActive"
+              v-if="collectList.length && (tabsActive == 4 || tabsActive == 1)"
+            />
+            <view class="more-activity more-box" v-if="tabsActive === 1 && haveResultRoadshow">
+              <text class="more-text"> 微路演 </text>
+              <view>
+                <view class="more-rivet" @click="tabsActiveMore(5)"> 更多 <u-icon name="arrow-right" color="#3385FF" size="28"></u-icon> </view>
+              </view>
             </view>
+            <roadshowPage
+              :roadshowPageList="roadshowPageList"
+              :tabsRoadshowSearch="tabsActive"
+              v-if="roadshowPageList.length && (tabsActive == 5 || tabsActive == 1)"
+            />
           </view>
-          <roadshowPage :roadshowPageList="roadshowPageList" :tabsRoadshowSearch="tabsActive" v-if="roadshowPageList.length && (tabsActive == 5 || tabsActive == 1)" />
+        </block>
+        <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>
-      </block>
-      <view class="nodata" v-else>
-        <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/act_search.png" mode="" class="nodata_ico"></image>
-        <text>未找到您想搜索的内容</text>
       </view>
     </view>
-  </view>
+    <not-have-login v-else />
+  </block>
 </template>
 
 <script>
@@ -112,9 +148,10 @@ import summaryChart from "../components/summaryChart.vue";
 import activityBack from "../components/activityBack.vue";
 import reportPage from "../components/report.vue";
 import roadshowPage from "../components/roadshow.vue";
+import NotHaveLogin from "../../components/notHaveLogin.vue";
 
 export default {
-  components: { summaryChart, activityBack, reportPage, roadshowPage },
+  components: { summaryChart, activityBack, reportPage, roadshowPage, NotHaveLogin },
   data() {
     return {
       searchTxt: "",
@@ -463,7 +500,6 @@ export default {
   onShow() {
     this.$store.commit("setRouterActivity", "搜索");
     this.$store.commit("setRouterReport", "搜索");
-    this.$store.dispatch("checkHandle");
   },
   /* 下拉刷新 */
   onPullDownRefresh: Throttle(function () {

+ 104 - 66
pages/activity/activity.vue

@@ -11,7 +11,7 @@
           </view>
         </template>
       </search-bar>
-      <view class="screen-item">
+      <view class="screen-item" v-if="isUserBindingPhoneNumber">
         <text :class="isShowJurisdiction ? 'active' : ''" @click="permissioActivity">有权限行业</text>
         <!-- 各种状态选择 -->
         <view class="select-conyent" ref="select-conyent">
@@ -32,73 +32,100 @@
             </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 v-for="item in activityTimeList" :key="item.Id" :class="item.IsChoose ? 'active' : ''" @click="isActivityDate(item.Id)">{{
+          item.StatusName
+        }}</text>
       </view>
     </view>
 
     <!-- 筛选状态 -->
 
     <!-- 活动列表 -->
-    <view class="collect-activity" v-if="haveData">
-      <view class="content-list">
-        <view class="half">
-          <block v-for="(item, index) in collectTypeList" :key="index">
-            <view class="activity-ltem" v-if="item.Position == 1">
-              <image class="zindex-one" :src="item.ImgUrl" lazy-load></image>
-              <view class="content">
-                <view class="item-img" @click="goDetails(item)"> </view>
-                <view :style="{ 'background-image': 'url(' + item.ImgUrlBg + ')' }" class="activity-ui">
-                  <view class="activity-li" :style="{ 'background-image': 'url(' + val.ImgUrlBg + ')' }" v-for="val in item.List" :key="val.ActivityId" @click="goDetails(val, item.Resource)">
-                    <image v-if="val.IsNew" class="item-image" lazy-load src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"></image>
-                    <image
-                      style="width: 73rpx; right: -6rpx"
-                      v-if="val.IsExternalLabel"
-                      class="item-image"
-                      lazy-load
-                      src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"
-                    ></image>
-                    <text class="text_oneLine"> {{ val.KeyWord }}</text>
-                    <view class="item-trip" v-if="val.TripStatus == 2">确定行程</view>
-                    <view class="item-trip item-city" v-if="val.City.length == 2">{{ val.City }}</view>
+    <block v-if="isUserBindingPhoneNumber">
+      <view class="collect-activity" v-if="haveData">
+        <view class="content-list">
+          <view class="half">
+            <block v-for="(item, index) in collectTypeList" :key="index">
+              <view class="activity-ltem" v-if="item.Position == 1">
+                <image class="zindex-one" :src="item.ImgUrl" lazy-load></image>
+                <view class="content">
+                  <view class="item-img" @click="goDetails(item)"> </view>
+                  <view :style="{ 'background-image': 'url(' + item.ImgUrlBg + ')' }" class="activity-ui">
+                    <view
+                      class="activity-li"
+                      :style="{ 'background-image': 'url(' + val.ImgUrlBg + ')' }"
+                      v-for="val in item.List"
+                      :key="val.ActivityId"
+                      @click="goDetails(val, item.Resource)"
+                    >
+                      <image
+                        v-if="val.IsNew"
+                        class="item-image"
+                        lazy-load
+                        src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"
+                      ></image>
+                      <image
+                        style="width: 73rpx; right: -6rpx"
+                        v-if="val.IsExternalLabel"
+                        class="item-image"
+                        lazy-load
+                        src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"
+                      ></image>
+                      <text class="text_oneLine"> {{ val.KeyWord }}</text>
+                      <view class="item-trip" v-if="val.TripStatus == 2">确定行程</view>
+                      <view class="item-trip item-city" v-if="val.City.length == 2">{{ val.City }}</view>
+                    </view>
                   </view>
                 </view>
               </view>
-            </view>
-          </block>
-        </view>
-        <view class="half">
-          <block v-for="(item, index) in collectTypeList" :key="index">
-            <view class="activity-ltem" v-if="item.Position == 2">
-              <image class="zindex-one" :src="item.ImgUrl" lazy-load></image>
-              <view class="content">
-                <view class="item-img" @click="goDetails(item)"> </view>
-                <view :style="{ 'background-image': 'url(' + item.ImgUrlBg + ')' }" class="activity-ui">
-                  <view class="activity-li" :style="{ 'background-image': 'url(' + val.ImgUrlBg + ')' }" v-for="val in item.List" :key="val.ActivityId" @click="goDetails(val, item.Resource)">
-                    <image v-if="val.IsNew" class="item-image" lazy-load src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"></image>
-                    <image
-                      style="width: 73rpx; right: -6rpx"
-                      v-if="val.IsExternalLabel"
-                      class="item-image"
-                      lazy-load
-                      src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"
-                    ></image>
-                    <text class="text_oneLine"> {{ val.KeyWord }}</text>
-                    <view class="item-trip" v-if="val.TripStatus == 2">确定行程</view>
-                    <view class="item-trip item-city" v-if="val.City.length == 2">{{ val.City }}</view>
+            </block>
+          </view>
+          <view class="half">
+            <block v-for="(item, index) in collectTypeList" :key="index">
+              <view class="activity-ltem" v-if="item.Position == 2">
+                <image class="zindex-one" :src="item.ImgUrl" lazy-load></image>
+                <view class="content">
+                  <view class="item-img" @click="goDetails(item)"> </view>
+                  <view :style="{ 'background-image': 'url(' + item.ImgUrlBg + ')' }" class="activity-ui">
+                    <view
+                      class="activity-li"
+                      :style="{ 'background-image': 'url(' + val.ImgUrlBg + ')' }"
+                      v-for="val in item.List"
+                      :key="val.ActivityId"
+                      @click="goDetails(val, item.Resource)"
+                    >
+                      <image
+                        v-if="val.IsNew"
+                        class="item-image"
+                        lazy-load
+                        src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"
+                      ></image>
+                      <image
+                        style="width: 73rpx; right: -6rpx"
+                        v-if="val.IsExternalLabel"
+                        class="item-image"
+                        lazy-load
+                        src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"
+                      ></image>
+                      <text class="text_oneLine"> {{ val.KeyWord }}</text>
+                      <view class="item-trip" v-if="val.TripStatus == 2">确定行程</view>
+                      <view class="item-trip item-city" v-if="val.City.length == 2">{{ val.City }}</view>
+                    </view>
                   </view>
                 </view>
               </view>
-            </view>
-          </block>
+            </block>
+          </view>
         </view>
+        <view class="end-activity-text" v-if="collectTypeList.length" @click="endActivity">已结束活动 >></view>
       </view>
-      <view class="end-activity-text" v-if="collectTypeList.length" @click="endActivity">已结束活动 >></view>
-    </view>
-    <view class="nodata" v-if="!haveData">
-      <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/act_search.png" mode="" class="nodata_ico"></image>
-      <text>暂时没有符合条件的活动</text>
-    </view>
-    <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
+      <view class="nodata" v-if="!haveData">
+        <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/act_search.png" mode="" class="nodata_ico"></image>
+        <text>暂时没有符合条件的活动</text>
+      </view>
+      <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
+    </block>
+    <not-have-login v-else />
   </view>
 </template>
 
@@ -107,11 +134,13 @@ import { activity } from "@/config/api.js";
 import { Throttle } from "@/config/util.js";
 import SearchBar from "@/components/search-bar/searchBar.vue";
 import freeCharge from "@/components/freeCharge";
+import NotHaveLogin from "../../components/notHaveLogin.vue";
 let app = getApp();
 export default {
   components: {
     freeCharge,
     SearchBar,
+    NotHaveLogin,
   },
   data() {
     return {
@@ -262,9 +291,7 @@ export default {
         }
       } else {
         //已授权未绑定
-        uni.navigateTo({
-          url: "/pageMy/login/login",
-        });
+        this.$store.dispatch("checkHandle");
       }
     },
 
@@ -304,12 +331,15 @@ export default {
         let key = item.ActivityTypeId || item.KeyWord;
         let id = typeof key == "string" ? item.ActivityId : "";
         let str = type ? "&permissionIds=" + this.chartPermissionIds + "&showJurisdiction=" + (this.isShowJurisdiction ? "show" : "") : "";
-        this.$store.dispatch("checkHandle", "/activityPages/themeActivity/themeActivity?title=" + key + "&type=" + type + "&id=" + id + "&whichDay=" + this.whichDay + str);
+        this.$store.dispatch(
+          "checkHandle",
+          "/activityPages/themeActivity/themeActivity?title=" + key + "&type=" + type + "&id=" + id + "&whichDay=" + this.whichDay + str
+        );
       } else {
         if (key) {
-          this.$store.dispatch("checkHandle", "/activityPages/specialDetail/specialDetail?id=" + item.ActivityId);
+          uni.navigateTo({ url: "/activityPages/specialDetail/specialDetail?id=" + item.ActivityId });
         } else {
-          this.$store.dispatch("checkHandle", "/activityPages/specialResearchPage/specialResearchPage");
+          uni.navigateTo({ url: "/activityPages/specialResearchPage/specialResearchPage" });
         }
       }
     },
@@ -318,10 +348,10 @@ export default {
       this.$store.dispatch("checkHandle", "/pages-search/indedxSearch/indedxSearch?source=活动页面");
     },
     //去往 活动回放activityPlayBack
-    activityPlayBack() {
-      this.$store.dispatch("checkHandle", "/activityPages/playBack/playBack");
+    async activityPlayBack() {
+      await this.$store.dispatch("showLoginModal");
+      uni.navigateTo({ url: "/activityPages/playBack/playBack" });
     },
-
     // 跳转已结束活动
     endActivity() {
       uni.navigateTo({
@@ -335,17 +365,22 @@ export default {
     this.getUserSearchContent();
     this.getActivityLabelTypeList();
   },
-  async onShow() {
+  onShow() {
     this.$store.commit("setRouterReport", "活动");
     this.$store.commit("setRouterActivity", "活动");
-    await this.$store.dispatch("checkHandle", "noGO");
     this.getRecordTracking("活动");
   },
   /** 用户点击分享 */
   onShareAppMessage: function (res) {
     return {
       title: this.isHorzMobile ? "好友向您推荐此内容,上传名片享查研观向免费月卡!" : this.messageTitle,
-      path: "/pages/activity/activity?whichDay=" + this.whichDay + "&chartPermissionIds=" + this.chartPermissionIds + "&isGetJurisdiction=" + this.isGetJurisdiction,
+      path:
+        "/pages/activity/activity?whichDay=" +
+        this.whichDay +
+        "&chartPermissionIds=" +
+        this.chartPermissionIds +
+        "&isGetJurisdiction=" +
+        this.isGetJurisdiction,
     };
   },
   /* 下拉刷新 */
@@ -578,6 +613,9 @@ export default {
     margin-top: 60rpx;
     color: #3385ff;
   }
+  /deep/.not-have-login {
+    padding-top: 200rpx !important;
+  }
 }
 /deep/.van-dropdown-menu {
   background-color: #fff;

+ 37 - 7
pages/index/index.vue

@@ -19,7 +19,12 @@
           <view v-if="index % 2 == 0">
             <block v-if="item.Source === 'article'"> <ReportItem :list="item.Article" /></block>
             <block v-if="item.Source === 'newchart'">
-              <ChartItem :list="item.Newchart" :isMyChartCollection="isMyChartCollection" @myChartIsTop="myChartIsTop" @myChartCollect="myChartCollect" />
+              <ChartItem
+                :list="item.Newchart"
+                :isMyChartCollection="isMyChartCollection"
+                @myChartIsTop="myChartIsTop"
+                @myChartCollect="myChartCollect"
+              />
             </block>
             <block v-if="item.Source === 'roadshow' || item.Source === 'activityvideo' || item.Source === 'activityvoice'">
               <RoadshowItem :list="item.Roadshow" @isCollectionHandeler="isCollectionHandeler" />
@@ -35,7 +40,12 @@
           <view v-if="index % 2 !== 0">
             <block v-if="item.Source === 'article'"> <ReportItem :list="item.Article" /></block>
             <block v-if="item.Source === 'newchart'">
-              <ChartItem :list="item.Newchart" :isMyChartCollection="isMyChartCollection" @myChartIsTop="myChartIsTop" @myChartCollect="myChartCollect" />
+              <ChartItem
+                :list="item.Newchart"
+                :isMyChartCollection="isMyChartCollection"
+                @myChartIsTop="myChartIsTop"
+                @myChartCollect="myChartCollect"
+              />
             </block>
             <block v-if="item.Source === 'roadshow' || item.Source === 'activityvideo' || item.Source === 'activityvoice'">
               <RoadshowItem :list="item.Roadshow" @isCollectionHandeler="isCollectionHandeler" />
@@ -48,7 +58,9 @@
       </view>
     </view>
     <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="page_no > 1" />
-    <view v-if="newDataList.length === 4" class="bind-btn" @click="goLogin">绑定联系方式后查看更多内容>></view>
+    <view v-if="newDataList.length === 4" class="bind-btn" @click="goLogin">
+      为了给您提供更好的使用体验,<br />请 <text class="login-text">登录</text>后再查看此页面内容
+    </view>
     <suspenButton :show.sync="wholeShowListData.IsShow" v-if="wholeShowListData.IsShow" />
   </view>
 </template>
@@ -114,6 +126,7 @@ export default {
     },
     // 微路演收藏
     async isCollectionHandeler(item) {
+      await this.$store.dispatch("showLoginModal");
       const res = await Home.microRoadshowCollect({
         Id: item.Id,
         SourceType: item.Type,
@@ -136,8 +149,21 @@ export default {
     },
     // 跳转绑定页面
     goLogin() {
-      uni.navigateTo({
-        url: "/pageMy/login/login",
+      uni.showModal({
+        title: "即将前往登录页面,请确认是否继续",
+        content: "为了给您提供更好的使用体验,请登录后再进行查看或操作",
+        confirmColor: "#3385FF",
+        cancelColor: "#606266",
+        success: function (res) {
+          if (res.confirm) {
+            //已授权未绑定
+            uni.navigateTo({
+              url: "/pageMy/login/login",
+            });
+          } else if (res.cancel) {
+            console.log("用户点击取消");
+          }
+        },
       });
     },
     /* 搜索 */
@@ -270,9 +296,13 @@ export default {
     padding-top: 110rpx;
     text-align: center;
     font-size: 24rpx;
-    color: #3385ff;
-    line-height: 23rpx;
+    color: #333;
+    line-height: 39rpx;
     padding-bottom: 100rpx;
+    .login-text {
+      display: inline-block;
+      color: #3385ff;
+    }
   }
 }
 </style>

+ 57 - 11
pages/material/material.vue

@@ -15,7 +15,12 @@
       </view>
       <view class="tabs-content">
         <view class="second-tabs" v-if="topTabsActive == '2' || topTabsActive == '3'">
-          <view :class="['item', item.ChartPermissionId == secondActive && 'tabs-active']" v-for="(item, index) in secondBars" :key="item.ChartPermissionId" @click="handleClickTopSub(item)">
+          <view
+            :class="['item', item.ChartPermissionId == secondActive && 'tabs-active']"
+            v-for="(item, index) in secondBars"
+            :key="item.ChartPermissionId"
+            @click="handleClickTopSub(item)"
+          >
             {{ item.PermissionName }}
             <block v-if="wholeShowListData.IsShowResearch && index === secondBars.length - 1 && topTabsActive == '2'">
               <image class="limit-img tabs-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/limit_icon.png" mode=""></image>
@@ -25,14 +30,24 @@
         </view>
         <block v-if="topTabsActive == '3'">
           <view class="children-ul">
-            <view :class="['chart-children', chartChildrenActive == item.CtagId ? 'children-active' : '']" v-for="item in chartChildren" :key="item.CtagId" @click="handleChartChildren(item)">{{
-              item.Name
-            }}</view>
+            <view
+              :class="['chart-children', chartChildrenActive == item.CtagId ? 'children-active' : '']"
+              v-for="item in chartChildren"
+              :key="item.CtagId"
+              @click="handleChartChildren(item)"
+              >{{ item.Name }}</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
+              @click="mediumClickHandler(item)"
+              :class="['item', mediumActive === item.value && 'item-act']"
+              v-for="item in mediumSelect"
+              :key="item.value"
+              >{{ item.name }}</view
+            >
           </view>
         </view>
       </view>
@@ -48,7 +63,13 @@
           <view class="report-ul" style="width: 49%">
             <block v-for="(item, index) in dataList" :key="index">
               <view v-if="index % 2 == 0">
-                <ChartItem v-if="topTabsActive == 3" :list="item" :isMyChartCollection="isMyChartCollection" @myChartIsTop="myChartIsTop" @myChartCollect="myChartCollect" />
+                <ChartItem
+                  v-if="topTabsActive == 3"
+                  :list="item"
+                  :isMyChartCollection="isMyChartCollection"
+                  @myChartIsTop="myChartIsTop"
+                  @myChartCollect="myChartCollect"
+                />
                 <ReportItem v-if="topTabsActive == 2" :list="item" />
               </view>
             </block>
@@ -56,7 +77,13 @@
           <view class="report-ul" style="width: 49%">
             <block v-for="(item, index) in dataList" :key="index">
               <view v-if="index % 2 !== 0">
-                <ChartItem v-if="topTabsActive == 3" :list="item" :isMyChartCollection="isMyChartCollection" @myChartIsTop="myChartIsTop" @myChartCollect="myChartCollect" />
+                <ChartItem
+                  v-if="topTabsActive == 3"
+                  :list="item"
+                  :isMyChartCollection="isMyChartCollection"
+                  @myChartIsTop="myChartIsTop"
+                  @myChartCollect="myChartCollect"
+                />
                 <ReportItem v-if="topTabsActive == 2" :list="item" />
               </view>
             </block>
@@ -146,7 +173,6 @@ export default {
     }
     this.getTabs();
     this.getReportList();
-    this.$store.dispatch("checkHandle", "noGO");
   },
   onShow() {
     this.getRecordTracking("纪要库");
@@ -416,8 +442,21 @@ export default {
     },
     /* 绑定联系方式 */
     bindingMobile() {
-      uni.navigateTo({
-        url: "/pageMy/login/login",
+      uni.showModal({
+        title: "即将前往登录页面,请确认是否继续",
+        content: "为了给您提供更好的使用体验,请登录后再进行查看或操作",
+        confirmColor: "#3385FF",
+        cancelColor: "#606266",
+        success: function (res) {
+          if (res.confirm) {
+            //已授权未绑定
+            uni.navigateTo({
+              url: "/pageMy/login/login",
+            });
+          } else if (res.cancel) {
+            console.log("用户点击取消");
+          }
+        },
       });
     },
     //获取顶部导航
@@ -429,6 +468,7 @@ export default {
     },
     // 微路演收藏
     async isCollectionHandeler(item) {
+      await this.$store.dispatch("showLoginModal");
       const res = await Home.microRoadshowCollect({
         Id: item.Id,
         SourceType: item.Type,
@@ -489,7 +529,13 @@ export default {
     } else {
       return {
         title: this.isHorzMobile ? "好友向您推荐此内容,上传名片享查研观向免费月卡!" : "素材库",
-        path: "/pages/material/material?topTabsActive=" + this.topTabsActive + "&secondActive=" + this.secondActive + "&childrenActive=" + this.chartChildrenActive,
+        path:
+          "/pages/material/material?topTabsActive=" +
+          this.topTabsActive +
+          "&secondActive=" +
+          this.secondActive +
+          "&childrenActive=" +
+          this.chartChildrenActive,
         success: (res) => {},
         fail: (err) => {},
       };

+ 61 - 22
pages/purchaser/purchaser.vue

@@ -3,7 +3,12 @@
     <view class="top-content-box">
       <search-bar @goSearch="goSearch" :searchTitle="searchPlaceholderList.SummarySearch" :width="70" />
       <view class="content-tabs">
-        <view v-for="item in TabBars" :key="item.val" :class="['item', item.val == topTabsActive && 'tabs-active']" @click="topTabsClickHandler(item)">
+        <view
+          v-for="item in TabBars"
+          :key="item.val"
+          :class="['item', item.val == topTabsActive && 'tabs-active']"
+          @click="topTabsClickHandler(item)"
+        >
           {{ item.titel }}
           <view class="active" v-if="item.val == topTabsActive"></view>
         </view>
@@ -19,20 +24,38 @@
     </view>
     <view class="announcement">
       <view class="tab-cont" v-if="topTabsActive == 2">
-        <scroll-view scroll-x="true" @scroll="scrollMove" :scroll-left="scrollLeft" scroll-with-animation class="scroll-tab" :scroll-into-view="'_' + tabIndex">
+        <scroll-view
+          scroll-x="true"
+          @scroll="scrollMove"
+          :scroll-left="scrollLeft"
+          scroll-with-animation
+          class="scroll-tab"
+          :scroll-into-view="'_' + tabIndex"
+        >
           <block v-for="(item, index) in researchTabBars" :key="index">
             <view class="scroll-tab-item" :class="{ active: tagActive == item.name }" @click.stop="typeChange(item)">
               {{ item.titel }}
-              <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/border_act.png" mode="" class="border_act" v-if="tagActive == item.name"></image>
+              <image
+                src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/border_act.png"
+                mode=""
+                class="border_act"
+                v-if="tagActive == item.name"
+              ></image>
             </view>
           </block>
         </scroll-view>
       </view>
       <blok v-else>
         <van-checkbox-group class="checkbox-ui" :value="newCheckboxValue" @change="checkboxChange">
-          <van-checkbox style="margin-right: 30rpx; flex-shrink: 0" shape="square" icon-size="14" :name="item.ArticleTypeId" v-for="item in checkboxGroup" :key="item.ArticleTypeId">{{
-            item.ArticleTypeName
-          }}</van-checkbox>
+          <van-checkbox
+            style="margin-right: 30rpx; flex-shrink: 0"
+            shape="square"
+            icon-size="14"
+            :name="item.ArticleTypeId"
+            v-for="item in checkboxGroup"
+            :key="item.ArticleTypeId"
+            >{{ item.ArticleTypeName }}</van-checkbox
+          >
         </van-checkbox-group>
       </blok>
       <view class="content-ul" v-if="tagActive == '用户' || topTabsActive == 1">
@@ -46,8 +69,15 @@
                 {{ item.ArticleTypeName }}
               </text>
               <view>
-                <text class="title" @click="goDetail(item)" :style="{ display: 'inline', marginLeft: item.Title.substr(0, 1) != '【' ? '14rpx' : 0 }">{{ item.Title }}</text>
-                <text class="li-industry" @click="themeDetails(key, '月度收藏榜')" v-for="key in item.List" :key="key.IndustrialManagementId"> # {{ key.IndustryName }} </text>
+                <text
+                  class="title"
+                  @click="goDetail(item)"
+                  :style="{ display: 'inline', marginLeft: item.Title.substr(0, 1) != '【' ? '14rpx' : 0 }"
+                  >{{ item.Title }}</text
+                >
+                <text class="li-industry" @click="themeDetails(key, '月度收藏榜')" v-for="key in item.List" :key="key.IndustrialManagementId">
+                  # {{ key.IndustryName }}
+                </text>
               </view>
             </view>
             <view class="li-item li-bottom" style="color: #999999">
@@ -94,7 +124,9 @@
               <text class="text_oneLine title" style="display: inline"> # {{ item.IndustryName }} </text>
               <image class="new-img" v-if="item.IsNew" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"></image>
             </view>
-            <text :class="item.IsFollw ? 'cancel-attention' : 'attention'" @click="isAttention(item, '主题')">{{ item.IsFollw ? "取消关注" : "+ 关注" }}</text>
+            <text :class="item.IsFollw ? 'cancel-attention' : 'attention'" @click="isAttention(item, '主题')">{{
+              item.IsFollw ? "取消关注" : "+ 关注"
+            }}</text>
           </view>
           <view class="li-item read-more" @click="themeDetails(item, '主题热度榜')">
             <text class="text-box text_oneLine" v-for="val in item.IndustrialSubjectList" :key="val.IndustrialSubjectId">
@@ -115,9 +147,13 @@
               <text @click="authorDetails(item)">
                 {{ item.NickName }}
               </text>
-              <text :class="item.IsFollw ? 'cancel-attention' : 'attention'" @click="isAttention(item, '专家')">{{ item.IsFollw ? "取消关注" : "+ 关注" }}</text>
+              <text :class="item.IsFollw ? 'cancel-attention' : 'attention'" @click="isAttention(item, '专家')">{{
+                item.IsFollw ? "取消关注" : "+ 关注"
+              }}</text>
             </view>
-            <text @click="themeDetails(val, 'KOL榜')" class="kol-text text_oneLine" v-for="val in item.List" :key="val.IndustrialManagementId"> # {{ val.IndustryName }} </text>
+            <text @click="themeDetails(val, 'KOL榜')" class="kol-text text_oneLine" v-for="val in item.List" :key="val.IndustrialManagementId">
+              # {{ val.IndustryName }}
+            </text>
           </view>
         </view>
         <view class="content-button" @click="goThemeAuthor('作者')">查看全部作者>></view>
@@ -244,6 +280,7 @@ export default {
     },
     //关注
     async isAttention(item, val) {
+      await this.$store.dispatch("showLoginModal");
       const res =
         val === "主题"
           ? await Reports.reportFllow({ IndustrialManagementId: item.IndustrialManagementId, PageRouter: this.$store.state.pageRouterReport })
@@ -254,10 +291,14 @@ export default {
           this.goFollowShow = true;
           this.confirmText = res.Data.GoFollow ? "去关注" : "知道了";
           if (res.Data.GoFollow) {
-            this.accounts = `${val == "主题" ? "产业" : "作者"}关注成功 <br> 想要及时获取该${val === "主题" ? "产业内容的更新推送" : "作者的报告更新提示"},请关注【查研观向小助手】公众号`;
+            this.accounts = `${val == "主题" ? "产业" : "作者"}关注成功 <br> 想要及时获取该${
+              val === "主题" ? "产业内容的更新推送" : "作者的报告更新提示"
+            },请关注【查研观向小助手】公众号`;
             this.isCancelBtn = true;
           } else {
-            this.accounts = `${val == "主题" ? "产业" : "作者"}` + `关注成功<br>请关注【查研观向小助手】公众号,及时获取${val === "主题" ? "产业" : "作者"}报告更新提醒`;
+            this.accounts =
+              `${val == "主题" ? "产业" : "作者"}` +
+              `关注成功<br>请关注【查研观向小助手】公众号,及时获取${val === "主题" ? "产业" : "作者"}报告更新提醒`;
           }
         } else {
           uni.showToast({
@@ -277,14 +318,9 @@ export default {
       }
       this.goFollowShow = false;
     },
-    //去往更多主题
-    // goRecent() {
-    //   uni.navigateTo({
-    //     url: "/reportPages/recentPages/recentPages?id=31",
-    //   });
-    // },
     //收藏
     async collectClick(item) {
+      await this.$store.dispatch("showLoginModal");
       const res = await Report.collectRpt({ ArticleId: item.ArticleId, PageRouter: "月度收藏榜" });
       if (res.Ret === 200) {
         item.IsCollect = !item.IsCollect;
@@ -313,11 +349,12 @@ export default {
     //去往文章详情页面
     goDetail(item) {
       this.$store.commit("setRouterReport", "月度收藏榜");
-      this.$store.dispatch("checkHandle", "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId);
+      uni.navigateTo({ url: "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId });
     },
     //去往主题详情
     themeDetails(item, source) {
-      this.$store.dispatch("checkHandle", "/reportPages/researchTheme/researchTheme?id=" + item.IndustrialManagementId + "&pageRouter=" + source);
+      uni.navigateTo({ url: "/reportPages/researchTheme/researchTheme?id=" + item.IndustrialManagementId + "&pageRouter=" + source });
+      // uni.navigateTo({ url: "/reportPages/researchTheme/researchTheme?id=" + item.IndustrialManagementId + "&pageRouter=" + source);
     },
     //计算遍历的颜色
     serialBackground(index) {
@@ -342,7 +379,9 @@ export default {
     },
     // 跳转主题 of 作者
     goThemeAuthor(type) {
-      type === "主题" ? uni.navigateTo({ url: "/pages-purchaser/researchTheme/researchTheme" }) : uni.navigateTo({ url: "/pages-purchaser/researchAuthor/researchAuthor" });
+      type === "主题"
+        ? uni.navigateTo({ url: "/reportPages/researchTheme/researchTheme" })
+        : uni.navigateTo({ url: "/pages-purchaser/researchAuthor/researchAuthor" });
     },
     // 获取最新下的文章类型
     async researchArticleTypeList() {

+ 4 - 5
pages/reportForm/components/strategy.vue

@@ -88,13 +88,13 @@ export default {
     tabAct_idTwo: {
       handler(newValue) {
         this.collectList = [];
-        if (newValue&&newValue!=99999) {
+        if (newValue && newValue != 99999) {
           this.page_no = 1;
           this.pageSize = 10;
           this.getCollectList();
         }
       },
-      immediate:true
+      immediate: true,
     },
     pageNumFather: {
       handler() {
@@ -106,8 +106,7 @@ export default {
       },
     },
   },
-  mounted() {
-  },
+  mounted() {},
   methods: {
     /* 获取列表 */
     getCollectList() {
@@ -139,7 +138,7 @@ export default {
       }
       this.collectList[index].IsRed = false;
       this.$store.commit("setRouterReport", "深度研究策略");
-      this.$store.dispatch("checkHandle", "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId);
+      uni.navigateTo({ url: "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId });
     },
   },
 

+ 89 - 72
pages/reportForm/reportForm.vue

@@ -12,7 +12,12 @@
         </template>
       </search-bar>
       <view class="second-tabs">
-        <view :class="['item', item.ChartPermissionId == tabAct_id && 'tabs-active']" v-for="(item, index) in tabBars" :key="item.ChartPermissionId" @click="toggleTab(item, index)">
+        <view
+          :class="['item', item.ChartPermissionId == tabAct_id && 'tabs-active']"
+          v-for="(item, index) in tabBars"
+          :key="item.ChartPermissionId"
+          @click="toggleTab(item, index)"
+        >
           {{ item.PermissionName }}
           <view class="active" v-if="item.ChartPermissionId == tabAct_id"></view>
         </view>
@@ -22,7 +27,12 @@
     <view class="strategy" v-if="strategyIndex >= 4">
       <view class="tab-cont-two">
         <block v-for="(item, index) in tabBarsTow" :key="item.CategoryId">
-          <view :id="'__' + index" class="scroll-tab-item" :class="{ active: tabAct_idTwo == item.CategoryId }" @click.stop="toggleTabTwo(item, index)">
+          <view
+            :id="'__' + index"
+            class="scroll-tab-item"
+            :class="{ active: tabAct_idTwo == item.CategoryId }"
+            @click.stop="toggleTabTwo(item, index)"
+          >
             {{ item.MatchTypeName }}
             <text class="reg-text" v-if="item.IsRed"></text>
           </view>
@@ -70,7 +80,14 @@
         </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
+          @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">
@@ -110,7 +127,12 @@
           </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">
+              <view
+                class="industry-video-item"
+                @click.stop="handelVideoPlay(item)"
+                :style="{ 'background-image': 'url(' + item.IndustryVideo.BackgroundImg + ')' }"
+                v-if="item.IndustryVideo"
+              >
                 5min
                 <br />
                 逻辑解析
@@ -120,10 +142,14 @@
               </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 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>
+                  <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>
@@ -153,7 +179,12 @@
     <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
     <!-- 视频模块 -->
     <videoModule :showVideoPop="showVideoPop" :videoPopList="videoPopList" />
-    <modalDialog :isShowhasPermission="isShowhasPermission" :applyForIsShow="applyForIsShow" :jurisdictionList="jurisdictionList" :hasPermission="hasPermission" />
+    <modalDialog
+      :isShowhasPermission="isShowhasPermission"
+      :applyForIsShow="applyForIsShow"
+      :jurisdictionList="jurisdictionList"
+      :hasPermission="hasPermission"
+    />
   </view>
 </template>
 
@@ -243,7 +274,7 @@ export default {
     },
     tabAct_idTwo: {
       handler(newVal) {
-          newVal == 99999 && this.getTimeLineList();
+        newVal == 99999 && this.getTimeLineList();
       },
       immediate: true,
     },
@@ -349,58 +380,48 @@ export default {
       });
     },
     //跳转季度策略
-    async isClickHandle(id) {
-      await this.$store.dispatch("checkHandle", "/reportPages/industrialReport/industrialReport?id=" + id);
+    isClickHandle(id) {
+      uni.navigateTo({
+        url: "/reportPages/industrialReport/industrialReport?id=" + id,
+      });
     },
     //跳转产业报告
     async goIndustryReport(id) {
       this.$store.commit("setRouterReport", "产业列表");
-      await this.$store.dispatch("checkHandle", "/reportPages/IndustryReport/IndustryReport?id=" + id);
+      uni.navigateTo({ url: "/reportPages/IndustryReport/IndustryReport?id=" + id });
     },
     //点击关注的图标
-    reportFllow(id) {
-      if (!this.$store.state.isAuth && !this.$store.state.isBind) {
-        Reports.reportFllow({
-          IndustrialManagementId: id,
-          PageRouter: "细分产业列表",
-        }).then((res) => {
-          if (res.Ret === 200) {
-            if (res.Data.Status == 1) {
-              this.goFollowShow = true;
-              this.confirmText = res.Data.GoFollow ? "去关注" : "知道了";
-              if (res.Data.GoFollow) {
-                this.accounts = `产业关注成功 <br> 想要及时获取该产业内容的更新推送,请关注【查研观向小助手】公众号`;
-                this.isCancelBtn = true;
-              } else {
-                this.accounts = "产业关注成功<br>请关注【查研观向小助手】公众号,及时获取产业报告更新提醒";
-              }
+    async reportFllow(id) {
+      await this.$store.dispatch("showLoginModal");
+      const res = await Reports.reportFllow({
+        IndustrialManagementId: id,
+        PageRouter: "细分产业列表",
+      });
+      if (res.Ret === 200) {
+        if (res.Data.Status == 1) {
+          this.goFollowShow = true;
+          this.confirmText = res.Data.GoFollow ? "去关注" : "知道了";
+          if (res.Data.GoFollow) {
+            this.accounts = `产业关注成功 <br> 想要及时获取该产业内容的更新推送,请关注【查研观向小助手】公众号`;
+            this.isCancelBtn = true;
+          } else {
+            this.accounts = "产业关注成功<br>请关注【查研观向小助手】公众号,及时获取产业报告更新提醒";
+          }
+        }
+        this.industryList.forEach((key) => {
+          if (key.IndustrialManagementId == id) {
+            if (key.IsFollow == 1) {
+              key.IsFollow = 0;
+              uni.showToast({
+                title: "已取消关注",
+                icon: "none",
+                duration: 2000,
+              });
+            } else {
+              key.IsFollow = 1;
             }
-            this.industryList.forEach((key) => {
-              if (key.IndustrialManagementId == id) {
-                if (key.IsFollow == 1) {
-                  key.IsFollow = 0;
-                  uni.showToast({
-                    title: "已取消关注",
-                    icon: "none",
-                    duration: 2000,
-                  });
-                } else {
-                  key.IsFollow = 1;
-                }
-              }
-            });
           }
         });
-      } else if (this.$store.state.isAuth) {
-        //未授权
-        uni.navigateTo({
-          url: "/pageMy/authGuide/authGuide",
-        });
-      } else if (!this.$store.state.isAuth && this.$store.state.isBind) {
-        //已授权未绑定
-        uni.navigateTo({
-          url: "/pageMy/login/login",
-        });
       }
     },
     goFollowShowBtn() {
@@ -504,27 +525,24 @@ export default {
       this.getIndustryList();
     },
     // 视频播放权限判断
-    handelVideoPlay(item) {
+    async handelVideoPlay(item) {
       this.$store.commit("setRouterReport", "产业列表");
-      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;
-          }
-        }
+      await this.$store.dispatch("showLoginModal");
+      if (item.AuthInfo.HasPermission == 1) {
+        this.playVideo(item);
       } else {
-        this.$store.dispatch("checkHandle");
+        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;
+        }
       }
     },
     playVideo(item) {
@@ -556,7 +574,7 @@ export default {
     strategyLabelHadel(item) {
       this.$store.commit("setRouterReport", "综述链接");
       //去往文章详情页面
-      this.$store.dispatch("checkHandle", "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId);
+      uni.navigateTo({ url: "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId });
     },
   },
   /* 触底 */
@@ -585,7 +603,6 @@ export default {
     wx.stopPullDownRefresh();
   }),
   onShow() {
-    this.$store.dispatch("checkHandle", "noGO");
     this.getRecordTracking("深度研究");
     if (this.tabAct_id) {
       this.$store.dispatch("statistics", {

+ 66 - 53
reportPages/IndustryReport/IndustryReport.vue

@@ -2,13 +2,29 @@
   <view class="container industry-content" id="industry-content">
     <block v-if="haveData">
       <view class="is-track-follow" v-if="dataFollow.IsShowFollowButton">
-        <is-track-follow :isShowFollowButton.sync="dataFollow.IsShowFollowButton" source="resources" :sourceId="industrialManagementId" :isFollowData.sync="dataFollow.IsFollowButton" />
+        <is-track-follow
+          :isShowFollowButton.sync="dataFollow.IsShowFollowButton"
+          source="resources"
+          :sourceId="industrialManagementId"
+          :isFollowData.sync="dataFollow.IsFollowButton"
+        />
       </view>
       <view class="top-video-content">
         <!-- 详情封面图 -->
-        <image :src="industryVideo.DetailImgUrl" class="industry-video-poster" v-show="industryVideo.Id && industryVideo.DetailImgUrl && !havePlayed" @click="handelVideoPlay"></image>
+        <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>
+        <video
+          :src="industryVideo.ResourceUrl"
+          class="industry-video"
+          id="industry-video"
+          v-show="industryVideo.ResourceUrl && (havePlayed || !industryVideo.DetailImgUrl)"
+          controls
+        ></video>
       </view>
       <view class="title-tabs-content" :style="{ top: dataFollow.IsShowFollowButton ? '60rpx' : 0 }">
         <view class="top-bg-title">产业赛道布局于{{ layoutTime }}</view>
@@ -48,7 +64,12 @@
     </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>
 
@@ -239,45 +260,38 @@ export default {
       });
     },
     async goDetail(item, index) {
-      /* 无需授权且已绑定 检验是或否有权限 */
-      await this.$store.dispatch("checkHandle");
-      if (!this.$store.state.isAuth && !this.$store.state.isBind) {
-        // 已授权已绑定
-        if (item.SubCategoryName === "路演精华") {
-          //跳转路演精华
-          uni.navigateTo({
-            url: "/reportPages/roadEssence/roadEssence?id=" + item.ArticleId,
-          });
-        } else {
-          this.setRouter();
-          uni.navigateTo({
-            url: "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId,
-          });
-        }
+      // 已授权已绑定
+      if (item.SubCategoryName === "路演精华") {
+        //跳转路演精华
+        uni.navigateTo({
+          url: "/reportPages/roadEssence/roadEssence?id=" + item.ArticleId,
+        });
+      } else {
+        this.setRouter();
+        uni.navigateTo({
+          url: "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId,
+        });
       }
     },
     // 视频播放权限判断
-    handelVideoPlay() {
+    async handelVideoPlay() {
+      await this.$store.dispatch("showLoginModal");
       this.$store.commit("setRouterReport", "资源包详情页");
-      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;
-          }
-        }
+      if (this.authInfo.HasPermission == 1) {
+        this.playVideo();
       } else {
-        this.$store.dispatch("checkHandle");
+        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;
+        }
       }
     },
     // 播放视频
@@ -306,24 +320,23 @@ export default {
     },
     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 === "路演精华") {
-          //跳转路演精华
-          uni.navigateTo({
-            url: "/reportPages/roadEssence/roadEssence?id=" + item.Id,
-          });
-        } else {
-          this.setRouter();
-          uni.navigateTo({
-            url: "/pageMy/reportDetail/reportDetail?id=" + item.Id,
-          });
-        }
+      // 已授权已绑定
+      if (item.SubCategoryName === "路演精华") {
+        //跳转路演精华
+        uni.navigateTo({
+          url: "/reportPages/roadEssence/roadEssence?id=" + item.Id,
+        });
+      } else {
+        this.setRouter();
+        uni.navigateTo({
+          url: "/pageMy/reportDetail/reportDetail?id=" + item.Id,
+        });
       }
     },
     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>`;
+      return `<div style='-webkit-line-clamp: ${
+        isExpand ? 9999 : 3
+      };-webkit-box-orient: vertical;display: -webkit-box;overflow: hidden;text-overflow: ellipsis;'>${content}</div>`;
     },
     // 去往文章详情的
     setRouter() {

+ 8 - 5
reportPages/authorPages/authorPages.vue

@@ -31,7 +31,9 @@
         <text style="display: inline; margin-right: 20rpx" @click="goDetail(item)">
           {{ item.Title }}
         </text>
-        <text class="item-industry" v-for="key in item.List" :key="key.IndustryName" @click="themeDetails(key)">&nbsp;&nbsp;&nbsp;#{{ key.IndustryName }}</text>
+        <text class="item-industry" v-for="key in item.List" :key="key.IndustryName" @click="themeDetails(key)"
+          >&nbsp;&nbsp;&nbsp;#{{ key.IndustryName }}</text
+        >
       </view>
       <view class="item-more">
         <text>{{ item.PublishDate }}</text>
@@ -81,8 +83,7 @@ export default {
     };
   },
   methods: {
-    
-      // 跳转主题
+    // 跳转主题
     goAuthorAll() {
       uni.navigateTo({ url: "/pages-purchaser/researchAuthor/researchAuthor" });
     },
@@ -97,6 +98,7 @@ export default {
     },
     //关注
     async isAttention() {
+      await this.$store.dispatch("showLoginModal");
       const res = await Reports.reportFllowDepartment({ DepartmentId: this.list.DepartmentId });
       if (res.Ret === 200) {
         this.isFollw = !this.isFollw;
@@ -121,6 +123,7 @@ export default {
     },
     //收藏
     async collectClick(item) {
+      await this.$store.dispatch("showLoginModal");
       const res = await Report.collectRpt({ ArticleId: item.ArticleId, PageRouter: this.$store.state.pageRouterReport });
       if (res.Ret === 200) {
         item.IsCollect = !item.IsCollect;
@@ -152,11 +155,11 @@ export default {
     //去往文章详情页面
     goDetail(item) {
       this.$store.commit("setRouterReport", "作者详情");
-      this.$store.dispatch("checkHandle", "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId);
+      uni.navigateTo({ url: "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId });
     },
     //去往主题详情
     themeDetails(item) {
-      this.$store.dispatch("checkHandle", "/reportPages/researchTheme/researchTheme?id=" + item.IndustrialManagementId);
+      uni.navigateTo({ url: "/reportPages/researchTheme/researchTheme?id=" + item.IndustrialManagementId });
     },
   },
   onLoad(options) {

+ 45 - 27
reportPages/hotList/hotList.vue

@@ -20,10 +20,17 @@
               <view class="industry-color" :style="[classifyColor(item.PermissionName)]">{{ item.PermissionName }}</view>
               <image class="new-img" v-if="item.IsNew" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/new_icon.png"></image>
             </view>
-            <text :class="item.IsFollow ? 'cancel-attention' : 'attention'" @click="isAttention(item, '主题')">{{ item.IsFollow ? "取消关注" : "+ 关注" }}</text>
+            <text :class="item.IsFollow ? 'cancel-attention' : 'attention'" @click="isAttention(item, '主题')">{{
+              item.IsFollow ? "取消关注" : "+ 关注"
+            }}</text>
           </view>
           <view class="li-item read-more">
-            <view class="industry-video-item" @click.stop="handelVideoPlay(item)" :style="{ 'background-image': 'url(' + item.IndustryVideo.BackgroundImg + ')' }" v-if="item.IndustryVideo">
+            <view
+              class="industry-video-item"
+              @click.stop="handelVideoPlay(item)"
+              :style="{ 'background-image': 'url(' + item.IndustryVideo.BackgroundImg + ')' }"
+              v-if="item.IndustryVideo"
+            >
               5min
               <br />
               逻辑解析
@@ -33,7 +40,9 @@
             </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 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>
@@ -53,7 +62,9 @@
             </text>
             <view>
               <text @click="goDetail(item)" style="display: inline; margin-right: 20rpx">{{ item.Title }}</text>
-              <text class="li-industry" @click="themeDetails(key)" v-for="key in item.List" :key="key.IndustrialManagementId"> # {{ key.IndustryName }} </text>
+              <text class="li-industry" @click="themeDetails(key)" v-for="key in item.List" :key="key.IndustrialManagementId">
+                # {{ key.IndustryName }}
+              </text>
             </view>
           </view>
           <view class="li-item li-bottom" style="color: #999999">
@@ -82,7 +93,12 @@
       </view>
     </u-modal>
     <videoModule :showVideoPop="showVideoPop" :videoPopList="videoPopList" />
-    <modalDialog :isShowhasPermission="isShowhasPermission" :applyForIsShow="applyForIsShow" :jurisdictionList="jurisdictionList" :hasPermission="hasPermission" />
+    <modalDialog
+      :isShowhasPermission="isShowhasPermission"
+      :applyForIsShow="applyForIsShow"
+      :jurisdictionList="jurisdictionList"
+      :hasPermission="hasPermission"
+    />
   </view>
 </template>
 
@@ -155,7 +171,7 @@ export default {
     },
     //去往主题详情
     themeDetails(item) {
-      this.$store.dispatch("checkHandle", "/reportPages/IndustryReport/IndustryReport?id=" + item.IndustrialManagementId);
+      uni.navigateTo({ url: "/reportPages/IndustryReport/IndustryReport?id=" + item.IndustrialManagementId });
     },
     //计算遍历的颜色
     serialBackground(index) {
@@ -164,6 +180,7 @@ export default {
     },
     //关注
     async isAttention(item, val) {
+      await this.$store.dispatch("showLoginModal");
       const res =
         val === "主题"
           ? await Reports.reportFllow({ IndustrialManagementId: item.IndustrialManagementId, PageRouter: "榜单产业关注榜" })
@@ -174,10 +191,14 @@ export default {
           this.goFollowShow = true;
           this.confirmText = res.Data.GoFollow ? "去关注" : "知道了";
           if (res.Data.GoFollow) {
-            this.accounts = `${val == "主题" ? "产业" : "作者"}关注成功 <br> 想要及时获取该${val === "主题" ? "产业内容的更新推送" : "作者的报告更新提示"},请关注【查研观向小助手】公众号`;
+            this.accounts = `${val == "主题" ? "产业" : "作者"}关注成功 <br> 想要及时获取该${
+              val === "主题" ? "产业内容的更新推送" : "作者的报告更新提示"
+            },请关注【查研观向小助手】公众号`;
             this.isCancelBtn = true;
           } else {
-            this.accounts = `${val == "主题" ? "产业" : "作者"}` + `关注成功<br>请关注【查研观向小助手】公众号,及时获取${val === "主题" ? "产业" : "作者"}报告更新提醒`;
+            this.accounts =
+              `${val == "主题" ? "产业" : "作者"}` +
+              `关注成功<br>请关注【查研观向小助手】公众号,及时获取${val === "主题" ? "产业" : "作者"}报告更新提醒`;
           }
         } else {
           uni.showToast({
@@ -203,26 +224,23 @@ export default {
       });
     },
     // 视频播放权限判断
-    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;
-          }
-        }
+    async handelVideoPlay(item) {
+      await this.$store.dispatch("showLoginModal");
+      if (item.AuthInfo.HasPermission == 1) {
+        this.playVideo(item);
       } else {
-        this.$store.dispatch("checkHandle");
+        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;
+        }
       }
     },
     playVideo(item) {

+ 27 - 4
reportPages/industrialReport/industrialReport.vue

@@ -100,9 +100,23 @@ export default {
           });
         }
         uni.setNavigationBarTitle({
-          title: this.genreIs == "作者" ? res.Data.NickName : this.genreIs === "标的" ? res.Data.IndustryName : res.Data.IndustryName ? res.Data.IndustryName : res.Data.MatchTypeName,
+          title:
+            this.genreIs == "作者"
+              ? res.Data.NickName
+              : this.genreIs === "标的"
+              ? res.Data.IndustryName
+              : res.Data.IndustryName
+              ? res.Data.IndustryName
+              : res.Data.MatchTypeName,
         });
-        this.titleReport = this.genreIs == "作者" ? res.Data.NickName : this.genreIs === "标的" ? res.Data.IndustryName : res.Data.IndustryName ? res.Data.IndustryName : res.Data.MatchTypeName;
+        this.titleReport =
+          this.genreIs == "作者"
+            ? res.Data.NickName
+            : this.genreIs === "标的"
+            ? res.Data.IndustryName
+            : res.Data.IndustryName
+            ? res.Data.IndustryName
+            : res.Data.MatchTypeName;
         this.status = this.page_no < res.Data.Paging.Pages ? "loadmore" : "nomore";
         this.totalPage = res.Data.Paging.Pages; //总页数
         if (res.Data.List.length > 0) {
@@ -127,7 +141,7 @@ export default {
     goDetail(item, index) {
       /* 无需授权且已绑定 检验是或否有权限 */
       this.collectList[index].IsRed = false;
-      this.$store.dispatch("checkHandle", "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId);
+      uni.navigateTo({ url: "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId });
     },
   },
   components: {
@@ -154,7 +168,16 @@ export default {
     return {
       title: this.isHorzMobile ? "好友向您推荐此内容,上传名片享查研观向免费月卡!" : this.titleReport,
       path:
-        "/reportPages/industrialReport/industrialReport?id=" + this.categoryId + "&type=" + this.typeIsPost + "&isGenre=" + this.genreIs + "&idGenre=" + this.idGenre + "&idArticle=" + this.articleId,
+        "/reportPages/industrialReport/industrialReport?id=" +
+        this.categoryId +
+        "&type=" +
+        this.typeIsPost +
+        "&isGenre=" +
+        this.genreIs +
+        "&idGenre=" +
+        this.idGenre +
+        "&idArticle=" +
+        this.articleId,
       success: (res) => {},
       fail: (err) => {},
     };

+ 93 - 84
reportPages/keyCompany/keyCompany.vue

@@ -1,99 +1,109 @@
 <template>
-  <view id="keyconmpany" class="container content-conmpany" v-if="haveData">
-    <block v-if="Object.keys(reportDetail).length > 0">
-      <view class="report-content-title">{{ reportDetail.Title }}</view>
-      <view class="author-time">
-        <text>{{ reportDetail.Department }}</text>
-        <text>{{ reportDetail.PublishDate }}</text>
-      </view>
-      <view class="content-statement">
-        <text>注:请务必阅读</text>
-        <text class="statement" @click="isShowStatement = true">免责声明 </text>
-      </view>
-      <view class="content-abstract">
-        <text>产品说明:</text>
-        <text>{{ reportDetail.ProductDescription }} </text>
-      </view>
-      <view class="macro-strategy">
-        <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/macro-strategy.png"></image>
-        宏观策略
-      </view>
-      <view class="description">
-        <mp-html :content="strFontSize(reportDetail.MarketStrategy)" />
-        <view class="detailed">
-          <text>详细策略报告请</text>
-          <text @click="reportDetailLink">点击查看</text>
-        </view>
-      </view>
-      <view class="industry-ul">
-        <view class="industry-li" v-for="(item, index) in dataListSubject" :key="index">
-          <view class="industry-name">{{ item.PermissionName }}</view>
-          <view :class="['industry-subject', item.ListSubject.length < 3 && 'industry-top-border']">
-            <view
-              :class="['subject-item', 'text_oneLine', item.ListSubject.length < 3 && 'subject-item-top-border']"
-              @click="positionSubject(key)"
-              v-for="key in item.ListSubject"
-              :key="key.IndustrialSubjectId"
-            >
-              {{ key.SubjectName }}
-              <image v-if="key.IsNew" class="icon_subject" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_subject.png"></image>
-            </view>
+  <block>
+    <block v-if="isUserBindingPhoneNumber">
+      <view id="keyconmpany" class="container content-conmpany" v-if="haveData">
+        <block v-if="Object.keys(reportDetail).length > 0">
+          <view class="report-content-title">{{ reportDetail.Title }}</view>
+          <view class="author-time">
+            <text>{{ reportDetail.Department }}</text>
+            <text>{{ reportDetail.PublishDate }}</text>
           </view>
-        </view>
-      </view>
-      <view class="content-ul">
-        <view class="content-li" v-for="item in dataList" :key="item.PermissionName">
-          <view class="content-title">
-            <image :src="item.IcoLink"></image>
-            {{ item.PermissionName }}
+          <view class="content-statement">
+            <text>注:请务必阅读</text>
+            <text class="statement" @click="isShowStatement = true">免责声明 </text>
+          </view>
+          <view class="content-abstract">
+            <text>产品说明:</text>
+            <text>{{ reportDetail.ProductDescription }} </text>
           </view>
-          <mp-html :content="strFontSize(item.BodyChartSummary)" />
-          <view class="li-list">
-            <view class="li-item" v-for="key in item.List" :key="key.IndustrialSubjectId">
-              <view :id="'subject' + key.IndustrialSubjectId" class="li-subject">
-                <view class="item-name">
-                  <text style="display: inline-block; vertical-align: middle; font-weight: 600">{{ key.SubjectName }}</text>
-                  <image v-if="key.IsNew" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"></image>
+          <view class="macro-strategy">
+            <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/macro-strategy.png"></image>
+            宏观策略
+          </view>
+          <view class="description">
+            <mp-html :content="strFontSize(reportDetail.MarketStrategy)" />
+            <view class="detailed">
+              <text>详细策略报告请</text>
+              <text @click="reportDetailLink">点击查看</text>
+            </view>
+          </view>
+          <view class="industry-ul">
+            <view class="industry-li" v-for="(item, index) in dataListSubject" :key="index">
+              <view class="industry-name">{{ item.PermissionName }}</view>
+              <view :class="['industry-subject', item.ListSubject.length < 3 && 'industry-top-border']">
+                <view
+                  :class="['subject-item', 'text_oneLine', item.ListSubject.length < 3 && 'subject-item-top-border']"
+                  @click="positionSubject(key)"
+                  v-for="key in item.ListSubject"
+                  :key="key.IndustrialSubjectId"
+                >
+                  {{ key.SubjectName }}
+                  <image v-if="key.IsNew" class="icon_subject" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_subject.png"></image>
                 </view>
-                <text class="itel-label" v-for="val in key.CompanyLabel" :key="val"># {{ val }}</text>
               </view>
-              <mp-html :content="strFontSize(key.Body)" />
-            <view style="margin-bottom:120rpx;" v-if="key.OverviewArticleId > 0 || key.List">
-                <view class="subject-detali" v-if="key.OverviewArticleId > 0">
-                <text style="display: inline-block">公司综述报告请</text>
-                <text style="color: #3385ff; margin-left: 10rpx; display: inline-block" @click="goArticle(key.OverviewArticleId)">点击查看</text>
+            </view>
+          </view>
+          <view class="content-ul">
+            <view class="content-li" v-for="item in dataList" :key="item.PermissionName">
+              <view class="content-title">
+                <image :src="item.IcoLink"></image>
+                {{ item.PermissionName }}
               </view>
-              <view class="subject-detali" v-if="key.List">
-                <text style="display: inline-block">相关调研纪要、深度报告请</text>
-                <text style="color: #3385ff; margin-left: 10rpx; display: inline-block" @click="industry(key.List)">点击查看</text>
+              <mp-html :content="strFontSize(item.BodyChartSummary)" />
+              <view class="li-list">
+                <view class="li-item" v-for="key in item.List" :key="key.IndustrialSubjectId">
+                  <view :id="'subject' + key.IndustrialSubjectId" class="li-subject">
+                    <view class="item-name">
+                      <text style="display: inline-block; vertical-align: middle; font-weight: 600">{{ key.SubjectName }}</text>
+                      <image v-if="key.IsNew" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"></image>
+                    </view>
+                    <text class="itel-label" v-for="val in key.CompanyLabel" :key="val"># {{ val }}</text>
+                  </view>
+                  <mp-html :content="strFontSize(key.Body)" />
+                  <view style="margin-bottom: 120rpx" v-if="key.OverviewArticleId > 0 || key.List">
+                    <view class="subject-detali" v-if="key.OverviewArticleId > 0">
+                      <text style="display: inline-block">公司综述报告请</text>
+                      <text style="color: #3385ff; margin-left: 10rpx; display: inline-block" @click="goArticle(key.OverviewArticleId)"
+                        >点击查看</text
+                      >
+                    </view>
+                    <view class="subject-detali" v-if="key.List">
+                      <text style="display: inline-block">相关调研纪要、深度报告请</text>
+                      <text style="color: #3385ff; margin-left: 10rpx; display: inline-block" @click="industry(key.List)">点击查看</text>
+                    </view>
+                  </view>
+                </view>
               </view>
             </view>
-            </view>
           </view>
-        </view>
-      </view>
-      <view class="back-top" v-if="isShowBackTop" @click="goBackTop">
-        <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/back_top.png"></image>
+          <view class="back-top" v-if="isShowBackTop" @click="goBackTop">
+            <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/back_top.png"></image>
+          </view>
+          <statement :show="isShowStatement" />
+          <view class="select-box">
+            <u-popup v-model="areacodeShow" mode="bottom" @close="cancel">
+              <view class="box" style="color: #2c83ff" v-for="item in list" :key="item.IndustrialManagementId" @click="industryDetitle(item)">
+                {{ item.IndustryName }}</view
+              >
+              <view class="box box-bottom" style="color: #a9afb8" @click="cancel">取消</view>
+            </u-popup>
+          </view>
+        </block>
       </view>
-      <statement :show="isShowStatement" />
-      <view class="select-box">
-        <u-popup v-model="areacodeShow" mode="bottom" @close="cancel">
-          <view class="box" style="color: #2c83ff" v-for="item in list" :key="item.IndustrialManagementId" @click="industryDetitle(item)"> {{ item.IndustryName }}</view>
-          <view class="box box-bottom" style="color: #a9afb8" @click="cancel">取消</view>
-        </u-popup>
+      <view class="nodata" v-else>
+        <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/report_loading_icon.png" class="nodata_img"></image>
+        <view class="nodata-tip">正在努力编辑中,请耐心等待...</view>
       </view>
     </block>
-  </view>
-  <view class="nodata" v-else>
-    <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/report_loading_icon.png" class="nodata_img"></image>
-    <view class="nodata-tip">正在努力编辑中,请耐心等待...</view>
-  </view>
+    <not-have-login v-else />
+  </block>
 </template>
 
 <script>
 import { Reports } from "@/config/api.js";
 import statement from "@/reportPages/components/statement.vue";
 import { Throttle } from "@/config/util.js";
+import NotHaveLogin from "../../components/notHaveLogin.vue";
 
 export default {
   data() {
@@ -108,7 +118,7 @@ export default {
       haveData: true,
     };
   },
-  components: { statement },
+  components: { statement, NotHaveLogin },
   methods: {
     // 返回top
     goBackTop() {
@@ -133,7 +143,7 @@ export default {
     // 详细策略报告请
     reportDetailLink() {
       if (this.reportDetail.CeLueArticleId > 0) {
-        this.$store.dispatch("checkHandle", "/pageMy/reportDetail/reportDetail?id=" + this.reportDetail.CeLueArticleId);
+        uni.navigateTo({ url: "/pageMy/reportDetail/reportDetail?id=" + this.reportDetail.CeLueArticleId });
       } else {
         uni.showToast({
           title: "文章ID有误",
@@ -170,7 +180,7 @@ export default {
     }),
     // 公司综述报告请
     goArticle(id) {
-      this.$store.dispatch("checkHandle", "/pageMy/reportDetail/reportDetail?id=" + id);
+      uni.navigateTo({ url: "/pageMy/reportDetail/reportDetail?id=" + id });
     },
     // 判断一个还是多个
     industry(item) {
@@ -198,10 +208,9 @@ export default {
       this.areacodeShow = false;
     },
   },
-  onLoad() {
-    this.reportSelectionDetail();
-  },
+  onLoad() {},
   onShow() {
+    if (!this.$store.state.isAuth && !this.$store.state.isBind) this.reportSelectionDetail();
     this.$store.commit("setRouterReport", "重点公司");
   },
   onPageScroll(e) {

+ 1 - 1
reportPages/recentPages/recentPages.vue

@@ -120,7 +120,7 @@ export default {
     },
     //去往主题详情
     themeDetails(item) {
-      this.$store.dispatch("checkHandle", "/reportPages/researchTheme/researchTheme?id=" + item.IndustrialManagementId + "&pageRouter=近期主题更新");
+      uni.navigateTo({ url: "/reportPages/researchTheme/researchTheme?id=" + item.IndustrialManagementId + "&pageRouter=近期主题更新" });
     },
   },
   onLoad(options) {

+ 114 - 111
reportPages/reportSecretDetail/reportSecretDetail.vue

@@ -1,124 +1,127 @@
 <template>
-  <view class="container content-secret forbid-copy">
-    <block v-if="hasPermission == 1">
-      <block v-if="detali">
-        <view class="container-top">
-          <view class="report-content-title">
-            {{ detali.Title }}
-          </view>
-          <view class="content-time">
-            <text>{{ detali.Department }}</text>
-            <text>{{ detali.PublishDate }}</text>
-          </view>
-          <view class="content-statement">
-            <text>注:请务必阅读</text>
-            <text class="statement" @click="isShowStatement = true">免责声明 </text>
-          </view>
-          <view class="audio-card">
-            <view class="card-title text_oneLine">
-              {{ detali.VideoName }}
+  <block>
+    <view class="container content-secret forbid-copy" v-if="isUserBindingPhoneNumber">
+      <block v-if="hasPermission == 1">
+        <block v-if="detali">
+          <view class="container-top">
+            <view class="report-content-title">
+              {{ detali.Title }}
+            </view>
+            <view class="content-time">
+              <text>{{ detali.Department }}</text>
+              <text>{{ detali.PublishDate }}</text>
             </view>
-            <view class="slider-paly">
-              <view style="flex: 1; padding-top: 20rpx">
-                <slider
-                  activeColor="#3385FF"
-                  :max="detali.VideoPlaySeconds"
-                  :value="curTime"
-                  @touchstart="touchstartHandler"
-                  @change="handleAudioSliderChange($event)"
-                  @changing="handleAudioSliderChangeing($event)"
-                  block-size="16"
-                  class="slider"
-                />
-                <view class="card-time">
-                  <text class="time">{{ curTime | formatVoiceTime }}</text>
-                  <text class="time">{{ detali.VideoPlaySeconds | formatVoiceTime }}</text>
+            <view class="content-statement">
+              <text>注:请务必阅读</text>
+              <text class="statement" @click="isShowStatement = true">免责声明 </text>
+            </view>
+            <view class="audio-card">
+              <view class="card-title text_oneLine">
+                {{ detali.VideoName }}
+              </view>
+              <view class="slider-paly">
+                <view style="flex: 1; padding-top: 20rpx">
+                  <slider
+                    activeColor="#3385FF"
+                    :max="detali.VideoPlaySeconds"
+                    :value="curTime"
+                    @touchstart="touchstartHandler"
+                    @change="handleAudioSliderChange($event)"
+                    @changing="handleAudioSliderChangeing($event)"
+                    block-size="16"
+                    class="slider"
+                  />
+                  <view class="card-time">
+                    <text class="time">{{ curTime | formatVoiceTime }}</text>
+                    <text class="time">{{ detali.VideoPlaySeconds | formatVoiceTime }}</text>
+                  </view>
+                </view>
+                <view class="is-paly-card">
+                  <image
+                    @click.stop="audioPlayBack"
+                    :src="
+                      curVoiceId === detali.ArticleId && !curAudioPaused
+                        ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/play_icon.gif'
+                        : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/pause_icon.png'
+                    "
+                  ></image>
                 </view>
               </view>
-              <view class="is-paly-card">
+              <view class="fast-reverse">
                 <image
-                  @click.stop="audioPlayBack"
-                  :src="
-                    curVoiceId === detali.ArticleId && !curAudioPaused
-                      ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/play_icon.gif'
-                      : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/pause_icon.png'
-                  "
+                  @click="speedReverseHandler('reverse')"
+                  class="speed-img"
+                  src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/fastReverse_icon.png"
+                ></image>
+                <block v-for="(item, index) in timesTheSpeed" :key="item.value">
+                  <view class="speed-button" v-if="isTimes == item.value" @click="isTimesHandler(index)">
+                    {{ item.name }}
+                  </view>
+                </block>
+                <image
+                  @click="speedReverseHandler('speed')"
+                  class="speed-img"
+                  src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/speed_icon.png"
                 ></image>
               </view>
             </view>
-            <view class="fast-reverse">
-              <image
-                @click="speedReverseHandler('reverse')"
-                class="speed-img"
-                src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/fastReverse_icon.png"
-              ></image>
-              <block v-for="(item, index) in timesTheSpeed" :key="item.value">
-                <view class="speed-button" v-if="isTimes == item.value" @click="isTimesHandler(index)">
-                  {{ item.name }}
-                </view>
-              </block>
-              <image
-                @click="speedReverseHandler('speed')"
-                class="speed-img"
-                src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/speed_icon.png"
-              ></image>
+            <view v-if="detali.Abstract" class="content-abstract">
+              <text>摘要:</text>
+              <text>
+                {{ detali.Abstract }}
+              </text>
+            </view>
+            <view v-if="detali.ProductDescription && isType == 1" class="content-abstract">
+              <text>产品说明:</text>
+              <text>
+                {{ detali.ProductDescription }}
+              </text>
+            </view>
+            <view v-if="detali.UpdateDescription && isType == 1" class="content-abstract">
+              <text>变更说明:</text>
+              <text>
+                {{ detali.UpdateDescription }}
+              </text>
+            </view>
+            <view v-if="detali.FocusOn && isType == 1" class="content-focuson">
+              <text class="focuson">近期重点关注方向:</text>
+              <mp-html :content="strFontSize(detali.FocusOn)" />
             </view>
           </view>
-          <view v-if="detali.Abstract" class="content-abstract">
-            <text>摘要:</text>
-            <text>
-              {{ detali.Abstract }}
-            </text>
-          </view>
-          <view v-if="detali.ProductDescription && isType == 1" class="content-abstract">
-            <text>产品说明:</text>
-            <text>
-              {{ detali.ProductDescription }}
-            </text>
-          </view>
-          <view v-if="detali.UpdateDescription && isType == 1" class="content-abstract">
-            <text>变更说明:</text>
-            <text>
-              {{ detali.UpdateDescription }}
-            </text>
-          </view>
-          <view v-if="detali.FocusOn && isType == 1" class="content-focuson">
-            <text class="focuson">近期重点关注方向:</text>
-            <mp-html :content="strFontSize(detali.FocusOn)" />
+          <view class="container-text">
+            <researchSummary v-if="isType == 1" :dataList="dataList" />
+            <reportChoiceness v-if="isType == 2 || isType == 3" :dataListResearch="dataListResearch" />
           </view>
+          <statement :show="isShowStatement" />
+        </block>
+        <view class="nodata" v-else>
+          <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/report_loading_icon.png" class="nodata_img"></image>
+          <view class="nodata-tip">正在努力编辑中,请耐心等待...</view>
         </view>
-        <view class="container-text">
-          <researchSummary v-if="isType == 1" :dataList="dataList" />
-          <reportChoiceness v-if="isType == 2 || isType == 3" :dataListResearch="dataListResearch" />
-        </view>
-        <statement :show="isShowStatement" />
       </block>
-      <view class="nodata" v-else>
-        <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/report_loading_icon.png" class="nodata_img"></image>
-        <view class="nodata-tip">正在努力编辑中,请耐心等待...</view>
-      </view>
-    </block>
-    <view class="noauth-cont" v-else-if="hasPermission == 3 || hasPermission == 4">
-      <block v-if="!isShowAlert">
-        <image src="https://hzstatic.hzinsights.com/cygx/czbk/noauth.png" class="noauth-ico"></image>
-        <block>
-          <view class="tip">您暂无权限查看此文章内容,若想查看可以申请开通哦</view>
-          <view class="btn-cont" @click="applyAuth"> 立即申请 </view>
+      <view class="noauth-cont" v-else-if="hasPermission == 3 || hasPermission == 4">
+        <block v-if="!isShowAlert">
+          <image src="https://hzstatic.hzinsights.com/cygx/czbk/noauth.png" class="noauth-ico"></image>
+          <block>
+            <view class="tip">您暂无权限查看此文章内容,若想查看可以申请开通哦</view>
+            <view class="btn-cont" @click="applyAuth"> 立即申请 </view>
+          </block>
+          <view class="btn-cont back-btn" @click="backIndex"> 返回首页 </view>
         </block>
-        <view class="btn-cont back-btn" @click="backIndex"> 返回首页 </view>
-      </block>
-      <block v-else>
-        <text class="moneh-text"> 上传名片并填写简单信息,24小时内我们会为您开通一个月的免费月卡 </text>
-        <img src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/month_card.png" class="month_card" alt="" />
-        <view class="btn-cont btn-dl" @click="applyAuth"> 立即上传 </view>
-        <view class="btn-cont month-back" @click="backIndex"> 返回</view>
-      </block>
-    </view>
-    <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
-    <view v-show="false">
-      <audioModule :showAudioPop="showAudioPop" />
+        <block v-else>
+          <text class="moneh-text"> 上传名片并填写简单信息,24小时内我们会为您开通一个月的免费月卡 </text>
+          <img src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/month_card.png" class="month_card" alt="" />
+          <view class="btn-cont btn-dl" @click="applyAuth"> 立即上传 </view>
+          <view class="btn-cont month-back" @click="backIndex"> 返回</view>
+        </block>
+      </view>
+      <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
+      <view v-show="false">
+        <audioModule :showAudioPop="showAudioPop" />
+      </view>
     </view>
-  </view>
+    <not-have-login v-else />
+  </block>
 </template>
 
 <script>
@@ -128,6 +131,7 @@ import reportChoiceness from "./components/reportChoiceness.vue";
 import audioModule from "@/components/audioModule/index";
 import freeCharge from "@/components/freeCharge";
 import { Reports, FreeButton } from "@/config/api.js";
+import NotHaveLogin from "@/components/notHaveLogin.vue";
 let app = getApp({ allowDefault: true });
 export default {
   data() {
@@ -313,6 +317,7 @@ export default {
     reportChoiceness,
     freeCharge,
     audioModule,
+    NotHaveLogin,
   },
   async onLoad(option) {
     this.isType = option.type;
@@ -321,14 +326,12 @@ export default {
     uni.setNavigationBarTitle({
       title: this.titleTxT,
     });
-    await this.$store.dispatch("checkHandle");
-    if (!this.$store.state.isAuth && !this.$store.state.isBind) this.getDetilaiList();
-
-    // 免费送月卡
-    // this.userIsShowAlert();
   },
 
   onShow() {
+    if (!this.$store.state.isAuth && !this.$store.state.isBind) {
+      this.getDetilaiList();
+    }
     this.$store.commit("setRouterReport", this.titleTxT);
     this.showAudioBox = true;
   },

+ 3 - 1
reportPages/researchTheme/researchTheme.vue

@@ -90,6 +90,7 @@ export default {
     },
     //关注
     async isAttention(item) {
+      await this.$store.dispatch("showLoginModal");
       const res = await Reports.reportFllow({ IndustrialManagementId: this.themeList.IndustrialManagementId, PageRouter: "主题详情" });
       if (res.Ret === 200) {
         this.isFollw = !this.isFollw;
@@ -123,6 +124,7 @@ export default {
     },
     //收藏
     async collectClick(item) {
+      await this.$store.dispatch("showLoginModal");
       const res = await Report.collectRpt({ ArticleId: item.ArticleId, PageRouter: this.$store.state.pageRouterReport });
       if (res.Ret === 200) {
         item.IsCollect = !item.IsCollect;
@@ -144,7 +146,7 @@ export default {
     },
     //去往文章详情页面
     goDetail(item) {
-      this.$store.dispatch("checkHandle", "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId);
+      uni.navigateTo({ url: "/pageMy/reportDetail/reportDetail?id=" + item.ArticleId });
     },
     //去往作者详情
     authorDetails(item) {

+ 110 - 96
reportPages/roadEssence/roadEssence.vue

@@ -1,107 +1,122 @@
 <template>
-  <view class="container content-road forbid-copy">
-    <block v-if="haveAuth === 1">
-      <view class="container-top">
-        <view class="report-content-title">
-          {{ detali.Title }}
-        </view>
-        <view class="content-time">
-          <text>{{ detali.Department }}</text>
-          <text>{{ detali.PublishDate }}</text>
-        </view>
-        <view class="content-statement">
-          <text>注:请务必阅读</text>
-          <text class="statement" @click="isShowStatement = true">免责声明 </text>
-        </view>
-        <view class="audio-card">
-          <view class="card-title text_oneLine">
-            {{ detali.VideoName }}
+  <block>
+    <view class="container content-road forbid-copy" v-if="isUserBindingPhoneNumber">
+      <block v-if="haveAuth === 1">
+        <view class="container-top">
+          <view class="report-content-title">
+            {{ detali.Title }}
+          </view>
+          <view class="content-time">
+            <text>{{ detali.Department }}</text>
+            <text>{{ detali.PublishDate }}</text>
           </view>
-          <view class="slider-paly">
-            <view style="flex: 1; padding-top: 20rpx">
-              <slider
-                activeColor="#3385FF"
-                :max="detali.VideoPlaySeconds"
-                :value="curTime"
-                @touchstart="touchstartHandler"
-                @change="handleAudioSliderChange($event)"
-                @changing="handleAudioSliderChangeing($event)"
-                block-size="16"
-                class="slider"
-              />
-              <view class="card-time">
-                <text class="time">{{ curTime | formatVoiceTime }}</text>
-                <text class="time">{{ detali.VideoPlaySeconds | formatVoiceTime }}</text>
+          <view class="content-statement">
+            <text>注:请务必阅读</text>
+            <text class="statement" @click="isShowStatement = true">免责声明 </text>
+          </view>
+          <view class="audio-card">
+            <view class="card-title text_oneLine">
+              {{ detali.VideoName }}
+            </view>
+            <view class="slider-paly">
+              <view style="flex: 1; padding-top: 20rpx">
+                <slider
+                  activeColor="#3385FF"
+                  :max="detali.VideoPlaySeconds"
+                  :value="curTime"
+                  @touchstart="touchstartHandler"
+                  @change="handleAudioSliderChange($event)"
+                  @changing="handleAudioSliderChangeing($event)"
+                  block-size="16"
+                  class="slider"
+                />
+                <view class="card-time">
+                  <text class="time">{{ curTime | formatVoiceTime }}</text>
+                  <text class="time">{{ detali.VideoPlaySeconds | formatVoiceTime }}</text>
+                </view>
+              </view>
+              <view class="is-paly-card">
+                <image
+                  @click.stop="audioPlayBack"
+                  :src="
+                    curVoiceId === detali.ArticleId && !curAudioPaused
+                      ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/play_icon.gif'
+                      : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/pause_icon.png'
+                  "
+                ></image>
               </view>
             </view>
-            <view class="is-paly-card">
+            <view class="fast-reverse">
               <image
-                @click.stop="audioPlayBack"
-                :src="
-                  curVoiceId === detali.ArticleId && !curAudioPaused
-                    ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/play_icon.gif'
-                    : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/pause_icon.png'
-                "
+                @click="speedReverseHandler('reverse')"
+                class="speed-img"
+                src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/fastReverse_icon.png"
+              ></image>
+              <block v-for="(item, index) in timesTheSpeed" :key="item.value">
+                <view class="speed-button" v-if="isTimes == item.value" @click="isTimesHandler(index)">
+                  {{ item.name }}
+                </view>
+              </block>
+              <image
+                @click="speedReverseHandler('speed')"
+                class="speed-img"
+                src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/speed_icon.png"
               ></image>
             </view>
           </view>
-          <view class="fast-reverse">
-            <image @click="speedReverseHandler('reverse')" class="speed-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/fastReverse_icon.png"></image>
-            <block v-for="(item, index) in timesTheSpeed" :key="item.value">
-              <view class="speed-button" v-if="isTimes == item.value" @click="isTimesHandler(index)">
-                {{ item.name }}
-              </view>
-            </block>
-            <image @click="speedReverseHandler('speed')" class="speed-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/speed_icon.png"></image>
+          <view class="content-abstract">
+            <text>摘要:</text>
+            <text>
+              {{ detali.Abstract }}
+            </text>
+          </view>
+          <view class="content-boby">
+            <mp-html :content="strFontSize(detali.Body)" />
           </view>
         </view>
-        <view class="content-abstract">
-          <text>摘要:</text>
-          <text>
-            {{ detali.Abstract }}
-          </text>
-        </view>
-        <view class="content-boby">
-          <mp-html :content="strFontSize(detali.Body)" />
+        <view class="content-link" v-if="detali.ReportLink" @click="goDetali"> 查看深度报告 </view>
+        <view class="bottom-icon">
+          <view class="item" @click="leavingMessage">
+            <image class="icon-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/leaving_message.png"></image>
+            <view>留言</view>
+          </view>
+          <view class="item" @click="collectHandle">
+            <image
+              class="icon-img"
+              :src="
+                isCollection
+                  ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_act.png'
+                  : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_ico.png'
+              "
+            ></image>
+            <view>收藏</view>
+          </view>
         </view>
+        <statement :show="isShowStatement" />
+      </block>
+      <view class="noauth-cont" v-else-if="haveAuth === 3 || haveAuth === 4">
+        <block v-if="!isShowAlert">
+          <image src="https://hzstatic.hzinsights.com/cygx/czbk/noauth.png" class="noauth-ico"></image>
+          <block>
+            <view class="tip">您暂无权限查看此文章内容,若想查看可以申请开通哦</view>
+            <view class="btn-cont" @click="applyAuth"> 立即申请 </view>
+          </block>
+          <view class="btn-cont back-btn" @click="backIndex"> 返回首页 </view>
+        </block>
+        <block v-else>
+          <text class="moneh-text"> 上传名片并填写简单信息,24小时内我们会为您开通一个月的免费月卡 </text>
+          <img src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/month_card.png" class="month_card" alt="" />
+          <view class="btn-cont btn-dl" @click="applyAuth"> 立即上传 </view>
+          <view class="btn-cont month-back" @click="backIndex"> 返回</view>
+        </block>
       </view>
-      <view class="content-link" v-if="detali.ReportLink" @click="goDetali"> 查看深度报告 </view>
-      <view class="bottom-icon">
-        <view class="item" @click="leavingMessage">
-          <image class="icon-img" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/leaving_message.png"></image>
-          <view>留言</view>
-        </view>
-        <view class="item" @click="collectHandle">
-          <image
-            class="icon-img"
-            :src="isCollection ? 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_act.png' : 'https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_ico.png'"
-          ></image>
-          <view>收藏</view>
-        </view>
+      <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
+      <view v-show="false">
+        <audioModule :showAudioPop="showAudioPop" />
       </view>
-      <statement :show="isShowStatement" />
-    </block>
-    <view class="noauth-cont" v-else-if="haveAuth === 3 || haveAuth === 4">
-      <block v-if="!isShowAlert">
-        <image src="https://hzstatic.hzinsights.com/cygx/czbk/noauth.png" class="noauth-ico"></image>
-        <block>
-          <view class="tip">您暂无权限查看此文章内容,若想查看可以申请开通哦</view>
-          <view class="btn-cont" @click="applyAuth"> 立即申请 </view>
-        </block>
-        <view class="btn-cont back-btn" @click="backIndex"> 返回首页 </view>
-      </block>
-      <block v-else>
-        <text class="moneh-text"> 上传名片并填写简单信息,24小时内我们会为您开通一个月的免费月卡 </text>
-        <img src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/month_card.png" class="month_card" alt="" />
-        <view class="btn-cont btn-dl" @click="applyAuth"> 立即上传 </view>
-        <view class="btn-cont month-back" @click="backIndex"> 返回</view>
-      </block>
     </view>
-    <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
-    <view v-show="false">
-      <audioModule :showAudioPop="showAudioPop" />
-    </view>
-  </view>
+    <not-have-login v-else />
+  </block>
 </template>
 
 <script>
@@ -109,6 +124,7 @@ import { Reports, Report, User, FreeButton } from "@/config/api.js";
 import statement from "@/reportPages/components/statement.vue";
 import freeCharge from "@/components/freeCharge";
 import audioModule from "@/components/audioModule/index";
+import NotHaveLogin from "../../components/notHaveLogin.vue";
 let app = getApp({ allowDefault: true });
 export default {
   data() {
@@ -310,20 +326,18 @@ export default {
     statement,
     freeCharge,
     audioModule,
+    NotHaveLogin,
   },
-  async onLoad(option) {
+  onLoad(option) {
     this.id = Number(option.id) || "";
-
     // 免费送月卡
     // this.userIsShowAlert();
-
-    await this.$store.dispatch("checkHandle");
+  },
+  onShow() {
     if (!this.$store.state.isAuth && !this.$store.state.isBind) {
       //已授权已绑定
       this.getDetail();
     }
-  },
-  onShow() {
     this.$store.commit("setRouterReport", "路演精华");
     this.showAudioBox = true;
   },

+ 1 - 1
reportPages/secretDetails/secretDetails.vue

@@ -97,7 +97,7 @@ export default {
     goDetail(item) {
       /* 无需授权且已绑定 检验是或否有权限 */
       item.IsRed = false;
-      this.$store.dispatch("checkHandle", "/reportPages/reportSecretDetail/reportSecretDetail?type=" + this.isType + "&id=" + item.ArticleId);
+      uni.navigateTo({ url: "/reportPages/reportSecretDetail/reportSecretDetail?type=" + this.isType + "&id=" + item.ArticleId });
     },
   },
   onLoad(option) {

+ 41 - 3
store/index.js

@@ -46,9 +46,21 @@ const store = new Vuex.Store({
                     url: "/pageMy/authGuide/authGuide",
                   });
                 } else if (res.Data.IsBind && !res.Data.IsAuth) {
-                  //已授权未绑定
-                  uni.redirectTo({
-                    url: "/pageMy/login/login",
+                  uni.showModal({
+                    title: "即将前往登录页面,请确认是否继续",
+                    content: "为了给您提供更好的使用体验,请登录后再进行查看或操作",
+                    confirmColor: "#3385FF",
+                    cancelColor: "#606266",
+                    success: function (res) {
+                      if (res.confirm) {
+                        //已授权未绑定
+                        uni.navigateTo({
+                          url: "/pageMy/login/login",
+                        });
+                      } else if (res.cancel) {
+                        console.log("用户点击取消");
+                      }
+                    },
                   });
                 }
               }
@@ -74,6 +86,32 @@ const store = new Vuex.Store({
           });
       });
     },
+    // 绑定手机号的弹框
+    showLoginModal() {
+      return new Promise((resolve, reject) => {
+        if (!store.state.isAuth && store.state.isBind) {
+          uni.showModal({
+            title: "即将前往登录页面,请确认是否继续",
+            content: "为了给您提供更好的使用体验,请登录后再进行查看或操作",
+            confirmColor: "#3385FF",
+            cancelColor: "#606266",
+            success: function (res) {
+              if (res.confirm) {
+                //已授权未绑定
+                uni.navigateTo({
+                  url: "/pageMy/login/login",
+                });
+              } else if (res.cancel) {
+                console.log("用户点击取消");
+              }
+            },
+          });
+          reject();
+        } else {
+          resolve(true);
+        }
+      });
+    },
   },
   getters: {},
   modules: { audioBg, videoPlay },