Эх сурвалжийг харах

Merge branch 'dev/4.8.59_cyl' of qmx/jy into release/v4.8.59

cuiyalong 1 жил өмнө
parent
commit
caadffb8d9

+ 25 - 9
src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/ent_portrait.css

@@ -47,6 +47,28 @@
 .van-sticky .van-tabs__line {
     display: none;
 }
+
+.tabs-container {
+    position: relative;
+}
+.transparent .tabs-item {
+    opacity: 0;
+}
+.tabs-container .tabs-list {
+    position: absolute;
+    left: 0;
+    top: 0;
+    width: 100%;
+    z-index: 2;
+}
+.tabs-list {
+    padding: 0 8px;
+}
+.tabs-container .tabs-item {
+    margin-bottom: .24rem;
+}
+
+.tabs-list .tabs-item,
 .van-sticky .van-tab {
     flex: none;
     display: inline-block;
@@ -62,6 +84,7 @@
 .van-sticky:not(.van-sticky--fixed) .van-tab {
     margin-bottom: .24rem;
 }
+.tabs-list .tabs-item.active,
 .van-sticky .van-tab--active {
     color: #fff!important;
     background-color: #2ABED1;
@@ -73,9 +96,6 @@
     flex-wrap: wrap;
     overflow: unset;
 }
-.van-sticky:not(.van-sticky--fixed) .van-tabs__wrap {
-    height: unset;
-}
 .van-sticky--fixed {
     border-bottom: 1px solid rgba(0, 0, 0, 0.05);
     box-shadow: 0px 2px 8px 0px rgba(54, 147, 179, 0.05);
@@ -86,12 +106,6 @@
 .van-tab__pane {
     margin-top: .24rem;
 }
-
-/* 解决首个tab点击后,定位顶部空白问题 */
-.ent-tabs-container > div {
-    height: unset!important;
-    min-height: 50px;
-}
 .van-tabs__nav--line {
     padding-bottom: 4px;
 }
@@ -117,6 +131,8 @@
 }
 
 .ent-tabs-container .van-tabs__content {
+    margin-top: 24px;
+    position: relative;
     /* @extends  .j-main */
     flex: 1;
     overflow-y: scroll;

+ 19 - 1
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/ent_portrait.js

@@ -168,6 +168,9 @@ var vNode = {
         topShow: true,
         dt: true
       },
+      pageState: {
+        transparent: false
+      },
       // 中标动态筛选条件缓存,也可以用来判断是否正在使用筛选项进行请求
       winnerHighSet: '',
       canFreeExp: false,
@@ -1417,12 +1420,26 @@ var vNode = {
       var reqSign = url.indexOf('subVipPortrait') === -1 ? 'bigmember' : 'svip'
       location.href = './free_ent_project_news?eid=' + this.entInfo.id + '&reqSign=' + reqSign
     },
+    tabScroll: function (t) {
+      this.pageState.transparent = t.isFixed
+    },
+    // 修复因为van-sticky高度变化引起的锚点定位不准确问题
+    clickTab: function (item, index) {
+      // this.$refs.scrollspyTabs.scrollTo(item.name)
+      if (index > 0) {
+        this.pageState.transparent = true
+      }
+      this.$nextTick(function () {
+        $('.van-tabs__wrap .van-tab:eq('+index+')').trigger('click')
+      })
+    },
     savePageState: function () {
       this.scrollTop = $('#ent-portrait').scrollTop()
-      var scrollTopOffset = 10 // 滚动误差
+      var scrollTopOffset = 5 // 滚动误差
       var data = {
         conf: this.conf,
         tabActiveName: this.tabActiveName,
+        pageState: this.pageState,
         entInfo: this.entInfo,
         entBaseInfo: this.entBaseInfo,
         topProject: this.topProject,
@@ -1446,6 +1463,7 @@ var vNode = {
         }
         this.tabActiveName = $data.tabActiveName
         Object.assign(this.conf, $data.conf || {})
+        Object.assign(this.pageState, $data.pageState || {})
         Object.assign(this.entInfo, $data.entInfo || {})
         Object.assign(this.entBaseInfo, $data.entBaseInfo || {})
         Object.assign(this.topProject, $data.topProject || {})

+ 417 - 407
src/jfw/modules/app/src/web/templates/big-member/page_ent_portrait.html

@@ -130,473 +130,483 @@
       <van-loading v-if="isLogin && !entInfo.followSearchFinish" size="24px"></van-loading>
       <forwardshare style="margin-left: .32rem;" :params="entParams" :show-text="false" v-if="isLogin" ></forwardshare>
     </div>
-    <van-tabs
-      class="ent-tabs-container"
-      v-model="tabActiveName"
-      ref="scrollspyTabs"
-      scrollspy
-      sticky
-      swipe-threshold="4"
-      title-active-color="#2cb7ca"
-      title-inactive-color="#5F5E64"
-      line-width="0.48rem"
-      v-if="conf.powerLoaded && conf.showPortraitAll" :offset-top="stickyTop">
-      <!-- 企业信息/工商信息 -->
-      <van-tab :name="moduleList[0].name" :title="moduleList[0].title">
-        <div class="module-container pb-12 ent-info-detail">
-          <div class="module-title-container">
-            <p class="module-title">工商信息</p>
-          </div>
-          <div class="bg-white tab-card" v-if="!entBaseInfo._empty && entBaseInfo._loaded">
-            <div class="card-row">
-              <div class="card-column social-credit-code">
-                <div class="ent-registration-label">统一社会信用代码</div>
-                <div class="ent-registration-text">${entBaseInfo.creditNo ? entBaseInfo.creditNo : '-'}</div>
-              </div>
-              <div class="card-column organization-code">
-                <div class="ent-info-label">联系方式</div>
-                <div class="ent-info-text">${entBaseInfo.phone ? entBaseInfo.phone : '-'}</div>
-              </div>
-            </div>
-            <div class="card-row">
-              <div class="card-column registered-capital">
-                <div class="ent-info-label">注册资本</div>
-                <div class="ent-info-text">${entBaseInfo.capital ? entBaseInfo.capital+'万元' : '-'}</div>
-              </div>
-              <div class="card-column registered-capital">
-                <div class="ent-info-label">法人姓名</div>
-                <div class="ent-info-text">${entBaseInfo.legal ? entBaseInfo.legal : '-'}</div>
-              </div>
+    <section class="tabs-container">
+      <div class="tabs-list bg-white" :class="{ transparent: pageState.transparent }">
+        <div class="tabs-item"
+            :class="{ active: tabActiveName === item.name }"
+            @click="clickTab(item, index)"
+            v-for="(item, index) in moduleList" :key="item.name">${ item.title }</div>
+      </div>
+      <van-tabs
+        class="ent-tabs-container"
+        v-model="tabActiveName"
+        ref="scrollspyTabs"
+        scrollspy
+        sticky
+        swipe-threshold="4"
+        title-active-color="#2cb7ca"
+        title-inactive-color="#5F5E64"
+        line-width="0.48rem"
+        @scroll="tabScroll"
+        v-if="conf.powerLoaded && conf.showPortraitAll" :offset-top="stickyTop">
+        <!-- 企业信息/工商信息 -->
+        <van-tab :name="moduleList[0].name" :title="moduleList[0].title">
+          <div class="module-container pb-12 ent-info-detail">
+            <div class="module-title-container">
+              <p class="module-title">工商信息</p>
             </div>
-            <div class="card-row">
-              <div class="card-column ent-establish">
-                <div class="ent-info-label">成立日期</div>
-                <div class="ent-info-text">
-                  ${(!entBaseInfo.establish || entBaseInfo.establish == -1) ? '-' : new
-                  Date(entBaseInfo.establish*1000).pattern('yyyy/MM/dd')}
+            <div class="bg-white tab-card" v-if="!entBaseInfo._empty && entBaseInfo._loaded">
+              <div class="card-row">
+                <div class="card-column social-credit-code">
+                  <div class="ent-registration-label">统一社会信用代码</div>
+                  <div class="ent-registration-text">${entBaseInfo.creditNo ? entBaseInfo.creditNo : '-'}</div>
+                </div>
+                <div class="card-column organization-code">
+                  <div class="ent-info-label">联系方式</div>
+                  <div class="ent-info-text">${entBaseInfo.phone ? entBaseInfo.phone : '-'}</div>
                 </div>
               </div>
-              <div class="card-column ent-status">
-                <div class="ent-info-label">经营状态</div>
-                <div class="ent-info-text">${entBaseInfo.status ? entBaseInfo.status : '-'}</div>
-              </div>
-            </div>
-            <div v-if="!showBaseInfo" class="show-more" @click="showBaseInfo = true">查看更多</div>
-            <div v-show="showBaseInfo" style="width: 100%;">
               <div class="card-row">
-                <div class="card-column ent-type">
-                  <div class="ent-type-label">公司类型</div>
-                  <div class="ent-type-text">${entBaseInfo.type ? entBaseInfo.type : '-'}</div>
+                <div class="card-column registered-capital">
+                  <div class="ent-info-label">注册资本</div>
+                  <div class="ent-info-text">${entBaseInfo.capital ? entBaseInfo.capital+'万元' : '-'}</div>
+                </div>
+                <div class="card-column registered-capital">
+                  <div class="ent-info-label">法人姓名</div>
+                  <div class="ent-info-text">${entBaseInfo.legal ? entBaseInfo.legal : '-'}</div>
                 </div>
               </div>
               <div class="card-row">
-                <div class="card-column ent-business-term">
-                  <div class="ent-business-term-label">营业期限</div>
-                  <div class="ent-business-term-text">
-                      <span>${entBaseInfo.operStart == -1 ? '-' : new
-                        Date(entBaseInfo.operStart*1000).pattern('yyyy/MM/dd')}</span>
-                    <span> 至 </span>
-                    <span>${entBaseInfo.operEnd == -1 ? '-' : new
-                        Date(entBaseInfo.operEnd*1000).pattern('yyyy/MM/dd')}</span>
+                <div class="card-column ent-establish">
+                  <div class="ent-info-label">成立日期</div>
+                  <div class="ent-info-text">
+                    ${(!entBaseInfo.establish || entBaseInfo.establish == -1) ? '-' : new
+                    Date(entBaseInfo.establish*1000).pattern('yyyy/MM/dd')}
                   </div>
                 </div>
-              </div>
-              <div class="card-row">
-                <div class="card-column tax-identification-number">
-                  <div class="ent-registration-label">纳税人识别号</div>
-                  <div class="ent-registration-text">${entBaseInfo.taxCode ? entBaseInfo.taxCode : '-'}</div>
+                <div class="card-column ent-status">
+                  <div class="ent-info-label">经营状态</div>
+                  <div class="ent-info-text">${entBaseInfo.status ? entBaseInfo.status : '-'}</div>
                 </div>
               </div>
-              <div class="card-row">
-                <div class="card-column business-registration-number">
-                  <div class="ent-registration-label">工商注册号</div>
-                  <div class="ent-registration-text">${entBaseInfo.company_code ? entBaseInfo.company_code : '-'}</div>
+              <div v-if="!showBaseInfo" class="show-more" @click="showBaseInfo = true">查看更多</div>
+              <div v-show="showBaseInfo" style="width: 100%;">
+                <div class="card-row">
+                  <div class="card-column ent-type">
+                    <div class="ent-type-label">公司类型</div>
+                    <div class="ent-type-text">${entBaseInfo.type ? entBaseInfo.type : '-'}</div>
+                  </div>
                 </div>
-              </div>
-              <div class="card-row">
-                <div class="card-column organization-code">
-                  <div class="ent-info-label">组织机构代码</div>
-                  <div class="ent-info-text">${entBaseInfo.org_code ? entBaseInfo.org_code : '-'}</div>
+                <div class="card-row">
+                  <div class="card-column ent-business-term">
+                    <div class="ent-business-term-label">营业期限</div>
+                    <div class="ent-business-term-text">
+                        <span>${entBaseInfo.operStart == -1 ? '-' : new
+                          Date(entBaseInfo.operStart*1000).pattern('yyyy/MM/dd')}</span>
+                      <span> 至 </span>
+                      <span>${entBaseInfo.operEnd == -1 ? '-' : new
+                          Date(entBaseInfo.operEnd*1000).pattern('yyyy/MM/dd')}</span>
+                    </div>
+                  </div>
                 </div>
-              </div>
-              <div class="card-row">
-                <div class="card-column ent-employee">
-                  <div class="ent-info-label">人员规模(工商年报-参保人数,仅供参考)</div>
-                  <div class="ent-info-text">${entBaseInfo.employeeNo ? entBaseInfo.employeeNo : '-'}</div>
+                <div class="card-row">
+                  <div class="card-column tax-identification-number">
+                    <div class="ent-registration-label">纳税人识别号</div>
+                    <div class="ent-registration-text">${entBaseInfo.taxCode ? entBaseInfo.taxCode : '-'}</div>
+                  </div>
                 </div>
-              </div>
-              <div class="card-row">
-                <div class="card-column registered-capital">
-                  <div class="ent-info-label">注册地址</div>
-                  <div class="ent-info-text">${entBaseInfo.address ? entBaseInfo.address : '-'}</div>
+                <div class="card-row">
+                  <div class="card-column business-registration-number">
+                    <div class="ent-registration-label">工商注册号</div>
+                    <div class="ent-registration-text">${entBaseInfo.company_code ? entBaseInfo.company_code : '-'}</div>
+                  </div>
                 </div>
-              </div>
-              <div class="card-row">
-                <div class="card-column registered-capital">
-                  <div class="ent-info-label">经营范围</div>
-                  <div class="ent-info-text">${entBaseInfo.scope ? entBaseInfo.scope : '-'}</div>
+                <div class="card-row">
+                  <div class="card-column organization-code">
+                    <div class="ent-info-label">组织机构代码</div>
+                    <div class="ent-info-text">${entBaseInfo.org_code ? entBaseInfo.org_code : '-'}</div>
+                  </div>
+                </div>
+                <div class="card-row">
+                  <div class="card-column ent-employee">
+                    <div class="ent-info-label">人员规模(工商年报-参保人数,仅供参考)</div>
+                    <div class="ent-info-text">${entBaseInfo.employeeNo ? entBaseInfo.employeeNo : '-'}</div>
+                  </div>
+                </div>
+                <div class="card-row">
+                  <div class="card-column registered-capital">
+                    <div class="ent-info-label">注册地址</div>
+                    <div class="ent-info-text">${entBaseInfo.address ? entBaseInfo.address : '-'}</div>
+                  </div>
+                </div>
+                <div class="card-row">
+                  <div class="card-column registered-capital">
+                    <div class="ent-info-label">经营范围</div>
+                    <div class="ent-info-text">${entBaseInfo.scope ? entBaseInfo.scope : '-'}</div>
+                  </div>
                 </div>
               </div>
             </div>
-          </div>
-          <div class="empty-container bg-white" v-if="entBaseInfo._empty && entBaseInfo._loaded">
-            <div class="empty-content-position">
-                <div class="image">
-                    <img src="/common-module/public/image/jy-back.png">
-                </div>
-                <div class="empty-main tip-text2">暂无数据</div>
+            <div class="empty-container bg-white" v-if="entBaseInfo._empty && entBaseInfo._loaded">
+              <div class="empty-content-position">
+                  <div class="image">
+                      <img src="/common-module/public/image/jy-back.png">
+                  </div>
+                  <div class="empty-main tip-text2">暂无数据</div>
+              </div>
             </div>
           </div>
-        </div>
-      </van-tab>
-      <!-- 工商变动 -->
-      <van-tab :name="moduleList[1].name" :title="moduleList[1].title">
-        <div class="module-title-container bg-white tab-card ent-change-history" @click="goToEntHistory">
-          <div class="module-title ent-change-l">
-            <span>工商变动</span>
-            <!-- <span class="module-title-num">10</span> -->
-          </div>
-          <div class="j-icon icon-back base-icon"></div>
-        </div>
-      </van-tab>
-      <!-- 企业通讯录 -->
-      <van-tab :name="moduleList[2].name" :title="moduleList[2].title">
-        <div v-if="!showContacts" style="margin-top: .24rem;">
-          <div style="background: #fff;padding: .24rem .32rem 0;">
-            <span class="win-bid-title">企业通讯录</span>
-          </div>
-          <div class="vip_component"
-               style="height:11.04rem;background:url('/common-module/collection/image/bg/vip_bg_9.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
-            <vip-component @tabactive="tabActive" :power="conf" type="item_9" :can-free-exp="canFreeExp"
-                           :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
-                           imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_9.png?v={{Msg "seo" "version"}}'></vip-component>
-          </div>
-        </div>
-        <div class="bg-white tab-card cell-list" v-else >
-          <hispro-component ref="hispro" class="history-list" type="winner" :id="entInfo.id" :ent-name="entInfo.name"></hispro-component>
-        </div>
-      </van-tab>
-      <!-- 中标动态 -->
-      <van-tab :name="moduleList[3].name" :title="moduleList[3].title">
-        <div class="bg-white tab-card cell-list project-news">
-          <div class="module-title-container bg-white project-news-module">
-            <div class="module-title project-news-title">
-              <span>中标动态</span>
+        </van-tab>
+        <!-- 工商变动 -->
+        <van-tab :name="moduleList[1].name" :title="moduleList[1].title">
+          <div class="module-title-container bg-white tab-card ent-change-history" @click="goToEntHistory">
+            <div class="module-title ent-change-l">
+              <span>工商变动</span>
               <!-- <span class="module-title-num">10</span> -->
             </div>
-            <div class="action-group" v-if="conf._13" key="action-group">
-              <div class="action-button export" @click="onExport" v-if="topProject.list.length">
-                  <i class="j-icon base-icon icon-download"></i>
-                  <em class="action-button-text">数据导出</em>
-              </div>
-              <div class="action-button filters-button" @click="goHighSet" v-if="!hideDt">
-                <i class="j-icon base-icon icon-3hengxian"></i>
-                <em class="action-button-text">筛选条件</em>
-              </div>
+            <div class="j-icon icon-back base-icon"></div>
+          </div>
+        </van-tab>
+        <!-- 企业通讯录 -->
+        <van-tab :name="moduleList[2].name" :title="moduleList[2].title">
+          <div v-if="!showContacts" style="margin-top: .24rem;">
+            <div style="background: #fff;padding: .24rem .32rem 0;">
+              <span class="win-bid-title">企业通讯录</span>
+            </div>
+            <div class="vip_component"
+                style="height:11.04rem;background:url('/common-module/collection/image/bg/vip_bg_9.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
+              <vip-component @tabactive="tabActive" :power="conf" type="item_9" :can-free-exp="canFreeExp"
+                            :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
+                            imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_9.png?v={{Msg "seo" "version"}}'></vip-component>
             </div>
           </div>
-          <div class="module-notice-tip">注:1个项目如同时发布了中标、成交、合同等结果类公告,则有多条数据</div>
-          <div class="tab-card-content vip_component" v-if="hideDt"
-            style="height:9.16rem;background:url('/common-module/collection/image/bg/vip_bg_1.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%"
-            key="dt">
-            <vip-component @tabactive="tabActive" :power="conf" type="item_1" :can-free-exp="canFreeExp"
-                          :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
-                          imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_1.png?v={{Msg "seo" "version"}}'>
-            </vip-component>
+          <div class="bg-white tab-card cell-list" v-else >
+            <hispro-component ref="hispro" class="history-list" type="winner" :id="entInfo.id" :ent-name="entInfo.name"></hispro-component>
           </div>
-          <div class="tab-card-content" key="dt" v-else>
-            <ul class="project-info-list" v-show="topProject.list.length !== 0">
-              <li class="project-info-item border-line-b clickable" :class="{ visited: item.visited }" v-for="(item,index) in topProject.list"
-                  @click="toProjectDetail(item)">
-                <div class="head-group">
-                  <p class="i_title visited-hd">${item.title}</p>
-                  <span class="icon weishoucang" :class="idx.indexOf(item.id) >-1 ? 'shoucang' : 'weishoucang'" @click.stop="addKeepStatus(item)"></span>
+        </van-tab>
+        <!-- 中标动态 -->
+        <van-tab :name="moduleList[3].name" :title="moduleList[3].title">
+          <div class="bg-white tab-card cell-list project-news">
+            <div class="module-title-container bg-white project-news-module">
+              <div class="module-title project-news-title">
+                <span>中标动态</span>
+                <!-- <span class="module-title-num">10</span> -->
+              </div>
+              <div class="action-group" v-if="conf._13" key="action-group">
+                <div class="action-button export" @click="onExport" v-if="topProject.list.length">
+                    <i class="j-icon base-icon icon-download"></i>
+                    <em class="action-button-text">数据导出</em>
                 </div>
-               <div class="project-name" v-if="false">${item.title}</div>
-                <div class="project-info">
-                    <span class="tags">
-                      <span class="tag tag-success" v-if="item.area">${item.area}</span>
-                      <span class="tag tag-success" v-if="item.bidstatus">${item.bidstatus}</span>
-                      <span class="tag tag-success" v-if="item.bidamount">${utils.moneyUnit(item.bidamount)}</span>
-                    </span>
-                  <span class="project-time">${item.firsttime ? new Date(item.firsttime * 1000).pattern('yyyy-MM-dd')
-                      : '-'}</span>
+                <div class="action-button filters-button" @click="goHighSet" v-if="!hideDt">
+                  <i class="j-icon base-icon icon-3hengxian"></i>
+                  <em class="action-button-text">筛选条件</em>
                 </div>
-              </li>
-              <li class="show-more clickable"
-                  v-if="topProject.showGetNextButton && (isMemberAndSvip || canFreeTrial) && topProject.count > 3"
-                  @click="goToFilterProjectNews">查看更多
-              </li>
-            </ul>
-            <div class="empty-container bg-white" v-show="topProject.list.length === 0 && topProject.loaded">
-              <div class="empty-content-position">
-                  <div class="image">
-                      <img src="/common-module/public/image/jy-back.png">
+              </div>
+            </div>
+            <div class="module-notice-tip">注:1个项目如同时发布了中标、成交、合同等结果类公告,则有多条数据</div>
+            <div class="tab-card-content vip_component" v-if="hideDt"
+              style="height:9.16rem;background:url('/common-module/collection/image/bg/vip_bg_1.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%"
+              key="dt">
+              <vip-component @tabactive="tabActive" :power="conf" type="item_1" :can-free-exp="canFreeExp"
+                            :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
+                            imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_1.png?v={{Msg "seo" "version"}}'>
+              </vip-component>
+            </div>
+            <div class="tab-card-content" key="dt" v-else>
+              <ul class="project-info-list" v-show="topProject.list.length !== 0">
+                <li class="project-info-item border-line-b clickable" :class="{ visited: item.visited }" v-for="(item,index) in topProject.list"
+                    @click="toProjectDetail(item)">
+                  <div class="head-group">
+                    <p class="i_title visited-hd">${item.title}</p>
+                    <span class="icon weishoucang" :class="idx.indexOf(item.id) >-1 ? 'shoucang' : 'weishoucang'" @click.stop="addKeepStatus(item)"></span>
                   </div>
-                  <div class="empty-main tip-text2">
-                    <template v-if="winnerHighSet">
-                      <p>对不起,没有匹配到相关信息,</p>
-                      <p>修改时间范围或换个搜索词试试吧</p>
-                    </template>
-                    <template v-else>暂无数据</template>
+                <div class="project-name" v-if="false">${item.title}</div>
+                  <div class="project-info">
+                      <span class="tags">
+                        <span class="tag tag-success" v-if="item.area">${item.area}</span>
+                        <span class="tag tag-success" v-if="item.bidstatus">${item.bidstatus}</span>
+                        <span class="tag tag-success" v-if="item.bidamount">${utils.moneyUnit(item.bidamount)}</span>
+                      </span>
+                    <span class="project-time">${item.firsttime ? new Date(item.firsttime * 1000).pattern('yyyy-MM-dd')
+                        : '-'}</span>
                   </div>
+                </li>
+                <li class="show-more clickable"
+                    v-if="topProject.showGetNextButton && (isMemberAndSvip || canFreeTrial) && topProject.count > 3"
+                    @click="goToFilterProjectNews">查看更多
+                </li>
+              </ul>
+              <div class="empty-container bg-white" v-show="topProject.list.length === 0 && topProject.loaded">
+                <div class="empty-content-position">
+                    <div class="image">
+                        <img src="/common-module/public/image/jy-back.png">
+                    </div>
+                    <div class="empty-main tip-text2">
+                      <template v-if="winnerHighSet">
+                        <p>对不起,没有匹配到相关信息,</p>
+                        <p>修改时间范围或换个搜索词试试吧</p>
+                      </template>
+                      <template v-else>暂无数据</template>
+                    </div>
+                </div>
               </div>
             </div>
           </div>
+        </van-tab>
+        <!-- 中标分析 -->
+        <van-tab :name="moduleList[4].name" :title="moduleList[4].title" class="zb-analysis-tab">
+          <template #title v-if="false">
+            <span :class="{bidinfo:!hasOnePower}">中标分析</span>
+            <span v-if="isShowUpTip" class="bid_upgrade">升级</span>
+            <span v-if="(hasOnePower && surplus && isVip)"
+                  class="bid_surplus">剩余:${entvisit.total - entvisit.usage}</span>
+          </template>
+          <!-- 免费用户采购单位全景分析提示 -->
+        <div v-if="canFreeExp && isLogin" style="margin-top: .24rem; " class="free-give">
+          <div class="highlight-text"> 免费赠送1次【企业中标分析】权益体验机会!</div>
+          <div class="go-btn" @click="goGiveAnalysis">去解锁</div>
         </div>
-      </van-tab>
-      <!-- 中标分析 -->
-      <van-tab :name="moduleList[4].name" :title="moduleList[4].title" class="zb-analysis-tab">
-        <template #title v-if="false">
-          <span :class="{bidinfo:!hasOnePower}">中标分析</span>
-          <span v-if="isShowUpTip" class="bid_upgrade">升级</span>
-          <span v-if="(hasOnePower && surplus && isVip)"
-                class="bid_surplus">剩余:${entvisit.total - entvisit.usage}</span>
-        </template>
-        <!-- 免费用户采购单位全景分析提示 -->
-       <div v-if="canFreeExp && isLogin" style="margin-top: .24rem; " class="free-give">
-         <div class="highlight-text"> 免费赠送1次【企业中标分析】权益体验机会!</div>
-         <div class="go-btn" @click="goGiveAnalysis">去解锁</div>
-       </div>
-        <!-- 留完资的免费用户 已体验和未体验的展示去开通 -->
-        <div v-if="freeWinnerOpen" class="banner-sticky" ref="bannerRef">
-          <!-- <van-sticky offset-top="33.67vw"> -->
-          <img @click="goOpenVip" src="/jyapp/big-member/image/winner-open.png" alt="">
-          <!-- </van-sticky> -->
-        </div>
-        <div class="bg-white tab-card cell-list zb-analysis-module">
-          <div class="module-title-container bg-white " ref="setRef">
-            <div class="module-title zb-analysis-title">
-              <span>中标分析</span>
-              <!-- <span class="module-title-num">10</span> -->
-            </div>
+          <!-- 留完资的免费用户 已体验和未体验的展示去开通 -->
+          <div v-if="freeWinnerOpen" class="banner-sticky" ref="bannerRef">
+            <!-- <van-sticky offset-top="33.67vw"> -->
+            <img @click="goOpenVip" src="/jyapp/big-member/image/winner-open.png" alt="">
+            <!-- </van-sticky> -->
           </div>
-          <div class="module-notice-tip">注:以下分析统计已根据项目去重;分析条件同“中标动态”的筛选条件。</div>
-        </div>
-        <!-- 有权限,并且数据为空。则展示空状态 -->
-        <!-- <div class="jy-empty" v-show="allNot && !getStatus">
-            <div class="jy-empty-img"></div>
-            <p class="jy-empty-text">对不起,没有匹配到相关信息, <br>修改时间范围或换个搜索词试试吧</p>
-        </div> -->
-        <template v-if="!getStatus" key="zb-analysis-content">
-          <div class="empty-container bg-white" key="zb-analysis-content" v-if="zbAnalysisEmpty">
-            <div class="empty-content-position">
-                <div class="image">
-                    <img src="/common-module/public/image/jy-back.png">
-                </div>
-                <p class="empty-main tip-text2">当前条件下暂无中标项目,无法进行中标分析</p>
+          <div class="bg-white tab-card cell-list zb-analysis-module">
+            <div class="module-title-container bg-white " ref="setRef">
+              <div class="module-title zb-analysis-title">
+                <span>中标分析</span>
+                <!-- <span class="module-title-num">10</span> -->
+              </div>
             </div>
+            <div class="module-notice-tip">注:以下分析统计已根据项目去重;分析条件同“中标动态”的筛选条件。</div>
           </div>
-          <!-- 数据部分 -->
-          <div v-else class="module-chart-list">
-            <!-- 中标信息统计结果概况-->
-            <div class="tab-card-container zb-overview-module">
-              <div class="vip-ent-portrait-balance" v-if="showPortraitBalance">
-                <span class="bid_surplus highlight-text">当月企业画像余额:${entvisit.total - entvisit.usage}个</span>
-                <!-- v-if="isShowUpTip" -->
-                <span class="j-button-confirm bid_upgrade" @click="portraitBalanceActionRight(portraitBalance)">${portraitBalance}</span>
+          <!-- 有权限,并且数据为空。则展示空状态 -->
+          <!-- <div class="jy-empty" v-show="allNot && !getStatus">
+              <div class="jy-empty-img"></div>
+              <p class="jy-empty-text">对不起,没有匹配到相关信息, <br>修改时间范围或换个搜索词试试吧</p>
+          </div> -->
+          <template v-if="!getStatus" key="zb-analysis-content">
+            <div class="empty-container bg-white" key="zb-analysis-content" v-if="zbAnalysisEmpty">
+              <div class="empty-content-position">
+                  <div class="image">
+                      <img src="/common-module/public/image/jy-back.png">
+                  </div>
+                  <p class="empty-main tip-text2">当前条件下暂无中标项目,无法进行中标分析</p>
               </div>
-              <div class="bg-white tab-card">
-                <div class="tab-card-title" style="padding: 0.16rem .32rem .12rem;">概况</div>
-                <div class="card-row zb-info">
-                  <div class="card-column">
-                    <div class="ent-info-label">项目数量</div>
-                    <div class="ent-info-text">${entPortraitInfo.project_count ? entPortraitInfo.project_count + '个' : '--'}
+            </div>
+            <!-- 数据部分 -->
+            <div v-else class="module-chart-list">
+              <!-- 中标信息统计结果概况-->
+              <div class="tab-card-container zb-overview-module">
+                <div class="vip-ent-portrait-balance" v-if="showPortraitBalance">
+                  <span class="bid_surplus highlight-text">当月企业画像余额:${entvisit.total - entvisit.usage}个</span>
+                  <!-- v-if="isShowUpTip" -->
+                  <span class="j-button-confirm bid_upgrade" @click="portraitBalanceActionRight(portraitBalance)">${portraitBalance}</span>
+                </div>
+                <div class="bg-white tab-card">
+                  <div class="tab-card-title" style="padding: 0.16rem .32rem .12rem;">概况</div>
+                  <div class="card-row zb-info">
+                    <div class="card-column">
+                      <div class="ent-info-label">项目数量</div>
+                      <div class="ent-info-text">${entPortraitInfo.project_count ? entPortraitInfo.project_count + '个' : '--'}
+                      </div>
                     </div>
-                  </div>
-                  <div class="card-column">
-                    <div class="ent-info-label">项目金额</div>
-                    <div class="ent-info-text">${entPortraitInfo.bidamount_count ?
-                      utils.moneyUnit(entPortraitInfo.bidamount_count) : '--'}
+                    <div class="card-column">
+                      <div class="ent-info-label">项目金额</div>
+                      <div class="ent-info-text">${entPortraitInfo.bidamount_count ?
+                        utils.moneyUnit(entPortraitInfo.bidamount_count) : '--'}
+                      </div>
                     </div>
-                  </div>
-                  <div class="card-column">
-                    <div class="ent-info-label">项目省份</div>
-                    <div class="ent-info-text">${entPortraitInfo.area_count ? entPortraitInfo.area_count + '个' : '--'}</div>
-                  </div>
-                  <div class="card-column">
-                    <div class="ent-info-label">项目客户</div>
-                    <div class="ent-info-text">${entPortraitInfo.buyer_count ? entPortraitInfo.buyer_count + '个' : '--'}
+                    <div class="card-column">
+                      <div class="ent-info-label">项目省份</div>
+                      <div class="ent-info-text">${entPortraitInfo.area_count ? entPortraitInfo.area_count + '个' : '--'}</div>
+                    </div>
+                    <div class="card-column">
+                      <div class="ent-info-label">项目客户</div>
+                      <div class="ent-info-text">${entPortraitInfo.buyer_count ? entPortraitInfo.buyer_count + '个' : '--'}
+                      </div>
                     </div>
                   </div>
-                </div>
-                <div class="zb-time-frame border-line-t">
-                  <span>数据统计范围:</span>
-                  <span>${entPortraitInfo.timeRangeStart ? new Date(entPortraitInfo.timeRangeStart *
-                      1000).pattern('yyyy/MM/dd') : ''}</span>
-                  <span>-</span>
-                  <span>${entPortraitInfo.timeRangeEnd ? new Date(entPortraitInfo.timeRangeEnd * 1000).pattern('yyyy/MM/dd')
-                      : '至今'}</span>
-                  <span>(结果类公告发布时间)</span>
+                  <div class="zb-time-frame border-line-t">
+                    <span>数据统计范围:</span>
+                    <span>${entPortraitInfo.timeRangeStart ? new Date(entPortraitInfo.timeRangeStart *
+                        1000).pattern('yyyy/MM/dd') : ''}</span>
+                    <span>-</span>
+                    <span>${entPortraitInfo.timeRangeEnd ? new Date(entPortraitInfo.timeRangeEnd * 1000).pattern('yyyy/MM/dd')
+                        : '至今'}</span>
+                    <span>(结果类公告发布时间)</span>
+                  </div>
                 </div>
               </div>
-            </div>
-            <div class="bg-white tab-card charts"
-                v-if="conf._4 && annualData.rows.length !== 0 && !getStatus">
-              <div class="tab-card-title">年度项目统计</div>
-              <!-- e-charts和sticky同时使用时候,需要手动降低css层级(z-index: 1),确保tooltip不遮挡固定定位头部 -->
-              <div class="tab-card-content">
-                <ve-histogram height="284px" :colors="colorGreen" :data="annualData" :init-options="initEchartsOptions"
-                              :after-config="annualConfig" :settings="annualSetting" :extend="barChart.chartExtend">
-                </ve-histogram>
+              <div class="bg-white tab-card charts"
+                  v-if="conf._4 && annualData.rows.length !== 0 && !getStatus">
+                <div class="tab-card-title">年度项目统计</div>
+                <!-- e-charts和sticky同时使用时候,需要手动降低css层级(z-index: 1),确保tooltip不遮挡固定定位头部 -->
+                <div class="tab-card-content">
+                  <ve-histogram height="284px" :colors="colorGreen" :data="annualData" :init-options="initEchartsOptions"
+                                :after-config="annualConfig" :settings="annualSetting" :extend="barChart.chartExtend">
+                  </ve-histogram>
+                </div>
+                <div class="tab-card-tip">注:项目金额指所有项目的中标金额之和,少数缺失的中标金额,用项目预算补充。</div>
               </div>
-              <div class="tab-card-tip">注:项目金额指所有项目的中标金额之和,少数缺失的中标金额,用项目预算补充。</div>
-            </div>
-            <div class="bg-white tab-card charts"
-                v-if="conf._4 && monthZbData.rows.length !== 0 && !getStatus">
-              <div class="tab-card-title">月度中标金额统计</div>
-              <div class="tab-card-content">
-                <ve-line height="284px" :data="monthZbData" :init-options="initEchartsOptions"
-                        :after-config="lineChartConfig" :extend="chartOptions.lineChart">
-                </ve-line>
+              <div class="bg-white tab-card charts"
+                  v-if="conf._4 && monthZbData.rows.length !== 0 && !getStatus">
+                <div class="tab-card-title">月度中标金额统计</div>
+                <div class="tab-card-content">
+                  <ve-line height="284px" :data="monthZbData" :init-options="initEchartsOptions"
+                          :after-config="lineChartConfig" :extend="chartOptions.lineChart">
+                  </ve-line>
+                </div>
+                <div class="tab-card-tip">注:少数缺失的中标金额,用项目预算补充。</div>
               </div>
-              <div class="tab-card-tip">注:少数缺失的中标金额,用项目预算补充。</div>
-            </div>
-            <div class="bg-white tab-card charts"
-                v-if="conf._4 && mapChartData.rows.length !== 0 && !getStatus">
-              <div class="tab-card-title">市场区域分布</div>
-              <div class="tab-card-content">
-                <ve-map height="400px" :data="mapChartData" :init-options="initEchartsOptions" :after-config="mapConfig"
-                        :settings="mapSettings.chartSettings" :extend="mapSettings.chartExtend">
-                </ve-map>
+              <div class="bg-white tab-card charts"
+                  v-if="conf._4 && mapChartData.rows.length !== 0 && !getStatus">
+                <div class="tab-card-title">市场区域分布</div>
+                <div class="tab-card-content">
+                  <ve-map height="400px" :data="mapChartData" :init-options="initEchartsOptions" :after-config="mapConfig"
+                          :settings="mapSettings.chartSettings" :extend="mapSettings.chartExtend">
+                  </ve-map>
+                </div>
               </div>
-            </div>
-            <div class="bg-white tab-card charts"
-                v-if="conf._4 && rateData.rows.length !== 0 && !getStatus">
-              <div class="tab-card-title">各类客户平均折扣率</div>
-              <div class="tab-card-content">
-                <ve-line height="314px" :data="rateData" :init-options="initEchartsOptions" :after-config="rateConfig"
-                        :extend="chartOptions.lineChart">
-                </ve-line>
+              <div class="bg-white tab-card charts"
+                  v-if="conf._4 && rateData.rows.length !== 0 && !getStatus">
+                <div class="tab-card-title">各类客户平均折扣率</div>
+                <div class="tab-card-content">
+                  <ve-line height="314px" :data="rateData" :init-options="initEchartsOptions" :after-config="rateConfig"
+                          :extend="chartOptions.lineChart">
+                  </ve-line>
+                </div>
+                <div class="tab-card-tip">注:平均折扣率=(全部项目预算-全部中标金额)/全部项目预算,是指价格减让部分与原价的比率,仅统计预算和中标金额同时存在的项目。</div>
               </div>
-              <div class="tab-card-tip">注:平均折扣率=(全部项目预算-全部中标金额)/全部项目预算,是指价格减让部分与原价的比率,仅统计预算和中标金额同时存在的项目。</div>
-            </div>
-            <div class="bg-white tab-card charts"
-                v-show="conf._4 && entPortraitInfo.top10 && entPortraitInfo.top10.length != 0 && !getStatus">
-              <div class="tab-card-title">客户类型分布</div>
-              <div class="tab-card-content">
-                <div ref="pieChart" style="height: 360px;width: 320px;margin: 0 auto;"></div>
+              <div class="bg-white tab-card charts"
+                  v-show="conf._4 && entPortraitInfo.top10 && entPortraitInfo.top10.length != 0 && !getStatus">
+                <div class="tab-card-title">客户类型分布</div>
+                <div class="tab-card-content">
+                  <div ref="pieChart" style="height: 360px;width: 320px;margin: 0 auto;"></div>
+                </div>
+                <div class="tab-card-tip">注:各客户类型占比以中标金额计算,最多展示占比排名前十的客户类型。</div>
               </div>
-              <div class="tab-card-tip">注:各客户类型占比以中标金额计算,最多展示占比排名前十的客户类型。</div>
-            </div>
-            <div class="bg-white tab-card customers client"
-                v-show="conf._4 && importantCustomers.length !== 0 && !getStatus">
-              <div class="tab-card-title">重点及首次合作客户</div>
-              <div class="tab-card-content">
-                <div class="client-list" v-for="c in importantCustomers">
-                  <div class="c-top">
-                    <strong class="c-itemName">${c.title}</strong>
-                    <div class="top-switch">
-                      <div :class="{active: !c.showLabels}" @click="c.showLabels=false">重点客户</div>
-                      <div :class="{active: c.showLabels}" @click="c.showLabels=true">首次合作客户</div>
-                    </div>
-                  </div>
-                  <div class="progress-bar-container" v-show="!c.showLabels">
-                    <div class="c-thead">
-                      <strong class="c-name">客户名称</strong>
-                      <span class="c-count">中标数量</span>
-                      <span class="c-rate">平均折扣率</span>
-                      <span class="c-time">最近合作日期</span>
-                    </div>
-                    <div class="progress-bar-item" v-for="(item,index) in c.list" :key="index" v-show="item.name">
-                      <div class="item-label">
-                        <span class="ellipsis-2 item-name" @click="toUnitPortrayal(item)">${item.name}</span>
-                        <span class="item-count">${item.count ? item.count + '个' : item.count}</span>
-                        <span class="item-rate">${(item.rate != null) ? item.rate + '%' : '--'}</span>
-                        <span class="item-time">${item.time}</span>
-                      </div>
-                      <div class="item-progress">
-                        <span class="item-money" v-if="item.money > 0">${utils.moneyUnit(item.money)}</span>
-                        <span class="item-progress-count active-progress" :style="{width: item.percent}"></span>
+              <div class="bg-white tab-card customers client"
+                  v-show="conf._4 && importantCustomers.length !== 0 && !getStatus">
+                <div class="tab-card-title">重点及首次合作客户</div>
+                <div class="tab-card-content">
+                  <div class="client-list" v-for="c in importantCustomers">
+                    <div class="c-top">
+                      <strong class="c-itemName">${c.title}</strong>
+                      <div class="top-switch">
+                        <div :class="{active: !c.showLabels}" @click="c.showLabels=false">重点客户</div>
+                        <div :class="{active: c.showLabels}" @click="c.showLabels=true">首次合作客户</div>
                       </div>
                     </div>
-                  </div>
-                  <div class="progress-bar-container" v-show="c.showLabels">
-                    <div v-if="c.firstList&&c.firstList.length>0">
+                    <div class="progress-bar-container" v-show="!c.showLabels">
                       <div class="c-thead">
-                      <strong class="c-name">客户名称</strong>
-                      <span class="c-count">中标数量</span>
-                      <span class="c-rate">平均折扣率</span>
-                      <span class="c-time">最近合作日期</span>
-                    </div>
-                      <div class="progress-bar-item" v-for="(item,index) in c.firstList" :key="index" v-show="item.name">
-                      <div class="item-label">
-                        <span class="ellipsis-2 item-name" @click="toUnitPortrayal(item)">${item.name}</span>
-                        <span class="item-count">${item.count ? item.count + '个' : item.count}</span>
-                        <span class="item-rate">${(item.rate != null) ? item.rate + '%' : '--'}</span>
-                        <span class="item-time">${item.time}</span>
+                        <strong class="c-name">客户名称</strong>
+                        <span class="c-count">中标数量</span>
+                        <span class="c-rate">平均折扣率</span>
+                        <span class="c-time">最近合作日期</span>
                       </div>
-                      <div class="item-progress">
-                        <span class="item-money" v-if="item.money > 0">${utils.moneyUnit(item.money)}</span>
-                        <span class="item-progress-count active-progress" :style="{width: item.percent}"></span>
+                      <div class="progress-bar-item" v-for="(item,index) in c.list" :key="index" v-show="item.name">
+                        <div class="item-label">
+                          <span class="ellipsis-2 item-name" @click="toUnitPortrayal(item)">${item.name}</span>
+                          <span class="item-count">${item.count ? item.count + '个' : item.count}</span>
+                          <span class="item-rate">${(item.rate != null) ? item.rate + '%' : '--'}</span>
+                          <span class="item-time">${item.time}</span>
+                        </div>
+                        <div class="item-progress">
+                          <span class="item-money" v-if="item.money > 0">${utils.moneyUnit(item.money)}</span>
+                          <span class="item-progress-count active-progress" :style="{width: item.percent}"></span>
+                        </div>
                       </div>
                     </div>
-                    </div>
-                    <div v-else style="display:flex;flex-direction:column;justify-content:center;align-items:center;padding:.4rem;">
-                      <div style="height:4rem;width:4rem;background:url('/common-module/collection/image/jy-back.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%"></div>
-                      <span style="font-size: .28rem;line-height: 20px;color: #9B9CA3;">该时间范围暂无首次合作过的客户</span>
+                    <div class="progress-bar-container" v-show="c.showLabels">
+                      <div v-if="c.firstList&&c.firstList.length>0">
+                        <div class="c-thead">
+                        <strong class="c-name">客户名称</strong>
+                        <span class="c-count">中标数量</span>
+                        <span class="c-rate">平均折扣率</span>
+                        <span class="c-time">最近合作日期</span>
+                      </div>
+                        <div class="progress-bar-item" v-for="(item,index) in c.firstList" :key="index" v-show="item.name">
+                        <div class="item-label">
+                          <span class="ellipsis-2 item-name" @click="toUnitPortrayal(item)">${item.name}</span>
+                          <span class="item-count">${item.count ? item.count + '个' : item.count}</span>
+                          <span class="item-rate">${(item.rate != null) ? item.rate + '%' : '--'}</span>
+                          <span class="item-time">${item.time}</span>
+                        </div>
+                        <div class="item-progress">
+                          <span class="item-money" v-if="item.money > 0">${utils.moneyUnit(item.money)}</span>
+                          <span class="item-progress-count active-progress" :style="{width: item.percent}"></span>
+                        </div>
+                      </div>
+                      </div>
+                      <div v-else style="display:flex;flex-direction:column;justify-content:center;align-items:center;padding:.4rem;">
+                        <div style="height:4rem;width:4rem;background:url('/common-module/collection/image/jy-back.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%"></div>
+                        <span style="font-size: .28rem;line-height: 20px;color: #9B9CA3;">该时间范围暂无首次合作过的客户</span>
+                      </div>
                     </div>
                   </div>
                 </div>
               </div>
             </div>
+          </template>
+          <div class="module-mask-list" v-if="getStatus">
+            <!-- 中标信息统计结果 -->
+            <div class="vip_component"
+                  style="height:7.8rem;background:url('/common-module/collection/image/bg/qy-zbtj-bg.png?v={{Msg "seo" "version"}}') 40% 0 no-repeat;background-size:110% 100%;"
+              key="dt">
+              <vip-component @tabactive="tabActive" :power="conf" type="item_10" :can-free-exp="canFreeExp"
+                            :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
+                            imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/qy-zbtj.png?v={{Msg "seo" "version"}}'>
+              </vip-component>
+            </div>
+            <div class="vip_component"
+                style="height:11.12rem;background:url('/common-module/collection/image/bg/vip_bg_2.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
+              <vip-component @tabactive="tabActive" type="item_2" :power="conf" :can-free-exp="canFreeExp"
+                            :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
+                            imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_2.png?v={{Msg "seo" "version"}}'>
+              </vip-component>
+            </div>
+            <div class="vip_component"
+                style="height:10.8rem;background:url('/common-module/collection/image/bg/vip_bg_3.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
+              <vip-component @tabactive="tabActive" type="item_3" :power="conf" :can-free-exp="canFreeExp"
+                            :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
+                            imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_3.png?v={{Msg "seo" "version"}}'>
+              </vip-component>
+            </div>
+            <div class="vip_component"
+                style="height:10.56rem;background:url('/common-module/collection/image/bg/vip_bg_4.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
+              <vip-component @tabactive="tabActive" type="item_4" :power="conf" :can-free-exp="canFreeExp"
+                            :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
+                            imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_4.png?v={{Msg "seo" "version"}}'>
+              </vip-component>
+            </div>
+            <div class="vip_component"
+                style="height:11.24rem;background:url('/common-module/collection/image/bg/vip_bg_5.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
+              <vip-component @tabactive="tabActive" type="item_5" :power="conf" :can-free-exp="canFreeExp"
+                            :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
+                            imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_5.png?v={{Msg "seo" "version"}}'>
+              </vip-component>
+            </div>
+            <div class="vip_component" v-if="getStatus"
+                style="height:11.92rem;background:url('/common-module/collection/image/bg/vip_bg_6.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
+              <vip-component @tabactive="tabActive" type="item_6" :power="conf" :can-free-exp="canFreeExp"
+                            :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
+                            imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_6.png?v={{Msg "seo" "version"}}'>
+              </vip-component>
+            </div>
+            <div class="vip_component" v-if="getStatus"
+                style="height:10.8rem;background:url('/common-module/collection/image/bg/vip_bg_7.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
+              <vip-component @tabactive="tabActive" type="item_7" :power="conf" :can-free-exp="canFreeExp"
+                            :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
+                            imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_7.png?v={{Msg "seo" "version"}}'>
+              </vip-component>
+            </div>
           </div>
-        </template>
-        <div class="module-mask-list" v-if="getStatus">
-          <!-- 中标信息统计结果 -->
-          <div class="vip_component"
-                style="height:7.8rem;background:url('/common-module/collection/image/bg/qy-zbtj-bg.png?v={{Msg "seo" "version"}}') 40% 0 no-repeat;background-size:110% 100%;"
-            key="dt">
-            <vip-component @tabactive="tabActive" :power="conf" type="item_10" :can-free-exp="canFreeExp"
-                          :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
-                          imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/qy-zbtj.png?v={{Msg "seo" "version"}}'>
-            </vip-component>
-          </div>
-          <div class="vip_component"
-              style="height:11.12rem;background:url('/common-module/collection/image/bg/vip_bg_2.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
-            <vip-component @tabactive="tabActive" type="item_2" :power="conf" :can-free-exp="canFreeExp"
-                          :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
-                          imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_2.png?v={{Msg "seo" "version"}}'>
-            </vip-component>
-          </div>
-          <div class="vip_component"
-              style="height:10.8rem;background:url('/common-module/collection/image/bg/vip_bg_3.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
-            <vip-component @tabactive="tabActive" type="item_3" :power="conf" :can-free-exp="canFreeExp"
-                          :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
-                          imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_3.png?v={{Msg "seo" "version"}}'>
-            </vip-component>
-          </div>
-          <div class="vip_component"
-              style="height:10.56rem;background:url('/common-module/collection/image/bg/vip_bg_4.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
-            <vip-component @tabactive="tabActive" type="item_4" :power="conf" :can-free-exp="canFreeExp"
-                          :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
-                          imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_4.png?v={{Msg "seo" "version"}}'>
-            </vip-component>
-          </div>
-          <div class="vip_component"
-              style="height:11.24rem;background:url('/common-module/collection/image/bg/vip_bg_5.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
-            <vip-component @tabactive="tabActive" type="item_5" :power="conf" :can-free-exp="canFreeExp"
-                          :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
-                          imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_5.png?v={{Msg "seo" "version"}}'>
-            </vip-component>
-          </div>
-          <div class="vip_component" v-if="getStatus"
-              style="height:11.92rem;background:url('/common-module/collection/image/bg/vip_bg_6.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
-            <vip-component @tabactive="tabActive" type="item_6" :power="conf" :can-free-exp="canFreeExp"
-                          :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
-                          imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_6.png?v={{Msg "seo" "version"}}'>
-            </vip-component>
-          </div>
-          <div class="vip_component" v-if="getStatus"
-              style="height:10.8rem;background:url('/common-module/collection/image/bg/vip_bg_7.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
-            <vip-component @tabactive="tabActive" type="item_7" :power="conf" :can-free-exp="canFreeExp"
-                          :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
-                          imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_7.png?v={{Msg "seo" "version"}}'>
-            </vip-component>
-          </div>
-        </div>
-      </van-tab>
-    </van-tabs>
+        </van-tab>
+      </van-tabs>
+    </section>
+    
     <div class="j-main project-tab-container" v-if="conf.powerLoaded && !conf.showPortraitAll">
       <div class="j-container empty" v-show="topProject.list.length === 0">
         <div class="j-img img-empty empty-img"></div>

+ 25 - 8
src/web/staticres/big-member/weixin/css/ent_portrait.css

@@ -42,6 +42,28 @@
 .van-sticky .van-tabs__line {
     display: none;
 }
+
+.tabs-container {
+    position: relative;
+}
+.transparent .tabs-item {
+    opacity: 0;
+}
+.tabs-container .tabs-list {
+    position: absolute;
+    left: 0;
+    top: 0;
+    width: 100%;
+    z-index: 2;
+}
+.tabs-list {
+    padding: 0 8px;
+}
+.tabs-container .tabs-item {
+    margin-bottom: .24rem;
+}
+
+.tabs-list .tabs-item,
 .van-sticky .van-tab {
     flex: none;
     display: inline-block;
@@ -57,6 +79,7 @@
 .van-sticky:not(.van-sticky--fixed) .van-tab {
     margin-bottom: .24rem;
 }
+.tabs-list .tabs-item.active,
 .van-sticky .van-tab--active {
     color: #fff!important;
     background-color: #2ABED1;
@@ -68,9 +91,6 @@
     flex-wrap: wrap;
     overflow: unset;
 }
-.van-sticky:not(.van-sticky--fixed) .van-tabs__wrap {
-    height: unset;
-}
 .van-sticky--fixed {
     border-bottom: 1px solid rgba(0, 0, 0, 0.05);
     box-shadow: 0px 2px 8px 0px rgba(54, 147, 179, 0.05);
@@ -82,11 +102,6 @@
     margin-top: .24rem;
 }
 
-/* 解决首个tab点击后,定位顶部空白问题 */
-.ent-tabs-container > div {
-    height: unset!important;
-    min-height: 50px;
-}
 .van-tabs__nav--line {
     padding-bottom: 4px;
 }
@@ -110,6 +125,8 @@
 }
 
 .ent-tabs-container .van-tabs__content {
+    margin-top: 24px;
+    position: relative;
     /* @extends  .j-main */
     flex: 1;
     overflow-y: scroll;

+ 19 - 1
src/web/staticres/common-module/collection/js/ent_portrait.js

@@ -170,6 +170,9 @@ var vNode = {
         topShow: true,
         dt: true
       },
+      pageState: {
+        transparent: false
+      },
       // 中标动态筛选条件缓存,也可以用来判断是否正在使用筛选项进行请求
       winnerHighSet: '',
       freeWinnerOpen: false,
@@ -1368,12 +1371,26 @@ var vNode = {
       var reqSign = url.indexOf('subVipPortrait') === -1 ? 'bigmember' : 'svip'
       location.href = '/big/wx/page/free_ent_project_news?eid=' + this.entInfo.id + '&reqSign=' + reqSign
     },
+    tabScroll: function (t) {
+      this.pageState.transparent = t.isFixed
+    },
+    // 修复因为van-sticky高度变化引起的锚点定位不准确问题
+    clickTab: function (item, index) {
+      // this.$refs.scrollspyTabs.scrollTo(item.name)
+      if (index > 0) {
+        this.pageState.transparent = true
+      }
+      this.$nextTick(function () {
+        $('.van-tabs__wrap .van-tab:eq('+index+')').trigger('click')
+      })
+    },
     savePageState: function () {
       this.scrollTop = $('#ent-portrait').scrollTop()
-      var scrollTopOffset = 10 // 滚动误差
+      var scrollTopOffset = 5 // 滚动误差
       var data = {
         conf: this.conf,
         tabActiveName: this.tabActiveName,
+        pageState: this.pageState,
         entInfo: this.entInfo,
         entBaseInfo: this.entBaseInfo,
         topProject: this.topProject,
@@ -1397,6 +1414,7 @@ var vNode = {
         }
         this.tabActiveName = $data.tabActiveName
         Object.assign(this.conf, $data.conf || {})
+        Object.assign(this.pageState, $data.pageState || {})
         Object.assign(this.entInfo, $data.entInfo || {})
         Object.assign(this.entBaseInfo, $data.entBaseInfo || {})
         Object.assign(this.topProject, $data.topProject || {})

+ 403 - 392
src/web/templates/frontRouter/wx/collection/sess/ent_portrait.html

@@ -134,424 +134,442 @@
             <van-loading v-if="!entInfo.followSearchFinish" size="24px"></van-loading>
             <forwardshare style="margin-left: .32rem;" :params="entParams" :show-text="false"></forwardshare>
         </div>
-        <van-tabs
-            class="ent-tabs-container"
-            v-model="tabActiveName"
-            sticky
-            scrollspy
-            swipe-threshold="4"
-            title-active-color="#2cb7ca"
-            title-inactive-color="#5F5E64"
-            line-width="0.48rem"
-            :offset-top="stickyTop">
-            <!-- 企业信息/工商信息 -->
-            <van-tab :name="moduleList[0].name" :title="moduleList[0].title">
-                <div class="module-container pb-12 ent-info-detail">
-                    <div class="module-title-container">
-                        <p class="module-title">工商信息</p>
-                    </div>
-                    <div class="bg-white tab-card"  v-if="!entBaseInfo._empty && entBaseInfo._loaded">
-                        <div class="card-row">
-                            <div class="card-column social-credit-code">
-                            <div class="ent-registration-label">统一社会信用代码</div>
-                            <div class="ent-registration-text">${entBaseInfo.creditNo ? entBaseInfo.creditNo : '-'}</div>
-                        </div>
-                        <div class="card-column organization-code">
-                            <div class="ent-info-label">联系方式</div>
-                            <div class="ent-info-text">${entBaseInfo.phone ? entBaseInfo.phone : '-'}</div>
-                        </div>
-                    </div>
-                    <div class="card-row">
-                        <div class="card-column registered-capital">
-                            <div class="ent-info-label">注册资本</div>
-                            <div class="ent-info-text">${entBaseInfo.capital ? entBaseInfo.capital+'万元' : '-'}</div>
-                        </div>
-                        <div class="card-column registered-capital">
-                            <div class="ent-info-label">法人姓名</div>
-                            <div class="ent-info-text">${entBaseInfo.legal ? entBaseInfo.legal : '-'}</div>
+        <section class="tabs-container">
+            <div class="tabs-list bg-white" :class="{ transparent: pageState.transparent }">
+                <div class="tabs-item"
+                    :class="{ active: tabActiveName === item.name }"
+                    @click="clickTab(item, index)"
+                    v-for="(item, index) in moduleList" :key="item.name">${ item.title }</div>
+            </div>
+            <van-tabs
+                class="ent-tabs-container"
+                ref="scrollspyTabs"
+                v-model="tabActiveName"
+                sticky
+                scrollspy
+                swipe-threshold="4"
+                title-active-color="#2cb7ca"
+                title-inactive-color="#5F5E64"
+                line-width="0.48rem"
+                @scroll="tabScroll"
+                :offset-top="stickyTop">
+                <!-- 企业信息/工商信息 -->
+                <van-tab :name="moduleList[0].name" :title="moduleList[0].title">
+                    <div class="module-container pb-12 ent-info-detail">
+                        <div class="module-title-container">
+                            <p class="module-title">工商信息</p>
                         </div>
-                    </div>
-                    <div class="card-row">
-                        <div class="card-column ent-establish">
-                            <div class="ent-info-label">成立日期</div>
-                            <div class="ent-info-text">
-                                ${(!entBaseInfo.establish || entBaseInfo.establish == -1) ? '-' : new
-                                Date(entBaseInfo.establish*1000).pattern('yyyy/MM/dd')}
+                        <div class="bg-white tab-card"  v-if="!entBaseInfo._empty && entBaseInfo._loaded">
+                            <div class="card-row">
+                                <div class="card-column social-credit-code">
+                                <div class="ent-registration-label">统一社会信用代码</div>
+                                <div class="ent-registration-text">${entBaseInfo.creditNo ? entBaseInfo.creditNo : '-'}</div>
                             </div>
-                        </div>
-                        <div class="card-column ent-status">
-                            <div class="ent-info-label">经营状态</div>
-                            <div class="ent-info-text">${entBaseInfo.status ? entBaseInfo.status : '-'}</div>
-                        </div>
-                    </div>
-                    <div v-if="!showBaseInfo" class="show-more" @click="showBaseInfo = true">查看更多</div>
-                    <div v-show="showBaseInfo" style="width: 100%;">
-                        <div class="card-row">
-                            <div class="card-column ent-type">
-                                <div class="ent-type-label">公司类型</div>
-                                <div class="ent-type-text">${entBaseInfo.type ? entBaseInfo.type : '-'}</div>
+                            <div class="card-column organization-code">
+                                <div class="ent-info-label">联系方式</div>
+                                <div class="ent-info-text">${entBaseInfo.phone ? entBaseInfo.phone : '-'}</div>
                             </div>
                         </div>
                         <div class="card-row">
-                            <div class="card-column ent-business-term">
-                                <div class="ent-business-term-label">营业期限</div>
-                                <div class="ent-business-term-text">
-                                <span>${entBaseInfo.operStart == -1 ? '-' : new
-                                    Date(entBaseInfo.operStart*1000).pattern('yyyy/MM/dd')}</span>
-                                <span> 至 </span>
-                                <span>${entBaseInfo.operEnd == -1 ? '-' : new
-                                    Date(entBaseInfo.operEnd*1000).pattern('yyyy/MM/dd')}</span>
-                                </div>
+                            <div class="card-column registered-capital">
+                                <div class="ent-info-label">注册资本</div>
+                                <div class="ent-info-text">${entBaseInfo.capital ? entBaseInfo.capital+'万元' : '-'}</div>
                             </div>
-                        </div>
-                        <div class="card-row">
-                            <div class="card-column tax-identification-number">
-                                <div class="ent-registration-label">纳税人识别号</div>
-                                <div class="ent-registration-text">${entBaseInfo.taxCode ? entBaseInfo.taxCode : '-'}</div>
+                            <div class="card-column registered-capital">
+                                <div class="ent-info-label">法人姓名</div>
+                                <div class="ent-info-text">${entBaseInfo.legal ? entBaseInfo.legal : '-'}</div>
                             </div>
                         </div>
                         <div class="card-row">
-                            <div class="card-column business-registration-number">
-                                <div class="ent-registration-label">工商注册号</div>
-                                <div class="ent-registration-text">${entBaseInfo.company_code ? entBaseInfo.company_code : '-'}</div>
+                            <div class="card-column ent-establish">
+                                <div class="ent-info-label">成立日期</div>
+                                <div class="ent-info-text">
+                                    ${(!entBaseInfo.establish || entBaseInfo.establish == -1) ? '-' : new
+                                    Date(entBaseInfo.establish*1000).pattern('yyyy/MM/dd')}
+                                </div>
                             </div>
-                        </div>
-                        <div class="card-row">
-                            <div class="card-column organization-code">
-                                <div class="ent-info-label">组织机构代码</div>
-                                <div class="ent-info-text">${entBaseInfo.org_code ? entBaseInfo.org_code : '-'}</div>
+                            <div class="card-column ent-status">
+                                <div class="ent-info-label">经营状态</div>
+                                <div class="ent-info-text">${entBaseInfo.status ? entBaseInfo.status : '-'}</div>
                             </div>
                         </div>
-                        <div class="card-row">
-                            <div class="card-column ent-employee">
-                                <div class="ent-info-label">人员规模(工商年报-参保人数,仅供参考)</div>
-                                <div class="ent-info-text">${entBaseInfo.employeeNo ? entBaseInfo.employeeNo : '-'}</div>
+                        <div v-if="!showBaseInfo" class="show-more" @click="showBaseInfo = true">查看更多</div>
+                        <div v-show="showBaseInfo" style="width: 100%;">
+                            <div class="card-row">
+                                <div class="card-column ent-type">
+                                    <div class="ent-type-label">公司类型</div>
+                                    <div class="ent-type-text">${entBaseInfo.type ? entBaseInfo.type : '-'}</div>
+                                </div>
                             </div>
-                        </div>
-                        <div class="card-row">
-                            <div class="card-column registered-capital">
-                                <div class="ent-info-label">注册地址</div>
-                                <div class="ent-info-text">${entBaseInfo.address ? entBaseInfo.address : '-'}</div>
+                            <div class="card-row">
+                                <div class="card-column ent-business-term">
+                                    <div class="ent-business-term-label">营业期限</div>
+                                    <div class="ent-business-term-text">
+                                    <span>${entBaseInfo.operStart == -1 ? '-' : new
+                                        Date(entBaseInfo.operStart*1000).pattern('yyyy/MM/dd')}</span>
+                                    <span> 至 </span>
+                                    <span>${entBaseInfo.operEnd == -1 ? '-' : new
+                                        Date(entBaseInfo.operEnd*1000).pattern('yyyy/MM/dd')}</span>
+                                    </div>
+                                </div>
                             </div>
-                        </div>
-                        <div class="card-row">
-                            <div class="card-column registered-capital">
-                                <div class="ent-info-label">经营范围</div>
-                                <div class="ent-info-text">${entBaseInfo.scope ? entBaseInfo.scope : '-'}</div>
+                            <div class="card-row">
+                                <div class="card-column tax-identification-number">
+                                    <div class="ent-registration-label">纳税人识别号</div>
+                                    <div class="ent-registration-text">${entBaseInfo.taxCode ? entBaseInfo.taxCode : '-'}</div>
+                                </div>
                             </div>
-                        </div>
-                    </div>
-                    </div>
-                    <div class="empty-container bg-white" v-if="entBaseInfo._empty && entBaseInfo._loaded">
-                        <div class="empty-content-position">
-                            <div class="image">
-                                <img src="/common-module/public/image/jy-back.png">
+                            <div class="card-row">
+                                <div class="card-column business-registration-number">
+                                    <div class="ent-registration-label">工商注册号</div>
+                                    <div class="ent-registration-text">${entBaseInfo.company_code ? entBaseInfo.company_code : '-'}</div>
+                                </div>
                             </div>
-                            <div class="empty-main tip-text2">暂无数据</div>
-                        </div>
-                    </div>
-                </div>
-            </van-tab>
-            <!-- 工商变动 -->
-            <van-tab :name="moduleList[1].name" :title="moduleList[1].title">
-                <div class="module-title-container bg-white tab-card ent-change-history" @click="goToEntHistory">
-                    <div class="module-title ent-change-l">
-                        <span>工商变动</span>
-                        <!-- <span class="module-title-num">10</span> -->
-                    </div>
-                    <div class="j-icon icon-back base-icon"></div>
-                </div>
-            </van-tab>
-            <!-- 企业通讯录 -->
-            <van-tab :name="moduleList[2].name" :title="moduleList[2].title">
-                <div v-if="!showContacts">
-                    <div style="background: #fff;padding: .24rem .32rem 0;">
-                        <span class="win-bid-title">企业通讯录</span>
-                    </div>
-                    <div class="vip_component" style="height:11.04rem;background:url('/common-module/collection/image/bg/vip_bg_9.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
-                        <vip-component :islogin="isLogin" data-cl-event="c_wx_free_buttonclick" @tabactive="tabActive" :power="conf" type="item_9" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_9.png?v={{Msg "seo" "version"}}'></vip-component>
-                    </div>
-                </div>
-                <div class="bg-white tab-card cell-list" v-else>
-                    <hispro-component ref="hispro" class="history-list" type="winner" :id="entInfo.id" :ent-name="entInfo.name"></hispro-component>
-                </div>
-            </van-tab>
-            <!-- 中标动态 -->
-            <van-tab :name="moduleList[3].name" :title="moduleList[3].title">
-                <div class="bg-white tab-card cell-list project-news">
-                    <div class="module-title-container bg-white project-news-module">
-                        <div class="module-title project-news-title">
-                            <span>中标动态</span>
-                            <!-- <span class="module-title-num">10</span> -->
-                        </div>
-                        <div class="action-group" v-if="conf._13" key="action-group">
-                            <div class="action-button export" @click="onExport" v-if="topProject.list.length">
-                                <i class="j-icon base-icon icon-download"></i>
-                                <em class="action-button-text">数据导出</em>
+                            <div class="card-row">
+                                <div class="card-column organization-code">
+                                    <div class="ent-info-label">组织机构代码</div>
+                                    <div class="ent-info-text">${entBaseInfo.org_code ? entBaseInfo.org_code : '-'}</div>
+                                </div>
                             </div>
-                            <div class="action-button filters-button" @click="goHighSet" v-if="!hideDt">
-                                <i class="j-icon base-icon icon-3hengxian"></i>
-                                <em class="action-button-text">筛选条件</em>
+                            <div class="card-row">
+                                <div class="card-column ent-employee">
+                                    <div class="ent-info-label">人员规模(工商年报-参保人数,仅供参考)</div>
+                                    <div class="ent-info-text">${entBaseInfo.employeeNo ? entBaseInfo.employeeNo : '-'}</div>
+                                </div>
                             </div>
-                        </div>
-                    </div>
-                    <div class="module-notice-tip">注:1个项目如同时发布了中标、成交、合同等结果类公告,则有多条数据</div>
-                    <div class="tab-card-content vip_component" v-if="hideDt"
-                        style="height:9.16rem;background:url('/common-module/collection/image/bg/vip_bg_1.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%"
-                        key="dt">
-                        <vip-component @tabactive="tabActive" :power="conf" type="item_1" :can-free-exp="canFreeExp" data-cl-event="c_wx_open_buttionclick"
-                                        :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
-                                        imgurl='/common-module/collection/image/bg/vip_ex_1.png?v={{Msg "seo" "version"}}'>
-                        </vip-component>
-                    </div>
-                    <div class="tab-card-content" key="dt" v-else>
-                        <ul class="project-info-list" v-show="topProject.list.length !== 0">
-                            <li class="project-info-item border-line-b clickable" :class="{ visited: item.visited }" v-for="(item,index) in topProject.list"
-                                @click="toProjectDetail(item)">
-                                <div class="head-group">
-                                    <p class="i_title visited-hd">${item.title}</p>
-                                    <span class="icon weishoucang" :class="idx.indexOf(item.id) >-1 ? 'shoucang' : 'weishoucang'" @click.stop="addKeepStatus(item)"></span>
+                            <div class="card-row">
+                                <div class="card-column registered-capital">
+                                    <div class="ent-info-label">注册地址</div>
+                                    <div class="ent-info-text">${entBaseInfo.address ? entBaseInfo.address : '-'}</div>
                                 </div>
-                                <div class="project-name" v-if="false">${item.title}</div>
-                                <div class="project-info">
-                                    <span class="tags">
-                                        <span class="tag tag-success" v-if="item.area">${item.area}</span>
-                                        <span class="tag tag-success" v-if="item.bidstatus">${item.bidstatus}</span>
-                                        <span class="tag tag-success" v-if="item.bidamount">${utils.moneyUnit(item.bidamount)}</span>
-                                    </span>
-                                    <span class="project-time">${item.firsttime ? new Date(item.firsttime * 1000).pattern('yyyy-MM-dd')
-                                    : '-'}</span>
+                            </div>
+                            <div class="card-row">
+                                <div class="card-column registered-capital">
+                                    <div class="ent-info-label">经营范围</div>
+                                    <div class="ent-info-text">${entBaseInfo.scope ? entBaseInfo.scope : '-'}</div>
                                 </div>
-                            </li>
-                            <li class="show-more clickable"
-                                v-if="topProject.showGetNextButton && (isMemberAndSvip || canFreeTrial) && topProject.count > 3"
-                                @click="goToFilterProjectNews">查看更多
-                            </li>
-                        </ul>
-                        <div class="empty-container bg-white" v-show="topProject.list.length === 0 && topProject.loaded">
+                            </div>
+                        </div>
+                        </div>
+                        <div class="empty-container bg-white" v-if="entBaseInfo._empty && entBaseInfo._loaded">
                             <div class="empty-content-position">
                                 <div class="image">
                                     <img src="/common-module/public/image/jy-back.png">
                                 </div>
-                                <div class="empty-main tip-text2">
-                                    <template v-if="winnerHighSet">
-                                        <p>对不起,没有匹配到相关信息,</p>
-                                        <p>修改时间范围或换个搜索词试试吧</p>
-                                    </template>
-                                    <template v-else>暂无数据</template>
-                                </div>
+                                <div class="empty-main tip-text2">暂无数据</div>
                             </div>
                         </div>
                     </div>
-                </div>
-            </van-tab>
-            <!-- 中标分析 -->
-            <van-tab :name="moduleList[4].name" :title="moduleList[4].title" class="zb-analysis-tab">
-                <!--免费用户体验-->
-                <!-- <div v-if="canFreeExp" class="freeExper">
-                    <p class="freeRemark">免费赠送1次【企业中标分析】权益体验机会!</p>
-                    <span @click="goExpAnalysis">去解锁</span>
-                </div> -->
-                <!-- 留完资的免费用户 已体验和未体验的展示去开通 -->
-                <div v-if="freeWinnerOpen" class="banner-sticky" ref="bannerRef">
-                    <!-- <van-sticky offset-top="33.67vw"> -->
-                        <img @click="goOpenVip" src="/big-member/image/winner-open.png" alt="">
-                    <!-- </van-sticky> -->
-                </div>
-                <div class="bg-white tab-card cell-list zb-analysis-module">
-                    <div class="module-title-container bg-white " ref="setRef">
-                        <div class="module-title zb-analysis-title">
-                        <span>中标分析</span>
-                         <!-- <span class="module-title-num">10</span> -->
+                </van-tab>
+                <!-- 工商变动 -->
+                <van-tab :name="moduleList[1].name" :title="moduleList[1].title">
+                    <div class="module-title-container bg-white tab-card ent-change-history" @click="goToEntHistory">
+                        <div class="module-title ent-change-l">
+                            <span>工商变动</span>
+                            <!-- <span class="module-title-num">10</span> -->
                         </div>
+                        <div class="j-icon icon-back base-icon"></div>
                     </div>
-                    <div class="module-notice-tip">注:以下分析统计已根据项目去重;分析条件同“中标动态”的筛选条件。</div>
-                </div>
-                <!-- 有权限,并且数据为空。则展示空状态 -->
-                <!-- <div class="jy-empty" v-show="allNot && !getStatus">
-                    <div class="jy-empty-img"></div>
-                    <p class="jy-empty-text">对不起,没有匹配到相关信息, <br>修改时间范围或换个搜索词试试吧</p>
-                </div> -->
-                <template v-if="!getStatus" key="zb-analysis-content">
-                    <div class="empty-container bg-white" key="zb-analysis-content" v-if="zbAnalysisEmpty">
-                        <div class="empty-content-position">
-                            <div class="image">
-                                <img src="/common-module/public/image/jy-back.png">
-                            </div>
-                            <p class="empty-main tip-text2">当前条件下暂无中标项目,无法进行中标分析</p>
+                </van-tab>
+                <!-- 企业通讯录 -->
+                <van-tab :name="moduleList[2].name" :title="moduleList[2].title">
+                    <div v-if="!showContacts">
+                        <div style="background: #fff;padding: .24rem .32rem 0;">
+                            <span class="win-bid-title">企业通讯录</span>
                         </div>
-                    </div>
-                    <!-- 数据部分 -->
-                    <div v-else class="module-chart-list">
-                        <div class="vip-ent-portrait-balance" v-if="showPortraitBalance">
-                            <span class="bid_surplus highlight-text">当月企业画像余额:${entvisit.total - entvisit.usage}个</span>
-                            <!-- v-if="isShowUpTip" -->
-                            <span class="j-button-confirm bid_upgrade" @click="portraitBalanceActionRight(portraitBalance)">${portraitBalance}</span>
+                        <div class="vip_component" style="height:11.04rem;background:url('/common-module/collection/image/bg/vip_bg_9.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
+                            <vip-component :islogin="isLogin" data-cl-event="c_wx_free_buttonclick" @tabactive="tabActive" :power="conf" type="item_9" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_9.png?v={{Msg "seo" "version"}}'></vip-component>
                         </div>
-                        <!-- 中标统计结果--登录 -->
-                        <div class="bg-white tab-card" data-cl-event="c_wx_open_buttionclick">
-                            <div class="tab-card-title" style="padding: 0.16rem .32rem .12rem;">概况</div>
-                            <div class="card-row zb-info">
-                                <div class="card-column">
-                                    <div class="ent-info-label">项目数量</div>
-                                    <div class="ent-info-text">${entPortraitInfo.project_count ? entPortraitInfo.project_count + '个' : '--'}</div>
-                                </div>
-                                <div class="card-column">
-                                    <div class="ent-info-label">项目金额</div>
-                                    <div class="ent-info-text">${entPortraitInfo.bidamount_count ? utils.moneyUnit(entPortraitInfo.bidamount_count) : '--'}</div>
-                                </div>
-                                <div class="card-column">
-                                    <div class="ent-info-label">项目省份</div>
-                                    <div class="ent-info-text">${entPortraitInfo.area_count ? entPortraitInfo.area_count + '个' : '--'}</div>
+                    </div>
+                    <div class="bg-white tab-card cell-list" v-else>
+                        <hispro-component ref="hispro" class="history-list" type="winner" :id="entInfo.id" :ent-name="entInfo.name"></hispro-component>
+                    </div>
+                </van-tab>
+                <!-- 中标动态 -->
+                <van-tab :name="moduleList[3].name" :title="moduleList[3].title">
+                    <div class="bg-white tab-card cell-list project-news">
+                        <div class="module-title-container bg-white project-news-module">
+                            <div class="module-title project-news-title">
+                                <span>中标动态</span>
+                                <!-- <span class="module-title-num">10</span> -->
+                            </div>
+                            <div class="action-group" v-if="conf._13" key="action-group">
+                                <div class="action-button export" @click="onExport" v-if="topProject.list.length">
+                                    <i class="j-icon base-icon icon-download"></i>
+                                    <em class="action-button-text">数据导出</em>
                                 </div>
-                                <div class="card-column">
-                                    <div class="ent-info-label">项目客户</div>
-                                    <div class="ent-info-text">${entPortraitInfo.buyer_count ? entPortraitInfo.buyer_count + '个' : '--'}</div>
+                                <div class="action-button filters-button" @click="goHighSet" v-if="!hideDt">
+                                    <i class="j-icon base-icon icon-3hengxian"></i>
+                                    <em class="action-button-text">筛选条件</em>
                                 </div>
                             </div>
-                            <div class="zb-time-frame border-line-t">
-                                <span>数据统计范围:</span>
-                                <span>${entPortraitInfo.timeRangeStart ? new Date(entPortraitInfo.timeRangeStart * 1000).pattern('yyyy/MM/dd') : ''}</span>
-                                <span>-</span>
-                                <span>${entPortraitInfo.timeRangeEnd ? new Date(entPortraitInfo.timeRangeEnd * 1000).pattern('yyyy/MM/dd') : '至今'}</span>
-                                <span>(结果类公告发布时间)</span>
-                            </div>
                         </div>
-                        <!-- 年度项目统计 -->
-                        <div class="bg-white tab-card charts" v-if="conf._4 && annualData.rows.length !== 0  && !getStatus">
-                            <div class="tab-card-title">年度项目统计</div>
-                            <!-- e-charts和sticky同时使用时候,需要手动降低css层级(z-index: 1),确保tooltip不遮挡固定定位头部 -->
-                            <div class="tab-card-content">
-                                <ve-histogram
-                                    height="284px"
-                                    :colors="colorGreen"
-                                    :data="annualData"
-                                    :init-options="initEchartsOptions"
-                                    :after-config="annualConfig"
-                                    :settings="annualSetting"
-                                    :extend="barChart.chartExtend">
-                                </ve-histogram>
-                            </div>
-                            <div class="tab-card-tip">注:项目金额指所有项目的中标金额之和,少数缺失的中标金额,用项目预算补充。</div>
+                        <div class="module-notice-tip">注:1个项目如同时发布了中标、成交、合同等结果类公告,则有多条数据</div>
+                        <div class="tab-card-content vip_component" v-if="hideDt"
+                            style="height:9.16rem;background:url('/common-module/collection/image/bg/vip_bg_1.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%"
+                            key="dt">
+                            <vip-component @tabactive="tabActive" :power="conf" type="item_1" :can-free-exp="canFreeExp" data-cl-event="c_wx_open_buttionclick"
+                                            :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
+                                            imgurl='/common-module/collection/image/bg/vip_ex_1.png?v={{Msg "seo" "version"}}'>
+                            </vip-component>
                         </div>
-                        <!-- 月度中标金额统计 -->
-                        <div class="bg-white tab-card charts"  v-if="conf._4 && monthZbData.rows.length !== 0  && !getStatus">
-                            <div class="tab-card-title">月度中标金额统计</div>
-                            <div class="tab-card-content">
-                                <ve-line
-                                    height="284px"
-                                    :data="monthZbData"
-                                    :init-options="initEchartsOptions"
-                                    :after-config="lineChartConfig"
-                                    :extend="chartOptions.lineChart">
-                                </ve-line>
+                        <div class="tab-card-content" key="dt" v-else>
+                            <ul class="project-info-list" v-show="topProject.list.length !== 0">
+                                <li class="project-info-item border-line-b clickable" :class="{ visited: item.visited }" v-for="(item,index) in topProject.list"
+                                    @click="toProjectDetail(item)">
+                                    <div class="head-group">
+                                        <p class="i_title visited-hd">${item.title}</p>
+                                        <span class="icon weishoucang" :class="idx.indexOf(item.id) >-1 ? 'shoucang' : 'weishoucang'" @click.stop="addKeepStatus(item)"></span>
+                                    </div>
+                                    <div class="project-name" v-if="false">${item.title}</div>
+                                    <div class="project-info">
+                                        <span class="tags">
+                                            <span class="tag tag-success" v-if="item.area">${item.area}</span>
+                                            <span class="tag tag-success" v-if="item.bidstatus">${item.bidstatus}</span>
+                                            <span class="tag tag-success" v-if="item.bidamount">${utils.moneyUnit(item.bidamount)}</span>
+                                        </span>
+                                        <span class="project-time">${item.firsttime ? new Date(item.firsttime * 1000).pattern('yyyy-MM-dd')
+                                        : '-'}</span>
+                                    </div>
+                                </li>
+                                <li class="show-more clickable"
+                                    v-if="topProject.showGetNextButton && (isMemberAndSvip || canFreeTrial) && topProject.count > 3"
+                                    @click="goToFilterProjectNews">查看更多
+                                </li>
+                            </ul>
+                            <div class="empty-container bg-white" v-show="topProject.list.length === 0 && topProject.loaded">
+                                <div class="empty-content-position">
+                                    <div class="image">
+                                        <img src="/common-module/public/image/jy-back.png">
+                                    </div>
+                                    <div class="empty-main tip-text2">
+                                        <template v-if="winnerHighSet">
+                                            <p>对不起,没有匹配到相关信息,</p>
+                                            <p>修改时间范围或换个搜索词试试吧</p>
+                                        </template>
+                                        <template v-else>暂无数据</template>
+                                    </div>
+                                </div>
                             </div>
-                            <div class="tab-card-tip">注:少数缺失的中标金额,用项目预算补充。</div>
                         </div>
-                        <!-- 市场区域分布 -->
-                        <div class="bg-white tab-card charts" v-if="conf._4 && mapChartData.rows.length !== 0  && !getStatus">
-                            <div class="tab-card-title">市场区域分布</div>
-                            <div class="tab-card-content">
-                                <ve-map
-                                    height="400px"
-                                    :data="mapChartData"
-                                    :init-options="initEchartsOptions"
-                                    :after-config="mapConfig"
-                                    :settings="mapSettings.chartSettings"
-                                    :extend="mapSettings.chartExtend">
-                                </ve-map>
+                    </div>
+                </van-tab>
+                <!-- 中标分析 -->
+                <van-tab :name="moduleList[4].name" :title="moduleList[4].title" class="zb-analysis-tab">
+                    <!--免费用户体验-->
+                    <!-- <div v-if="canFreeExp" class="freeExper">
+                        <p class="freeRemark">免费赠送1次【企业中标分析】权益体验机会!</p>
+                        <span @click="goExpAnalysis">去解锁</span>
+                    </div> -->
+                    <!-- 留完资的免费用户 已体验和未体验的展示去开通 -->
+                    <div v-if="freeWinnerOpen" class="banner-sticky" ref="bannerRef">
+                        <!-- <van-sticky offset-top="33.67vw"> -->
+                            <img @click="goOpenVip" src="/big-member/image/winner-open.png" alt="">
+                        <!-- </van-sticky> -->
+                    </div>
+                    <div class="bg-white tab-card cell-list zb-analysis-module">
+                        <div class="module-title-container bg-white " ref="setRef">
+                            <div class="module-title zb-analysis-title">
+                            <span>中标分析</span>
+                            <!-- <span class="module-title-num">10</span> -->
                             </div>
                         </div>
-                        <!-- 各类客户平均折扣率 -->
-                        <div class="bg-white tab-card charts"  v-if="conf._4 && rateData.rows.length !== 0  && !getStatus">
-                            <div class="tab-card-title">各类客户平均折扣率</div>
-                            <div class="tab-card-content">
-                                <ve-line
-                                    height="314px"
-                                    :data="rateData"
-                                    :init-options="initEchartsOptions"
-                                    :after-config="rateConfig"
-                                    :extend="chartOptions.lineChart">
-                                </ve-line>
+                        <div class="module-notice-tip">注:以下分析统计已根据项目去重;分析条件同“中标动态”的筛选条件。</div>
+                    </div>
+                    <!-- 有权限,并且数据为空。则展示空状态 -->
+                    <!-- <div class="jy-empty" v-show="allNot && !getStatus">
+                        <div class="jy-empty-img"></div>
+                        <p class="jy-empty-text">对不起,没有匹配到相关信息, <br>修改时间范围或换个搜索词试试吧</p>
+                    </div> -->
+                    <template v-if="!getStatus" key="zb-analysis-content">
+                        <div class="empty-container bg-white" key="zb-analysis-content" v-if="zbAnalysisEmpty">
+                            <div class="empty-content-position">
+                                <div class="image">
+                                    <img src="/common-module/public/image/jy-back.png">
+                                </div>
+                                <p class="empty-main tip-text2">当前条件下暂无中标项目,无法进行中标分析</p>
                             </div>
-                            <div class="tab-card-tip">注:平均折扣率=(全部项目预算-全部中标金额)/全部项目预算,是指价格减让部分与原价的比率,仅统计预算和中标金额同时存在的项目。</div>
                         </div>
-                        <!-- 客户类型分布 -->
-                        <div class="bg-white tab-card charts"  v-show="conf._4 && entPortraitInfo.top10 && entPortraitInfo.top10.length != 0  && !getStatus">
-                            <div class="tab-card-title">客户类型分布</div>
-                            <div class="tab-card-content">
-                                <div ref="pieChart" style="height: 360px;width: 320px;margin: 0 auto;"></div>
+                        <!-- 数据部分 -->
+                        <div v-else class="module-chart-list">
+                            <div class="vip-ent-portrait-balance" v-if="showPortraitBalance">
+                                <span class="bid_surplus highlight-text">当月企业画像余额:${entvisit.total - entvisit.usage}个</span>
+                                <!-- v-if="isShowUpTip" -->
+                                <span class="j-button-confirm bid_upgrade" @click="portraitBalanceActionRight(portraitBalance)">${portraitBalance}</span>
                             </div>
-                            <div class="tab-card-tip">注:各客户类型占比以中标金额计算,最多展示占比排名前十的客户类型。</div>
-                        </div>
-                        <!-- 重点及首次合作客户 -->
-                        <div class="bg-white tab-card customers client"  v-show="conf._4 && importantCustomers.length !== 0  && !getStatus">
-                            <div class="tab-card-title">重点及首次合作客户</div>
-                            <div class="tab-card-content">
-                            <div class="client-list" v-for="c in importantCustomers">
-                                <div class="c-top">
-                                    <strong class="c-itemName">${c.title}</strong>
-                                    <div class="top-switch">
-                                        <div :class="{active: !c.showLabels}" @click="c.showLabels=false">重点客户</div>
-                                        <div :class="{active: c.showLabels}" @click="c.showLabels=true">首次合作客户</div>
+                            <!-- 中标统计结果--登录 -->
+                            <div class="bg-white tab-card" data-cl-event="c_wx_open_buttionclick">
+                                <div class="tab-card-title" style="padding: 0.16rem .32rem .12rem;">概况</div>
+                                <div class="card-row zb-info">
+                                    <div class="card-column">
+                                        <div class="ent-info-label">项目数量</div>
+                                        <div class="ent-info-text">${entPortraitInfo.project_count ? entPortraitInfo.project_count + '个' : '--'}</div>
                                     </div>
-                                </div>
-                                <div class="progress-bar-container" v-show="!c.showLabels">
-                                    <div class="c-thead">
-                                        <strong class="c-name">客户名称</strong>
-                                        <span class="c-count">中标数量</span>
-                                        <span class="c-rate">平均折扣率</span>
-                                        <span class="c-time">最近合作日期</span>
+                                    <div class="card-column">
+                                        <div class="ent-info-label">项目金额</div>
+                                        <div class="ent-info-text">${entPortraitInfo.bidamount_count ? utils.moneyUnit(entPortraitInfo.bidamount_count) : '--'}</div>
                                     </div>
-                                    <div class="progress-bar-item" v-for="(item,index) in c.list" :key="index" v-show="item.name">
-                                        <div class="item-label">
-                                            <span class="ellipsis-2 item-name" @click="toUnitPortrayal(item)">${item.name}</span>
-                                            <span class="item-count">${item.count ? item.count + '个' : item.count}</span>
-                                            <span class="item-rate">${(item.rate != null) ? item.rate + '%' : '--'}</span>
-                                            <span class="item-time">${item.time}</span>
-                                        </div>
-                                        <div class="item-progress">
-                                            <span class="item-money" v-if="item.money > 0">${utils.moneyUnit(item.money)}</span>
-                                            <span class="item-progress-count active-progress" :style="{width: item.percent}"></span>
-                                        </div>
+                                    <div class="card-column">
+                                        <div class="ent-info-label">项目省份</div>
+                                        <div class="ent-info-text">${entPortraitInfo.area_count ? entPortraitInfo.area_count + '个' : '--'}</div>
+                                    </div>
+                                    <div class="card-column">
+                                        <div class="ent-info-label">项目客户</div>
+                                        <div class="ent-info-text">${entPortraitInfo.buyer_count ? entPortraitInfo.buyer_count + '个' : '--'}</div>
                                     </div>
                                 </div>
-                                <div class="progress-bar-container" v-show="c.showLabels">
-                                    <div v-if="c.firstList&&c.firstList.length>0">
-                                    <div class="c-thead">
-                                        <strong class="c-name">客户名称</strong>
-                                        <span class="c-count">中标数量</span>
-                                        <span class="c-rate">平均折扣率</span>
-                                        <span class="c-time">最近合作日期</span>
+                                <div class="zb-time-frame border-line-t">
+                                    <span>数据统计范围:</span>
+                                    <span>${entPortraitInfo.timeRangeStart ? new Date(entPortraitInfo.timeRangeStart * 1000).pattern('yyyy/MM/dd') : ''}</span>
+                                    <span>-</span>
+                                    <span>${entPortraitInfo.timeRangeEnd ? new Date(entPortraitInfo.timeRangeEnd * 1000).pattern('yyyy/MM/dd') : '至今'}</span>
+                                    <span>(结果类公告发布时间)</span>
+                                </div>
+                            </div>
+                            <!-- 年度项目统计 -->
+                            <div class="bg-white tab-card charts" v-if="conf._4 && annualData.rows.length !== 0  && !getStatus">
+                                <div class="tab-card-title">年度项目统计</div>
+                                <!-- e-charts和sticky同时使用时候,需要手动降低css层级(z-index: 1),确保tooltip不遮挡固定定位头部 -->
+                                <div class="tab-card-content">
+                                    <ve-histogram
+                                        height="284px"
+                                        :colors="colorGreen"
+                                        :data="annualData"
+                                        :init-options="initEchartsOptions"
+                                        :after-config="annualConfig"
+                                        :settings="annualSetting"
+                                        :extend="barChart.chartExtend">
+                                    </ve-histogram>
+                                </div>
+                                <div class="tab-card-tip">注:项目金额指所有项目的中标金额之和,少数缺失的中标金额,用项目预算补充。</div>
+                            </div>
+                            <!-- 月度中标金额统计 -->
+                            <div class="bg-white tab-card charts"  v-if="conf._4 && monthZbData.rows.length !== 0  && !getStatus">
+                                <div class="tab-card-title">月度中标金额统计</div>
+                                <div class="tab-card-content">
+                                    <ve-line
+                                        height="284px"
+                                        :data="monthZbData"
+                                        :init-options="initEchartsOptions"
+                                        :after-config="lineChartConfig"
+                                        :extend="chartOptions.lineChart">
+                                    </ve-line>
+                                </div>
+                                <div class="tab-card-tip">注:少数缺失的中标金额,用项目预算补充。</div>
+                            </div>
+                            <!-- 市场区域分布 -->
+                            <div class="bg-white tab-card charts" v-if="conf._4 && mapChartData.rows.length !== 0  && !getStatus">
+                                <div class="tab-card-title">市场区域分布</div>
+                                <div class="tab-card-content">
+                                    <ve-map
+                                        height="400px"
+                                        :data="mapChartData"
+                                        :init-options="initEchartsOptions"
+                                        :after-config="mapConfig"
+                                        :settings="mapSettings.chartSettings"
+                                        :extend="mapSettings.chartExtend">
+                                    </ve-map>
+                                </div>
+                            </div>
+                            <!-- 各类客户平均折扣率 -->
+                            <div class="bg-white tab-card charts"  v-if="conf._4 && rateData.rows.length !== 0  && !getStatus">
+                                <div class="tab-card-title">各类客户平均折扣率</div>
+                                <div class="tab-card-content">
+                                    <ve-line
+                                        height="314px"
+                                        :data="rateData"
+                                        :init-options="initEchartsOptions"
+                                        :after-config="rateConfig"
+                                        :extend="chartOptions.lineChart">
+                                    </ve-line>
+                                </div>
+                                <div class="tab-card-tip">注:平均折扣率=(全部项目预算-全部中标金额)/全部项目预算,是指价格减让部分与原价的比率,仅统计预算和中标金额同时存在的项目。</div>
+                            </div>
+                            <!-- 客户类型分布 -->
+                            <div class="bg-white tab-card charts"  v-show="conf._4 && entPortraitInfo.top10 && entPortraitInfo.top10.length != 0  && !getStatus">
+                                <div class="tab-card-title">客户类型分布</div>
+                                <div class="tab-card-content">
+                                    <div ref="pieChart" style="height: 360px;width: 320px;margin: 0 auto;"></div>
+                                </div>
+                                <div class="tab-card-tip">注:各客户类型占比以中标金额计算,最多展示占比排名前十的客户类型。</div>
+                            </div>
+                            <!-- 重点及首次合作客户 -->
+                            <div class="bg-white tab-card customers client"  v-show="conf._4 && importantCustomers.length !== 0  && !getStatus">
+                                <div class="tab-card-title">重点及首次合作客户</div>
+                                <div class="tab-card-content">
+                                <div class="client-list" v-for="c in importantCustomers">
+                                    <div class="c-top">
+                                        <strong class="c-itemName">${c.title}</strong>
+                                        <div class="top-switch">
+                                            <div :class="{active: !c.showLabels}" @click="c.showLabels=false">重点客户</div>
+                                            <div :class="{active: c.showLabels}" @click="c.showLabels=true">首次合作客户</div>
+                                        </div>
                                     </div>
-                                    <div class="progress-bar-item" v-for="(item,index) in c.firstList" :key="index" v-show="item.name">
-                                        <div class="item-label">
-                                            <span class="ellipsis-2 item-name" @click="toUnitPortrayal(item)">${item.name}</span>
-                                            <span class="item-count">${item.count ? item.count + '个' : item.count}</span>
-                                            <span class="item-rate">${(item.rate != null) ? item.rate + '%' : '--'}</span>
-                                            <span class="item-time">${item.time}</span>
+                                    <div class="progress-bar-container" v-show="!c.showLabels">
+                                        <div class="c-thead">
+                                            <strong class="c-name">客户名称</strong>
+                                            <span class="c-count">中标数量</span>
+                                            <span class="c-rate">平均折扣率</span>
+                                            <span class="c-time">最近合作日期</span>
                                         </div>
-                                        <div class="item-progress">
-                                            <span class="item-money" v-if="item.money > 0">${utils.moneyUnit(item.money)}</span>
-                                            <span class="item-progress-count active-progress" :style="{width: item.percent}"></span>
+                                        <div class="progress-bar-item" v-for="(item,index) in c.list" :key="index" v-show="item.name">
+                                            <div class="item-label">
+                                                <span class="ellipsis-2 item-name" @click="toUnitPortrayal(item)">${item.name}</span>
+                                                <span class="item-count">${item.count ? item.count + '个' : item.count}</span>
+                                                <span class="item-rate">${(item.rate != null) ? item.rate + '%' : '--'}</span>
+                                                <span class="item-time">${item.time}</span>
+                                            </div>
+                                            <div class="item-progress">
+                                                <span class="item-money" v-if="item.money > 0">${utils.moneyUnit(item.money)}</span>
+                                                <span class="item-progress-count active-progress" :style="{width: item.percent}"></span>
+                                            </div>
                                         </div>
                                     </div>
-                                    </div>
-                                    <div v-else style="display:flex;flex-direction:column;justify-content:center;align-items:center;padding:.4rem;">
-                                        <div style="height:4rem;width:4rem;background:url('/common-module/collection/image/jy-back.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%"></div>
-                                        <span style="font-size: .28rem;line-height: 20px;color: #9B9CA3;">该时间范围暂无首次合作过的客户</span>
+                                    <div class="progress-bar-container" v-show="c.showLabels">
+                                        <div v-if="c.firstList&&c.firstList.length>0">
+                                        <div class="c-thead">
+                                            <strong class="c-name">客户名称</strong>
+                                            <span class="c-count">中标数量</span>
+                                            <span class="c-rate">平均折扣率</span>
+                                            <span class="c-time">最近合作日期</span>
+                                        </div>
+                                        <div class="progress-bar-item" v-for="(item,index) in c.firstList" :key="index" v-show="item.name">
+                                            <div class="item-label">
+                                                <span class="ellipsis-2 item-name" @click="toUnitPortrayal(item)">${item.name}</span>
+                                                <span class="item-count">${item.count ? item.count + '个' : item.count}</span>
+                                                <span class="item-rate">${(item.rate != null) ? item.rate + '%' : '--'}</span>
+                                                <span class="item-time">${item.time}</span>
+                                            </div>
+                                            <div class="item-progress">
+                                                <span class="item-money" v-if="item.money > 0">${utils.moneyUnit(item.money)}</span>
+                                                <span class="item-progress-count active-progress" :style="{width: item.percent}"></span>
+                                            </div>
+                                        </div>
+                                        </div>
+                                        <div v-else style="display:flex;flex-direction:column;justify-content:center;align-items:center;padding:.4rem;">
+                                            <div style="height:4rem;width:4rem;background:url('/common-module/collection/image/jy-back.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%"></div>
+                                            <span style="font-size: .28rem;line-height: 20px;color: #9B9CA3;">该时间范围暂无首次合作过的客户</span>
+                                        </div>
                                     </div>
                                 </div>
-                            </div>
+                                </div>
                             </div>
                         </div>
-                    </div>
-                </template>
-                <div class="module-mask-list" v-if="getStatus">
-                    <!-- 中标信息统计结果--未登录-->
-                    <!-- <div class="bg-white tab-card charts"  style="margin-bottom: 10px;" v-if="isFreeOrNotLogin">
-                        <div class="tab-card-title">概况</div>
-                        <div class="vip_component" v-if="getStatus && hideDt"
+                    </template>
+                    <div class="module-mask-list" v-if="getStatus">
+                        <!-- 中标信息统计结果--未登录-->
+                        <!-- <div class="bg-white tab-card charts"  style="margin-bottom: 10px;" v-if="isFreeOrNotLogin">
+                            <div class="tab-card-title">概况</div>
+                            <div class="vip_component" v-if="getStatus && hideDt"
+                                style="height:7.8rem;background:url('/common-module/collection/image/bg/qy-zbtj-bg.png?v={{Msg "seo" "version"}}') 40% 0 no-repeat;background-size:110% 100%;"
+                                key="dt">
+                                <vip-component @tabactive="tabActive" :power="conf" type="item_10" :can-free-exp="canFreeExp"
+                                            :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
+                                            imgurl='/common-module/collection/image/bg/qy-zbtj.png?v={{Msg "seo" "version"}}'>
+                                </vip-component>
+                            </div>
+                        </div> -->
+                        <div class="vip_component" v-if="getStatus"
                             style="height:7.8rem;background:url('/common-module/collection/image/bg/qy-zbtj-bg.png?v={{Msg "seo" "version"}}') 40% 0 no-repeat;background-size:110% 100%;"
                             key="dt">
                             <vip-component @tabactive="tabActive" :power="conf" type="item_10" :can-free-exp="canFreeExp"
@@ -559,36 +577,29 @@
                                         imgurl='/common-module/collection/image/bg/qy-zbtj.png?v={{Msg "seo" "version"}}'>
                             </vip-component>
                         </div>
-                    </div> -->
-                    <div class="vip_component" v-if="getStatus"
-                        style="height:7.8rem;background:url('/common-module/collection/image/bg/qy-zbtj-bg.png?v={{Msg "seo" "version"}}') 40% 0 no-repeat;background-size:110% 100%;"
-                        key="dt">
-                        <vip-component @tabactive="tabActive" :power="conf" type="item_10" :can-free-exp="canFreeExp"
-                                    :entvisit="entvisit" :newvip="isVip" :islogin="isLogin"
-                                    imgurl='/common-module/collection/image/bg/qy-zbtj.png?v={{Msg "seo" "version"}}'>
-                        </vip-component>
-                    </div>
-                    <div class="vip_component" v-if="getStatus" style="height:11.12rem;background:url('/common-module/collection/image/bg/vip_bg_2.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
-                        <vip-component :islogin="isLogin" data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_2" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_2.png?v={{Msg "seo" "version"}}'></vip-component>
-                    </div>
-                    <div class="vip_component" v-if="getStatus" style="height:10.8rem;background:url('/common-module/collection/image/bg/vip_bg_3.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
-                        <vip-component :islogin="isLogin" data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_3" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_3.png?v={{Msg "seo" "version"}}'></vip-component>
-                    </div>
-                    <div class="vip_component" v-if="getStatus" style="height:10.56rem;background:url('/common-module/collection/image/bg/vip_bg_4.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
-                        <vip-component :islogin="isLogin" data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_4" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_4.png?v={{Msg "seo" "version"}}'></vip-component>
-                    </div>
-                    <div class="vip_component" v-if="getStatus" style="height:11.24rem;background:url('/common-module/collection/image/bg/vip_bg_5.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
-                        <vip-component :islogin="isLogin" data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_5" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_5.png?v={{Msg "seo" "version"}}'></vip-component>
-                    </div>
-                    <div class="vip_component" v-if="getStatus" style="height:11.92rem;background:url('/common-module/collection/image/bg/vip_bg_6.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
-                        <vip-component :islogin="isLogin" data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_6" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_6.png?v={{Msg "seo" "version"}}'></vip-component>
-                    </div>
-                    <div class="vip_component" v-if="getStatus" style="height:10.8rem;background:url('/common-module/collection/image/bg/vip_bg_7.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
-                        <vip-component :islogin="isLogin" data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_7" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_7.png?v={{Msg "seo" "version"}}'></vip-component>
+                        <div class="vip_component" v-if="getStatus" style="height:11.12rem;background:url('/common-module/collection/image/bg/vip_bg_2.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
+                            <vip-component :islogin="isLogin" data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_2" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_2.png?v={{Msg "seo" "version"}}'></vip-component>
+                        </div>
+                        <div class="vip_component" v-if="getStatus" style="height:10.8rem;background:url('/common-module/collection/image/bg/vip_bg_3.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
+                            <vip-component :islogin="isLogin" data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_3" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_3.png?v={{Msg "seo" "version"}}'></vip-component>
+                        </div>
+                        <div class="vip_component" v-if="getStatus" style="height:10.56rem;background:url('/common-module/collection/image/bg/vip_bg_4.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
+                            <vip-component :islogin="isLogin" data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_4" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_4.png?v={{Msg "seo" "version"}}'></vip-component>
+                        </div>
+                        <div class="vip_component" v-if="getStatus" style="height:11.24rem;background:url('/common-module/collection/image/bg/vip_bg_5.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
+                            <vip-component :islogin="isLogin" data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_5" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_5.png?v={{Msg "seo" "version"}}'></vip-component>
+                        </div>
+                        <div class="vip_component" v-if="getStatus" style="height:11.92rem;background:url('/common-module/collection/image/bg/vip_bg_6.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
+                            <vip-component :islogin="isLogin" data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_6" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_6.png?v={{Msg "seo" "version"}}'></vip-component>
+                        </div>
+                        <div class="vip_component" v-if="getStatus" style="height:10.8rem;background:url('/common-module/collection/image/bg/vip_bg_7.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
+                            <vip-component :islogin="isLogin" data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_7" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_7.png?v={{Msg "seo" "version"}}'></vip-component>
+                        </div>
                     </div>
-                </div>
-            </van-tab>
-        </van-tabs>
+                </van-tab>
+            </van-tabs>
+        </section>
+        
         <div class="j-main project-tab-container" v-if="conf.powerLoaded && !conf.showPortraitAll">
             <div class="j-container empty" v-show="topProject.list.length === 0">
                 <div class="j-img img-empty empty-img"></div>