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

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

zhangxinlei1996 3 жил өмнө
parent
commit
e7dea7811d
25 өөрчлөгдсөн 941 нэмэгдсэн , 127 устгасан
  1. 6 5
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/ent_portrait.js
  2. 18 9
      src/jfw/modules/app/src/web/staticres/jyapp/me/js/mine.js
  3. 9 9
      src/jfw/modules/app/src/web/templates/big-member/page_ent_portrait.html
  4. 3 3
      src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info.html
  5. 19 2
      src/jfw/modules/app/src/web/templates/frontRouter/portraitRecord/sess/index.html
  6. 10 0
      src/jfw/modules/app/src/web/templates/me/mine.html
  7. 10 7
      src/jfw/modules/bigmember/src/entity/portrait.go
  8. 19 13
      src/jfw/modules/bigmember/src/service/portrait/subvipPortraitAction.go
  9. 5 3
      src/jfw/modules/common/src/qfw/util/jy/subvipPortrait.go
  10. 2 2
      src/jfw/modules/publicapply/src/config.json
  11. 2 0
      src/jfw/modules/publicapply/src/main.go
  12. 2 2
      src/web/staticres/common-module/collection/js/ent_portrait.js
  13. 81 26
      src/web/staticres/common-module/collection/js/vip-dialog.js
  14. 64 17
      src/web/staticres/common-module/portraitRecord/js/index-wx.js
  15. 64 17
      src/web/staticres/common-module/portraitRecord/js/index.js
  16. 212 0
      src/web/staticres/frontRouter/pc/seeBuyerHistory/css/index-pc.css
  17. BIN
      src/web/staticres/frontRouter/pc/seeBuyerHistory/images/help.png
  18. 131 0
      src/web/staticres/frontRouter/pc/seeBuyerHistory/js/index-pc.js
  19. 3 0
      src/web/staticres/me/js/mine.js
  20. 113 0
      src/web/templates/frontRouter/pc/seeBuyerHistory/sess/index.html
  21. 129 0
      src/web/templates/frontRouter/wx/buyerPortraitRecord/sess/index.html
  22. 9 9
      src/web/templates/frontRouter/wx/collection/sess/ent_portrait.html
  23. 19 2
      src/web/templates/frontRouter/wx/portraitRecord/sess/index.html
  24. 1 1
      src/web/templates/pc/biddetail_rec.html
  25. 10 0
      src/web/templates/weixin/my.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) {

+ 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>

+ 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>

+ 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") {
+				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", 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

+ 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
 }

+ 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"

+ 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
             }

+ 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 {

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

@@ -0,0 +1,212 @@
+.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;
+}
+.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;
+}

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')
+        }
+    }
+})

+ 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()
                   }
               }
           }

+ 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>

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

@@ -3360,7 +3360,7 @@ function fromwhere(text){
   function getFileData () {
     $.ajax({
       type:'post',
-      url:'/bigmember/attachment/get',
+      url:'/publicapply/attachment/get',
       data:{
         infoId:{{.T.obj._id}}
       },

+ 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">