Browse Source

feat:各报告需求开发

tsz 2 years ago
parent
commit
1d1e678f27

+ 25 - 0
src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/report_detail_month.css

@@ -124,6 +124,13 @@
     -webkit-transform: scaleY(0.5);
     transform: scaleY(0.5);
 }
+.current-list.current-list-new .item-double {
+  margin-top: .16rem;
+}
+.current-list.current-list-new .item-double .item-single {
+  flex-direction: inherit;
+  align-items: center;
+}
 .win-name{
     display: flex;
     align-items: center;
@@ -198,4 +205,22 @@
   background: linear-gradient(270.04deg, #25BEEE 0.03%, #2ABED1 74.46%);;
   width: .48rem;
   border-radius: .02rem;
+}
+
+.ellipsis{
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+.ellipsis-2{
+  overflow: hidden;
+  text-overflow: ellipsis;
+  display: -webkit-box;
+  -webkit-line-clamp: 2;
+  -webkit-box-orient: vertical;
+  word-break: break-all;
+}
+
+.addlink{
+  text-decoration: underline;
 }

+ 37 - 4
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/report_detail_month.js

@@ -130,6 +130,7 @@ var vNode = {
         bigStatus: 0,
         tabActive: '0',
         projectInfo: {},
+        detailInfo: {},
         vanlistParams: {
           loading: false,
           finished: false
@@ -141,6 +142,8 @@ var vNode = {
           start: parseInt(utils.getParam('start')),
           end: parseInt(utils.getParam('end'))
         },
+        filterData: {},
+        stickyOffset: 0
     },
     computed: {
         showCurMonthCount: function () {
@@ -162,7 +165,8 @@ var vNode = {
             return this.buyerTop.showAll ? this.buyerTop.list : this.buyerTop.list.slice(0,5)
         },
         showEntWinTop: function () {
-            return this.curMonthEntWin.showAll ? this.curMonthEntWin.list : this.curMonthEntWin.list.slice(0,3)
+            const num = this.detailInfo.isNewData ? 5 : 3
+            return this.curMonthEntWin.showAll ? this.curMonthEntWin.list : this.curMonthEntWin.list.slice(0,num)
         },
         showScaleWin: function () {
             return this.curMonthScaleWin.showAll ? this.curMonthScaleWin.list : this.curMonthScaleWin.list.slice(0,3)
@@ -184,19 +188,34 @@ var vNode = {
         }
         setTimeout(() => {
             this.reStoreState()
-        
         }, 500);
         utils.iosBackRefresh()
+        const observer = new IntersectionObserver(this.handleIntersection, {
+          root: null, // 默认为浏览器视窗
+          threshold: 0, // 交叉比例,0为完全进入视窗
+        });
+        observer.observe(this.$refs.reportSource)
     },
     methods: {
+      handleIntersection(entries) {
+        entries.forEach((entry) => {
+          // 元素不可见
+          if (!entry.isIntersecting) {
+            this.calcStickyOffset()
+          }
+        })
+      },
       // 点击项目
       setLinkUrl () {
+        this.saveScrollTop()
         location.href = '/jyapp/big/page/pro_follow_detail'
       },
       setBuyerLink (data) {
+        this.saveScrollTop()
         location.href = '/jyapp/big/page/unit_portrayal?entName=' + data.buyer
       },
       setWinnerLink (id) {
+        this.saveScrollTop()
         location.href = '/jyapp/big/page/ent_portrait?eId=' + id
       },
       // 设置排序方式
@@ -234,12 +253,12 @@ var vNode = {
           success: function(res) {
             this.vanlistParams.loading = false
             if (res && res.error_code === 0 && res.data) {
+              res.data.total = res.data.total > 5000 ? 5000 : res.data.total
               if (this.listParams.pageNum === 1) {
                 this.projectInfo = res.data
               } else {
                 this.projectInfo.list = this.projectInfo.list.concat(res.data.list)
               }
-              res.data.total = res.data.total > 5000 ? 5000 : res.data.total
               const pageTotalNum = res.data.total / this.listParams.pageSize
               const pageResidue = res.data.total % this.listParams.pageSize
               if (pageResidue > 0) {
@@ -264,6 +283,12 @@ var vNode = {
           }.bind(this)
         })
       },
+      calcStickyOffset: function () {
+        setTimeout(function () {
+          var headerHeight = $('.jy-app-header')[0].clientHeight
+          this.stickyOffset = headerHeight - 2
+        }.bind(this), 100)
+      },
       saveScrollTop: function () {
         var wrapper = document.querySelector('.j-container .j-main')
         if (wrapper.scrollTop) {
@@ -340,6 +365,9 @@ var vNode = {
                     case 'count':
                         v.parent = v.count / data[0].count*100 + "%";
                         break;
+                    case 'project_count':
+                      v.parent = v.project_count / data[0].project_count*100 + "%";
+                      break;
                     case 'scale':
                         v.bidamount = v.bidamount.fixed(2);
                         v.parent = v.bidamount / data[0].bidamount*100 + "%";
@@ -466,6 +494,7 @@ var vNode = {
                     // console.log(res)
                     if(res.error_code == 0 && res.data) {
                         // 关键词组
+                        that.detailInfo = res.data
                         if(res.data.item && res.data.item.length > 0 && res.data.item.toString() != '') {
                             that.keywords = res.data.item.join('、')
                             that.keywordsList = res.data.item
@@ -638,7 +667,11 @@ var vNode = {
                         }
                         // 本月中标企业排行榜 14
                         if(res.data.winner && res.data.winner.length >0) {
-                            that.curMonthEntWin.list = res.data.winner;
+                            if(res.data.isNewData) {
+                              that.curMonthEntWin.list = that.formatterWinData(res.data.winner, 'project_count')
+                            } else {
+                              that.curMonthEntWin.list = res.data.winner;
+                            }
                             that.isShow.show_14 = true;
                         } else {
                             that.isShow.show_14 = false;

+ 33 - 11
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/report_detail_week.js

@@ -57,6 +57,7 @@ var vNode = {
         },
         tabActive: '0',
         projectInfo: {},
+        detailInfo: {},
         vanlistParams: {
           loading: false,
           finished: false
@@ -68,7 +69,8 @@ var vNode = {
           start: parseInt(utils.getParam('start')),
           end: parseInt(utils.getParam('end'))
         },
-        filterData: {}
+        filterData: {},
+        stickyOffset: 0
     },
     computed: {
         amountWinArr: function () {
@@ -83,9 +85,34 @@ var vNode = {
     mounted() {
         this.getUserPower()
         this.getAllChartsData()
+        const observer = new IntersectionObserver(this.handleIntersection, {
+          root: null, // 默认为浏览器视窗
+          threshold: 0, // 交叉比例,0为完全进入视窗
+        });
+        observer.observe(this.$refs.reportSource)
     },
     methods: {
-      setLinkUrl () {
+      handleIntersection(entries) {
+        entries.forEach((entry) => {
+          // 元素不可见
+          if (!entry.isIntersecting) {
+            this.calcStickyOffset()
+          }
+        })
+      },
+      calcStickyOffset: function () {
+        setTimeout(function () {
+          var headerHeight = $('.jy-app-header')[0].clientHeight
+          this.stickyOffset = headerHeight - 2
+        }.bind(this), 100)
+      },
+      setLinkUrl (data) {
+        if(data) {
+          const params = {
+            sid: data.id
+          }
+          sessionStorage.setItem('bigvip-fid', JSON.stringify(params))
+        }
         location.href = '/jyapp/big/page/pro_follow_detail'
       },
       setBuyerLink (data) {
@@ -129,12 +156,12 @@ var vNode = {
           success: function(res) {
             this.vanlistParams.loading = false
             if (res && res.error_code === 0 && res.data) {
+              res.data.total = res.data.total > 5000 ? 5000 : res.data.total
               if (this.listParams.pageNum === 1) {
                 this.projectInfo = res.data
               } else {
                 this.projectInfo.list = this.projectInfo.list.concat(res.data.list)
               }
-              res.data.total = res.data.total > 5000 ? 5000 : res.data.total
               const pageTotalNum = res.data.total / this.listParams.pageSize
               const pageResidue = res.data.total % this.listParams.pageSize
               if (pageResidue > 0) {
@@ -207,7 +234,8 @@ var vNode = {
                 },
                 success:function(res) {
                     // console.log(res)
-                    if(res.error_code == 0) {
+                    if(res.error_code == 0 && res.data) {
+                        that.detailInfo = res.data
                         if(res.data.item && res.data.item.length > 0 && res.data.item.toString() != '') {
                             that.keywords = res.data.item.join('、')
                             that.keywordsList = res.data.item
@@ -274,14 +302,8 @@ var vNode = {
                         } else {
                             that.showScale = false
                         }
-                        // 项目金额排行榜
+                        // 本周项目规模排行榜TOP30
                         if(res.data.project_amount && res.data.project_amount.length > 0) {
-                            var data = res.data.project_amount;
-                            data.forEach(function(item,index){
-                                // 万元转换成亿
-                                item.budget = (item.budget/10000).fixed(2)
-                                item.bidamount = (item.bidamount/10000).fixed(2)
-                            })
                             that.itemAmount.list = res.data.project_amount;
                         } else {
                             that.showItemAmount = false;

+ 12 - 9
src/jfw/modules/app/src/web/templates/big-member/page_report_analysis.html

@@ -180,15 +180,15 @@
                         <div class="vip_component"
                           v-if="!getStatus"
                           style="height:8.84rem">
-                          <p class="example-title add-pro-list-inlet">
+                          <div class="example-title add-pro-list-inlet">
                             <span>市场概况</span>
                             <div class="pro_list_inlet" @click="inProList">
                               <img src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/report-analysis/image/icon/icon-infor-blue.png?v={{Msg "seo" "version"}}" alt="">
                               <span>项目明细</span>
                             </div>
-                          </p>
+                          </div>
                           <div class="chart_com" style="background:url('{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/report-analysis/image/01-bg.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
-                            <chart-example type="item_1" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/report-analysis/image/01.png?v={{Msg "seo" "version"}}'>
+                            <chart-example ref="chartExampleRef" type="item_1" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/report-analysis/image/01.png?v={{Msg "seo" "version"}}'>
                             </chart-example>
                           </div>
                         </div>
@@ -377,23 +377,26 @@
                                 <line-chart-scatter :chart-data="sections.buyerclass.chartData"></line-chart-scatter>
                             </div>
                         </div>
-                        <div class="section bg-white pd-16" v-if="sections.buyerclass.projectCountTop3 && getStatus">
-                            <div class="section-title">项目数量TOP3采购单位及其重点合作中标单位</div>
+                        <div class="section bg-white pd-16" v-if="showBuyerBtn && getStatus">
+                            <div class="section-title">项目数量TOP30采购单位及其重点合作中标单位</div>
                             <div class="section-content">
-                                <market-top3-table :table-data="sections.buyerclass.projectCountTop3" type="count" @save="saveState"></market-top3-table>
+                                <market-top3-table :table-data="showBuyerBtn" type="count" @save="saveState"></market-top3-table>
+                                <div class="more" @click="sections.buyerclass.showViewAllBtn = false" v-if="sections.buyerclass.showViewAllBtn">
+                                  <span>查看更多</span>
+                                </div>
                             </div>
                         </div>
                         <div class="vip_component"
                           v-if="!getStatus"
                           style="height:10.8rem">
-                          <p class="example-title">项目数量TOP3采购单位及其重点合作中标单位</p>
+                          <p class="example-title">项目数量TOP30采购单位及其重点合作中标单位</p>
                           <div class="chart_com" style="background:url('{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/report-analysis/image/05-bg.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
                             <chart-example type="item_5" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/report-analysis/image/05.png?v={{Msg "seo" "version"}}'>
                             </chart-example>
                           </div>
                         </div>
                         <div class="section bg-white pd-16" v-if="sections.buyerclass.projectAmountTop3 && getStatus">
-                            <div class="section-title">采购金额TOP3采购单位及其重点合作中标单位</div>
+                            <div class="section-title">采购金额TOP30采购单位及其重点合作中标单位</div>
                             <div class="section-content">
                                 <market-top3-table :table-data="sections.buyerclass.projectAmountTop3" type="amount" @save="saveState"></market-top3-table>
                             </div>
@@ -401,7 +404,7 @@
                         <div class="vip_component"
                           v-if="!getStatus"
                           style="height:10.8rem">
-                          <p class="example-title">采购金额TOP3采购单位及其重点合作中标单位</p>
+                          <p class="example-title">采购金额TOP30采购单位及其重点合作中标单位</p>
                           <div class="chart_com" style="background:url('{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/report-analysis/image/06-bg.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
                             <chart-example type="item_6" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/report-analysis/image/06.png?v={{Msg "seo" "version"}}'>
                             </chart-example>

+ 48 - 29
src/jfw/modules/app/src/web/templates/big-member/page_report_detail_month.html

@@ -105,11 +105,12 @@
                 </van-cell>
             </van-cell-group>
         </div>
-        <div class="report_source">
+        <div ref="reportSource" class="report_source">
             <p>数据来源:基于您当前订阅条件所关联的招标项目数据;</p>
             <p>项目预算/项目规模:少量预算金额、中标金额未公开或为空的项目,在计算项目总预算、总规模时不参与统计;</p>
             <p>项目重复统计:一个招标项目可能同属于多个关键词组,故各关键词组的数据统计之和可能大于整体市场的统计。</p>
         </div>
+        <!--  || !detailInfo.isNewData -->
         <div v-if="utils.getParam('type')!='member'">
           <!-- 项目数量 1-->
           <div class="chart count_chart" v-if="isShow.show_1">
@@ -490,7 +491,7 @@
               </div>
             </div>
         </div>
-        <van-tabs v-else v-model:active="tabActive" sticky>
+        <van-tabs v-else v-model:active="tabActive" :offset-top="stickyOffset"  sticky>
           <van-tab name="0" title="本月分析">
             <!-- 项目数量 1-->
             <div class="chart count_chart" v-if="isShow.show_1">
@@ -738,13 +739,13 @@
                 <month-report-example :status="bigStatus" :power="power" type="item_6" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/report/6-1.png'></month-report-example>
               </div>
             </div>
-            <!-- 本月采购单位排行榜 13-->
+            <!-- 本月采购单位排行榜TOP30 13-->
             <div class="chart rank" v-if="isShow.show_13  && getStatus">
-                <div class="chart_title">本月采购单位排行榜</div>
+                <div class="chart_title">本月采购单位排行榜TOP30</div>
                 <div class="progress-bar-container">
                     <div class="progress-bar-item" v-for="(item,index) in showBuyerTop" :key="index">
                         <div class="item-label">
-                            <span class="item-name">${item.buyer}</span>
+                            <span @click="setBuyerLink(item)" class="item-name addlink">${item.buyer}</span>
                             <span class="item-count">${item.count}个</span>
                         </div>
                         <div class="item-progress">
@@ -759,15 +760,31 @@
                 </div>
             </div>
             <div v-if="!getStatus">
-              <p class="example-title">本月采购单位排行榜</p>
+              <p class="example-title">本月采购单位排行榜TOP30</p>
               <div class="vip_component" style="height:9.76rem;background:url('/common-module/collection/image/report/7.png') no-repeat;background-size:100% 100%">
                 <month-report-example :status="bigStatus" :power="power" type="item_7" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/report/7-1.png'></month-report-example>
               </div>
             </div>
-            <!-- 本月中标企业排行榜 14-->
+            <!-- 本月中标企业排行榜TOP30 14-->
             <div class="chart rank" v-if="isShow.show_14  && getStatus">
-                <div class="chart_title">本月中标企业排行榜</div>
-                <div>
+                <div class="chart_title">本月中标企业排行榜TOP30</div>
+                <div class="progress-bar-container">
+                    <div class="progress-bar-item" v-for="(item,index) in showEntWinTop" :key="index">
+                        <div class="item-label">
+                            <span @click="setBuyerLink(item)" class="item-name addlink">${item.winner}</span>
+                            <span class="item-count">${item.project_count}个</span>
+                        </div>
+                        <div class="item-progress">
+                            <span class="item-progress-count" :class="index > 2 ? 'blue-progress' : 'yellow-progress'" :style="{width: item.parent}"></span>
+                        </div>
+                    </div>
+                </div>
+                <!-- <div v-if="buyerTop.list.length > 5 && !buyerTop.showAll">
+                    <div class="more">
+                        <span @click="buyerTop.showAll = true">查看更多</span>
+                    </div>
+                </div> -->
+                <!-- <div>
                     <div class="current-list" v-for="(item,index) in showEntWinTop">
                         <div class="win-name">
                             <span v-if="index === 0" class="index first-index">${index + 1}</span>
@@ -803,7 +820,7 @@
                             </div>
                         </div>
                     </div>
-                </div>
+                </div> -->
                 <div v-if="curMonthEntWin.list.length > 3 && !curMonthEntWin.showAll">
                     <div class="more">
                         <span @click="curMonthEntWin.showAll = true">查看更多</span>
@@ -811,51 +828,53 @@
                 </div>
             </div>
             <div v-if="!getStatus">
-              <p class="example-title">本月中标企业排行榜</p>
+              <p class="example-title">本月中标企业排行榜TOP30</p>
               <div class="vip_component" style="height:10.4rem;background:url('/common-module/collection/image/report/8.png') no-repeat;background-size:100% 100%">
                 <month-report-example :status="bigStatus" :power="power" type="item_8" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/report/8-1.png'></month-report-example>
               </div>
             </div>
-            <!-- 本月项目规模排行榜 15-->
+            <!-- 本月项目规模排行榜TOP30 15-->
             <div class="chart rank" v-if="isShow.show_15  && getStatus">
-                <div class="chart_title">本月项目规模排行榜</div>
+                <div class="chart_title">本月项目规模排行榜TOP30</div>
                 <div>
-                    <div class="current-list" v-for="(item,index) in showScaleWin">
+                    <div class="current-list current-list-new" v-for="(item,index) in showScaleWin">
                         <div class="win-name">
                             <span v-if="index === 0" class="index first-index">${index + 1}</span>
                             <span v-else-if="index === 1" class="index second-index">${index + 1}</span>
                             <span v-else-if="index === 2" class="index third-index">${index + 1}</span>
                             <span v-else class="index ">${index + 1}</span>
-                            <span class="title">${item.projectname}</span>
+                            <span class="title ellipsis-2 addlink" style="color:#1D1D1D;font-weight: 400;">${item.projectname}</span>
                         </div>
                         <div class="item-double">
                             <div class="item-single">
-                                <span class="i-label">所在地</span>
+                                <span class="i-label">所在地</span>
                                 <span class="i-value">${item.area || '--'} ${item.city}</span>
                             </div>
                         </div>
                         <div class="item-double">
                             <div class="item-single">
-                                <span class="i-label">项目规模(万元)</span>
+                                <span class="i-label">项目规模(万元)</span>
                                 <span>${item.bidamount || '--'}</span>
                             </div>
-                            <div class="item-single">
-                                <span class="i-label">成交时间</span>
-                                <span class="i-value">${item.jgtime}</span>
-                            </div>
                         </div>
                         <div class="item-double">
-                            <div class="item-single">
-                                <span class="i-label">采购单位</span>
-                                <span class="i-value">${item.buyer}</span>
+                            <div class="item-single" @click="setBuyerLink(item)">
+                                <span class="i-label">采购单位:</span>
+                                <span class="i-value addlink">${item.buyer}</span>
                             </div>
                         </div>
                         <div class="item-double">
-                            <div class="item-single">
-                                <span class="i-label">中标单位</span>
-                                <span class="i-value">${item.winner}</span>
+                            <div class="item-single" @click="setWinnerLink(item.winnerids)">
+                                <span class="i-label">中标单位</span>
+                                <span class="i-value addlink">${item.winner}</span>
                             </div>
                         </div>
+                        <div class="item-double">
+                          <div class="item-single">
+                              <span class="i-label">成交时间:</span>
+                              <span class="i-value">${item.jgtime}</span>
+                          </div>
+                        </div>
                     </div>
                 </div>
                 <div v-if="curMonthScaleWin.list.length > 3 && !curMonthScaleWin.showAll">
@@ -865,7 +884,7 @@
                 </div>
             </div>
             <div v-if="!getStatus">
-              <p class="example-title">本月项目规模排行榜</p>
+              <p class="example-title">本月项目规模排行榜TOP30</p>
               <div class="vip_component" style="height:13.04rem;background:url('/common-module/collection/image/report/9.png') no-repeat;background-size:100% 100%">
                 <month-report-example :status="bigStatus" :power="power" type="item_9" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/report/9-1.png'></month-report-example>
               </div>
@@ -874,7 +893,7 @@
           <van-tab name="1" title="本月项目明细">
             <filter-component :show-tip="false" :show-select="false" :arealist="area" :keyphraseslist="keywordsList" keyformat="phrases" @confirm="confirm"></filter-component>
             <div class="project-detail-list" v-if="Object.keys(projectInfo).length != 0 && projectInfo.list.length > 0">
-              <project-header @setsort-type="setsortType"></project-header>
+              <project-header :total="projectInfo.total" @setsort-type="setsortType"></project-header>
               <van-list
                 v-model:loading="vanlistParams.loading"
                 :finished="vanlistParams.finished"

+ 21 - 17
src/jfw/modules/app/src/web/templates/big-member/page_report_detail_week.html

@@ -47,6 +47,9 @@
             justify-content: space-between;
             align-items: baseline;
         }
+        .emphasis-p .addlink{
+          text-decoration: underline;
+        }
         .emphasis-p:not(:last-child){
             margin-bottom: .16rem;
         }
@@ -129,11 +132,12 @@
                 </van-cell>
             </van-cell-group>
         </div>
-        <div class="report_source">
+        <div ref="reportSource" class="report_source">
             <p>数据来源:基于您当前订阅条件所关联的招投标公告数据;</p>
             <p>项目预算/项目规模:少量预算金额、中标金额未公开或为空的项目,在计算项目总预算、总规模时不参与统计;</p>
             <p>项目重复统计:一个招标项目可能同属于多个关键词组,故各关键词组的数据统计之和可能大于整体市场的统计。</p>
         </div>
+        <!--  || !detailInfo.isNewData -->
         <div v-if="utils.getParam('type')!='member'">
           <!-- 本周新增招标项目数量 -->
           <div class="chart" v-if="showCurWeekAdd">
@@ -324,7 +328,7 @@
               <div class="mark-words" @click="goCollect('week_important_ent')">动态跟踪关注企业的最新中标项目,实时监控友商!<em class="mark-icon-right"></em></div>
           </div>
         </div>
-        <van-tabs v-else v-model:active="tabActive" sticky>
+        <van-tabs v-else v-model:active="tabActive" :offset-top="stickyOffset" sticky>
           <van-tab name="0" title="本周分析">
             <!-- 本周新增招标项目数量 -->
             <div class="chart" v-if="showCurWeekAdd">
@@ -388,37 +392,37 @@
                 </div>
                 <div class="mark-words" @click="goCollect('week_project_seek_bidamount')">全面获取关注项目的规模,分析市场容量,寻找客户!<em class="mark-icon-right"></em></div>
             </div>
-            <!-- 项目金额排行榜 -->
+            <!-- 本周项目规模排行榜TOP30 -->
             <div class="chart" v-if="showItemAmount">
-                <div class="chart_title">项目金额排行榜</div>
+                <div class="chart_title">本周项目规模排行榜TOP30</div>
                 <div>
                     <div class="current-list" v-for="(item,index) in amountWinArr">
-                        <div class="win-name">
+                        <div class="win-name" @click="setLinkUrl(item)">
                             <span v-if="index === 0" class="index first-index">${index + 1}</span>
                             <span v-else-if="index === 1" class="index second-index">${index + 1}</span>
                             <span v-else-if="index === 2" class="index third-index">${index + 1}</span>
                             <span v-else class="index ">${index + 1}</span>
-                            <span class="title">${item.projectname || '--'}</span>
+                            <span class="title ellipsis-2">${item.projectname || '--'}</span>
                         </div>
                         <div class="item-double">
-                            <div class="item-single">
+                            <div class="item-single" @click="setBuyerLink(item)">
                                 <span class="i-label">采购单位</span>
                                 <span class="i-value mosaic-text-for-check">${item.buyer || '--'}</span>
                             </div>
                         </div>
                         <div class="item-double">
-                            <div class="item-single">
+                            <div class="item-single" @click="setWinnerLink(item.id)">
                                 <span class="i-label">中标单位</span>
                                 <span class="i-value mosaic-text-for-check">${item.winner || '--'}</span>
                             </div>
                         </div>
                         <div class="item-double">
                             <div class="item-single">
-                                <span class="i-label">预算金额(亿)</span>
+                                <span class="i-label">预算金额(万元)</span>
                                 <span class="i-value mosaic-text-for-check">${item.budget || '--'}</span>
                             </div>
                             <div class="item-single">
-                                <span class="i-label">中标金额(亿)</span>
+                                <span class="i-label">中标金额(万元)</span>
                                 <span class="i-value mosaic-text-for-check">${item.bidamount || '--'}</span>
                             </div>
                         </div>
@@ -485,22 +489,22 @@
                 </div>
                 <div class="mark-words" @click="goCollect('week_important_project')">实时跟踪关注项目的最新动态,不遗漏任何商机!<em class="mark-icon-right"></em></div>
             </div>
-            <!-- 重点关注企业 -->
+            <!-- 已监控企业本周项目动态 -->
             <div class="chart" v-if="showFollowEnt">
-                <div class="chart_title">重点关注企业</div>
+                <div class="chart_title">已监控企业本周项目动态</div>
                 <div class="emphasis">
                     <div class="emphasis-list" v-for="fi in followEnt">
-                        <p class="emphasis-p">
+                        <p class="emphasis-p" @click="setWinnerLink(fi.id)">
                             <span class="e-l-label">企业名称</span>
-                            <span class="e-l-value">${fi.entname || '--'}</span>
+                            <span class="e-l-value addlink">${fi.entname || '--'}</span>
                         </p>
                         <p class="emphasis-p">
                             <span class="e-l-label">注册省市</span>
                             <span class="e-l-value">${fi.area || '--'} ${fi.city}</span>
                         </p>
-                        <p class="emphasis-p">
+                        <p class="emphasis-p" @click="setLinkUrl(fi)">
                             <span class="e-l-label">中标项目</span>
-                            <span class="e-l-value">${fi.projectname || '--'}</span>
+                            <span class="e-l-value addlink">${fi.projectname || '--'}</span>
                         </p>
                         <p class="emphasis-p">
                             <span class="e-l-label">中标日期</span>
@@ -518,7 +522,7 @@
           <van-tab name="1" title="本周项目明细">
             <filter-component :show-tip="false" :show-select="false" :arealist="area" :keyphraseslist="keywordsList" keyformat="phrases" @confirm="confirm"></filter-component>
             <div class="project-detail-list" v-if="Object.keys(projectInfo).length != 0 && projectInfo.list.length > 0">
-              <project-header @setsort-type="setsortType"></project-header>
+              <project-header :total="projectInfo.total" @setsort-type="setsortType"></project-header>
               <van-list
                 v-model:loading="vanlistParams.loading"
                 :finished="vanlistParams.finished"

+ 7 - 1
src/web/staticres/common-module/filter/js/project_header.js

@@ -1,7 +1,7 @@
 var projectHeaderTemp = `
 <div class="project-detail-title">
   <div class="p-d-t-left">
-    共<span style="color:#2ABED1"> 9999 </span>个项目
+    共<span style="color:#2ABED1"> {{ total }} </span>个项目
   </div>
   <div class="p-d-t-right">
     <span class="sort-label">排序:</span>
@@ -21,6 +21,12 @@ var projectHeaderTemp = `
 var projectHeaderComponent = {
   name: 'project-detail-title',
   template: projectHeaderTemp,
+  props: {
+    total: {
+      type: String,
+      default: ''
+    }
+  },
   data () {
     return {
       sortOptionSelect: '项目更新时间由晚到早',

+ 9 - 0
src/web/staticres/common-module/report-analysis/css/report_analysis.css

@@ -592,9 +592,18 @@
   align-items: center;
   font-size: .28rem;
   color: #2ABDD1;
+  font-weight: 400;
 }
 .pro_list_inlet>img{
   width: .32rem;
   height: .32rem;
   margin-right: .08rem;
 }
+
+.more{
+  padding: .2rem 0 .36rem;
+  text-align: center;
+  color: #2ABED1;
+  font-size: .28rem;
+  line-height: .4rem;
+}

+ 19 - 2
src/web/staticres/common-module/report-analysis/js/report_analysis.js

@@ -216,6 +216,7 @@ var vm = new Vue({
       buyerclass: {
         dataAlready: false,
         chartData: null,
+        showViewAllBtn: false,
         // 项目数量Top3
         projectCountTop3: null,
         // 项目金额Top3
@@ -241,6 +242,9 @@ var vm = new Vue({
     isWeixin: false
   },
   computed: {
+    showBuyerBtn: function () {
+      return this.sections.buyerclass.showViewAllBtn ? this.sections.buyerclass.projectCountTop3.slice(0, 3) : this.sections.buyerclass.projectCountTop3
+    },
     getStatus: function () {
       if (JSON.stringify(this.powerInfo) !== '{}') {
         return this.powerInfo.power.indexOf(10) !== -1
@@ -334,9 +338,17 @@ var vm = new Vue({
     inProList () {
       this.saveState()
       if(utils.$envs.inWX){
-        window.location.href='/big/wx/page/report_analysis_pro_list?id=' + this.rid
+        if(!this.getStatus) {
+          this.$refs.chartExampleRef.goOpen('', '', 'wx_analysis_ProjectDetails')
+        } else {
+          window.location.href='/big/wx/page/report_analysis_pro_list?id=' + this.rid
+        }
        } else {
-        window.location.href='/jyapp/big/page/report_analysis_pro_list?id=' + this.rid
+        if(!this.getStatus) {
+          this.$refs.chartExampleRef.goOpen('', '', 'app_analysis_ProjectDetails')
+        } else {
+          window.location.href='/jyapp/big/page/report_analysis_pro_list?id=' + this.rid
+        }
        }
     },
     gotable () {
@@ -1656,6 +1668,11 @@ var vm = new Vue({
         dataAmount.rows = amountTop3
       }
       if (dataCount.rows.length) {
+        if (dataCount.rows.length > 3) {
+          this.sections.buyerclass.showViewAllBtn = true
+        } else {
+          this.sections.buyerclass.showViewAllBtn = false
+        }
         this.$set(this.sections.buyerclass, 'projectCountTop3', dataCount.rows)
       }
       if (dataAmount.rows.length) {

+ 21 - 3
src/web/staticres/common-module/report-analysis/js/report_analysis_pro_list.js

@@ -105,13 +105,25 @@ var vm = new Vue({
     },
     // 点击项目
     setLinkUrl () {
-      location.href = '/jyapp/big/page/pro_follow_detail'
+      if (utils.$envs.inWX) {
+        location.href = '/big/wx/page/pro_follow_detail'
+      } else {
+        location.href = '/jyapp/big/page/pro_follow_detail'
+      }
     },
     setBuyerLink (data) {
-      location.href = '/jyapp/big/page/unit_portrayal?entName=' + data.buyer
+      if (utils.$envs.inWX) {
+        location.href = '/big/wx/page/unit_portrayal?entName=' + data.buyer
+      } else {
+        location.href = '/jyapp/big/page/unit_portrayal?entName=' + data.buyer
+      }
     },
     setWinnerLink (id) {
-      location.href = '/jyapp/big/page/ent_portrait?eId=' + id
+      if (utils.$envs.inWX) {
+        location.href = '/big/wx/page/ent_portrait?eId=' + id
+      } else {
+        location.href = '/jyapp/big/page/ent_portrait?eId=' + id
+      }
     },
     // 设置排序方式
     setsortType (data) {
@@ -156,6 +168,12 @@ var vm = new Vue({
         success: function(res) {
           this.vanlistParams.loading = false
           if (res && res.error_code === 0 && res.data) {
+            if (!res.data.list) {
+              if(loading) {
+                loading.clear()
+              }
+              return
+            }
             if (this.listParams.pageNum === 1) {
               this.projectInfo = res.data
             } else {

+ 15 - 3
src/web/templates/big-member/wx/page_report_analysis.html

@@ -153,7 +153,13 @@
                       </section>
                       <!-- 市场概况 -->
                       <section class="section bg-white market-overview" id="market" v-if="getStatus">
-                          <div class="section-title pd-16">市场概况</div>
+                          <div class="section-title add-pro-list-inlet pd-16">
+                            <span>市场概况</span>
+                            <div class="pro_list_inlet" @click="inProList">
+                              <img src="/common-module/report-analysis/image/icon/icon-infor-blue.png?v={{Msg "seo" "version"}}" alt="">
+                              <span>项目明细</span>
+                            </div>
+                          </div>
                           <div class="section-content market-overview-list">
                               <div
                                   class="market-overview-item"
@@ -182,9 +188,15 @@
                       <div class="vip_component"
                         v-if="!getStatus"
                         style="height:8.84rem">
-                        <p class="example-title">市场概况</p>
+                        <div class="example-title add-pro-list-inlet">
+                          <span>市场概况</span>
+                          <div class="pro_list_inlet" @click="inProList">
+                            <img src="/common-module/report-analysis/image/icon/icon-infor-blue.png?v={{Msg "seo" "version"}}" alt="">
+                            <span>项目明细</span>
+                          </div>
+                        </div>
                         <div class="chart_com" style="background:url('/common-module/report-analysis/image/01-bg.png?v={{Msg "seo" "version"}}') no-repeat;background-size:100% 100%">
-                          <chart-example type="item_1" imgurl='{{Msg "seo" "cdn"}}/common-module/report-analysis/image/01.png?v={{Msg "seo" "version"}}'>
+                          <chart-example ref="chartExampleRef" type="item_1" imgurl='{{Msg "seo" "cdn"}}/common-module/report-analysis/image/01.png?v={{Msg "seo" "version"}}'>
                           </chart-example>
                         </div>
                       </div>

+ 71 - 0
src/web/templates/big-member/wx/page_report_analysis_pro_list.html

@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html lang="zh-CN" style="font-size: 50px;">
+<head>
+    <title>市场分析报告项目明细 </title>
+    <meta charset="UTF-8">
+    <meta name="viewport"
+        content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <meta name="format-detection" content="telephone=yes"/>
+    <meta name="apple-mobile-web-app-status-bar-style" content="black">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <script src="/big-member/js/rem.js"></script>
+    <!--S-当前页面的css资源-->
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/reset-css/5.0.1/reset.min.css />
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/index.css />
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/icon/local.css />
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/v-charts/1.19.0/style.min.css />
+    <!--E-当前页面的css资源-->
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/big-member/weixin/css/public.css?v={{Msg "seo" "version"}}'>
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/big-member/weixin/css/j-icons.css?v={{Msg "seo" "version"}}'>
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/icon/local.css />
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/collection/css/index.css?v={{Msg "seo" "version"}}' />
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/public/css/empty.css?v={{Msg "seo" "version"}}' />
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/filter/css/filter_limit.css?v={{Msg "seo" "version"}}' />
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/filter/css/project_cell.css?v={{Msg "seo" "version"}}' />
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/filter/css/project_header.css?v={{Msg "seo" "version"}}' />
+</head>
+<body>
+  <div class="j-container">
+    <div class="j-main" id="analysisList" v-cloak>
+      <filter-component :show-tip="false" :show-select="false" :filters="filters"  @confirm="confirm"></filter-component>
+      <div class="project-detail-list" v-if="Object.keys(projectInfo).length != 0 && projectInfo.list.length > 0">
+        <project-header @setsort-type="setsortType"></project-header>
+        <van-list
+          v-model:loading="vanlistParams.loading"
+          :finished="vanlistParams.finished"
+          finished-text="没有更多了"
+          @load="onListLoad"
+        >
+          <project-cell @set-winner-link="setWinnerLink" @set-buyer-link="setBuyerLink(item)" @set-link-url="setLinkUrl" :item="item" v-for="item in projectInfo.list" :key="item.id">
+            <div class="update-time">
+              <div class="update-time-label">
+                本月项目更新时间:
+              </div>
+              <div class="update-time-content">${item.lastTime?utils.dateFromNow(item.lastTime*1000):'--'}</div>
+            </div>
+          </project-cell>
+        </van-list>
+      </div>
+      <empty v-else>暂无数据</empty>
+    </div>
+</div>
+<script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js></script>
+<script src=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js></script>
+<script src=//cdn-common.jianyu360.com/cdn/lib/zepto/1.2.0/zepto.min.js></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/public/js/utils.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/public/js/china-map-data.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/collection/js/keyword-mobile.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/collection/js/area-city-mobile.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/collection/js/industry-mobile.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/collection/js/cate-mobile.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/filter/js/filter_limit.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/filter/js/project_cell.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/filter/js/project_header.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/public/js/empty.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/report-analysis/js/report_analysis_pro_list.js?v={{Msg "seo" "version"}}'></script>
+
+{{include "/common/baiducc.html"}}
+</body>
+</html>