Browse Source

Merge branch 'dev4.6.2.1' of http://192.168.3.207:8080/qmx/jy into dev4.6.2.1

熊啸云 3 years ago
parent
commit
d60b5c8bba
25 changed files with 1157 additions and 304 deletions
  1. 0 1
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/ent_portrait.css
  2. 48 4
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/unit_portrayal.css
  3. 120 11
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/analysis_result.js
  4. 14 7
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/ent_portrait.js
  5. 50 11
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/unit_portrayal.js
  6. 4 4
      src/jfw/modules/app/src/web/templates/big-member/page_analysis_result.html
  7. 1 1
      src/jfw/modules/app/src/web/templates/big-member/page_ent_portrait.html
  8. 6 6
      src/jfw/modules/app/src/web/templates/big-member/page_free_high_set.html
  9. 41 41
      src/jfw/modules/app/src/web/templates/big-member/page_free_other_project.html
  10. 44 32
      src/jfw/modules/app/src/web/templates/big-member/page_unit_portrayal.html
  11. 44 0
      src/web/staticres/big-member/css/unit_portrayal.css
  12. 49 10
      src/web/staticres/big-member/js/unit_portrayal.js
  13. 36 1
      src/web/staticres/big-member/weixin/css/ent_portrait.css
  14. 2 1
      src/web/staticres/common-module/big-member/css/high_set.css
  15. 12 12
      src/web/staticres/common-module/big-member/js/ent_project_news.js
  16. 238 58
      src/web/staticres/common-module/big-member/js/high_set.js
  17. 63 38
      src/web/staticres/common-module/collection/js/ent_portrait.js
  18. 2 1
      src/web/staticres/common-module/collection/js/history-project.js
  19. 39 24
      src/web/staticres/common-module/collection/js/industry-mobile.js
  20. 53 18
      src/web/staticres/js/superSearch.js
  21. 141 0
      src/web/templates/big-member/wx/page_free_high_set.html
  22. 24 9
      src/web/templates/big-member/wx/page_unit_portrayal.html
  23. 15 6
      src/web/templates/frontRouter/wx/collection/sess/ent_portrait.html
  24. 70 1
      src/web/templates/pc/proproject.html
  25. 41 7
      src/web/templates/pc/supsearch.html

+ 0 - 1
src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/ent_portrait.css

@@ -397,7 +397,6 @@
   color: #171826;
   color: #171826;
   font-size: .36rem;
   font-size: .36rem;
   line-height: .52rem;
   line-height: .52rem;
-  font-weight: bold;
 }
 }
 .win-bid-title::after{
 .win-bid-title::after{
   position: absolute;
   position: absolute;

+ 48 - 4
src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/unit_portrayal.css

@@ -21,9 +21,54 @@
     font-size: .24rem;
     font-size: .24rem;
     line-height: .36rem;
     line-height: .36rem;
 }
 }
+.win-analyse{
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: .24rem .32rem;
+  margin-top: .24rem;
+  background: #fff;
+}
+.win-bid-title{
+  position: relative;
+  padding-left: .16rem;
+  color: #171826;
+  font-size: .36rem;
+  line-height: .52rem;
+}
+.win-bid-title::after{
+  position: absolute;
+  content: '';
+  width:3px;
+  height: .32rem;
+  background: #2abed1;
+  border-radius: 11px;
+  left:0;
+  top: 50%;
+  transform: translateY(-50%);
+}
+.win-analyse .high-link{
+  display: flex;
+  align-items: center;
+  color: #2abed1;
+  font-size: .28rem;
+}
+.win-analyse .high-link > span{
+  margin-right: .08rem;
+}
+.buyer-statistic{
+  margin-top: 0.08rem;
+  background: #fff;
+}
+.statistic-title{
+  padding: .32rem .32rem .12rem;
+  color: #171826;
+  line-height: .52rem;
+  font-size: .36rem;
+}
 .buyer-type{
 .buyer-type{
     margin-top: 0.04rem;
     margin-top: 0.04rem;
-    padding: 0 .32rem;
+    padding: 0 .32rem .24rem;
     color: #5F5E64;
     color: #5F5E64;
     font-size: .24rem;
     font-size: .24rem;
     line-height: .36rem;
     line-height: .36rem;
@@ -33,11 +78,10 @@
     display: flex;
     display: flex;
     align-items: center;
     align-items: center;
     justify-content: space-between;
     justify-content: space-between;
-    margin-top: .24rem;
+    /* margin-top: .24rem; */
     padding: .24rem .16rem;
     padding: .24rem .16rem;
 }
 }
 .buyer-info::after{
 .buyer-info::after{
-    
     position: absolute;
     position: absolute;
     box-sizing: border-box;
     box-sizing: border-box;
     content: ' ';
     content: ' ';
@@ -47,7 +91,7 @@
     bottom: -50%;
     bottom: -50%;
     left: .32rem;
     left: .32rem;
     border: 0 solid #ebedf0;
     border: 0 solid #ebedf0;
-    border-top-width: 1px;
+    /* border-top-width: 1px; */
     border-bottom-width: 1px;
     border-bottom-width: 1px;
     -webkit-transform: scaleY(.5);
     -webkit-transform: scaleY(.5);
     transform: scaleY(.5);
     transform: scaleY(.5);

+ 120 - 11
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/analysis_result.js

@@ -102,7 +102,8 @@ var vNode = {
             activeNames: [],
             activeNames: [],
             winnerVal: '',
             winnerVal: '',
             buyerVal: '',
             buyerVal: '',
-            scrollTop: 0
+            scrollTop: 0,
+            defaultProjectDetail: []
         }
         }
     },
     },
     computed: {
     computed: {
@@ -166,10 +167,22 @@ var vNode = {
         window.addEventListener('scroll', this.handleScroll, true);
         window.addEventListener('scroll', this.handleScroll, true);
     },
     },
     methods: {
     methods: {
+        showLoading: function () {
+          var loading = this.$toast.loading({
+            duration: 0,
+            forbidClick: true,
+            message: 'loading...',
+          })
+          return loading
+        },
         // 金额转换
         // 金额转换
         formatterMoney: function(data) {
         formatterMoney: function(data) {
             return utils.moneyUnit(data);
             return utils.moneyUnit(data);
         },
         },
+        // 时间转换
+        formatterTime: function(data) {
+          return new Date(Number(data + '000')).pattern('yyyy/MM/dd')
+        },
         // 返回筛选条件
         // 返回筛选条件
         setBack:function(){
         setBack:function(){
             history.back()
             history.back()
@@ -409,6 +422,7 @@ var vNode = {
                                     item.firsttime = new Date(Number(item.firsttime + '000')).pattern('yyyy/MM/dd')
                                     item.firsttime = new Date(Number(item.firsttime + '000')).pattern('yyyy/MM/dd')
                                 }
                                 }
                             })
                             })
+                            that.defaultProjectDetail = res.data.PDeatils
                             that.projectListDetail = res.data.PDeatils; // 类似项目明细
                             that.projectListDetail = res.data.PDeatils; // 类似项目明细
                         }
                         }
                         // 类似项目分析
                         // 类似项目分析
@@ -431,6 +445,70 @@ var vNode = {
                 }
                 }
             })
             })
         },
         },
+        // 单独查类似项目明细接口
+        getProjectDetail: function(type, winner, buyer) {
+          var that = this;
+          var loading = that.showLoading()
+          var data = {
+              area: that.areaData,
+              buyerContent: that.contentData,
+              buyerClass: that.buyerClassData,
+              minPrice: utils.deepCompare(that.moneyData, []) ? '' : Number(that.moneyData[0]),
+              maxPrice: Number(that.moneyData[1]) || '',
+              industry: that.industriesData ? that.formatterIndustryData(that.industriesData).toString() : '',
+              pname: that.project.projectName,
+              pid: that.project.pId,
+              sid: that.project.infoId,
+              mobileModel: that.mobileModel,
+              appVersion: that.appVersion,
+              // 以下为新增
+              searchType: type,
+              winner: winner,
+              buyer: buyer,
+          }
+          $.ajax({
+            type:'POST',
+            url:'/bigmember/decision/projectInfoByBW',
+            contentType: 'application/json;charset=utf-8' ,
+            data:JSON.stringify(data),
+            success:function(res) {
+              if(res.error_code == 0) {
+                loading.clear()
+                // 类似项目明细数据
+                if(res.data){
+                  res.data.forEach(function (item,i) {
+                    if (item.budget && item.budget !== '') {
+                        item.budget = (item.budget / 10000).fixed(2)
+                    } else {
+                        item.budget = '-'
+                    }
+                    if (item.bidamount && item.bidamount !== '') {
+                        item.bidamount = (item.bidamount / 10000).fixed(2)
+                    } else {
+                        item.bidamount = '--'
+                    }
+                    if(item.review_experts){
+                        item.review_experts = item.review_experts.join(',')
+                    }
+                    if(item.project_rate){
+                        item.project_rate = (item.project_rate*100).fixed(2) + '%'
+                    }
+                    if(item.firsttime){
+                        item.firsttime = new Date(Number(item.firsttime + '000')).pattern('yyyy/MM/dd')
+                    }
+                  })
+                  that.projectListDetail = res.data;
+                }
+              } else {
+                loading.clear()
+              }
+            },
+            error:function(err) {
+              loading.clear()
+              console.log(err)
+            }
+          })
+        },
         // 初始化画像数据
         // 初始化画像数据
         initChartData:function(){
         initChartData:function(){
             var item = this.cacheImgData;
             var item = this.cacheImgData;
@@ -855,6 +933,7 @@ var vNode = {
             var data = {
             var data = {
                 cacheImgData: this.cacheImgData,
                 cacheImgData: this.cacheImgData,
                 projectListDetail: this.projectListDetail,
                 projectListDetail: this.projectListDetail,
+                defaultProjectDetail: this.defaultProjectDetail,
                 skeletonShow: this.skeletonShow,
                 skeletonShow: this.skeletonShow,
                 isShow: this.isShow,
                 isShow: this.isShow,
                 minusRows: this.minusRows,
                 minusRows: this.minusRows,
@@ -873,6 +952,7 @@ var vNode = {
                 $data = JSON.parse($data)
                 $data = JSON.parse($data)
                 this.cacheImgData = $data.cacheImgData || {}
                 this.cacheImgData = $data.cacheImgData || {}
                 this.projectListDetail = $data.projectListDetail
                 this.projectListDetail = $data.projectListDetail
+                this.defaultProjectDetail = $data.projectListDetail
                 this.skeletonShow = $data.skeletonShow
                 this.skeletonShow = $data.skeletonShow
                 this.isShow = $data.isShow
                 this.isShow = $data.isShow
                 this.minusRows = $data.minusRows
                 this.minusRows = $data.minusRows
@@ -885,33 +965,62 @@ var vNode = {
             return !!$data
             return !!$data
         },
         },
         goDetail (winner, buyer) {
         goDetail (winner, buyer) {
-          console.log(winner, buyer, $('#analysis-result').scrollTop())
           this.active = 1
           this.active = 1
           this.activeNames = ['1']
           this.activeNames = ['1']
           this.winnerVal = winner ? winner : ''
           this.winnerVal = winner ? winner : ''
           this.buyerVal = buyer ? buyer : ''
           this.buyerVal = buyer ? buyer : ''
-          this.scrollTop = $('#analysis-result').scrollTop()
+          this.scrollTop = this.$refs.wrapper.scrollTop
+          if (buyer) {
+            this.getProjectDetail(2, winner, buyer)
+          } else {
+            this.getProjectDetail(1, winner)
+          }
         },
         },
         onTabClick (page) {
         onTabClick (page) {
-          if (page === this.active) return
-          this.activeNames = []
-          if (this.winnerVal || this.buyerVal) {
-            $('#analysis-result').scrollTop(this.scrollTop)
+          if (page == 1) {
+            this.projectListDetail = this.defaultProjectDetail
           } else {
           } else {
-            $('#analysis-result').scrollTop(0)
+            var _this = this
+            this.$nextTick(function(){
+              _this.$refs.wrapper.scrollTop = this.scrollTop
+            })
           }
           }
+          this.activeNames = []
           this.winnerVal = ''
           this.winnerVal = ''
           this.buyerVal = ''
           this.buyerVal = ''
-          this.scrollTop = 0
         },
         },
+        // 类似项目明细搜素
         onSearch () {
         onSearch () {
           if (!this.winnerVal && !this.buyerVal) return
           if (!this.winnerVal && !this.buyerVal) return
-          console.log(this.winnerVal, this.buyerVal)
+          if (this.winnerVal && this.buyerVal) {
+            this.getProjectDetail(2, this.winnerVal, this.buyerVal)
+          } else {
+            this.getProjectDetail(1, this.winnerVal, this.buyerVal)
+          }
         },
         },
+        // 跳转其他项目明细页面
         goOtherDetail (winner, buyer) {
         goOtherDetail (winner, buyer) {
           this.savePageData()
           this.savePageData()
+          var data = {
+            area: this.areaData,
+            buyerContent: this.contentData,
+            buyerClass: this.buyerClassData,
+            minPrice: utils.deepCompare(this.moneyData, []) ? '' : Number(this.moneyData[0]),
+            maxPrice: Number(this.moneyData[1]) || '',
+            industry: this.industriesData ? this.formatterIndustryData(this.industriesData).toString() : '',
+            pname: this.project.projectName,
+            pid: this.project.pId,
+            sid: this.project.infoId,
+            buyer: this.project.buyer,
+            mobileModel: this.mobileModel,
+            appVersion: this.appVersion,
+            // 以下为新增
+            winner: winner,
+            searchType: 3
+          }
           if (winner || buyer) {
           if (winner || buyer) {
-            location.href = "./analysis_result_other?winner=" + winner + '&buyer=' + buyer
+            sessionStorage.setItem('analysis_other_project', JSON.stringify(data))
+            location.href = "./free_other_project?winner=" + winner + '&buyer=' + buyer
           }
           }
         }
         }
     }
     }

+ 14 - 7
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/ent_portrait.js

@@ -146,6 +146,12 @@ var vNode = {
       // 获取企业基本信息
       // 获取企业基本信息
       this.getEntBaseInfo()
       this.getEntBaseInfo()
     }
     }
+    var storageId = sessionStorage.getItem('winner_high_eid')
+    // 判断如果url中的企业id和高级分析设置中存的企业id不一致就清除高级分析设置中存的筛选条件
+    if (storageId && storageId !== eId) {
+      sessionStorage.removeItem('winner_high_set')
+      sessionStorage.removeItem('winner_high_eid')
+    }
   },
   },
   mounted: function () {
   mounted: function () {
     var _this = this
     var _this = this
@@ -311,6 +317,8 @@ var vNode = {
     },
     },
     // 获取画像信息
     // 获取画像信息
     getEntPortrait: function (callback) {
     getEntPortrait: function (callback) {
+      var storageSet = JSON.parse(sessionStorage.getItem('winner_high_set'))
+      if (!storageSet) return
       var _this = this
       var _this = this
       var data = {
       var data = {
         entId: _this.entInfo.id
         entId: _this.entInfo.id
@@ -342,7 +350,7 @@ var vNode = {
       $.ajax({
       $.ajax({
         type: 'POST',
         type: 'POST',
         url: urls,
         url: urls,
-        data: data,
+        data: storageSet ? Object.assign(data, storageSet) : data,
         success: function (res) {
         success: function (res) {
           if (res.error_code == 0) {
           if (res.error_code == 0) {
             _this.loading.clear()
             _this.loading.clear()
@@ -418,6 +426,8 @@ var vNode = {
     },
     },
     // 获取项目动态
     // 获取项目动态
     getProjectNews: function () {
     getProjectNews: function () {
+      var storageSet = JSON.parse(sessionStorage.getItem('winner_high_set'))
+      if (!storageSet) return
       var _this = this
       var _this = this
       var data = {
       var data = {
         entId: _this.entInfo.id,
         entId: _this.entInfo.id,
@@ -432,7 +442,7 @@ var vNode = {
       $.ajax({
       $.ajax({
         type: 'POST',
         type: 'POST',
         url: urls,
         url: urls,
-        data: data,
+        data: storageSet ? Object.assign(data, storageSet) : data,
         success: function (res) {
         success: function (res) {
           if (res.error_code == 0) {
           if (res.error_code == 0) {
             _this.loading.clear()
             _this.loading.clear()
@@ -1091,9 +1101,8 @@ var vNode = {
     },
     },
     // 高级分析设置
     // 高级分析设置
     goHighSet () {
     goHighSet () {
-      console.log(this.conf._4)
       if (this.conf._4) {
       if (this.conf._4) {
-        location.href = './free_high_set'
+        location.href = './free_high_set?header=中标分析高级设置&eid=' + utils.getParam('eId')
       } else {
       } else {
         this.$dialog.confirm({
         this.$dialog.confirm({
           className:'promatch',
           className:'promatch',
@@ -1102,9 +1111,7 @@ var vNode = {
           showCancelButton: false,
           showCancelButton: false,
           confirmButtonColor: '#2cb7ca',
           confirmButtonColor: '#2cb7ca',
           confirmButtonText: '我知道了'
           confirmButtonText: '我知道了'
-        }).then(function () {
-          
-        })
+        }).then(function () {})
       }
       }
     }
     }
   }
   }

+ 50 - 11
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/unit_portrayal.js

@@ -162,9 +162,18 @@ var vNode = {
       this.init();
       this.init();
     },
     },
     mounted: function () {
     mounted: function () {
-        this.buyer.name = decodeURIComponent(utils.getParam('entName'));
-        this.getNewMsg(); // 中标动态
-        this.getChartData(); // 企业画像
+        this.buyer.name = decodeURIComponent(utils.getParam('entName'))
+        var storageSet = JSON.parse(sessionStorage.getItem('buyer_high_set'))
+        if (storageSet && !this.getStatus) {
+          this.getNewMsg(); // 中标动态
+          this.getChartData(); // 企业画像
+        }
+        var storageName = decodeURIComponent(sessionStorage.getItem('buyer_high_name'))
+        // 判断如果url中的采购单位和高级分析设置中采购单位不一致就清除高级分析设置中存的筛选条件
+        if (storageName && storageName !== this.buyer.name) {
+          sessionStorage.removeItem('buyer_high_set')
+          sessionStorage.removeItem('buyer_high_name')
+        }
     },
     },
     beforeDestroy() {
     beforeDestroy() {
         window.removeEventListener("resize", this.init,20);
         window.removeEventListener("resize", this.init,20);
@@ -183,6 +192,7 @@ var vNode = {
               type: 'GET',
               type: 'GET',
               url: '/bigmember/use/isAdd?t=' + Date.now(),
               url: '/bigmember/use/isAdd?t=' + Date.now(),
               success: function (res) {
               success: function (res) {
+                  _this.chartLoading = false
                   if (res.data) {
                   if (res.data) {
                     _this.power = res.data.power
                     _this.power = res.data.power
                     _this.bigStatus = res.data.memberStatus
                     _this.bigStatus = res.data.memberStatus
@@ -307,6 +317,7 @@ var vNode = {
         },
         },
         // 获取中标动态数据
         // 获取中标动态数据
         getNewMsg: function(){
         getNewMsg: function(){
+          var storageSet = JSON.parse(sessionStorage.getItem('buyer_high_set'))
           var that = this;
           var that = this;
           var data = {
           var data = {
               buyer: decodeURIComponent(utils.getParam('entName')),
               buyer: decodeURIComponent(utils.getParam('entName')),
@@ -316,7 +327,7 @@ var vNode = {
           $.ajax({
           $.ajax({
             type:'POST',
             type:'POST',
             url:'/bigmember/portrait/buyer/getNewMsg',
             url:'/bigmember/portrait/buyer/getNewMsg',
-            data:data,
+            data: storageSet ? Object.assign(data, storageSet) : data,
             success:function(res) {
             success:function(res) {
               if(res.error_code == 0) {
               if(res.error_code == 0) {
                 if (res.data.list && res.data.list.length && res.data.list.length > 0) {
                 if (res.data.list && res.data.list.length && res.data.list.length > 0) {
@@ -360,12 +371,15 @@ var vNode = {
         // 获取采购单位画像所有数据
         // 获取采购单位画像所有数据
         getChartData: function() {
         getChartData: function() {
           var that = this;
           var that = this;
+          that.chartLoading = true
+          var storageSet = JSON.parse(sessionStorage.getItem('buyer_high_set'))
+          var data = {
+            buyer: decodeURIComponent(utils.getParam('entName'))
+          }
           $.ajax({
           $.ajax({
             type:'POST',
             type:'POST',
             url:'/bigmember/portrait/buyer/getData',
             url:'/bigmember/portrait/buyer/getData',
-            data:{
-              buyer: decodeURIComponent(utils.getParam('entName'))
-            },
+            data: storageSet ? Object.assign(data, storageSet) : data,
             success:function(res) {
             success:function(res) {
                 if(res.error_code == 0) {
                 if(res.error_code == 0) {
                   if(res.data && Object.keys(res.data).length > 0) {
                   if(res.data && Object.keys(res.data).length > 0) {
@@ -494,16 +508,22 @@ var vNode = {
         formatYearsData: function(data) {
         formatYearsData: function(data) {
           if(data && Object.keys(data).length > 0){
           if(data && Object.keys(data).length > 0){
             var rows = [];
             var rows = [];
+            var count = 0
             for (var key in data) {
             for (var key in data) {
               rows.push({
               rows.push({
                 '年份': key,
                 '年份': key,
                 '项目数量': data[key].Count,
                 '项目数量': data[key].Count,
                 '项目金额': (data[key].Money/10000).fixed(0),
                 '项目金额': (data[key].Money/10000).fixed(0),
               })
               })
+              count += data[key].Count
+            }
+            if (count !== 0) {
+              this.projectData.columns = ['年份', '项目数量', '项目金额'];
+              this.projectData.rows = rows;
+              this.isShow.showYearData = true;
+            } else {
+              this.isShow.showYearData = false;
             }
             }
-            this.projectData.columns = ['年份', '项目数量', '项目金额'];
-            this.projectData.rows = rows;
-            this.isShow.showYearData = true;
           }
           }
         },
         },
         // 3.处理月度采购规模数据
         // 3.处理月度采购规模数据
@@ -512,9 +532,13 @@ var vNode = {
             var rows = [];
             var rows = [];
             var columns = ['月份'];
             var columns = ['月份'];
             var count = 0;
             var count = 0;
+            var allNum = []
             var yearArr = []
             var yearArr = []
             for (var key in data) {
             for (var key in data) {
               yearArr.push(parseInt(key))
               yearArr.push(parseInt(key))
+              for(var n in data[key]) {
+                allNum.push(data[key][n])
+              }
             }
             }
             yearArr.sort(function (a, b) { return a - b })
             yearArr.sort(function (a, b) { return a - b })
             yearArr.forEach(function (item) {
             yearArr.forEach(function (item) {
@@ -537,8 +561,9 @@ var vNode = {
               })
               })
               rows.push(columnsItem)
               rows.push(columnsItem)
             }
             }
+            var maxNum = Math.max.apply(Math, allNum.map(function(o) { return o }))
             // 数据总量为0,不赋值
             // 数据总量为0,不赋值
-            if (count != 0) {
+            if (count != 0 && maxNum !== 0) {
               this.monthScaleData.columns = columns;
               this.monthScaleData.columns = columns;
               this.monthScaleData.rows = rows;
               this.monthScaleData.rows = rows;
               this.isShow.showMonthScale = true;
               this.isShow.showMonthScale = true;
@@ -1247,6 +1272,20 @@ var vNode = {
             })
             })
             return maxIndex
             return maxIndex
         },
         },
+        goHighSet: function() {
+          if (!this.getStatus) {
+            location.href = './free_high_set?header=采购单位高级分析设置&entName=' + decodeURIComponent(utils.getParam('entName'))
+          } else {
+            this.$dialog.confirm({
+              className:'promatch',
+              title: '您暂无使用权限',
+              message: '您未购买此服务,如需使用请联系您的销售人员或客服升级套餐,谢谢!',
+              showCancelButton: false,
+              confirmButtonColor: '#2cb7ca',
+              confirmButtonText: '我知道了'
+            }).then(function () {})
+          }
+        }
     }
     }
 }
 }
 var unit = new Vue(vNode)
 var unit = new Vue(vNode)

+ 4 - 4
src/jfw/modules/app/src/web/templates/big-member/page_analysis_result.html

@@ -22,7 +22,7 @@
 <body>
 <body>
 <div class="j-container">
 <div class="j-container">
     {{include "/big-member/header.html"}}
     {{include "/big-member/header.html"}}
-    <div class="j-main" id="analysis-result" v-cloak>
+    <div class="j-main" id="analysis-result" v-cloak ref="wrapper">
         <!-- 骨架屏 -->
         <!-- 骨架屏 -->
         <div class="skeleton" v-if="skeletonShow">
         <div class="skeleton" v-if="skeletonShow">
             <img class="working" src="/jyapp/big-member/image/working.gif" alt="">
             <img class="working" src="/jyapp/big-member/image/working.gif" alt="">
@@ -143,7 +143,7 @@
                                                 <span>项目数量:${hs.doc_count}个</span>
                                                 <span>项目数量:${hs.doc_count}个</span>
                                                 <span>项目金额:${formatterMoney(hs.total_project)}</span>
                                                 <span>项目金额:${formatterMoney(hs.total_project)}</span>
                                                 <!-- <span>注册资本:${formatterMoney(hs.capital)}</span> -->
                                                 <!-- <span>注册资本:${formatterMoney(hs.capital)}</span> -->
-                                                <span class="ellipsis">最近中标:</span>
+                                                <span class="ellipsis">最近中标:${formatterTime(hs.max_jytime)}</span>
                                               </div>
                                               </div>
                                             </div>
                                             </div>
                                             
                                             
@@ -277,7 +277,7 @@
                                                 <span>${item.project_rate || '--'}</span>
                                                 <span>${item.project_rate || '--'}</span>
                                             </div>
                                             </div>
                                         </div>
                                         </div>
-                                        <div class="bid-company">
+                                        <div class="bid-company" v-if="item.winnerorder">
                                             <p>中标候选人:</p>
                                             <p>中标候选人:</p>
                                             <p v-for="sItem in item.winnerorder">
                                             <p v-for="sItem in item.winnerorder">
                                                 ${sItem || '--'}
                                                 ${sItem || '--'}
@@ -287,7 +287,7 @@
                                 </div>
                                 </div>
                                 <div class="empty" v-else>
                                 <div class="empty" v-else>
                                     <div class="j-img img-empty empty-img"></div>
                                     <div class="j-img img-empty empty-img"></div>
-                                    <p class="empty-text">暂无明细</p>
+                                    <p class="empty-text" style="padding-bottom: 0.32rem;">暂无明细</p>
                                 </div>
                                 </div>
                             </div>
                             </div>
                         </van-tab>
                         </van-tab>

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

@@ -461,7 +461,7 @@
   </script>
   </script>
   <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/chart_options.js?v={{Msg "seo" "version"}}'>
   <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/chart_options.js?v={{Msg "seo" "version"}}'>
   </script>
   </script>
-  <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/ent_portrait.js?v={{Msg "seo" "version"}}'>
+  <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/ent_portrait.js?v=0000{{Msg "seo" "version"}}'>
   </script>
   </script>
 </body>
 </body>
 
 

+ 6 - 6
src/jfw/modules/app/src/web/templates/big-member/page_free_high_set.html

@@ -4,7 +4,7 @@
 <head>
 <head>
   <!--引入公共资源头部-->
   <!--引入公共资源头部-->
   {{include "/big-member/meta.html"}}
   {{include "/big-member/meta.html"}}
-  <title>中标分析高级设置</title>
+  <title></title>
   <!--S-当前页必定需要预加载的资源-->
   <!--S-当前页必定需要预加载的资源-->
   <link rel="preload" as="style" href=//cdn-common.jianyu360.com/cdn/lib/reset-css/5.0.1/reset.min.css />
   <link rel="preload" as="style" href=//cdn-common.jianyu360.com/cdn/lib/reset-css/5.0.1/reset.min.css />
   <link rel="preload" as="style" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/index.css />
   <link rel="preload" as="style" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/index.css />
@@ -81,8 +81,8 @@
         </div>
         </div>
         <div class="j-footer">
         <div class="j-footer">
           <div class="j-button-group">
           <div class="j-button-group">
-            <button class="j-button-cancel">重置</button>
-            <button class="j-button-confirm" :disabled="disabledConfirm">开始分析</button>
+            <button class="j-button-cancel" @click="onReset">重置</button>
+            <button class="j-button-confirm" :disabled="disabledConfirm" @click="startStatistic">开始分析</button>
           </div>
           </div>
         </div>
         </div>
         <van-popup 
         <van-popup 
@@ -96,13 +96,13 @@
           <div class="j-container">
           <div class="j-container">
             <div class="popup-header header-title">${popInfo.title}</div>
             <div class="popup-header header-title">${popInfo.title}</div>
             <div v-show="popInfo.type == 'scope'">
             <div v-show="popInfo.type == 'scope'">
-              <popup-select-component class="j-main fix-ios-scroll" :data-list="matchTypeList" multiple show-all-button ref="matchTypeSelector" @cancel="onCancel" @confirm="onConfirm"></popup-select-component>
+              <popup-select-component class="j-main fix-ios-scroll" :data-list="matchTypeList" multiple ref="matchTypeSelector" @reset="onCancel" @confirm="onConfirm"></popup-select-component>
             </div>
             </div>
             <div v-show="popInfo.type == 'area'">
             <div v-show="popInfo.type == 'area'">
-              <area-component class="j-main fix-ios-scroll" :class="{'hide-all': filterInitData.areaArr.length == 2}" ref="projectAreaSelector" @cancel="onCancel" @confirm="onConfirm"></area-component>
+              <area-component class="j-main fix-ios-scroll" :class="{'hide-all': filterInitData.areaArr.length == 2}" ref="projectAreaSelector" :selectarealist="selectAreaList" @cancel="onCancel" @confirm="onConfirm"></area-component>
             </div>
             </div>
             <div v-show="popInfo.type == 'industry'">
             <div v-show="popInfo.type == 'industry'">
-              <industry-component class="j-main fix-ios-scroll" ref="industryCom" :selectindustrylist="selectIndustryList" @cancel="onCancel" @confirm="onConfirm"></industry-component>
+              <industry-component class="j-main fix-ios-scroll" ref="industryCom" :selectindustrylist="selectIndustryList" onlyshowsome= "true" @cancel="onCancel" @confirm="onConfirm"></industry-component>
             </div>
             </div>
             <div v-show="popInfo.type == 'start'">
             <div v-show="popInfo.type == 'start'">
               <years-component ref="yearsItem" type="start" :cur-year="conf.start" :years="startRange" @cancel="onCancel" @confirm="onConfirm"></years-component>
               <years-component ref="yearsItem" type="start" :cur-year="conf.start" :years="startRange" @cancel="onCancel" @confirm="onConfirm"></years-component>

+ 41 - 41
src/jfw/modules/app/src/web/templates/big-member/page_free_other_project.html

@@ -70,7 +70,7 @@
                   <span>中标企业:</span>
                   <span>中标企业:</span>
                   <span>${item.s_winner || '--'}</span>
                   <span>${item.s_winner || '--'}</span>
                 </div>
                 </div>
-                <div class="pl-info">
+                <div class="pl-info" v-if="item.review_experts">
                   <span>评审专家:</span>
                   <span>评审专家:</span>
                   <span>${item.review_experts.join(',') || '--'}</span>
                   <span>${item.review_experts.join(',') || '--'}</span>
                 </div>
                 </div>
@@ -128,46 +128,7 @@
       el: '#analysis-result',
       el: '#analysis-result',
       data () {
       data () {
         return {
         return {
-          lists: [
-            {
-              "_id": "ABCY2FdczIvLDksRGhhc3IwDyc4ASJjR1JyPw4gPToga3lzejtUCgs%3D",
-              "area": "海南",
-              "bidamount": 873000,
-              "bidcycle": 7,
-              "bidtype": "询价",
-              "budget": 1680000,
-              "buyer": "琼海市中医院",
-              "city": "琼海市",
-              "firsttime": 1597139803,
-              "infoid": "ABCY2FdczIvLDksRGhhc3IwDyc4ASJjR1JyPw4gPToga3lzejtUCgs%3D",
-              "projectname": "琼海市中医院-医疗设备",
-              "review_experts": [
-                "王传文",
-                "占达飞",
-                "王思坦"
-              ],
-              "s_winner": "江西兆安科技有限公司"
-            },
-            {
-              "_id": "ABCY2FddDJYNyg7AnRhc3IwDyc4ASJjR1JyP1g7ID0gUX5zZyNUChM%3D",
-              "area": "海南",
-              "bidamount": 1785700,
-              "bidcycle": 8,
-              "bidtype": "询价",
-              "budget": 1789600,
-              "buyer": "海南省安宁医院",
-              "city": "海口市",
-              "firsttime": 1595994487,
-              "infoid": "ABCY2FddDJYNyg7AnRhc3IwDyc4ASJjR1JyP1g7ID0gUX5zZyNUChM%3D",
-              "projectname": "2020年海南省安宁医院医疗设备一批采购项目",
-              "review_experts": [
-                "闫鹏",
-                "陈斌斌",
-                "张秋元"
-              ],
-              "s_winner": ":江西涵泊医疗器械有限公司"
-            }
-          ],
+          lists: [],
           winner: '',
           winner: '',
           buyer: ''
           buyer: ''
         }
         }
@@ -175,8 +136,47 @@
       created () {
       created () {
         this.winner = decodeURIComponent(utils.getParam('winner'))
         this.winner = decodeURIComponent(utils.getParam('winner'))
         this.buyer = decodeURIComponent(utils.getParam('buyer'))
         this.buyer = decodeURIComponent(utils.getParam('buyer'))
+        this.getList()
       },
       },
       methods: {
       methods: {
+        getList: function () {
+          var _this = this
+          var data = sessionStorage.getItem('analysis_other_project')
+          $.ajax({
+            type:'POST',
+            url:'/bigmember/decision/projectInfoByBW',
+            data: data,
+            contentType: 'application/json;charset=utf-8' ,
+            success:function(res) {
+              if(res.error_code == 0) {
+                res.data.forEach(function (item,i) {
+                  if (item.budget && item.budget !== '') {
+                    item.budget = (item.budget / 10000).fixed(2)
+                  } else {
+                    item.budget = '-'
+                  }
+                  if (item.bidamount && item.bidamount !== '') {
+                    item.bidamount = (item.bidamount / 10000).fixed(2)
+                  } else {
+                    item.bidamount = '--'
+                  }
+                  if(item.project_rate){
+                    item.project_rate = (item.project_rate*100).fixed(2) + '%'
+                  }
+                  if(item.firsttime){
+                    item.firsttime = new Date(Number(item.firsttime + '000')).pattern('yyyy/MM/dd')
+                  }
+                })
+                _this.lists = res.data
+              } else {
+                console.log(res.error_code)
+              }
+            },
+            error:function(err) {
+              console.log(err)
+            }
+          })
+        },
         goProjectDetail: function (id) {
         goProjectDetail: function (id) {
           var that = this
           var that = this
           $.ajax({
           $.ajax({

+ 44 - 32
src/jfw/modules/app/src/web/templates/big-member/page_unit_portrayal.html

@@ -78,29 +78,50 @@
                 </div>
                 </div>
                 <p class="region">所在地:${statistics.province || '--'} ${statistics.city}</p>
                 <p class="region">所在地:${statistics.province || '--'} ${statistics.city}</p>
                 <p class="buyer-type">采购单位类型:${statistics.buyerClass || '--'}</p>
                 <p class="buyer-type">采购单位类型:${statistics.buyerClass || '--'}</p>
-                <div class="buyer-info">
-                    <div class="bi-item">
-                        <span>采购项目数量</span>
-                        <span>${statistics.buyerCount || '--'}</span>
-                    </div>
-                    <div class="bi-item">
-                        <span>采购规模</span>
-                        <span>${statistics.buyerScale || '--'}</span>
-                    </div>
-                    <div class="bi-item">
-                        <span>中标企业数量</span>
-                        <span>${statistics.winnerCount || '--'}</span>
-                    </div>
-                    <div class="bi-item">
-                        <span>外省中标企业</span>
-                        <span>${statistics.otherWinner || '--'}</span>
-                    </div>
-                    <div class="bi-item">
-                        <span>流标记录数</span>
-                        <span>${statistics.fail_count || '--'}</span>
-                    </div>
-                </div>
-                <div class="static-scope">数据统计范围:${statistics.start || '-'}-${statistics.end}</div>
+            </div>
+            <!-- 采购单位通讯录 -->
+            <div v-if="getStatus">
+              <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/01-bg.png') no-repeat;background-size:100% 100%">
+                <p class="example-title">采购单位通讯录</p>
+                <buyer-example :status="bigStatus" :power="power" type="item_1" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/01.png'></buyer-example>
+              </div>
+            </div>
+            <!-- 采购单位通讯录 -->
+            <hispro-component v-else class="history-list" type="buyer" :buyer="buyer.name"></hispro-component>
+            <!-- 高级分析设置 -->
+            <!-- 高级分析 -->
+            <div class="win-analyse">
+              <span class="win-bid-title">采购单位分析</span>
+              <div class="high-link" @click="goHighSet">
+                <span>高级分析设置</span>
+                <van-icon name="arrow"></van-icon>
+              </div>
+            </div>
+            <div class="buyer-statistic">
+              <div class="statistic-title">统计信息</div>
+              <div class="buyer-info">
+                  <div class="bi-item">
+                      <span>采购项目数量</span>
+                      <span>${statistics.buyerCount || '--'}</span>
+                  </div>
+                  <div class="bi-item">
+                      <span>采购规模</span>
+                      <span>${statistics.buyerScale || '--'}</span>
+                  </div>
+                  <div class="bi-item">
+                      <span>中标企业数量</span>
+                      <span>${statistics.winnerCount || '--'}</span>
+                  </div>
+                  <div class="bi-item">
+                      <span>外省中标企业</span>
+                      <span>${statistics.otherWinner || '--'}</span>
+                  </div>
+                  <div class="bi-item">
+                      <span>流标记录数</span>
+                      <span>${statistics.fail_count || '--'}</span>
+                  </div>
+              </div>
+              <div class="static-scope">数据统计范围:${statistics.start || '-'}-${statistics.end}</div>
             </div>
             </div>
             <div class="empty" v-show="allNot">
             <div class="empty" v-show="allNot">
                 <div class="j-img img-empty empty-img"></div>
                 <div class="j-img img-empty empty-img"></div>
@@ -128,17 +149,8 @@
                     </div>
                     </div>
                 </div>
                 </div>
             </div>
             </div>
-            <!-- 历史项目联系人 -->
-            <div v-if="getStatus">
-              <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/01-bg.png') no-repeat;background-size:100% 100%">
-                <p class="example-title">历史项目联系方式</p>
-                <buyer-example :status="bigStatus" :power="power" type="item_1" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/01.png'></buyer-example>
-              </div>
-            </div>
             <!-- 数据部分 -->
             <!-- 数据部分 -->
             <div>
             <div>
-              <!-- 历史项目联系人 -->
-              <hispro-component class="history-list" type="buyer" :buyer="buyer.name"></hispro-component>
               <!-- 年度项目统计 -->
               <!-- 年度项目统计 -->
               <div class="years" v-if="isShow.showYearData">
               <div class="years" v-if="isShow.showYearData">
                   <div class="chart_title">年度项目统计</div>
                   <div class="chart_title">年度项目统计</div>

+ 44 - 0
src/web/staticres/big-member/css/unit_portrayal.css

@@ -20,6 +20,50 @@
     color: #5F5E64;
     color: #5F5E64;
     font-size: .24rem;
     font-size: .24rem;
     line-height: .36rem;
     line-height: .36rem;
+}.win-analyse{
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: .24rem .32rem;
+  margin-top: .24rem;
+  background: #fff;
+}
+.win-bid-title{
+  position: relative;
+  padding-left: .16rem;
+  color: #171826;
+  font-size: .36rem;
+  line-height: .52rem;
+}
+.win-bid-title::after{
+  position: absolute;
+  content: '';
+  width:3px;
+  height: .32rem;
+  background: #2abed1;
+  border-radius: 11px;
+  left:0;
+  top: 50%;
+  transform: translateY(-50%);
+}
+.win-analyse .high-link{
+  display: flex;
+  align-items: center;
+  color: #2abed1;
+  font-size: .28rem;
+}
+.win-analyse .high-link > span{
+  margin-right: .08rem;
+}
+.buyer-statistic{
+  margin-top: 0.08rem;
+  background: #fff;
+}
+.statistic-title{
+  padding: .32rem .32rem .12rem;
+  color: #171826;
+  line-height: .52rem;
+  font-size: .36rem;
 }
 }
 .buyer-type{
 .buyer-type{
     margin-top: 0.04rem;
     margin-top: 0.04rem;

+ 49 - 10
src/web/staticres/big-member/js/unit_portrayal.js

@@ -163,8 +163,17 @@ var vNode = {
     },
     },
     mounted: function () {
     mounted: function () {
         this.buyer.name = decodeURIComponent(utils.getParam('entName'));
         this.buyer.name = decodeURIComponent(utils.getParam('entName'));
-        this.getNewMsg(); // 中标动态
-        this.getChartData(); // 企业画像
+        var storageSet = JSON.parse(sessionStorage.getItem('buyer_high_set'))
+        if (storageSet && !this.getStatus) {
+          this.getNewMsg(); // 中标动态
+          this.getChartData(); // 企业画像
+        }
+        var storageName = decodeURIComponent(sessionStorage.getItem('buyer_high_name'))
+        // 判断如果url中的采购单位和高级分析设置中采购单位不一致就清除高级分析设置中存的筛选条件
+        if (storageName && storageName !== this.buyer.name) {
+          sessionStorage.removeItem('buyer_high_set')
+          sessionStorage.removeItem('buyer_high_name')
+        }
     },
     },
     beforeDestroy() {
     beforeDestroy() {
         window.removeEventListener("resize", this.init,20);
         window.removeEventListener("resize", this.init,20);
@@ -183,6 +192,7 @@ var vNode = {
             type: 'GET',
             type: 'GET',
             url: '/bigmember/use/isAdd?t=' + Date.now(),
             url: '/bigmember/use/isAdd?t=' + Date.now(),
             success: function (res) {
             success: function (res) {
+              _this.chartLoading = false
               if (res.data) {
               if (res.data) {
                 _this.power = res.data.power
                 _this.power = res.data.power
                 _this.bigStatus = res.data.memberStatus
                 _this.bigStatus = res.data.memberStatus
@@ -308,6 +318,7 @@ var vNode = {
         // 获取中标动态数据
         // 获取中标动态数据
         getNewMsg: function(){
         getNewMsg: function(){
           var that = this;
           var that = this;
+          var storageSet = JSON.parse(sessionStorage.getItem('buyer_high_set'))
           var data = {
           var data = {
               buyer: decodeURIComponent(utils.getParam('entName')),
               buyer: decodeURIComponent(utils.getParam('entName')),
               count: that.dt.pageCount,
               count: that.dt.pageCount,
@@ -316,7 +327,7 @@ var vNode = {
           $.ajax({
           $.ajax({
             type:'POST',
             type:'POST',
             url:'/bigmember/portrait/buyer/getNewMsg',
             url:'/bigmember/portrait/buyer/getNewMsg',
-            data:data,
+            data:storageSet ? Object.assign(data, storageSet) : data,
             success:function(res) {
             success:function(res) {
               if(res.error_code == 0) {
               if(res.error_code == 0) {
                 if (res.data.list && res.data.list.length && res.data.list.length > 0) {
                 if (res.data.list && res.data.list.length && res.data.list.length > 0) {
@@ -360,12 +371,15 @@ var vNode = {
         // 获取采购单位画像所有数据
         // 获取采购单位画像所有数据
         getChartData: function() {
         getChartData: function() {
           var that = this;
           var that = this;
+          var storageSet = JSON.parse(sessionStorage.getItem('buyer_high_set'))
+          var data = {
+            buyer: decodeURIComponent(utils.getParam('entName'))
+          }
+          that.chartLoading = true
           $.ajax({
           $.ajax({
             type:'POST',
             type:'POST',
             url:'/bigmember/portrait/buyer/getData',
             url:'/bigmember/portrait/buyer/getData',
-            data:{
-              buyer: decodeURIComponent(utils.getParam('entName'))
-            },
+            data:storageSet ? Object.assign(data, storageSet) : data,
             success:function(res) {
             success:function(res) {
                 if(res.error_code == 0) {
                 if(res.error_code == 0) {
                   if(res.data && Object.keys(res.data).length > 0) {
                   if(res.data && Object.keys(res.data).length > 0) {
@@ -494,16 +508,22 @@ var vNode = {
         formatYearsData: function(data) {
         formatYearsData: function(data) {
           if(data && Object.keys(data).length > 0){
           if(data && Object.keys(data).length > 0){
             var rows = [];
             var rows = [];
+            var count = 0
             for (var key in data) {
             for (var key in data) {
               rows.push({
               rows.push({
                 '年份': key,
                 '年份': key,
                 '项目数量': data[key].Count,
                 '项目数量': data[key].Count,
                 '项目金额': (data[key].Money/10000).fixed(0),
                 '项目金额': (data[key].Money/10000).fixed(0),
               })
               })
+              count += data[key].Count
+            }
+            if (count !== 0) {
+              this.projectData.columns = ['年份', '项目数量', '项目金额'];
+              this.projectData.rows = rows;
+              this.isShow.showYearData = true;
+            } else {
+              this.isShow.showYearData = false;
             }
             }
-            this.projectData.columns = ['年份', '项目数量', '项目金额'];
-            this.projectData.rows = rows;
-            this.isShow.showYearData = true;
           }
           }
         },
         },
         // 3.处理月度采购规模数据
         // 3.处理月度采购规模数据
@@ -512,9 +532,13 @@ var vNode = {
             var rows = [];
             var rows = [];
             var columns = ['月份'];
             var columns = ['月份'];
             var count = 0;
             var count = 0;
+            var allNum = []
             var yearArr = []
             var yearArr = []
             for (var key in data) {
             for (var key in data) {
               yearArr.push(parseInt(key))
               yearArr.push(parseInt(key))
+              for(var n in data[key]) {
+                allNum.push(data[key][n])
+              }
             }
             }
             yearArr.sort(function (a, b) { return a - b })
             yearArr.sort(function (a, b) { return a - b })
             yearArr.forEach(function (item) {
             yearArr.forEach(function (item) {
@@ -537,8 +561,9 @@ var vNode = {
               })
               })
               rows.push(columnsItem)
               rows.push(columnsItem)
             }
             }
+            var maxNum = Math.max.apply(Math, allNum.map(function(o) { return o }))
             // 数据总量为0,不赋值
             // 数据总量为0,不赋值
-            if (count != 0) {
+            if (count != 0 && maxNum !== 0) {
               this.monthScaleData.columns = columns;
               this.monthScaleData.columns = columns;
               this.monthScaleData.rows = rows;
               this.monthScaleData.rows = rows;
               this.isShow.showMonthScale = true;
               this.isShow.showMonthScale = true;
@@ -1242,6 +1267,20 @@ var vNode = {
             })
             })
             return maxIndex
             return maxIndex
         },
         },
+        goHighSet: function() {
+          if (!this.getStatus) {
+            location.href = '/big/wx/page/free_high_set?header=采购单位高级分析设置&entName=' + decodeURIComponent(utils.getParam('entName'))
+          } else {
+            this.$dialog.confirm({
+              className:'promatch',
+              title: '您暂无使用权限',
+              message: '您未购买此服务,如需使用请联系您的销售人员或客服升级套餐,谢谢!',
+              showCancelButton: false,
+              confirmButtonColor: '#2cb7ca',
+              confirmButtonText: '我知道了'
+            }).then(function () {})
+          }
+        }
     }
     }
 }
 }
 var unit = new Vue(vNode)
 var unit = new Vue(vNode)

+ 36 - 1
src/web/staticres/big-member/weixin/css/ent_portrait.css

@@ -105,7 +105,7 @@
     padding: .32rem 0 .12rem;
     padding: .32rem 0 .12rem;
     width: 100%;
     width: 100%;
     font-size: .36rem;
     font-size: .36rem;
-    font-weight: 700;
+    /* font-weight: 700; */
     line-height: .52rem;
     line-height: .52rem;
     color: #171826;
     color: #171826;
 }
 }
@@ -383,3 +383,38 @@
     text-decoration: underline;
     text-decoration: underline;
     margin-right: .08rem;
     margin-right: .08rem;
 }
 }
+.win-analyse{
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: .24rem .32rem;
+  margin-top: .24rem;
+  background: #fff;
+}
+.win-bid-title{
+  position: relative;
+  padding-left: .16rem;
+  color: #171826;
+  font-size: .36rem;
+  line-height: .52rem;
+}
+.win-bid-title::after{
+  position: absolute;
+  content: '';
+  width:3px;
+  height: .32rem;
+  background: #2abed1;
+  border-radius: 11px;
+  left:0;
+  top: 50%;
+  transform: translateY(-50%);
+}
+.win-analyse .high-link{
+  display: flex;
+  align-items: center;
+  color: #2abed1;
+  font-size: .28rem;
+}
+.win-analyse .high-link > span{
+  margin-right: .08rem;
+}

+ 2 - 1
src/web/staticres/common-module/big-member/css/high_set.css

@@ -101,7 +101,8 @@
   color: #2abed1;
   color: #2abed1;
 }
 }
 .select-area-box .van-index-bar__sidebar{
 .select-area-box .van-index-bar__sidebar{
-  top: 60%;
+  top: inherit;
+  bottom: 20%;
 }
 }
 .van-index-bar__index{
 .van-index-bar__index{
   line-height: 18px;
   line-height: 18px;

+ 12 - 12
src/web/staticres/common-module/big-member/js/ent_project_news.js

@@ -240,22 +240,22 @@ var vConfig = {
             var _this = this
             var _this = this
             var t = this.listState
             var t = this.listState
             t.loading = true
             t.loading = true
-
+            var storageSet = JSON.parse(sessionStorage.getItem('winner_high_set'))
             var url = this.projectNewUrl
             var url = this.projectNewUrl
-
+            var data = {
+              entId: _this.entInfo.eid,
+              match: _this.searchInfo.content,
+              matchType: _this.searchFilters.matchType.join(','),
+              area: _this.searchFilters.area.join(','),
+              infoType: _this.searchFilters.infoType.join(','),
+              pushTime: _this.searchFilters.pushTime.join(','),
+              pageNum: _this.listState.pageNum,
+              pageSize: _this.listState.pageSize,
+            }
             $.ajax({
             $.ajax({
                 type: 'POST',
                 type: 'POST',
                 url: url,
                 url: url,
-                data: {
-                    entId: _this.entInfo.eid,
-                    match: _this.searchInfo.content,
-                    matchType: _this.searchFilters.matchType.join(','),
-                    area: _this.searchFilters.area.join(','),
-                    infoType: _this.searchFilters.infoType.join(','),
-                    pushTime: _this.searchFilters.pushTime.join(','),
-                    pageNum: _this.listState.pageNum,
-                    pageSize: _this.listState.pageSize,
-                },
+                data: storageSet ? Object.assign(data, storageSet) : data,
                 success: function (res) {
                 success: function (res) {
                     if (res.data) {
                     if (res.data) {
                         // 判断是否为刷新
                         // 判断是否为刷新

+ 238 - 58
src/web/staticres/common-module/big-member/js/high_set.js

@@ -1,21 +1,37 @@
-var matchTypeListForComputed = [
+var winnerMatchTypeList = [
   {
   {
-      label: '项目名称/标的物',
-      value: 'purchasing'
+    label: '项目名称/标的物',
+    value: 'purchasing'
   },
   },
   {
   {
-    label: '中标企业',
-    value: 'winner'
+    label: '采购单位',
+    value: 'buyer'
+  },
+  {
+    label: '招标代理机构',
+    value: 'agency'
+  }
+]
+var buyerMatchTypeList = [
+  {
+    label: '项目名称/标的物',
+    value: 'purchasing'
   },
   },
   {
   {
-      label: '采购单位',
-      value: 'buyer'
+    label: '中标企业',
+    value: 'winner'
   },
   },
   {
   {
-      label: '招标代理机构',
-      value: 'agency'
+    label: '招标代理机构',
+    value: 'agency'
   }
   }
 ]
 ]
+var matchTypeList = []
+if (utils.getParam('header').indexOf('采购单位') > -1) {
+  matchTypeList = buyerMatchTypeList
+} else {
+  matchTypeList = winnerMatchTypeList
+}
 var highSet = new Vue({
 var highSet = new Vue({
   delimiters: ['${', '}'],
   delimiters: ['${', '}'],
   el: '#high-set',
   el: '#high-set',
@@ -30,11 +46,11 @@ var highSet = new Vue({
     return {
     return {
       conf: {
       conf: {
         keywords: '',
         keywords: '',
-        scope: '',
-        area: '',
-        industry: '',
-        start: '',
-        end: '',
+        scope: '项目名称/标的物',
+        area: '全国',
+        industry: '全部',
+        start: new Date().getFullYear() - 2 + '',
+        end: new Date().getFullYear() + '',
         match: 1
         match: 1
       },
       },
       popInfo: {
       popInfo: {
@@ -43,7 +59,8 @@ var highSet = new Vue({
         type: ''
         type: ''
       },
       },
       entInfo: {
       entInfo: {
-        eid: ''
+        eid: '',
+        entName: ''
       },
       },
       reqSign: 'bigmember',
       reqSign: 'bigmember',
       filterInitData: {
       filterInitData: {
@@ -52,8 +69,10 @@ var highSet = new Vue({
         timeRange: [],
         timeRange: [],
         industry: []
         industry: []
       },
       },
+      selectAreaList: ['全国'],
       selectIndustryList: [],
       selectIndustryList: [],
-      matchTypeList: matchTypeListForComputed,
+      selectScopeList: ['purchasing'],
+      matchTypeList: matchTypeList,
       startRange: [],
       startRange: [],
       endRange: []
       endRange: []
     }
     }
@@ -66,16 +85,22 @@ var highSet = new Vue({
       var industry = this.conf.industry
       var industry = this.conf.industry
       var start = this.conf.start
       var start = this.conf.start
       var end = this.conf.end
       var end = this.conf.end
-      return !(key && scope && area && industry && start && end)
+      return !(key || scope || area || industry || start || end)
     },
     },
     hasSpace () {
     hasSpace () {
       var key = this.conf.keywords
       var key = this.conf.keywords
       return key.length > 1 && key.replace(/^\s\s*/,'').indexOf(' ') > -1
       return key.length > 1 && key.replace(/^\s\s*/,'').indexOf(' ') > -1
     },
     },
     filterInfoUrl: function () {
     filterInfoUrl: function () {
+      var path = ''
+      if (this.entInfo.eid) {
+        path = 'winner/selects'
+      } else if (this.entInfo.entName) {
+        path = 'buyer/selects'
+      }
       var urlMap = {
       var urlMap = {
-          bigmember: '/bigmember/portrait/winner/getNewMsgSelects', // 大会员
-          svip: '/bigmember/portrait/subVipPortrait/getNewMsgSelects' // 超级订阅
+          bigmember: '/bigmember/portrait/' + path, // 大会员
+          svip: '/bigmember/portrait/subVipPortrait/selects' // 超级订阅
       }
       }
       var url = urlMap.bigmember
       var url = urlMap.bigmember
       if (urlMap[this.reqSign]) {
       if (urlMap[this.reqSign]) {
@@ -87,17 +112,63 @@ var highSet = new Vue({
   created () {
   created () {
     var eid = utils.getParam('eid')
     var eid = utils.getParam('eid')
     var reqSign = utils.getParam('reqSign')
     var reqSign = utils.getParam('reqSign')
+    var entName = decodeURIComponent(utils.getParam('entName'))
+    var winnerStorage = JSON.parse(sessionStorage.getItem('winner_high_set'))
+    var buyerStorage = JSON.parse(sessionStorage.getItem('buyer_high_set'))
     if (eid) {
     if (eid) {
       this.entInfo.eid = decodeURIComponent(eid)
       this.entInfo.eid = decodeURIComponent(eid)
+      if (winnerStorage) {
+        this.formatterStorage(winnerStorage)
+      }
+    }
+    if (entName) {
+      this.entInfo.entName = entName
+      if (buyerStorage) {
+        this.formatterStorage(buyerStorage)
+      }
     }
     }
     if (reqSign) {
     if (reqSign) {
       this.reqSign = reqSign
       this.reqSign = reqSign
     }
     }
   },
   },
   mounted () {
   mounted () {
+    var header = decodeURIComponent(utils.getParam('header'))
+    this.setHeaderTitle(header)
     this.getFilterApi()
     this.getFilterApi()
   },
   },
   methods: {
   methods: {
+    // 设置title
+    setHeaderTitle: function setHeaderTitle (header) {
+      document.title = header || document.title
+    },
+    // 将缓存中的项目搜索范围英文字段转换为中文用于在输入框展示
+    formatterLabel: function(data) {
+      var arr = []
+      var list = this.matchTypeList
+      var sArr = data.split(',')
+      list.forEach(function(item){
+        sArr.forEach(function(v){
+          if(item.value == v) {
+            arr.push(item.label)
+          }
+        })
+      })
+      return arr.join(',')
+    },
+    // 回显缓存中的数据
+    formatterStorage: function (data) {
+      var timeRange = data.timeRange.split('_')
+      this.conf.keywords = data.match
+      this.conf.area = data.area ? data.area : '全国'
+      this.conf.scope = this.formatterLabel(data.matchRange)
+      this.conf.industry = data.scopeClass ? data.scopeClass : '全部'
+      this.conf.start = timeRange[0]
+      this.conf.end = timeRange[1]
+      this.conf.match = data.exactMatch
+      this.selectAreaList = data.area ? data.area.split(',') : ['全国']
+      this.selectScopeList = data.matchRange.split(',')
+      this.selectIndustryList = data.scopeClass.split(',')
+    },
     // 取近四年的年份
     // 取近四年的年份
     getCurFourYears: function () {
     getCurFourYears: function () {
       var endYear = new Date().getFullYear()
       var endYear = new Date().getFullYear()
@@ -108,12 +179,12 @@ var highSet = new Vue({
       }
       }
       return years
       return years
     },
     },
+    // 处理截止日期
     getEndRangeYears: function () {
     getEndRangeYears: function () {
       var endArr = []
       var endArr = []
       var years = this.getCurFourYears()
       var years = this.getCurFourYears()
       var start = this.conf.start
       var start = this.conf.start
       if (start) {
       if (start) {
-        // end = years.slice()
         endArr = years.filter(function (v) {
         endArr = years.filter(function (v) {
           return v.replace('年', '') >= start.replace('年', '')
           return v.replace('年', '') >= start.replace('年', '')
         })
         })
@@ -122,6 +193,13 @@ var highSet = new Vue({
       }
       }
       return endArr
       return endArr
     },
     },
+    showToast: function (message) {
+      this.$toast({
+          duration: 1500,
+          forbidClick: true,
+          message: message,
+      })
+    },
     showLoading: function () {
     showLoading: function () {
       var loading = this.$toast.loading({
       var loading = this.$toast.loading({
         duration: 0,
         duration: 0,
@@ -130,15 +208,19 @@ var highSet = new Vue({
       })
       })
       return loading
       return loading
     },
     },
+    // 获取筛选条件
     getFilterApi () {
     getFilterApi () {
       var _this = this
       var _this = this
       var loading = this.showLoading()
       var loading = this.showLoading()
+      var data = this.entInfo.eid ? {
+        entId: _this.entInfo.eid
+      } : {
+        buyer: _this.entInfo.entName
+      }
       $.ajax({
       $.ajax({
           type: 'POST',
           type: 'POST',
           url: this.filterInfoUrl,
           url: this.filterInfoUrl,
-          data: {
-            entId: _this.entInfo.eid
-          },
+          data: data,
           success: function (res) {
           success: function (res) {
             if (res.error_code == 0) {
             if (res.error_code == 0) {
               loading.clear()
               loading.clear()
@@ -154,6 +236,37 @@ var highSet = new Vue({
           }
           }
       })
       })
     },
     },
+    // 选择器
+    popClick: function (type) {
+      this.popInfo.type = type
+      switch (type) {
+        case 'scope':
+          this.popInfo.show = true
+          this.initSelector()
+          this.popInfo.title = '请选择项目搜索范围'
+          break;
+        case 'area':
+          this.popInfo.show = true
+          this.initSelector(this.filterInitData)
+          this.popInfo.title = '请选择项目地区'
+          break;
+        case 'industry':
+          this.popInfo.show = true
+          this.initSelector(this.filterInitData)
+          this.popInfo.title = '请选择行业'
+          break;
+        case 'start':
+          this.popInfo.show = true
+          this.initSelector()
+          this.popInfo.title = '请选择开始年份'
+          break;
+        case 'end':
+          this.popInfo.show = true
+          this.initSelector()
+          this.popInfo.title = '请选择结束年份'
+          break;
+      }
+    },
     initSelector: function (data) {
     initSelector: function (data) {
       var _this = this
       var _this = this
       this.$nextTick(function() {
       this.$nextTick(function() {
@@ -162,10 +275,12 @@ var highSet = new Vue({
             _this.initMatchTypeSelector()
             _this.initMatchTypeSelector()
             break;
             break;
           case 'area':
           case 'area':
+            _this.filterInitData.areaArr = data.areaArr
             _this.initProjectAreaSelector(data.areaArr)
             _this.initProjectAreaSelector(data.areaArr)
             break;
             break;
           case 'industry':
           case 'industry':
-            _this.selectIndustryList = ['建筑工程_勘察设计']
+            _this.filterInitData.industry = data.scopeArr
+            _this.initProjectIndustrySelector(data.scopeArr)
             break;
             break;
           case 'start':
           case 'start':
             _this.startRange = _this.getCurFourYears()
             _this.startRange = _this.getCurFourYears()
@@ -176,9 +291,11 @@ var highSet = new Vue({
         }
         }
       })
       })
     },
     },
+    // 项目搜索范围
     initMatchTypeSelector: function () {
     initMatchTypeSelector: function () {
-      // this.$refs.matchTypeSelector.setState(this.searchFilters.matchType)
+      this.$refs.matchTypeSelector.setState(this.selectScopeList)
     },
     },
+    // 过滤地区
     initProjectAreaSelector: function (areaArr) {
     initProjectAreaSelector: function (areaArr) {
       if (!Array.isArray(areaArr)) return
       if (!Array.isArray(areaArr)) return
       if (areaArr.indexOf('全国') === -1) {
       if (areaArr.indexOf('全国') === -1) {
@@ -198,67 +315,87 @@ var highSet = new Vue({
         }
         }
       }
       }
       this.$refs.projectAreaSelector.arrangeListMap(map)
       this.$refs.projectAreaSelector.arrangeListMap(map)
+      console.log(this.selectAreaList, '111')
+      this.$refs.projectAreaSelector.setState(this.selectAreaList)
+    },
+    // 过滤行业数据
+    initProjectIndustrySelector: function (data) {
+      var arr = []
+      data.forEach(function(s) {
+        var key = s.substring(0, s.indexOf('_'))
+        var value = s.substring(s.indexOf('_') + 1)
+        arr.push({
+          name: key,
+          value: value
+        })
+      })
+      var newArr = []
+      arr.forEach(function(item, index) {
+        let newItem = newArr.find(function(i) {
+          return i.name == item.name
+        })
+        if (!newItem) {
+          newArr.push({
+            name: item.name,
+            value: [item.value]
+          })
+        } else {
+          newItem.value.push(item.value)
+        }
+      })
+      var resArr = []
+      newArr.forEach(function(s) {
+        var obj = {}
+        obj[s.name] = s.value
+        resArr.push(obj)
+      })
+      console.log(resArr, '过滤好的行业数据')
+      this.$refs.industryCom.formatIndustryData(resArr)
+      this.$refs.industryCom.setState(this.selectIndustryList)
     },
     },
+    // 分析方式
     checkMatch: function (item) {
     checkMatch: function (item) {
       this.conf.match = item
       this.conf.match = item
     },
     },
     onKeywords: function (val) {
     onKeywords: function (val) {
+      // 过滤首个空格
       this.conf.keywords = val.replace(/^\s\s*/,'')
       this.conf.keywords = val.replace(/^\s\s*/,'')
     },
     },
-    popClick: function (type) {
-      this.popInfo.type = type
-      switch (type) {
-        case 'scope':
-          this.popInfo.show = true
-          this.initSelector(this.filterInitData)
-          this.popInfo.title = '请选择项目搜索范围'
-          break;
-        case 'area':
-          this.popInfo.show = true
-          this.initSelector(this.filterInitData)
-          this.popInfo.title = '请选择项目地区'
-          break;
-        case 'industry':
-          this.popInfo.show = true
-          this.popInfo.title = '请选择行业'
-          break;
-        case 'start':
-          this.popInfo.show = true
-          this.initSelector()
-          this.popInfo.title = '请选择开始年份'
-          break;
-        case 'end':
-          this.popInfo.show = true
-          this.initSelector()
-          this.popInfo.title = '请选择结束年份'
-          break;
+    onCancel: function (data) {
+      if (!data) {
+        this.selectScopeList = ['purchasing']
+        this.$refs.matchTypeSelector.setState(this.selectScopeList)
+      } else if (data.name == 'areaItem') {
+        this.$refs.projectAreaSelector.setState(this.selectAreaList)
+      } else if (data.name == 'industryItem') {
+        this.$refs.industryCom.setState(this.selectIndustryList)
       }
       }
-    },
-    onCancel: function () {
-
     },
     },
     onConfirm: function (data) {
     onConfirm: function (data) {
-      console.log(data, 'data')
+      console.log(data)
       if (data.name === 'areaItem') {
       if (data.name === 'areaItem') {
         if (data.data.length === 0) {
         if (data.data.length === 0) {
           this.conf.area = '全国'
           this.conf.area = '全国'
+          this.selectAreaList = ['全国']
         } else {
         } else {
           this.conf.area = data.data.join(',')
           this.conf.area = data.data.join(',')
+          this.selectAreaList = data.data
         }
         }
       } else if (data.name === 'scopeItem') {
       } else if (data.name === 'scopeItem') {
         if (data.data.length === 0) {
         if (data.data.length === 0) {
-          this.conf.scope = '全部'
+          this.conf.scope = ''
         } else {
         } else {
           this.conf.scope = data.checkedList.map(function(v) {
           this.conf.scope = data.checkedList.map(function(v) {
             return v.label
             return v.label
           }).join(',')
           }).join(',')
+          this.selectScopeList = data.data
         }
         }
-        
       } else if (data.name === 'industryItem') {
       } else if (data.name === 'industryItem') {
         if (data.data.length === 0) {
         if (data.data.length === 0) {
           this.conf.industry = '全部'
           this.conf.industry = '全部'
         } else {
         } else {
           this.conf.industry = data.data.join(',')
           this.conf.industry = data.data.join(',')
+          this.selectIndustryList = data.data
         }
         }
       } else if (data.name === 'yearsItem') {
       } else if (data.name === 'yearsItem') {
         if (data.type === 'start') {
         if (data.type === 'start') {
@@ -273,6 +410,49 @@ var highSet = new Vue({
     },
     },
     setToggle: function() {
     setToggle: function() {
       this.popInfo.show = false
       this.popInfo.show = false
+    },
+    // 开始分析
+    startStatistic: function() {
+      var conf = this.conf
+      var list = this.matchTypeList
+      var arr = []
+      var sArr = conf.scope.split(',')
+      list.forEach(function(item){
+        sArr.forEach(function(v){
+          if(item.label == v) {
+            arr.push(item.value)
+          }
+        })
+      })
+      var obj = {
+        match: conf.keywords,
+        exactMatch: conf.match,
+        matchRange: arr.join(','),
+        area: conf.area.indexOf('全国') > -1 ? '' : conf.area,
+        scopeClass: conf.industry.indexOf('全部') > -1 ? '' : conf.industry,
+        timeRange: conf.start.replace('年', '') + '_' + conf.end.replace('年', '')
+      }
+      if (this.entInfo.entName) {
+        window.sessionStorage.setItem('buyer_high_set', JSON.stringify(obj))
+        window.sessionStorage.setItem('buyer_high_name', encodeURIComponent(this.entInfo.entName))
+      } else if (this.entInfo.eid) {
+        window.sessionStorage.setItem('winner_high_set', JSON.stringify(obj))
+        window.sessionStorage.setItem('winner_high_eid', this.entInfo.eid)
+      }
+      window.history.back()
+    },
+    // 重置
+    onReset: function () {
+      this.conf.keywords = ''
+      this.conf.scope = '项目名称/标的物'
+      this.conf.area = '全国'
+      this.conf.industry = '全部'
+      this.conf.start = new Date().getFullYear() - 2 + '年'
+      this.conf.end = new Date().getFullYear() + '年'
+      this.conf.match = 1
+      this.filterInitData.area = []
+      this.selectIndustryList = []
+      this.selectScopeList = ['purchasing']
     }
     }
   }
   }
 })
 })

+ 63 - 38
src/web/staticres/common-module/collection/js/ent_portrait.js

@@ -144,6 +144,12 @@ var vNode = {
             // 获取企业基本信息
             // 获取企业基本信息
             this.getEntBaseInfo()
             this.getEntBaseInfo()
         }
         }
+        var storageId = sessionStorage.getItem('winner_high_eid')
+        // 判断如果url中的企业id和高级分析设置中存的企业id不一致就清除高级分析设置中存的筛选条件
+        if (storageId && storageId !== eId) {
+          sessionStorage.removeItem('winner_high_set')
+          sessionStorage.removeItem('winner_high_eid')
+        }
 
 
     },
     },
     mounted: function () {
     mounted: function () {
@@ -161,42 +167,42 @@ var vNode = {
         })
         })
     },
     },
     watch: {
     watch: {
-        // tabActiveName: function (newVal, oldVal) {
-        //     var _this = this
-        //     if (newVal == '2') {
-        //         this.$nextTick(function () {
-        //             if (_this.gotTab2) {
-        //                 // 初始化图表
-        //                 if (_this.entPortraitInfo && _this.conf.showPortraitAll && !_this.singleTab) {
-        //                     _this.initChartsData();
-        //                 }
-        //             } else {
-        //                 if (_this.conf._4) {
-        //                     // 获取企业画像信息-4
-        //                     _this.getEntPortrait(function () {
-        //                         _this.initChartsData()
-        //                     })
-        //                     _this.gotTab2 = true
-        //                     console.log('获取企业全景分析...')
-        //                 }
-        //                 // 获取企业中标动态-13
-        //                 if (_this.conf._13) {
-        //                     _this.getProjectNews()
-        //                     _this.gotTab2 = true
-        //                     console.log('获取企业中标动态...')
-        //                 }
-        //                 if(_this.powerInfo.memberStatus <= 0) {
-        //                     // 不是大会员点击中标信息使用次数加一
-        //                     // if(!_this.entvisit.visited) {
-        //                     //     _this.entvisit.usage++
-        //                     //     _this.entvisit.visited = true
-        //                     // }
-        //                 }
-        //                 _this.gotTab2 = true
-        //             }
-        //         });
-        //     }
-        // },
+        tabActiveName: function (newVal, oldVal) {
+            var _this = this
+            if (newVal == '2') {
+                this.$nextTick(function () {
+                    if (_this.gotTab2) {
+                        // 初始化图表
+                        if (_this.entPortraitInfo && _this.conf.showPortraitAll && !_this.singleTab) {
+                            _this.initChartsData();
+                        }
+                    } else {
+                        if (_this.conf._4) {
+                            // 获取企业画像信息-4
+                            _this.getEntPortrait(function () {
+                                _this.initChartsData()
+                            })
+                            _this.gotTab2 = true
+                            console.log('获取企业全景分析...')
+                        }
+                        // 获取企业中标动态-13
+                        if (_this.conf._13) {
+                            _this.getProjectNews()
+                            _this.gotTab2 = true
+                            console.log('获取企业中标动态...')
+                        }
+                        if(_this.powerInfo.memberStatus <= 0) {
+                            // 不是大会员点击中标信息使用次数加一
+                            // if(!_this.entvisit.visited) {
+                            //     _this.entvisit.usage++
+                            //     _this.entvisit.visited = true
+                            // }
+                        }
+                        _this.gotTab2 = true
+                    }
+                });
+            }
+        },
     },
     },
     computed: {
     computed: {
         // 3个权限有1个就为true(取反为3个权限1个都没有)
         // 3个权限有1个就为true(取反为3个权限1个都没有)
@@ -314,6 +320,8 @@ var vNode = {
         },
         },
         // 获取画像信息
         // 获取画像信息
         getEntPortrait: function (callback) {
         getEntPortrait: function (callback) {
+            var storageSet = JSON.parse(sessionStorage.getItem('winner_high_set'))
+            if (!storageSet) return
             var _this = this
             var _this = this
             var data = {
             var data = {
                 entId: _this.entInfo.id
                 entId: _this.entInfo.id
@@ -340,7 +348,7 @@ var vNode = {
             $.ajax({
             $.ajax({
                 type: 'POST',
                 type: 'POST',
                 url: urls,
                 url: urls,
-                data: data,
+                data: storageSet ? Object.assign(data, storageSet) : data,
                 success: function (res) {
                 success: function (res) {
                     if (res.error_code == 0) {
                     if (res.error_code == 0) {
                         _this.loading.clear()
                         _this.loading.clear()
@@ -413,6 +421,8 @@ var vNode = {
           },
           },
         // 获取项目动态
         // 获取项目动态
         getProjectNews: function () {
         getProjectNews: function () {
+            var storageSet = JSON.parse(sessionStorage.getItem('winner_high_set'))
+            if (!storageSet) return
             var _this = this
             var _this = this
             var data = {
             var data = {
                 entId: _this.entInfo.id,
                 entId: _this.entInfo.id,
@@ -427,7 +437,7 @@ var vNode = {
             $.ajax({
             $.ajax({
                 type: 'POST',
                 type: 'POST',
                 url: urls,
                 url: urls,
-                data: data,
+                data: storageSet ? Object.assign(data, storageSet) : data,
                 success: function (res) {
                 success: function (res) {
                     if (res.error_code == 0) {
                     if (res.error_code == 0) {
                         _this.loading.clear()
                         _this.loading.clear()
@@ -1083,6 +1093,21 @@ var vNode = {
                 sessionStorage.removeItem(this.sessKey)
                 sessionStorage.removeItem(this.sessKey)
             }
             }
             return !!$data
             return !!$data
+        },
+        // 高级分析设置
+        goHighSet () {
+          if (this.conf._4) {
+            location.href = '/big/wx/page/free_high_set?header=中标分析高级设置&eid=' + utils.getParam('eId')
+          } else {
+            this.$dialog.confirm({
+              className:'promatch',
+              title: '您暂无使用权限',
+              message: '您未购买此服务,如需使用请联系您的销售人员或客服升级套餐,谢谢!',
+              showCancelButton: false,
+              confirmButtonColor: '#2cb7ca',
+              confirmButtonText: '我知道了'
+            }).then(function () {})
+          }
         }
         }
     }
     }
 }
 }

+ 2 - 1
src/web/staticres/common-module/collection/js/history-project.js

@@ -1,7 +1,8 @@
 var historyProTemplate = `
 var historyProTemplate = `
 <div style="width:100%" v-if="list.length !== 0">
 <div style="width:100%" v-if="list.length !== 0">
   <div class="tab-card-title">
   <div class="tab-card-title">
-    <span class="win-bid-title">企业通讯录</span>
+    <span class="win-bid-title" v-if="type=='buyer'">采购单位通讯录</span>
+    <span class="win-bid-title" v-else>企业通讯录</span>
   </div>
   </div>
   <div class="tab-card-content">
   <div class="tab-card-content">
       <ul class="project-info-list">
       <ul class="project-info-list">

+ 39 - 24
src/web/staticres/common-module/collection/js/industry-mobile.js

@@ -70,6 +70,10 @@ var industryComponent = {
       default: function () {
       default: function () {
         return []
         return []
       }
       }
+    },
+    'onlyshowsome': {
+      type: Boolean,
+      default: false
     }
     }
   },
   },
   template: industryComponentTemplate,
   template: industryComponentTemplate,
@@ -77,7 +81,8 @@ var industryComponent = {
     return {
     return {
       tablist: [],
       tablist: [],
       checkedAll: false,
       checkedAll: false,
-      canClick: true
+      canClick: true,
+      industryData: []
     }
     }
   },
   },
   computed: {
   computed: {
@@ -91,38 +96,48 @@ var industryComponent = {
   },
   },
   methods: {
   methods: {
     // 获取行业数据
     // 获取行业数据
-    getIndustryData: function(){
+    getIndustryData: function(datas){
       const _this = this
       const _this = this
       $.ajax({
       $.ajax({
         url: '/publicapply/free/getindustrys',
         url: '/publicapply/free/getindustrys',
         type:'POST',
         type:'POST',
         success: function(res){
         success: function(res){
-          let maxarr = []
-          res.data.forEach(function(item,index) {
-            let minarr = []
-            let keyname = Object.keys(item)[0]
-            let eachArr = item[Object.keys(item)[0]]
-            eachArr.forEach(function(data, i){
-              data = {
-                name: data,
-                type: false
-              }
-              minarr.push(data)
-            })
-            let obj = {
-              [keyname]: minarr,
-              type: false
-            }
-            maxarr.push(obj)
-          })
-          _this.tablist = maxarr
-          _this.setState()
+          if (res.error_code == 0) {
+            _this.industryData = res.data
+            _this.formatIndustryData(datas)
+          }
         },
         },
         error: function(err){
         error: function(err){
           console.log(err)
           console.log(err)
         }
         }
       })
       })
     },
     },
+    formatIndustryData: function(datas) {
+      if (!this.onlyshowsome && !datas) {
+        datas = this.industryData
+      }
+      if (!datas) return
+      let maxarr = []
+      datas.forEach(function(item,index) {
+        let minarr = []
+        let keyname = Object.keys(item)[0]
+        let eachArr = item[Object.keys(item)[0]]
+        eachArr.forEach(function(data, i){
+          data = {
+            name: data,
+            type: false
+          }
+          minarr.push(data)
+        })
+        let obj = {
+          [keyname]: minarr,
+          type: false
+        }
+        maxarr.push(obj)
+      })
+      this.tablist = maxarr
+      this.setState()
+    },
     // 回显数据
     // 回显数据
     setState: function() {
     setState: function() {
       let indArr = this.selectindustrylist
       let indArr = this.selectindustrylist
@@ -139,7 +154,7 @@ var industryComponent = {
         indArr.forEach(function(sum) {
         indArr.forEach(function(sum) {
           newindArr.push(sum.split('_')[1])
           newindArr.push(sum.split('_')[1])
         })
         })
-        console.log(newindArr)
+        // console.log(newindArr)
         this.tablist.forEach(function(item){
         this.tablist.forEach(function(item){
           item[Object.keys(item)[0]].forEach(function(data) {
           item[Object.keys(item)[0]].forEach(function(data) {
             newindArr.forEach(function(sum) {
             newindArr.forEach(function(sum) {
@@ -236,7 +251,7 @@ var industryComponent = {
         itemall[Object.keys(itemall)[0]].forEach(function(data) {
         itemall[Object.keys(itemall)[0]].forEach(function(data) {
           let bool = true
           let bool = true
           if(data.type) {
           if(data.type) {
-            console.log(data)
+            // console.log(data)
             bool = false+''
             bool = false+''
           }
           }
           boolArr.push(bool)
           boolArr.push(bool)

+ 53 - 18
src/web/staticres/js/superSearch.js

@@ -99,6 +99,7 @@ $(function() {
 	})
 	})
 	//全文检索和标题检索切换
 	//全文检索和标题检索切换
 	$("#newsclass li:nth-child(2)").click(function(){
 	$("#newsclass li:nth-child(2)").click(function(){
+    // searchInnerVue.listState.total = totalPage
     // 重置全选按钮
     // 重置全选按钮
     $('.custom-checkbox.check-all').prop('checked', false)
     $('.custom-checkbox.check-all').prop('checked', false)
 		$(".tabContainer-2 .lucene ul").html("");
 		$(".tabContainer-2 .lucene ul").html("");
@@ -109,7 +110,9 @@ $(function() {
 		currentPage=1;
 		currentPage=1;
 		if(submitflag){
 		if(submitflag){
 			$(".hasNoData").hide();
 			$(".hasNoData").hide();
-			$(".working").show();
+      $(".working").show();
+      // 隐藏页码
+      searchInnerVue.showPage = false
 			$(".tabContainer").css("min-height","600px");
 			$(".tabContainer").css("min-height","600px");
 			selectType = "all";
 			selectType = "all";
 			searchOnsubmit();
 			searchOnsubmit();
@@ -127,7 +130,9 @@ $(function() {
 		currentPage=1;
 		currentPage=1;
 		if(submitflag){
 		if(submitflag){
 			$(".hasNoData").hide();
 			$(".hasNoData").hide();
-			$(".working").show();
+      $(".working").show();
+      // 隐藏页码
+      searchInnerVue.showPage = false
 			$(".tabContainer").css("min-height","600px");
 			$(".tabContainer").css("min-height","600px");
 			selectType = "title";
 			selectType = "title";
 			searchOnsubmit();
 			searchOnsubmit();
@@ -230,14 +235,17 @@ function getNewBids(pnum){
 				$(".nbnext").addClass("disabled");
 				$(".nbnext").addClass("disabled");
 			}else{
 			}else{
 				$(".nbnext").removeClass("disabled");
 				$(".nbnext").removeClass("disabled");
-			}
+      }
+      searchInnerVue.listState.total = Math.ceil(r.count/50)
 			appendDatas(r.list,false,true);
 			appendDatas(r.list,false,true);
 		}else{
 		}else{
 			submitflag=true;
 			submitflag=true;
 			$(".tabContainer").hide();
 			$(".tabContainer").hide();
 			$(".pagination").hide();
 			$(".pagination").hide();
 			$(".working").hide();
 			$(".working").hide();
-			$(".hasNoData").show();
+      $(".hasNoData").show();
+      // 隐藏页码
+      searchInnerVue.showPage = false
     }
     }
     getBidIsColl()
     getBidIsColl()
 	})
 	})
@@ -267,7 +275,11 @@ function getNewBiddings(){
 		notkey: $(".not-key-input-group input").val().slice(0, 10)
 		notkey: $(".not-key-input-group input").val().slice(0, 10)
       };
       };
 	$.post("/front/pcAjaxReq",param,function(r){
 	$.post("/front/pcAjaxReq",param,function(r){
+    // debugger
 		if(r&&r.list!=null&&r.list.length>0){
 		if(r&&r.list!=null&&r.list.length>0){
+      if (currentPage == 1) {
+        searchInnerVue.listState.total = Math.ceil(r.count/50)
+      }
 			$(".tabContainer").show();
 			$(".tabContainer").show();
 			//$(".pagination").show();
 			//$(".pagination").show();
 			$(".hasNoData").hide();
 			$(".hasNoData").hide();
@@ -291,7 +303,9 @@ function getNewBiddings(){
 			$(".tabContainer").hide();
 			$(".tabContainer").hide();
 			$(".pagination").hide();
 			$(".pagination").hide();
 			$(".working").hide();
 			$(".working").hide();
-			$(".hasNoData").show();
+      $(".hasNoData").show();
+      // 隐藏页码
+      searchInnerVue.showPage = false
     }
     }
     getBidIsColl()
     getBidIsColl()
 	})
 	})
@@ -304,7 +318,9 @@ function appendDatas(datas,flag,isNew,onlyUpdateTable){
 	var listHtml = '';
 	var listHtml = '';
 	var tableHtml = '';
 	var tableHtml = '';
 	$(".working").hide();
 	$(".working").hide();
-	$(".pagination").show();
+  $(".pagination").show();
+  // 显示页码
+  searchInnerVue.showPage = true
 	var searchvalueArray = searchvalue.split("+");
 	var searchvalueArray = searchvalue.split("+");
 	$(".pagination-inner").find("span").text(currentPage);
 	$(".pagination-inner").find("span").text(currentPage);
 	if(datas.length<pageSize){
 	if(datas.length<pageSize){
@@ -664,10 +680,14 @@ function getVIPData(clickpaging){
 	$(".tabContainer-2 .lucene").hide();
 	$(".tabContainer-2 .lucene").hide();
   $("#allnews").hide();
   $("#allnews").hide();
 	$(".pagination").hide();
 	$(".pagination").hide();
-	$(".working").show();
+  $(".working").show();
+  // 隐藏页码
+  searchInnerVue.showPage = false
 	if($("#zbSeatchT [name='keywords']").val()==""&&$("#zbSeatchT [name='keywords']").val()==""&&$("#zbSeatchT [name='industry']").val()==""){
 	if($("#zbSeatchT [name='keywords']").val()==""&&$("#zbSeatchT [name='keywords']").val()==""&&$("#zbSeatchT [name='industry']").val()==""){
 		$(".working").hide();
 		$(".working").hide();
-		$(".pagination").show();
+    $(".pagination").show();
+    // 显示页码
+    searchInnerVue.showPage = true
 		return true;
 		return true;
 	}
 	}
 	var tabflag = false;
 	var tabflag = false;
@@ -722,7 +742,9 @@ function getVIPData(clickpaging){
 				appendDatas(r.list,tlflag,true,true);
 				appendDatas(r.list,tlflag,true,true);
 			}else{
 			}else{
 				$(".working").hide();
 				$(".working").hide();
-				$(".hasNoData").show();
+        $(".hasNoData").show();
+        // 隐藏页码
+        searchInnerVue.showPage = false
 			}
 			}
       tabflag = true;
       tabflag = true;
       getBidIsColl()
       getBidIsColl()
@@ -735,7 +757,9 @@ function beforeSubmit(n){
   // 重置全选按钮
   // 重置全选按钮
   $('.custom-checkbox.check-all').prop('checked', false)
   $('.custom-checkbox.check-all').prop('checked', false)
 	$(".hasNoData").hide();
 	$(".hasNoData").hide();
-	$(".working").show();
+  $(".working").show();
+  // 隐藏页码
+  searchInnerVue.showPage = false
 	//$(".tabContainer-2 .lucene ul").html("");
 	//$(".tabContainer-2 .lucene ul").html("");
 	//$(".tabContainer-2 .lucene-table table tbody").html("");
 	//$(".tabContainer-2 .lucene-table table tbody").html("");
 	$(".tabContainer .lucene ul").html("");
 	$(".tabContainer .lucene ul").html("");
@@ -749,7 +773,9 @@ function beforeSubmit(n){
 	$("#allnews").hide();
 	$("#allnews").hide();
 	$(".pagination").hide();
 	$(".pagination").hide();
 	setTimeout(function(){
 	setTimeout(function(){
-		currentPage=1;
+    currentPage=1;
+    // 重置element ui页码为1
+    searchInnerVue.listState.num = 1
 		//时间
 		//时间
 		if(currentPage==1){
 		if(currentPage==1){
 			$(".nbprev").addClass("disabled");
 			$(".nbprev").addClass("disabled");
@@ -949,11 +975,13 @@ function searchOnsubmit(clickpaging){
 			LimitClass.result = r;
 			LimitClass.result = r;
 			LimitClass.list = r.list;
 			LimitClass.list = r.list;
 			LimitClass.paging(currentPage);
 			LimitClass.paging(currentPage);
-			LimitClass.prevNoLimitFlag = false;
+      LimitClass.prevNoLimitFlag = false;
+      // 重新分页
+      searchInnerVue.listState.total = r.totalPage
 		}else{
 		}else{
 			LimitClass.prevNoLimitFlag = true;
 			LimitClass.prevNoLimitFlag = true;
-			LimitClass.limitFlag = false;
-			pcAjaxReqCallBack(r);
+      LimitClass.limitFlag = false;
+      pcAjaxReqCallBack(r);
     }
     }
     getBidIsColl()
     getBidIsColl()
 	});
 	});
@@ -1023,7 +1051,9 @@ function pcAjaxReqCallBack(r){
 		$(".tabContainer").hide();
 		$(".tabContainer").hide();
 		$(".pagination").hide();
 		$(".pagination").hide();
 		$(".working").hide();
 		$(".working").hide();
-		$(".hasNoData").show();
+    $(".hasNoData").show();
+    // 隐藏页码
+    searchInnerVue.showPage = false
 		submitflag=true;
 		submitflag=true;
 	}else{
 	}else{
 		//$(".tabContainer").show();
 		//$(".tabContainer").show();
@@ -1050,16 +1080,21 @@ function afterAjaxReq(r){
 		searchvalue = r.searchvalue;
 		searchvalue = r.searchvalue;
 		totalPage = r.totalPage;
 		totalPage = r.totalPage;
 		list= r.list;
 		list= r.list;
-		secondList= r.secondList;
+    secondList= r.secondList;
+    // vue 重置总页数
+    searchInnerVue.listState.total = totalPage
 	}
 	}
 	if(secondFlag==""&&typeof(totalPage) != "undefined" && currentPage == 1){
 	if(secondFlag==""&&typeof(totalPage) != "undefined" && currentPage == 1){
 		if (r.totalPage==1){
 		if (r.totalPage==1){
 			totalPage = parseInt(r.count/pageSize)+1;
 			totalPage = parseInt(r.count/pageSize)+1;
 			if(totalPage>10){
 			if(totalPage>10){
 				totalPage=10;
 				totalPage=10;
-			}
+      }
+      // vue 重置总页数
+      searchInnerVue.listState.total = totalPage
 		}else{
 		}else{
-			totalPage = r.totalPage;
+      totalPage = r.totalPage;
+      searchInnerVue.listState.total = totalPage
 		}
 		}
 	}
 	}
 }
 }

+ 141 - 0
src/web/templates/big-member/wx/page_free_high_set.html

@@ -0,0 +1,141 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+
+<head>
+  <!--引入公共资源头部-->
+  {{include "/big-member/wx/meta.html"}}
+  <title></title>
+  <script src="/big-member/js/rem.js"></script>
+  <!--S-当前页必定需要预加载的资源-->
+  <link rel="preload" as="style" href=//cdn-common.jianyu360.com/cdn/lib/reset-css/5.0.1/reset.min.css />
+  <link rel="preload" as="style" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/index.css />
+  <link rel="preload" as="style" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/icon/local.css />
+  <!--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='{{Msg "seo" "cdn"}}/common-module/collection/css/index.css?v={{Msg "seo" "version"}}' />
+  <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/big-member/css/high_set.css?v={{Msg "seo" "version"}}' />
+  <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/big-member/css/pop_group.css?v={{Msg "seo" "version"}}' />
+  <!--E-当前页面的css资源-->
+  <style>
+    /* 修复微信ios滚动不到最底部的问题,可在微信开发者工具ios下复现 */
+    .fix-ios-scroll {
+      height: unset;
+    }
+    .fix-ios-scroll > .j-main {
+      display: flex;
+      flex-direction: column;
+    }
+    .fix-ios-scroll > .j-main .area-list,
+    .fix-ios-scroll > .j-main .unitTab {
+      height: unset;
+      flex: 1;
+      overflow: auto;
+    }
+  </style>
+</head>
+
+<body>
+  <div class="j-container">
+    <div class="j-main" id="high-set" v-cloak>
+      <div class="j-container">
+        <div class="j-main">
+          <div class="key-container">
+            <p class="key-title">关键词</p>
+            <van-field
+              v-model="conf.keywords"
+              rows="2"
+              autosize
+              type="textarea"
+              maxlength="50"
+              placeholder="多个关键词,用空格隔开"
+              @input="onKeywords"
+              show-word-limit
+            ></van-field>
+            <div class="match-container" v-show="hasSpace">
+              <p class="match-title">分析方式</p>
+              <div class="match-content">
+                <div class="match-item" :class="conf.match == 1 ? 'active' : ''" @click="checkMatch(1)">
+                  <div class="match-value">模糊匹配</div>
+                  <div class="match-label">包含其中1个关键词即可</div>
+                </div>
+                <div class="match-item" :class="conf.match == 0 ? 'active' : ''" @click="checkMatch(0)">
+                  <div class="match-value">精准分析</div>
+                  <div class="match-label">同时包含所有关键词</div>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="data-container">
+            <van-cell title="项目搜索范围" is-link :value="conf.scope" @click="popClick('scope')"></van-cell>
+            <van-cell title="项目地区" is-link :value="conf.area" @click="popClick('area')"></van-cell>
+            <van-cell title="行业" is-link :value="conf.industry" @click="popClick('industry')"></van-cell>
+          </div>
+          <div class="years-container">
+            <span class="year-label">分析年份</span>
+            <van-field class="year-input" :class="conf.start ? 'border-active' : ''" v-model="conf.start" readonly @click="popClick('start')"></van-field>
+            <em style="color: #ccc;">—</em>
+            <van-field class="year-input"  :class="conf.end ? 'border-active' : ''" v-model="conf.end" readonly @click="popClick('end')"></van-field>
+          </div>
+        </div>
+        <div class="j-footer">
+          <div class="j-button-group">
+            <button class="j-button-cancel" @click="onReset">重置</button>
+            <button class="j-button-confirm" :disabled="disabledConfirm" @click="startStatistic">开始分析</button>
+          </div>
+        </div>
+        <van-popup 
+          class="j-popup collection"
+          v-model="popInfo.show" 
+          round position="bottom" 
+          closeable
+          close-icon="clear"
+          get-container="body"
+        >
+          <div class="j-container">
+            <div class="popup-header header-title">${popInfo.title}</div>
+            <div v-show="popInfo.type == 'scope'">
+              <popup-select-component class="j-main fix-ios-scroll" :data-list="matchTypeList" multiple ref="matchTypeSelector" @reset="onCancel" @confirm="onConfirm"></popup-select-component>
+            </div>
+            <div v-show="popInfo.type == 'area'">
+              <area-component class="j-main fix-ios-scroll" :class="{'hide-all': filterInitData.areaArr.length == 2}" ref="projectAreaSelector" :selectarealist="selectAreaList" @cancel="onCancel" @confirm="onConfirm"></area-component>
+            </div>
+            <div v-show="popInfo.type == 'industry'">
+              <industry-component class="j-main fix-ios-scroll" ref="industryCom" :selectindustrylist="selectIndustryList" onlyshowsome= "true" @cancel="onCancel" @confirm="onConfirm"></industry-component>
+            </div>
+            <div v-show="popInfo.type == 'start'">
+              <years-component ref="yearsItem" type="start" :cur-year="conf.start" :years="startRange" @cancel="onCancel" @confirm="onConfirm"></years-component>
+            </div>
+            <div v-show="popInfo.type == 'end'">
+              <years-component ref="yearsItem" type="end" :cur-year="conf.end" :years="endRange" @cancel="onCancel" @confirm="onConfirm"></years-component>
+            </div>
+          </div>
+        </van-popup>
+      </div>
+    </div>
+  </div>
+
+  <!--S-必定需要预加载的资源-->
+  <link rel="preload" as="script" href=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js />
+  <link rel="preload" as="script" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js />
+  <link rel="preload" as="script" href=//cdn-common.jianyu360.com/cdn/lib/zepto/1.2.0/zepto.min.js />
+  <!--E-必定需要预加载的资源-->
+
+  <!--S-有可能需要提前预加载的资源-->
+  <!--E-有可能需要提前预加载的资源-->
+
+  <!--S-当前页面的资源-->
+  <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"}}/big-member/js/utils.js?v={{Msg "seo" "version"}}'></script>
+  <script src='{{Msg "seo" "cdn"}}/common-module/collection/js/popup-select-mobile.js?v={{Msg "seo" "version"}}'></script>
+  <script src='{{Msg "seo" "cdn"}}/common-module/collection/js/date-mobile.js?v={{Msg "seo" "version"}}'></script>
+  <script src='{{Msg "seo" "cdn"}}/common-module/collection/js/area-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/years-picker-mobile.js?v={{Msg "seo" "version"}}'></script>
+  <script src='{{Msg "seo" "cdn"}}/common-module/big-member/js/high_set.js?v={{Msg "seo" "version"}}'></script>
+</body>
+
+</html>

+ 24 - 9
src/web/templates/big-member/wx/page_unit_portrayal.html

@@ -91,6 +91,28 @@
               </div>
               </div>
               <p class="region">所在地:${statistics.province || '--'} ${statistics.city}</p>
               <p class="region">所在地:${statistics.province || '--'} ${statistics.city}</p>
               <p class="buyer-type">采购单位类型:${statistics.buyerClass || '--'}</p>
               <p class="buyer-type">采购单位类型:${statistics.buyerClass || '--'}</p>
+          </div>
+          <!-- 采购单位通讯录 -->
+          <div>
+            <div v-if="getStatus" key="txl">
+              <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/01-bg.png') no-repeat;background-size:100% 100%">
+                <p class="example-title">采购单位通讯录</p>
+                <buyer-example data-cl-event="c_wx_free_buttonclick" :status="bigStatus" :power="power" type="item_1" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/01.png'></buyer-example>
+              </div>
+            </div>
+            <hispro-component v-else class="history-list" type="buyer" :buyer="buyer.name" key="txl"></hispro-component>
+          </div>
+          <!-- 高级分析设置 -->
+            <!-- 高级分析 -->
+            <div class="win-analyse">
+              <span class="win-bid-title">采购单位分析</span>
+              <div class="high-link" @click="goHighSet">
+                <span>高级分析设置</span>
+                <van-icon name="arrow"></van-icon>
+              </div>
+            </div>
+            <div class="buyer-statistic">
+              <div class="statistic-title">统计信息</div>
               <div class="buyer-info">
               <div class="buyer-info">
                   <div class="bi-item">
                   <div class="bi-item">
                       <span>采购项目数量</span>
                       <span>采购项目数量</span>
@@ -141,17 +163,10 @@
                   </div>
                   </div>
               </div>
               </div>
           </div>
           </div>
-          <div v-if="getStatus">
-            <!-- 历史项目联系人 -->
-            <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/01-bg.png') no-repeat;background-size:100% 100%">
-              <p class="example-title">历史项目联系方式</p>
-              <buyer-example data-cl-event="c_wx_free_buttonclick" :status="bigStatus" :power="power" type="item_1" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/01.png'></buyer-example>
-            </div>
-          </div>
+
           <!-- 数据部分 -->
           <!-- 数据部分 -->
           <div>
           <div>
-            <!-- 历史项目联系人 -->
-            <hispro-component class="history-list" type="buyer" :buyer="buyer.name"></hispro-component>
+            
             <!-- 年度项目统计 -->
             <!-- 年度项目统计 -->
             <div class="years" v-if="isShow.showYearData">
             <div class="years" v-if="isShow.showYearData">
                 <div class="chart_title">年度项目统计</div>
                 <div class="chart_title">年度项目统计</div>

+ 15 - 6
src/web/templates/frontRouter/wx/collection/sess/ent_portrait.html

@@ -209,7 +209,22 @@
                     <span v-if="isShowUpTip" class="bid_upgrade">升级</span>
                     <span v-if="isShowUpTip" class="bid_upgrade">升级</span>
                     <span v-if="isMember && (hasOnePower && surplus && isVip)" class="bid_surplus">剩余:${entvisit.total - entvisit.usage}</span>
                     <span v-if="isMember && (hasOnePower && surplus && isVip)" class="bid_surplus">剩余:${entvisit.total - entvisit.usage}</span>
                 </template>
                 </template>
+                <div class="vip_component" v-if="!showContacts" style="height:11.36rem;background:url('/common-module/collection/image/bg/vip_bg_9.png') no-repeat;background-size:100% 100%">
+                  <vip-component data-cl-event="c_wx_free_buttonclick" @tabactive="tabActive" :power="conf" type="item_9" :entvisit="entvisit" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_9.png'></vip-component>
+                </div>
+                <div class="bg-white tab-card cell-list history-list" v-else>
+                  <hispro-component type="winner" :id="entInfo.id"></hispro-component>
+                </div>
+                <!-- 高级分析 -->
+                <div class="win-analyse">
+                  <span class="win-bid-title">中标分析</span>
+                  <div class="high-link" @click="goHighSet">
+                    <span>高级分析设置</span>
+                    <van-icon name="arrow"></van-icon>
+                  </div>
+                </div>
                 <div class="bg-white tab-card" v-if="conf._4 && !getStatus" data-cl-event="c_wx_open_buttionclick">
                 <div class="bg-white tab-card" v-if="conf._4 && !getStatus" 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-row zb-info">
                         <div class="card-column">
                         <div class="card-column">
                             <div class="ent-info-label">项目数量</div>
                             <div class="ent-info-label">项目数量</div>
@@ -279,12 +294,6 @@
                     </div>
                     </div>
                 </div>
                 </div>
               </div>
               </div>
-                <div class="vip_component" v-if="!showContacts" style="height:11.36rem;background:url('/common-module/collection/image/bg/vip_bg_9.png') no-repeat;background-size:100% 100%">
-                    <vip-component data-cl-event="c_wx_free_buttonclick" @tabactive="tabActive" :power="conf" type="item_9" :entvisit="entvisit" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_9.png'></vip-component>
-                </div>
-                <div class="bg-white tab-card cell-list history-list" v-else>
-                  <hispro-component type="winner" :id="entInfo.id"></hispro-component>
-                </div>
                 <div class="bg-white tab-card charts" v-if="conf._4 && annualData.rows.length !== 0  && !getStatus">
                 <div class="bg-white tab-card charts" v-if="conf._4 && annualData.rows.length !== 0  && !getStatus">
                     <div class="tab-card-title">年度项目统计</div>
                     <div class="tab-card-title">年度项目统计</div>
                     <!-- e-charts和sticky同时使用时候,需要手动降低css层级(z-index: 1),确保tooltip不遮挡固定定位头部 -->
                     <!-- e-charts和sticky同时使用时候,需要手动降低css层级(z-index: 1),确保tooltip不遮挡固定定位头部 -->

+ 70 - 1
src/web/templates/pc/proproject.html

@@ -16,6 +16,8 @@
 <script language="javascript" type="text/javascript" src="{{Msg "seo" "cdn"}}/My97DatePicker/WdatePicker.js"></script>
 <script language="javascript" type="text/javascript" src="{{Msg "seo" "cdn"}}/My97DatePicker/WdatePicker.js"></script>
 <link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/pccss/public-nav-1200.css?v={{Msg "seo" "version"}}" />
 <link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/pccss/public-nav-1200.css?v={{Msg "seo" "version"}}" />
 <script type="text/javascript" src="{{Msg "seo" "cdn"}}/js/public-nav.js?v={{Msg "seo" "version"}}"></script>
 <script type="text/javascript" src="{{Msg "seo" "cdn"}}/js/public-nav.js?v={{Msg "seo" "version"}}"></script>
+<link href="//cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/theme-chalk/index.css" rel="stylesheet" />
+<link href='{{Msg "seo" "cdn"}}/css/ele-reset.css?v={{Msg "seo" "version"}}' rel="stylesheet">
 <style type="text/css">
 <style type="text/css">
 /*j-wx-code Start*/
 /*j-wx-code Start*/
 .j-wx-code{
 .j-wx-code{
@@ -557,10 +559,25 @@ $(function(){
 				<span>1</span>
 				<span>1</span>
 				<a class="nbnext">下一页<i>></i></a>
 				<a class="nbnext">下一页<i>></i></a>
 			</div>
 			</div>
-		</div>
+    </div>
+    <!-- element-ui分页 -->
+    <div class="el-pagination-container" v-show="showPage" style="width: 1200px;margin: 0 auto;display: none;">
+      <el-pagination
+        background
+        layout="prev, pager, next"
+        :page-size="listState.size"
+        :current-page="listState.num"
+        :page-count="listState.total"
+        :hide-on-single-page="true"
+        @current-change="onPageChange"
+      >
+      </el-pagination>
+    </div>
 	</div>
 	</div>
 	<!--招标搜索页面 END-->
 	<!--招标搜索页面 END-->
 </section>
 </section>
+<script src="https://cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js"></script>
+<script src="//cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script>
 {{include "/common/pcbottom.html"}}
 {{include "/common/pcbottom.html"}}
 {{include "/common/baiducc.html"}}
 {{include "/common/baiducc.html"}}
 <script type="text/javascript">
 <script type="text/javascript">
@@ -603,5 +620,57 @@ document.querySelector(".searchControl").oncopy = function(){
     return false;
     return false;
 }
 }
 </script>
 </script>
+<script>
+  // vue 用于element ui 分页
+  var searchInnerVue = new Vue({
+    el: '#searchInner',
+    delimiters: ['${', '}'],
+    components: {},
+    data () {
+      return {
+        showPage: false,
+        listState: {
+          size: pageSize,
+          num: currentPage,
+          total: totalPage
+        }
+      }
+    },
+    watch: {
+      'listState.num' (newVal) {
+        // console.log(newVal, '分页')
+      },
+      'listState.total' (newVal) {
+        console.log(newVal, '总页码')
+      }
+    },
+    mounted () {
+      console.log('总页码:' + totalPage + ',当前页:' + currentPage + ',一页数量:' + pageSize)
+    },
+    methods: {
+      onPageChange (p) {
+        currentPage = p
+        this.listState.num = p
+        // if($("#zbSeatchT [name='keywords']").val()==""&&$("#zbSeatchT [name='industry']").val()==""){
+        //   getNewBids(currentPage);
+        // }else{
+        //   // getNewBiddings()
+        //   if(!$("#right-table").hasClass("active")){
+        //     if(secondFlag=="T"){
+        //       $(".tabContainer").show();
+        //       $(".hasNoData").hide();
+        //       //$(".nbnext").addClass("disabled");
+        //       appendDatas(list,true,false);
+        //     }else if(!nbflag&&currentPage>0){
+        //       getNewBiddings();
+        //     }else{
+        //       searchOnsubmit(true);
+        //     }
+        //   }
+        // }
+      }
+    },
+  })
+</script>
 </body>
 </body>
 </html>
 </html>

+ 41 - 7
src/web/templates/pc/supsearch.html

@@ -239,6 +239,16 @@
 #searchInner .pagination{
 #searchInner .pagination{
 	margin-bottom:40px !important;
 	margin-bottom:40px !important;
 }
 }
+.el-pagination button, .el-pagination span:not([class*=suffix]),.el-pager li{
+  height: 36px;
+  line-height: 36px;
+}
+.el-pager li{
+  min-width: 36px!important;
+}
+.el-pagination-container .el-pagination{
+  top: 0;
+}
 </style>
 </style>
 <script src='{{Msg "seo" "cdn"}}/common-module/selector/js/buyerClass.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/common-module/selector/js/buyerClass.js?v={{Msg "seo" "version"}}'></script>
 <script>
 <script>
@@ -329,6 +339,7 @@ var industrylist = {{.T.industrylist}}!=null?{{.T.industrylist}}:"";
 var sortArray = {{.T.sortArray}}!=null?{{.T.sortArray}}:"";
 var sortArray = {{.T.sortArray}}!=null?{{.T.sortArray}}:"";
 var list = {{.T.list}}!=null?{{.T.list}}:"";
 var list = {{.T.list}}!=null?{{.T.list}}:"";
 var totalPage = {{.T.totalPage}}!=null?{{.T.totalPage}}:1;
 var totalPage = {{.T.totalPage}}!=null?{{.T.totalPage}}:1;
+var totalCount = {{.T.count}}
 var searchvalue = {{.T.searchvalue}}!=null?{{.T.searchvalue}}:"";
 var searchvalue = {{.T.searchvalue}}!=null?{{.T.searchvalue}}:"";
 var secondFlag = {{.T.secondFlag}}!=null?{{.T.secondFlag}}:"";
 var secondFlag = {{.T.secondFlag}}!=null?{{.T.secondFlag}}:"";
 var secondList = ""
 var secondList = ""
@@ -1432,21 +1443,22 @@ var IframeOnClick = {
       </div>
       </div>
 		</div>
 		</div>
 		<!--分页-->
 		<!--分页-->
-		<div class="pagination clearfix w" style="display: none;">
+		<!-- <div class="pagination clearfix w" style="display: none;">
 			<div class="pagination-inner fr">
 			<div class="pagination-inner fr">
 				<a href="javascript:;" class="nbprev disabled"><i><</i>上一页</a>
 				<a href="javascript:;" class="nbprev disabled"><i><</i>上一页</a>
 				<span>1</span>
 				<span>1</span>
 				<a class="nbnext">下一页<i>></i></a>
 				<a class="nbnext">下一页<i>></i></a>
 			</div>
 			</div>
-    </div>
+    </div> -->
     <!-- ${listState.total} ${listState.num} -->
     <!-- ${listState.total} ${listState.num} -->
-    <div class="el-pagination-container" style="right:32px;display: none;">
+    <div class="el-pagination-container" v-show="showPage" style="width: 1200px;margin: 0 auto;">
       <el-pagination
       <el-pagination
         background
         background
         layout="prev, pager, next"
         layout="prev, pager, next"
         :page-size="listState.size"
         :page-size="listState.size"
         :current-page="listState.num"
         :current-page="listState.num"
-        :total="listState.total"
+        :page-count="listState.total"
+        :hide-on-single-page="true"
         @current-change="onPageChange"
         @current-change="onPageChange"
       >
       >
       </el-pagination>
       </el-pagination>
@@ -2115,13 +2127,14 @@ document.querySelector(".searchControl").onselectstart = function(){
 document.querySelector(".searchControl").oncopy = function(){
 document.querySelector(".searchControl").oncopy = function(){
     return false;
     return false;
 }
 }
-
+  // vue 用于element ui 分页
   var searchInnerVue = new Vue({
   var searchInnerVue = new Vue({
     el: '#searchInner',
     el: '#searchInner',
     delimiters: ['${', '}'],
     delimiters: ['${', '}'],
     components: {},
     components: {},
     data () {
     data () {
       return {
       return {
+        showPage: true,
         listState: {
         listState: {
           size: pageSize,
           size: pageSize,
           num: currentPage,
           num: currentPage,
@@ -2131,15 +2144,36 @@ document.querySelector(".searchControl").oncopy = function(){
     },
     },
     watch: {
     watch: {
       'listState.num' (newVal) {
       'listState.num' (newVal) {
-        console.log(newVal, '分页')
+        // console.log(newVal, '分页')
+      },
+      'listState.total' (newVal) {
+        console.log(newVal, '总页码')
       }
       }
     },
     },
     mounted () {
     mounted () {
-      console.log('总页码:' + totalPage + ',当前页:' + currentPage + ',一页数量:' + pageSize)
+      console.log('总页码:' + totalPage + ',当前页:' + currentPage + ',一页数量:' + pageSize + ',总条数:' + totalCount)
     },
     },
     methods: {
     methods: {
       onPageChange (p) {
       onPageChange (p) {
+        currentPage = p
         this.listState.num = p
         this.listState.num = p
+        if($("#zbSeatchT [name='keywords']").val()==""&&$("#zbSeatchT [name='industry']").val()==""){
+          getNewBids(currentPage);
+        }else{
+          // getNewBiddings()
+          if(!$("#right-table").hasClass("active")){
+            if(secondFlag=="T"){
+              $(".tabContainer").show();
+              $(".hasNoData").hide();
+              //$(".nbnext").addClass("disabled");
+              appendDatas(list,true,false);
+            }else if(!nbflag&&currentPage>0){
+              getNewBiddings();
+            }else{
+              searchOnsubmit(true);
+            }
+          }
+        }
       }
       }
     },
     },
   })
   })