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

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

tsz 3 жил өмнө
parent
commit
13fc6c8ef7
50 өөрчлөгдсөн 1721 нэмэгдсэн , 373 устгасан
  1. 6 5
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/ent_portrait.js
  2. 153 33
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/unit_portrayal.js
  3. 18 9
      src/jfw/modules/app/src/web/staticres/jyapp/me/js/mine.js
  4. 9 9
      src/jfw/modules/app/src/web/templates/big-member/page_ent_portrait.html
  5. 25 17
      src/jfw/modules/app/src/web/templates/big-member/page_unit_portrayal.html
  6. 3 3
      src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info.html
  7. 19 2
      src/jfw/modules/app/src/web/templates/frontRouter/portraitRecord/sess/index.html
  8. 10 0
      src/jfw/modules/app/src/web/templates/me/mine.html
  9. 1 1
      src/jfw/modules/app/src/web/templates/weixin/search/mainSearch.html
  10. 40 22
      src/jfw/modules/app/src/web/templates/weixin/wxinfocontent.html
  11. 10 7
      src/jfw/modules/bigmember/src/entity/portrait.go
  12. 19 13
      src/jfw/modules/bigmember/src/service/portrait/subvipPortraitAction.go
  13. 2 0
      src/jfw/modules/bigmember/src/service/use/use.go
  14. 5 3
      src/jfw/modules/common/src/qfw/util/jy/subvipPortrait.go
  15. 1 1
      src/jfw/modules/followent/src/web/templates/_error.html
  16. 2 2
      src/jfw/modules/publicapply/src/config.json
  17. 2 0
      src/jfw/modules/publicapply/src/main.go
  18. 13 7
      src/jfw/modules/weixin/src/wx/wx.go
  19. 2 2
      src/jfw/modules/wxtoken/src/config.json
  20. 177 49
      src/web/staticres/big-member/js/unit_portrayal.js
  21. 39 12
      src/web/staticres/common-module/big-member/js/buyer_project_news.js
  22. 31 7
      src/web/staticres/common-module/big-member/js/high_set.js
  23. 77 20
      src/web/staticres/common-module/collection/js/buyer-example.js
  24. 2 2
      src/web/staticres/common-module/collection/js/ent_portrait.js
  25. 12 1
      src/web/staticres/common-module/collection/js/history-project.js
  26. 81 26
      src/web/staticres/common-module/collection/js/vip-dialog.js
  27. 64 17
      src/web/staticres/common-module/portraitRecord/js/index-wx.js
  28. 64 17
      src/web/staticres/common-module/portraitRecord/js/index.js
  29. 1 0
      src/web/staticres/css/pc.css
  30. 15 4
      src/web/staticres/css/subscribe_new.css
  31. 214 0
      src/web/staticres/frontRouter/pc/seeBuyerHistory/css/index-pc.css
  32. BIN
      src/web/staticres/frontRouter/pc/seeBuyerHistory/images/help.png
  33. 131 0
      src/web/staticres/frontRouter/pc/seeBuyerHistory/js/index-pc.js
  34. BIN
      src/web/staticres/images/subscribe/vip_toUse.png
  35. 16 1
      src/web/staticres/js/login.js
  36. 1 1
      src/web/staticres/landingpage/pc/js/index.js
  37. 3 0
      src/web/staticres/me/js/mine.js
  38. 1 1
      src/web/templates/_error.html
  39. 1 1
      src/web/templates/active/topics.html
  40. 42 29
      src/web/templates/big-member/wx/page_unit_portrayal.html
  41. 1 1
      src/web/templates/common/pchead.html
  42. 1 1
      src/web/templates/common/pchead_bak.html
  43. 113 0
      src/web/templates/frontRouter/pc/seeBuyerHistory/sess/index.html
  44. 129 0
      src/web/templates/frontRouter/wx/buyerPortraitRecord/sess/index.html
  45. 9 9
      src/web/templates/frontRouter/wx/collection/sess/ent_portrait.html
  46. 19 2
      src/web/templates/frontRouter/wx/portraitRecord/sess/index.html
  47. 37 1
      src/web/templates/pc/biddetail_rec.html
  48. 3 2
      src/web/templates/pc/subscribe_new.html
  49. 10 0
      src/web/templates/weixin/my.html
  50. 87 33
      src/web/templates/weixin/wxinfocontent_rec.html

+ 6 - 5
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/ent_portrait.js

@@ -132,7 +132,8 @@ var vNode = {
         top10: true,
         topShow: true,
         dt: true
-      }
+      },
+      canFreeExp: false
     }
   },
   created: function () {
@@ -262,9 +263,6 @@ var vNode = {
         return item
       })
       return !isShow
-    },
-    getfreeEntPort:function(){
-      return this.freeEntPort >-1;
     }
   },
   methods: {
@@ -653,7 +651,10 @@ var vNode = {
           } else {
             _this.$toast(res.error_msg)
           }
-          _this.freeEntPort=res.data.freeEntPort;
+          //免费用户体验权限
+          if(res.data.isFree&&res.data.freeEntPort==0){
+            _this.canFreeExp=true
+          }
         },
         complete: function () {
           if (_this.loading) {

+ 153 - 33
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/unit_portrayal.js

@@ -118,7 +118,20 @@ var vNode = {
             encryptId: '', // 首次埋点返回的加密id 用于点击去开通传参
             power: [],
             hotChart: null,
-            pieChart: null
+            pieChart: null,
+            userInfo: {
+              isFree: false,
+              vipStatus: false,
+              viper: false,
+              entniche: false
+            },
+            usageInfo: {
+              total: 0,
+              usage: 0,
+              provin: 0,
+              visited: false,
+              surplus: 0
+            } // 超级订阅用户画像浏览
         }
     },
     computed: {
@@ -155,11 +168,31 @@ var vNode = {
             })
         },
         getStatus: function () {
-          console.log(11)
-          return this.power.indexOf(5)  == -1 // power == 5
+          var info = this.userInfo
+          var isFreeAuth = info.isFree && info.freeBuyerPort > 0
+          var isVipAuth = info.vipStatus > 0 && info.viper && this.usageInfo.surplus > 0
+          var isMember = this.power.indexOf(5)  !== -1
+          // 免费用户无体验次数的、超级订阅用户无剩余次数的、没有大会员浏览权限的 显示遮罩
+          return !isFreeAuth && !isVipAuth && !isMember // power == 5
         },
+        // 展示免费用户体验
         getfreeBuyerPort:function(){
-          return this.freeBuyerPort >-1;
+          return this.userInfo.isFree && this.userInfo.freeBuyerPort == 0;
+        },
+        // 展示超级订阅浏览次数
+        superVipPort: function () {
+          console.log(this.userInfo.vipStatus, this.userInfo.viper)
+          return this.userInfo.vipStatus > 0 && this.userInfo.viper && this.bigStatus <= 0
+        },
+        // 超级订阅用户对应的按钮
+        superVipBtnText: function () {
+          let text = ''
+          if (this.usageInfo.provin === -1) {
+            text = '联系客服'
+          } else {
+            text = '前往升级'
+          }
+          return text 
         }
     },
     watch: {
@@ -201,15 +234,34 @@ var vNode = {
           sessionStorage.removeItem('buyer_high_set')
           sessionStorage.removeItem('buyer_high_name')
         }
-        
-        this.getNewMsg(); // 中标动态
-        this.getChartData(); // 企业画像
-        // this.init()
     },
     beforeDestroy() {
       window.removeEventListener("resize", this.init,20);
     },
     methods: {
+        // 查询超级订阅采购单位画像浏览次数
+        getUsage: function () {
+          var _this = this
+          console.log(this.superVipPort)
+          if (this.superVipPort) {
+            $.ajax({
+              type: 'POST',
+              url: '/bigmember/portrait/subVipPortrait/usage',
+              data: {
+                buyer: decodeURIComponent(utils.getParam('entName')),
+                p_type: '1'
+              },
+              success: function (res) {
+                if (res.error_code == 0 && res.data) {
+                  res.data.surplus = res.data.total - res.data.usage
+                  _this.usageInfo = res.data
+                } else {
+                  console.log(res.error_msg)
+                }
+              }
+            })
+          }
+        },
         // 获取权限信息
         getPowerInfo: function () {
             var _this = this
@@ -226,7 +278,11 @@ var vNode = {
                     var vip = res.data.vipStatus
                     var userType = ''
                     //免费用户可查看采购单位画像次数(-1:已使用;0:未使用;1:可使用次数)
-                   _this.freeBuyerPort = res.data.freeBuyerPort; 
+                    _this.userInfo.isFree = res.data.isFree
+                    _this.userInfo.vipStatus = res.data.vipStatus
+                    _this.userInfo.viper = res.data.viper
+                    _this.userInfo.freeBuyerPort = res.data.freeBuyerPort
+                    _this.userInfo.entniche = res.data.entniche
                     if (vip > 0) {
                       userType = '1'
                     }
@@ -249,6 +305,9 @@ var vNode = {
                     if (res.data.power.indexOf(5) === -1) {
                       _this.getBuried(userType)
                     }
+                    _this.getUsage(); // 超级订阅用户剩余次数
+                    _this.getNewMsg(); // 中标动态
+                    _this.getChartData(); // 企业画像
                   }
               },
               error: function (error) {
@@ -352,7 +411,8 @@ var vNode = {
         },
         // 跳转招标动态新页面
         goProjectPage: function () {
-          if (this.power.indexOf(5) == -1) {
+          // 无权限的弹出弹框提醒
+          if (this.getStatus) {
             this.openDialog()
             return
           } else {
@@ -369,9 +429,10 @@ var vNode = {
               // pageSign: that.dt.isMore,
               pageNum: 1
           }
+          var isMember = this.bigStatus > 0 && this.power.indexOf(5) > -1
           $.ajax({
             type:'POST',
-            url:'/bigmember/portrait/buyer/getNewMsg',
+            url: isMember ? '/bigmember/portrait/buyer/getNewMsg' : '/bigmember/subVipPortrait/buyer/getNewMsg',
             data: storageSet ? Object.assign(data, storageSet) : data,
             timeout: 8000,
             success:function(res) {
@@ -414,9 +475,10 @@ var vNode = {
               }
             },
             error:function(err) {
-              setTimeout(function() {
-                that.getNewMsg()
-              }, 3000)
+              console.log(err)
+              // setTimeout(function() {
+              //   that.getNewMsg()
+              // }, 3000)
             }
           })
         },
@@ -427,9 +489,10 @@ var vNode = {
           var data = {
             buyer: decodeURIComponent(utils.getParam('entName'))
           }
+          var isMember = this.bigStatus > 0 && this.power.indexOf(5) > -1
           $.ajax({
             type:'POST',
-            url:'/bigmember/portrait/buyer/getData',
+            url: isMember ? '/bigmember/portrait/buyer/getData' : '/bigmember/subVipPortrait/buyer/getData',
             data: storageSet ? Object.assign(data, storageSet) : data,
             timeout: 10000,
             success:function(res) {
@@ -449,9 +512,9 @@ var vNode = {
             },
             error:function(err) {
               console.log(err)
-              setTimeout(function() {
-                that.getChartData()
-              }, 3000)
+              // setTimeout(function() {
+              //   that.getChartData()
+              // }, 3000)
             }
           })
         },
@@ -1280,23 +1343,57 @@ var vNode = {
         // dialog
         openDialog: function () {
           var _this = this
+          var info = this.userInfo
+          var title = ''
+          var content = ''
+          var btnText = ''
+          var isFree = info.isFree
+          var isVip = info.vipStatus > 0
+          if (isFree) {
+            if (info.freeBuyerPort < 0) {
+              title = '开通超级订阅'
+              content = '您已经免费解锁过【采购单位全景分析】权益1次,暂无免费查看权限。如需查看更多,请开通超级订阅获取更多权限。'
+              btnText = '去开通'
+            } else {
+              // 立即解锁
+              location.href = '/jyapp/frontPage/bigmember/free/perfect_info?source=buyer_portrait_getNewMsg_freeuser'
+              // 需要return出去 直接跳留资 不弹弹框
+              return
+            }
+          } else {
+            if (isVip) {
+              title = '升级超级订阅'
+              content = '对不起,暂无权限,您可升级超级订阅解锁采购单位全景分析,查看更多招标动态'
+              btnText = '前往升级'
+            } else {
+              title = '开通大会员'
+              content = '开通大会员,采购单位项目动态全面获取,帮助企业洞察采购需求,开发新客户!'
+              btnText = '联系客服'
+            }
+          }
           this.$dialog.confirm({
             width: 303,
             className: 'custom-dialog',
-            title: '您暂无使用权限',
-            message: '开通大会员,采购单位项目动态全面获取,帮助企业洞察采购需求,开发新客户!',
+            title: title,
+            message: content,
             messageAlign:'left',
-            confirmButtonText: _this.power.indexOf(5) < 0 && _this.bigStatus > 0 ? '联系客服' : '免费体验',
+            confirmButtonText: btnText,
             confirmButtonColor: '#2ABED1',
             showCancelButton: true,
             cancelButtonText: '取消'
-          }).then(function(){
-            if (_this.power.indexOf(5) < 0 && _this.bigStatus > 0) {
-              try {
-                JyObj.callPhone('400-108-6670');
-              } catch (error) {
-                console.log(error)
-              }
+          }).then(function(data){
+            console.log(data)
+            if (btnText == '联系客服') {
+              // try {
+              //   JyObj.callPhone('400-108-6670');
+              // } catch (error) {
+              //   console.log(error)
+              // }
+              location.href = '/jyapp/free/customer'
+            } else if (btnText == '前往升级') {
+              location.href = '/jyapp/vipsubscribe/upgradePage'
+            } else if (btnText == '去开通') {
+              location.href = '/jyapp/vipsubscribe/vipsubscribe_new'
             } else {
               _this.goBuyBuried('开通大会员,采购单位项目动态全面获取,帮助企业洞察采购需求,开发新客户!')
             }
@@ -1310,11 +1407,11 @@ var vNode = {
             var href = '/jyapp/article/content/' + item.id + '.html'
             location.href = href
           } else {
-            if (this.power.indexOf(5) == -1) {
-              this.openDialog()
-            } else {
-              console.log('没有id')
-            }
+            // if (this.power.indexOf(5) == -1) {
+            //   this.openDialog()
+            // } else {
+            //   console.log('没有id')
+            // }
           }
         },
         // 求最大项目数量
@@ -1339,6 +1436,29 @@ var vNode = {
         //免费赠送采购单位全景分析体验 去解锁
         goGiveAnalysis: function(){
           location.href = '/jyapp/frontPage/bigmember/free/perfect_info?source=buyerportrait_freeuser';
+        },
+        // 前往升级或联系客服
+        goUpgradeOrConcat: function (item) {
+          console.log(item)
+          var usage = this.usageInfo
+          var someProvinText = `<span>每购买<em class="highlight-text">1</em>个省,每月可查看<em class="highlight-text">5</em>个采购单位画像,上限为<em class="highlight-text">80</em>个,您当前订阅了${usage.provin}个省,如需查看更多,前往订阅更多省份。</span>`
+          var allProvinText = `<span>每购买<em>1</em>个省,每月可查看<em>5</em>个采购单位画像,上限为<em>80</em>个,您当前订阅全国,如需查看更多,请联系客服。</span>`
+          this.$dialog.confirm({
+            width: 303,
+            className: 'custom-dialog',
+            message: usage.provin == -1 ? allProvinText : someProvinText,
+            messageAlign:'left',
+            confirmButtonText: item,
+            confirmButtonColor: '#2ABED1',
+            showCancelButton: true,
+            cancelButtonText: '取消'
+          }).then(function(data){
+            if (item == '前往升级') {
+              location.href = '/jyapp/vipsubscribe/upgradePage'
+            } else if (item == '联系客服') {
+              location.href = '/jyapp/free/customer'
+            }
+          })
         }
     }
 }

+ 18 - 9
src/jfw/modules/app/src/web/staticres/jyapp/me/js/mine.js

@@ -116,6 +116,12 @@ var mine = {
           var url = $(this).attr('data-href')
             autoLogin(url)
         })
+        // 企业画像记录
+        $('.buyer-follow-history').on('click', function (e) {
+          setLiActive(e.currentTarget)
+          var url = $(this).attr('data-href')
+            autoLogin(url)
+        })
         // 企业查询
         $('.ent-search').on('click', function (e) {
             setLiActive(e.currentTarget)
@@ -234,15 +240,18 @@ var mine = {
                         pageUserInfo.bigMemberStatus = res.data.memberStatus
                     }
                     if (res.data.memberStatus <= 0) {
-                      // 大会员和免费用户不显示企业画像记录菜单
-                      if(res.data.vipStatus > 0 && res.data.viper ) {
-                        $('.ent-follow-history').show()
-                      } else {
-                        $('.ent-follow-history').hide()
-                      }
-                    } else {
-                      $('.ent-follow-history').hide()
-                    }
+	                    // 大会员和免费用户不显示企业画像记录菜单
+	                    if(res.data.vipStatus > 0 && res.data.viper ) {
+	                        $('.ent-follow-history').show()
+	                        $('.buyer-follow-history').show()
+	                    } else {
+	                        $('.ent-follow-history').hide()
+	                        $('.buyer-follow-history').hide()
+	                    }
+	                } else {
+	                    $('.ent-follow-history').hide()
+	                    $('.buyer-follow-history').hide()
+	                }
                     if ($.isArray(res.data.power)) {
                         pageUserInfo.power = res.data.power
                     }

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

@@ -235,7 +235,7 @@
             </div>
             <div class="vip_component"
             style="height:11.04rem;background:url('/common-module/collection/image/bg/vip_bg_9.png') no-repeat;background-size:100% 100%">
-            <vip-component @tabactive="tabActive" :power="conf" type="item_9" :entvisit="entvisit" :newvip="isVip"
+            <vip-component @tabactive="tabActive" :power="conf" type="item_9" :can-free-exp="canFreeExp" :entvisit="entvisit" :newvip="isVip"
             imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_9.png'></vip-component>
             </div>
           </div>
@@ -251,7 +251,7 @@
             </div>
           </div>
           <!-- 免费用户采购单位全景分析提示 -->
-          <div v-if="getfreeEntPort" style="margin-top: .24rem; " class="free-give">
+          <div v-if="canFreeExp" style="margin-top: .24rem; " class="free-give">
               <div class="go-text"> 免费赠送1次【企业中标信息】权益体验机会!</div>
               <div class="go-btn"  @click="goGiveAnalysis">去解锁</div>
           </div>
@@ -296,7 +296,7 @@
           </div>
           <div class="vip_component" v-if="getStatus && hideDt"
             style="height:9.16rem;background:url('/common-module/collection/image/bg/vip_bg_1.png') no-repeat;background-size:100% 100%" key="dt">
-            <vip-component @tabactive="tabActive" :power="conf" type="item_1" :entvisit="entvisit" :newvip="isVip"
+            <vip-component @tabactive="tabActive" :power="conf" type="item_1" :can-free-exp="canFreeExp" :entvisit="entvisit" :newvip="isVip"
               imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_1.png'>
             </vip-component>
           </div>
@@ -348,7 +348,7 @@
           </div>
           <div class="vip_component" v-if="getStatus"
             style="height:11.12rem;background:url('/common-module/collection/image/bg/vip_bg_2.png') no-repeat;background-size:100% 100%">
-            <vip-component @tabactive="tabActive" type="item_2" :power="conf" :entvisit="entvisit" :newvip="isVip"
+            <vip-component @tabactive="tabActive" type="item_2" :power="conf" :can-free-exp="canFreeExp" :entvisit="entvisit" :newvip="isVip"
               imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_2.png'>
             </vip-component>
           </div>
@@ -364,7 +364,7 @@
           </div>
           <div class="vip_component" v-if="getStatus"
             style="height:10.8rem;background:url('/common-module/collection/image/bg/vip_bg_3.png') no-repeat;background-size:100% 100%">
-            <vip-component @tabactive="tabActive" type="item_3" :power="conf" :entvisit="entvisit" :newvip="isVip"
+            <vip-component @tabactive="tabActive" type="item_3" :power="conf" :can-free-exp="canFreeExp" :entvisit="entvisit" :newvip="isVip"
               imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_3.png'>
             </vip-component>
           </div>
@@ -379,7 +379,7 @@
           </div>
           <div class="vip_component" v-if="getStatus"
             style="height:10.56rem;background:url('/common-module/collection/image/bg/vip_bg_4.png') no-repeat;background-size:100% 100%">
-            <vip-component @tabactive="tabActive" type="item_4" :power="conf" :entvisit="entvisit" :newvip="isVip"
+            <vip-component @tabactive="tabActive" type="item_4" :power="conf" :can-free-exp="canFreeExp" :entvisit="entvisit" :newvip="isVip"
               imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_4.png'>
             </vip-component>
           </div>
@@ -395,7 +395,7 @@
           </div>
           <div class="vip_component" v-if="getStatus"
             style="height:11.24rem;background:url('/common-module/collection/image/bg/vip_bg_5.png') no-repeat;background-size:100% 100%">
-            <vip-component @tabactive="tabActive" type="item_5" :power="conf" :entvisit="entvisit" :newvip="isVip"
+            <vip-component @tabactive="tabActive" type="item_5" :power="conf" :can-free-exp="canFreeExp" :entvisit="entvisit" :newvip="isVip"
               imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_5.png'>
             </vip-component>
           </div>
@@ -409,7 +409,7 @@
           </div>
           <div class="vip_component" v-if="getStatus"
             style="height:11.92rem;background:url('/common-module/collection/image/bg/vip_bg_6.png') no-repeat;background-size:100% 100%">
-            <vip-component @tabactive="tabActive" type="item_6" :power="conf" :entvisit="entvisit" :newvip="isVip"
+            <vip-component @tabactive="tabActive" type="item_6" :power="conf" :can-free-exp="canFreeExp" :entvisit="entvisit" :newvip="isVip"
               imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_6.png'>
             </vip-component>
           </div>
@@ -443,7 +443,7 @@
           </div>
           <div class="vip_component" v-if="getStatus"
             style="height:10.8rem;background:url('/common-module/collection/image/bg/vip_bg_7.png') no-repeat;background-size:100% 100%">
-            <vip-component @tabactive="tabActive" type="item_7" :power="conf" :entvisit="entvisit" :newvip="isVip"
+            <vip-component @tabactive="tabActive" type="item_7" :power="conf" :can-free-exp="canFreeExp" :entvisit="entvisit" :newvip="isVip"
               imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_7.png'>
             </vip-component>
           </div>

+ 25 - 17
src/jfw/modules/app/src/web/templates/big-member/page_unit_portrayal.html

@@ -70,17 +70,20 @@
             justify-content: space-between;
         }
         .go-btn{
-            background-color:#2cb7ca;
+            background:linear-gradient(360deg, #1CB5E5 0%, #2ABED1 100%);
             color: #FFFFFF;
-            width: 1.1rem;
+            padding: 0 .16rem;
             text-align: center;
             height: 0.5rem;
-            border-radius: 9px;
+            border-radius: 8px;
             line-height: 0.5rem;
         }
         .go-text{
           color: #2cb7ca;
         }
+        .balance-text{
+          color: #9B9BA3;
+        }
     </style>
 </head>
 <body>
@@ -104,15 +107,20 @@
                 <div class="go-text"> 免费赠送1次【采购单位全景分析】权益体验机会!</div>
                 <div class="go-btn"  @click="goGiveAnalysis">去解锁</div>
             </div>
+            <!-- 超级订阅用户展示  -->
+            <div v-if="superVipPort" style="margin-top: .24rem; " class="free-give">
+              <div class="balance-text"> 当月采购单位画像余额:<em class="highlight-text">${usageInfo.surplus}</em></div>
+              <div class="go-btn" v-if="usageInfo.surplus !== 0 && usageInfo.provin !== -1" @click="goUpgradeOrConcat(superVipBtnText)">${superVipBtnText}</div>
+            </div>
             <!-- 采购单位通讯录 -->
             <div v-if="getStatus" style="margin-top: .24rem;">
               <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 win-bid-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>
+                <buyer-example :useage="usageInfo" :userinfo="userInfo" :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>
+            <hispro-component v-else class="history-list" type="buyer" :status="bigStatus" :buyer="buyer.name"></hispro-component>
             <!-- 高级分析设置 -->
             <!-- 高级分析 -->
             <div class="win-analyse">
@@ -357,62 +365,62 @@
               <!-- 历史项目联系人 -->
               <!-- <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>
+                <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_1" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/01.png'></buyer-example>
               </div> -->
               <!-- 合作企业注册资本分布 -->
               <!-- <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/09-bg.png') no-repeat;background-size:100% 100%">
                 <p class="example-title">合作企业注册资本分布</p>
-                <buyer-example :status="bigStatus" :power="power" type="item_9" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/09.png'></buyer-example>
+                <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_9" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/09.png'></buyer-example>
               </div> -->
               <!-- 合作企业年龄分布 -->
               <!-- <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/10-bg.png') no-repeat;background-size:100% 100%">
                 <p class="example-title">合作企业年龄分布</p>
-                <buyer-example :status="bigStatus" :power="power" type="item_10" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/10.png'></buyer-example>
+                <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_10" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/10.png'></buyer-example>
               </div> -->
               <!-- 合作企业注册地分布 -->
               <!-- <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/11-bg.png') no-repeat;background-size:100% 100%">
                 <p class="example-title">合作企业注册地分布</p>
-                <buyer-example :status="bigStatus" :power="power" type="item_11" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/11.png'></buyer-example>
+                <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_11" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/11.png'></buyer-example>
               </div> -->
               <!-- 年度项目统计 -->
               <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/02-bg.png') no-repeat;background-size:100% 100%">
                 <p class="example-title">年度项目统计</p>
-                <buyer-example :status="bigStatus" :power="power" type="item_2" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/02.png'></buyer-example>
+                <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_2" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/02.png'></buyer-example>
               </div>
               <!-- 月度采购规模统计 -->
               <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/03-bg.png') no-repeat;background-size:100% 100%">
                 <p class="example-title">月度采购规模统计</p>
-                <buyer-example :status="bigStatus" :power="power" type="item_3" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/03.png'></buyer-example>
+                <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_3" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/03.png'></buyer-example>
               </div>
               <!-- 采购规模分布 -->
               <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/04-bg.png') no-repeat;background-size:100% 100%">
                 <p class="example-title">采购规模分布</p>
-                <buyer-example :status="bigStatus" :power="power" type="item_4" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/04.png'></buyer-example>
+                <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_4" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/04.png'></buyer-example>
               </div>
               <!-- 各类招标方式占比(双柱图) -->
               <div class="vip_component" style="height:8.8rem;background:url('/common-module/collection/image/buyer/05-bg.png') no-repeat;background-size:100% 100%">
                 <p class="example-title">各类招标方式占比</p>
-                <buyer-example :status="bigStatus" :power="power" type="item_5" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/05.png'></buyer-example>
+                <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_5" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/05.png'></buyer-example>
               </div>
               <!-- 各行业项目平均节支率 -->
               <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/06-bg.png') no-repeat;background-size:100% 100%">
                 <p class="example-title">各行业项目平均节支率</p>
-                <buyer-example :status="bigStatus" :power="power" type="item_6" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/06.png'></buyer-example>
+                <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_6" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/06.png'></buyer-example>
               </div>
               <!-- 重点合作代理机构 -->
               <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/12-bg.png') no-repeat;background-size:100% 100%">
                 <p class="example-title">重点合作代理机构</p>
-                <buyer-example :status="bigStatus" :power="power" type="item_12" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/12.png'></buyer-example>
+                <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_12" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/12.png'></buyer-example>
               </div>
               <!-- 重点合作企业 -->
               <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/08-bg.png') no-repeat;background-size:100% 100%">
                 <p class="example-title">重点合作企业</p>
-                <buyer-example :status="bigStatus" :power="power" type="item_8" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/08.png'></buyer-example>
+                <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_8" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/08.png'></buyer-example>
               </div>
               <!-- 各行业项目规模占比 -->
               <div class="vip_component" style="height:11.2rem;background:url('/common-module/collection/image/buyer/07-bg.png') no-repeat;background-size:100% 100%">
                 <p class="example-title">各行业项目规模占比</p>
-                <buyer-example :status="bigStatus" :power="power" type="item_7" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/07.png'></buyer-example>
+                <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_7" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/07.png'></buyer-example>
               </div>
             </div>
         </div>

+ 3 - 3
src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info.html

@@ -607,9 +607,6 @@
           }
         }
         // 标题
-        var titleMap = {
-          ent_portrait_freeuser: '欢迎体验企业中标分析'
-        }
         var titleText = ''
 
         if (infoText) {
@@ -632,6 +629,9 @@
         }
 
           // 标题
+          var titleMap = {
+              ent_portrait_freeuser: '欢迎体验企业中标分析'
+          }
           for (var key in titleMap) {
               if (source.indexOf(key) !== -1) {
                   titleText = titleMap[key]

+ 19 - 2
src/jfw/modules/app/src/web/templates/frontRouter/portraitRecord/sess/index.html

@@ -57,7 +57,7 @@
               finished-text=""
               @load="onLoad"
             >
-                <div class="ent-search-item" v-for="(item, i) in list" :key="item._id" @click="detailed(item._id)">
+                <div v-if="ptype==''" class="ent-search-item" v-for="(item, i) in list" :key="item._id" @click="detailed(item._id)">
                     <div class="ent-info-top">
                         <div class="ent-info-head" :style="{'background-color': item.color}">{item.abbr}</div>
                         <div class="ent-info-keep">
@@ -82,7 +82,24 @@
                             <div class="van-multi-ellipsis--l2">{item.address}</div>
                             <i class="j-icon base-icon icon-address"></i>
                         </div>
-
+                    </div>
+                </div>
+                <div v-if="ptype=='1'" class="ent-search-item" v-for="(item, i) in list" :key="item._id" @click="detailed(item._id)">
+                    <div class="ent-info-top">
+                        <div class="ent-info-head" :style="{'background-color': item.color}">{item.abbr}</div>
+                        <div class="ent-info-keep">
+                            <div class="ent-row">
+                                <div class="ent-name van-ellipsis">{item.name}</div>
+                                <div class="fill-icon-box" style="display: none">
+                                    <i class="j-icon base-icon icon-no-favorite"></i>
+                                </div>
+                            </div>
+                            <div class="ent-more">
+                                <div v-if="item.province">所在地: <span>{item.province} {item.city}</span></div>
+                                <div v-if="item.buyerClass">采购单位类型: <span>{item.buyerClass}</span></div>
+                            </div>
+                            <div class="ent-line-box"></div>
+                        </div>
                     </div>
                 </div>
             </van-list>

+ 10 - 0
src/jfw/modules/app/src/web/templates/me/mine.html

@@ -184,6 +184,16 @@
                             <span class="j-icon base-icon icon-arrow-right"></span>
                         </div>
                     </div>
+                    <div style="display: none;" data-need-bind-phone class="menu_list buyer-follow-history" data-href='/jyapp/frontPage/portraitRecord/sess/index?type=1'>
+                        <div class="menu_list_left">
+                            <span class="j-icon base-icon icon-company"></span>
+                            <span class="label">采购单位画像记录</span>
+                        </div>
+                        <div class="menu_list_right">
+                            <i class="dot-red"></i>
+                            <span class="j-icon base-icon icon-arrow-right"></span>
+                        </div>
+                    </div>
                 </div>
                 <div class="menu">
                   <div class="menu_list my-docs" data-need-bind-phone>

+ 1 - 1
src/jfw/modules/app/src/web/templates/weixin/search/mainSearch.html

@@ -746,7 +746,7 @@
         success: function (r) {
             if (r && r.data) {
                 window.jyAddInfo = r.data
-                if(res.data.memberStatus > 0 && r.data.isSubCount) {
+                if(r.data.memberStatus > 0 && r.data.isSubCount) {
                     $('#resbm').hide()
                 } else {
                     $('#resbm').show()

+ 40 - 22
src/jfw/modules/app/src/web/templates/weixin/wxinfocontent.html

@@ -1010,6 +1010,10 @@
                 if (res.data.memberStatus > 0 && res.data.power.indexOf(3) == -1) {
                     window.isNoMember = true
                 }
+                // 是大会员 有下载权限
+        				if (res.data.memberStatus > 0 && res.data.power.indexOf(3) > -1) {
+        					  window.isMemberAndPower = true
+        				}
                 window.isFree = res.data.isFree // 是否是免费用户
                 window.freeFile = res.data.freeFile // 免费用户 是否体验过 0:未体验过 -1:体验过
                 window.vipStatus = res.data.vipStatus // 是否是超级订阅用户
@@ -1059,7 +1063,8 @@
                 if (res.data && res.data.isFree && res.data.freeFile == 0) {
                   $('.free-down-text').css('display', 'inline-block')
                 }
-                if (res.data && res.data.vipStatus > 0 && res.data.viper) {
+                //非大会员或大会员无此功能 且是新超级订阅用户
+                if (res.data && res.data.vipStatus > 0 && res.data.viper&&!window.isMemberAndPower) {
                   $('.file-count-tip').css('display', 'inline-block')
                   $('.concat-kf').css('display', 'inline-block')
                   $('.icon-help').css('display', 'inline-block')
@@ -1222,16 +1227,8 @@
                         if (window.freeFile == 0) {
                           // 判断有无留过资 且未体验过 - 去留资
                           location.href = '/jyapp/frontPage/bigmember/free/perfect_info?source=article_attach_freeuser'
-                        } else if (window.freeFile > 0 ){
-                          // 留过资 更新下载次数 进入附件下载页面
-                          if (url) {
-                            if(mySysIsIos()){
-                              iosShow(url)
-                            } else {
-                              location.href = url
-                            }
-                          }
-                        } else {
+                          return
+                        } else if (window.freeFile < 0 ) {
                           // 免费用户 体验过 下载次数为-1 弹框提醒跳至超级订阅购买页
                           vant.Dialog.confirm({
                             title: '开通超级订阅',
@@ -1242,16 +1239,16 @@
                             className: 'custom-dialog',
                             width: 303,
                             messageAlign: 'left',
-
                           }).then(() => {
-                            location.href = '/front/vipsubscribe/vipsubscribe_new'
+                            location.href = '/jyapp/vipsubscribe/vipsubscribe_new'
                           })
                           .catch(() => {})
+                          return
                         }
                       } else {
                         // 付费用户
                         // 大会员用户 有下载权限
-                        if (bigstatus > 0 && hasServiceArr.indexOf(3) > -1) {
+                        if (window.isMemberAndPower) {
                           if(mySysIsIos()){
                             iosShow(url)
                           } else {
@@ -1264,13 +1261,7 @@
                           // 是新超级订阅用户
                           if (window.viper) {
                             // 有下载次数
-                            if (window.fileNum > 0) {
-                              if(mySysIsIos()){
-                                iosShow(url)
-                              } else {
-                                location.href = url
-                              }
-                            } else {
+                            if (window.fileNum <= 0) {
                               // 次数用完提醒联系客服
                               vant.Dialog.confirm({
                                 message: '您本月查看机会已经消耗完毕,如需要更多服务,请前往联系客服。',
@@ -1284,6 +1275,7 @@
                                 location.href = '/jyapp/free/customer'
                               })
                               .catch(() => {})
+                              return
                             }
                           } else {
                             // 老超级订阅用户 提醒升级
@@ -1298,8 +1290,8 @@
                             }).then(() => {
                               location.href = '/jyapp/vipsubscribe/upgradePage'
                             }).catch(() => {})
+                            return
                           }
-                          return
                         }
                         // 是大会员自定义版本没有下载权限 或 非超级订阅的商机管理用户 (弹框提醒联系客服)
                         if (window.isNoMember == true || (window.vipStatus <=0 && window.entniche)) {
@@ -1313,6 +1305,8 @@
                           return
                         }
                       }
+                      //
+                      gotoFilePage($(this).find('a').text())
                     })
                     $('.atta-list').show()
                 }else{
@@ -1330,6 +1324,30 @@
             }
         });
     }
+    //浏览附件
+    function gotoFilePage(name){
+      $.ajax({
+            type:'post',
+            url:'/publicapply/attachment/get',
+            data:{
+                infoId:{{.T.obj._id}}
+            },
+            success:function(r){
+              if(r.data&&r.data.attachment !=null&&r.data.attachment.length!=0){
+                for(var i=0;i<r.data.attachment.length;i++) {
+                  if (name!=""&&name == r.data.attachment[i].filename){
+                    var url = r.data.attachment[i].downurl
+                    if(mySysIsIos()){
+                        iosShow(url)
+                    } else {
+                        location.href = url
+                    }
+                  }
+                }
+              }
+            }
+          })
+    }
     andownload()
     //如果是ios显示附件下载弹框
     function iosShow(url){

+ 10 - 7
src/jfw/modules/bigmember/src/entity/portrait.go

@@ -39,27 +39,30 @@ func CreatePortraitManager(userid string, pageFlag string) (*Portrait, bool, err
 }
 
 //CreateSubVipPortraitManager 超级订阅权限校验
-func CreateSubVipPortraitManager(userid string, pageFlag, searchValue string, isWinner bool) (*Portrait, error) {
+func CreateSubVipPortraitManager(userid string, pageFlag, searchValue string, isWinner bool) (*Portrait, bool, error) {
 	if userid == "" {
-		return nil, errors.New("未登录")
+		return nil, false, errors.New("未登录")
 	}
 	if pageFlag == "" {
-		return nil, errors.New("未知请求")
+		return nil, false, errors.New("未知请求")
 	}
 	if pageFlag != "entDetail" { //需要权限校验的接口
 		bigMsg := jy.GetBigVipUserBaseMsg(userid, db.Mysql, db.Mgo)
 		if bigMsg.VipStatus <= 0 || bigMsg.Vip_BuySet.Upgrade != 1 { //免费用户留资体验
 			if searchValue != "" && jy.Portraitexperience(userid, searchValue, isWinner) {
-				return &Portrait{userid}, nil
+				return &Portrait{userid}, true, nil
+			}
+			if !(pageFlag == "buyerPortraitNotCheckPower" || pageFlag == "buyerPortrait_newMsg" || pageFlag == "buyerPortrait_select") {
+				return nil, false, errors.New("非法请求")
 			}
-			return nil, errors.New("非法请求")
+			return nil, false, nil
 		} else { //超级订阅升级版-校验超级订阅画像浏览次数
 			if err := bigMsg.SubVipPortraitTimesCheck(db.Mysql, searchValue, isWinner); err != nil {
-				return nil, err
+				return nil, true, err
 			}
 		}
 	}
-	return &Portrait{userid}, nil
+	return &Portrait{userid}, true, nil
 }
 
 //获取企业基本信息

+ 19 - 13
src/jfw/modules/bigmember/src/service/portrait/subvipPortraitAction.go

@@ -39,7 +39,7 @@ func (this *SubVipPortrait) SubVipEntDetail() {
 		if entId == "" {
 			return nil, fmt.Errorf("参数异常")
 		}
-		cepm, err := entity.CreateSubVipPortraitManager(userId, "entDetail", entId, true)
+		cepm, _, err := entity.CreateSubVipPortraitManager(userId, "entDetail", entId, true)
 		if err != nil {
 			return nil, err
 		}
@@ -64,7 +64,7 @@ func (this *SubVipPortrait) SubVipWinnerNewMsg() {
 		if entId == "" {
 			return nil, fmt.Errorf("参数异常")
 		}
-		cepm, err := entity.CreateSubVipPortraitManager(userId, "entNewMsg", entId, true)
+		cepm, _, err := entity.CreateSubVipPortraitManager(userId, "entNewMsg", entId, true)
 		if err != nil {
 			return nil, err
 		}
@@ -108,7 +108,7 @@ func (this *SubVipPortrait) SubVipNewMsgSelects() {
 		if entId == "" {
 			return nil, fmt.Errorf("参数异常")
 		}
-		_, err := entity.CreateSubVipPortraitManager(userId, "entNewMsg", entId, true)
+		_, _, err := entity.CreateSubVipPortraitManager(userId, "entNewMsg", entId, true)
 		if err != nil {
 			return nil, err
 		}
@@ -129,7 +129,7 @@ func (this *SubVipPortrait) SubVipPortrait() {
 		if entId == "" {
 			return nil, fmt.Errorf("参数异常")
 		}
-		cepm, err := entity.CreateSubVipPortraitManager(userId, "entPortrait", entId, true)
+		cepm, _, err := entity.CreateSubVipPortraitManager(userId, "entPortrait", entId, true)
 		if err != nil {
 			return nil, err
 		}
@@ -159,14 +159,20 @@ func (this *SubVipPortrait) PortraitUsage() {
 		if bigMsg.VipStatus <= 0 && bigMsg.Vip_BuySet.Upgrade != 1 {
 			return nil, fmt.Errorf("非法请求")
 		}
-		entId := util.DecodeId(this.GetString("entId"))
-		total, usage, isUsed := bigMsg.SubVipPortraitUsage(db.Mysql, entId, this.GetString("p_type") != "1")
+		isWinner, queryEnt := this.GetString("p_type") != "1", ""
+		if isWinner {
+			queryEnt = util.DecodeId(this.GetString("entId"))
+		} else {
+			queryEnt = this.GetString("buyer")
+		}
+
+		total, usage, isUsed := bigMsg.SubVipPortraitUsage(db.Mysql, queryEnt, isWinner)
 		returnMap := map[string]interface{}{
 			"total":  total,
 			"usage":  usage,
 			"provin": bigMsg.Vip_BuySet.AreaCount,
 		}
-		if entId != "" {
+		if queryEnt != "" {
 			returnMap["visited"] = isUsed
 		}
 		return returnMap, nil
@@ -238,7 +244,7 @@ func (this *SubVipPortrait) BuyerSelects() {
 		if buyer == "" {
 			return nil, fmt.Errorf("参数异常")
 		}
-		_, err := entity.CreateSubVipPortraitManager(userId, "buyerPortrait", buyer, false)
+		_, _, err := entity.CreateSubVipPortraitManager(userId, "buyerPortrait_select", buyer, false)
 		if err != nil {
 			return nil, err
 		}
@@ -261,7 +267,7 @@ func (this *SubVipPortrait) BuyerNewMsg() {
 		}
 		pageNum, _ := this.GetInteger("pageNum")
 		pageSize, _ := this.GetInteger("pageSize")
-		cepm, err := entity.CreateSubVipPortraitManager(userId, "buyerPortrait", buyer, false)
+		cepm, hasPower, err := entity.CreateSubVipPortraitManager(userId, "buyerPortrait_newMsg", buyer, false)
 		if err != nil {
 			return nil, err
 		}
@@ -275,7 +281,7 @@ func (this *SubVipPortrait) BuyerNewMsg() {
 				Area:       this.GetString("area"),
 				ScopeClass: this.GetString("scopeClass"),
 				TimeRange:  this.GetString("timeRange"),
-				HasPower:   true,
+				HasPower:   hasPower,
 			},
 			PageNum:  pageNum,
 			PageSize: pageSize,
@@ -302,7 +308,7 @@ func (this *SubVipPortrait) BuyerContacts() {
 		if buyerName == "" {
 			return nil, fmt.Errorf("企业参数异常")
 		}
-		cepm, err := entity.CreateSubVipPortraitManager(userId, "buyerPortrait", buyerName, false)
+		cepm, _, err := entity.CreateSubVipPortraitManager(userId, "buyerPortrait", buyerName, false)
 		if err != nil {
 			return nil, err
 		}
@@ -328,7 +334,7 @@ func (this *SubVipPortrait) BuyerPortrait() {
 		if buyerName == "" {
 			return nil, fmt.Errorf("参数异常")
 		}
-		cepm, err := entity.CreateSubVipPortraitManager(userId, "buyerPortrait", buyerName, false)
+		cepm, power, err := entity.CreateSubVipPortraitManager(userId, "buyerPortraitNotCheckPower", buyerName, false)
 		if err != nil {
 			return nil, err
 		}
@@ -341,7 +347,7 @@ func (this *SubVipPortrait) BuyerPortrait() {
 			Area:       this.GetString("area"),
 			ScopeClass: this.GetString("scopeClass"),
 			TimeRange:  this.GetString("timeRange"),
-			HasPower:   true,
+			HasPower:   power,
 		}, flag)
 		if err != nil {
 			return nil, err

+ 2 - 0
src/jfw/modules/bigmember/src/service/use/use.go

@@ -993,6 +993,8 @@ func Combo(userid string, member_status int) (combo_name string) {
 			3: "商机版",
 			4: "试用版",
 			5: "自定义",
+			6: "商机版2.0",
+			7: "专家版2.0",
 		}
 		combo_name = level_map[member_status]
 	}

+ 5 - 3
src/jfw/modules/common/src/qfw/util/jy/subvipPortrait.go

@@ -61,11 +61,13 @@ func (this *BigVipBaseMsg) SubVipPortraitUsage(mysql *mysql.Mysql, searchValue s
 
 //GetUsageNum 查询画像查看次数
 func (this *BigVipBaseMsg) GetUsageNum(mysql *mysql.Mysql, isWinnerPortrait bool) (usage int) {
-	usage = redis.GetInt(PowerCacheDb, this.GetPortraitRecordTimesRedisKey(isWinnerPortrait))
+	key := this.GetPortraitRecordTimesRedisKey(isWinnerPortrait)
+	usage = redis.GetInt(PowerCacheDb, key)
 	if usage == 0 && mysql != nil { //当缓存中无值时查询mysql中使用量
 		now := time.Now()
-		mysql.CountBySql(fmt.Sprintf("select count(id) from %s where user_id =? and p_type =? and year(create_time)=? and month(create_time)=?",
-			PortraitRecordTable), this.Uid, qutil.If(isWinnerPortrait, 0, 1).(int), now.Year(), int(now.Month()))
+		usage = int(mysql.CountBySql(fmt.Sprintf("select count(id) from %s where user_id =? and p_type =? and year(create_time)=? and month(create_time)=?",
+			PortraitRecordTable), this.Uid, qutil.If(isWinnerPortrait, 0, 1).(int), now.Year(), int(now.Month())))
+		redis.Put(PowerCacheDb, key, usage, 24*60*60*31)
 	}
 	return
 }

+ 1 - 1
src/jfw/modules/followent/src/web/templates/_error.html

@@ -384,7 +384,7 @@ function infoListCss(){
 		'z-index':'999',
 		'cursor': 'pointer',
 		'height':'auto',
-		'width':'130px'
+		'width':'142px'
 	})
 	$('.one').css({
 		'display': 'inline-block',

+ 2 - 2
src/jfw/modules/publicapply/src/config.json

@@ -14,8 +14,6 @@
             "user": "public03@topnet.net.cn"
         }
     ],
-    "attachmentRPC":"192.168.3.206:10082",
-    "followPushRpc": "127.0.0.1:8759",
     "industry": "分类综合测试",
     "defaultEntList": [
         "744fb1d7cc3561e11c639fcc2ad955c0",
@@ -42,5 +40,7 @@
 
     ],
     "bidSearchOldUserLimit": 1626105600,
+    "attachmentRPC":"192.168.3.206:10082",
+    "followPushRpc": "127.0.0.1:8759",
     "file_number": 10
 }

+ 2 - 0
src/jfw/modules/publicapply/src/main.go

@@ -4,6 +4,7 @@ import (
 	_ "a"
 	_ "adLeague"
 	_ "applocation"
+	_ "attachmentdow"
 	_ "bidcollection"
 	. "config"
 	_ "customer"
@@ -18,6 +19,7 @@ import (
 	_ "project"
 	_ "subscribe"
 	_ "subscribePush"
+
 	_ "userbase"
 
 	"github.com/go-xweb/xweb"

+ 13 - 7
src/jfw/modules/weixin/src/wx/wx.go

@@ -786,9 +786,11 @@ func Subscribe(w ResponseWriter, r *Request) {
 				w.ReplyText(fmt.Sprintf(exists, strings.ReplaceAll(subkey, "++", " "), fastSubscribeText["skill"].(string)))
 			} else if pcresult == "vipsubscribe##reply" { //关注
 				vipsubReply := config.Sysconfig["vipSubscribeReply"].(map[string]interface{})
-				time.AfterFunc(time.Second/2, func() {
-					w.PostText(fmt.Sprintf(fmt.Sprint(vipsubReply["content"]), config.Sysconfig["webdomain"].(string)+vipsubReply["href"].(string)))
-				})
+				if switchBl, ok := vipsubReply["switch"].(bool); switchBl && ok {
+					time.AfterFunc(time.Second/2, func() {
+						w.PostText(fmt.Sprintf(fmt.Sprint(vipsubReply["content"]), config.Sysconfig["webdomain"].(string)+vipsubReply["href"].(string)))
+					})
+				}
 				isAutoRepl = true
 			} else {
 				if subkey != "" {
@@ -1207,9 +1209,11 @@ func ScanHandler(w ResponseWriter, r *Request) {
 					w.ReplyText(fmt.Sprintf(config.Sysconfig["welcomemsg"].(string), url))
 					if pcresult == "vipsubscribe##reply" { //新用户扫码
 						vipsubReply := config.Sysconfig["vipSubscribeReply"].(map[string]interface{})
-						time.AfterFunc(time.Second/2, func() {
-							w.PostText(fmt.Sprintf(fmt.Sprint(vipsubReply["content"]), config.Sysconfig["webdomain"].(string)+vipsubReply["href"].(string)))
-						})
+						if switchBl, ok := vipsubReply["switch"].(bool); switchBl && ok {
+							time.AfterFunc(time.Second/2, func() {
+								w.PostText(fmt.Sprintf(fmt.Sprint(vipsubReply["content"]), config.Sysconfig["webdomain"].(string)+vipsubReply["href"].(string)))
+							})
+						}
 					}
 				}
 			}
@@ -1292,7 +1296,9 @@ func ScanHandler(w ResponseWriter, r *Request) {
 					w.ReplyText(fmt.Sprintf(fmt.Sprint(pchints["key_fail"]), strings.ReplaceAll(subkey, "++", " "), url))
 				} else if pcresult == "vipsubscribe##reply" { //老用户扫码
 					vipsubReply := config.Sysconfig["vipSubscribeReply"].(map[string]interface{})
-					w.ReplyText(fmt.Sprintf(fmt.Sprint(vipsubReply["content"]), config.Sysconfig["webdomain"].(string)+vipsubReply["href"].(string)))
+					if switchBl, ok := vipsubReply["switch"].(bool); switchBl && ok {
+						w.ReplyText(fmt.Sprintf(fmt.Sprint(vipsubReply["content"]), config.Sysconfig["webdomain"].(string)+vipsubReply["href"].(string)))
+					}
 				}
 			} else if pccodepre == "18" { //关注企业
 				company := redis.GetStr("sso", "pc_subscribe_"+r.EventKey) //企业名称

+ 2 - 2
src/jfw/modules/wxtoken/src/config.json

@@ -1,8 +1,8 @@
 {
 	"wxs":[
 		{
-			"appid":"wx5b1c6e7cc4dac0e4",
-			"appsecret":"b026103ffebd2291b3edb7a269612112"
+			"appid":"wxdedd73f450993685",
+			"appsecret":"d55898fde0b7887e5fe4660bd2494700"
 		}
 	],
 	"redis":"wxtoken=192.168.3.206:1712"

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

@@ -117,8 +117,21 @@ var vNode = {
             encryptId: '', // 首次埋点返回的加密id 用于点击去开通传参
             power: [],
             hotChart: null,
-      		isFreeExper: false, // 免费用户体验标识
-            pieChart: null
+      		  isFreeExper: false, // 免费用户体验标识
+            pieChart: null,
+            userInfo: {
+              isFree: false,
+              vipStatus: false,
+              viper: false,
+              entniche: false
+            },
+            usageInfo: {
+              total: 0,
+              usage: 0,
+              provin: 0,
+              visited: false,
+              surplus: 0
+            } // 超级订阅用户画像浏览
         }
     },
     computed: {
@@ -155,8 +168,32 @@ var vNode = {
             })
         },
         getStatus: function () {
-          return this.power.indexOf(5)  == -1 // power == 5
+          var info = this.userInfo
+          var isFreeAuth = info.isFree && info.freeBuyerPort > 0
+          var isVipAuth = info.vipStatus > 0 && info.viper && this.usageInfo.surplus > 0
+          var isMember = this.power.indexOf(5)  !== -1
+          // 免费用户无体验次数的、超级订阅用户无剩余次数的、没有大会员浏览权限的 显示遮罩
+          return !isFreeAuth && !isVipAuth && !isMember // power == 5
+        },
+        // 展示免费用户体验
+        getfreeBuyerPort:function(){
+          return this.userInfo.isFree && this.userInfo.freeBuyerPort == 0;
+        },
+        // 展示超级订阅浏览次数
+        superVipPort: function () {
+          console.log(this.userInfo.vipStatus, this.userInfo.viper)
+          return this.userInfo.vipStatus > 0 && this.userInfo.viper && this.bigStatus <= 0
         },
+        // 超级订阅用户对应的按钮
+        superVipBtnText: function () {
+          let text = ''
+          if (this.usageInfo.provin === -1) {
+            text = '联系客服'
+          } else {
+            text = '前往升级'
+          }
+          return text 
+        }
     },
     watch: {
       // 监听热力图
@@ -194,15 +231,34 @@ var vNode = {
           sessionStorage.removeItem('buyer_high_set')
           sessionStorage.removeItem('buyer_high_name')
         }
-      
-        this.getNewMsg(); // 中标动态
-        this.getChartData(); // 企业画像
-        // this.init();
     },
     beforeDestroy() {
       window.removeEventListener("resize", this.init,20);
     },
     methods: {
+        // 查询超级订阅采购单位画像浏览次数
+        getUsage: function () {
+          var _this = this
+          console.log(this.superVipPort)
+          if (this.superVipPort) {
+            $.ajax({
+              type: 'POST',
+              url: '/bigmember/portrait/subVipPortrait/usage',
+              data: {
+                buyer: decodeURIComponent(utils.getParam('entName')),
+                p_type: '1'
+              },
+              success: function (res) {
+                if (res.error_code == 0 && res.data) {
+                  res.data.surplus = res.data.total - res.data.usage
+                  _this.usageInfo = res.data
+                } else {
+                  console.log(res.error_msg)
+                }
+              }
+            })
+          }
+        },
         // 获取权限信息
         getPowerInfo: function () {
           var _this = this
@@ -211,38 +267,47 @@ var vNode = {
             url: '/bigmember/use/isAdd?t=' + Date.now(),
             success: function (res) {
               if (res.data) {
-                _this.power = res.data.power
-                _this.bigStatus = res.data.memberStatus
-                var entniche = res.data.entniche
-                var member = res.data.memberStatus
-                var vip = res.data.vipStatus
-                var userType = ''
-                if (vip > 0) {
-                  userType = '1'
-                }
-                if (member > 0) {
-                  if (userType !== '') {
-                    userType += ','
+                  _this.power = res.data.power
+                  _this.bigStatus = res.data.memberStatus
+                  var entniche = res.data.entniche
+                  var member = res.data.memberStatus
+                  var vip = res.data.vipStatus
+                  //免费用户可查看采购单位画像次数(-1:已使用;0:未使用;1:可使用次数)
+                  _this.userInfo.isFree = res.data.isFree
+                  _this.userInfo.vipStatus = res.data.vipStatus
+                  _this.userInfo.viper = res.data.viper
+                  _this.userInfo.freeBuyerPort = res.data.freeBuyerPort
+                  _this.userInfo.entniche = res.data.entniche
+                  var userType = ''
+                  if (vip > 0) {
+                    userType = '1'
                   }
-                  userType += '2'
-                }
-                if (entniche) {
-                  if (userType !== '') {
-                    userType += ','
+                  if (member > 0) {
+                    if (userType !== '') {
+                      userType += ','
+                    }
+                    userType += '2'
                   }
-                  userType += '3'
-                }
-                if (userType === '') {
-                  userType = '0'
-                }
-                // 没有采购单位画像权限的 则添加埋点
-                if (res.data.power.indexOf(5) === -1) {
-                  _this.getBuried(userType)
+                  if (entniche) {
+                    if (userType !== '') {
+                      userType += ','
+                    }
+                    userType += '3'
+                  }
+                  if (userType === '') {
+                    userType = '0'
+                  }
+                  // 没有采购单位画像权限的 则添加埋点
+                  if (res.data.power.indexOf(5) === -1) {
+                    _this.getBuried(userType)
+                  }
+                //免费用户体验权限
+                if(res.data.isFree&&res.data.freeEntPort==0){
+                  _this.isFreeExper=true
                 }
-	            //免费用户体验权限
-	            if(res.data.isFree&&res.data.freeEntPort==0){
-	            	_this.isFreeExper=true
-	            }
+                _this.getUsage(); // 超级订阅用户剩余次数
+                _this.getNewMsg(); // 中标动态
+                _this.getChartData(); // 企业画像
               }
             },
             error: function (error) {
@@ -343,7 +408,8 @@ var vNode = {
         },
         // 跳转招标动态新页面
         goProjectPage: function () {
-          if (this.power.indexOf(5) == -1) {
+          // 无权限的弹出弹框提醒
+          if (this.getStatus) {
             this.openDialog()
             return
           } else {
@@ -354,6 +420,7 @@ var vNode = {
         getNewMsg: function(){
           var that = this;
           var storageSet = JSON.parse(sessionStorage.getItem('buyer_high_set'))
+          var isMember = this.bigStatus > 0 && this.power.indexOf(5) > -1
           var data = {
               buyer: decodeURIComponent(utils.getParam('entName')),
               // count: that.dt.pageCount,
@@ -362,7 +429,7 @@ var vNode = {
           }
           $.ajax({
             type:'POST',
-            url:'/bigmember/portrait/buyer/getNewMsg',
+            url: isMember ? '/bigmember/portrait/buyer/getNewMsg' : '/bigmember/subVipPortrait/buyer/getNewMsg',
             data:storageSet ? Object.assign(data, storageSet) : data,
             success:function(res) {
               if(res.error_code == 0) {
@@ -415,9 +482,10 @@ var vNode = {
           var data = {
             buyer: decodeURIComponent(utils.getParam('entName'))
           }
+          var isMember = this.bigStatus > 0 && this.power.indexOf(5) > -1
           $.ajax({
             type:'POST',
-            url:'/bigmember/portrait/buyer/getData',
+            url: isMember ? '/bigmember/portrait/buyer/getData' : '/bigmember/subVipPortrait/buyer/getData',
             data:storageSet ? Object.assign(data, storageSet) : data,
             success:function(res) {
                 if(res.error_code == 0) {
@@ -1264,19 +1332,52 @@ var vNode = {
         },
         openDialog: function () {
           var _this = this
+          var info = this.userInfo
+          var title = ''
+          var content = ''
+          var btnText = ''
+          var isFree = info.isFree
+          var isVip = info.vipStatus > 0
+          if (isFree) {
+            if (info.freeBuyerPort < 0) {
+              title = '开通超级订阅'
+              content = '您已经免费解锁过【采购单位全景分析】权益1次,暂无免费查看权限。如需查看更多,请开通超级订阅获取更多权限。'
+              btnText = '去开通'
+            } else {
+              // 立即解锁
+              location.href = '/jyapp/frontPage/bigmember/free/perfect_info?source=buyer_portrait_getNewMsg_freeuser'
+              // 需要return出去 直接跳留资 不弹弹框
+              return
+            }
+          } else {
+            if (isVip) {
+              title = '升级超级订阅'
+              content = '对不起,暂无权限,您可升级超级订阅解锁采购单位全景分析,查看更多招标动态'
+              btnText = '前往升级'
+            } else {
+              title = '开通大会员'
+              content = '开通大会员,采购单位项目动态全面获取,帮助企业洞察采购需求,开发新客户!'
+              btnText = '联系客服'
+            }
+          }
           this.$dialog.confirm({
             width: 303,
             className: 'custom-dialog',
-            title: '您暂无使用权限',
-            message: '开通大会员,采购单位项目动态全面获取,帮助企业洞察采购需求,开发新客户!',
+            title: title,
+            message: content,
             messageAlign:'left',
-            confirmButtonText: _this.power.indexOf(5) < 0 && _this.bigStatus > 0 ? '联系客服' : '免费体验',
+            confirmButtonText: btnText,
             confirmButtonColor: '#2ABED1',
             showCancelButton: true,
             cancelButtonText: '取消'
           }).then(function(){
-            if (_this.power.indexOf(5) < 0 && _this.bigStatus > 0) {
-              location.href = "tel: 400-108-6670"
+            if (btnText == '联系客服') {
+              // location.href = "tel: 400-108-6670"
+              location.href = '/big/wx/page/customer'
+            } else if (btnText == '前往升级') {
+              location.href = '/front/vipsubscribe/upgradePage'
+            } else if (btnText == '去开通') {
+              location.href = '/front/vipsubscribe/vipsubscribe_new'
             } else {
               _this.goBuyBuried('开通大会员,采购单位项目动态全面获取,帮助企业洞察采购需求,开发新客户!')
             }
@@ -1290,11 +1391,11 @@ var vNode = {
             var href = '/article/content/' + item.id + '.html'
             location.href = href
           } else {
-            if (this.power.indexOf(5) == -1) {
-              this.openDialog()
-            } else {
-              console.log('没有id')
-            }
+            // if (this.power.indexOf(5) == -1) {
+            //   this.openDialog()
+            // } else {
+            //   console.log('没有id')
+            // }
           }
         },
         // 求最大项目数量
@@ -1315,6 +1416,33 @@ var vNode = {
         goHighSet: function() {
           sessionStorage.setItem('is-click-set', 1)
           location.href = '/big/wx/page/free_high_set?header=采购单位高级分析设置&entName=' + decodeURIComponent(utils.getParam('entName'))
+        },
+        //免费赠送采购单位全景分析体验 去解锁
+        goGiveAnalysis: function(){
+          location.href = '/weixin/frontPage/bigmember/free/perfect_info?source=buyerportrait_freeuser';
+        },
+        // 前往升级或联系客服
+        goUpgradeOrConcat: function (item) {
+          console.log(item)
+          var usage = this.usageInfo
+          var someProvinText = `<span>每购买<em class="highlight-text">1</em>个省,每月可查看<em class="highlight-text">5</em>个采购单位画像,上限为<em class="highlight-text">80</em>个,您当前订阅了${usage.provin}个省,如需查看更多,前往订阅更多省份。</span>`
+          var allProvinText = `<span>每购买<em>1</em>个省,每月可查看<em>5</em>个采购单位画像,上限为<em>80</em>个,您当前订阅全国,如需查看更多,请联系客服。</span>`
+          this.$dialog.confirm({
+            width: 303,
+            className: 'custom-dialog',
+            message: usage.provin == -1 ? allProvinText : someProvinText,
+            messageAlign:'left',
+            confirmButtonText: item,
+            confirmButtonColor: '#2ABED1',
+            showCancelButton: true,
+            cancelButtonText: '取消'
+          }).then(function(data){
+            if (item == '前往升级') {
+              location.href = '/front/vipsubscribe/upgradePage'
+            } else if (item == '联系客服') {
+              location.href = '/big/wx/page/customer'
+            }
+          })
         }
     }
 }

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

@@ -98,7 +98,13 @@ var vConfig = {
             infoType: [],
             timeRange: [],
         },
-        reqSign: 'bigmember'
+        reqSign: 'bigmember',
+        info: {
+          bigStatus: false,
+          vipStatus: false,
+          viper: false,
+          power: []
+        }
     },
     computed: {
         projectNewUrl: function () {
@@ -137,17 +143,36 @@ var vConfig = {
         if (entName) {
           this.entInfo.buyerName = entName
         }
+        this.getUserInfo()
     },
-    mounted: function () {
-        var recover = this.recover()
-        if (!recover) {
-            // this.getFilterInfo()
-            this.onLoad()
-        } else {
-            this.initSelector(this.filterInitData)
-        }
-    },
+    mounted: function () {},
     methods: {
+        getUserInfo: function() {
+          var _this = this
+          $.ajax({
+            type: 'POST',
+            url: '/bigmember/use/isAdd?t=' + Date.now(),
+            timeout: 6000,
+            success: function (res) {
+                if (res.data) {
+                  _this.info.bigStatus = res.data.memberStatus
+                  _this.info.power = res.data.power
+                  _this.info.vipStatus = res.data.vipStatus
+                  _this.info.viper = res.data.viper
+                  var recover = _this.recover()
+                  if (!recover) {
+                      // this.getFilterInfo()
+                      _this.onLoad()
+                  } else {
+                      _this.initSelector(_this.filterInitData)
+                  }
+                }
+            },
+            error: function (error) {
+              console.log(error)
+            }
+          })
+        },
         showToast: function (message) {
             this.$toast({
                 duration: 1500,
@@ -192,7 +217,8 @@ var vConfig = {
             var t = this.listState
             t.loading = true
             var storageSet = JSON.parse(sessionStorage.getItem('buyer_high_set'))
-            var url = '/bigmember/portrait/buyer/getNewMsg'
+            var bigUrl = '/bigmember/portrait/buyer/getNewMsg'
+            var vipUrl = '/bigmember/subVipPortrait/buyer/getNewMsg'
             var data = {
               buyer: _this.entInfo.buyerName,
               // match: _this.searchInfo.content,
@@ -203,9 +229,10 @@ var vConfig = {
               pageNum: _this.listState.pageNum,
               pageSize: _this.listState.pageSize,
             }
+            var isMember = _this.info.bigStatus > 0 && _this.info.power.indexOf(5) > -1
             $.ajax({
                 type: 'POST',
-                url: url,
+                url: isMember ? bigUrl : vipUrl,
                 data: storageSet ? Object.assign(data, storageSet) : data,
                 success: function (res) {
                     if (res.data) {

+ 31 - 7
src/web/staticres/common-module/big-member/js/high_set.js

@@ -72,7 +72,9 @@ var highSet = new Vue({
       selectScopeList: ['purchasing'],
       matchTypeList: matchTypeList,
       startRange: [],
-      endRange: []
+      endRange: [],
+      bigStatus: 0,
+      power:[]
     }
   },
   watch: {
@@ -116,12 +118,14 @@ var highSet = new Vue({
       }
       var urlMap = {
           bigmember: '/bigmember/portrait/' + path, // 大会员
-          svip: '/bigmember/portrait/subVipPortrait/selects' // 超级订阅
-      }
-      var url = urlMap.bigmember
-      if (urlMap[this.reqSign]) {
-          url = urlMap[this.reqSign]
+          svip: '/bigmember/subVipPortrait/' + path // 超级订阅
       }
+      console.log(this.bigStatus, this.power)
+      var isMember = this.bigStatus > 0 && this.power.indexOf(5) > -1
+      var url = isMember ? urlMap.bigmember : urlMap.svip
+      // if (urlMap[this.reqSign]) {
+      //     url = urlMap[this.reqSign]
+      // }
       return url
     }
   },
@@ -146,11 +150,12 @@ var highSet = new Vue({
     if (reqSign) {
       this.reqSign = reqSign
     }
+    this.getUserInfo()
   },
   mounted () {
     var header = decodeURIComponent(utils.getParam('header'))
     this.setHeaderTitle(header)
-    this.getFilterApi()
+    
     if (this.conf.area == '全国') {
       $('.area-class .van-cell__value span').html('全部')
     } else {
@@ -162,6 +167,25 @@ var highSet = new Vue({
     setHeaderTitle: function setHeaderTitle (header) {
       document.title = header || document.title
     },
+    getUserInfo: function() {
+      var _this = this
+      $.ajax({
+        type: 'POST',
+        url: '/bigmember/use/isAdd?t=' + Date.now(),
+        success: function (res) {
+          if (res.error_code == 0 && res.data) {
+            _this.bigStatus = res.data.memberStatus
+            _this.power = res.data.power
+            _this.getFilterApi()
+          } else {
+            _this.showToast(res.error_msg)
+          }
+        },
+        error: function (error) {
+          console.log(error)
+        }
+    })
+    },
     // 将缓存中的项目搜索范围英文字段转换为中文用于在输入框展示
     formatterLabel: function(data) {
       var arr = []

+ 77 - 20
src/web/staticres/common-module/collection/js/buyer-example.js

@@ -43,7 +43,19 @@ var buyerExample = {
       default: function () {
         return 0
       }
-    }
+    },
+    "userinfo": {
+      type: Object,
+      default: function () {
+        return {}
+      }
+    },
+    "useage": {
+      type: Object,
+      default: function () {
+        return {}
+      }
+    },
   },
   data: function() {
     return {
@@ -59,16 +71,16 @@ var buyerExample = {
     getTextMap () {
       var textMap = {
         titleText: '开通大会员',
-        btnText: '免费体验',
+        btnText: this.shadeBottomBtnText,
         headText: {
           top: '通过实时监控项目的招标、中标、合同等',
           bot: '信息,全面挖掘更多潜在商机!'
         },
         source: ''
       }
-      if (this.power.indexOf(5) < 0 && this.status > 0) {
-        textMap.btnText = '联系客服'
-      }
+      // if (this.power.indexOf(5) < 0 && this.status > 0) {
+      //   textMap.btnText = '联系客服'
+      // }
       switch (this.type) {
           // 历史项目联系方式
         case 'item_1': {
@@ -157,29 +169,75 @@ var buyerExample = {
       }
       return textMap
     },
+    // 遮罩按钮对应文案
+    shadeBottomBtnText () {
+      let btnText = ''
+      var info = this.userinfo
+      var usage = this.usage
+      // 【立即解锁】:未体验过采购单位画像的免费用户,点击进行“欢迎体验采购单位全景分析”留资
+      // 【去开通】:已体验过1次采购单位画像的免费用户,点击进入超级订阅购买页
+      // 【前往升级】:超级订阅老版用户+购买了非全国采购单位画像余额为0的超级订阅新版用户,点击进入超级订阅升级页
+      // 【联系客服】:购买了全国采购单位画像余额为0的超级订阅新版用户+无采购单位画像权限的大会员客户;点击调起智齿在线客服
+      if (info.isFree) {
+        if (info.freeBuyerPort === 0) {
+          btnText = '立即解锁'
+        } else {
+          btnText = '去开通'
+        }
+      } else {
+        // 老超级订阅用户
+        var oldVip = info.vipStatus > 0 && !info.viper
+        // 新超级订阅用户
+        var newVip = info.vipStatus > 0 && info.viper
+        // 大会员用户
+        var member = this.status > 0
+        // 新超级订阅用户买的非全国 余额为0
+        var noAllProvinNoCounts = newVip && usage.provin !== -1 && usage.surplus <= 0
+        // 超级订阅新用户 购买的全国 余额为0
+        var allProvinNoCounts = newVip && usage.provin === -1 && usage.surplus <= 0
+        // 无权限的大会员用户
+        var noAuthMember = member && this.power.indexOf(5) === -1
+        // 纯商机管理用户
+        var entniche = info.entniche && !oldVip && !newVip && !member
+        if (oldVip || noAllProvinNoCounts) {
+          btnText = '前往升级'
+        } else if (allProvinNoCounts || noAuthMember || entniche) {
+          btnText = '联系客服'
+        }
+      }
+      return btnText
+    }
   },
   methods: {
     linkFn: function(id, source) {
       var isWeixin = utils.isWeiXinBrowser
       if(!isWeixin) {
-        if (this.getTextMap.btnText == '免费体验') {
-          // 跳转到大会员
-          // location.href = '/jyapp/big/page/buy_commit?bid=' + id
+        if (this.getTextMap.btnText == '立即解锁') {
+          // 留资
           location.href = '/jyapp/frontPage/bigmember/free/perfect_info?source=' + source
         } else if (this.getTextMap.btnText == '联系客服') {
-          try {
-            JyObj.callPhone('400-108-6670');
-          } catch (error) {
-            console.log(error)
-          }
+          // try {
+          //   JyObj.callPhone('400-108-6670');
+          // } catch (error) {
+          //   console.log(error)
+          // }
+          location.href = '/jyapp/free/customer' // 客服
+        } else if (this.getTextMap.btnText == '去开通') {
+          location.href = '/jyapp/vipsubscribe/vipsubscribe_new'
+        } else if (this.getTextMap.btnText == '前往升级') {
+          location.href = '/jyapp/vipsubscribe/upgradePage'
         }
       } else {
-        if (this.getTextMap.btnText == '免费体验') {
-          // 跳转到大会员
-          // location.href = '/big/wx/page/buy_commit?bid=' + id
+        if (this.getTextMap.btnText == '立即解锁') {
+          // 留资
           location.href = '/weixin/frontPage/bigmember/free/perfect_info?source=' + source
         } else if (this.getTextMap.btnText == '联系客服') {
-          location.href = 'tel:400-108-6670'
+          // location.href = 'tel:400-108-6670'
+          location.href = '/big/wx/page/customer'
+        } else if (this.getTextMap.btnText == '去开通') {
+          location.href = '/front/vipsubscribe/vipsubscribe_new'
+        } else if (this.getTextMap.btnText == '前往升级') {
+          location.href = '/front/vipsubscribe/upgradePage'
         }
       }
     },
@@ -192,14 +250,13 @@ var buyerExample = {
       }
       var _this = this
       console.log(_this.getTextMap.btnText)
-      if (_this.getTextMap.btnText == '免费体验') {
+      if (_this.getTextMap.btnText == '立即解锁') {
         $.ajax({
           type: 'POST',
           url: '/publicapply/drainage/buyerunit',
           contentType: "application/json",
           data: JSON.stringify(params),
           success: function (res) {
-            console.log(res)
             _this.linkFn(_this.$parent.encryptId, source)
           },
           error: function (error) {
@@ -207,7 +264,7 @@ var buyerExample = {
             _this.linkFn(_this.$parent.encryptId, source)
           }
         })
-      } else if (_this.getTextMap.btnText == '联系客服') {
+      } else {
         _this.linkFn(_this.$parent.encryptId)
       }
     }

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

@@ -109,7 +109,7 @@ var vNode = {
       svip: false, // 判断是否是超级订阅的企业画像
       overlayShow: true, // 弹窗遮罩是否显示
       isVip: false, // 只是超级订阅
-      isFreeExper: false, // 免费用户体验标识
+      canFreeExp: false, // 免费用户体验标识
       bidcollPowerInfo: {
         vip: 0,
         text: '开通',
@@ -632,7 +632,7 @@ var vNode = {
               }
 	            //免费用户体验权限
 	            if(res.data.isFree&&res.data.freeEntPort==0){
-	            	_this.isFreeExper=true
+	            	_this.canFreeExp=true
 	            }
               _this.singleTab = false
             }

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

@@ -61,6 +61,12 @@ var hisproComponent = {
       default: function() {
         return ''
       }
+    },
+    'status': {
+      type: String,
+      default: function() {
+        return 0
+      }
     }
   },
   data: function () {
@@ -87,7 +93,12 @@ var hisproComponent = {
         item.url = '/bigmember/portrait/winner/contacts'
         item.datas.entId = this.id
       } else if(this.type == 'buyer') {
-        item.url = '/bigmember/portrait/buyer/contacts'
+        console.log(this.status, '111')
+        if (this.status > 0) {
+          item.url = '/bigmember/portrait/buyer/contacts'
+        } else {
+          item.url = '/bigmember/subVipPortrait/buyer/contacts'
+        }
         item.datas.buyer = this.buyer
       } else {
         loading.clear()

+ 81 - 26
src/web/staticres/common-module/collection/js/vip-dialog.js

@@ -26,6 +26,12 @@ var vipComponent = {
         return ''
       }
     },
+    "canFreeExp": {
+      type: Boolean,
+      default: function () {
+        return false
+      }
+    },
     "entvisit": {
       type: Object,
       default: function () {
@@ -89,7 +95,7 @@ var vipComponent = {
           textMap.btnText = '联系客服'
         } else {
           if (this.type === 'item_1') {
-            textMap.btnText = !this.newvip && this.power.vipStatus > 0  ? '升级' : '去开通'
+            textMap.btnText = !this.newvip && this.power.vipStatus > 0  ? '前往升级' : '去开通'
           } else {
             textMap.btnText = '联系客服'
           }
@@ -100,18 +106,31 @@ var vipComponent = {
             textMap.btnText = '去开通'
           } else if (this.entvisit.provin != -1) {
             textMap.titleText = '超级订阅'
-            textMap.btnText = this.type === 'item_1' ? '升级' : '免费体验'
+            textMap.btnText = this.type === 'item_1' ? '前往升级' : '免费体验'
           } else if(this.entvisit.provin == -1) {
             textMap.titleText = '超级订阅'
             textMap.btnText = this.type === 'item_1' ? '联系客服' : '免费体验'
           }
         } else {
           if (this.type === 'item_1') {
-            textMap.btnText = !this.newvip && this.power.vipStatus > 0  ? '升级' : '去开通'
+            textMap.btnText = !this.newvip && this.power.vipStatus > 0  ? '前往升级' : '去开通'
           } else {
             textMap.btnText = '免费体验'
           }
         }
+
+        // (2)【立即解锁】:未体验过企业画像的免费用户,中标分析各模块,点击进行“欢迎体验企业中标分析”留资;
+        if (this.canFreeExp) {
+          textMap.btnText = '立即解锁'
+        } else {
+          if (this.power.vipStatus <= 0) {
+            textMap.btnText = '去开通'
+          }
+          // (4)【前往升级】:超级订阅老版用户,中标分析各模块;购买了非全国的超级订阅新版用户且企业画像余额为0;点击进入超级订阅升级页;
+          if (!this.newvip && this.entvisit.provin != -1 && this.entvisit.total >= 0) {
+            textMap.btnText = '前往升级'
+          }
+        }
       }
       switch (this.type) {
           // 项目动态
@@ -126,7 +145,7 @@ var vipComponent = {
           // textMap.btnText =  this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
           textMap.headText.top = '年度项目规模、增长趋势一目了然,'
           textMap.headText.bot = '快速分析市场!'
-          textMap.source = 'ent_portrait_yearData'
+          textMap.source = 'ent_portrait_yearData_freeuser'
           break
         }
           // 月度中标金额统计
@@ -135,7 +154,7 @@ var vipComponent = {
           // textMap.btnText = this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
           textMap.headText.top = '纵向对比采购单位近三年月度采购规模,'
           textMap.headText.bot = '不错过任何商机!'
-          textMap.source = 'ent_portrait_monthData'
+          textMap.source = 'ent_portrait_monthData_freeuser'
           break
         }
           // 市场区域分布
@@ -144,7 +163,7 @@ var vipComponent = {
           // textMap.btnText = this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
           textMap.headText.top = '通过企业市场规模、市场格局,'
           textMap.headText.bot = '分析企业的市场发展现状!'
-          textMap.source = 'ent_portrait_areaData'
+          textMap.source = 'ent_portrait_areaData_freeuser'
           break
         }
           // 各类客户平均折扣率
@@ -153,7 +172,7 @@ var vipComponent = {
           // textMap.btnText = this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
           textMap.headText.top = '通过近3年各类客户平均折扣率范围,'
           textMap.headText.bot = '透视企业的行业盈利能力!'
-          textMap.source = 'ent_portrait_discountRate'
+          textMap.source = 'ent_portrait_discountRate_freeuser'
           break
         }
           // 客户类型分布
@@ -162,7 +181,7 @@ var vipComponent = {
           // textMap.btnText = this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
           textMap.headText.top = '通过企业主要客户类型分析,'
           textMap.headText.bot = '洞悉企业业务模式、经营状况!'
-          textMap.source = 'ent_portrait_top10'
+          textMap.source = 'ent_portrait_top10_freeuser'
           break
         }
           // 重点客户
@@ -171,7 +190,7 @@ var vipComponent = {
           // textMap.btnText = this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
           textMap.headText.top = '通过挖掘企业重点客户,直观了解采购单位'
           textMap.headText.bot = '与供应商关系远近,辅助投标决策!'
-          textMap.source = 'ent_portrait_topShow'
+          textMap.source = 'ent_portrait_topShow_freeuser'
           break
         }
           // 企业情报历史记录
@@ -202,12 +221,9 @@ var vipComponent = {
     },
   },
   methods: {
-    goOpen: function(source) {
-      // 点击按钮保存tabActiveName值
-      this.$emit('tabactive', 'save')
-      let isWeixin = utils.isWeiXinBrowser
-      if(!isWeixin) {
-        if (this.getTextMap.btnText == '去开通') {
+    goOpenOfApp: function (btnText, source) {
+      switch (btnText) {
+        case '去开通': {
           if(this.type == 'item_9' || this.type == 'item_8') {
             // 跳转到大会员
             location.href = '/jyapp/big/page/buy_commit'
@@ -216,17 +232,33 @@ var vipComponent = {
             // 跳转到超级订阅
             location.href = '/jyapp/vipsubscribe/vipsubscribe_new'
           }
-        } else if (this.getTextMap.btnText == '免费体验') {
+          break
+        }
+        case '免费体验': {
           location.href = '/jyapp/frontPage/bigmember/free/perfect_info?source=' + source
-        } else if (this.getTextMap.btnText == '去升级') {
+          break
+        }
+        case '前往升级': {
           location.href = '/jyapp/vipsubscribe/upgradePage'
-        } else if(this.getTextMap.btnText == '联系客服') {
+          break
+        }
+        case '联系客服': {
           location.href = '/jyapp/free/customer'
-        } else {
+          break
+        }
+        case '立即解锁': {
+          location.href = '/jyapp/frontPage/bigmember/free/perfect_info?source=ent_portrait_freeuser'
+          break
+        }
+        default: {
           location.href = '/jyapp/vipsubscribe/vipsubscribe_new'
+          break
         }
-      } else {
-        if (this.getTextMap.btnText == '去开通') {
+      }
+    },
+    goOpenOfWx: function (btnText, source) {
+      switch (btnText) {
+        case '去开通': {
           if(this.type == 'item_9' || this.type == 'item_8') {
             // 跳转到大会员
             location.href = '/big/wx/page/buy_commit'
@@ -234,16 +266,39 @@ var vipComponent = {
             // 跳转到超级订阅
             location.href = '/front/vipsubscribe/vipsubscribe_new'
           }
-        } else if (this.getTextMap.btnText == '免费体验') {
+          break
+        }
+        case '免费体验': {
           location.href = '/weixin/frontPage/bigmember/free/perfect_info?source=' + source
-        } else if (this.getTextMap.btnText == '去升级') {
+          break
+        }
+        case '前往升级': {
           location.href = '/front/vipsubscribe/upgradePage'
-        } else if(this.getTextMap.btnText == '联系客服') {
+          break
+        }
+        case '联系客服': {
           location.href = '/big/wx/page/customer'
-        } else {
+          break
+        }
+        case '立即解锁': {
+          location.href = '/weixin/frontPage/bigmember/free/perfect_info?source=ent_portrait_freeuser'
+          break
+        }
+        default: {
           location.href = '/front/vipsubscribe/vipsubscribe_new'
+          break
         }
       }
+    },
+    goOpen: function(source) {
+      // 点击按钮保存tabActiveName值
+      this.$emit('tabactive', 'save')
+      const isWeixin = utils.isWeiXinBrowser
+      if (isWeixin) {
+        this.goOpenOfWx(this.getTextMap.btnText, source)
+      } else {
+        this.goOpenOfApp(this.getTextMap.btnText, source)
+      }
     }
   }
-}
+}

+ 64 - 17
src/web/staticres/common-module/portraitRecord/js/index-wx.js

@@ -66,10 +66,12 @@ var vm = new Vue({
       },
       statusEnum: ['存续', '吊销', '停业', '撤销'],
       statusColors: ['#2CB7CA', '#F5AF5C', '#58A1E7', '#51CEA2'],
-      list: []
+      list: [],
+      ptype:""
     }
   },
   created: function () {
+      this.getPType("type") 
       this.years = new Date().getFullYear()
       this.months = parseInt(new Date().getMonth() + 1)
       this.dValue = this.years + '年' + this.months + '月'
@@ -78,8 +80,31 @@ var vm = new Vue({
       this.maxTime = new Date(this.years, this.months - 1)
       this.subPoint()
       this.onLoad()
+    	this.initHtml()
   },
   methods: {
+	initHtml(){
+		if(this.ptype=="1"){
+			document.title = '采购单位画像记录'
+			$(".btns span").text("当月采购单位画像剩余数")
+			$(".emptytext").text("暂无采购单位画像记录")
+		}
+	},
+	getPType(paraName){
+      	let _this = this
+		var url = document.location.toString();
+	   var arrObj = url.split("?");
+	   if (arrObj.length > 1) {
+      	var arrPara = arrObj[1].split("&");
+      	var arr;
+      	for (var i = 0; i < arrPara.length; i++) {
+        	arr = arrPara[i].split("=");
+        	if (arr != null && arr[0] == paraName) {
+          	_this.ptype =  arr[1];
+        	}
+      	}
+    	}
+	},
     usedHised() {
       let _this = this
       _this.pShow = true
@@ -89,7 +114,7 @@ var vm = new Vue({
         url: '/bigmember/portrait/subVipPortrait/usage',
         type: 'POST',
         contentType: 'application/x-www-form-urlencoded',
-        data: '',
+        data: {p_type:this.ptype},
         dataType: 'json'
       }).done(res => {
         if (res.error_code == 0) {
@@ -121,16 +146,29 @@ var vm = new Vue({
         if (Array.isArray(r.data.list) && r.data.list.length !== 0) {
           var _this = this
           this.list = this.list.concat(r.data.list.map(function (v) {
-            return {
-              name: v.company_name,
-              abbr: getShortName(v.company_name),
-              color: _this.statusColors[Math.floor(Math.random() * _this.statusColors.length)],
-              legal: v.legal_person,
-              money: v.capital,
-              address: v.company_address,
-              _id: v.id,
-              status: _this.statusEnum.indexOf(v.company_status) || 0,
-              checked: false
+        	if(_this.ptype==""){
+	            return {
+	              name: v.company_name,
+	              abbr: getShortName(v.company_name),
+	              color: _this.statusColors[Math.floor(Math.random() * _this.statusColors.length)],
+	              legal: v.legal_person,
+	              money: v.capital,
+	              address: v.company_address,
+	              _id: v.id,
+	              status: _this.statusEnum.indexOf(v.company_status) || 0,
+	              checked: false
+	            }
+            }else{
+	            return {
+	              name: v.name,
+	              abbr: getShortName(v.name),
+	              color: _this.statusColors[Math.floor(Math.random() * _this.statusColors.length)],
+	              buyerClass: v.buyerclass,
+	              province: v.province,
+	              city: v.city,
+	              _id: v.name,
+	              checked: false
+	            }
             }
           }))
         } else {
@@ -148,7 +186,8 @@ var vm = new Vue({
         year: this.years,
         month: this.months,
         pageSize: this.listInfo.pageSize,
-        pageNum: this.listInfo.pageNum
+        pageNum: this.listInfo.pageNum,
+        p_type:this.ptype
       }
     },
     ajaxEntList() {
@@ -164,10 +203,14 @@ var vm = new Vue({
     },
     helpTiped() {
       let _this = this
+    	var typeName = "企业画像"
+		if (_this.ptype=="1"){
+			typeName = "采购单位画像"
+		}
       if (_this.points.provin === -1 && _this.points.usage == _this.points.total) { // 用户订阅全国且机会用完
         this.contracted = true
         this.$dialog.alert({
-          message: '每订购1个省,可查看50个企业画像/月,<span style="color:#FF0000">上限为800个</span>,每月1号上月余额清零重新计算。您当前订阅全国,查看机会已经消耗完毕。如需更多权益,请联系客服。',
+          message: '每订购1个省,可查看50个'+typeName+'/月,<span style="color:#FF0000">上限为800个</span>,每月1号上月余额清零重新计算。您当前订阅全国,查看机会已经消耗完毕。如需更多权益,请联系客服。',
           className: 'pro-log',
           messageAlign: 'left',
           showCancelButton:'true',
@@ -176,7 +219,7 @@ var vm = new Vue({
         })
       } else if (_this.points.usage !== _this.points.total) { // 订阅全国和非订阅全国的次数未用完时
         this.$dialog.alert({
-          message: '每订购1个省,可查看50个企业画像/月,<span style="color:#FF0000">上限为800个</span>,每月1号上月余额清零重新计算。',
+          message: '每订购1个省,可查看50个'+typeName+'/月,<span style="color:#FF0000">上限为800个</span>,每月1号上月余额清零重新计算。',
           className: 'pro-log',
           messageAlign: 'left',
           confirmButtonColor: '#2ABED1',
@@ -185,7 +228,7 @@ var vm = new Vue({
         })
       } else if (_this.points.provin !== -1) { // 用户未订阅全国
         this.$dialog.alert({
-          message: '每订购1个省,可查看50个企业画像/月,<span style="color:#FF0000">上限为800个</span>,每月1号上月余额清零重新计算。 您当前订阅了' + `<span style="color:#2ABED1">${_this.points.provin}</span>` + '个省,如需更多权益,请订购更多省份。',
+          message: '每订购1个省,可查看50个'+typeName+'/月,<span style="color:#FF0000">上限为800个</span>,每月1号上月余额清零重新计算。 您当前订阅了' + `<span style="color:#2ABED1">${_this.points.provin}</span>` + '个省,如需更多权益,请订购更多省份。',
           className: 'pro-log',
           messageAlign: 'left',
           showCancelButton:'true',
@@ -219,7 +262,11 @@ var vm = new Vue({
         return (Y + M).replace(/^\s+|\s+$/g,"")
     },
     detailed(ids) {
-        location.href = '/weixin/frontPage/collection/sess/ent_portrait?eId=' + ids + '&svip=1'
+    	if(this.ptype==""){
+        	location.href = '/weixin/frontPage/collection/sess/ent_portrait?eId=' + ids + '&svip=1'
+        }else{
+			location.href='/big/wx/page/unit_portrayal?entName=' + ids + '&svip=1'
+		}
     },
     // contractPerson() {
     //   location.href = '400-108-6670'

+ 64 - 17
src/web/staticres/common-module/portraitRecord/js/index.js

@@ -66,10 +66,12 @@ var vm = new Vue({
       },
       statusEnum: ['存续', '吊销', '停业', '撤销'],
       statusColors: ['#2CB7CA', '#F5AF5C', '#58A1E7', '#51CEA2'],
-      list: []
+      list: [],
+      ptype:""
     }
   },
   created: function () {
+      this.getPType("type") 
       this.years = new Date().getFullYear()
       this.months = parseInt(new Date().getMonth() + 1)
       this.dValue = this.years + '年' + this.months + '月'
@@ -78,8 +80,31 @@ var vm = new Vue({
       this.maxTime = new Date(this.years, this.months - 1)
       this.subPoint()
       this.onLoad()
+    	this.initHtml()
   },
   methods: {
+	initHtml(){
+		if(this.ptype=="1"){
+			document.title = '采购单位画像记录'
+			$(".btns span").text("当月采购单位画像剩余数")
+			$(".emptytext").text("暂无采购单位画像记录")
+		}
+	},
+	getPType(paraName){
+      	let _this = this
+		var url = document.location.toString();
+	   var arrObj = url.split("?");
+	   if (arrObj.length > 1) {
+      	var arrPara = arrObj[1].split("&");
+      	var arr;
+      	for (var i = 0; i < arrPara.length; i++) {
+        	arr = arrPara[i].split("=");
+        	if (arr != null && arr[0] == paraName) {
+          	_this.ptype =  arr[1];
+        	}
+      	}
+    	}
+	},
     usedHised() {
       let _this = this
       _this.pShow = true
@@ -89,7 +114,7 @@ var vm = new Vue({
         url: '/bigmember/portrait/subVipPortrait/usage',
         type: 'POST',
         contentType: 'application/x-www-form-urlencoded',
-        data: '',
+        data: {p_type:this.ptype},
         dataType: 'json'
       }).done(res => {
         if (res.error_code == 0) {
@@ -121,16 +146,29 @@ var vm = new Vue({
         if (Array.isArray(r.data.list) && r.data.list.length !== 0) {
           var _this = this
           this.list = this.list.concat(r.data.list.map(function (v) {
-            return {
-              name: v.company_name,
-              abbr: getShortName(v.company_name),
-              color: _this.statusColors[Math.floor(Math.random() * _this.statusColors.length)],
-              legal: v.legal_person,
-              money: v.capital,
-              address: v.company_address,
-              _id: v.id,
-              status: _this.statusEnum.indexOf(v.company_status) || 0,
-              checked: false
+            if(_this.ptype==""){
+	            return {
+	              name: v.company_name,
+	              abbr: getShortName(v.company_name),
+	              color: _this.statusColors[Math.floor(Math.random() * _this.statusColors.length)],
+	              legal: v.legal_person,
+	              money: v.capital,
+	              address: v.company_address,
+	              _id: v.id,
+	              status: _this.statusEnum.indexOf(v.company_status) || 0,
+	              checked: false
+	            }
+            }else{
+	            return {
+	              name: v.name,
+	              abbr: getShortName(v.name),
+	              color: _this.statusColors[Math.floor(Math.random() * _this.statusColors.length)],
+	              buyerClass: v.buyerclass,
+	              province: v.province,
+	              city: v.city,
+	              _id: v.name,
+	              checked: false
+	            }
             }
           }))
         } else {
@@ -148,7 +186,8 @@ var vm = new Vue({
         year: this.years,
         month: this.months,
         pageSize: this.listInfo.pageSize,
-        pageNum: this.listInfo.pageNum
+        pageNum: this.listInfo.pageNum,
+        p_type:this.ptype
       }
     },
     ajaxEntList() {
@@ -164,10 +203,14 @@ var vm = new Vue({
     },
     helpTiped() {
       let _this = this
+    	var typeName = "企业画像"
+		if (_this.ptype=="1"){
+			typeName = "采购单位画像"
+		}
       if (_this.points.provin === -1 && _this.points.usage == _this.points.total) { // 用户订阅全国且机会用完
         this.contracted = true
         this.$dialog.alert({
-          message: '每订购1个省,可查看50个企业画像/月,<span style="color:#FF0000">上限为800个</span>,每月1号上月余额清零重新计算。您当前订阅全国,查看机会已经消耗完毕。如需更多权益,请联系客服。',
+          message: '每订购1个省,可查看50个'+typeName+'/月,<span style="color:#FF0000">上限为800个</span>,每月1号上月余额清零重新计算。您当前订阅全国,查看机会已经消耗完毕。如需更多权益,请联系客服。',
           className: 'pro-log',
           messageAlign: 'left',
           showCancelButton:'true',
@@ -176,7 +219,7 @@ var vm = new Vue({
         })
       } else if (_this.points.usage !== _this.points.total) { // 订阅全国和非订阅全国的次数未用完时
         this.$dialog.alert({
-          message: '每订购1个省,可查看50个企业画像/月,<span style="color:#FF0000">上限为800个</span>,每月1号上月余额清零重新计算。',
+          message: '每订购1个省,可查看50个'+typeName+'/月,<span style="color:#FF0000">上限为800个</span>,每月1号上月余额清零重新计算。',
           className: 'pro-log',
           messageAlign: 'left',
           confirmButtonColor: '#2ABED1',
@@ -186,7 +229,7 @@ var vm = new Vue({
       } else if (_this.points.provin !== -1) { // 用户未订阅全国
         this.$dialog.alert({
           // message: '每订购1个省,可查看50个企业画像/月。 您当前订阅了' + `<span style="color:#2ABED1">${_this.points.provin}</span>` + '个省,如需更多权益,请订购更多省份。',
-          message: '每订购1个省,每月可查看50个企业画像,<span style="color:#FF0000">上限为800个</span>,每月1号上月余额清零重新计算。您当前订阅了' + `<span style="color:#2ABED1">${_this.points.provin}</span>` + '个省,如需更多权益,请订购更多省份。',
+          message: '每订购1个省,每月可查看50个'+typeName+',<span style="color:#FF0000">上限为800个</span>,每月1号上月余额清零重新计算。您当前订阅了' + `<span style="color:#2ABED1">${_this.points.provin}</span>` + '个省,如需更多权益,请订购更多省份。',
           className: 'pro-log',
           messageAlign: 'left',
           showCancelButton:'true',
@@ -222,7 +265,11 @@ var vm = new Vue({
         return (Y + M).replace(/^\s+|\s+$/g,"")
     },
     detailed(ids) {
-        location.href = '/jyapp/big/page/ent_portrait?eId=' + ids + '&svip=1'
+    	if(this.ptype==""){
+        	location.href = '/jyapp/big/page/ent_portrait?eId=' + ids + '&svip=1'
+        }else{
+			location.href = '/jyapp/big/page/unit_portrayal?entName=' + ids + '&svip=1'
+		}
     },
     contractPerson() {
       try {

+ 1 - 0
src/web/staticres/css/pc.css

@@ -140,6 +140,7 @@ form{
 	line-height: 45px;
 	text-align:left;
 	padding-left:15px;
+	padding-right:15px;
 /*	border: 1px solid #e0e0e0;*/
 
 }

+ 15 - 4
src/web/staticres/css/subscribe_new.css

@@ -502,7 +502,7 @@
     position: absolute;
     width: 170px;
     height: 197px;
-    left: 30%;
+    left: 27.5%;
     bottom: 10%;
 }
 
@@ -510,11 +510,22 @@
     width: 180px;
     height: 21px;
     font-size: 16px;
-    font-family: MicrosoftYaHei;
     line-height: 24px;
-    color: rgba(59, 33, 5, 1);
     opacity: 1;
-    margin: 20px 0 0 -15px;
+    margin: 20px 0 0 2px;
+    font-family: Microsoft YaHei;
+    color: #714402;
+}
+
+.modal-content .vip-code .vip-text2 {
+    width: 180px;
+    height: 21px;
+    font-size: 16px;
+    line-height: 24px;
+    opacity: 1;
+    margin: 0 0 0 24px;
+    font-family: Microsoft YaHei;
+    color: #714402;
 }
 
 .modal-open {

+ 214 - 0
src/web/staticres/frontRouter/pc/seeBuyerHistory/css/index-pc.css

@@ -0,0 +1,214 @@
+.flex {
+    display: flex;
+    align-items: center;
+}
+.see-container {
+    line-height: 1;
+    padding-top: 64px;
+    padding-bottom: 70px;
+    min-height: calc(100vh - 364px);
+}
+.see-header {
+    flex-direction: initial;
+    justify-content: space-between;
+    margin: 48px auto 28px auto;
+}
+.tab-title {
+    font-size: 24px;
+    line-height: 36px;
+}
+.l-tabs {
+    flex-direction: initial;
+}
+.l-tabs .tips {
+    border: 1px solid #ececec;
+    border-radius: 15px;
+    font-size: 14px;
+    color: #686868;
+    line-height: 22px;
+    margin-left: 16px;
+    padding: 2px 8px;
+}
+.l-tabs .tips span {
+    color: #2CB7CA;
+}
+.r-tabs {
+    position: relative;
+}
+.r-tabs .r-word {
+    color: #686868;
+    line-height: 22px;
+    font-size: 14px;
+}
+.r-tabs .date-class, .r-tabs .date-class .el-input__inner {
+    width: 120px;
+    height: 28px;
+}
+.r-tabs .date-class .el-input__inner {
+    padding: 0 8px 0 12px;
+    cursor: pointer;
+}
+.r-tabs .date-class .el-input__prefix{
+    display: none;
+}
+.r-tabs .date-class .el-input__suffix {
+    top: -5px;
+}
+.r-tabs .r-icons {
+    position: absolute;
+    top: 6px;
+    right: 8px;
+    color: #aaa;
+}
+.see-content .lists {
+    flex-direction: initial;
+    align-items: flex-start;
+    padding: 18px 16px;
+    box-shadow: 0px -1px 0px 0px rgba(0,0,0,0.05) inset;
+}
+.see-content .r-conts {
+    flex-direction: column;
+}
+.see-content .lists .words-img {
+    width: 60px;
+    background: #2cb7ca;
+    border-radius: 4px;
+    padding: 10px 8px;
+    text-align: center;
+    cursor: pointer;
+}
+.see-content .lists .words-img span {
+    display: inline-block;
+    font-size: 18px;
+    color: #ffffff;
+}
+.see-content .lists .words-img .xin-xi {
+    margin-top: 4px;
+}
+.see-content .lists .r-conts {
+    align-items: flex-start;
+    margin-left: 32px;
+}
+.see-content .lists .r-conts h3 {
+    color: #1d1d1d;
+    line-height: 28px;
+    font-size: 18px;
+    cursor: pointer;
+}
+.see-content .lists .r-conts h3 span {
+    line-height: 20px;
+    background: rgba(44,183,202,0.08);
+    border: 1px solid #2cb7ca;
+    border-radius: 4px;
+    font-size: 12px;
+    color: #2cb7ca;
+    padding: 0 8px;
+    margin-left: 12px;
+}
+.see-content .lists .r-conts .cont-tips {
+    font-size: 14px;
+    line-height: 22px;
+    color: #999;
+    margin: 12px 0 8px 0;
+}
+.see-content .lists .r-conts .di-zhi {
+    margin: 0;
+}
+.see-content .lists .r-conts .cont-tips span {
+    color: #686868;
+    margin-right: 32px;
+}
+.see-content .lists .r-conts h3 .status-0 {
+    background: rgba(44,183,202,0.08);
+    border-color: #2cb7ca;
+    color: #2cb7ca;
+}
+.see-content .lists .r-conts h3 .status-1 {
+    background: rgba(255,58,32,0.08);
+    border-color: #ff3a20;
+    color: #ff3a20;
+}
+.see-content .lists .r-conts h3 .status-2 {
+    background: rgba(255,159,64,0.08);
+    border-color: #ff9f40;
+    color: #ff9f40;
+}
+.see-content .lists .r-conts h3 .status-3 {
+    background: #f7f9fc;
+    border-color: #aaa;
+    color: #686868;
+}
+.r-conts .line{
+    display: flex;
+    height: 22px;
+}
+.r-conts .line i{
+
+}
+.r-conts .line i.addr{
+    background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANESURBVHgB7VdbctowFBWEzOQ1KUtwVlBYQcMKEj4SYPiBFQArAFaQdgXkj9cHyQpCV1B2gLuC+IcZZnj1HCpR4TGy7DY/Hc6Mx7qWZB3fc3WvLMQRR/wdEiIGOp1O+vz8vJJMJr/AzOByZNcEl4vrdbVajUulkisiIhIhErm6uqptNps6zHTIcDeRSDw/PDy0xUcQ6na7zsnJyZv44w1buPBWztZbSZtBQWTw9eP1et3AYjePj48JXnichV0Vv2VT2M7lO2zWsvLQYDCYamQ8EGkXi8Wvpjm9Xq+OGHvSHk1ms1muWq16pnmhHhoOh02xL1MujAwhx2RxKQKZi4uLetg8IyG6GQHcUjYlgjQTYQmOpTeVDZlr3BimOSlTJ7S/1UzX7xkSTqVS3HX3MD1INFksFm09gDkHXr7DGL5rmy5wP+hho4ewwJ1qI1jbfjIMVpkCHFwZeKMSFMCY+6qZt8K0pqkTizmqjcX2pDo9PVWxRa8wVrKQhGPotY7vPS+7BZPJz8KAVAihjGqXy+U9QiBImfj1efS5bI9GoxzIvevziLOzMw/PlekIA6zyEHEoGOfzuae11Zi9sfl83rjVoxByVeP6+vqT3iHlESglTUWYAS77xvpY5DHdY5PYhLhrVBsuz+t9kKWBm8egxoLvl5eXUxng3nK5rPpetSMEqX+KuITw4u8auZreJ/NRTnqKEqWlZ4LqVlP7kBdhgLF0IEjT8MxULrhNjEFZWsVXUFlgpteSq4vykTWVj9Ba1u/3W/hy9YUedlXWtnLLXDVVNoi1C4VCyzQndJfxBSqAgTQWGAlLyBOCghtGxooQgVhiQO+KJGR4CpvjL8o8EwkLWBGiRHqR5G6CHLeHxnOb60WZUtnKHOkIi69+k0WSCAxQBjhSwA8hvcOdh2OslXcI60xNyPyiCDgqKeqQzxxpugE56d8RotsRCw1l+6WDVBWZHLfgCSHqn0es3yAszJ12L00P0t2ggKZ95+5nJM9I3iFSIgZw9KgiYar/McZMB5mcZ21HDnH95ydbxPIQQal8eWYH+dszFjEQKYZ0yAW/+Z/LLT4WMRGbEAHpWmL/H8wqG4uPIsSDF+VhaWG+sc3GR/xX+AW8rK4J4AmkvQAAAABJRU5ErkJggg==) no-repeat 50%;
+    background-position: left;
+    padding-left: 22px;
+    background-size: 18px;
+}
+.r-conts .line i.buyer{
+    background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAK2SURBVHgB7ZjZjRpBEIaLU0LwgDMYIvBuBrsZ4AfuBw8RgCMAIjCOAPyAOCU2A3AEkAETAg8cEqf/QtOrZjSzMz0gWdbyS605aHV/01VdVQ3RQ59RrVYryY3uoADdoG63+xIOh2vn8/nlMlggMD0cDuVCoWCQT/kCAogWiURqp9NJt/s9GAy29/t9ww+YEhCbJZFIVLAiVTzKJlqaTZPeGWiNbDbbJgUFVToDZgKYugSzxDNP+gUtxfdSdw2tNRgMFmg6eZQSkKQLyHq9TuVyubp4yffH45HBfpMFbDQatdjUbgMrmYwHhOOmMeGbm39w31AoNKFrM7LjN1erVaNcLi/JKxCW+AmXMZxz6tc5JTAdYDULmIHVfbaDsjWZ6bQa7yIMthgOhzXyKXxMG2Z8tfpXLBbT7fp78iF2ZFXnlIMlr7DpX6/vEweDX8kvkCmNPDgnQ/CKxuPxBbdOp/Mk/WyQi1yBzK8yxLNpxlmv16ta+3LkBsRMCg1JOLFGCnIFikajC44xACtLYEkseUUC0bAqE+uuAvyvYrH4RgrybDLJOS8xRlzhVxV2fJHPWJzTcHnO5/NVUlRYpbO5/XWzicl1wIhHA9AcJtrkU0pAdgLMe05zii0q8ps6bHUrDOuuQPfQA8hNrkC73S5FdxLCg2vd7ZRc59IgE04FTulCxCMOguQgkU5wOxHvEB7+2PW1LT/G43ESZceMPJakDOtUopgJ+Sddl7wGR3/yCiSgYK4qAp+19DAA+61UKs3pA1lPJEJchmw2m6ZSgWYZWEPeqgPsu/ze6WThdCLxekTyXML2+/00BuWl1ywT1TOZTOODEwmnEwaZkgcpn8ucSlIT4upohFVqIME2SUG+D4p2ZhTiHbfdbut+UsmtR2k+WbAZ05fB4Ccw2Q/soDn9S93zz4aH/jv9BfPxi/1sAfxwAAAAAElFTkSuQmCC) no-repeat 50%;
+    background-position: left;
+    padding-left: 22px;
+    background-size: 18px;
+}
+.l-tabs.flex .tip{
+    width: 18px;
+    height: 18px;
+    background:url("/frontRouter/pc/seeBuyerHistory/images/help.png") no-repeat;
+    background-position: left;
+    padding-left: 22px;
+    background-size: 18px;
+    margin-left: 8px;
+}
+.dialog{
+    width: 100%;
+    height: 100%;
+    position: fixed;
+    background-color: #00000065;
+    z-index: 99999;
+}
+.dialog .alertDiv{
+    width: 380px;
+    height: 176px;
+    background: #fff;
+    border-radius: 8px 8px 8px 8px;
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    margin-top: -88px;
+    margin-left: -190px;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    text-align: center;
+}
+.dialog .alertDiv .content{
+    font-size: 14px;
+    font-family: Microsoft YaHei-Regular, Microsoft YaHei;
+    font-weight: 400;
+    color: #686868;
+    line-height: 22px;
+    text-align: center;
+}
+.dialog .alertDiv .content i{
+    color: #2CB7CA;
+}
+
+.dialog .alertDiv .iKnowBtn{
+    width: 132px;
+    height: 36px;
+    background: #2CB7CA;
+    border-radius: 6px 6px 6px 6px;
+    opacity: 1;
+    line-height: 36px;
+    color: #FFFFFF;
+    margin-top: 32px;
+    cursor: pointer;
+}

BIN
src/web/staticres/frontRouter/pc/seeBuyerHistory/images/help.png


+ 131 - 0
src/web/staticres/frontRouter/pc/seeBuyerHistory/js/index-pc.js

@@ -0,0 +1,131 @@
+function getShortName (comName) {
+    var areaMap = chinaMapJSON || []
+    var shortname = comName
+    // 1. 循环省份城市进行替换
+    areaMap.forEach(function (item) {
+        var p = item.name.replace(/[省市]/, '')
+        if (shortname.indexOf(p) !== -1) {
+        shortname = shortname.replace(item.name, '').replace(p, '')
+        console.log(p + ' -> \'\'')
+        }
+        item.city.forEach(function (iitem) {
+        var c = iitem.name.replace(/[省市]/, '')
+        if (shortname.indexOf(c) !== -1) {
+            shortname = shortname.replace(iitem.name, '').replace(c, '')
+            console.log(c + ' -> \'\'')
+        }
+        iitem.area.forEach(function (iiitem) {
+            if (shortname.indexOf(iiitem) !== -1) {
+            shortname = shortname.replace(iiitem, '')
+            console.log(iiitem + ' -> \'\'')
+            }
+        })
+        })
+    })
+    var matchRes = shortname.match(/[\u4e00-\u9fa5]{4}/gm)
+    var shortname = matchRes ? matchRes[0] : shortname.slice(0, 4)
+    if (shortname.length < 4) {
+        shortname = shortname.slice(0, 4)
+    }
+    return shortname
+}
+var vm = new Vue({
+    el: '.see-container',
+    delimiters: ['{', '}'],
+    data () {
+        return {
+            working: false,
+            empty: false,
+            dateVal: '',
+            years: '',
+            months: '',
+            points: [],
+            statusEnum: ['存续', '吊销', '注销', '撤销'],
+            statusColors: ['#2CB7CA', '#F5AF5C', '#58A1E7', '#51CEA2'],
+            seeList: {
+                pageNum: 1, // 当前页
+                pageSize: 10, // 每页多少条数据
+                total: 0, // 总页数
+                list: [] // 返回的数据
+            }
+        }
+    },
+    created() {
+        this.years = new Date().getFullYear()
+        this.months = parseInt(new Date().getMonth() + 1)
+        this.dateVal = new Date()
+        this.subPoint()
+        this.subRecord()
+    },
+    methods: {
+        subPoint() {
+            $.ajax({
+              url: '/bigmember/portrait/subVipPortrait/usage?p_type=1',
+              type: 'POST',
+              contentType: 'application/x-www-form-urlencoded',
+              data: '',
+              dataType: 'json'
+            }).done(res => {
+              if (res.error_code == 0) {
+                this.points = res.data
+              }
+            })
+        },
+        getDatas() {
+            return {
+                year: this.years,
+                month: this.months,
+                pageSize: this.seeList.pageSize,
+                pageNum: this.seeList.pageNum - 1,
+                p_type:1
+            }
+        },
+        subRecord() {
+            this.working = true
+            this.empty = false
+            $.ajax({
+                url: '/bigmember/portrait/subVipPortrait/record',
+                type: 'POST',
+                contentType: 'application/x-www-form-urlencoded',
+                data: this.getDatas(),
+                dataType: 'json'
+            }).done(res => {
+                var _this = this
+                if (res.error_code === 0) {
+                    this.working = false
+                    this.empty = true
+                    if (res.data.total) {
+                        this.seeList.total = res.data.total
+                    }
+                    if (!res.data.list){
+                        res.data.list=[]
+                    }
+                    this.seeList.list = this.seeList.list.concat(res.data.list.map(function (v) {
+                        return {
+                            name: v.name,
+                            province: v.province,
+                            city: v.city,
+                            buyerclass: v.buyerclass,
+                            checked: false
+                        }
+                    }))
+                }
+            })
+        },
+        onPageChange(page) {
+            this.seeList.pageNum = page
+            this.seeList.list = []
+            this.subRecord()
+        },
+        dateHandler(val) {
+            this.years = val.getFullYear()
+            this.months = val.getMonth() + 1
+            this.seeList.pageNum = 1
+            this.seeList.list = []
+            this.subRecord()
+        },
+        detailed(ids) {
+            window.open('/swordfish/page_big_pc/unit_portrayal/' + ids, '_blank')
+        }
+    }
+})

BIN
src/web/staticres/images/subscribe/vip_toUse.png


+ 16 - 1
src/web/staticres/js/login.js

@@ -307,6 +307,9 @@ function checkBigStatus () {
         if (res.data.viper) {
           $(".myorderDiv.ent-search").show()
         }
+		if (res.data.memberStatus<=0&&res.data.vipStatus>0&&res.data.viper){
+			$(".myorderDiv.portraitRecord").show()
+		}
       }
     }
   })
@@ -347,7 +350,7 @@ var logic = function(data,num){
 		$("#bidLogin").modal("hide")
 		$("#bidcommunity").modal("hide")
 		clearInterval(loginfg);
-		loginflag = true;
+		loginflag = true;infoList
 		processpage(data.shareid,num);
 		//登录成功,停止轮询
 		LoginPolling.stop();
@@ -411,6 +414,12 @@ var logic = function(data,num){
           +"<div class=\"myorderDiv bx-collection\" onclick=\"window.location.href='/swordfish/frontPage/collection/sess/index'\">"
           +"<span>标讯收藏</span>"
           +"</div>"
+		  +"<div class=\"myorderDiv portraitRecord\" style='display: none' onclick=\"window.location.href='/swordfish/frontPage/seeHistory/sess/index'\">"
+		  +"<span>企业画像记录</span>"
+		  +"</div>"
+		  +"<div class=\"myorderDiv portraitRecord\" style='display: none' onclick=\"window.location.href='/swordfish/frontPage/seeBuyerHistory/sess/index'\">"
+		  +"<span>采购单位画像记录</span>"
+		  +"</div>"
 					hhtml+= "<div class='exitDiv' onclick='signout()'>"
 						+"<img id='outImg' src='/images/userexit.png'/>"
 						+"<span>退出</span>"
@@ -694,6 +703,12 @@ var haslogin = function(num,kyorpn,url){
             +"<div class=\"myorderDiv bx-collection\" onclick=\"window.location.href='/swordfish/frontPage/collection/sess/index'\">"
             +"<span>标讯收藏</span>"
             +"</div>"
+			+"<div class=\"myorderDiv portraitRecord\" style='display: none' onclick=\"window.location.href='/swordfish/frontPage/seeHistory/sess/index'\">"
+			+"<span>企业画像记录</span>"
+			+"</div>"
+			+"<div class=\"myorderDiv portraitRecord\" style='display: none' onclick=\"window.location.href='/swordfish/frontPage/seeBuyerHistory/sess/index'\">"
+			+"<span>采购单位画像记录</span>"
+			+"</div>"
             hhtml+= "<div class='exitDiv' onclick='signout()'>"
             +"<img id='outImg' src='/images/userexit.png'/>"
             +"<span>退出</span>"

+ 1 - 1
src/web/staticres/landingpage/pc/js/index.js

@@ -172,7 +172,7 @@ function infoListCss() {
 		'z-index': '999',
 		'cursor': 'pointer',
 		'height': 'auto',
-		'width': '130px',
+		'width': '142px',
 		'box-shadow': ' 0 0 20px rgba(0,0,0, .2)'
 	})
 	$('.one').css({

+ 3 - 0
src/web/staticres/me/js/mine.js

@@ -98,11 +98,14 @@ var mine = {
                       // 大会员和免费用户不显示企业画像记录菜单
                       if(res.data.vipStatus > 0 && res.data.viper ) {
                         $('#ent-follow-history').show()
+                        $('#buyer-follow-history').show()
                       } else {
                         $('#ent-follow-history').hide()
+                        $('#buyer-follow-history').hide()
                       }
                   } else {
                     $('#ent-follow-history').hide()
+                    $('#buyer-follow-history').hide()
                   }
               }
           }

+ 1 - 1
src/web/templates/_error.html

@@ -435,7 +435,7 @@ function infoListCss(){
 		'z-index':'999',
 		'cursor': 'pointer',
 		'height':'auto',
-		'width':'130px'
+		'width':'142px'
 	})
 	$('.one').css({
 		'display': 'inline-block',

+ 1 - 1
src/web/templates/active/topics.html

@@ -724,7 +724,7 @@ function infoListCss(){
 		'z-index':'999',
 		'cursor': 'pointer',
 		'height':'auto',
-		'width':'130px'
+		'width':'142px'
 	})
 	$('.one').css({
 		'display': 'inline-block',

+ 42 - 29
src/web/templates/big-member/wx/page_unit_portrayal.html

@@ -75,20 +75,28 @@
             background-size: 100% 100%;
             box-sizing: border-box;
         }
-        .freeExper{
-          display: flex;
-          align-items: center;
-          justify-content: space-between;
-          padding: 0.24rem 0.32rem;
-          margin-top: 0.24rem;
-          background: #fff;
+        .free-give{
+            padding: 0.24rem 0.32rem;
+            background-color: #fff;
+            font-size: .24rem;
+            display: flex;
+            align-items: center;
+            justify-content: space-between;
+        }
+        .go-btn{
+            background:linear-gradient(360deg, #1CB5E5 0%, #2ABED1 100%);
+            color: #FFFFFF;
+            padding: 0 .16rem;
+            text-align: center;
+            height: 0.5rem;
+            border-radius: 8px;
+            line-height: 0.5rem;
+        }
+        .go-text{
           color: #2cb7ca;
         }
-        .freeExper span{
-          color: white;
-          background: #2cb7ca;
-          border-radius: 4px;
-          padding: 0.07rem 0.1rem;
+        .balance-text{
+          color: #9B9BA3;
         }
     </style>
 </head>
@@ -107,17 +115,22 @@
               <p class="region">所在地:${statistics.province || '--'} ${statistics.city}</p>
               <p class="buyer-type">采购单位类型:${statistics.buyerClass || '--'}</p>
           </div>
-          <!-- 免费用户体验-->
-          <div  v-if="isFreeExper" class="freeExper">
-              <p class="freeRemark">免费赠送1次【采购单位全景分析】权益体验机会!</p>
-              <span>去解锁</span>
+          <!-- 免费用户采购单位全景分析提示 -->
+          <div v-if="getfreeBuyerPort" style="margin-top: .24rem; " class="free-give">
+            <div class="go-text"> 免费赠送1次【采购单位全景分析】权益体验机会!</div>
+            <div class="go-btn"  @click="goGiveAnalysis">去解锁</div>
+          </div>
+          <!-- 超级订阅用户展示  -->
+          <div v-if="superVipPort" style="margin-top: .24rem; " class="free-give">
+            <div class="balance-text"> 当月采购单位画像余额:<em class="highlight-text">${usageInfo.surplus}</em></div>
+            <div class="go-btn" v-if="usageInfo.surplus !== 0 && usageInfo.provin !== -1" @click="goUpgradeOrConcat(superVipBtnText)">${superVipBtnText}</div>
           </div>
           <!-- 采购单位通讯录 -->
           <div style="margin-top: .24rem;">
             <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 win-bid-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>
+                <buyer-example :useage="usageInfo" :userinfo="userInfo" 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>
@@ -369,62 +382,62 @@
             <!-- 历史项目联系人 -->
             <!-- <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='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/01.png'></buyer-example>
+               <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_1" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/01.png'></buyer-example>
             </div> -->
             <!-- 合作企业注册资本分布 -->
             <!-- <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/09-bg.png') no-repeat;background-size:100% 100%">
               <p class="example-title">合作企业注册资本分布</p>
-              <buyer-example :status="bigStatus" :power="power" type="item_9" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/09.png'></buyer-example>
+               <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_9" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/09.png'></buyer-example>
             </div> -->
             <!-- 合作企业年龄分布 -->
             <!-- <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/10-bg.png') no-repeat;background-size:100% 100%">
               <p class="example-title">合作企业年龄分布</p>
-              <buyer-example :status="bigStatus" :power="power" type="item_10" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/10.png'></buyer-example>
+               <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_10" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/10.png'></buyer-example>
             </div> -->
             <!-- 合作企业注册地分布 -->
             <!-- <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/11-bg.png') no-repeat;background-size:100% 100%">
               <p class="example-title">合作企业注册地分布</p>
-              <buyer-example :status="bigStatus" :power="power" type="item_11" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/11.png'></buyer-example>
+               <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_11" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/11.png'></buyer-example>
             </div> -->
             <!-- 年度项目统计 -->
             <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/02-bg.png') no-repeat;background-size:100% 100%">
               <p class="example-title">年度项目统计</p>
-              <buyer-example :status="bigStatus" :power="power" type="item_2" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/02.png'></buyer-example>
+               <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_2" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/02.png'></buyer-example>
             </div>
             <!-- 月度采购规模统计 -->
             <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/03-bg.png') no-repeat;background-size:100% 100%">
               <p class="example-title">月度采购规模统计</p>
-              <buyer-example :status="bigStatus" :power="power" type="item_3" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/03.png'></buyer-example>
+               <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_3" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/03.png'></buyer-example>
             </div>
             <!-- 采购规模分布 -->
             <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/04-bg.png') no-repeat;background-size:100% 100%">
               <p class="example-title">采购规模分布</p>
-              <buyer-example :status="bigStatus" :power="power" type="item_4" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/04.png'></buyer-example>
+               <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_4" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/04.png'></buyer-example>
             </div>
             <!-- 各类招标方式占比(双柱图) -->
             <div class="vip_component" style="height:8.8rem;background:url('/common-module/collection/image/buyer/05-bg.png') no-repeat;background-size:100% 100%">
               <p class="example-title">各类招标方式占比</p>
-              <buyer-example :status="bigStatus" :power="power" type="item_5" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/05.png'></buyer-example>
+               <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_5" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/05.png'></buyer-example>
             </div>
             <!-- 各行业项目平均节支率 -->
             <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/06-bg.png') no-repeat;background-size:100% 100%">
               <p class="example-title">各行业项目平均节支率</p>
-              <buyer-example :status="bigStatus" :power="power" type="item_6" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/06.png'></buyer-example>
+               <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_6" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/06.png'></buyer-example>
             </div>
             <!-- 重点合作代理机构 -->
             <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/12-bg.png') no-repeat;background-size:100% 100%">
               <p class="example-title">重点合作代理机构</p>
-              <buyer-example :status="bigStatus" :power="power" type="item_12" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/12.png'></buyer-example>
+               <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_12" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/12.png'></buyer-example>
             </div>
             <!-- 重点合作企业 -->
             <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/08-bg.png') no-repeat;background-size:100% 100%">
               <p class="example-title">重点合作企业</p>
-              <buyer-example :status="bigStatus" :power="power" type="item_8" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/08.png'></buyer-example>
+               <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_8" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/08.png'></buyer-example>
             </div>
             <!-- 各行业项目规模占比 -->
             <div class="vip_component" style="height:11.2rem;background:url('/common-module/collection/image/buyer/07-bg.png') no-repeat;background-size:100% 100%">
               <p class="example-title">各行业项目规模占比</p>
-              <buyer-example :status="bigStatus" :power="power" type="item_7" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/07.png'></buyer-example>
+               <buyer-example :useage="usageInfo" :userinfo="userInfo" :status="bigStatus" :power="power" type="item_7" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/07.png'></buyer-example>
             </div>
           </div>
       </div>

+ 1 - 1
src/web/templates/common/pchead.html

@@ -1125,7 +1125,7 @@ function infoListCss(){
 		'z-index':'999',
 		'cursor': 'pointer',
 		'height':'auto',
-		'min-width':'130px',
+		'min-width':'142px',
 		'box-shadow':' 0 0 20px rgba(0,0,0, .2)'
 	})
 	$('.userInfo .one').css({

+ 1 - 1
src/web/templates/common/pchead_bak.html

@@ -169,7 +169,7 @@ function infoListCss(){
 		'z-index':'999',
 		'cursor': 'pointer',
 		'height':'auto',
-		'width':'130px'
+		'width':'142px'
 	})
 	$('.one').css({
 		'display': 'inline-block',

+ 113 - 0
src/web/templates/frontRouter/pc/seeBuyerHistory/sess/index.html

@@ -0,0 +1,113 @@
+
+<html lang="zh-cn">
+	<head>
+		<title>历史查看记录_{{Msg "seo" "qfw.swordfishsl.title"}}</title>
+		<meta name="Keywords" content="{{Msg "seo" "qfw.swordfishsl.key"}}"/>
+		<meta name="Description" content="{{Msg "seo" "qfw.swordfishsl.description"}}"/>
+		<meta name="renderer" content="webkit">
+		<meta content="telephone=no" name="format-detection"/>
+        <meta content="历史查看记录" theme="light" name="enable-header"/>
+		{{include "/common/pnc.html"}}
+		<link href="{{Msg "seo" "cdn"}}/css/pc.css?v={{Msg "seo" "version"}}" rel="stylesheet" />
+		<link href="{{Msg "seo" "cdn"}}/css/dev2/reset_pc.css?v={{Msg "seo" "version"}}" rel="stylesheet" />
+		<link href="{{Msg "seo" "cdn"}}/pccss/public-nav-1200.css?v={{Msg "seo" "version"}}" rel="stylesheet" />
+
+        <script src="{{Msg "seo" "cdn"}}/js/jquery.cookie.js"></script>
+		<script 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 rel="stylesheet" href='{{Msg "seo" "cdn"}}/css/ele-reset.css?v={{Msg "seo" "version"}}'>
+        <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/css/selector/selector.css?v={{Msg "seo" "version"}}'>
+        <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/frontRouter/pc/seeBuyerHistory/css/index-pc.css?v={{Msg "seo" "version"}}'>
+	</head>
+
+	<body>
+	{{include "/common/pchead.html"}}
+    <div class="dialog" style="display: none" onclick="closeDialog()">
+        <div class="alertDiv">
+            <div class="content">
+                每购买1个省,每月可查看<i>5个</i>采购单位画像,<i>上限<br>为80个</i>,每月1号上月余额清零重新计算。
+            </div>
+            <div class="iKnowBtn">我知道了</div>
+        </div>
+    </div>
+	<section class="see-container" v-cloak >
+        <div class="see-header flex w">
+            <div class="l-tabs flex">
+                <h3 class="tab-title">采购单位画像记录</h3>
+                <div class="tips">
+                    当月已使用:<span>{points.usage?points.usage:0}</span>/{points.total?points.total:0}
+                </div>
+                <div class="tip" @click="showTip"></div>
+            </div>
+            <div class="l-tabs r-tabs">
+                <span class="r-word">选择月份</span>
+                <el-date-picker
+                    class="date-class"
+                    v-model="dateVal"
+                    type="month"
+                    format="yyyy年MM月"
+                    @change="dateHandler"
+                    placeholder="请选择月份"
+                    :clearable="false"
+                    :editable="false">
+                </el-date-picker>
+                <i class="el-icon-arrow-down r-icons" @click="dateHandler"></i>
+            </div>
+        </div>
+        <div class="see-content w" v-show="seeList.list.length !== 0 && empty">
+            <div class="lists flex" v-for="item in seeList.list" :key="item._id">
+                <div class="r-conts flex">
+                    <h3 class="flex" @click="detailed(item.name)">{item.name}<span v-show="item.status >= 0" :class="'status-' + item.status">{item.statusWord}</span></h3>
+                    <div class="line">
+                        <div class="cont-tips address"><i class="addr">所在地:</i><span>{item.province}</span><span>{item.city}</span></div>
+                        <div class="cont-tips buyerclass"><i class="buyer">采购单位类型:</i><span>{item.buyerclass}</span></div>
+                    </div>
+                </div>
+            </div>
+            <div class="el-pagination-container" v-show="seeList.total">
+                <el-pagination
+                    background
+                    layout="prev, pager, next, ->"
+                    :hide-on-single-page="true"
+                    :current-page="seeList.pageNum"
+                    :page-size="seeList.pageSize"
+                    :total="seeList.total"
+                    @current-change="onPageChange"
+                ></el-pagination>
+            </div>
+        </div>
+        <div class="no-data" v-if="working"><el-image src="/images/working.gif"></el-image><div class="tip-text"><p>剑鱼标讯正在努力工作中...</p></div></div>
+        <div class="no-data" v-if="seeList.list == 0 && empty"><el-image src="/images/pc_12.png"></el-image><div class="tip-text"><p>暂无数据</p></div></div>
+    </section>
+
+    {{include "/common/pcbottom.html"}}
+    {{include "/common/baiducc.html"}}
+
+    <script>
+        haslogin({{.T.logid}})
+        function baiduEvent(name) {
+          try {
+            console.log(name, 'name')
+            _hmt.push(['_trackEvent', '超级订阅-pc', 'click', name]);
+          } catch (e) {
+            console.log('未初始化百度统计')
+          }
+        }
+    </script>
+    <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>
+    <script src='{{Msg "seo" "cdn"}}/common-module/public/js/china-map-data.js?v={{Msg "seo" "version"}}'></script>
+    <script src='{{Msg "seo" "cdn"}}/frontRouter/pc/seeBuyerHistory/js/index-pc.js?v={{Msg "seo" "version"}}'></script>
+    <script>
+        function closeDialog(){
+            $(".dialog").css("display","none")
+        }
+        function showTip(){
+            $(".dialog").css("display","unset")
+        }
+    </script>
+</body>
+
+</html>
+

+ 129 - 0
src/web/templates/frontRouter/wx/buyerPortraitRecord/sess/index.html

@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+    <meta charset="utf-8">
+    <meta name="keywords" content="剑鱼标讯">
+    <meta name="description" content="剑鱼标讯">
+    <meta name="author" content="剑鱼标讯">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
+    <meta name="browsermode" content="application">
+    <meta name="x5-orientation" content="portrait">
+    <meta name="screen-orientation" content="portrait">
+    <meta name="x5-page-mode" content="app">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <meta name="apple-mobile-web-app-status-bar-style" content="black">
+    <meta name="format-detection" content="telephone=no">
+    <title>企业画像记录</title>
+    <script src="/big-member/js/rem.js"></script>
+    <!--S-当前页面的css资源-->
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/reset-css/5.0.1/reset.min.css />
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/index.css />
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/icon/local.css />
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/portraitRecord/css/index.css?v={{Msg "seo" "version"}}' />
+    <script src='https://cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js'></script>
+    <script src="https://cdn-common.jianyu360.com/cdn/lib/loadjs/4.2.0/dist/loadjs.umd.js"></script>
+</head>
+<body>
+  <div class="j-container">
+    {{include "/big-member/header.html"}}
+    <div class="j-main portraited" id="proRecord" v-cloak>
+      <div class="j-container">
+        <div class="j-main">
+          <div class="t-bg flex">
+            <div class="nums">
+              <span>{points.total - points.usage}</span>个
+              <img src='{{Msg "seo" "cdn"}}/common-module/portraitRecord/image/help-p.png?v={{Msg "seo" "version"}}' @click="helpTiped" alt="">
+            </div>
+            <div class="btns flex">
+              <span>当月企业画像剩余数</span>
+              <a href="tel:400-108-6670" v-if="contracted">
+                <van-button round type="primary">联系客服</van-button>
+              </a>
+              <van-button round type="primary" v-else @click="setBook">订阅设置</van-button>
+            </div>
+          </div>
+          <div class="p1-date" style="background: #F5F6F7;">
+            <div class="d-box flex">
+              使用记录
+              <van-field v-model="dValue" @click="usedHised" placeholder="显示图标" right-icon="play" readonly/>
+            </div>
+            <div class="word-tips">
+              当前已使用:<span>{points.usage}个</span>
+            </div>
+          </div>
+          <!-- 日期弹出框 -->
+          <van-popup v-model:show="pShow" round position="bottom">
+            <van-datetime-picker
+              v-model="curDate"
+              type="year-month"
+              title="选择日期"
+              :formatter="formatter11"
+              :min-date="minDate"
+              :max-date="maxTime"
+              @confirm="confirmed"
+              @cancel="canceled"
+            />
+          </van-popup>
+          <div class="c-list" v-if="list.length !== 0 && empty">
+            <van-list
+              v-model="listInfo.loading"
+              :finished="listInfo.finished"
+              finished-text=""
+              @load="onLoad"
+            >
+                <div class="ent-search-item" v-for="(item, i) in list" :key="item._id" @click="detailed(item._id)">
+                    <div class="ent-info-top">
+                        <div class="ent-info-head" :style="{'background-color': item.color}">{item.abbr}</div>
+                        <div class="ent-info-keep">
+                            <div class="ent-row">
+                                <div class="ent-name van-ellipsis">{item.name}</div>
+                                <div class="fill-icon-box" style="display: none">
+                                    <i class="j-icon base-icon icon-no-favorite"></i>
+                                </div>
+                            </div>
+                            <div class="ent-more">
+                                <div v-if="item.legal">法定代表人: <span>{item.legal}</span></div>
+                                <div v-if="item.money">注册资本: <span>{item.money}万元</span></div>
+                            </div>
+                            <div class="ent-line-box"></div>
+                        </div>
+                    </div>
+                    <div class="ent-info-bottom ent-row" v-show="item.status >= 0 || item.address">
+                        <div class="ent-info-status-box">
+                            <span class="ent-info-status" v-show="item.status >= 0" :class="'status-' + item.status">{statusEnum[item.status]}</span>
+                        </div>
+                        <div  class="ent-row ent-address"  v-show="item.address">
+                            <div class="van-multi-ellipsis--l2">{item.address}</div>
+                            <i class="j-icon base-icon icon-address"></i>
+                        </div>
+
+                    </div>
+                </div>
+            </van-list>
+          </div>
+          <van-loading size="24px" vertical v-if="working">加载中...</van-loading>
+          <div class="emptycom" v-if="list.length==0 && empty">
+            <div class="emptyimg">
+              <img src='{{Msg "seo" "cdn"}}/common-module/collection/image/img-empty.png?v={{Msg "seo" "version"}}' alt="">
+            </div>
+            <div class="emptytext">
+              暂无企业画像记录
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+  <!--S-当前页面的资源-->
+  <script src='https://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>
+  <!--E-当前页面的资源-->
+  {{include "/big-member/commonjs.html"}}
+  <script src='{{Msg "seo" "cdn"}}/common-module/public/js/china-map-data.js?v={{Msg "seo" "version"}}'></script>
+  <script src='{{Msg "seo" "cdn"}}/common-module/portraitRecord/js/index-wx.js?v={{Msg "seo" "version"}}'></script>
+  {{include "/common/baiducc.html"}}
+</body>
+
+</html>

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

@@ -229,7 +229,7 @@
                     <span class="win-bid-title">企业通讯录</span>
                   </div>
                   <div class="vip_component" style="height:11.04rem;background:url('/common-module/collection/image/bg/vip_bg_9.png') 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>
+                    <vip-component data-cl-event="c_wx_free_buttonclick" @tabactive="tabActive" :power="conf" type="item_9" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_9.png'></vip-component>
                   </div>
                 </div>
                 <div class="bg-white tab-card cell-list history-list" v-else>
@@ -244,7 +244,7 @@
                   </div>
                 </div>
                 <!--免费用户体验-->
-                <div v-if="isFreeExper" class="freeExper">
+                <div v-if="canFreeExp" class="freeExper">
                     <p class="freeRemark">免费赠送1次【采购单位全景分析】权益体验机会!</p>
                     <span @click="goExpAnalysis">去解锁</span>
                 </div>
@@ -282,7 +282,7 @@
                 <div class="vip_component" v-if="getStatus" style="height:2.12rem;background:url('/common-module/collection/image/bg/vip_bg_0.png') no-repeat;background-size:100% 100%"></div>
                 <!-- 项目动态 -->
                 <div class="vip_component test" v-if="getStatus && hideDt" style="height:9.16rem;background:url('/common-module/collection/image/bg/vip_bg_1.png') no-repeat;background-size:100% 100%" key="dt">
-                  <vip-component data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_1" :entvisit="entvisit" :newvip="isVip"  imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_1.png'></vip-component>
+                  <vip-component data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_1" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip"  imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_1.png'></vip-component>
               </div>
               <div v-else key="dt">
                 <div class="j-container empty" style="padding-bottom: .2rem;"  v-if="conf._13 && !conf._4 && topProject.list.length === 0">
@@ -340,7 +340,7 @@
                     <div class="tab-card-tip">注:项目金额指所有项目的中标金额之和,少数缺失的中标金额,用项目预算补充。</div>
                 </div>
                 <div class="vip_component" v-if="getStatus" style="height:11.12rem;background:url('/common-module/collection/image/bg/vip_bg_2.png') no-repeat;background-size:100% 100%">
-                    <vip-component data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_2" :entvisit="entvisit" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_2.png'></vip-component>
+                    <vip-component data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_2" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_2.png'></vip-component>
                 </div>
                 <div class="bg-white tab-card charts"  v-if="conf._4 && monthZbData.rows.length !== 0  && !getStatus">
                     <div class="tab-card-title">月度中标金额统计</div>
@@ -356,7 +356,7 @@
                     <div class="tab-card-tip">注:少数缺失的中标金额,用项目预算补充。</div>
                 </div>
                 <div class="vip_component" v-if="getStatus" style="height:10.8rem;background:url('/common-module/collection/image/bg/vip_bg_3.png') no-repeat;background-size:100% 100%">
-                    <vip-component data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_3" :entvisit="entvisit" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_3.png'></vip-component>
+                    <vip-component data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_3" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_3.png'></vip-component>
                 </div>
                 <div class="bg-white tab-card charts" v-if="conf._4 && mapChartData.rows.length !== 0  && !getStatus">
                     <div class="tab-card-title">市场区域分布</div>
@@ -372,7 +372,7 @@
                     </div>
                 </div>
                 <div class="vip_component" v-if="getStatus" style="height:10.56rem;background:url('/common-module/collection/image/bg/vip_bg_4.png') no-repeat;background-size:100% 100%">
-                    <vip-component data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_4" :entvisit="entvisit" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_4.png'></vip-component>
+                    <vip-component data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_4" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_4.png'></vip-component>
                 </div>
                 <div class="bg-white tab-card charts"  v-if="conf._4 && rateData.rows.length !== 0  && !getStatus">
                     <div class="tab-card-title">各类客户平均折扣率</div>
@@ -388,7 +388,7 @@
                     <div class="tab-card-tip">注:平均折扣率=(全部项目预算-全部中标金额)/全部项目预算,是指价格减让部分与原价的比率,仅统计预算和中标金额同时存在的项目。</div>
                 </div>
                 <div class="vip_component" v-if="getStatus" style="height:11.24rem;background:url('/common-module/collection/image/bg/vip_bg_5.png') no-repeat;background-size:100% 100%">
-                    <vip-component data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_5" :entvisit="entvisit" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_5.png'></vip-component>
+                    <vip-component data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_5" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_5.png'></vip-component>
                 </div>
                 <div class="bg-white tab-card charts"  v-show="conf._4 && entPortraitInfo.top10 && entPortraitInfo.top10.length != 0  && !getStatus">
                     <div class="tab-card-title">客户类型分布</div>
@@ -398,7 +398,7 @@
                     <div class="tab-card-tip">注:各客户类型占比以中标金额计算,最多展示占比排名前十的客户类型。</div>
                 </div>
                 <div class="vip_component" v-if="getStatus" style="height:11.92rem;background:url('/common-module/collection/image/bg/vip_bg_6.png') no-repeat;background-size:100% 100%">
-                    <vip-component data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_6" :entvisit="entvisit" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_6.png'></vip-component>
+                    <vip-component data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_6" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_6.png'></vip-component>
                 </div>
                 <div class="bg-white tab-card customers client"  v-show="conf._4 && importantCustomers.length !== 0  && !getStatus">
                     <div class="tab-card-title">重点客户</div>
@@ -428,7 +428,7 @@
                     </div>
                 </div>
                 <div class="vip_component" v-if="getStatus" style="height:10.8rem;background:url('/common-module/collection/image/bg/vip_bg_7.png') no-repeat;background-size:100% 100%">
-                    <vip-component data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_7" :entvisit="entvisit" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_7.png'></vip-component>
+                    <vip-component data-cl-event="c_wx_open_buttionclick" @tabactive="tabActive" :power="conf" type="item_7" :entvisit="entvisit" :can-free-exp="canFreeExp" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_7.png'></vip-component>
                 </div>
             </van-tab>
         </van-tabs>

+ 19 - 2
src/web/templates/frontRouter/wx/portraitRecord/sess/index.html

@@ -72,7 +72,7 @@
               finished-text=""
               @load="onLoad"
             >
-                <div class="ent-search-item" v-for="(item, i) in list" :key="item._id" @click="detailed(item._id)">
+                <div v-if="ptype==''" class="ent-search-item" v-for="(item, i) in list" :key="item._id" @click="detailed(item._id)">
                     <div class="ent-info-top">
                         <div class="ent-info-head" :style="{'background-color': item.color}">{item.abbr}</div>
                         <div class="ent-info-keep">
@@ -97,7 +97,24 @@
                             <div class="van-multi-ellipsis--l2">{item.address}</div>
                             <i class="j-icon base-icon icon-address"></i>
                         </div>
-
+                    </div>
+                </div>
+                <div v-if="ptype=='1'" class="ent-search-item" v-for="(item, i) in list" :key="item._id" @click="detailed(item._id)">
+                    <div class="ent-info-top">
+                        <div class="ent-info-head" :style="{'background-color': item.color}">{item.abbr}</div>
+                        <div class="ent-info-keep">
+                            <div class="ent-row">
+                                <div class="ent-name van-ellipsis">{item.name}</div>
+                                <div class="fill-icon-box" style="display: none">
+                                    <i class="j-icon base-icon icon-no-favorite"></i>
+                                </div>
+                            </div>
+                            <div class="ent-more">
+                                <div v-if="item.province">所在地: <span>{item.province} {item.city}</span></div>
+                                <div v-if="item.buyerClass">采购单位类型: <span>{item.buyerClass}</span></div>
+                            </div>
+                            <div class="ent-line-box"></div>
+                        </div>
                     </div>
                 </div>
             </van-list>

+ 37 - 1
src/web/templates/pc/biddetail_rec.html

@@ -3356,6 +3356,29 @@ function fromwhere(text){
       }
     }
   }
+
+  //超级订阅附件下载
+  function cjdyDownload () {
+	  $.ajax({
+		  type:'post',
+		  url:'/publicapply/attachment/get',
+		  data:{
+			  infoId:{{.T.obj._id}}
+  		  },
+		  success:function(data){
+			  // TODO 留资判断
+			  for(var i=0;i<data.data.attachment.length;i++) {
+
+			  }
+			  if(data.data && data.data.attachment !=null && data.data.attachment.length!==0){
+				  for(var i=0;i<data.data.attachment.length;i++) {
+					  goDownload(data.data.attachment[i].downurl)
+				  }
+			  }
+	  }
+  });
+  }
+
   // 获取附件内容
   function getFileData () {
     $.ajax({
@@ -3369,15 +3392,28 @@ function fromwhere(text){
         if(data.data && data.data.attachment !=null && data.data.attachment.length!==0){
           var html = ''
           for(var i=0;i<data.data.attachment.length;i++) {
-            html += "<div class='downs'>"+"<a class='menu_list' style='text-decoration:underline;color: #2CB7CA' onclick='goDownload(\""+data.data.attachment[i].downurl+"\")'>"+(i+1)+"."+data.data.attachment[i].filename+"</a></div>"
+            // html += "<div class='downs'>"+"<a class='menu_list' style='text-decoration:underline;color: #2CB7CA' onclick='goDownload(\""+data.data.attachment[i].downurl+"\")'>"+(i+1)+"."+data.data.attachment[i].filename+"</a></div>"
+            html += "<div class='downs'>"+"<a class='menu_list' style='text-decoration:underline;color: #2CB7CA'>"+(i+1)+"."+data.data.attachment[i].filename+"</a></div>"
+
           }
           if(html!==""){
             $("#attach-list").css("display","").find(".download-list").html(html)
           }
+			$(".downs").click(function (){
+				cjdyDownload()
+			})
+			// $(".downs").click(function (){
+			//
+			// })
         }
       }
     });
   }
+
+  // $(".menu_list").click(function (){
+  //
+  // })
+
   // 根据isAdd接口 展示附件部分dom
   function showFileSomeDom () {
     // 免费用户展示可下载一次提示(免费用户且没有体验过附件下载权益的展示)

+ 3 - 2
src/web/templates/pc/subscribe_new.html

@@ -258,8 +258,9 @@
             <img src="{{Msg "seo" "cdn"}}/images/subscribe/vip_toUse.png?v={{Msg "seo" "version"}}" alt="" style="width: 335px;height: 447px">
             <button type="button" class="close vip" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
             <div class="vip-code">
-                <img id="vipCode" alt="" style="width: 139px;height: 139px">
-                <p class="vip-text">扫描二维码购买超级订阅</p>
+                <img id="vipCode" alt="" style="width: 149px;height: 149px">
+                <p class="vip-text">微信扫码关注公众号</p>
+                <p class="vip-text2">使用超级订阅</p>
             </div>
         </div>
     </div>

+ 10 - 0
src/web/templates/weixin/my.html

@@ -160,6 +160,16 @@
                             <span class="j-icon base-icon icon-arrow-right"></span>
                         </div>
                     </div>
+                    <div style="display: none;" class="menu-list-item clickable" id="buyer-follow-history" data-href="/weixin/frontPage/portraitRecord/sess/index?type=1">
+                        <div class="m-l-i-left">
+                            <span class="j-icon base-icon icon-company"></span>
+                            <span class="m-l-i-label">采购单位画像记录</span>
+                        </div>
+                        <div class="m-l-i-right">
+                            <i class="dot-red"></i>
+                            <span class="j-icon base-icon icon-arrow-right"></span>
+                        </div>
+                    </div>
                 </div>
                 <div class="menu-list">
                   <div class="menu-list-item clickable" id="" data-href="/page_docs_mobile/user/lib">

+ 87 - 33
src/web/templates/weixin/wxinfocontent_rec.html

@@ -1534,8 +1534,13 @@ function isOpening() {
 					//console.log(res)
           bigstatus = res.data.memberStatus
           powerArr = res.data.power
+          // 是大会员没有下载权限
+          if (bigstatus > 0 && powerArr.indexOf(3) == -1) {
+              window.isNoMember = true
+          }
+          // 是大会员 有下载权限
   				if (bigstatus > 0 && powerArr.indexOf(3) > -1) {
-  					window.isMemberAndPower = true
+  					  window.isMemberAndPower = true
   				}
           window.isFree = res.data.isFree // 是否是免费用户
           window.freeFile = res.data.freeFile // 免费用户 是否体验过 0:未体验过 -1:体验过
@@ -1563,7 +1568,8 @@ function isOpening() {
           if (res.data && res.data.isFree && res.data.freeFile == 0) {
             $('.free-down-text').css('display', 'inline-block')
           }
-          if (res.data && res.data.vipStatus > 0 && res.data.viper) {
+          //非大会员或大会员无此功能 且是新超级订阅用户
+          if (res.data && res.data.vipStatus > 0 && res.data.viper&&!window.isMemberAndPower) {
             $('.file-count-tip').css('display', 'inline-block')
             $('.concat-kf').css('display', 'inline-block')
             $('.icon-help').css('display', 'inline-block')
@@ -1623,39 +1629,87 @@ function andownload() {
 
                 $('.download-list>ul').append(html)
                 $('.downs').on('click', function(){
-                  //  留资判断
-                  if (window.isFree&&window.freeFile==0) {
+                  //免费用户
+                  if(window.isFree){
+                    //  留资判断
+                    if (window.freeFile==0) {
                       location.href = '/weixin/frontPage/bigmember/free/perfect_info?source=article_attach_freeuser'
                       return
-                  }
-                  //超级订阅
-                  if (window.vipStatus&&window.viper&&window.fileNum<=0){
-                    // 次数用完提醒联系客服
-                    vant.Dialog.confirm({
-                      message: '您本月查看机会已经消耗完毕,如需要更多服务,请前往联系客服。',
-                      showCancelButton: true,
-                      confirmButtonText: '联系客服',
-                      confirmButtonColor: '#2ABDD1',
-                      className: 'custom-dialog',
-                      width: 303
-
-                    }).then(() => {
-                      location.href = '/big/wx/page/customer'
-                    })
-                    .catch(() => {})
-                    return
-                  }
-                  //付费用户 无大会员此功能权限
-                  if (!window.isMemberAndPower&&!isFree){
-                    vant.Dialog.alert({
-                      message: '您未购买此服务,如需使用请联系您的客户经理或客服升级套餐,谢谢!',
-                      className: 'custom-dialog',
-                      confirmButtonText: '我知道了',
-                      confirmButtonColor: '#2ABDD1',
-                      closeOnClickOverlay: true,
-                      width: 303,
-                    }).then(() => {})
-                    return
+                    }else if (window.freeFile < 0 ) {
+                      // 免费用户 体验过 下载次数为-1 弹框提醒跳至超级订阅购买页
+                      vant.Dialog.confirm({
+                        title: '开通超级订阅',
+                        message: '您已经免费解锁过【附件下载】权益1次,暂无免费查看权限。如需查看更多,请开通超级订阅获取更多权限。',
+                        showCancelButton: true,
+                        confirmButtonText: '去开通',
+                        confirmButtonColor: '#2ABDD1',
+                        className: 'custom-dialog',
+                        width: 303,
+                        messageAlign: 'left',
+                      }).then(() => {
+                        location.href = '/front/vipsubscribe/vipsubscribe_new'
+                      })
+                      .catch(() => {})
+                      return
+                    }
+                  }else{
+                    // 付费用户
+                    // 大会员用户 有下载权限
+                    if (window.isMemberAndPower) {
+                      if(mySysIsIos()){
+                        iosShow(url)
+                      } else {
+                        location.href = url
+                      }
+                      return
+                    }
+                    //超级订阅
+                    if (window.vipStatus>0){
+                      //超级订阅新用户
+                      if(window.viper){
+                        // 次数用完提醒联系客服
+                        if (window.fileNum<=0){
+                          vant.Dialog.confirm({
+                            message: '您本月查看机会已经消耗完毕,如需要更多服务,请前往联系客服。',
+                            showCancelButton: true,
+                            confirmButtonText: '联系客服',
+                            confirmButtonColor: '#2ABDD1',
+                            className: 'custom-dialog',
+                            width: 303
+      
+                          }).then(() => {
+                            location.href = '/big/wx/page/customer'
+                          })
+                          .catch(() => {})
+                          return
+                        }
+                      }else{
+                        //超级订阅老用户  提醒升级
+                        vant.Dialog.confirm({
+                          title: '升级超级订阅',
+                          message: '对不起,暂无权限,您可升级超级订阅解锁附件下载',
+                          showCancelButton: true,
+                          confirmButtonText: '前往升级',
+                          confirmButtonColor: '#2ABDD1',
+                          className: 'custom-dialog',
+                          width: 303
+                        }).then(() => {
+                          location.href = '/front/vipsubscribe/upgradePage'
+                        }).catch(() => {})
+                        return
+                      }
+                    }
+                    // 是大会员自定义版本没有下载权限 或 非超级订阅的商机管理用户 (弹框提醒联系客服)
+                    if (window.isNoMember == true || (window.vipStatus <=0 && window.entniche)) {
+                      vant.Dialog.alert({
+                        message: '您未购买此服务,如需使用请联系您的客户经理或客服升级套餐,谢谢!',
+                        className: 'custom-dialog',
+                        confirmButtonText: '我知道了',
+                        confirmButtonColor: '#2ABDD1',
+                        width: 303,
+                      }).then(() => {})
+                      return
+                    }
                   }
                   //
                   gotoFilePage($(this).find('a').text())