Explorar o código

fix: 测试3

Signed-off-by: tangshizhe <48740614+tangshizhe@users.noreply.github.com>
tangshizhe hai 3 meses
pai
achega
85b16f4ce3

+ 0 - 2
apps/mobile/src/router/guard/direction.js

@@ -5,7 +5,5 @@ router.beforeEach((to, from, next) => {
   // 此处计算已移动至全局 beforeRouterLeave
   // 代码在全局 mixin 混入
   // direction(to, from)
-  console.log(to, 'to')
-  debugger
   next()
 })

+ 0 - 1023
apps/mobile/src/views/article/content.vue

@@ -1,1023 +0,0 @@
-small-tab
-<template>
-  <div class="article-content">
-    <van-skeleton
-      :row="4"
-      :row-width="['100%', '100%', '60%', '20%']"
-      :class="{ 'bg-white': reqState.loading }"
-      :loading="reqState.loading"
-    >
-      <Error v-if="isError" :error-text="errorText" />
-      <div v-else class="j-container page-container">
-        <div
-          ref="scrollWrapper"
-          class="j-main article-content-main"
-          :class="{
-            'show-underline': otherModel.hasProject,
-            'no-scroll': showBindPhone,
-          }"
-          @click="onScrollWrapperClick"
-          @scroll.passive="onScroll"
-        >
-          <ContentHeader
-            :class="{ 'z-index10': showBindPhone }"
-            :before-leave-page="beforeLeavePage"
-          />
-          <ContentHeaderBannerTip
-            v-if="showContentHeaderBannerTip"
-            :id="pageState.id"
-            :class="{ 'z-index10': showBindPhone }"
-            :before-leave-page="beforeLeavePage"
-          />
-          <OneClickBinding
-            v-if="showBindPhone"
-            :class="{ 'z-index10': showBindPhone }"
-          />
-          <van-overlay
-            class-name="custom-overlay"
-            :show="showBindPhone"
-            :lock-scroll="false"
-          />
-
-          <van-tabs
-            v-if="canReadConf.show"
-            v-model="pageState.tabActive"
-            :class="{ 'small-tab': yyszbContent }"
-            :offset-top="offsetTop"
-            scrollspy
-            sticky
-          >
-            <!-- 摘要 -->
-            <van-tab v-if="baseModuleShow.summary" key="abstract" title="摘要">
-              <div class="tab-module">
-                <ContentAbstract
-                  :custom-skip="toBCustom"
-                  class="content-abstract-module"
-                  :before-leave-page="beforeLeavePage"
-                />
-                <section
-                  v-if="!toBCustom"
-                  class="content-abstract-other bg-white"
-                >
-                  <ContentAbstractEntList
-                    v-if="!toBCustom"
-                    class="content-abstract-ent-list-module"
-                    :before-leave-page="beforeLeavePage"
-                  />
-                  <section class="data-export-banner-module">
-                    <DataExportBanner :before-leave-page="beforeLeavePage" />
-                  </section>
-                </section>
-              </div>
-            </van-tab>
-            <!-- 正文 -->
-            <van-tab v-if="baseModuleShow.content" key="mainText" title="正文">
-              <ContentMainText
-                class="tab-module"
-                :before-leave-page="beforeLeavePage"
-                :show-mask="!canReadConf.showContentModule"
-              />
-              <NpsCard
-                v-if="canShowNpsModule"
-                ref="npsCard"
-                class="nps-module"
-              />
-            </van-tab>
-            <!-- 进度 -->
-            <van-tab
-              v-if="advancedModuleShow.timeline"
-              key="timeline"
-              title="进度"
-            >
-              <ContentProjectTimeline
-                class="tab-module"
-                :before-leave-page="beforeLeavePage"
-              />
-            </van-tab>
-            <!-- 商机推荐 -->
-            <van-tab
-              v-if="advancedModuleShow.zbRecommend"
-              key="businessRecommend"
-              title="商机推荐"
-            >
-              <ContentBusinessRecommend
-                class="tab-module"
-                :before-leave-page="beforeLeavePage"
-              />
-            </van-tab>
-            <!-- 客户推荐 -->
-            <van-tab
-              v-if="customerRecommendModuleShow"
-              key="customerRecommend"
-              title="客户推荐"
-            >
-              <ContentCustomerRecommend
-                class="tab-module"
-                :before-leave-page="beforeLeavePage"
-              />
-            </van-tab>
-            <!-- 投标服务 -->
-            <van-tab
-              v-if="advancedModuleShow.tbService"
-              key="tbService"
-              title="投标服务"
-            >
-              <ContentTouBiaoService
-                class="tab-module"
-                :before-leave-page="beforeLeavePage"
-              />
-            </van-tab>
-          </van-tabs>
-          <template v-if="!canReadConf.show">
-            <FreeUserAdvancedMask
-              v-if="content.isNiJian || content.isCaigouyixiang"
-              :type="content.isNiJian ? 'nijian' : 'caigouyixiang'"
-              :before-leave-page="beforeLeavePage"
-            />
-            <FreeUserBiddingMask v-else :before-leave-page="beforeLeavePage" />
-          </template>
-          <AdSingle
-            v-if="!toBCustom"
-            :ad="getContentAdID"
-            :show-close-icon="false"
-            radius
-            :before-open="beforeLeavePage"
-            class="mg-box"
-          />
-        </div>
-        <div class="j-footer article-content-footer">
-          <TabActions
-            v-if="showTabActions"
-            :show-monitor="showMonitor"
-            :before-leave-page="beforeLeavePage"
-          />
-        </div>
-      </div>
-    </van-skeleton>
-    <!--    客服 -->
-    <CustomerCorner :scroll-status="scrollStatus" bottom-position="12%" />
-    <ThirdPartyVerifyPopup
-      v-model="popup.thirdPartyVerify"
-      :before-leave-page="beforeLeavePage"
-    />
-    <CheckUserDialog />
-    <appShareSheet
-      v-model="shareShow"
-      popup-title="分享有礼"
-      :share-title="shareConf.title"
-      :share-content="shareConf.content"
-      :share-link="shareConf.link"
-      @share="calcAppShareInfo"
-    >
-      <div slot="subtitle" class="share-subtitle-container">
-        <span class="share-subtitle-left j-icon icon-points" />
-        <span class="share-subtitle-content">
-          分享招标信息及文档,好友访问立得剑鱼币
-        </span>
-        <a href="/page_points_mobile/share" class="share-subtitle-right">
-          了解详情
-        </a>
-      </div>
-    </appShareSheet>
-    <wxShareGuide v-model="guideMask" />
-  </div>
-</template>
-
-<script>
-import { Icon, Overlay, Skeleton, Tab, Tabs } from 'vant'
-import { checkAncestorClass, isElementInScrollArea } from '@jy/util'
-import { throttle } from 'lodash'
-import { mapActions, mapGetters, mapMutations, mapState } from 'vuex'
-import { mixinHeader } from '@/utils/mixins/header'
-import { appWxShareMixin } from '@/utils/mixins/modules/app-wx-share'
-import ContentHeader from '@/views/article/components/ContentHeader.vue'
-import ContentHeaderBannerTip from '@/views/article/components/ContentHeaderBannerTip.vue'
-import ContentAbstract from '@/views/article/components/ContentAbstract.vue'
-import DataExportBanner from '@/views/article/components/DataExportBanner.vue'
-import ContentAbstractEntList from '@/views/article/components/ContentAbstractEntList.vue'
-import ContentMainText from '@/views/article/components/ContentMainText.vue'
-import ContentProjectTimeline from '@/views/article/components/ContentProjectTimeline.vue'
-import ContentTouBiaoService from '@/views/article/components/ContentTouBiaoService.vue'
-import ContentBusinessRecommend from '@/views/article/components/ContentBusinessRecommend.vue'
-import ContentCustomerRecommend from '@/views/article/components/ContentCustomerRecommend.vue'
-import NpsCard from '@/views/article/components/NpsCard.vue'
-import TabActions from '@/views/article/components/TabActions.vue'
-import AdSingle from '@/components/ad/Ad.vue'
-import FreeUserBiddingMask from '@/views/article/components/FreeUserBiddingMask.vue'
-import FreeUserAdvancedMask from '@/views/article/components/FreeUserAdvancedMask.vue'
-import ThirdPartyVerifyPopup from '@/views/article/components/ThirdPartyVerifyPopup.vue'
-import CheckUserDialog from '@/views/identity/components/CheckUserDialog'
-import CustomerCorner from '@/components/customer/index'
-import Error from '@/views/article/components/Error.vue'
-import OneClickBinding from '@/components/one-click-binding/index'
-import {
-  getArticleShareInfo,
-  getContentShareEncrypt
-} from '@/api/modules/article'
-import { LINKS } from '@/data'
-import { openAppOrWxPage } from '@/utils/'
-import setPageTdk from '@/utils/mixins/modules/set-tdk'
-
-export default {
-  name: 'ArticleContent',
-  components: {
-    [Tabs.name]: Tabs,
-    [Tab.name]: Tab,
-    [Icon.name]: Icon,
-    [Skeleton.name]: Skeleton,
-    [Overlay.name]: Overlay,
-    ContentHeader,
-    ContentHeaderBannerTip,
-    ContentAbstract,
-    DataExportBanner,
-    ContentMainText,
-    ContentAbstractEntList,
-    ContentProjectTimeline,
-    ContentTouBiaoService,
-    ContentBusinessRecommend,
-    ContentCustomerRecommend,
-    FreeUserBiddingMask,
-    FreeUserAdvancedMask,
-    ThirdPartyVerifyPopup,
-    CheckUserDialog,
-    NpsCard,
-    TabActions,
-    AdSingle,
-    CustomerCorner,
-    Error,
-    OneClickBinding
-  },
-  mixins: [mixinHeader, setPageTdk, appWxShareMixin],
-  data() {
-    const { inApp } = this.$envs
-    return {
-      pageLayoutConf: {
-        actionRightStyle: {
-          display: 'flex',
-          flexDirection: 'column',
-          alignItems: 'center',
-          color: '#171826',
-          fontSize: '10px',
-          lineHeight: '18px'
-        }
-      },
-      shareEnableConf: {
-        shareActionImmediate: false,
-        getDomainImmediate: inApp,
-        app: true, // 开启app分享
-        wx: true // 开启wx分享
-      },
-      shareConf: {
-        fetchDomain: true,
-        title: '',
-        content: '',
-        pathname: '',
-        origin: location.origin,
-        link: ''
-      },
-      shareInfoRes: {},
-      offsetTop: 0,
-      // tabList: [
-      //   {
-      //     label: '摘要',
-      //     value: 'abstract'
-      //   },
-      //   {
-      //     label: '正文',
-      //     value: 'mainText'
-      //   },
-      //   {
-      //     label: '进度',
-      //     value: 'timeline'
-      //   },
-      //   {
-      //     label: '投标服务',
-      //     value: 'service'
-      //   },
-      //   {
-      //     label: '商机推荐',
-      //     value: 'businessRecommend'
-      //   },
-      //   {
-      //     label: '客户推荐',
-      //     value: 'customerRecommend'
-      //   }
-      // ],
-      reqState: {
-        loading: true,
-        loaded: false
-      },
-      popup: {
-        thirdPartyVerify: false
-      },
-      wxShareCache: {
-        encryptid: '',
-        subhref: ''
-      },
-      pageState: {
-        id: '',
-        tabActive: ''
-      },
-      scrollStatus: true,
-      isError: false,
-      errorText: ''
-    }
-  },
-  computed: {
-    ...mapState({
-      preAgentInfo: state => state.article.preAgentInfo,
-      content: state => state.article.mainModel.content,
-      summary: state => state.article.mainModel.summary,
-      mainModel: state => state.article.mainModel,
-      expandModel: state => state.article.expandModel,
-      otherModel: state => state.article.otherModel,
-      bindPhone: state => state.article.bindPhone
-    }),
-    IsCustomTopNet() {
-      return this.content.IsCustomTopNet || false
-    },
-    yyszbContent() {
-      return this.content.yyszbContent || location.pathname.includes('/yyszb')
-    },
-    toBCustom() {
-      return (
-        this.IsCustomTopNet || this.yyszbContent || this.IsSunPublishContent
-      )
-    },
-    showMonitor() {
-      return !this.yyszbContent
-    },
-    hasPowerToReadSunPublishContent() {
-      return this.content.hasPowerToReadSunPublishContent || false
-    },
-    IsSunPublishContent() {
-      return this.content.IsSunPublishContent || false
-    },
-    showContentHeaderBannerTip() {
-      if (this.toBCustom) {
-        return false
-      }
-      return this.content.recommendedService
-    },
-    openid() {
-      return this.preAgentInfo.openid
-    },
-    ...mapGetters('user', [
-      'isLogin',
-      'isSuper',
-      'isMember',
-      'isNewBusiness',
-      'bigMemberPower'
-    ]),
-    canReadConf() {
-      if (this.IsSunPublishContent) {
-        return {
-          show: this.content.isCanRead, // 是否展示全部内容
-          showContentModule: this.hasPowerToReadSunPublishContent
-        }
-      }
-      else {
-        return {
-          show: this.content.isCanRead,
-          showContentModule: true
-        }
-      }
-    },
-    canShowNpsModule() {
-      if (this.IsCustomTopNet) {
-        return false
-      }
-      if (this.yyszbContent) {
-        return false
-      }
-      return this.canReadConf.show
-    },
-    showTabActions() {
-      if (this.toBCustom) {
-        return false
-      }
-      return this.canReadConf.show
-    },
-    baseModuleShow() {
-      return this.mainModel.moduleShow
-    },
-    advancedModuleShow() {
-      const { tbService, customerRecommend, timeline, zbRecommend }
-        = this.expandModel.moduleShow
-      const toBCustom
-        = this.IsCustomTopNet || this.IsSunPublishContent || this.yyszbContent
-      return Object.assign({}, this.expandModel.moduleShow, {
-        tbService: toBCustom ? false : tbService,
-        customerRecommend: toBCustom ? false : customerRecommend,
-        timeline: toBCustom ? false : timeline,
-        zbRecommend: toBCustom ? false : zbRecommend
-      })
-    },
-    // 客户推荐模块是否展示
-    customerRecommendModuleShow() {
-      if (this.IsCustomTopNet) {
-        return false
-      }
-      if (this.toBCustom) {
-        return false
-      }
-      // 如果是有权限用户(权限7),则有数据展示,无数据不展示。无权限7用户则一直展示,展示广告引导
-      if (this.hasCustomerModulePower) {
-        return this.advancedModuleShow.customerRecommend
-      }
-      else {
-        return true
-      }
-    },
-    hasCustomerModulePower() {
-      // 潜在客户挖掘权限。权限7
-      return this.expandModel.recommendCustomers?.isPower
-    },
-    getContentAdID() {
-      const sun = this.IsSunPublishContent ? '-sun' : ''
-      return `${this.$envs.inWX ? 'jy' : 'jyapp'}${sun}-wxcontent-bottom`
-    },
-    getContentAdID() {
-      return `${this.$envs.inWX ? 'jy' : 'jyapp'}-wxcontent-bottom`
-    },
-    // 是否展示绑定手机号弹窗
-    showBindPhone() {
-      const { wxpush } = this.$route?.query
-      return wxpush === 'bind' && this.$envs.inWX && !this.isBindPhone
-    },
-    // 从baseInfo获取是否绑定手机号(P607新增)
-    isBindPhone() {
-      return this.bindPhone
-    }
-  },
-  async created() {
-    this.appHeaderActions()
-    await this.getPageState()
-    this.initAppWxShare()
-  },
-  mounted() {
-    this.getStickyOffset()
-    this.restoreScrollTop()
-  },
-  methods: {
-    ...mapMutations('article', [
-      'setOtherModelChild',
-      'setMainContentModelChild'
-    ]),
-    ...mapActions('article', [
-      'pageStateReset',
-      'pageStateRestore',
-      'saveStateToStorage',
-      'getPreAgentInfo',
-      'getBaseInfo',
-      'getAdvancedInfo'
-    ]),
-    finishLoading() {
-      this.reqState.loading = false
-      this.reqState.loaded = true
-    },
-    async getPageState() {
-      // 1. 重置数据
-      await this.pageStateReset()
-      this.getParams()
-      // 2. 检测缓存
-      this.storage = await this.pageStateRestore()
-      if (this.storage) {
-        // 缓存中获取,恢复滚动高度
-        this.finishLoading()
-        this.$nextTick(() => {
-          // console.log('恢复滚动高度', this.storage)
-          const scrollWrapper = this.$refs.scrollWrapper
-          if (scrollWrapper) {
-            scrollWrapper.scrollTop = this.otherModel.scrollTop
-          }
-          this.checkNpsView()
-        })
-      }
-      else {
-        try {
-          await this.getPreAgentInfo()
-          const { data, msg } = await this.getBaseInfo()
-          if (data) {
-            this.finishLoading()
-          }
-          else {
-            this.finishLoading()
-            this.isError = true
-            // 无效参数 = d解析错误
-            // 未查到当前招标信息 = 文章不存在
-            if (msg.includes('未查到当前招标信息')) {
-              this.errorText = '由于相关部门要求,该信息已下架,敬请原谅'
-            }
-            else {
-              this.errorText = '该页面信息不存在'
-            }
-          }
-        }
-        catch (error) {
-          console.error(error)
-        }
-        finally {
-          // console.log('基础接口请求完成')
-        }
-        if (this.canReadConf.show) {
-          this.getAdvancedInfo()
-        }
-      }
-      this.changeTdk()
-    },
-    changeTdk() {
-      const { title, keywords, description } = this.content.tdk || {}
-      const { listShareTitle } = this.content
-      this.setPageTdkCall({
-        title,
-        keywords,
-        description
-      })
-      this.setAMiniProgramShareTitle(title, listShareTitle)
-    },
-    setAMiniProgramShareTitle(title, otherTitle) {
-      // if (!this.$envs.inWxMini) return
-      let subType = ''
-      try {
-        subType = this.content?._ob?.subType
-      }
-      catch (error) {
-        console.log(error)
-      }
-      let prefix = ''
-      if (subType) {
-        prefix = `【${subType}】`
-      }
-      const newTitle = prefix + title
-      if (otherTitle) {
-        this.postMessageToMiniProgram(otherTitle)
-      }
-      else {
-        this.postMessageToMiniProgram(newTitle)
-      }
-    },
-    postMessageToMiniProgram(title) {
-      try {
-        wx.miniProgram.postMessage({
-          data: {
-            post: 'share',
-            type: 'common',
-            desc: '标讯详情',
-            title
-          }
-        })
-      }
-      catch (e) {
-        console.log(e)
-      }
-    },
-    getParams() {
-      const { params } = this.$route
-      // 保持获取到的id和接口返回的id一致
-      this.pageState.id = params.id
-      this.setMainContentModelChild({ key: 'id', data: this.pageState.id })
-    },
-    appHeaderActions() {
-      const { $envs } = this
-      if (!$envs.inApp)
-        return
-      if (this.yyszbContent) {
-        return
-      }
-      const actionRightConf = {
-        actionRightText:
-          '<div class="j-icon icon-points" style="width:24px;height:24px"></div><p>分享有礼</p>',
-        onClickRight: this.clickRight
-      }
-      for (const key in actionRightConf) {
-        this.$set(this.pageLayoutConf, key, actionRightConf[key])
-      }
-      this.mergePageConf()
-    },
-    getStickyOffset() {
-      const header = document.querySelector('.common-app-header')
-      if (header) {
-        const offsetTop = header?.clientHeight || 0
-        if (offsetTop > 0) {
-          this.offsetTop = offsetTop - 1
-        }
-      }
-    },
-    onScrollWrapperClick(e) {
-      const checkUnderline = checkAncestorClass(e, 'keyword-underline', 3)
-      // project-name事件委托
-      if (checkUnderline.status) {
-        this.clickKeywordUnderline(e)
-      }
-      else if (e.target.classList.contains('free-view')) {
-        this.clickFreeView(e)
-      }
-      else if (e.target.className.includes('third-party-popover')) {
-        this.popup.thirdPartyVerify = true
-      }
-    },
-    // 页面下划线高内容亮事件委托
-    clickKeywordUnderline(e) {
-      const checkProjectName = checkAncestorClass(e, 'project-name', 3)
-      const checkWinnerName = checkAncestorClass(e, 'winner-name', 3)
-      if (checkProjectName.status) {
-        // 标题跳转添加ABTest手机号绑定弹框
-        this.$testBindPhone({
-          props: {
-            name: '标讯详情页-标题'
-          },
-          next: () => {
-            this.goMemberFollowPage()
-          }
-        })
-      }
-      else if (checkWinnerName.status) {
-        this.goToEntPortraitPage(checkWinnerName.target)
-      }
-    },
-    goMemberFollowPage() {
-      const { _ob } = this.content || {}
-      const { fid, id } = this.otherModel.projectFollowState || {}
-      const params = {
-        fid,
-        sid: id
-      }
-      sessionStorage.setItem('bigvip-fid', JSON.stringify(params))
-      this.beforeLeavePage()
-      if (this.isNewBusiness) {
-        openAppOrWxPage(LINKS.商机管理项目进度监控, {
-          query: {
-            from: 'client',
-            industry: _ob ? _ob.buyerClass : undefined
-          }
-        })
-      }
-      else {
-        openAppOrWxPage(LINKS.项目详情页)
-      }
-    },
-    goToEntPortraitPage(target) {
-      const id = target.dataset.eid
-      const eName = target.innerText
-        ?.replace(/#/g, '%23')
-        ?.replace(/\?/g, '%3F')
-      if (!id) {
-        return this.$toast('暂无数据')
-      }
-      else {
-        const noPower
-          = !this.bigMemberPower.includes(4)
-          && !this.bigMemberPower.includes(12)
-          && !this.bigMemberPower.includes(13)
-        if (this.isMember && noPower) {
-          if (eName) {
-            this.beforeLeavePage()
-            openAppOrWxPage({
-              wx: LINKS.旧版企业信息前缀.wx + eName,
-              app: LINKS.旧版企业信息前缀.app + eName,
-              h5: LINKS.旧版企业信息前缀.h5 + eName
-            })
-          }
-          else {
-            return this.$toast('暂无数据')
-          }
-        }
-        else {
-          this.beforeLeavePage()
-          sessionStorage.removeItem('$data-ent_portrait')
-          openAppOrWxPage(LINKS.企业画像页面, {
-            query: {
-              eId: id
-            }
-          })
-        }
-      }
-    },
-    clickFreeView() {
-      this.$testBindPhone({
-        props: {
-          name: '标讯详情页-采购联系人/联系电话'
-        },
-        next: () => {
-          this.beforeLeavePage()
-          let source = 'peugeot_view_infor'
-          if (this.toBCustom) {
-            source = `${this.$env.platform}_sunlight_viewdetails`
-          }
-          openAppOrWxPage(LINKS.留资, {
-            query: {
-              source,
-              infoid: this.content.id
-            }
-          })
-        }
-      })
-    },
-    beforeLeavePage() {
-      this.saveStateToStorage()
-      // 返回true,广告位才能正常跳转
-      return true
-    },
-    clickRight() {
-      this.checkTestBindPhone('标讯详情页-分享有礼', this.doShare)
-    },
-    doShare() {
-      this.shareShow = true
-    },
-    async initAppWxShare() {
-      if (this.$envs.inWX) {
-        try {
-          await this.getShareInfoReq()
-        }
-        catch (error) {
-          console.log(error)
-        }
-        await this.calcWxShareInfo()
-        this.initShareMixin()
-      }
-      else {
-        this.getShareInfoReq()
-      }
-    },
-    async getShareInfoReq() {
-      const {
-        data = {},
-        error_code: code,
-        error_msg: msg = ''
-      } = await getArticleShareInfo()
-      if (code === 0 && data) {
-        this.shareInfoRes = data
-      }
-    },
-    async calcWxShareInfo() {
-      const host = location.host
-      const id = this.content.id
-      const openid = this.openid ? encodeURIComponent(this.openid) : '-1'
-
-      // 计算title
-      const title = this.content.title
-        .replace(/<\/?.+?>/g, '')
-        .replace(/ /g, '')
-
-      // 计算content
-      const contentList = ['您的好友']
-      // 分享到微信或者朋友圈带上昵称
-      if (this.shareInfoRes.nickname) {
-        contentList.push(this.shareInfoRes.nickname)
-      }
-      contentList.push('向您推荐了剑鱼标讯')
-      const content = contentList.join('')
-
-      let link = `${host}/swordfish/about?param=${openid}__jy_extend&qrcodeType=wx_infocontent_timeline_z`
-      if (window.location.href.includes('open_infocontent')) {
-        const query = window.location.search.slice(1)
-        link += `${query}`
-      }
-      else {
-        link += '&source=wx_infocontentshare'
-      }
-
-      let subhref = location.href
-      let encryptid = ''
-      if (id) {
-        try {
-          const data = await getContentShareEncrypt({ id })
-          if (data.flag === 'T') {
-            encryptid = data.sid_openid
-            this.wxShareCache.encryptid = encryptid
-            const add1 = subhref.substring(0, subhref.indexOf('/content/'))
-            const add2 = subhref.substring(subhref.indexOf('.html'))
-            subhref = `${add1}/content/${encryptid}${add2}`
-            this.wxShareCache.subhref = subhref
-          }
-        }
-        catch (error) {
-          console.warn(error)
-        }
-      }
-
-      if (encryptid) {
-        link = subhref
-      }
-      else {
-        link = window.location.href
-      }
-      if (!link.includes('?')) {
-        link += '?'
-      }
-      else {
-        link += '&'
-      }
-      if (!encryptid) {
-        link += `openid=${openid}&`
-      }
-      link += 'source=wx_infocontentshare'
-
-      this.shareConf.title = title
-      this.shareConf.content = content
-      this.shareConf.link = link
-
-      // const url = new URL(link)
-      // this.shareConf.pathname = url.pathname
-      // this.refreshShareLink()
-      console.log(JSON.stringify(this.shareConf))
-    },
-    calcAppShareInfo(t) {
-      const shareType = t.id
-
-      const contentList = ['您的好友']
-      // 分享到微信或者朋友圈带上昵称
-      if (this.shareInfoRes.nickname && shareType !== 2) {
-        contentList.push(this.shareInfoRes.nickname)
-      }
-      contentList.push('向您推荐了剑鱼标讯')
-      const content = contentList.join('')
-
-      const shareToWx = shareType === 1 || shareType === 3
-
-      let link = `/swordfish/about?source=app_infocontentshare&from=${
-        this.shareInfoRes.userId || ''
-      }`
-      let shareTitle = this.content.title
-        .replace(/<\/?.+?>/g, '')
-        .replace(/ /g, '')
-      if (shareType === 1) {
-        // 分享给微信好友
-        link = location.pathname
-          .replace(import.meta.env.VITE_APP_BASE_URL, '')
-          .replace('/jyapp', '')
-        if (location.search) {
-          link += `${location.search}&source=app_infocontentshare&from=${
-            this.shareInfoRes.userId || ''
-          }`
-        }
-        else {
-          link += `?source=app_infocontentshare&from=${
-            this.shareInfoRes.userId || ''
-          }`
-        }
-      }
-      else if (shareType === 3) {
-        // 分享到朋友圈
-        link += '&qrcodeType=app_infocontent_timeline_z'
-        shareTitle = this.getRandomShareText()
-      }
-
-      this.shareConf.title = shareTitle
-      this.shareConf.content = content
-      this.shareConf.pathname = link
-      // this.shareConf.link = link
-      if (this.$envs.inApp && shareToWx) {
-        this.refreshShareLink(this.domainConf.wx)
-      }
-      else {
-        this.refreshShareLink()
-      }
-    },
-    onScroll: throttle(function (e) {
-      this.checkNpsView()
-      this.saveScrollTop()
-      this.scrollStatus = e.target.scrollTop < 60
-    }, 300),
-    saveScrollTop() {
-      const scrollWrapper = this.$refs.scrollWrapper
-      const scrollTop = scrollWrapper.scrollTop
-      this.setOtherModelChild({
-        key: 'scrollTop',
-        data: Number.parseInt(scrollTop)
-      })
-    },
-    restoreScrollTop() {
-      // const toDayShow = this.$storage.get(this.cacheKey, false)
-      // const scrollWrapper = this.$refs.scrollWrapper
-    },
-    checkNpsView() {
-      const targetVm = this.$refs.npsCard
-      if (!targetVm)
-        return
-      const target = targetVm.$el
-      const scrollWrapper = this.$refs.scrollWrapper
-      const visible = isElementInScrollArea(target, scrollWrapper)
-      if (visible) {
-        targetVm.getIsView()
-      }
-    },
-    checkTestBindPhone(name, next) {
-      this.$testBindPhone({
-        props: {
-          name
-        },
-        next
-      })
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-::v-deep {
-  .van-tabs__wrap {
-    padding-bottom: 4px;
-    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
-  }
-  .van-tabs__line {
-    width: 24px;
-  }
-  .van-tab {
-    padding: 0 8px;
-    color: #5f5e64;
-  }
-
-  .tab-module.content-module-card {
-    margin-top: 8px;
-  }
-
-  .keyword-underline {
-    border-bottom: 1px solid $main;
-    padding-bottom: 1px;
-  }
-  .keyword.hide-underline {
-    border-bottom-width: 0;
-  }
-
-  .van-skeleton {
-    padding-top: 24px;
-    height: 100%;
-    .van-skeleton__row {
-      height: 20px;
-    }
-  }
-}
-
-.show-underline {
-  ::v-deep {
-    .hide-underline {
-      border-bottom-width: 1px;
-    }
-  }
-}
-
-.small-tab {
-  ::v-deep {
-    .van-tab {
-      flex: none;
-    }
-    .van-tabs__nav {
-      padding-left: 16px;
-      padding-right: 16px;
-    }
-  }
-}
-
-.page-container {
-  height: calc(100% - 1px - 1px);
-}
-
-.nps-module {
-  margin-top: 8px;
-}
-
-.content-abstract-ent-list-module + .data-export-banner-module {
-  padding-top: 0;
-}
-.content-abstract-other {
-  border-top: 0.5px solid rgba(0, 0, 0, 0.05);
-  padding: 12px;
-}
-
-.share-subtitle-container {
-  display: flex;
-  align-items: center;
-  white-space: nowrap;
-  font-size: 13px;
-  padding: 0 16px;
-  .share-subtitle-content {
-    margin: 0 6px;
-  }
-  .share-subtitle-right {
-    color: $main;
-  }
-}
-
-.mg-box {
-  margin: 8px 16px;
-  margin-bottom: 32px;
-}
-.custom-overlay {
-  background: linear-gradient(#ededed66 80%, #f9f9f9 100%);
-}
-.z-index10 {
-  position: relative;
-  z-index: 10;
-}
-.no-scroll {
-  overflow: hidden;
-}
-</style>
-
-<style>
-.no-select {
-  user-select: unset !important;
-}
-</style>