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

Merge branch 'release' into dev4.5.9.4

lianbingjie 3 жил өмнө
parent
commit
794ae238c3
39 өөрчлөгдсөн 3187 нэмэгдсэн , 2480 устгасан
  1. 10 0
      1.html
  2. 1044 964
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/ent_portrait.js
  3. 26 11
      src/jfw/modules/app/src/web/staticres/jyapp/css/wxinfocontent.css
  4. 393 366
      src/jfw/modules/app/src/web/templates/big-member/page_ent_portrait.html
  5. 1 1
      src/jfw/modules/app/src/web/templates/big-member/page_ent_portrait_change.html
  6. 246 223
      src/jfw/modules/app/src/web/templates/big-member/page_unit_portrayal.html
  7. 1 1
      src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info.html
  8. 1 1
      src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info_push.html
  9. 3 3
      src/jfw/modules/app/src/web/templates/weixin/wxinfocontent.html
  10. 58 18
      src/jfw/modules/bigmember/src/entity/portrait.go
  11. 2 2
      src/jfw/modules/bigmember/src/entity/portraitBuyerSearch.go
  12. 5 5
      src/jfw/modules/bigmember/src/entity/portraitWinnerSearch.go
  13. 120 22
      src/jfw/modules/bigmember/src/service/portrait/memberPortraitAction.go
  14. 1 1
      src/jfw/modules/bigmember/src/service/portrait/subvipPortraitAction.go
  15. 26 2
      src/jfw/modules/subscribepay/src/entity/dataExportPackStruct.go
  16. 20 0
      src/jfw/modules/subscribepay/src/service/dataExportPay.go
  17. 5 3
      src/web/staticres/common-module/collection/css/index.css
  18. 4 4
      src/web/staticres/common-module/collection/js/buyer-example.js
  19. 124 51
      src/web/staticres/common-module/collection/js/ent_portrait.js
  20. 34 15
      src/web/staticres/common-module/collection/js/money-mobile.js
  21. 45 19
      src/web/staticres/common-module/collection/js/vip-dialog.js
  22. 1 0
      src/web/staticres/css/collect-user-info.css
  23. 26 11
      src/web/staticres/css/wxcontentinfo.css
  24. 8 0
      src/web/staticres/frontRouter/pc/my_data_packet/js/index-pc.js
  25. 99 0
      src/web/staticres/js/common.js
  26. 26 4
      src/web/staticres/js/ent-search-index-pc.js
  27. 2 0
      src/web/staticres/js/login.js
  28. 1 1
      src/web/staticres/js/pc-collect-bid-info.js
  29. 1 1
      src/web/staticres/js/pc-collect-partner-info.js
  30. 7 2
      src/web/staticres/js/pc-collect-user-info.js
  31. 217 0
      src/web/staticres/pccss/pc-detail.css
  32. 247 224
      src/web/templates/big-member/wx/page_unit_portrayal.html
  33. 1 1
      src/web/templates/frontRouter/wx/bigmember/free/perfect_info.html
  34. 107 97
      src/web/templates/frontRouter/wx/collection/sess/ent_portrait.html
  35. 1 1
      src/web/templates/frontRouter/wx/collection/sess/ent_portrait_change.html
  36. 1 217
      src/web/templates/pc/biddetail_rec.html
  37. 258 183
      src/web/templates/pc/dataExport_sieve.html
  38. 11 22
      src/web/templates/pc/dataPack/index.html
  39. 4 4
      src/web/templates/weixin/wxinfocontent_rec.html

+ 10 - 0
1.html

@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8">
+  <title>$Title$</title>
+</head>
+<body>
+$END$
+</body>
+</html>

+ 1044 - 964
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/ent_portrait.js

@@ -1,1022 +1,1102 @@
 var vNode = {
-    delimiters: ['${', '}'],
-    el: '#ent-portrait',
-    components: {
-        vipComponent: vipComponent,
-        hisproComponent: hisproComponent
-    },
-    data () {
-        // 修改柱状条颜色为渐变色
-        this.colorGreen = [new echarts.graphic.LinearGradient(
-            0, 0, 0, 1,
-            [
-                {offset: 1, color: '#2ABED1'},
-                {offset: 0.5, color: '#2ABED1'},
-                {offset: 0, color: '#8DE0EB'}
-            ], false
-        ), '#FF9F40']
+  delimiters: ['${', '}'],
+  el: '#ent-portrait',
+  components: {
+    vipComponent: vipComponent,
+    hisproComponent: hisproComponent
+  },
+  data () {
+    // 修改柱状条颜色为渐变色
+    this.colorGreen = [new echarts.graphic.LinearGradient(
+      0, 0, 0, 1,
+      [
+        { offset: 1, color: '#2ABED1' },
+        { offset: 0.5, color: '#2ABED1' },
+        { offset: 0, color: '#8DE0EB' }
+      ], false
+    ), '#FF9F40']
 
-        return {
-            sessKey: '$data-ent_portrait',
-            conf: {
-                // 权限查询是否完成
-                powerLoaded: false,
-                // 是否只显示完整的企业画像
-                showPortraitAll: true,
-                // 是否显示,企业全景分析
-                _4: false,
-                // 是否显示中标企业动态
-                _13: false,
-                // 是否有企业情报历史记录权限
-                _12: false,
-                isMember: 0 // 是否是大会员
-            },
-            powerInfo: {},
-            tabActiveName: '1',
-            // 企业信息
-            entInfo: {
-                name: '',
-                follow: 0,
-                followSearchFinish: false,
-                entExist: true
-            },
-            // tab1中的企业基础信息
-            entBaseInfo: {
-                type: null,
-                status: null,
-                creditNo: '',
-                capital: '',
-                employeeNo: '',
-                address: '',
-                scope: '',
-                operStart: -1,
-                operEnd: -1,
-                establish: '',
-                showEntChange: false,
-                org_code: '',
-                company_code: '',
-                legal: '',
-                phone: '',
-                taxCode: ''
-            },
-            // tab2中的项目动态
-            topProject: {
-                list: [],
-                count: '',
-                pageSign: '',
-                showGetNextButton: true
-            },
-            entPortraitInfo: {},
-            stickyTop: 80,
-            singleTab: true,
-            // 年度项目统计设置
-            annualSetting:{
-                showLine: ['项目金额'],
-                axisSite: { right: ['项目金额'] }
-            },
-            // 地图配置项
-            mapSettings: mapSettings,
-            // 年度项目统计数据
-            annualData: {
-                columns: ["日期","项目数量","项目金额"],
-                rows: []
-            },
-            // 地图数据
-            mapChartData: {
-                columns: ['name', 'value'],
-                rows: []
-            },
-            // 月度中标金额
-            monthZbData: {
-                columns: [],
-                rows: []
-            },
-            // 平均折扣率
-            rateData: {
-                columns: [],
-                rows: []
-            },
-            pieChartSettings: {
-                roseType: 'radius'
-            },
-            importantCustomers: [],
-            scrollTop: 0,
-            getEntPortraitInfoTimes: 0,
-            initEchartsOptions: {
-                renderer: 'svg'
-            },
-            gotTab2: false, // 是否已经获取到tab2的数据了
-            svip: false, // 判断是否是超级订阅的企业画像
-            overlayShow: true, // 弹窗遮罩是否显示
-            isVip: false, // 只是超级订阅
-            bidcollPowerInfo: {
-                vip: 0,
-                text: '开通',
-                btntext: '去开通'
-            },
-            entvisit: {
-                total: 0, // 本月画像次数总量
-                usage: 0, // 本月已使用次数
-                provin: 0, // 购买省份数量
-                visited: false // 是否查看中标信息
-            },
-            portrait:'winner'
-        }
+    return {
+      sessKey: '$data-ent_portrait',
+      conf: {
+        // 权限查询是否完成
+        powerLoaded: false,
+        // 是否只显示完整的企业画像
+        showPortraitAll: true,
+        // 是否显示,企业全景分析
+        _4: false,
+        // 是否显示中标企业动态
+        _13: false,
+        // 是否有企业情报历史记录权限
+        _12: false,
+        isMember: 0, // 是否是大会员
+        arr: [], // 权限数组
+        vipStatus: 0 // 是否是超级订阅
+      },
+      powerInfo: {},
+      tabActiveName: '1',
+      // 企业信息
+      entInfo: {
+        name: '',
+        follow: 0,
+        followSearchFinish: false,
+        entExist: true
+      },
+      // tab1中的企业基础信息
+      entBaseInfo: {
+        type: null,
+        status: null,
+        creditNo: '',
+        capital: '',
+        employeeNo: '',
+        address: '',
+        scope: '',
+        operStart: -1,
+        operEnd: -1,
+        establish: '',
+        showEntChange: false,
+        org_code: '',
+        company_code: '',
+        legal: '',
+        phone: '',
+        taxCode: ''
+      },
+      // tab2中的项目动态
+      topProject: {
+        list: [],
+        count: '',
+        pageSign: '',
+        showGetNextButton: true
+      },
+      entPortraitInfo: {},
+      stickyTop: 80,
+      singleTab: true,
+      // 年度项目统计设置
+      annualSetting: {
+        showLine: ['项目金额'],
+        axisSite: { right: ['项目金额'] }
+      },
+      // 地图配置项
+      mapSettings: mapSettings,
+      // 年度项目统计数据
+      annualData: {
+        columns: ["日期", "项目数量", "项目金额"],
+        rows: []
+      },
+      // 地图数据
+      mapChartData: {
+        columns: ['name', 'value'],
+        rows: []
+      },
+      // 月度中标金额
+      monthZbData: {
+        columns: [],
+        rows: []
+      },
+      // 平均折扣率
+      rateData: {
+        columns: [],
+        rows: []
+      },
+      pieChartSettings: {
+        roseType: 'radius'
+      },
+      importantCustomers: [],
+      scrollTop: 0,
+      getEntPortraitInfoTimes: 0,
+      initEchartsOptions: {
+        renderer: 'svg'
+      },
+      gotTab2: false, // 是否已经获取到tab2的数据了
+      svip: false, // 判断是否是超级订阅的企业画像
+      overlayShow: true, // 弹窗遮罩是否显示
+      isVip: false, // 只是超级订阅
+      bidcollPowerInfo: {
+        vip: 0,
+        text: '开通',
+        btntext: '去开通'
+      },
+      entvisit: {
+        total: 0, // 本月画像次数总量
+        usage: 0, // 本月已使用次数
+        provin: 0, // 购买省份数量
+        visited: false // 是否查看中标信息
+      },
+      portrait: 'winner',
+      showBaseInfo: false
+    }
+  },
+  created: function () {
+    // svip是超级订阅企业查询, 如果是超级订阅不能查看企业情报历史记录
+    var svip = utils.getParam('svip')
+    if (svip) {
+      this.svip = true
+    }
+    // 企业名称恢复
+    var eId = utils.getParam('eId')
+    if (eId) {
+      eId = decodeURIComponent(eId)
+    }
+    this.entInfo.id = eId
+    this.entInfo.name = ''
+    this.restore = this.reStoreState()
+    this.getEntVisits()
+    this.getPowerInfo()
+    if (!this.restore) {
+      // 获取企业基本信息
+      this.getEntBaseInfo()
+    }
+  },
+  mounted: function () {
+    var _this = this
+    // 动态调整sticky距离顶部的高度
+    this.getStickyTop()
+    if (this.scrollTop) {
+      setTimeout(function () {
+        $('#ent-portrait').scrollTop(_this.scrollTop)
+      }, 0)
+    }
+
+    window.addEventListener('resize', function () {
+      _this.getStickyTop()
+    })
+  },
+  watch: {
+    // tabActiveName: function (newVal, oldVal) {
+    //   console.log(newVal)
+    //     var _this = this
+    //     if (newVal == '2' || newVal == '1') {
+    //         this.$nextTick(function () {
+    //             if (_this.gotTab2) {
+    //                 // 初始化图表
+    //                 if (_this.entPortraitInfo && _this.conf.showPortraitAll && !_this.singleTab) {
+    //                     _this.initChartsData();
+    //                 }
+    //             } else {
+    //                 if (_this.conf._4) {
+    //                     // 获取企业画像信息-4
+    //                     _this.getEntPortrait(function () {
+    //                         _this.initChartsData()
+    //                     })
+    //                     _this.gotTab2 = true
+    //                     console.log('获取企业全景分析...')
+    //                 }
+    //                 // 获取企业中标动态-13
+    //                 if (_this.conf._13) {
+    //                     // _this.getProjectNews()
+    //                     _this.gotTab2 = true
+    //                     console.log('获取企业中标动态...')
+    //                 }
+    //                 if(_this.powerInfo.memberStatus <= 0) {
+    //                     // 不是大会员点击中标信息使用次数加一
+    //                     // if(!_this.entvisit.visited) {
+    //                     //     _this.entvisit.usage++
+    //                     //     _this.entvisit.visited = true
+    //                     // }
+    //                 }
+    //                 _this.gotTab2 = true
+    //             }
+    //         });
+    //     }
+    // },
+  },
+  computed: {
+    // 3个权限有1个就为true(取反为3个权限1个都没有)
+    hasOnePower: function () {
+      return this.conf._4 || this.conf._12 || this.conf._13
+    },
+    setShow: function () {
+      // 必须在tab2,并且三个权限都没有,就用显示
+      return this.tabActiveName == '2' && !this.hasOnePower
+    },
+    // 查看次数为零,显示遮罩
+    getStatus: function () {
+      return (!this.conf._4 && !this.isVip) || (this.entvisit.total <= this.entvisit.usage && this.powerInfo.memberStatus <= 0 && !this.entvisit.visited) || (this.entvisit.total <= this.entvisit.usage && !this.showContacts && !this.entvisit.visited)
+    },
+    isMember () {
+      return this.powerInfo.memberStatus <= 0 || !this.conf._4
+    },
+    isShowUpTip () {
+      // 出现升级提醒 是新超级订阅买的不是全国、次数已用完 、不是大会员
+      return this.entvisit.provin == -1 ? false : true && !this.surplus && this.isVip && this.powerInfo.memberStatus <= 0 && !this.entvisit.visited
     },
-    created: function () {
-        // svip是超级订阅企业查询, 如果是超级订阅不能查看企业情报历史记录
-        var svip = utils.getParam('svip')
-        if (svip) {
-            this.svip = true
+    surplus: function () {
+      return this.entvisit.total > this.entvisit.usage
+    },
+    showContacts: function () {
+      return this.conf.arr.indexOf(4) > -1 && this.powerInfo.memberStatus > 0
+    },
+    // 是否隐藏动态 显示遮罩
+    hideDt: function() {
+      // 是新超级订阅 且不是大会员且次数已用完   或大会员没有项目动态权限
+      return this.isVip && this.powerInfo.memberStatus <= 0 && this.entvisit.total <= this.entvisit.usage || this.conf.arr.indexOf(13) === -1
+    }
+  },
+  methods: {
+    getDataFn: function () {
+      var _this = this
+      this.$nextTick(function () {
+        // 初始化图表
+        if (_this.entPortraitInfo && _this.conf.showPortraitAll && !_this.singleTab) {
+          _this.initChartsData();
         }
-        // 企业名称恢复
-        var eId = utils.getParam('eId')
-        if (eId) {
-          eId = decodeURIComponent(eId)
+
+        if (_this.conf._4) {
+          // 获取企业画像信息-4
+          _this.getEntPortrait(function () {
+            _this.initChartsData()
+          })
+          _this.gotTab2 = true
+          console.log('获取企业全景分析...')
         }
-        this.entInfo.id = eId
-        this.entInfo.name = ''
-        this.restore = this.reStoreState()
-        this.getPowerInfo()
-        if (!this.restore) {
-            // 获取企业基本信息
-            this.getEntBaseInfo()
+        // 获取企业中标动态-13
+        if (_this.conf._13) {
+          _this.getProjectNews()
+          _this.gotTab2 = true
+          console.log('获取企业中标动态...')
         }
-    },
-    mounted: function () {
-        var _this = this
-        // 动态调整sticky距离顶部的高度
-        this.getStickyTop()
-        if (this.scrollTop) {
-            setTimeout(function () {
-                $('#ent-portrait').scrollTop(_this.scrollTop)
-            }, 0)
+        if (_this.powerInfo.memberStatus <= 0) {
+          // 不是大会员点击中标信息使用次数加一
+          // if(!_this.entvisit.visited) {
+          //     _this.entvisit.usage++
+          //     _this.entvisit.visited = true
+          // }
         }
+        _this.gotTab2 = true
 
-        window.addEventListener('resize', function() {
-            _this.getStickyTop()
-        })
+      });
     },
-    watch: {
-        tabActiveName: function (newVal, oldVal) {
-            var _this = this
-            if (newVal == '2') {
-                this.$nextTick(function () {
-                    if (_this.gotTab2) {
-                        // 初始化图表
-                        if (_this.entPortraitInfo && _this.conf.showPortraitAll && !_this.singleTab) {
-                            _this.initChartsData();
-                        }
-                    } else {
-                        if (_this.conf._4) {
-                            // 获取企业画像信息-4
-                            _this.getEntPortrait(function () {
-                                _this.initChartsData()
-                            })
-                            _this.gotTab2 = true
-                            console.log('获取企业全景分析...')
-                        }
-                        // 获取企业中标动态-13
-                        if (_this.conf._13) {
-                            _this.getProjectNews()
-                            _this.gotTab2 = true
-                            console.log('获取企业中标动态...')
-                        }
-                        if(_this.powerInfo.memberStatus <= 0) {
-                            // 不是大会员点击中标信息使用次数加一
-                            // if(!_this.entvisit.visited) {
-                            //     _this.entvisit.usage++
-                            //     _this.entvisit.visited = true
-                            // }
-                        }
-                        _this.gotTab2 = true
-                    }
-                });
-            }
-        },
+    // 点击去开通记住tab栏下标
+    tabActive: function (data) {
+      this.savePageState()
     },
-    computed: {
-        // 3个权限有1个就为true(取反为3个权限1个都没有)
-        hasOnePower: function () {
-            return this.conf._4 || this.conf._12 || this.conf._13
-        },
-        setShow: function() {
-            // 必须在tab2,并且三个权限都没有,就用显示
-            return this.tabActiveName == '2' && !this.hasOnePower
-        },
-        // 查看次数为零,显示遮罩
-        getStatus: function () {
-            return (!this.conf._4 && !this.isVip) || (this.entvisit.total <= this.entvisit.usage && this.powerInfo.memberStatus <= 0 && !this.entvisit.visited)
-        },
-        isMember () {
-          return this.powerInfo.memberStatus <= 0 || !this.conf._4
-        },
-        isShowUpTip () {
-          return this.entvisit.provin == -1 ? false : !this.surplus
-        },
-        surplus: function () {
-            return this.entvisit.total > this.entvisit.usage
+    showToast: function (message) {
+      this.$toast({
+        duration: 1500,
+        forbidClick: true,
+        message: message,
+      })
+    },
+    showLoading: function () {
+      var loading = this.$toast.loading({
+        duration: 0,
+        forbidClick: true,
+        message: '',
+      })
+      return loading
+    },
+    // 超级订阅提示弹窗取消按钮事件
+    beforeClose: function (e, done) {
+      console.log(e)
+      if (e === 'cancel') {
+        this.tabActiveName = '1'
+        done(false)
+        this.overlayShow = true
+      } else if (e === 'confirm') {
+        try {
+          _hmt.push(['_trackEvent', '超级订阅-app', 'click', '企业画像中标信息-去开通']);
+        } catch (e) {
+          console.log('未初始化百度统计')
+        }
+        // 去开通
+        if (this.bidcollPowerInfo.vip == 1) {
+          location.href = '/jyapp/vipsubscribe/upgradePage'
+        } else {
+          location.href = '/jyapp/vipsubscribe/vipsubscribe_new'
         }
+      }
+      this.overlayShow = true
     },
-    methods: {
-        // 点击去开通记住tab栏下标
-        tabActive: function(data) {
-            this.savePageState()
-        },
-        showToast: function (message) {
-            this.$toast({
-                duration: 1500,
-                forbidClick: true,
-                message: message,
-            })
-        },
-        showLoading: function() {
-            var loading = this.$toast.loading({
-                duration: 0,
-                forbidClick: true,
-                message: '',
-            })
-            return loading
-        },
-        // 超级订阅提示弹窗取消按钮事件
-        beforeClose: function (e, done) {
-            console.log(e)
-            if (e === 'cancel') {
-                this.tabActiveName = '1'
-                done(false)
-                this.overlayShow = true
-            } else if (e === 'confirm') {
-                try {
-                  _hmt.push(['_trackEvent','超级订阅-app', 'click', '企业画像中标信息-去开通']);
-                } catch (e) {
-                  console.log('未初始化百度统计')
-                }
-                // 去开通
-                if(this.bidcollPowerInfo.vip == 1) {
-                    location.href = '/jyapp/vipsubscribe/upgradePage'
-                } else {
-                    location.href = '/jyapp/vipsubscribe/vipsubscribe_new'
-                }
-            }
-            this.overlayShow = true
-        },
-        // 获取画像信息
-        getEntPortrait: function (callback) {
-            var _this = this
-            var data = {
-                entId: _this.entInfo.id
-            }
-            let urls = ''
-            if(_this.powerInfo.memberStatus <= 0 || _this.svip) {
-                urls = '/bigmember/portrait/subVipPortrait/winner'
+    // 获取画像信息
+    getEntPortrait: function (callback) {
+      var _this = this
+      var data = {
+        entId: _this.entInfo.id
+      }
+      let urls = ''
+      // 如果专家版、智慧版 调大会员接口,如果是专家版、自定义版,同时是超级订阅 根据可查看次数判断 调大会员还是超级订阅接口
+      if (_this.powerInfo.memberStatus > 0 && _this.powerInfo.memberStatus <= 2) {
+        urls = '/bigmember/portrait/winner/getData'
+      } else if (_this.powerInfo.memberStatus > 2) {
+        if ( _this.isVip) { // 超级订阅
+          if(_this.entvisit.total <= _this.entvisit.usage && !_this.entvisit.visited) {
+            urls = '/bigmember/portrait/winner/getData'
+          } else {
+            urls = '/bigmember/portrait/subVipPortrait/winner'
+          }
+        } else {
+          urls = '/bigmember/portrait/winner/getData'
+           // 商机版、自定义版
+        }
+      } else {
+        urls = '/bigmember/portrait/subVipPortrait/winner'
+      }
+      // if (_this.powerInfo.memberStatus <= 0 || _this.svip || _this.isVip) {
+      //   urls = '/bigmember/portrait/subVipPortrait/winner'
+      // } else {
+      //   urls = '/bigmember/portrait/winner/getData'
+      // }
+      _this.getEntPortraitInfoTimes++
+      $.ajax({
+        type: 'POST',
+        url: urls,
+        data: data,
+        success: function (res) {
+          if (res.error_code == 0) {
+            _this.loading.clear()
+            if (res.data && Object.keys(res.data).length !== 0) {
+              _this.singleTab = false
+              // 将数据保存到data中
+              for (var key in res.data) {
+                _this.entPortraitInfo[key] = res.data[key]
+              }
+
+              if (res.data.timeRange && res.data.timeRange.start) {
+                _this.entPortraitInfo.timeRangeStart = res.data.timeRange.start
+              }
+              if (res.data.timeRange && res.data.timeRange.end) {
+                _this.entPortraitInfo.timeRangeEnd = res.data.timeRange.end
+              }
 
+              callback && callback()
             } else {
-                urls = '/bigmember/portrait/winner/getData'
+              if (_this.getEntPortraitInfoTimes < 5) {
+                _this.getEntPortrait()
+              }
             }
-            _this.getEntPortraitInfoTimes++
-            $.ajax({
-                type: 'POST',
-                url: urls,
-                data: data,
-                success: function (res) {
-                    if (res.error_code == 0) {
-                        _this.loading.clear()
-                        if (res.data && Object.keys(res.data).length !== 0) {
-                            _this.singleTab = false
-                            // 将数据保存到data中
-                            for (var key in res.data) {
-                                _this.entPortraitInfo[key] = res.data[key]
-                            }
-
-                            if (res.data.timeRange && res.data.timeRange.start) {
-                                _this.entPortraitInfo.timeRangeStart = res.data.timeRange.start
-                            }
-                            if (res.data.timeRange && res.data.timeRange.end) {
-                                _this.entPortraitInfo.timeRangeEnd = res.data.timeRange.end
-                            }
-
-                            callback && callback()
-                        } else {
-                            if (_this.getEntPortraitInfoTimes < 5) {
-                                _this.getEntPortrait()
-                            }
-                        }
-                    }
-                },
-                error: function (error) {
-                    _this.$toast('请求失败')
-                }
-            })
+          }
         },
-        // 企业画像访问量查询
-        getEntVisits: function() {
-            let _this = this
-            $.ajax({
-                type: "POST",
-                url: "/bigmember/portrait/subVipPortrait/usage",
-                data: {
-                    entId: _this.entInfo.id
-                },
-                success: function (res) {
-                    console.log(res)
-                    if(res.error_code == 0) {
-                        if(res.data) {
-                            _this.entvisit = res.data
-                        }
-                    }
-                }
-            });
+        error: function (error) {
+          _this.$toast('请求失败')
+        }
+      })
+    },
+    // 企业画像访问量查询
+    getEntVisits: function () {
+      let _this = this
+      $.ajax({
+        type: "POST",
+        url: "/bigmember/portrait/subVipPortrait/usage",
+        data: {
+          entId: _this.entInfo.id
         },
-        // 获取项目动态
-        getProjectNews: function () {
-            var _this = this
-            var data = {
-                entId: _this.entInfo.id,
-                count: _this.topProject.count,
-                pageSign: _this.topProject.pageSign
-            }
-
-            if (data.pageSign) {
-                this.loading = this.showLoading()
-            }
-
-            var urls = ''
-            if (this.isVip) {
-                urls = '/bigmember/portrait/subVipPortrait/winnerNewMsg'
-            } else {
-                urls = '/bigmember/portrait/winner/getNewMsg'
+        success: function (res) {
+          if (res.error_code == 0) {
+            if (res.data) {
+              // res.data.provin = 1
+              // res.data.total = 1
+              // res.data.usage = 2
+              // res.data.visited = false
+              _this.entvisit = res.data
             }
+          }
+        }
+      });
+    },
+    // 获取项目动态
+    getProjectNews: function () {
+      var _this = this
+      var data = {
+        entId: _this.entInfo.id,
+        count: _this.topProject.count,
+        pageSign: _this.topProject.pageSign
+      }
 
-            $.ajax({
-                type: 'POST',
-                url: urls,
-                data: data,
-                success: function (res) {
-                    if (res.error_code == 0) {
-                        _this.loading.clear()
-                        _this.topProject.count = res.data.count
-                        if (res.data.list && $.isArray(res.data.list)) {
-                            if (!_this.topProject.pageSign) {
-                                _this.singleTab = false
-                            }
+      if (data.pageSign) {
+        this.loading = this.showLoading()
+      }
 
-                            // 修改当前pageSign值
-                            if (!_this.topProject.pageSign) {
-                                _this.topProject.list = []
-                                _this.topProject.pageSign = 'more'
-                                if(res.data.count <= 3) {
-                                    _this.topProject.showGetNextButton = false
-                                }
-                            } else if (_this.topProject.pageSign === 'more') {
-                                _this.topProject.pageSign = 'max'
-                                if(res.data.count <= 23) {
-                                    _this.topProject.showGetNextButton = false
-                                }
-                            } else if (_this.topProject.pageSign === 'max') {
-                                _this.topProject.showGetNextButton = false
-                            }
+      var urls = ''
+      // 判断专家版、智慧版; 商机版和自定义版时判断是不是超级订阅 
+      if (_this.powerInfo.memberStatus > 0 && _this.powerInfo.memberStatus <= 2) {
+        urls = '/bigmember/portrait/winner/getNewMsg'
+      } else if (_this.powerInfo.memberStatus > 2) {
+        if (_this.isVip) {
+          console.log(_this.entvisit.total,_this.entvisit.usage)
+          if (_this.entvisit.total <= _this.entvisit.usage && !_this.entvisit.visited) {
+            urls = '/bigmember/portrait/winner/getNewMsg'
+          } else {
+            urls = '/bigmember/portrait/subVipPortrait/winnerNewMsg'
+          }
+        } else {
+          urls = '/bigmember/portrait/winner/getNewMsg'
+        }
+      } else {
+        urls = '/bigmember/portrait/subVipPortrait/winnerNewMsg'
+      }
+      $.ajax({
+        type: 'POST',
+        url: urls,
+        data: data,
+        success: function (res) {
+          if (res.error_code == 0) {
+            _this.loading.clear()
+            _this.topProject.count = res.data.count
+            if (res.data.list && $.isArray(res.data.list)) {
+              if (!_this.topProject.pageSign) {
+                _this.singleTab = false
+              }
 
-                            _this.topProject.list = _this.topProject.list.concat(res.data.list)
-                        }
-                    } else {
-                        _this.$toast(res.error_msg)
-                    }
-                },
-                error: function (error) {
-                    _this.$toast('请求失败')
-                }
-            })
-        },
-        // 查询企业基础信息
-        getEntBaseInfo: function () {
-            var _this = this
-            let urls = ''
-            if(_this.powerInfo.memberStatus <= 0 || _this.svip) {
-                urls = '/bigmember/portrait/subVipPortrait/entDetail'
-            } else {
-                urls = '/bigmember/portrait/ent/detail'
-            }
-            $.ajax({
-                type: 'POST',
-                url: urls,
-                data: {
-                    entId: _this.entInfo.id
-                },
-                success: function (res) {
-                    if (res.error_code == 0) {
-                        _this.loading.clear()
-                        if (res.data && Object.keys(res.data).length !== 0) {
-                            _this.entInfo.name = res.data.entName
-                            for (var key in res.data) {
-                                _this.entBaseInfo[key] = res.data[key]
-                            }
-                        }
-                    } else {
-                        // 不显示提示信息
-                        // _this.$toast(res.error_msg)
-                    }
-                },
-                error: function (error) {
-                    console.log(error)
+              // 修改当前pageSign值
+              if (!_this.topProject.pageSign) {
+                _this.topProject.list = []
+                _this.topProject.pageSign = 'more'
+                if (res.data.count <= 3) {
+                  _this.topProject.showGetNextButton = false
                 }
-            })
-        },
-        // 查询企业是否存在和企业关注状态
-        getEntFollowState: function () {
-            var _this = this
-            _this.entInfo.followSearchFinish = false
-            $.ajax({
-                type: 'POST',
-                url: '/bigmember/follow/ent/followCheck',
-                data: {
-                  entId: _this.entInfo.id
-                },
-                success: function (res) {
-                    if (res.error_code == 0) {
-                        _this.entInfo.followSearchFinish = true
-                        if (res.data) {
-                            _this.entInfo.follow = !!res.data.followed
-                            _this.entInfo.entExist = !!res.data.isShow
-                        } else {
-                            _this.entInfo.entExist = false
-                        }
-                    } else {
-                        _this.$toast(res.error_msg)
-                    }
-                },
-                error: function (error) {
-                    console.log(error)
+              } else if (_this.topProject.pageSign === 'more') {
+                _this.topProject.pageSign = 'max'
+                if (res.data.count <= 23) {
+                  _this.topProject.showGetNextButton = false
                 }
-            })
-        },
-        changeFollowState: function () {
-            var _this = this
-            if (this.entInfo.follow) {
-                this.$dialog.confirm({
-                    title: '提示信息',
-                    message: '取消对“' + _this.entInfo.name + '”的关注?',
-                    confirmButtonColor: '#2cb7ca'
-                }).then(function () {
-                    _this.changeFollowStateRequest()
-                })
-                .catch(function () {
-                    console.log('取消操作')
-                })
-            } else {
-                this.changeFollowStateRequest()
+              } else if (_this.topProject.pageSign === 'max') {
+                _this.topProject.showGetNextButton = false
+              }
+
+              _this.topProject.list = _this.topProject.list.concat(res.data.list)
             }
+          } else {
+            _this.$toast(res.error_msg)
+          }
         },
-        // 获取权限信息
-        getPowerInfo: function () {
-            var _this = this
-            this.loading = this.showLoading()
-            $.ajax({
-                type: 'GET',
-                url: '/bigmember/use/isAdd',
-                success: function (res) {
-                    if (res.error_code == 0) {
-                        _this.conf.powerLoaded = true
-                        if (res.data) {
-                            _this.powerInfo = res.data
-                        }
-                        if (res.data && $.isArray(res.data.power)) {
-                            // 显示完整企业画像(不完整的企业画像只有中标动态)
-                            // _this.conf.showPortraitAll = true
-                            // 根据power判断权限,企业画像包含权限(4,12,13)
-                            var power = res.data.power
-                            if (res.data.viper) {
-                                _this.isVip = true
-                            }
-                            if (power.indexOf(4) != -1 || res.data.viper) {
-                                // 获取企业画像信息-4
-                                _this.conf._4 = true
-                            }
-                            if (power.indexOf(13) != -1 || res.data.viper) {
-                                // 获取企业中标动态-13
-                                _this.conf._13 = true
-                            }
-                            if (power.indexOf(12) != -1) {
-                                // 获取企业情报历史记录-12
-                                _this.conf._12 = true
-                            }
-                            // follow的权限:4.12.13只要有一个就可以
-                            if (res.data.memberStatus > 0 && (power.indexOf(4) != -1||power.indexOf(12) != -1||power.indexOf(13) != -1)) {
-                                _this.getEntFollowState()
-                            } else {
-                                _this.entInfo.followSearchFinish = true
-                                _this.entInfo.entExist = false
-                                _this.getEntVisits()
-                                _this.portrait = 'winnerVip'
-                            }
-                            _this.singleTab = false
-                        }
-                        
-                        if (res.data.vipStatus > 0) {
-                            if (!res.data.viper) {
-                                _this.bidcollPowerInfo.text = '升级'
-                                _this.bidcollPowerInfo.btntext = '去升级'
-                                _this.bidcollPowerInfo.vip = 1
-                            }
-                        }
-                        _this.conf.isMember = res.data.memberStatus
-                    } else {
-                        _this.$toast(res.error_msg)
-                    }
-                },
-                complete: function () {
-                    if (_this.loading) {
-                        _this.loading.clear()
-                    }
-                },
-                error: function (error) {
-                    console.log(error)
-                }
-            })
+        error: function (error) {
+          _this.$toast('请求失败')
+        }
+      })
+    },
+    // 查询企业基础信息
+    getEntBaseInfo: function () {
+      var _this = this
+      let urls = ''
+      if (_this.powerInfo.memberStatus <= 0 || _this.svip) {
+        urls = '/bigmember/portrait/subVipPortrait/entDetail'
+      } else {
+        urls = '/bigmember/portrait/ent/detail'
+      }
+      $.ajax({
+        type: 'POST',
+        url: urls,
+        data: {
+          entId: _this.entInfo.id
         },
-        // 修改企业关注状态
-        changeFollowStateRequest: function () {
-            var _this = this
-            var loading = this.showLoading()
-            var urls = {
-                addFollow: '/bigmember/follow/ent/addFollow',
-                delFollow: '/bigmember/follow/ent/delFollow'
+        success: function (res) {
+          if (res.error_code == 0) {
+            _this.loading.clear()
+            if (res.data && Object.keys(res.data).length !== 0) {
+              _this.entInfo.name = res.data.entName
+              for (var key in res.data) {
+                _this.entBaseInfo[key] = res.data[key]
+              }
             }
-            var url = !!this.entInfo.follow ? urls.delFollow : urls.addFollow
-            $.ajax({
-                type: 'POST',
-                url: url,
-                data: {
-                  entId: _this.entInfo.id
-                },
-                success: function (res) {
-                    if (res.error_code == 0) {
-                        // 清除上个页面缓存
-                     sessionStorage.removeItem('$data-ent_follow')
-                        loading.clear()
-                        if (res.data && res.data == 'success') {
-                            _this.entInfo.follow = !_this.entInfo.follow
-                        }
-
-                        if (!_this.entInfo.follow) {
-                            history.back()
-                        }
-                    } else {
-                        _this.showToast(res.error_msg)
-                    }
-                },
-                error: function (error) {
-                    console.log(error)
-                }
-            })
+          } else {
+            // 不显示提示信息
+            // _this.$toast(res.error_msg)
+          }
         },
-        // 初始化图标数据
-        initChartsData: function () {
-            var dataSet = this.entPortraitInfo
-            // 初始化 年度项目统计数据
-            this.arrangeAnnualData(dataSet.yearData)
-            // 初始化 月度统计数据
-            this.arrangeMonthZbData(dataSet.monthData)
-            // 初始化 地图数据
-            this.arrangeMapData(dataSet.areaData)
-            // 初始化 平局折扣率数据
-            this.arrangeRateData(dataSet.rate)
-            // 初始化 饼图 客户类型分布
-            this.initPieChartData(dataSet.top10)
-            // 初始化 重要客户数据
-            this.arrangeImportantData(dataSet.topShow)
-        },
-        getStickyTop: function () {
-            this.stickyTop = $('.jy-app-header').height() - 1
+        error: function (error) {
+          console.log(error)
+        }
+      })
+    },
+    // 查询企业是否存在和企业关注状态
+    getEntFollowState: function () {
+      var _this = this
+      _this.entInfo.followSearchFinish = false
+      $.ajax({
+        type: 'POST',
+        url: '/bigmember/follow/ent/followCheck',
+        data: {
+          entId: _this.entInfo.id
         },
-        goToEntHistory: function () {
-            // if (this.powerInfo.isSubCount) {
-            //     return this.showToast('子账号无法使用企业情报监控')
-            // }
-
-            this.savePageState()
-            var info = {
-                anchor: '企业情报监控'
+        success: function (res) {
+          if (res.error_code == 0) {
+            _this.entInfo.followSearchFinish = true
+            if (res.data) {
+              _this.entInfo.follow = !!res.data.followed
+              _this.entInfo.entExist = !!res.data.isShow
+            } else {
+              _this.entInfo.entExist = false
             }
-            sessionStorage.setItem('landinfo',JSON.stringify(info))
-            location.href = './ent_portrait_change?eId=' + encodeURIComponent(this.entInfo.id)
+          } else {
+            _this.$toast(res.error_msg)
+          }
         },
-        // 修改年度项目统计里点击浮窗显示效果
-        formatter: function (params) {
-            //移除重复的数据
-            for (var i = 0; i < params.length; i++) {
-                for (var j = params.length - 1; j > i; j--) {
-                    if (params[j].data == params[i].data) {
-                        params.splice(j, 1);
-                        break;
-                    }
-                }
+        error: function (error) {
+          console.log(error)
+        }
+      })
+    },
+    changeFollowState: function () {
+      var _this = this
+      if (this.entInfo.follow) {
+        this.$dialog.confirm({
+          title: '提示信息',
+          message: '取消对“' + _this.entInfo.name + '”的关注?',
+          confirmButtonColor: '#2cb7ca'
+        }).then(function () {
+          _this.changeFollowStateRequest()
+        })
+          .catch(function () {
+            console.log('取消操作')
+          })
+      } else {
+        this.changeFollowStateRequest()
+      }
+    },
+    // 获取权限信息
+    getPowerInfo: function () {
+      var _this = this
+      this.loading = this.showLoading()
+      $.ajax({
+        type: 'GET',
+        url: '/bigmember/use/isAdd',
+        success: function (res) {
+          if (res.error_code == 0) {
+            _this.conf.powerLoaded = true
+            if (res.data) {
+              _this.powerInfo = res.data
             }
-            var tip = '';
-            for (var i = 0; i < params.length; i++) {
-                // 因柱状图颜色为渐变色,此处获取到的柱状图颜色,css不能识别,需单独设置小圆点的颜色
-                params[0].marker = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#2ABED1"></span>'
-                if( i=== 0) {
-                    tip = tip + params[i].marker + params[i].seriesName + ':' + params[i].value + '个' + '<br/>';
-                }else if(i == 1){
-                    tip = tip + params[i].marker + params[i].seriesName + ':' + params[i].value + '万元' + '<br/>';
-                }
+            if (res.data && $.isArray(res.data.power)) {
+              // 显示完整企业画像(不完整的企业画像只有中标动态)
+              // _this.conf.showPortraitAll = true
+              // 根据power判断权限,企业画像包含权限(4,12,13)
+              var power = res.data.power
+              if (res.data.viper) {
+                _this.isVip = true
+              }
+              if (power.indexOf(4) != -1 || res.data.viper) {
+                // 获取企业画像信息-4
+                _this.conf._4 = true
+              }
+              if (power.indexOf(13) != -1 || res.data.viper) {
+                // 获取企业中标动态-13
+                _this.conf._13 = true
+              }
+              if (power.indexOf(12) != -1) {
+                // 获取企业情报历史记录-12
+                _this.conf._12 = true
+              }
+              // follow的权限:4.12.13只要有一个就可以
+              if (res.data.memberStatus > 0 && (power.indexOf(4) != -1 || power.indexOf(12) != -1 || power.indexOf(13) != -1)) {
+                _this.getEntFollowState()
+              } else {
+                _this.entInfo.followSearchFinish = true
+                _this.entInfo.entExist = false
+                // _this.getEntVisits()
+                _this.portrait = 'winnerVip'
+              }
+              _this.singleTab = false
             }
-            tip += '<div style="padding-top:2px;text-align:center;color:#9B9CA3;">' + ' - ' + params[0].name + ' - ' + '</div>'
-            return tip;
-        },
-        // 1. 年度项目统计图表单独配置
-        annualConfig: function (options) {
-            var that = this;
-            options.grid.bottom = 60
-            options.tooltip.axisPointer.shadowStyle.color = 'rgba(42, 190, 209,0.1)' // 修改点击柱条后背景颜色
-            options.legend.show = true // 显示底部数量、金额、圆点
-            options.yAxis[1].axisLabel.show = true; // 显示右侧y轴刻度
-            options.yAxis[1].axisLabel.formatter = function(value, index) {
-                return value.toString().replace(/,/, '')
-            }  // 去掉右轴逗号分割
-            options.series[1].lineStyle.width = 2 // 折线
-            options.series[1].lineStyle.color = '#FF9F40'
-            // 以下代码为:处理左侧y轴与右侧y轴刻度保持在同一X轴水平线上
-            var maxCountList = this.annualData.rows.map(function(v){
-                return v['项目数量']
-            })
-            var maxPriceList = this.annualData.rows.map(function(v){
-                return v['项目金额']
-            })
-
-            var maxCount = Math.ceil(Math.max.apply(null,maxCountList)).toString();// 取出数量中最大值
-            var maxPrice = Math.ceil(Math.max.apply(null,maxPriceList)).toString();// 取出金额中最大值
-            // var minPrice = Math.min.apply(null,maxPriceList);// 去除金额最小值
-            maxPrice = Math.ceil(maxPrice / (Math.pow(10,maxPrice.length -1))) * Math.pow(10,maxPrice.length -1)
-            maxCount = Math.ceil(maxCount / (Math.pow(10,maxCount.length -1))) * Math.pow(10,maxCount.length -1)
-            var item = options.yAxis
-            item[0].min = 0;
-            item[1].min = 0;
-            item[0].max = maxCount;
-            item[0].interval = Math.ceil(maxCount / 5);
-            item[1].max = maxPrice;
-            item[1].interval = Math.ceil((maxPrice - 0) / 5);
 
-            // 处理点击浮窗显示效果
-            options.tooltip.formatter = function(params) {
-                return that.formatter(params)
+            if (res.data.vipStatus > 0) {
+              if (!res.data.viper) {
+                _this.bidcollPowerInfo.text = '升级'
+                _this.bidcollPowerInfo.btntext = '去升级'
+                _this.bidcollPowerInfo.vip = 1
+              }
             }
-            options.legend.formatter = function (name) {
-                var wnYuan = ['金额', '项目金额']
-                var ge = ['数量', '项目数量']
-                if (wnYuan.indexOf(name) !== -1) {
-                    name += '(万元)-右轴'
-                } else if (ge.indexOf(name) !== -1) {
-                    name += '(个)'
-                }
-                return name;
-            }
-            return options
+            _this.conf.isMember = res.data.memberStatus
+            _this.conf.arr = res.data.power
+            _this.conf.vipStatus = res.data.vipStatus
+            _this.getDataFn()
+          } else {
+            _this.$toast(res.error_msg)
+          }
         },
-        // 2. 月度中标金额(折线图)
-        lineChartConfig: function (options) {
-            options.yAxis[0].name = '中标金额(万元)';
-            options.legend.itemGap = 20;
-            options.tooltip.formatter = function(params) {
-                var tip = '';
-                for (var i = 0; i < params.length; i++) {
-                    params[i].marker = '<span style="display:inline-block;margin-right:5px;border-radius:8px;width:8px;height:8px;background-color:' + params[i].color + ';"></span>'
-                    if(params[i].value[1] !== undefined && params[i].value[1] !== null && !isNaN(params[i].value[1])) {
-                        tip = tip + params[i].marker + params[i].seriesName + params[i].name + '中标金额:' + params[i].value[1].toString().replace(/,/,'') + '万元' +'<br/>';
-                    }
-                }
-                tip += '<div style="padding-top:2px;text-align:center;color:#9B9CA3;">' + ' - ' + params[0].name + ' - ' + '</div>'
-                return tip;
-            }
-            return options;
+        complete: function () {
+          if (_this.loading) {
+            _this.loading.clear()
+          }
         },
-        // 3. 地图配置项
-        mapConfig: function (options) {
-            var _this = this
-            var arr = this.mapChartData.rows
-            // 最大值、最小值
-            var maxNum = Math.max.apply(Math, arr.map(function(o) {return o.value}))
-            var minNum = Math.min.apply(Math, arr.map(function(o) {return o.value}))
-
-            options.visualMap.min = minNum;
-            options.visualMap.max = maxNum < 100 ? 100 : maxNum;
-
-            // 设置最大值
-            options.graphic[options.graphic.length - 1].children[0].style.text = maxNum > 100 ? maxNum : 100
-            options.graphic[options.graphic.length - 1].children[1].style.text = 1;
-            options.visualMap.min = 1;
-            options.visualMap.max = maxNum < 100 ? 100 : maxNum;
-            options.graphic[0].children[0].style.text = '项目数量(个)'
-            options.tooltip.formatter = function (params) {
-                var index = params.dataIndex
-                var item = _this.mapChartData.rows[index]
-                var string = ''
-                if (item) {
-                    if (item.value && item.amount) {
-                        string = item.name + '<br/>项目数量:' + item.value + '个<br/>中标金额:' + item.amount + '万元'
-                    } else if (item.value) {
-                        string = item.name + '<br/>项目数量:' + item.value + '个'
-                    } else if (item.amount) {
-                        string = item.name + '<br/>中标金额:' + item.amount + '万元'
-                    }
-                }
-                return string
-            }
-            return options
+        error: function (error) {
+          console.log(error)
+        }
+      })
+    },
+    // 修改企业关注状态
+    changeFollowStateRequest: function () {
+      var _this = this
+      var loading = this.showLoading()
+      var urls = {
+        addFollow: '/bigmember/follow/ent/addFollow',
+        delFollow: '/bigmember/follow/ent/delFollow'
+      }
+      var url = !!this.entInfo.follow ? urls.delFollow : urls.addFollow
+      $.ajax({
+        type: 'POST',
+        url: url,
+        data: {
+          entId: _this.entInfo.id
         },
-        // 4. 客户平均折扣率配置
-        rateConfig: function (options) {
-            options.color = ['#FB483D', '#05A6F3', '#0BD991', '#FF9F40','#8E6DF2','#C0C4CC'];
-            options.xAxis[0].axisLabel.margin = 12
-            options.yAxis[0].axisLabel.formatter = '{value}%'
-            options.grid = {
-                top: 20,
-                right: 16,
-                bottom: 70,
-                left: 10
+        success: function (res) {
+          if (res.error_code == 0) {
+            // 清除上个页面缓存
+            sessionStorage.removeItem('$data-ent_follow')
+            loading.clear()
+            if (res.data && res.data == 'success') {
+              _this.entInfo.follow = !_this.entInfo.follow
             }
-            options.legend.textStyle.padding = [0, 18, 0,0];
-            options.legend.left = 16;
-            options.legend.bottom = 10;
-            options.tooltip.formatter = function(params) {
-                var tip = '';
-                for (var i = 0; i < params.length; i++) {
-                    params[i].marker = '<span style="display:inline-block;margin-right:5px;border-radius:8px;width:8px;height:8px;background-color:' + params[i].color + ';"></span>'
-                    if(params[i].value[1] === undefined || params[i].value[1] == null) {
-                        tip = tip + params[i].marker + params[i].seriesName + ':--<br/>';
-                    } else {
-                        tip = tip + params[i].marker + params[i].seriesName + ':' + params[i].value[1] + '%<br/>';
-                    }
-                }
-                tip += '<div style="padding-top:2px;text-align:center;color:#9B9CA3;">' + ' - ' + params[0].name + ' - ' + '</div>'
-                return tip;
+
+            if (!_this.entInfo.follow) {
+              history.back()
             }
-            return options;
+          } else {
+            _this.showToast(res.error_msg)
+          }
         },
-        // 整理年度项目统计数据
-        arrangeAnnualData: function (data) {
-            if (!data) return
+        error: function (error) {
+          console.log(error)
+        }
+      })
+    },
+    // 初始化图标数据
+    initChartsData: function () {
+      var dataSet = this.entPortraitInfo
+      // 初始化 年度项目统计数据
+      this.arrangeAnnualData(dataSet.yearData)
+      // 初始化 月度统计数据
+      this.arrangeMonthZbData(dataSet.monthData)
+      // 初始化 地图数据
+      this.arrangeMapData(dataSet.areaData)
+      // 初始化 平局折扣率数据
+      this.arrangeRateData(dataSet.rate)
+      // 初始化 饼图 客户类型分布
+      this.initPieChartData(dataSet.top10)
+      // 初始化 重要客户数据
+      this.arrangeImportantData(dataSet.topShow)
+    },
+    getStickyTop: function () {
+      this.stickyTop = '21.33333vw'
+    },
+    goToEntHistory: function () {
+      // if (this.powerInfo.isSubCount) {
+      //     return this.showToast('子账号无法使用企业情报监控')
+      // }
 
-            var rows = [];
-            var count = 0;
-            for (var key in data) {
-                var item = data[key]
-                // 统计数据总数是否为0
-                count += item.Count
-                count += item.Money
-                rows.push({
-                    '日期': parseInt(key),
-                    '项目数量': item.Count,
-                    '项目金额': Math.round(item.Money / 10000)
-                })
-            }
+      this.savePageState()
+      var info = {
+        anchor: '企业情报监控'
+      }
+      sessionStorage.setItem('landinfo', JSON.stringify(info))
+      location.href = './ent_portrait_change?eId=' + encodeURIComponent(this.entInfo.id)
+    },
+    // 修改年度项目统计里点击浮窗显示效果
+    formatter: function (params) {
+      //移除重复的数据
+      for (var i = 0; i < params.length; i++) {
+        for (var j = params.length - 1; j > i; j--) {
+          if (params[j].data == params[i].data) {
+            params.splice(j, 1);
+            break;
+          }
+        }
+      }
+      var tip = '';
+      for (var i = 0; i < params.length; i++) {
+        // 因柱状图颜色为渐变色,此处获取到的柱状图颜色,css不能识别,需单独设置小圆点的颜色
+        params[0].marker = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#2ABED1"></span>'
+        if (i === 0) {
+          tip = tip + params[i].marker + params[i].seriesName + ':' + params[i].value + '个' + '<br/>';
+        } else if (i == 1) {
+          tip = tip + params[i].marker + params[i].seriesName + ':' + params[i].value + '万元' + '<br/>';
+        }
+      }
+      tip += '<div style="padding-top:2px;text-align:center;color:#9B9CA3;">' + ' - ' + params[0].name + ' - ' + '</div>'
+      return tip;
+    },
+    // 1. 年度项目统计图表单独配置
+    annualConfig: function (options) {
+      var that = this;
+      options.grid.bottom = 60
+      options.tooltip.axisPointer.shadowStyle.color = 'rgba(42, 190, 209,0.1)' // 修改点击柱条后背景颜色
+      options.legend.show = true // 显示底部数量、金额、圆点
+      options.yAxis[1].axisLabel.show = true; // 显示右侧y轴刻度
+      options.yAxis[1].axisLabel.formatter = function (value, index) {
+        return value.toString().replace(/,/, '')
+      }  // 去掉右轴逗号分割
+      options.series[1].lineStyle.width = 2 // 折线
+      options.series[1].lineStyle.color = '#FF9F40'
+      // 以下代码为:处理左侧y轴与右侧y轴刻度保持在同一X轴水平线上
+      var maxCountList = this.annualData.rows.map(function (v) {
+        return v['项目数量']
+      })
+      var maxPriceList = this.annualData.rows.map(function (v) {
+        return v['项目金额']
+      })
 
-            // rows = utils.bSort(rows, '日期').reverse()
-            rows = utils.bSort(rows, '日期')
+      var maxCount = Math.ceil(Math.max.apply(null, maxCountList)).toString();// 取出数量中最大值
+      var maxPrice = Math.ceil(Math.max.apply(null, maxPriceList)).toString();// 取出金额中最大值
+      // var minPrice = Math.min.apply(null,maxPriceList);// 去除金额最小值
+      maxPrice = Math.ceil(maxPrice / (Math.pow(10, maxPrice.length - 1))) * Math.pow(10, maxPrice.length - 1)
+      maxCount = Math.ceil(maxCount / (Math.pow(10, maxCount.length - 1))) * Math.pow(10, maxCount.length - 1)
+      var item = options.yAxis
+      item[0].min = 0;
+      item[1].min = 0;
+      item[0].max = maxCount;
+      item[0].interval = Math.ceil(maxCount / 5);
+      item[1].max = maxPrice;
+      item[1].interval = Math.ceil((maxPrice - 0) / 5);
 
-            // 数据总量为0,不赋值
-            if (count != 0) {
-                this.annualData.rows = rows;
-            }
-        },
-        // 整理月度项目统计数据
-        arrangeMonthZbData: function (data) {
-            if (!data) return
-            var rows = []
-            var columns = ['月份']
-            var count = 0
-            var allNum = []
-            // 1. 先将月份提取出来, 并排序
-            var yearArr = []
-            for (var key in data) {
-                yearArr.push(parseInt(key))
-                for (var n in data[key]) {
-                  allNum.push(data[key][n])
-                }
-            }
-            yearArr.sort(function (a, b) { return a - b })
+      // 处理点击浮窗显示效果
+      options.tooltip.formatter = function (params) {
+        return that.formatter(params)
+      }
+      options.legend.formatter = function (name) {
+        var wnYuan = ['金额', '项目金额']
+        var ge = ['数量', '项目数量']
+        if (wnYuan.indexOf(name) !== -1) {
+          name += '(万元)-右轴'
+        } else if (ge.indexOf(name) !== -1) {
+          name += '(个)'
+        }
+        return name;
+      }
+      return options
+    },
+    // 2. 月度中标金额(折线图)
+    lineChartConfig: function (options) {
+      options.yAxis[0].name = '中标金额(万元)';
+      options.legend.itemGap = 20;
+      options.tooltip.formatter = function (params) {
+        var tip = '';
+        for (var i = 0; i < params.length; i++) {
+          params[i].marker = '<span style="display:inline-block;margin-right:5px;border-radius:8px;width:8px;height:8px;background-color:' + params[i].color + ';"></span>'
+          if (params[i].value[1] !== undefined && params[i].value[1] !== null && !isNaN(params[i].value[1])) {
+            tip = tip + params[i].marker + params[i].seriesName + params[i].name + '中标金额:' + params[i].value[1].toString().replace(/,/, '') + '万元' + '<br/>';
+          }
+        }
+        tip += '<div style="padding-top:2px;text-align:center;color:#9B9CA3;">' + ' - ' + params[0].name + ' - ' + '</div>'
+        return tip;
+      }
+      return options;
+    },
+    // 3. 地图配置项
+    mapConfig: function (options) {
+      var _this = this
+      var arr = this.mapChartData.rows
+      // 最大值、最小值
+      var maxNum = Math.max.apply(Math, arr.map(function (o) { return o.value }))
+      var minNum = Math.min.apply(Math, arr.map(function (o) { return o.value }))
 
-            // 2. 循环12个月份,并进行处理
-            yearArr.forEach(function (item) {
-                columns.push(item + '年')
-            })
-            for (var i = 1; i <= 12; i++) {
-                var columnsItem = {}
-                columns.forEach(function (item) {
-                    var value = ''
-                    if (item == '月份') {
-                        value = i + '月'
-                    } else if (/年/g.test(item)) {
-                        if (data[item.slice(0, -1)]) {
-                            value = data[item.slice(0, -1)][i]
-                            value = (value / 10000).fixed(2)
-                            count += parseInt(value)
-                        }
-                    }
-                    columnsItem[item] = value
-                })
-                rows.push(columnsItem)
-            }
-            var maxNum = Math.max.apply(Math, allNum.map(function(o) { return o }))
-            // 数据总量为0,不赋值
-            if (count != 0 && maxNum !== 0) {
-                this.monthZbData.columns = columns;
-                this.monthZbData.rows = rows;
-            }
-        },
-        // 整理主要市场分布(中国地图)数据
-        arrangeMapData: function(data) {
-            if (!data) return
+      options.visualMap.min = minNum;
+      options.visualMap.max = maxNum < 100 ? 100 : maxNum;
 
-            var mapRows = []
-            var count = 0
-            if (data && $.isArray(data)) {
-                data.forEach(function (n) {
-                    count += n.projectCount
+      // 设置最大值
+      options.graphic[options.graphic.length - 1].children[0].style.text = maxNum > 100 ? maxNum : 100
+      options.graphic[options.graphic.length - 1].children[1].style.text = 1;
+      options.visualMap.min = 1;
+      options.visualMap.max = maxNum < 100 ? 100 : maxNum;
+      options.graphic[0].children[0].style.text = '项目数量(个)'
+      options.tooltip.formatter = function (params) {
+        var index = params.dataIndex
+        var item = _this.mapChartData.rows[index]
+        var string = ''
+        if (item) {
+          if (item.value && item.amount) {
+            string = item.name + '<br/>项目数量:' + item.value + '个<br/>中标金额:' + item.amount + '万元'
+          } else if (item.value) {
+            string = item.name + '<br/>项目数量:' + item.value + '个'
+          } else if (item.amount) {
+            string = item.name + '<br/>中标金额:' + item.amount + '万元'
+          }
+        }
+        return string
+      }
+      return options
+    },
+    // 4. 客户平均折扣率配置
+    rateConfig: function (options) {
+      options.color = ['#FB483D', '#05A6F3', '#0BD991', '#FF9F40', '#8E6DF2', '#C0C4CC'];
+      options.xAxis[0].axisLabel.margin = 12
+      options.yAxis[0].axisLabel.formatter = '{value}%'
+      options.grid = {
+        top: 20,
+        right: 16,
+        bottom: 70,
+        left: 10
+      }
+      options.legend.textStyle.padding = [0, 18, 0, 0];
+      options.legend.left = 16;
+      options.legend.bottom = 10;
+      options.tooltip.formatter = function (params) {
+        var tip = '';
+        for (var i = 0; i < params.length; i++) {
+          params[i].marker = '<span style="display:inline-block;margin-right:5px;border-radius:8px;width:8px;height:8px;background-color:' + params[i].color + ';"></span>'
+          if (params[i].value[1] === undefined || params[i].value[1] == null) {
+            tip = tip + params[i].marker + params[i].seriesName + ':--<br/>';
+          } else {
+            tip = tip + params[i].marker + params[i].seriesName + ':' + params[i].value[1] + '%<br/>';
+          }
+        }
+        tip += '<div style="padding-top:2px;text-align:center;color:#9B9CA3;">' + ' - ' + params[0].name + ' - ' + '</div>'
+        return tip;
+      }
+      return options;
+    },
+    // 整理年度项目统计数据
+    arrangeAnnualData: function (data) {
+      if (!data) return
 
-                    mapRows.push({
-                        name: n.areaName,
-                        value: n.projectCount,
-                        amount: (n.bidamountCount / 10000).fixed(2)
-                    })
-                })
-            }
+      var rows = [];
+      var count = 0;
+      for (var key in data) {
+        var item = data[key]
+        // 统计数据总数是否为0
+        count += item.Count
+        count += item.Money
+        rows.push({
+          '日期': parseInt(key),
+          '项目数量': item.Count,
+          '项目金额': Math.round(item.Money / 10000)
+        })
+      }
 
-            // 数据总量为0,不赋值
-            if (count != 0) {
-                this.mapChartData.rows = mapRows;
-            }
-        },
-        // 整理平均折扣率数据
-        arrangeRateData: function (data) {
-            if (!data) return
-            var rows = []
-            var columns = ['日期', '全部客户']
-            var count = 0
+      // rows = utils.bSort(rows, '日期').reverse()
+      rows = utils.bSort(rows, '日期')
 
-            for (var c in data) {
-                if (c !== '全部客户') {
-                    columns.push(c)
-                }
-            }
-            // 获取年份数组
-            var yearArr = []
-            for (var key in data['全部客户']) {
-                yearArr.push(key)
+      // 数据总量为0,不赋值
+      if (count != 0) {
+        this.annualData.rows = rows;
+      }
+    },
+    // 整理月度项目统计数据
+    arrangeMonthZbData: function (data) {
+      if (!data) return
+      var rows = []
+      var columns = ['月份']
+      var count = 0
+      var allNum = []
+      // 1. 先将月份提取出来, 并排序
+      var yearArr = []
+      for (var key in data) {
+        yearArr.push(parseInt(key))
+        for (var n in data[key]) {
+          allNum.push(data[key][n])
+        }
+      }
+      yearArr.sort(function (a, b) { return a - b })
+
+      // 2. 循环12个月份,并进行处理
+      yearArr.forEach(function (item) {
+        columns.push(item + '年')
+      })
+      for (var i = 1; i <= 12; i++) {
+        var columnsItem = {}
+        columns.forEach(function (item) {
+          var value = ''
+          if (item == '月份') {
+            value = i + '月'
+          } else if (/年/g.test(item)) {
+            if (data[item.slice(0, -1)]) {
+              value = data[item.slice(0, -1)][i]
+              value = (value / 10000).fixed(2)
+              count += parseInt(value)
             }
-            yearArr.sort(function (a, b) { return a - b })
+          }
+          columnsItem[item] = value
+        })
+        rows.push(columnsItem)
+      }
+      var maxNum = Math.max.apply(Math, allNum.map(function (o) { return o }))
+      // 数据总量为0,不赋值
+      if (count != 0 && maxNum !== 0) {
+        this.monthZbData.columns = columns;
+        this.monthZbData.rows = rows;
+      }
+    },
+    // 整理主要市场分布(中国地图)数据
+    arrangeMapData: function (data) {
+      if (!data) return
 
-            yearArr.forEach(function (item) {
-                var rowsItem = {
-                    '日期': item + '年'
-                }
-                for (var k in data) {
-                    count += (data[k][item] * 100)
-                    rowsItem[k] = data[k][item] == null  ? null : (data[k][item] * 100).fixed(2)
-                }
-                rows.push(rowsItem)
-            })
+      var mapRows = []
+      var count = 0
+      if (data && $.isArray(data)) {
+        data.forEach(function (n) {
+          count += n.projectCount
 
-            // 数据总量为0,不赋值
-            if (count != 0) {
-                this.rateData.columns = columns;
-                this.rateData.rows = rows;
-            }
-        },
-        // 初始化饼图
-        initPieChartData: function (d) {
-            if (!d) return
-            var that = this
-            var arr = []
-            var data = JSON.parse(JSON.stringify(d))
-            // 降序排列
-            data.sort(function (a, b) {
-                return b.bidamount_share - a.bidamount_share
-            })
-            data.forEach(function (item){
-              arr.push(item.buyerClass,item.bidamount_share,item.bidamount_count,item.project_count,item.rate_avg)
-            })
-            var normal =['行业','中标金额占比','中标金额','项目数量','平均折扣率'];
-            var newArr = that.arrTrans(5,arr);
-            newArr.unshift(normal)
-            chartOptions.deformPieChart.dataset.source = newArr;
-            chartOptions.deformPieChart.tooltip.formatter = function(params){
-                var tip = '';
-                var data = params.data;
-                params.marker = '<span style="display:inline-block;margin-right:5px;border-radius:8px;width:8px;height:8px;background-color:' + params.color +'"></span>';
-                var percent = '<span style="padding-left:13px;">中标金额占比:' + (data[1]*100).fixed(2) + '%</span></br>';
-                var scale = '<span style="padding-left:13px;">中标金额:' + utils.moneyUnit(data[2].fixed(2)) + '</span></br>';
-                var count = '<span style="padding-left:13px;">项目数量:' + data[3] + '个</span></br>';
-                var rate = (typeof data[4] === 'number' && !isNaN(data[4])) ? '<span style="padding-left:13px;">平均折扣率:' + (data[4]*100).fixed(2) + '%</span></br>' : '';
-                tip = params.marker + params.name +'<br/>' + percent + scale + count + rate
-                return tip;
-            }
-            chartOptions.deformPieChart.legend.formatter = null
-            that.$nextTick(function(){
-                var ref = that.$refs.pieChart;
-                var pieChart = echarts.init(ref, null, that.initEchartsOptions);
-                pieChart.setOption(chartOptions.deformPieChart);
-                pieChart.resize();
+          mapRows.push({
+            name: n.areaName,
+            value: n.projectCount,
+            amount: (n.bidamountCount / 10000).fixed(2)
+          })
+        })
+      }
+
+      // 数据总量为0,不赋值
+      if (count != 0) {
+        this.mapChartData.rows = mapRows;
+      }
+    },
+    // 整理平均折扣率数据
+    arrangeRateData: function (data) {
+      if (!data) return
+      var rows = []
+      var columns = ['日期', '全部客户']
+      var count = 0
+
+      for (var c in data) {
+        if (c !== '全部客户') {
+          columns.push(c)
+        }
+      }
+      // 获取年份数组
+      var yearArr = []
+      for (var key in data['全部客户']) {
+        yearArr.push(key)
+      }
+      yearArr.sort(function (a, b) { return a - b })
+
+      yearArr.forEach(function (item) {
+        var rowsItem = {
+          '日期': item + '年'
+        }
+        for (var k in data) {
+          count += (data[k][item] * 100)
+          rowsItem[k] = data[k][item] == null ? null : (data[k][item] * 100).fixed(2)
+        }
+        rows.push(rowsItem)
+      })
+
+      // 数据总量为0,不赋值
+      if (count != 0) {
+        this.rateData.columns = columns;
+        this.rateData.rows = rows;
+      }
+    },
+    // 初始化饼图
+    initPieChartData: function (d) {
+      if (!d) return
+      var that = this
+      var arr = []
+      var data = JSON.parse(JSON.stringify(d))
+      // 降序排列
+      data.sort(function (a, b) {
+        return b.bidamount_share - a.bidamount_share
+      })
+      data.forEach(function (item) {
+        arr.push(item.buyerClass, item.bidamount_share, item.bidamount_count, item.project_count, item.rate_avg)
+      })
+      var normal = ['行业', '中标金额占比', '中标金额', '项目数量', '平均折扣率'];
+      var newArr = that.arrTrans(5, arr);
+      newArr.unshift(normal)
+      chartOptions.deformPieChart.dataset.source = newArr;
+      chartOptions.deformPieChart.tooltip.formatter = function (params) {
+        var tip = '';
+        var data = params.data;
+        params.marker = '<span style="display:inline-block;margin-right:5px;border-radius:8px;width:8px;height:8px;background-color:' + params.color + '"></span>';
+        var percent = '<span style="padding-left:13px;">中标金额占比:' + (data[1] * 100).fixed(2) + '%</span></br>';
+        var scale = '<span style="padding-left:13px;">中标金额:' + utils.moneyUnit(data[2].fixed(2)) + '</span></br>';
+        var count = '<span style="padding-left:13px;">项目数量:' + data[3] + '个</span></br>';
+        var rate = (typeof data[4] === 'number' && !isNaN(data[4])) ? '<span style="padding-left:13px;">平均折扣率:' + (data[4] * 100).fixed(2) + '%</span></br>' : '';
+        tip = params.marker + params.name + '<br/>' + percent + scale + count + rate
+        return tip;
+      }
+      chartOptions.deformPieChart.legend.formatter = null
+      that.$nextTick(function () {
+        var ref = that.$refs.pieChart;
+        var pieChart = echarts.init(ref, null, that.initEchartsOptions);
+        pieChart.setOption(chartOptions.deformPieChart);
+        pieChart.resize();
+      })
+    },
+    arrTrans: function (num, arr) { // 一维数组转换为二维数组
+      var iconsArr = [];
+      arr.forEach(function (item, index) {
+        var page = Math.floor(index / num); // 计算该元素为第几个素组内
+        if (!iconsArr[page]) { // 判断是否存在
+          iconsArr[page] = [];
+        }
+        iconsArr[page].push(item);
+      });
+      return iconsArr;
+    },
+    // 整理重要客户数据
+    arrangeImportantData: function (data) {
+      if (!data) return
+      var arr = []
+      if ($.isArray(data)) {
+        data.forEach(function (list) {
+          var i1 = {
+            title: list.buyerclass,
+            list: []
+          }
+          if (list.topData && $.isArray(list.topData)) {
+            list.topData.forEach(function (item) {
+              i1.list.push({
+                name: item.BuyerName,
+                money: item.CountMoney,
+                count: item.CountProject,
+                rate: item.AvgRate ? (item.AvgRate * 100).fixed(2) : item.AvgRate,
+                time: new Date(item.lastTime * 1000).pattern('yyyy/MM/dd'),
+                percent: item.CountMoney / list.topData[0].CountMoney * 100 + '%'
+              })
             })
-        },
-        arrTrans: function(num, arr) { // 一维数组转换为二维数组
-            var iconsArr = [];
-            arr.forEach(function(item, index) {
-                var page = Math.floor(index / num); // 计算该元素为第几个素组内
-                if (!iconsArr[page]) { // 判断是否存在
-                    iconsArr[page] = [];
-                }
-                iconsArr[page].push(item);
-            });
-            return iconsArr;
-        },
-        // 整理重要客户数据
-        arrangeImportantData: function (data) {
-            if (!data) return
-            var arr = []
-            if ($.isArray(data)) {
-                data.forEach(function (list) {
-                    var i1 = {
-                        title: list.buyerclass,
-                        list: []
-                    }
-                    if (list.topData && $.isArray(list.topData)) {
-                        list.topData.forEach(function (item) {
-                            i1.list.push({
-                                name: item.BuyerName,
-                                money: item.CountMoney,
-                                count: item.CountProject,
-                                rate: item.AvgRate ? (item.AvgRate*100).fixed(2) : item.AvgRate,
-                                time: new Date(item.lastTime * 1000).pattern('yyyy/MM/dd'),
-                                percent: item.CountMoney / list.topData[0].CountMoney*100 + '%'
-                            })
-                        })
-                    }
+          }
 
-                    if (!list.buyerclass || ($.isArray(list.topData) && list.topData.length === 0)) {
-                        // console.log('此数据为空')
-                    } else {
-                        arr.push(i1)
-                    }
-                })
-            }
-            this.importantCustomers = arr
-        },
-        // 去公告详情页
-        toProjectDetail: function (item) {
-            this.savePageState()
-            if (item.id) {
-                var href = '/jyapp/article/content/' + item.id + '.html'
-                location.href = href
-            }
-        },
-        // 去中标单位画像
-        toUnitPortrayal: function (item) {
-            this.savePageState()
-            if (item.name) {
-                location.href = 'unit_portrayal?entName=' + item.name
-            }
-        },
-        savePageState: function () {
-            this.scrollTop = $('#ent-portrait').scrollTop()
-            var data = {
-                conf: this.conf,
-                tabActiveName: this.tabActiveName,
-                entInfo: this.entInfo,
-                entBaseInfo: this.entBaseInfo,
-                topProject: this.topProject,
-                entPortraitInfo: this.entPortraitInfo,
-                powerInfo: this.powerInfo,
-                singleTab: this.singleTab,
-                scrollTop: this.scrollTop,
-                gotTab2: this.gotTab2
-            }
-            sessionStorage.setItem(this.sessKey, JSON.stringify(data))
-        },
-        reStoreState: function () {
-            var $data = sessionStorage.getItem(this.sessKey)
-            if ($data) {
-                $data = JSON.parse($data)
-                // 如果恢复的企业名称和当前url企业名称不同,则清除缓存,重新请求
-                if (this.entInfo.id !== $data.entInfo.id) {
-                    sessionStorage.removeItem(this.sessKey)
-                    return false
-                }
-                this.tabActiveName = $data.tabActiveName
-                Object.assign(this.conf, $data.conf || {})
-                Object.assign(this.entInfo, $data.entInfo || {})
-                Object.assign(this.entBaseInfo, $data.entBaseInfo || {})
-                Object.assign(this.topProject, $data.topProject || {})
-                Object.assign(this.entPortraitInfo, $data.entPortraitInfo || {})
-                Object.assign(this.powerInfo, $data.powerInfo || {})
-                Object.assign(this.entvisit, $data.entvisit || {})
-                this.singleTab = $data.singleTab
-                this.scrollTop = $data.scrollTop
-                this.gotTab2 = $data.gotTab2
-                sessionStorage.removeItem(this.sessKey)
-            }
-            return !!$data
+          if (!list.buyerclass || ($.isArray(list.topData) && list.topData.length === 0)) {
+            // console.log('此数据为空')
+          } else {
+            arr.push(i1)
+          }
+        })
+      }
+      this.importantCustomers = arr
+    },
+    // 去公告详情页
+    toProjectDetail: function (item) {
+      this.savePageState()
+      if (item.id) {
+        var href = '/jyapp/article/content/' + item.id + '.html'
+        location.href = href
+      }
+    },
+    // 去中标单位画像
+    toUnitPortrayal: function (item) {
+      this.savePageState()
+      if (item.name) {
+        location.href = 'unit_portrayal?entName=' + item.name
+      }
+    },
+    savePageState: function () {
+      this.scrollTop = $('#ent-portrait').scrollTop()
+      var data = {
+        conf: this.conf,
+        tabActiveName: this.tabActiveName,
+        entInfo: this.entInfo,
+        entBaseInfo: this.entBaseInfo,
+        topProject: this.topProject,
+        entPortraitInfo: this.entPortraitInfo,
+        powerInfo: this.powerInfo,
+        singleTab: this.singleTab,
+        scrollTop: this.scrollTop,
+        gotTab2: this.gotTab2
+      }
+      sessionStorage.setItem(this.sessKey, JSON.stringify(data))
+    },
+    reStoreState: function () {
+      var $data = sessionStorage.getItem(this.sessKey)
+      if ($data) {
+        $data = JSON.parse($data)
+        // 如果恢复的企业名称和当前url企业名称不同,则清除缓存,重新请求
+        if (this.entInfo.id !== $data.entInfo.id) {
+          sessionStorage.removeItem(this.sessKey)
+          return false
         }
+        this.tabActiveName = $data.tabActiveName
+        Object.assign(this.conf, $data.conf || {})
+        Object.assign(this.entInfo, $data.entInfo || {})
+        Object.assign(this.entBaseInfo, $data.entBaseInfo || {})
+        Object.assign(this.topProject, $data.topProject || {})
+        Object.assign(this.entPortraitInfo, $data.entPortraitInfo || {})
+        Object.assign(this.powerInfo, $data.powerInfo || {})
+        Object.assign(this.entvisit, $data.entvisit || {})
+        this.singleTab = $data.singleTab
+        this.scrollTop = $data.scrollTop
+        this.gotTab2 = $data.gotTab2
+        sessionStorage.removeItem(this.sessKey)
+      }
+      return !!$data
     }
+  }
 }
 var vueComponent = new Vue(vNode)

+ 26 - 11
src/jfw/modules/app/src/web/staticres/jyapp/css/wxinfocontent.css

@@ -1136,8 +1136,8 @@ ul {
 
 .bigvip_drain{
 	display: flex;
-	align-items: center;
-	justify-content: center;
+	/* align-items: center; */
+	/* justify-content: space-between; */
 	padding: .24rem .3rem;
 	width: 100%;
 	min-height: .96rem;
@@ -1145,19 +1145,34 @@ ul {
 }
 
 .bigvip_drain .bigvip_text{
-    text-align: left;
-	font-size: .34rem;
-	font-family: YouShe;
+  width: 100%;
+  text-align: left;
+	font-size: .26rem;
+	/* font-family: YouShe; */
 	font-weight: 400;
-	color: #ffffff;
-	line-height: .48rem;
+	/* color: #ffffff; */
+  line-height: .4rem;
+  color: #171826;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+.bigvip_drain  .bigvip_ad{
+  flex: 1;
+  margin-right: 0.08rem;
 }
 .bigvip_drain .bigvip_btn{
-	font-size: .34rem;
-	font-family: YouShe;
+  display: inline-block;
+  padding: 0 .12rem;
+  font-size: .26rem;
+  height: .48rem;
+	/* font-family: YouShe; */
 	font-weight: 400;
-	color: #ff9f40;
-	line-height: .48rem;
+	color: #fff;
+  line-height: .48rem;
+  background: #2abed1;
+  border-radius: 8px;
+  text-align: center;
 }
 
 #baseInfoTitle {

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

@@ -1,59 +1,67 @@
 <!DOCTYPE html>
 <html lang="zh-CN" style="font-size: 50px;">
+
 <head>
-    <title>企业画像</title>
+  <title>企业画像</title>
 
-    <!--引入公共资源头部-->
-    {{include "/big-member/meta.html"}}
+  <!--引入公共资源头部-->
+  {{include "/big-member/meta.html"}}
 
-    <!--S-当前页面的css资源-->
-    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/reset-css/5.0.1/reset.min.css />
-    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/index.css />
-    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/icon/local.css />
-    <link rel="stylesheet" href=//cdn.jsdelivr.net/npm/v-charts@1.19.0/lib/style.min.css />
-    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/css/index.css?v={{Msg "seo" "version"}}' />
-    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/css/vant-reset.css?v={{Msg "seo" "version"}}' />
-    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/css/ent_portrait.css?v={{Msg "seo" "version"}}' />
-    <!--E-当前页面的css资源-->
+  <!--S-当前页面的css资源-->
+  <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/reset-css/5.0.1/reset.min.css />
+  <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/index.css />
+  <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/icon/local.css />
+  <link rel="stylesheet" href=//cdn.jsdelivr.net/npm/v-charts@1.19.0/lib/style.min.css />
+  <link rel="stylesheet"
+    href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/css/index.css?v={{Msg "seo" "version"}}' />
+  <link rel="stylesheet"
+    href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/css/vant-reset.css?v={{Msg "seo" "version"}}' />
+  <link rel="stylesheet"
+    href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/css/ent_portrait.css?v={{Msg "seo" "version"}}' />
+  <!--E-当前页面的css资源-->
 </head>
 <style>
-    .bidinfo{
-        font-size: 0.28rem;
-        font-weight: 500;
-        text-align: CENTER;
-        color: #c0c4cc;
-        line-height: 20px;
-    }
-    .bid_upgrade{
-        padding: 0.04rem 0.12rem;
-        border: 1px solid #fb483d;
-        border-radius: 0.18rem;
-        font-size: 0.2rem;
-        font-weight: 500;
-        color: #fb483d;
-        line-height: 0.4rem;
-    }
-    .bid_surplus{
-        height: .04rem;
-        opacity: 1;
-        font-size: .22rem;
-        font-weight: 500;
-        color: #2abed1;
-    }
-    .vip_openDialog{
-        padding: 0.56rem 0 0.64rem;
-        width: 6.06rem;
-        /* height: 6.88rem; */
-        background: url('{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/image/openVip.png') no-repeat;
-        background-size: 100% 100%;
-        box-sizing: border-box;
-    }
+  .bidinfo {
+    font-size: 0.28rem;
+    font-weight: 500;
+    text-align: CENTER;
+    color: #c0c4cc;
+    line-height: 20px;
+  }
+
+  .bid_upgrade {
+    padding: 0.04rem 0.12rem;
+    border: 1px solid #fb483d;
+    border-radius: 0.18rem;
+    font-size: 0.2rem;
+    font-weight: 500;
+    color: #fb483d;
+    line-height: 0.4rem;
+  }
+
+  .bid_surplus {
+    height: .04rem;
+    opacity: 1;
+    font-size: .22rem;
+    font-weight: 500;
+    color: #2abed1;
+  }
+
+  .vip_openDialog {
+    padding: 0 0 0.64rem;
+    width: 6.06rem;
+    /* height: 6.88rem; */
+    background: url('{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/image/openVip.png') no-repeat;
+    background-size: 100% 100%;
+    box-sizing: border-box;
+  }
 </style>
+
 <body>
-<div class="j-container">
+  <div class="j-container">
     {{include "/big-member/header.html"}}
     <div id="ent-portrait" class="j-main" v-cloak>
-        <!-- <van-dialog
+      <!-- <van-dialog
         v-model="setShow"
         show-cancel-button
         width="6.06rem"
@@ -77,348 +85,367 @@
                 <span>...</span>
             </div>
         </van-dialog> -->
-        <div class="j-header ent-header">
-            <span class="j-icon icon-company"></span>
-            <span class="ent-title">${ entInfo.name }</span>
-            <span
-                class="j-icon"
-                :class="!!entInfo.follow ? 'icon-favorite' : 'icon-add-favorite'"
-                @click="changeFollowState"
-                v-if="entInfo.followSearchFinish && entInfo.entExist"
-            ></span>
-            <van-loading v-if="!entInfo.followSearchFinish" size="24px"></van-loading>
-        </div>
-        <van-tabs
-            class="ent-tabs-container"
-            :class="singleTab ? 'single-tab' : ''"
-            v-model="tabActiveName"
-            sticky
-            color="#2cb7ca"
-            title-active-color="#2cb7ca"
-            title-inactive-color="#5F5E64"
-            line-width="0.48rem"
-            v-if="conf.powerLoaded && conf.showPortraitAll"
-            :offset-top="stickyTop">
-            <van-tab name="1" title="企业信息">
-                <div class="bg-white tab-card">
-                    <div class="card-row">
-                        <div class="card-column ent-type">
-                            <div class="ent-type-label">公司类型</div>
-                            <div class="ent-type-text">${entBaseInfo.type ? entBaseInfo.type : '-'}</div>
-                        </div>
-                    </div>
-                    <div class="card-row">
-                        <div class="card-column ent-business-term">
-                            <div class="ent-business-term-label">营业期限</div>
-                            <div class="ent-business-term-text">
-                                <span>${entBaseInfo.operStart == -1 ? '-' : new Date(entBaseInfo.operStart*1000).pattern('yyyy/MM/dd')}</span>
-                                <span> 至 </span>
-                                <span>${entBaseInfo.operEnd == -1 ? '-' : new Date(entBaseInfo.operEnd*1000).pattern('yyyy/MM/dd')}</span>
-                            </div>
-                        </div>
-                    </div>
-                    <div class="card-row">
-                        <div class="card-column social-credit-code">
-                            <div class="ent-registration-label">统一社会信用代码</div>
-                            <div class="ent-registration-text">${entBaseInfo.creditNo ? entBaseInfo.creditNo : '-'}</div>
-                        </div>
-                    </div>
-                    <div class="card-row">
-                        <div class="card-column tax-identification-number">
-                            <div class="ent-registration-label">纳税人识别号</div>
-                            <div class="ent-registration-text">${entBaseInfo.taxCode ? entBaseInfo.taxCode : '-'}</div>
-                        </div>
-                    </div>
-                    <div class="card-row">
-                        <div class="card-column business-registration-number">
-                            <div class="ent-registration-label">工商注册号</div>
-                            <div class="ent-registration-text">${entBaseInfo.company_code ? entBaseInfo.company_code : '-'}</div>
-                        </div>
-                    </div>
-                    <div class="card-row">
-                        <div class="card-column organization-code">
-                            <div class="ent-info-label">组织机构代码</div>
-                            <div class="ent-info-text">${entBaseInfo.org_code ? entBaseInfo.org_code : '-'}</div>
-                        </div>
-                        <div class="card-column organization-code">
-                            <div class="ent-info-label">联系方式</div>
-                            <div class="ent-info-text">${entBaseInfo.phone ? entBaseInfo.phone : '-'}</div>
-                        </div>
-                    </div>
-                    <div class="card-row">
-                        <div class="card-column registered-capital">
-                            <div class="ent-info-label">注册资本</div>
-                            <div class="ent-info-text">${entBaseInfo.capital ? entBaseInfo.capital+'万元' : '-'}</div>
-                        </div>
-                        <div class="card-column registered-capital">
-                            <div class="ent-info-label">法人姓名</div>
-                            <div class="ent-info-text">${entBaseInfo.legal ? entBaseInfo.legal : '-'}</div>
-                        </div>
-                    </div>
-                    <div class="card-row">
-                        <div class="card-column ent-establish">
-                            <div class="ent-info-label">成立日期</div>
-                            <div class="ent-info-text">
-                                ${(!entBaseInfo.establish || entBaseInfo.establish == -1) ? '-' : new Date(entBaseInfo.establish*1000).pattern('yyyy/MM/dd')}
-                            </div>
-                        </div>
-                        <div class="card-column ent-status">
-                            <div class="ent-info-label">经营状态</div>
-                            <div class="ent-info-text">${entBaseInfo.status ? entBaseInfo.status : '-'}</div>
-                        </div>
-                    </div>
-                    <div class="card-row">
-                        <div class="card-column ent-employee">
-                            <div class="ent-info-label">人员规模(工商年报-参保人数,仅供参考)</div>
-                            <div class="ent-info-text">${entBaseInfo.employeeNo ? entBaseInfo.employeeNo : '-'}</div>
-                        </div>
-                    </div>
-                    <div class="card-row">
-                        <div class="card-column registered-capital">
-                            <div class="ent-info-label">注册地址</div>
-                            <div class="ent-info-text">${entBaseInfo.address ? entBaseInfo.address : '-'}</div>
-                        </div>
-                    </div>
-                    <div class="card-row">
-                        <div class="card-column registered-capital">
-                            <div class="ent-info-label">经营范围</div>
-                            <div class="ent-info-text">${entBaseInfo.scope ? entBaseInfo.scope : '-'}</div>
-                        </div>
-                    </div>
-                </div>
-                <div class="bg-white tab-card ent-change-history" @click="goToEntHistory">
-                    <div class="ent-change-l">企业情报历史记录</div>
-                    <div class="j-icon icon-back base-icon"></div>
-                </div>
-            </van-tab>
-            <van-tab name="2" v-if="!singleTab">
-                <template #title>
-                    <span :class="{bidinfo:!hasOnePower}">中标信息</span>
-                    <span v-if="!hasOnePower && isShowUpTip" class="bid_upgrade">升级</span>
-                    <span v-if="isMember && (hasOnePower && surplus && isVip)" class="bid_surplus">剩余:${entvisit.total - entvisit.usage}</span>
-                </template>
-                <div class="bg-white tab-card" v-if="conf._4 && !getStatus">
-                    <div class="card-row zb-info">
-                        <div class="card-column">
-                            <div class="ent-info-label">项目数量</div>
-                            <div class="ent-info-text">${entPortraitInfo.project_count ? entPortraitInfo.project_count + '个' : '0'}</div>
-                        </div>
-                        <div class="card-column">
-                            <div class="ent-info-label">项目金额</div>
-                            <div class="ent-info-text">${entPortraitInfo.bidamount_count ? utils.moneyUnit(entPortraitInfo.bidamount_count) : '0'}</div>
-                        </div>
-                        <div class="card-column">
-                            <div class="ent-info-label">项目省份</div>
-                            <div class="ent-info-text">${entPortraitInfo.area_count ? entPortraitInfo.area_count + '个' : '-'}</div>
-                        </div>
-                        <div class="card-column">
-                            <div class="ent-info-label">项目客户</div>
-                            <div class="ent-info-text">${entPortraitInfo.buyer_count ? entPortraitInfo.buyer_count + '个' : '-'}</div>
-                        </div>
-                    </div>
-                    <div class="zb-time-frame border-line-t">
-                        <span>数据统计范围:</span>
-                        <span>${entPortraitInfo.timeRangeStart ? new Date(entPortraitInfo.timeRangeStart * 1000).pattern('yyyy/MM/dd') : '2016'}</span>
-                        <span>-</span>
-                        <span>${entPortraitInfo.timeRangeEnd ? new Date(entPortraitInfo.timeRangeEnd * 1000).pattern('yyyy/MM/dd') : '至今'}</span>
-                    </div>
+      <div class="j-header ent-header">
+        <span class="j-icon icon-company"></span>
+        <span class="ent-title">${ entInfo.name }</span>
+        <span class="j-icon" :class="!!entInfo.follow ? 'icon-favorite' : 'icon-add-favorite'"
+          @click="changeFollowState" v-if="entInfo.followSearchFinish && entInfo.entExist"></span>
+        <van-loading v-if="!entInfo.followSearchFinish" size="24px"></van-loading>
+      </div>
+      <van-tabs 
+        class="ent-tabs-container" 
+        :class="singleTab ? 'single-tab' : ''" 
+        v-model="tabActiveName" 
+        scrollspy
+        sticky 
+        color="#2cb7ca" 
+        title-active-color="#2cb7ca" 
+        title-inactive-color="#5F5E64" 
+        line-width="0.48rem"
+        v-if="conf.powerLoaded && conf.showPortraitAll" :offset-top="stickyTop">
+        <van-tab name="1" title="企业信息">
+          <div class="bg-white tab-card">
+            <div class="card-row">
+              <div class="card-column social-credit-code">
+                <div class="ent-registration-label">统一社会信用代码</div>
+                <div class="ent-registration-text">${entBaseInfo.creditNo ? entBaseInfo.creditNo : '-'}</div>
+              </div>
+              <div class="card-column organization-code">
+                <div class="ent-info-label">联系方式</div>
+                <div class="ent-info-text">${entBaseInfo.phone ? entBaseInfo.phone : '-'}</div>
+              </div>
+            </div>
+            <div class="card-row">
+              <div class="card-column registered-capital">
+                <div class="ent-info-label">注册资本</div>
+                <div class="ent-info-text">${entBaseInfo.capital ? entBaseInfo.capital+'万元' : '-'}</div>
+              </div>
+              <div class="card-column registered-capital">
+                <div class="ent-info-label">法人姓名</div>
+                <div class="ent-info-text">${entBaseInfo.legal ? entBaseInfo.legal : '-'}</div>
+              </div>
+            </div>
+            <div class="card-row">
+              <div class="card-column ent-establish">
+                <div class="ent-info-label">成立日期</div>
+                <div class="ent-info-text">
+                  ${(!entBaseInfo.establish || entBaseInfo.establish == -1) ? '-' : new
+                  Date(entBaseInfo.establish*1000).pattern('yyyy/MM/dd')}
                 </div>
-                <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="j-container empty" style="padding-bottom: .2rem;" v-if="conf._13 && !conf._4 && topProject.list.length === 0">
-                    <div class="j-img img-empty empty-img"></div>
-                    <p class="empty-text">暂无项目动态</p>
+              </div>
+              <div class="card-column ent-status">
+                <div class="ent-info-label">经营状态</div>
+                <div class="ent-info-text">${entBaseInfo.status ? entBaseInfo.status : '-'}</div>
+              </div>
+            </div>
+            <div v-if="!showBaseInfo" class="show-more" @click="showBaseInfo = true">查看更多</div>
+            <div v-show="showBaseInfo" style="width: 100%;">
+              <div class="card-row">
+                <div class="card-column ent-type">
+                  <div class="ent-type-label">公司类型</div>
+                  <div class="ent-type-text">${entBaseInfo.type ? entBaseInfo.type : '-'}</div>
                 </div>
-                <div class="bg-white tab-card cell-list" v-show="conf._13 && topProject.list.length !== 0">
-                    <div class="tab-card-title">项目动态</div>
-                    <div class="tab-card-content">
-                        <ul class="project-info-list">
-                            <li
-                                class="project-info-item border-line-b clickable"
-                                v-for="(item,index) in topProject.list"
-                                @click="toProjectDetail(item)"
-                            >
-                                <div class="project-name">${item.title}</div>
-                                <div class="project-info">
-                                    <span class="tags">
-                                        <span class="tag tag-success" v-if="item.area">${item.area}</span>
-                                        <span class="tag tag-success" v-if="item.bidstatus">${item.bidstatus}</span>
-                                        <span class="tag tag-success" v-if="item.bidamount">${utils.moneyUnit(item.bidamount)}</span>
-                                    </span>
-                                    <span class="project-time">${item.firsttime ? new Date(item.firsttime * 1000).pattern('yyyy-MM-dd') : '-'}</span>
-                                </div>
-                            </li>
-                            <li
-                                class="show-more"
-                                v-if="topProject.showGetNextButton"
-                                @click="getProjectNews">查看更多</li>
-                        </ul>
-                    </div>
+              </div>
+              <div class="card-row">
+                <div class="card-column ent-business-term">
+                  <div class="ent-business-term-label">营业期限</div>
+                  <div class="ent-business-term-text">
+                    <span>${entBaseInfo.operStart == -1 ? '-' : new
+                      Date(entBaseInfo.operStart*1000).pattern('yyyy/MM/dd')}</span>
+                    <span> 至 </span>
+                    <span>${entBaseInfo.operEnd == -1 ? '-' : new
+                      Date(entBaseInfo.operEnd*1000).pattern('yyyy/MM/dd')}</span>
+                  </div>
                 </div>
-                <div class="vip_component" v-if="getStatus && !conf._13" style="height:9.16rem;background:url('/common-module/collection/image/bg/vip_bg_1.png') no-repeat;background-size:100% 100%">
-                    <vip-component @tabactive="tabActive" :power="conf" type="item_1" :entvisit="entvisit" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_1.png'></vip-component>
+              </div>
+              <div class="card-row">
+                <div class="card-column tax-identification-number">
+                  <div class="ent-registration-label">纳税人识别号</div>
+                  <div class="ent-registration-text">${entBaseInfo.taxCode ? entBaseInfo.taxCode : '-'}</div>
                 </div>
-                <div class="vip_component" v-if="isMember" style="height:11.36rem;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" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_9.png'></vip-component>
+              </div>
+              <div class="card-row">
+                <div class="card-column business-registration-number">
+                  <div class="ent-registration-label">工商注册号</div>
+                  <div class="ent-registration-text">${entBaseInfo.company_code ? entBaseInfo.company_code : '-'}</div>
                 </div>
-                <div class="bg-white tab-card cell-list history-list" v-else>
-                  <hispro-component type="winner" :id="entInfo.id"></hispro-component>
               </div>
-                <div class="bg-white tab-card charts" v-if="conf._4 && tabActiveName == '2' && annualData.rows.length !== 0 && !getStatus">
-                    <div class="tab-card-title">年度项目统计</div>
-                    <!-- e-charts和sticky同时使用时候,需要手动降低css层级(z-index: 1),确保tooltip不遮挡固定定位头部 -->
-                    <div class="tab-card-content">
-                        <ve-histogram
-                            height="284px"
-                            :colors="colorGreen"
-                            :data="annualData"
-                            :init-options="initEchartsOptions"
-                            :after-config="annualConfig"
-                            :settings="annualSetting"
-                            :extend="barChart.chartExtend">
-                        </ve-histogram>
-                    </div>
-                    <div class="tab-card-tip">注:项目金额指所有项目的中标金额之和,少数缺失的中标金额,用项目预算补充。</div>
+              <div class="card-row">
+                <div class="card-column organization-code">
+                  <div class="ent-info-label">组织机构代码</div>
+                  <div class="ent-info-text">${entBaseInfo.org_code ? entBaseInfo.org_code : '-'}</div>
                 </div>
-                <div 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" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_2.png'></vip-component>
+              </div>
+              <div class="card-row">
+                <div class="card-column ent-employee">
+                  <div class="ent-info-label">人员规模(工商年报-参保人数,仅供参考)</div>
+                  <div class="ent-info-text">${entBaseInfo.employeeNo ? entBaseInfo.employeeNo : '-'}</div>
                 </div>
-                <div class="bg-white tab-card charts"  v-if="conf._4 && tabActiveName == '2' && monthZbData.rows.length !== 0 && !getStatus">
-                    <div class="tab-card-title">月度中标金额统计</div>
-                    <div class="tab-card-content">
-                        <ve-line
-                            height="284px"
-                            :data="monthZbData"
-                            :init-options="initEchartsOptions"
-                            :after-config="lineChartConfig"
-                            :extend="chartOptions.lineChart">
-                        </ve-line>
-                    </div>
-                    <div class="tab-card-tip">注:少数缺失的中标金额,用项目预算补充。</div>
+              </div>
+              <div class="card-row">
+                <div class="card-column registered-capital">
+                  <div class="ent-info-label">注册地址</div>
+                  <div class="ent-info-text">${entBaseInfo.address ? entBaseInfo.address : '-'}</div>
                 </div>
-                <div class="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" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_3.png'></vip-component>
+              </div>
+              <div class="card-row">
+                <div class="card-column registered-capital">
+                  <div class="ent-info-label">经营范围</div>
+                  <div class="ent-info-text">${entBaseInfo.scope ? entBaseInfo.scope : '-'}</div>
                 </div>
-                <div class="bg-white tab-card charts" v-if="conf._4 && tabActiveName == '2' && mapChartData.rows.length !== 0 && !getStatus">
-                    <div class="tab-card-title">市场区域分布</div>
-                    <div class="tab-card-content">
-                        <ve-map
-                            height="300px"
-                            :data="mapChartData"
-                            :init-options="initEchartsOptions"
-                            :after-config="mapConfig"
-                            :settings="mapSettings.chartSettings"
-                            :extend="mapSettings.chartExtend">
-                        </ve-map>
-                    </div>
+              </div>
+            </div>
+          </div>
+          <div class="bg-white tab-card ent-change-history" @click="goToEntHistory">
+            <div class="ent-change-l">企业情报历史记录</div>
+            <div class="j-icon icon-back base-icon"></div>
+          </div>
+        </van-tab>
+        <van-tab name="2" v-if="!singleTab">
+          <template #title>
+            <span :class="{bidinfo:!hasOnePower}">中标信息</span>
+            <span v-if="isShowUpTip" class="bid_upgrade">升级</span>
+            <span v-if="isMember && (hasOnePower && surplus && isVip)" class="bid_surplus">剩余:${entvisit.total -
+              entvisit.usage}</span>
+          </template>
+          <div class="bg-white tab-card" v-if="conf._4 && !getStatus">
+            <div class="card-row zb-info">
+              <div class="card-column">
+                <div class="ent-info-label">项目数量</div>
+                <div class="ent-info-text">${entPortraitInfo.project_count ? entPortraitInfo.project_count + '个' : '0'}
                 </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" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_4.png'></vip-component>
+              </div>
+              <div class="card-column">
+                <div class="ent-info-label">项目金额</div>
+                <div class="ent-info-text">${entPortraitInfo.bidamount_count ?
+                  utils.moneyUnit(entPortraitInfo.bidamount_count) : '0'}</div>
+              </div>
+              <div class="card-column">
+                <div class="ent-info-label">项目省份</div>
+                <div class="ent-info-text">${entPortraitInfo.area_count ? entPortraitInfo.area_count + '个' : '-'}</div>
+              </div>
+              <div class="card-column">
+                <div class="ent-info-label">项目客户</div>
+                <div class="ent-info-text">${entPortraitInfo.buyer_count ? entPortraitInfo.buyer_count + '个' : '-'}
                 </div>
-                <div class="bg-white tab-card charts"  v-if="conf._4 && tabActiveName == '2' && rateData.rows.length !== 0 && !getStatus">
-                    <div class="tab-card-title">各类客户平均折扣率</div>
-                    <div class="tab-card-content">
-                        <ve-line
-                            height="314px"
-                            :data="rateData"
-                            :init-options="initEchartsOptions"
-                            :after-config="rateConfig"
-                            :extend="chartOptions.lineChart">
-                        </ve-line>
+              </div>
+            </div>
+            <div class="zb-time-frame border-line-t">
+              <span>数据统计范围:</span>
+              <span>${entPortraitInfo.timeRangeStart ? new Date(entPortraitInfo.timeRangeStart *
+                1000).pattern('yyyy/MM/dd') : '2016'}</span>
+              <span>-</span>
+              <span>${entPortraitInfo.timeRangeEnd ? new Date(entPortraitInfo.timeRangeEnd * 1000).pattern('yyyy/MM/dd')
+                : '至今'}</span>
+            </div>
+          </div>
+          <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" 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"
+              imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/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">
+              <div class="j-img img-empty empty-img"></div>
+              <p class="empty-text">暂无项目动态</p>
+            </div>
+            <div class="bg-white tab-card cell-list" v-show="conf._13 && topProject.list.length !== 0">
+              <div class="tab-card-title">项目动态</div>
+              <div class="tab-card-content">
+                <ul class="project-info-list">
+                  <li class="project-info-item border-line-b clickable" v-for="(item,index) in topProject.list"
+                    @click="toProjectDetail(item)">
+                    <div class="project-name">${item.title}</div>
+                    <div class="project-info">
+                      <span class="tags">
+                        <span class="tag tag-success" v-if="item.area">${item.area}</span>
+                        <span class="tag tag-success" v-if="item.bidstatus">${item.bidstatus}</span>
+                        <span class="tag tag-success" v-if="item.bidamount">${utils.moneyUnit(item.bidamount)}</span>
+                      </span>
+                      <span class="project-time">${item.firsttime ? new Date(item.firsttime * 1000).pattern('yyyy-MM-dd')
+                        : '-'}</span>
                     </div>
-                    <div class="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 @tabactive="tabActive" type="item_5" :power="conf" :entvisit="entvisit" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_5.png'></vip-component>
+                  </li>
+                  <li class="show-more" v-if="topProject.showGetNextButton" @click="getProjectNews">查看更多</li>
+                </ul>
+              </div>
+            </div>
+          </div>
+          <div class="vip_component" v-if="!showContacts"
+            style="height:11.36rem;background:url('/common-module/collection/image/bg/vip_bg_9.png') no-repeat;background-size:100% 100%">
+            <vip-component @tabactive="tabActive" :power="conf" type="item_9" :entvisit="entvisit" :newvip="isVip"
+              imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_9.png'>
+            </vip-component>
+          </div>
+          <div class="bg-white tab-card cell-list history-list" v-else>
+            <hispro-component type="winner" :id="entInfo.id"></hispro-component>
+          </div>
+          <div class="bg-white tab-card charts"
+            v-if="conf._4 && annualData.rows.length !== 0 && !getStatus">
+            <div class="tab-card-title">年度项目统计</div>
+            <!-- e-charts和sticky同时使用时候,需要手动降低css层级(z-index: 1),确保tooltip不遮挡固定定位头部 -->
+            <div class="tab-card-content">
+              <ve-histogram height="284px" :colors="colorGreen" :data="annualData" :init-options="initEchartsOptions"
+                :after-config="annualConfig" :settings="annualSetting" :extend="barChart.chartExtend">
+              </ve-histogram>
+            </div>
+            <div class="tab-card-tip">注:项目金额指所有项目的中标金额之和,少数缺失的中标金额,用项目预算补充。</div>
+          </div>
+          <div class="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"
+              imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/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>
+            <div class="tab-card-content">
+              <ve-line height="284px" :data="monthZbData" :init-options="initEchartsOptions"
+                :after-config="lineChartConfig" :extend="chartOptions.lineChart">
+              </ve-line>
+            </div>
+            <div class="tab-card-tip">注:少数缺失的中标金额,用项目预算补充。</div>
+          </div>
+          <div class="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"
+              imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/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>
+            <div class="tab-card-content">
+              <ve-map height="300px" :data="mapChartData" :init-options="initEchartsOptions" :after-config="mapConfig"
+                :settings="mapSettings.chartSettings" :extend="mapSettings.chartExtend">
+              </ve-map>
+            </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 @tabactive="tabActive" type="item_4" :power="conf" :entvisit="entvisit" :newvip="isVip"
+              imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/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>
+            <div class="tab-card-content">
+              <ve-line height="314px" :data="rateData" :init-options="initEchartsOptions" :after-config="rateConfig"
+                :extend="chartOptions.lineChart">
+              </ve-line>
+            </div>
+            <div class="tab-card-tip">注:平均折扣率=(全部项目预算-全部中标金额)/全部项目预算,是指价格减让部分与原价的比率,仅统计预算和中标金额同时存在的项目。</div>
+          </div>
+          <div class="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"
+              imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/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>
+            <div class="tab-card-content">
+              <div ref="pieChart" style="height: 360px;width: 320px;margin: 0 auto;"></div>
+            </div>
+            <div class="tab-card-tip">注:各客户类型占比以中标金额计算,最多展示占比排名前十的客户类型。</div>
+          </div>
+          <div class="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"
+              imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/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>
+            <div class="tab-card-content">
+              <div class="client-list" v-for="c in importantCustomers">
+                <div class="c-thead">
+                  <strong class="c-name">${c.title}</strong>
+                  <span class="c-count">中标数量</span>
+                  <span class="c-rate">平均折扣率</span>
+                  <span class="c-time">最近合作日期</span>
                 </div>
-                <div class="bg-white tab-card charts"  v-show="conf._4 && tabActiveName == '2' && entPortraitInfo.top10 && entPortraitInfo.top10.length != 0 && !getStatus">
-                    <div class="tab-card-title">客户类型分布</div>
-                    <div class="tab-card-content">
-                        <div ref="pieChart" style="height: 360px;"></div>
+                <div class="progress-bar-container">
+                  <div class="progress-bar-item" v-for="(item,index) in c.list" :key="index" v-show="item.name">
+                    <div class="item-label">
+                      <span class="ellipsis-2 item-name" @click="toUnitPortrayal(item)">${item.name}</span>
+                      <span class="item-count">${item.count ? item.count + '个' : item.count}</span>
+                      <span class="item-rate">${(item.rate != null) ? item.rate + '%' : '--'}</span>
+                      <span class="item-time">${item.time}</span>
                     </div>
-                    <div class="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 @tabactive="tabActive" type="item_6" :power="conf" :entvisit="entvisit" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_6.png'></vip-component>
-                </div>
-                <div class="bg-white tab-card customers client"  v-show="conf._4 && tabActiveName == '2' && importantCustomers.length !== 0 && !getStatus">
-                    <div class="tab-card-title">重点客户</div>
-                    <div class="tab-card-content">
-                        <div class="client-list" v-for="c in importantCustomers">
-                            <div class="c-thead">
-                                <strong class="c-name">${c.title}</strong>
-                                <span class="c-count">中标数量</span>
-                                <span class="c-rate">平均折扣率</span>
-                                <span class="c-time">最近合作日期</span>
-                            </div>
-                            <div class="progress-bar-container">
-                                <div class="progress-bar-item" v-for="(item,index) in c.list" :key="index" v-show="item.name">
-                                    <div class="item-label">
-                                        <span class="ellipsis-2 item-name" @click="toUnitPortrayal(item)">${item.name}</span>
-                                        <span class="item-count">${item.count ? item.count + '个' : item.count}</span>
-                                        <span class="item-rate">${(item.rate != null) ? item.rate + '%' : '--'}</span>
-                                        <span class="item-time">${item.time}</span>
-                                    </div>
-                                    <div class="item-progress">
-                                        <span class="item-money" v-if="item.money > 0">${utils.moneyUnit(item.money)}</span>
-                                        <span class="item-progress-count active-progress" :style="{width: item.percent}"></span>
-                                    </div>
-                                </div>
-                            </div>
-                        </div>
+                    <div class="item-progress">
+                      <span class="item-money" v-if="item.money > 0">${utils.moneyUnit(item.money)}</span>
+                      <span class="item-progress-count active-progress" :style="{width: item.percent}"></span>
                     </div>
+                  </div>
                 </div>
-                <div 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" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_7.png'></vip-component>
-                </div>
-            </van-tab>
-        </van-tabs>
-        <div class="j-main project-tab-container" v-if="conf.powerLoaded && !conf.showPortraitAll">
-            <div class="j-container empty" v-show="topProject.list.length === 0">
-                <div class="j-img img-empty empty-img"></div>
-                <p class="empty-text">暂无项目动态</p>
+              </div>
             </div>
-            <div class="j-container bg-white tab-card cell-list" v-show="topProject.list.length !== 0">
-                <div class="j-header tab-card-title">项目动态</div>
-                <div class="j-main tab-card-content">
-                    <ul class="project-info-list">
-                        <li
-                            class="project-info-item border-line-b clickable"
-                            v-for="(item,index) in topProject.list"
-                            @click="toProjectDetail(item)"
-                        >
-                            <div class="project-name">${item.title}</div>
-                            <div class="project-info">
-                                <span class="tags">
-                                    <span class="tag tag-success" v-if="item.area">${item.area}</span>
-                                    <span class="tag tag-success" v-if="item.bidstatus">${item.bidstatus}</span>
-                                    <span class="tag tag-success" v-if="item.bidamount">${utils.moneyUnit(item.bidamount)}</span>
-                                </span>
-                                <span class="project-time">${item.firsttime ? new Date(item.firsttime * 1000).pattern('yyyy-MM-dd') : '-'}</span>
-                            </div>
-                        </li>
-                        <li
-                            class="show-more"
-                            v-if="topProject.showGetNextButton"
-                            @click="getProjectNews">查看更多</li>
-                    </ul>
+          </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"
+              imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/bg/vip_ex_7.png'>
+            </vip-component>
+          </div>
+        </van-tab>
+      </van-tabs>
+      <div class="j-main project-tab-container" v-if="conf.powerLoaded && !conf.showPortraitAll">
+        <div class="j-container empty" v-show="topProject.list.length === 0">
+          <div class="j-img img-empty empty-img"></div>
+          <p class="empty-text">暂无项目动态</p>
+        </div>
+        <div class="j-container bg-white tab-card cell-list" v-show="topProject.list.length !== 0">
+          <div class="j-header tab-card-title">项目动态</div>
+          <div class="j-main tab-card-content">
+            <ul class="project-info-list">
+              <li class="project-info-item border-line-b clickable" v-for="(item,index) in topProject.list"
+                @click="toProjectDetail(item)">
+                <div class="project-name">${item.title}</div>
+                <div class="project-info">
+                  <span class="tags">
+                    <span class="tag tag-success" v-if="item.area">${item.area}</span>
+                    <span class="tag tag-success" v-if="item.bidstatus">${item.bidstatus}</span>
+                    <span class="tag tag-success" v-if="item.bidamount">${utils.moneyUnit(item.bidamount)}</span>
+                  </span>
+                  <span class="project-time">${item.firsttime ? new Date(item.firsttime * 1000).pattern('yyyy-MM-dd') :
+                    '-'}</span>
                 </div>
-            </div>
+              </li>
+              <li class="show-more" v-if="topProject.showGetNextButton" @click="getProjectNews">查看更多</li>
+            </ul>
+          </div>
         </div>
+      </div>
     </div>
-</div>
-
-<!--S-当前页面的资源-->
-<script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js></script>
-<script src=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js></script>
-<script src=//cdn.jsdelivr.net/npm/echarts@4.8.0/dist/echarts.min.js></script>
-<script src=//cdn.jsdelivr.net/npm/v-charts@1.19.0/lib/index.min.js></script>
-{{include "/big-member/commonjs.html"}}
-<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/antiRes/js/mainHook.js?v={{Msg "seo" "version"}}'></script>
-<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/js/vip-dialog.js?v={{Msg "seo" "version"}}'></script>
-<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/js/history-project.js?v={{Msg "seo" "version"}}'></script>
-<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/echarts_option.js?v={{Msg "seo" "version"}}'></script>
-<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/chart_options.js?v={{Msg "seo" "version"}}'></script>
-<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/ent_portrait.js?v={{Msg "seo" "version"}}'></script>
+  </div>
 
+  <!--S-当前页面的资源-->
+  <script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js> </script> <script
+    src=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js> </script> <script
+    src=//cdn.jsdelivr.net/npm/echarts@4.8.0/dist/echarts.min.js> </script> <script
+    src=//cdn.jsdelivr.net/npm/v-charts@1.19.0/lib/index.min.js> </script> {{include "/big-member/commonjs.html"}}
+    <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/antiRes/js/mainHook.js?v={{Msg "seo" "version"}}'></script>
+  <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/js/vip-dialog.js?v={{Msg "seo" "version"}}'>
+  </script>
+  <script
+    src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/js/history-project.js?v={{Msg "seo" "version"}}'>
+  </script>
+  <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/echarts_option.js?v={{Msg "seo" "version"}}'>
+  </script>
+  <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/chart_options.js?v={{Msg "seo" "version"}}'>
+  </script>
+  <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/ent_portrait.js?v={{Msg "seo" "version"}}'>
+  </script>
 </body>
+
 </html>

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

@@ -22,7 +22,7 @@
 </head>
 <style>
     .vip_openDialog{
-        padding: 0.56rem 0 0.64rem;
+        padding: 0 0 0.64rem;
         width: 6.06rem;
         /* height: 6.88rem; */
         background: url('{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/image/openVip.png') no-repeat;

+ 246 - 223
src/jfw/modules/app/src/web/templates/big-member/page_unit_portrayal.html

@@ -54,7 +54,7 @@
           font-weight: normal;
         }
         .vip_openDialog{
-            padding: 0.56rem 0 0.64rem;
+            padding: 0 0 0.64rem;
             width: 6.06rem;
             /* height: 6.88rem; */
             background: url('{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/image/openVip.png') no-repeat;
@@ -129,231 +129,254 @@
                 </div>
             </div>
             <!-- 历史项目联系人 -->
-            <div class="vip_component" v-if="getStatus" style="height:10.8rem;background:url('/common-module/collection/image/buyer/01-bg.png') no-repeat;background-size:100% 100%">
-              <p class="example-title">历史项目联系方式</p>
-              <buyer-example :status="bigStatus" :power="power" type="item_1" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/01.png'></buyer-example>
+            <div v-if="getStatus">
+              <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/01-bg.png') no-repeat;background-size:100% 100%">
+                <p class="example-title">历史项目联系方式</p>
+                <buyer-example :status="bigStatus" :power="power" type="item_1" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/01.png'></buyer-example>
+              </div>
             </div>
-            <div v-else>
+            <!-- 数据部分 -->
+            <div>
+              <!-- 历史项目联系人 -->
               <hispro-component class="history-list" type="buyer" :buyer="buyer.name"></hispro-component>
+              <!-- 年度项目统计 -->
+              <div class="years" v-if="isShow.showYearData">
+                  <div class="chart_title">年度项目统计</div>
+                  <ve-histogram
+                      ref="projectDataCharts"
+                      height="284px"
+                      :colors="colorGreen"
+                      :data="projectData"
+                      :init-options="initRendererSvg"
+                      :after-config="projectConfig"
+                      :settings="projectChartSettings"
+                      :extend="barChart.chartExtend">
+                  </ve-histogram>
+                  <div class="bar-tip">注:项目金额指所有项目的中标金额之和,少数缺失的中标金额,用项目预算补充。</div>
+              </div>
+              <!-- 月度采购规模统计 -->
+              <div class="month-scale" v-if="isShow.showMonthScale">
+                  <div class="chart_title">月度采购规模统计</div>
+                  <div class="lineChart">
+                      <div style="padding: 6px 12px 0;font-size: 10px;color: #9B9CA3;">采购规模(万元)</div>
+                      <ve-line :init-options="initRendererSvg" :data="monthScaleData" height="300px" :after-config="lineChartConfig" :extend="chartOptions.lineChart"></ve-line>
+                  </div>
+                  <div class="bar-tip">注:采购规模指中标金额,少数缺失的中标金额,用项目预算补充。</div>
+              </div>
+              <!-- 采购规模分布 -->
+              <div class="scale-distribute" v-if="isShow.showScaleFb">
+                  <div class="chart_title">采购规模分布</div>
+                  <div class="hotMapChart">
+                      <div id="myChart" ref="hotChart" :style="{height: heatMapHeight}"></div>
+                  </div>
+                  <div class="bar-tip">注:平均节支率=(全部项目预算-全部中标金额)/全部项目预算,是指价格减让部分与原价的比率,仅统计预算和中标金额同时存在的项目。</div>
+              </div>
+              <!-- 各类招标方式占比(双柱图) -->
+              <div class="double-bar" v-if="isShow.showBidType">
+                  <div class="chart_title">各类招标方式占比</div>
+                  <div class="bar-content">
+                      <div class="rate-item" v-for="(item,index) in doubleBar.list" @click.stop="tooltipHandle(item,index)">
+                          <div class="item-label">${item.type}</div>
+                          <div class="item-chart">
+                              <div class="left-chart">
+                                  <div class="item-progress" v-if="item.lPercent > 50">
+                                      <span class="blue-progress-bg blue-padding" :style="{width: item.lPercent + '%'}">${item.num}(${item.numShare  + '%'})</span>
+                                  </div>
+                                  <div class="item-progress" v-else>
+                                      <span class="blue-progress-text">${item.num}(${item.numShare  + '%'})</span>
+                                      <span class="blue-progress-bg" :style="{width: item.lPercent + '%'}"></span>
+                                  </div>
+                              </div>
+                              <div class="right-chart">
+                                  <div class="item-progress" v-if="item.rPercent > 50">
+                                      <span class="yellow-progress-bg yellow-padding" :style="{width: item.rPercent + '%'}">${item.money}(${item.moneyShare + '%'})</span>
+                                  </div>
+                                  <div class="item-progress" v-else>
+                                      <span class="yellow-progress-bg" :style="{width: item.rPercent + '%'}"></span>
+                                      <span class="yellow-progress-text">${item.money}(${item.moneyShare + '%'})</span>
+                                  </div>
+                              </div>
+                          </div>
+                      </div>
+                      <div class="tooltip" v-show="doubleBar.showTooltip" :style="{left:doubleBar.info.positionLeft,top:doubleBar.info.positionTop}">
+                          <div class="tooltip-item">
+                              <span class="tooltip-circle blue-circle"></span>
+                              <span>数量(个)及占比:${doubleBar.info.num}(${doubleBar.info.numShare + '%'})</span>
+                          </div>
+                          <div class="tooltip-item">
+                              <span class="tooltip-circle yellow-circle"></span>
+                              <span>金额(万元)及占比:${doubleBar.info.money}(${doubleBar.info.moneyShare + '%'})</span>
+                          </div>
+                          <div class="tooltip-name">- ${doubleBar.info.type} -</div>
+                      </div>
+                      <div class="custom-legend">
+                          <div class="legend-item">
+                              <span class="tooltip-circle blue-circle"></span>
+                              <span>数量(个)及占比</span>
+                          </div>
+                          <div class="legend-item">
+                              <span class="tooltip-circle yellow-circle"></span>
+                              <span>金额(万元)及占比</span>
+                          </div>
+                      </div>
+                  </div>
+              </div>
+              <!-- 各行业项目平均节支率 -->
+              <div class="savings-rate" v-if="isShow.showSaveRate">
+                  <div class="chart_title">各行业项目平均节支率</div>
+                  <div class="lineChart">
+                      <ve-line :init-options="initRendererSvg" :data="savingsRateData" height="314px" :after-config="savingsRateConfig" :extend="chartOptions.lineChart"></ve-line>
+                  </div>
+              </div>
+              <!-- 各行业项目规模占比 -->
+              <div class="industry-scale-rate" v-if="isShow.showScaleRate">
+                  <p class="chart_title">各行业项目规模占比</p>
+                  <div class="pieChart">
+                      <div ref="pieChart" style="height: 360px;"></div>
+                  </div>
+              </div>
+              <!-- 重点合作企业 -->
+              <div class="client" v-if="computedClientList && computedClientList.length> 0">
+                  <div class="client-title">重点合作企业</div>
+                  <div class="client-content">
+                      <div class="client-list" v-for="c in computedClientList" >
+                          <div class="c-thead">
+                              <strong class="c-name">${c.class}</strong>
+                              <span class="c-count">项目数量</span>
+                              <!-- <span class="c-rate">平均折扣率</span> -->
+                              <span class="c-time">最近合作日期</span>
+                          </div>
+                          <div class="progress-bar-container">
+                              <div class="progress-bar-item" v-for="(item,index) in c.topData" :key="index">
+                                  <div class="item-label">
+                                      <span @click="goEntInfo(item)" class="ellipsis-2 item-name">${item.winnerName}</span>
+                                      <span class="item-count">${item.countProject}个</span>
+                                      <!-- <span class="item-rate">${item.rate}</span> -->
+                                      <span class="item-time">${item.lastTime}</span>
+                                  </div>
+                                  <div class="item-progress">
+                                      <span class="item-money"  v-if="item.countMoney > 0">${utils.moneyUnit(item.countMoney)}</span>
+                                      <span class="item-progress-count active-progress" :style="{width: item.parent}"></span>
+                                  </div>
+                              </div>
+                          </div>
+                      </div>
+                  </div>
+              </div>
+              <!-- 合作企业注册资本分布 -->
+              <div class="industry-scale-rate" v-if="isShow.showCapital">
+                  <p class="chart_title">合作企业注册资本分布</p>
+                  <div class="barChart">
+                      <ve-histogram :init-options="initRendererSvg" height="284px" set-option-opts :data="regCapitalData" :after-config="regCapConfig" :settings="regCapSettings" :extend="chartOptions.barLineChart.chartExtend"> </ve-histogram>
+                  </div>
+              </div>
+              <!-- 合作企业年龄分布 -->
+              <div class="industry-scale-rate" v-if="isShow.showAge">
+                  <p class="chart_title">合作企业年龄分布</p>
+                  <div class="barChart">
+                      <ve-histogram :init-options="initRendererSvg" height="284px" :data="workingAgeData" :after-config="workingAgeConfig" :extend="chartOptions.barLineChart.chartExtend"> </ve-histogram>
+                  </div>
+              </div>
+              <!-- 合作企业注册地分布 -->
+              <div class="industry-scale-rate" v-if="isShow.showArea">
+                  <p class="chart_title">合作企业注册地分布</p>
+                  <div class="map" style="padding: 0 .32rem;">
+                      <ve-map
+                          :init-options="initRendererSvg"
+                          height="302px"
+                          :after-config="mapConfig"
+                          :data="mapChartData"
+                          :settings="mapSettings.chartSettings"
+                          :extend="mapSettings.chartExtend">
+                      </ve-map>
+                  </div>
+              </div>
+              <!-- 重点合作代理机构 -->
+              <div class="agency" v-if="isShow.showAgency">
+                  <div class="agency-title">重点合作代理机构</div>
+                  <div class="agency-container">
+                      <div class="agency-thead">
+                          <strong class="a-name"></strong>
+                          <span class="a-count">项目数量</span>
+                          <span class="a-time">最近合作日期</span>
+                      </div>
+                      <div class="agency-tbody">
+                          <div v-for="item in agencyList" class="ab-list">
+                              <div class="ab-label">
+                                  <span class="ellipsis-2 ab-name">${item.agency_name}</span>
+                                  <span class="ab-count">${item.project_count}个</span>
+                                  <span class="ab-time">${item.last_with_time}</span>
+                              </div>
+                              <div class="ab-progress">
+                                  <span class="ab-progress-default progress-active" :style="{width: item.parent}"></span>
+                              </div>
+                          </div>
+                      </div>
+                  </div>
+              </div>
             </div>
-            <!-- 年度项目统计 -->
-            <div class="years" v-if="isShow.showYearData">
-                <div class="chart_title">年度项目统计</div>
-                <ve-histogram
-                    ref="projectDataCharts"
-                    height="284px"
-                    :colors="colorGreen"
-                    :data="projectData"
-                    :init-options="initRendererSvg"
-                    :after-config="projectConfig"
-                    :settings="projectChartSettings"
-                    :extend="barChart.chartExtend">
-                </ve-histogram>
-                <div class="bar-tip">注:项目金额指所有项目的中标金额之和,少数缺失的中标金额,用项目预算补充。</div>
-            </div>
-            <div class="vip_component" v-if="getStatus" 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>
-            </div>
-            <!-- 月度采购规模统计 -->
-            <div class="month-scale" v-if="isShow.showMonthScale">
-                <div class="chart_title">月度采购规模统计</div>
-                <div class="lineChart">
-                    <div style="padding: 6px 12px 0;font-size: 10px;color: #9B9CA3;">采购规模(万元)</div>
-                    <ve-line :init-options="initRendererSvg" :data="monthScaleData" height="300px" :after-config="lineChartConfig" :extend="chartOptions.lineChart"></ve-line>
-                </div>
-                <div class="bar-tip">注:采购规模指中标金额,少数缺失的中标金额,用项目预算补充。</div>
-            </div>
-            <div class="vip_component" v-if="getStatus" 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>
-            </div>
-            <!-- 采购规模分布 -->
-            <div class="scale-distribute" v-if="isShow.showScaleFb">
-                <div class="chart_title">采购规模分布</div>
-                <div class="hotMapChart">
-                    <div id="myChart" ref="hotChart" :style="{height: heatMapHeight}"></div>
-                </div>
-                <div class="bar-tip">注:平均节支率=(全部项目预算-全部中标金额)/全部项目预算,是指价格减让部分与原价的比率,仅统计预算和中标金额同时存在的项目。</div>
-            </div>
-            <div class="vip_component" v-if="getStatus" 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>
-            </div>
-            <!-- 各类招标方式占比(双柱图) -->
-            <div class="double-bar" v-if="isShow.showBidType">
-                <div class="chart_title">各类招标方式占比</div>
-                <div class="bar-content">
-                    <div class="rate-item" v-for="(item,index) in doubleBar.list" @click.stop="tooltipHandle(item,index)">
-                        <div class="item-label">${item.type}</div>
-                        <div class="item-chart">
-                            <div class="left-chart">
-                                <div class="item-progress" v-if="item.lPercent > 50">
-                                    <span class="blue-progress-bg blue-padding" :style="{width: item.lPercent + '%'}">${item.num}(${item.numShare  + '%'})</span>
-                                </div>
-                                <div class="item-progress" v-else>
-                                    <span class="blue-progress-text">${item.num}(${item.numShare  + '%'})</span>
-                                    <span class="blue-progress-bg" :style="{width: item.lPercent + '%'}"></span>
-                                </div>
-                            </div>
-                            <div class="right-chart">
-                                <div class="item-progress" v-if="item.rPercent > 50">
-                                    <span class="yellow-progress-bg yellow-padding" :style="{width: item.rPercent + '%'}">${item.money}(${item.moneyShare + '%'})</span>
-                                </div>
-                                <div class="item-progress" v-else>
-                                    <span class="yellow-progress-bg" :style="{width: item.rPercent + '%'}"></span>
-                                    <span class="yellow-progress-text">${item.money}(${item.moneyShare + '%'})</span>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                    <div class="tooltip" v-show="doubleBar.showTooltip" :style="{left:doubleBar.info.positionLeft,top:doubleBar.info.positionTop}">
-                        <div class="tooltip-item">
-                            <span class="tooltip-circle blue-circle"></span>
-                            <span>数量(个)及占比:${doubleBar.info.num}(${doubleBar.info.numShare + '%'})</span>
-                        </div>
-                        <div class="tooltip-item">
-                            <span class="tooltip-circle yellow-circle"></span>
-                            <span>金额(万元)及占比:${doubleBar.info.money}(${doubleBar.info.moneyShare + '%'})</span>
-                        </div>
-                        <div class="tooltip-name">- ${doubleBar.info.type} -</div>
-                    </div>
-                    <div class="custom-legend">
-                        <div class="legend-item">
-                            <span class="tooltip-circle blue-circle"></span>
-                            <span>数量(个)及占比</span>
-                        </div>
-                        <div class="legend-item">
-                            <span class="tooltip-circle yellow-circle"></span>
-                            <span>金额(万元)及占比</span>
-                        </div>
-                    </div>
-                </div>
-            </div>
-            <div class="vip_component" v-if="getStatus" 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>
-            </div>
-            <!-- 各行业项目平均节支率 -->
-            <div class="savings-rate" v-if="isShow.showSaveRate">
-                <div class="chart_title">各行业项目平均节支率</div>
-                <div class="lineChart">
-                    <ve-line :init-options="initRendererSvg" :data="savingsRateData" height="314px" :after-config="savingsRateConfig" :extend="chartOptions.lineChart"></ve-line>
-                </div>
-            </div>
-            <div class="vip_component" v-if="getStatus" 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>
-            </div>
-            <!-- 各行业项目规模占比 -->
-            <div class="industry-scale-rate" v-if="isShow.showScaleRate">
-                <p class="chart_title">各行业项目规模占比</p>
-                <div class="pieChart">
-                    <div ref="pieChart" style="height: 360px;"></div>
-                </div>
-            </div>
-            <div class="vip_component" v-if="getStatus" 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>
-            </div>
-            <!-- 重点合作企业 -->
-            <div class="client" v-if="computedClientList && computedClientList.length> 0">
-                <div class="client-title">重点合作企业</div>
-                <div class="client-content">
-                    <div class="client-list" v-for="c in computedClientList" >
-                        <div class="c-thead">
-                            <strong class="c-name">${c.class}</strong>
-                            <span class="c-count">项目数量</span>
-                            <!-- <span class="c-rate">平均折扣率</span> -->
-                            <span class="c-time">最近合作日期</span>
-                        </div>
-                        <div class="progress-bar-container">
-                            <div class="progress-bar-item" v-for="(item,index) in c.topData" :key="index">
-                                <div class="item-label">
-                                    <span @click="goEntInfo(item)" class="ellipsis-2 item-name">${item.winnerName}</span>
-                                    <span class="item-count">${item.countProject}个</span>
-                                    <!-- <span class="item-rate">${item.rate}</span> -->
-                                    <span class="item-time">${item.lastTime}</span>
-                                </div>
-                                <div class="item-progress">
-                                    <span class="item-money"  v-if="item.countMoney > 0">${utils.moneyUnit(item.countMoney)}</span>
-                                    <span class="item-progress-count active-progress" :style="{width: item.parent}"></span>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            </div>
-            <div class="vip_component" v-if="getStatus" 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>
-            </div>
-            <!-- 合作企业注册资本分布 -->
-            <div class="industry-scale-rate" v-if="isShow.showCapital">
-                <p class="chart_title">合作企业注册资本分布</p>
-                <div class="barChart">
-                    <ve-histogram :init-options="initRendererSvg" height="284px" set-option-opts :data="regCapitalData" :after-config="regCapConfig" :settings="regCapSettings" :extend="chartOptions.barLineChart.chartExtend"> </ve-histogram>
-                </div>
-            </div>
-            <div class="vip_component" v-if="getStatus" 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>
-            </div>
-            <!-- 合作企业年龄分布 -->
-            <div class="industry-scale-rate" v-if="isShow.showAge">
-                <p class="chart_title">合作企业年龄分布</p>
-                <div class="barChart">
-                    <ve-histogram :init-options="initRendererSvg" height="284px" :data="workingAgeData" :after-config="workingAgeConfig" :extend="chartOptions.barLineChart.chartExtend"> </ve-histogram>
-                </div>
-            </div>
-            <div class="vip_component" v-if="getStatus" 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>
-            </div>
-            <!-- 合作企业注册地分布 -->
-            <div class="industry-scale-rate" v-if="isShow.showArea">
-                <p class="chart_title">合作企业注册地分布</p>
-                <div class="map" style="padding: 0 .32rem;">
-                    <ve-map
-                        :init-options="initRendererSvg"
-                        height="302px"
-                        :after-config="mapConfig"
-                        :data="mapChartData"
-                        :settings="mapSettings.chartSettings"
-                        :extend="mapSettings.chartExtend">
-                    </ve-map>
-                </div>
-            </div>
-            <div class="vip_component" v-if="getStatus" 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>
-            </div>
-            <!-- 重点合作代理机构 -->
-            <div class="agency" v-if="isShow.showAgency">
-                <div class="agency-title">重点合作代理机构</div>
-                <div class="agency-container">
-                    <div class="agency-thead">
-                        <strong class="a-name"></strong>
-                        <span class="a-count">项目数量</span>
-                        <span class="a-time">最近合作日期</span>
-                    </div>
-                    <div class="agency-tbody">
-                        <div v-for="item in agencyList" class="ab-list">
-                            <div class="ab-label">
-                                <span class="ellipsis-2 ab-name">${item.agency_name}</span>
-                                <span class="ab-count">${item.project_count}个</span>
-                                <span class="ab-time">${item.last_with_time}</span>
-                            </div>
-                            <div class="ab-progress">
-                                <span class="ab-progress-default progress-active" :style="{width: item.parent}"></span>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            </div>
-            <div class="vip_component" v-if="getStatus" 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>
+            <!-- 遮罩部分 -->
+            <div v-if="getStatus">
+              <!-- 历史项目联系人 -->
+              <!-- <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/01-bg.png') no-repeat;background-size:100% 100%">
+                <p class="example-title">历史项目联系方式</p>
+                <buyer-example :status="bigStatus" :power="power" type="item_1" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/01.png'></buyer-example>
+              </div> -->
+              <!-- 合作企业注册资本分布 -->
+              <!-- <div 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>
+              </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>
+              </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>
+              </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>
+              </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>
+              </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>
+              </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>
+              </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>
+              </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>
+              </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>
+              </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>
+              </div>
             </div>
         </div>
     </div>

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

@@ -1006,7 +1006,7 @@
                 } else {
                   _this.$dialog.close()
                   _this.$dialog.confirm({
-                    message: '您的申请已提交,我们的客户经理会在24小时内尽快与您联系。',
+                    message: '您的申请已提交,我们会尽快联系您并预约演示时间,请耐心等待~您将获得免费体验大会员全部功能!',
                     className: 'ent-search-dialog max-54',
                     overlayClass: 'z-2030',
                     showCancelButton: false,

+ 1 - 1
src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info_push.html

@@ -441,7 +441,7 @@
             if (r.error_msg === '') {
               _this.$dialog.close()
               _this.$dialog.confirm({
-                message: '您的申请已提交,我们的客户经理会在24小时内尽快与您联系。',
+                message: '您的申请已提交,我们会尽快联系您并预约演示时间,请耐心等待~您将获得免费体验大会员全部功能!',
                 className: 'ent-search-dialog max-54',
                 overlayClass: 'z-2030',
                 showCancelButton: false,

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

@@ -527,10 +527,10 @@
                     <a class="iconarrow"></a>
                 </div>
                 <!--s 大会员引流 s-->
-                <div class="bigvip_drain lead_drain" style='background: url("{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/images/big-drain.png") no-repeat; background-size: 100% 100%'>
+                <div class="bigvip_drain lead_drain" style="background: #f5f6f7;">
                     <div class="bigvip_text">
                         <span class="bigvip_ad">想让剑鱼帮你找合作伙伴吗?</span>
-                        <span class="bigvip_btn">点这里</span>
+                        <span class="bigvip_btn">点这里!</span>
                     </div>
                 </div>
                 <!-- e 大会员引流 e -->
@@ -555,7 +555,7 @@
                 <a class="iconarrow"></a>
             </div>
             <!--s 大会员引流 s-->
-            <div class="bigvip_drain" style='background: url("{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/images/big-drain.png") no-repeat; background-size: 100% 100%'>
+            <div class="bigvip_drain" style="background: #f5f6f7;">
                 <div class="bigvip_text">
                     <span class="bigvip_ad">想让剑鱼帮你找合作伙伴吗?</span>
                     <span class="bigvip_btn">点这里</span>

+ 58 - 18
src/jfw/modules/bigmember/src/entity/portrait.go

@@ -151,9 +151,9 @@ func (this *Portrait) GetWinnerNewMsg(entId string, start, limit int) ([]map[str
 	if entId == "" {
 		return nil, errors.New("企业名称异常")
 	}
-	if start > PortraitNewMegsLimit || start+limit > PortraitNewMegsLimit {
-		return nil, errors.New("超出检索限制")
-	}
+	//if start > PortraitNewMegsLimit || start+limit > PortraitNewMegsLimit {
+	//	return nil, errors.New("超出检索限制")
+	//}
 	return GetWinnerNewProject(entId, start, limit), nil
 }
 
@@ -163,33 +163,52 @@ func (this *Portrait) GetWinnerNewCount(entId string) int64 {
 		return -1
 	}
 	count := GetWinnerNewProjectCount(entId)
-	if count > PortraitNewMegsLimit {
-		count = PortraitNewMegsLimit
-	}
+	//if count > PortraitNewMegsLimit {
+	//	count = PortraitNewMegsLimit
+	//}
 	return count
 }
 
 //企业画像-查询
-func (this *Portrait) WinnerPortraitData(entId string) (map[string]interface{}, error) {
+func (this *Portrait) WinnerPortraitData(entId string, hasPower bool) (map[string]interface{}, error) {
 	if entId == "" {
 		return nil, errors.New("企业名称异常")
 	}
 	winnerPortraitData := TryFunc(GetPortraitCache, entId, "winner", 2)
-	//winnerPortraitData, err := GetWinnerPortraitSearch(entId)
-	//if err != nil {
-	//	return nil, err
-	//}
+	if !hasPower && winnerPortraitData != nil { //无权限 仅返回免费字段(市场区域分布字段)
+		freeReturnMap := map[string]interface{}{}
+		for _, key := range []string{"timeRange", "buyer_count", "bidamount_count", "project_count", "area_count"} {
+			freeReturnMap[key] = winnerPortraitData[key]
+		}
+		return freeReturnMap, nil
+	}
 	return winnerPortraitData, nil
 }
 
+//WinnerMiniPortraitData 三级页引流
+func (this *Portrait) WinnerMiniPortraitData(entId string) (map[string]interface{}, error) {
+	if entId == "" {
+		return nil, errors.New("企业名称异常")
+	}
+	winnerPortraitData := TryFunc(GetPortraitCache, entId, "winner", 2)
+	if winnerPortraitData == nil {
+		return nil, nil
+	}
+	miniReturnMap := map[string]interface{}{}
+	for _, key := range []string{"bidamount_count", "project_count"} {
+		miniReturnMap[key] = winnerPortraitData[key]
+	}
+	return miniReturnMap, nil
+}
+
 //采购单位画像-查询最新项目动态
 func (this *Portrait) GetBuyerNewMsg(buyer string, start, limit int, hasPower bool) ([]map[string]interface{}, error) {
 	if buyer == "" {
 		return nil, errors.New("企业名称异常")
 	}
-	if start > PortraitNewMegsLimit || start+limit > PortraitNewMegsLimit {
-		return nil, errors.New("超出检索限制")
-	}
+	//if start > PortraitNewMegsLimit || start+limit > PortraitNewMegsLimit {
+	//	return nil, errors.New("超出检索限制")
+	//}
 	return GetBuyerNewProject(buyer, start, limit, hasPower), nil
 }
 
@@ -207,9 +226,9 @@ func (this *Portrait) GetBuyerNewCount(buyer string) int64 {
 		return -1
 	}
 	count := GetBuyerNewProjectCount(buyer)
-	if count > PortraitNewMegsLimit {
-		count = PortraitNewMegsLimit
-	}
+	//if count > PortraitNewMegsLimit {
+	//	count = PortraitNewMegsLimit
+	//}
 	return count
 }
 
@@ -227,11 +246,18 @@ func (this *Portrait) BuyerPortraitData(buyer string, flag string, hasPower bool
 		return nil, errors.New("参数异常")
 	}
 	if !hasPower { //免费返回字段
-		if buyerPortraitAllData := TryFunc(GetPortraitCacheByStep, buyer, fmt.Sprintf("buyer"), 2); buyerPortraitAllData != nil {
+		if buyerPortraitAllData := TryFunc(GetPortraitCacheByStep, buyer, fmt.Sprintf("buyer_%s", flag), 2); buyerPortraitAllData != nil {
 			freeReturnMap := map[string]interface{}{}
+			//第一阶段免费数据
 			for _, key := range []string{"timeRange", "city", "province", "buyerclass", "fail_count", "project_count", "winner_count", "otherProvincesWinnerCount"} {
 				freeReturnMap[key] = buyerPortraitAllData[key]
 			}
+			//第三阶段免费字段
+			if flag == "" || flag == "c" {
+				for _, key := range []string{"withCapitalData", "withAreaData", "withEstablishData"} {
+					freeReturnMap[key] = buyerPortraitAllData[key]
+				}
+			}
 			return freeReturnMap, nil
 		}
 		return nil, nil
@@ -249,3 +275,17 @@ func (this *Portrait) BuyerPortraitData(buyer string, flag string, hasPower bool
 	}
 	return buyerPortraitData, nil
 }
+
+func (this *Portrait) BuyerMiniPortraitData(buyer string) (map[string]interface{}, error) {
+	if buyer == "" {
+		return nil, errors.New("企业名称异常")
+	}
+	miniReturnMap := map[string]interface{}{}
+	if buyerPortraitAllData := TryFunc(GetPortraitCacheByStep, buyer, "buyer_a", 2); buyerPortraitAllData != nil {
+		for _, key := range []string{"province", "city", "buyerclass", "bidamount_count", "project_count"} {
+			miniReturnMap[key] = buyerPortraitAllData[key]
+		}
+		return miniReturnMap, nil
+	}
+	return miniReturnMap, nil
+}

+ 2 - 2
src/jfw/modules/bigmember/src/entity/portraitBuyerSearch.go

@@ -27,7 +27,7 @@ const (
 //采购单位最新中标动态查询
 func GetBuyerNewProject(buyer string, start, size int, hasPower bool) []map[string]interface{} {
 	defer qutil.Catch()
-	res := elastic.GetPage("projectset", "projectset", `{"TERM_buyer":"`+buyer+`"}`, `{"firsttime":-1}`, buyerNewProjectSearchFields, start, size)
+	res := elastic.GetPage("projectset", "projectset", fmt.Sprintf(`{"TERM_buyer":"%s","$and":[{"firsttime":{"$gte":%d}}]}`, buyer, time.Now().AddDate(-5, 0, 0).Unix()), `{"firsttime":-1}`, buyerNewProjectSearchFields, start, size)
 	if res == nil || len(*res) == 0 {
 		return []map[string]interface{}{}
 	}
@@ -57,7 +57,7 @@ func GetBuyerNewProject(buyer string, start, size int, hasPower bool) []map[stri
 //采购单位最新中标动态数量查询
 func GetBuyerNewProjectCount(buyer string) int64 {
 	defer qutil.Catch()
-	return elastic.Count("projectset", "projectset", `{"query":{"bool":{"must":[{"term": {"buyer": "`+buyer+`"}}]}}}`)
+	return elastic.Count("projectset", "projectset", fmt.Sprintf(`{"query":{"bool":{"must":[{"term": {"buyer": "%s"}},{"range":{"firsttime":{"gte":%d}}}]}}}`, buyer, time.Now().AddDate(-5, 0, 0).Unix()))
 }
 
 //获取采购单位基本信息

+ 5 - 5
src/jfw/modules/bigmember/src/entity/portraitWinnerSearch.go

@@ -31,13 +31,13 @@ func GetWinnerIdByName(entName string) (entId string) {
 	return
 }
 
-//中标企业最新中标动态查询【若id不存在,则用名字查询】
+//GetWinnerNewProject 中标企业最新中标动态查询【若id不存在,则用名字查询】(近五年)
 func GetWinnerNewProject(entId string, start, size int) []map[string]interface{} {
 	defer qutil.Catch()
 	if entId == "" {
 		return []map[string]interface{}{}
 	}
-	newData := elastic.GetPage("bidding", "bidding", `{"TERM_entidlist":"`+entId+`"}`, `{"publishtime":-1}`, newProject_fields, start, size)
+	newData := elastic.GetPage("bidding", "bidding", fmt.Sprintf(`{"TERM_entidlist":"%s","$and":[{"publishtime":{"$gte":%d}}]}`, entId, time.Now().AddDate(-5, 0, 0).Unix()), `{"publishtime":-1}`, newProject_fields, start, size)
 	if newData == nil || len(*newData) == 0 {
 		return []map[string]interface{}{}
 	}
@@ -70,10 +70,10 @@ func GetWinnerNewProject(entId string, start, size int) []map[string]interface{}
 	return *newData
 }
 
-//企业中标-中标动态数量
+//GetWinnerNewProjectCount 企业中标-中标动态数量(近五年)
 func GetWinnerNewProjectCount(entId string) int64 {
 	defer qutil.Catch()
-	return elastic.Count("bidding", "bidding", `{"query":{"bool":{"must":[{"term": {"entidlist": "`+entId+`"}}]}}}`)
+	return elastic.Count("bidding", "bidding", fmt.Sprintf(`{"query":{"bool":{"must":[{"term": {"entidlist": "%s"}},{"range":{"publishtime":{"gte":%d}}}]}}}`, entId, time.Now().AddDate(-5, 0, 0).Unix()))
 }
 
 //项目联系方式 查询最新200条记录 筛选获取联系方式
@@ -91,7 +91,7 @@ func GetProjectContactsMsg(buyerName, entId string) (list []map[string]interface
 		return list
 	}
 	searchSql := fmt.Sprintf(`{"query":{"bool":{"must":[%s]}},"_source":["_id","zbtime","projectname","list"],"sort":[{"zbtime":"desc"}],"size":200}`, strings.Join(musts, ","))
-	fmt.Println("searchSql", searchSql)
+	//fmt.Println("searchSql", searchSql)
 	projectList := elastic.Get("projectset", "projectset", searchSql)
 	if projectList == nil || len(*projectList) == 0 {
 		return list

+ 120 - 22
src/jfw/modules/bigmember/src/service/portrait/memberPortraitAction.go

@@ -11,21 +11,23 @@ import (
 	"github.com/go-xweb/xweb"
 )
 
-//大会员画像接口
+//EntPortrait 大会员画像接口
 type EntPortrait struct {
 	*xweb.Action
 	//中标企业画像
-	entDetail      xweb.Mapper `xweb:"/portrait/ent/detail"`       //企业基本信息
-	winnerNewMsg   xweb.Mapper `xweb:"/portrait/winner/getNewMsg"` //最新项目动态(需购买项目进度监控)
-	winnerContacts xweb.Mapper `xweb:"/portrait/winner/contacts"`  //历史项目联系方式
-	winnerPortrait xweb.Mapper `xweb:"/portrait/winner/getData"`   //最新项目动态
+	entDetail          xweb.Mapper `xweb:"/portrait/ent/detail"`       //企业基本信息
+	winnerNewMsg       xweb.Mapper `xweb:"/portrait/winner/getNewMsg"` //最新项目动态(需购买项目进度监控)
+	winnerContacts     xweb.Mapper `xweb:"/portrait/winner/contacts"`  //历史项目联系方式
+	winnerPortrait     xweb.Mapper `xweb:"/portrait/winner/getData"`   //最新项目动态
+	winnerMiniPortrait xweb.Mapper `xweb:"/portrait/winner/miniData"`  //三级页展示中标企业基础画像信息
 	//采购单位画像
-	buyerNewMsg   xweb.Mapper `xweb:"/portrait/buyer/getNewMsg"` //最新项目动态
-	buyerContacts xweb.Mapper `xweb:"/portrait/buyer/contacts"`  //采购项目联系方式
-	buyerPortrait xweb.Mapper `xweb:"/portrait/buyer/getData"`   //最新项目动态
+	buyerNewMsg       xweb.Mapper `xweb:"/portrait/buyer/getNewMsg"` //最新项目动态
+	buyerContacts     xweb.Mapper `xweb:"/portrait/buyer/contacts"`  //采购项目联系方式
+	buyerPortrait     xweb.Mapper `xweb:"/portrait/buyer/getData"`   //最新项目动态
+	buyerMiniPortrait xweb.Mapper `xweb:"/portrait/buyer/miniData"`  //三级页展示采购单位基础画像信息
 }
 
-//企业基本信息
+//EntDetail 企业基本信息
 func (this *EntPortrait) EntDetail() {
 	userId := qutil.ObjToString(this.GetSession("userId"))
 	rData, errMsg := func() (interface{}, error) {
@@ -46,6 +48,7 @@ func (this *EntPortrait) EntDetail() {
 	this.ServeJson(NewResult(rData, errMsg))
 }
 
+//WinnerContacts 中标企业历史联系人
 func (this *EntPortrait) WinnerContacts() {
 	userId := qutil.ObjToString(this.GetSession("userId"))
 	rData, errMsg := func() (interface{}, error) {
@@ -53,7 +56,7 @@ func (this *EntPortrait) WinnerContacts() {
 		if err != nil {
 			return nil, err
 		}
-		if false && !hasPower {
+		if !hasPower {
 			return nil, fmt.Errorf("非法请求")
 		}
 		entId := util.DecodeId(this.GetString("entId"))
@@ -71,7 +74,7 @@ func (this *EntPortrait) WinnerContacts() {
 	this.ServeJson(NewResult(rData, errMsg))
 }
 
-//企业画像-最新项目动态
+//WinnerNewMsg 企业画像-最新项目动态
 func (this *EntPortrait) WinnerNewMsg() {
 	userId := qutil.ObjToString(this.GetSession("userId"))
 	rData, errMsg := func() (interface{}, error) {
@@ -123,7 +126,7 @@ func (this *EntPortrait) WinnerNewMsg() {
 	this.ServeJson(NewResult(rData, errMsg))
 }
 
-//企业画像-画像数据查询
+//WinnerPortrait 企业画像-画像数据查询
 func (this *EntPortrait) WinnerPortrait() {
 	userId := qutil.ObjToString(this.GetSession("userId"))
 	rData, errMsg := func() (interface{}, error) {
@@ -131,14 +134,43 @@ func (this *EntPortrait) WinnerPortrait() {
 		if err != nil {
 			return nil, err
 		}
-		if !hasPower {
-			return nil, fmt.Errorf("非法请求")
-		}
 		entId := this.GetString("entId")
-		rData, err := cepm.WinnerPortraitData(util.DecodeId(entId))
+		rData, err := cepm.WinnerPortraitData(util.DecodeId(entId), hasPower)
+		if err != nil {
+			return nil, err
+		}
+		return rData, nil
+	}()
+	if errMsg != nil {
+		log.Printf("%s WinnerPortrait获取企业画像标信息出错:%s\n", userId, errMsg.Error())
+	}
+	this.ServeJson(NewResult(rData, errMsg))
+}
+
+//WinnerMiniPortrait 三级页中标单位引流数据展示(免费)
+func (this *EntPortrait) WinnerMiniPortrait() {
+	userId := qutil.ObjToString(this.GetSession("userId"))
+	rData, errMsg := func() (interface{}, error) {
+		cepm, _, err := entity.CreatePortraitManager(userId, "entPortrait")
 		if err != nil {
 			return nil, err
 		}
+		entId := util.DecodeId(this.GetString("entId"))
+		rData, err := cepm.WinnerMiniPortraitData(entId) //项目个数,项目金额
+		if err != nil {
+			return nil, err
+		}
+		//公司状态
+		if entInfo, err := cepm.GetEntInfo(entId); err == nil {
+			rData["status"] = entInfo["status"]
+			rData["type"] = entInfo["type"]
+		}
+		//项目动态数量
+		rData["biddingCount"] = cepm.GetWinnerNewCount(entId)
+		//历史联系人
+		if contactList, err := cepm.GetWinnerContactsMsg(entId); err == nil {
+			rData["contactList"], rData["contactCount"] = formatContact(contactList)
+		}
 		return rData, nil
 	}()
 	if errMsg != nil {
@@ -147,7 +179,7 @@ func (this *EntPortrait) WinnerPortrait() {
 	this.ServeJson(NewResult(rData, errMsg))
 }
 
-//采购单位画像-最新招标动态
+//BuyerNewMsg 采购单位画像-最新招标动态(免费用户仅可查看3条记录,付费50条)
 func (this *EntPortrait) BuyerNewMsg() {
 	userId := qutil.ObjToString(this.GetSession("userId"))
 	rData, errMsg := func() (interface{}, error) {
@@ -178,7 +210,7 @@ func (this *EntPortrait) BuyerNewMsg() {
 				limit = entity.PortraitNewMegsLimit - start
 			}
 		}
-
+		//免费用户仅可查看三条记录
 		rData, err := cepm.GetBuyerNewMsg(buyer, start, limit, hasPower)
 		if err != nil {
 			return nil, err
@@ -197,7 +229,7 @@ func (this *EntPortrait) BuyerNewMsg() {
 	this.ServeJson(NewResult(rData, errMsg))
 }
 
-//采购单位联系人
+//BuyerContacts 采购单位联系人(必须开通会员)
 func (this *EntPortrait) BuyerContacts() {
 	userId := qutil.ObjToString(this.GetSession("userId"))
 	rData, errMsg := func() (interface{}, error) {
@@ -205,7 +237,7 @@ func (this *EntPortrait) BuyerContacts() {
 		if err != nil {
 			return nil, err
 		}
-		if false && !hasPower {
+		if !hasPower {
 			return nil, fmt.Errorf("非法请求")
 		}
 		buyerName := this.GetString("buyer")
@@ -223,7 +255,7 @@ func (this *EntPortrait) BuyerContacts() {
 	this.ServeJson(NewResult(rData, errMsg))
 }
 
-//采购单位画像-数据
+//BuyerPortrait 采购单位画像-数据(免费用户可查看基本信息、项目统计、合作企业资本、年龄及地区分布)
 func (this *EntPortrait) BuyerPortrait() {
 	userId := qutil.ObjToString(this.GetSession("userId"))
 	rData, errMsg := func() (interface{}, error) {
@@ -240,7 +272,73 @@ func (this *EntPortrait) BuyerPortrait() {
 		return rData, nil
 	}()
 	if errMsg != nil {
-		log.Printf("%s WinnerPortrait获取采购单位画像标信息出错:%s\n", userId, errMsg.Error())
+		log.Printf("%s BuyerPortrait获取采购单位画像标信息出错:%s\n", userId, errMsg.Error())
+	}
+	this.ServeJson(NewResult(rData, errMsg))
+}
+
+//BuyerMiniPortrait 三级页采购单位引流数据展示(免费)
+func (this *EntPortrait) BuyerMiniPortrait() {
+	userId := qutil.ObjToString(this.GetSession("userId"))
+	rData, errMsg := func() (interface{}, error) {
+		cepm, _, err := entity.CreatePortraitManager(userId, "buyerPortrait")
+		if err != nil {
+			return nil, err
+		}
+		entName := this.GetString("buyer")
+		//所在地(省、市)、采购单位类型、采购项目数量、采购规模
+		rData, err := cepm.BuyerMiniPortraitData(entName)
+		if err != nil {
+			return nil, err
+		}
+		//招标动态数量
+		rData["biddingCount"] = cepm.GetBuyerNewCount(entName)
+		//采购联系人数量及历史联系人方式,成交时间(加密展示2条)
+		if contactList, err := cepm.GetBuyerContactsMsg(entName); err == nil {
+			rData["contactList"], rData["contactCount"] = formatContact(contactList)
+		}
+		return rData, nil
+	}()
+	if errMsg != nil {
+		log.Printf("%s BuyerMiniPortrait获取采购单位画像标信息出错:%s\n", userId, errMsg.Error())
 	}
 	this.ServeJson(NewResult(rData, errMsg))
 }
+
+//formatContact 格式化混淆联系人电话
+func formatContact(contactList []map[string]interface{}) (confusing []map[string]interface{}, total int) {
+	total = len(contactList)
+	deConfusingMap := make(map[string]bool) //去重
+	for _, contactMap := range contactList {
+		var thePhone string
+		rowData, _ := contactMap["contacts"].(map[string]string)
+		for phone := range rowData {
+			if !deConfusingMap[phone] && phone != "" {
+				thePhone = phone
+			}
+		}
+		if len(thePhone) < 7 {
+			continue
+		}
+
+		var confusingPhone string
+		if len([]rune(thePhone)) == 11 {
+			confusingPhone = thePhone[:3] + "****" + thePhone[8:]
+		} else if len([]rune(thePhone)) == 7 {
+			confusingPhone = thePhone[:2] + "***" + thePhone[5:]
+		} else {
+			confusingPhone = thePhone[:5] + "***" + thePhone[8:]
+		}
+		deConfusingMap[confusingPhone] = true
+
+		confusing = append(confusing, map[string]interface{}{
+			"contact": confusingPhone,
+			"date":    contactMap["date"],
+		})
+		//仅返回两条
+		if len(confusing) == 2 {
+			break
+		}
+	}
+	return
+}

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

@@ -115,7 +115,7 @@ func (this *SubVipPortrait) SubVipPortrait() {
 		if err = bigMsg.SubVipPortraitTimesCheck(db.Mysql, entId); err != nil {
 			return nil, err
 		}
-		rData, err := cepm.WinnerPortraitData(entId)
+		rData, err := cepm.WinnerPortraitData(entId, true)
 		if err != nil {
 			return nil, err
 		}

+ 26 - 2
src/jfw/modules/subscribepay/src/entity/dataExportPackStruct.go

@@ -276,6 +276,28 @@ func (this *dataExportPackStruct) GetDataExportRecordList(userId, memberPid stri
 				if filterId, _ := filterMap["FilterId"].(string); filterId != "" {
 					returnRow["search"] = getSearchValueById(filterId)
 				} else {
+					filterMap["area"] = filterMap["Area"]
+					t, _ := filterMap["Time"].(string)
+					if strings.Contains(t, "_") {
+						t1 := strings.Split(t, "_")[0]
+						t2 := strings.Split(t, "_")[1]
+						if len([]rune(t1)) > 10 {
+							t1 = string([]rune(t)[:10])
+						}
+						if len([]rune(t2)) > 10 {
+							t2 = string([]rune(t2)[:10])
+						}
+						t = t1 + "_" + t2
+					} else {
+						if len([]rune(t)) > 10 {
+							t = string([]rune(t)[:10])
+						}
+					}
+					filterMap["publishtime"] = t
+					filterMap["buyerclass"] = filterMap["Buyerclass"]
+					delete(filterMap, "Area")
+					delete(filterMap, "Time")
+					delete(filterMap, "Buyerclass")
 					returnRow["search"] = filterMap
 				}
 			}
@@ -526,12 +548,14 @@ func getCurrEntCount(entName, entPhone string) int {
 
 //根据筛选id获取筛选条件
 func getSearchValueById(filterId string) (searchMap map[string]interface{}) {
-	filter, _ := util.MQFW.FindById("export_search", filterId, `{"industry":1,"publishtime":1,"area":1}`)
+	filter, _ := util.MQFW.FindById("export_search", filterId, `{"buyerclass":1,"publishtime":1,"area":1,"comeinfrom":1}`)
 	if filter != nil && len(*filter) > 0 {
 		searchMap = make(map[string]interface{})
-		searchMap["industry"] = (*filter)["industry"]
+		searchMap["buyerclass"] = (*filter)["buyerclass"]
 		searchMap["publishtime"] = (*filter)["publishtime"]
 		searchMap["area"] = (*filter)["area"]
+		searchMap["id"] = qutil.SE.Encode2Hex(filterId)
+		searchMap["comeinfrom"] = (*filter)["comeinfrom"]
 	}
 	return
 }

+ 20 - 0
src/jfw/modules/subscribepay/src/service/dataExportPay.go

@@ -26,6 +26,7 @@ type DataExportPay struct {
 	createOrder xweb.Mapper `xweb:"/dataExport/createOrder"` //移动端创建订单
 	//vipDailyDataExport        xweb.Mapper `xweb:"/dataExport/vipDaily"`        //大会员数据包数据导出
 	//vipDailyDataExportSuccess xweb.Mapper `xweb:"/dataExport/vipDailySuccess"` //大会员数据包导出生成是否成功
+	historyById xweb.Mapper `xweb:"/dataExport/historyById"` //历史条件
 }
 
 var reg *regexp.Regexp //匹配特殊字符
@@ -253,6 +254,25 @@ func (p *DataExportPay) GetPrice() {
 	})
 }
 
+//根据id获取导出条件
+func (p *DataExportPay) HistoryById() {
+	id := p.GetString("id")
+	id = qutil.SE.Decode4Hex(id)
+	if id != "" {
+		data, _ := util.MQFW.FindById("export_search", id, nil)
+		if data != nil {
+			delete(*data, "_id")
+			delete(*data, "comeintime")
+			delete(*data, "comeinfrom")
+			delete(*data, "s_openid")
+			delete(*data, "s_userid")
+		}
+		p.ServeJson(data)
+		return
+	}
+	p.ServeJson(map[string]interface{}{})
+}
+
 //
 //func (this *DataExportPay) VipDailyDataExport() {
 //	userId, _ := this.GetSession("userId").(string)

+ 5 - 3
src/web/staticres/common-module/collection/css/index.css

@@ -845,9 +845,10 @@
     line-height: 0.48rem;
 }
 .vip_openDialog  .vip_content{
+    padding: 0.32rem;
     display: flex;
     justify-content: center;
-    margin-top: 0.4rem;
+    /* margin-top: 0.4rem; */
     font-size: 0.28rem;
     font-weight: 400;
     text-align: CENTER;
@@ -857,10 +858,10 @@
 }
 .vip_openDialog .vip_content .vip_content_div{
     position: relative;
-    width: 4.82rem;
+    width: 5.42rem;
 }
 .vip_openDialog .vip_content .vip_img{
-    width: 4.82rem;
+    width: 5.42rem;
 }
 .vip_openDialog .vip_content .vip_example{
     position: absolute;
@@ -879,6 +880,7 @@
 }
 .vip_openDialog  .vip_head .vip_extend{
     font-size: 0.26rem;
+    color: #171826;
 }
 .vip_openDialog .openBtn{
     width: 100%;

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

@@ -1,14 +1,14 @@
 var vipDialog = `
 <div class="vip_openDialog">
-  <div class="vip_head">
-      <span>{{getTextMap.titleText}}</span>
-      <span class="vip_extend"><span>{{getTextMap.headText.top}}</span><br/>{{getTextMap.headText.bot}}</span>
-  </div>
   <div class="vip_content">
     <div class="vip_content_div">
       <img class="vip_img" :src="imgurl" />
       <span class="vip_example">示例</span>
     </div>
+  </div>  
+  <div class="vip_head">
+      <span style="display:none;">{{getTextMap.titleText}}</span>
+      <span class="vip_extend"><span>{{getTextMap.headText.top}}</span><br/>{{getTextMap.headText.bot}}</span>
   </div>
   <div class="openBtn">
       <button class="goBtn" @click="goOpen(getTextMap.headText.top,getTextMap.headText.bot, getTextMap.source)">{{getTextMap.btnText}}</button>

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

@@ -27,10 +27,12 @@ var vNode = {
                 _4: false,
                 // 是否显示中标企业动态
                 _13: false,
-                isMember: 0 // 是否是大会员
+                isMember: 0, // 是否是大会员
+                arr: [], // 权限列表
+                vipStatus: 0 // 是否是超级订阅
             },
             powerInfo: {},
-            tabActiveName: '1',
+            tabActiveName: '',
             // 企业信息
             entInfo: {
                 name: '',
@@ -65,7 +67,7 @@ var vNode = {
                 showGetNextButton: true
             },
             entPortraitInfo: {},
-            stickyTop: 80,
+            stickyTop: 0,
             singleTab: true,
             // 年度项目统计设置
             annualSetting:{
@@ -118,7 +120,8 @@ var vNode = {
                 provin: 0, // 购买省份数量
                 visited: false // 是否查看中标信息
             },
-            portrait:'winner'
+            portrait:'winner',
+            showBaseInfo: false
         }
     },
     created: function () {
@@ -135,6 +138,7 @@ var vNode = {
         this.entInfo.id = eId
         this.entInfo.name = ''
         this.restore = this.reStoreState()
+        this.getEntVisits()
         this.getPowerInfo()
         if (!this.restore) {
             // 获取企业基本信息
@@ -157,42 +161,42 @@ var vNode = {
         })
     },
     watch: {
-        tabActiveName: function (newVal, oldVal) {
-            var _this = this
-            if (newVal == '2') {
-                this.$nextTick(function () {
-                    if (_this.gotTab2) {
-                        // 初始化图表
-                        if (_this.entPortraitInfo && _this.conf.showPortraitAll && !_this.singleTab) {
-                            _this.initChartsData();
-                        }
-                    } else {
-                        if (_this.conf._4) {
-                            // 获取企业画像信息-4
-                            _this.getEntPortrait(function () {
-                                _this.initChartsData()
-                            })
-                            _this.gotTab2 = true
-                            console.log('获取企业全景分析...')
-                        }
-                        // 获取企业中标动态-13
-                        if (_this.conf._13) {
-                            _this.getProjectNews()
-                            _this.gotTab2 = true
-                            console.log('获取企业中标动态...')
-                        }
-                        if(_this.powerInfo.memberStatus <= 0) {
-                            // 不是大会员点击中标信息使用次数加一
-                            // if(!_this.entvisit.visited) {
-                            //     _this.entvisit.usage++
-                            //     _this.entvisit.visited = true
-                            // }
-                        }
-                        _this.gotTab2 = true
-                    }
-                });
-            }
-        },
+        // tabActiveName: function (newVal, oldVal) {
+        //     var _this = this
+        //     if (newVal == '2') {
+        //         this.$nextTick(function () {
+        //             if (_this.gotTab2) {
+        //                 // 初始化图表
+        //                 if (_this.entPortraitInfo && _this.conf.showPortraitAll && !_this.singleTab) {
+        //                     _this.initChartsData();
+        //                 }
+        //             } else {
+        //                 if (_this.conf._4) {
+        //                     // 获取企业画像信息-4
+        //                     _this.getEntPortrait(function () {
+        //                         _this.initChartsData()
+        //                     })
+        //                     _this.gotTab2 = true
+        //                     console.log('获取企业全景分析...')
+        //                 }
+        //                 // 获取企业中标动态-13
+        //                 if (_this.conf._13) {
+        //                     _this.getProjectNews()
+        //                     _this.gotTab2 = true
+        //                     console.log('获取企业中标动态...')
+        //                 }
+        //                 if(_this.powerInfo.memberStatus <= 0) {
+        //                     // 不是大会员点击中标信息使用次数加一
+        //                     // if(!_this.entvisit.visited) {
+        //                     //     _this.entvisit.usage++
+        //                     //     _this.entvisit.visited = true
+        //                     // }
+        //                 }
+        //                 _this.gotTab2 = true
+        //             }
+        //         });
+        //     }
+        // },
     },
     computed: {
         // 3个权限有1个就为true(取反为3个权限1个都没有)
@@ -205,19 +209,64 @@ var vNode = {
         },
         // 查看次数为零,显示遮罩
         getStatus: function () {
-            return (!this.conf._4 && !this.isVip) || (this.entvisit.total <= this.entvisit.usage && this.powerInfo.memberStatus <= 0 && !this.entvisit.visited)
+            return (!this.conf._4 && !this.isVip) || (this.entvisit.total <= this.entvisit.usage && this.powerInfo.memberStatus <= 0 && !this.entvisit.visited) || (this.entvisit.total <= this.entvisit.usage && !this.showContacts && !this.entvisit.visited)
         },
         isMember () {
           return this.powerInfo.memberStatus <= 0 || !this.conf._4
         },
         isShowUpTip () {
-            return this.entvisit.provin == -1 ? false : !this.surplus
+          return this.entvisit.provin == -1 ? false : true && !this.surplus && this.isVip && this.powerInfo.memberStatus <= 0 && !this.entvisit.visited
         },
         surplus: function () {
             return this.entvisit.total > this.entvisit.usage
+        },
+        showContacts: function () {
+          return this.conf.arr.indexOf(4) > -1 && this.powerInfo.memberStatus > 0
+        },
+        // 是否展示升级提示 是新超级订阅用户且购买的不是全国且浏览次数已用完
+        showUpdateTip: function() {
+          return this.isVip && this.entvisit.provin !== -1 && !this.surplus && this.conf._4 && this.powerInfo.memberStatus <= 0
+        },
+        // 是否隐藏动态 显示遮罩
+        hideDt: function() {
+          // 是新超级订阅 且不是大会员且次数已用完   或大会员没有项目动态权限
+          return this.isVip && this.powerInfo.memberStatus <= 0 && this.entvisit.total <= this.entvisit.usage || this.conf.arr.indexOf(13) === -1
         }
     },
     methods: {
+        getDataFn: function () {
+          var _this = this
+          this.$nextTick(function () {
+            // 初始化图表
+            if (_this.entPortraitInfo && _this.conf.showPortraitAll) {
+              _this.initChartsData();
+            }
+    
+            if (_this.conf._4) {
+              // 获取企业画像信息-4
+              _this.getEntPortrait(function () {
+                _this.initChartsData()
+              })
+              _this.gotTab2 = true
+              console.log('获取企业全景分析...')
+            }
+            // 获取企业中标动态-13
+            if (_this.conf._13) {
+              _this.getProjectNews()
+              _this.gotTab2 = true
+              console.log('获取企业中标动态...')
+            }
+            if (_this.powerInfo.memberStatus <= 0) {
+              // 不是大会员点击中标信息使用次数加一
+              // if(!_this.entvisit.visited) {
+              //     _this.entvisit.usage++
+              //     _this.entvisit.visited = true
+              // }
+            }
+            _this.gotTab2 = true
+    
+          });
+        },
         // 点击去开通记住tab栏下标
         tabActive: function(data) {
             this.savePageState()
@@ -267,10 +316,22 @@ var vNode = {
                 entId: _this.entInfo.id
             }
             let urls = ''
-            if(_this.powerInfo.memberStatus <= 0 || _this.svip) {
-                urls = '/bigmember/portrait/subVipPortrait/winner'
-            } else {
+            // 如果专家版、智慧版 调大会员接口,如果是专家版、自定义版,同时是超级订阅 根据可查看次数判断 调大会员还是超级订阅接口
+            if (_this.powerInfo.memberStatus > 0 && _this.powerInfo.memberStatus <= 2) {
+              urls = '/bigmember/portrait/winner/getData'
+            } else if (_this.powerInfo.memberStatus > 2) {
+              if ( _this.isVip) { // 超级订阅
+                if(_this.entvisit.total <= _this.entvisit.usage && !_this.entvisit.visited) {
+                  urls = '/bigmember/portrait/winner/getData'
+                } else {
+                  urls = '/bigmember/portrait/subVipPortrait/winner'
+                }
+              } else {
                 urls = '/bigmember/portrait/winner/getData'
+                // 商机版、自定义版
+              }
+            } else {
+              urls = '/bigmember/portrait/subVipPortrait/winner'
             }
             _this.getEntPortraitInfoTimes++
             $.ajax({
@@ -338,14 +399,23 @@ var vNode = {
             if (data.pageSign) {
                 this.loading = this.showLoading()
             }
-
             var urls = ''
-            if (this.isVip) {
-                urls = '/bigmember/portrait/subVipPortrait/winnerNewMsg'
-            } else {
+            // 判断专家版、智慧版; 商机版和自定义版时判断是不是超级订阅 
+            if (_this.powerInfo.memberStatus > 0 && _this.powerInfo.memberStatus <= 2) {
+              urls = '/bigmember/portrait/winner/getNewMsg'
+            } else if (_this.powerInfo.memberStatus > 2) {
+              if (_this.isVip) {
+                if (_this.entvisit.total <= _this.entvisit.usage && !_this.entvisit.visited) {
+                  urls = '/bigmember/portrait/winner/getNewMsg'
+                } else {
+                  urls = '/bigmember/portrait/subVipPortrait/winnerNewMsg'
+                }
+              } else {
                 urls = '/bigmember/portrait/winner/getNewMsg'
+              }
+            } else {
+              urls = '/bigmember/portrait/subVipPortrait/winnerNewMsg'
             }
-
             $.ajax({
                 type: 'POST',
                 url: urls,
@@ -518,6 +588,9 @@ var vNode = {
                             }
                         }
                         _this.conf.isMember = res.data.memberStatus
+                        _this.conf.arr = res.data.power
+                        _this.conf.vipStatus = res.data.memberStatus
+                        _this.getDataFn()
                     } else {
                         _this.$toast(res.error_msg)
                     }
@@ -585,7 +658,7 @@ var vNode = {
             this.arrangeImportantData(dataSet.topShow)
         },
         getStickyTop: function () {
-            this.stickyTop = $('.jy-app-header').height() - 1
+            // this.stickyTop = $('.jy-app-header').height() - 1
         },
         goToEntHistory: function () {
             // if (this.powerInfo.isSubCount) {

+ 34 - 15
src/web/staticres/common-module/collection/js/money-mobile.js

@@ -171,6 +171,20 @@ var moneyComponent = {
   },
   mounted () {
     $('head').append(tempMoneyStyleComponent)
+    // 输入框问题处理
+    var fixedHeight = document.documentElement.clientHeight || 0
+    var _this = this
+    window.addEventListener('resize', function () {
+      var tempH = document.documentElement.clientHeight || 0
+      if (tempH < fixedHeight) {
+        _this.changeViewForHeight(true)
+      } else {
+        _this.changeViewForHeight(false)
+      }
+    });
+    window.addEventListener('popstate',function () {
+      $(document.activeElement).trigger('blur')
+    })
   },
   computed: {
     getShowDiyInput () {
@@ -222,25 +236,30 @@ var moneyComponent = {
         }
       }
     },
-    toggleInput (type) {
-      var parentDom = $("#v-search-group .more-popup-content")
-      var childDom = $("#v-search-group .more-popup-content .select-more-tag-group")
+    changeViewForHeight (type) {
+      $(".app-layout-content-b").scrollTop(0)
+      $("#v-search-group .popup-content").scrollTop(0)
+      var tempDom = $("#v-search-group .ent-search-pop")
       if (type) {
-        parentDom.css({
-          height: childDom.height() + 20,
-          overflow: 'hidden',
-          position: 'fixed',
-          top: '120px'
-        })
+        var minHeightList = [document.documentElement.clientHeight || 0, document.body.clientHeight || 0, $(".app-layout-content-b").height() || 0].sort()
+        if (!tempDom.attr('data-height')) {
+          tempDom.attr('data-height', tempDom.height())
+        }
+        tempDom.css({height: minHeightList[0] - 44})
       } else {
-        parentDom.css({
-          height: 'auto',
-          overflow: 'unset',
-          position: 'unset',
-          top: 'unset'
-        })
+        tempDom.css({height: tempDom.attr('data-height')})
+        tempDom.removeAttr('data-height')
       }
     },
+    toggleInput (type) {
+     this.changeViewForHeight(type)
+      document.activeElement.scrollIntoViewIfNeeded();
+      var _this = this
+      setTimeout(function (){
+        _this.changeViewForHeight(type)
+        document.activeElement.scrollIntoViewIfNeeded();
+      }, 120)
+    },
     selectInput (type) {
       if (this.radio) {
         this.resetSelected()

+ 45 - 19
src/web/staticres/common-module/collection/js/vip-dialog.js

@@ -1,15 +1,15 @@
 var vipDialog = `
 <div class="vip_openDialog">
-  <div class="vip_head">
-      <span>{{getTextMap.titleText}}</span>
-      <span class="vip_extend"><span>{{getTextMap.headText.top}}</span><br/>{{getTextMap.headText.bot}}</span>
-  </div>
   <div class="vip_content">
     <div class="vip_content_div">
       <img class="vip_img" :src="imgurl" />
       <span class="vip_example">示例</span>
     </div>
   </div>
+  <div class="vip_head">
+      <span style="display:none;">{{getTextMap.titleText}}</span>
+      <span class="vip_extend"><span>{{getTextMap.headText.top}}</span><br/>{{getTextMap.headText.bot}}</span>
+  </div>
   <div class="openBtn">
       <button class="goBtn" @click="goOpen(getTextMap.source)">{{getTextMap.btnText}}</button>
   </div>
@@ -53,6 +53,12 @@ var vipComponent = {
       default: function () {
         return {}
       }
+    },
+    'newvip': {
+      type: Boolean,
+      default: function() {
+        return false
+      }
     }
   },
   data: function() {
@@ -67,6 +73,7 @@ var vipComponent = {
   },
   computed: {
     getTextMap () {
+      // console.log(this.power)
       var textMap = {
         titleText: '开通超级订阅',
         btnText: '去开通',
@@ -76,15 +83,34 @@ var vipComponent = {
         },
         source: ''
       }
-      if (this.entvisit.total <= this.entvisit.usage || this.vipststus > 0) {
-        if (this.entvisit.provin == 0) {
-          textMap.btnText = '去开通'
-        } else if (this.entvisit.provin != -1) {
-          textMap.titleText = '超级订阅'
-          textMap.btnText = '去升级'
-        } else if(this.entvisit.provin == -1) {
-          textMap.titleText = '超级订阅'
+      console.log(this.power, this.power.isMember, this.power._4, this.power._13, this.newvip,this.entvisit, this.power.vipStatus)
+      if (this.power.isMember > 0 ) {
+        if (this.entvisit.total <= this.entvisit.usage && this.newvip) {
           textMap.btnText = '联系客服'
+        } else {
+          if (this.type === 'item_1') {
+            textMap.btnText = !this.newvip && this.power.vipStatus > 0  ? '去升级' : '去开通'
+          } else {
+            textMap.btnText = '联系客服'
+          }
+        }
+      } else {
+        if (this.entvisit.total <= this.entvisit.usage && this.newvip) {
+          if (this.entvisit.provin == 0) {
+            textMap.btnText = '去开通'
+          } else if (this.entvisit.provin != -1) {
+            textMap.titleText = '超级订阅'
+            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  ? '去升级' : '去开通'
+          } else {
+            textMap.btnText = '免费体验'
+          }
         }
       }
       switch (this.type) {
@@ -97,7 +123,7 @@ var vipComponent = {
           // 年度项目统计
         case 'item_2': {
           textMap.titleText = '开通大会员'
-          textMap.btnText = this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
+          // textMap.btnText =  this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
           textMap.headText.top = '年度项目规模、增长趋势一目了然,'
           textMap.headText.bot = '快速分析市场!'
           textMap.source = 'ent_portrait_yearData'
@@ -106,7 +132,7 @@ var vipComponent = {
           // 月度中标金额统计
         case 'item_3': {
           textMap.titleText = '开通大会员'
-          textMap.btnText = this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
+          // textMap.btnText = this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
           textMap.headText.top = '纵向对比采购单位近三年月度采购规模,'
           textMap.headText.bot = '不错过任何商机!'
           textMap.source = 'ent_portrait_monthData'
@@ -115,7 +141,7 @@ var vipComponent = {
           // 市场区域分布
         case 'item_4': {
           textMap.titleText = '开通大会员'
-          textMap.btnText = this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
+          // textMap.btnText = this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
           textMap.headText.top = '通过企业市场规模、市场格局,'
           textMap.headText.bot = '分析企业的市场发展现状!'
           textMap.source = 'ent_portrait_areaData'
@@ -124,7 +150,7 @@ var vipComponent = {
           // 各类客户平均折扣率
         case 'item_5': {
           textMap.titleText = '开通大会员'
-          textMap.btnText = this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
+          // textMap.btnText = this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
           textMap.headText.top = '通过近3年各类客户平均折扣率范围,'
           textMap.headText.bot = '透视企业的行业盈利能力!'
           textMap.source = 'ent_portrait_discountRate'
@@ -133,7 +159,7 @@ var vipComponent = {
           // 客户类型分布
         case 'item_6': {
           textMap.titleText = '开通大会员'
-          textMap.btnText = this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
+          // textMap.btnText = this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
           textMap.headText.top = '通过企业主要客户类型分析,'
           textMap.headText.bot = '洞悉企业业务模式、经营状况!'
           textMap.source = 'ent_portrait_top10'
@@ -142,7 +168,7 @@ var vipComponent = {
           // 重点客户
         case 'item_7': {
           textMap.titleText = '开通大会员'
-          textMap.btnText = this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
+          // textMap.btnText = this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
           textMap.headText.top = '通过挖掘企业重点客户,直观了解采购单位'
           textMap.headText.bot = '与供应商关系远近,辅助投标决策!'
           textMap.source = 'ent_portrait_topShow'
@@ -160,7 +186,7 @@ var vipComponent = {
           // 历史项目联系方式
         case 'item_9': {
           textMap.titleText = '开通大会员'
-          textMap.btnText = this.power.isMember > 0 && !this.power._4 ? '联系客服' : '免费体验'
+          textMap.btnText = this.power.isMember > 0 && this.power.arr.indexOf(4) == -1 ? '联系客服' : '免费体验'
           textMap.headText.top = '获取企业历史项目联系人信息,'
           textMap.headText.bot = '直接与甲方或渠道商项目负责人对接!'
           textMap.source = 'ent_portrait_contacts'

+ 1 - 0
src/web/staticres/css/collect-user-info.css

@@ -258,6 +258,7 @@
 #success-dialog .success-dialog-container{
   position: fixed;
   width: 380px;
+  height: auto;
   top: 50%;
   left: 50%;
   padding: 20px;

+ 26 - 11
src/web/staticres/css/wxcontentinfo.css

@@ -378,8 +378,8 @@
 
 .bigvip_drain{
 	display: flex;
-	align-items: center;
-	justify-content: center;
+	/* align-items: center; */
+	/* justify-content: center; */
 	padding: .24rem .3rem;
 	width: 100%;
 	min-height: .96rem;
@@ -387,17 +387,32 @@
 }
 
 .bigvip_drain .bigvip_text{
-	text-align: left;
-	font-size: .34rem;
-	font-family: "YSBTH";
+  width: 100%;
+  text-align: left;
+	font-size: .26rem;
+	/* font-family: YouShe; */
 	font-weight: 400;
-	color: #ffffff;
-	line-height: .48rem;
+	/* color: #ffffff; */
+  line-height: .4rem;
+  color: #171826;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+.bigvip_drain  .bigvip_ad{
+  flex: 1;
+  margin-right: 0.08rem;
 }
 .bigvip_drain .bigvip_btn{
-	font-size: .34rem;
-	font-family: "YSBTH";
+	display: inline-block;
+  padding: 0 .12rem;
+  font-size: .26rem;
+  height: .48rem;
+	/* font-family: YouShe; */
 	font-weight: 400;
-	color: #ff9f40;
-	line-height: .48rem;
+	color: #fff;
+  line-height: .48rem;
+  background: #2abed1;
+  border-radius: 8px;
+  text-align: center;
 }

+ 8 - 0
src/web/staticres/frontRouter/pc/my_data_packet/js/index-pc.js

@@ -35,6 +35,11 @@ var vm = new Vue({
       }
     },
     methods: {
+      onClickRow (row, c, event) {
+    	if(event.target.className!="dian-ji"&&row.search!=null&&(row.search.comeinfrom=="supersearchPage"||row.search.comeinfrom=="exportPage")){
+			window.location.href = "/front/dataExport/toSieve?id="+row.search.id;
+		}
+      },
       goBuyPage () {
         location.href = '/front/dataPack/createOrder'
       },
@@ -56,6 +61,9 @@ var vm = new Vue({
         history.replaceState('', null, query)
       },
       searchChange (val) {
+        if ($.isArray(val)) {
+          val = val.join(',')
+        }
         let str = ""
         if(val&&val !== undefined){
             return str = String(val).replace(/,/g, "、")

+ 99 - 0
src/web/staticres/js/common.js

@@ -488,6 +488,105 @@ function moveEnd(obj) {
 function mySysIsIos(){
 	return !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
 }
+// 金额转换
+function moneyUnit(num, type, lv) {
+  if (num === '' || num == null || num == undefined || isNaN(num)) return ''
+  var levelArr = ['元', '万元', '亿元', '万亿元']
+  if (type === void 0) {
+      type = 'string';
+  }
+  if (lv === void 0) {
+      lv = 0;
+  }
+  if (num === 0) {
+      if (type === 'string') {
+          return '0';
+      }
+      if (type === 'lv') {
+          return levelArr[lv];
+      }
+      if (type === 'number') {
+          return 0;
+      }
+      if (type === 'index') {
+          return lv;
+      }
+  }
+  var result = num / Math.pow(10000, lv);
+  if (result > 10000 && lv < 2) {
+      return this.moneyUnit(num, type, lv + 1)
+  } else {
+      if (type === 'string') {
+          return String(Math.floor(result * 100) / 100).replace('.00', '') + levelArr[lv];
+      }
+      if (type === 'lv') {
+          return levelArr[lv];
+      }
+      if (type === 'index') {
+          return lv;
+      }
+      if (type === 'number') {
+          return String(Math.floor(result * 100) / 100).replace('.00', '');
+      }
+  }
+}
+/*
+   * 时间格式化函数(将时间格式化为,2019年08月12日,2019-08-12,2019/08/12的形式)
+   *
+   *
+   *   pattern参数(想要什么格式的数据就传入什么格式的数据)
+   *     · 'yyyy-MM-dd'  ---> 输出如2019-09-20
+   *     · 'yyyy-MM-dd hh:mm'  --->  输出如2019-09-20 08:20
+   *     · 'yyyy-MM-dd HH:mm:ss'  --->  输出如2019-09-20 18:20:23
+   *     · 'yyyy/MM/dd'  --->  输出如2019/09/20
+   *     · 'yyyy年MM月dd日'  --->  输出如2019年09月20日
+   *     · 'yyyy年MM月dd日 hh时mm分'  --->  输出如2019年09月20日 08时20分
+   *     · 'yyyy年MM月dd日 hh时mm分ss秒'  --->  输出如2019年09月20日 08时20分23秒
+   *     · 'yyyy年MM月dd日 hh时mm分ss秒 EE'  --->  输出如2019年09月20日 08时20分23秒 周二
+   *     · 'yyyy年MM月dd日 hh时mm分ss秒 EEE'  --->  输出如2019年09月20日 08时20分23秒 星期二
+   *
+   *  参考: https://www.cnblogs.com/mr-wuxiansheng/p/6296646.html
+*/
+  Date.prototype.pattern = function (fmt) {
+    if (!fmt) return ''
+    var o = {
+        'y+': this.getFullYear(),
+        'M+': this.getMonth() + 1, // 月份
+        'd+': this.getDate(), // 日
+        // 12小时制
+        'h+': this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, // 小时
+        // 24小时制
+        'H+': this.getHours(), // 小时
+        'm+': this.getMinutes(), // 分
+        's+': this.getSeconds(), // 秒
+        'q+': Math.floor((this.getMonth() + 3) / 3), // 季度
+        'S': this.getMilliseconds(), // 毫秒
+        'E+': this.getDay(), // 周
+    };
+    var week = {
+        '0': '日',
+        '1': '一',
+        '2': '二',
+        '3': '三',
+        '4': '四',
+        '5': '五',
+        '6': '六'
+    };
+    if (/(y+)/.test(fmt)) {
+        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
+    }
+    if (/(E+)/.test(fmt)) {
+        fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? '星期' : '周') : '') + week[
+            this.getDay() + '']);
+    }
+    for (var k in o) {
+        if (new RegExp('(' + k + ')').test(fmt)) {
+            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k])
+                .length)));
+        }
+    }
+    return fmt;
+}
 $(function(){
 	//自定义tap
 	if("ontouchend" in document){

+ 26 - 4
src/web/staticres/js/ent-search-index-pc.js

@@ -551,12 +551,34 @@ var vm = new Vue({
             var svipLink = '/swordfish/page_big_pc/svip/ent_ser_portrait/' + id
             // 大会员画像
             var memberLink = '/swordfish/page_big_pc/ent_portrait/' + id
-
+            console.log(window.memberStatus, this.powerInfo.vip)
             if (this.powerInfo.member) {
-                if (this.powerInfo.vip > 0) {
-                    window.open(svipLink)
+                // 如果是专家版、智慧版 跳大会员页面
+                if (window.memberStatus <= 2) {
+                  window.open(memberLink)
                 } else {
-                    window.open(memberLink)
+                  // 如果是商机版、自定义版
+                  // 如果同时是超级订阅 判断有没有画像查看次数
+                  if (this.powerInfo.vip > 0) {
+                    $.ajax({
+                      type: "POST",
+                      url: "/bigmember/portrait/subVipPortrait/usage",
+                      data: {
+                        entId: id
+                      },
+                      success: function(r){
+                        // 如果次数已用完 跳大会员企业画像页面
+                        if (r.data.usage >= r.data.total) {
+                          window.open(memberLink)
+                        } else {
+                          // 没用完 超级订阅跳企业画像页面
+                          window.open(svipLink)
+                        }
+                      }
+                    });
+                  } else {
+                      window.open(memberLink)
+                  }
                 }
             } else {
                 window.open(svipLink)

+ 2 - 0
src/web/staticres/js/login.js

@@ -295,6 +295,8 @@ function checkBigStatus () {
     success: function (res) {
       if (res && res.data) {
         window.memberStatus = res.data.memberStatus
+        window.memberPower = res.data.power
+        window.vipStatus = res.data.vipStatus
         sessionStorage.setItem('bidPower', JSON.stringify(res.data.power))
         if (res.data.memberStatus > 0) {
           $(".myorderDiv.lastBox").show()

+ 1 - 1
src/web/staticres/js/pc-collect-bid-info.js

@@ -77,7 +77,7 @@ var temps = `
       <div class="mask"></div>
       <div class="success-dialog-container">
         <div class="success-title">提交成功</div>
-        <div class="success-content">我们的客户经理会在24小时内尽快与您联系。</div>
+        <div class="success-content">我们会尽快联系您并预约演示时间,请耐心等待~<br>您将获得免费体验大会员全部功能!</div>
         <div class="success-footer">
           <button type="button" class="custom-btn go-know" @click="showSuccess = false">我知道了</button>
         </div>

+ 1 - 1
src/web/staticres/js/pc-collect-partner-info.js

@@ -61,7 +61,7 @@ var temp = `
       <div class="mask"></div>
       <div class="success-dialog-container">
         <div class="success-title">提交成功</div>
-        <div class="success-content">我们的客户经理会在24小时内尽快与您联系。</div>
+        <div class="success-content">我们会尽快联系您并预约演示时间,请耐心等待~<br>您将获得免费体验大会员全部功能!</div>
         <div class="success-footer">
           <button type="button" class="custom-btn go-know" @click="showSuccess = false">我知道了</button>
         </div>

+ 7 - 2
src/web/staticres/js/pc-collect-user-info.js

@@ -133,7 +133,7 @@ var temp = `
       <div class="mask"></div>
       <div class="success-dialog-container">
         <div class="success-title">提交成功</div>
-        <div class="success-content">我们的客户经理会在24小时内尽快与您联系。</div>
+        <div class="success-content">我们会尽快联系您并预约演示时间,请耐心等待~<br>您将获得免费体验大会员全部功能!</div>
         <div class="success-footer">
           <button type="button" class="custom-btn go-know" @click="showSuccess = false">我知道了</button>
         </div>
@@ -347,7 +347,10 @@ var vm = new Vue({
         buyer_portrait_: '请留下联系方式,我们会尽快联系您!体验采购单位画像分析,为你挖掘客户!',
         member_attach: '请留下联系方式,我们会尽快联系您!体验附件下载特权,挖掘更多项目情报!',
         member_freeuse: '请留下联系方式,我们会尽快联系您体验大会员全部功能!',
-        pc_index_bottom_adv: '请留下联系方式,我们会尽快联系您体验:市场分析周报/月报、竞对实时监控和分析、业主采购趋势/客户分析等'
+        pc_index_bottom_adv: '请留下联系方式,我们会尽快联系您体验:市场分析周报/月报、竞对实时监控和分析、业主采购趋势/客户分析等',
+        article_ent_portrait: '请留下联系方式,我们会尽快联系您!体验企业画像分析,帮你透视企业!',
+        article_buyer_portrait: '请留下联系方式,我们会尽快联系您!体验采购单位画像分析,为你挖掘客户!',
+        article_slogan: '请留下联系方式,我们会尽快联系您体验大会员全部功能!'
       }
     }
   },
@@ -516,6 +519,8 @@ var vm = new Vue({
               }
             } else if (source == 'pc_index_bottom_adv') {
               location.href = '/big/page/index'
+            } else {
+              _this.showSuccess = true
             }
           }
         }

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 217 - 0
src/web/staticres/pccss/pc-detail.css


+ 247 - 224
src/web/templates/big-member/wx/page_unit_portrayal.html

@@ -61,7 +61,7 @@
           font-weight: normal;
         }
         .vip_openDialog{
-            padding: 0.56rem 0 0.64rem;
+            padding: 0 0 0.64rem;
             width: 6.06rem;
             /* height: 6.88rem; */
             background: url('{{Msg "seo" "cdn"}}/big-member/image/openVip.png') no-repeat;
@@ -134,232 +134,255 @@
                   </div>
               </div>
           </div>
-          <!-- 历史项目联系人 -->
-          <div class="vip_component" v-if="getStatus" style="height:10.8rem;background:url('/common-module/collection/image/buyer/01-bg.png?v=1') 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>
+          <div v-if="getStatus">
+            <!-- 历史项目联系人 -->
+            <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/01-bg.png') no-repeat;background-size:100% 100%">
+              <p class="example-title">历史项目联系方式</p>
+              <buyer-example :status="bigStatus" :power="power" type="item_1" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/01.png'></buyer-example>
+            </div>
           </div>
-          <div v-else>
+          <!-- 数据部分 -->
+          <div>
+            <!-- 历史项目联系人 -->
             <hispro-component class="history-list" type="buyer" :buyer="buyer.name"></hispro-component>
+            <!-- 年度项目统计 -->
+            <div class="years" v-if="isShow.showYearData">
+                <div class="chart_title">年度项目统计</div>
+                <ve-histogram
+                    ref="projectDataCharts"
+                    height="284px"
+                    :colors="colorGreen"
+                    :data="projectData"
+                    :init-options="initRendererSvg"
+                    :after-config="projectConfig"
+                    :settings="projectChartSettings"
+                    :extend="barChart.chartExtend">
+                </ve-histogram>
+                <div class="bar-tip">注:项目金额指所有项目的中标金额之和,少数缺失的中标金额,用项目预算补充。</div>
+            </div>
+            <!-- 月度采购规模统计 -->
+            <div class="month-scale" v-if="isShow.showMonthScale">
+                <div class="chart_title">月度采购规模统计</div>
+                <div class="lineChart">
+                    <div style="padding: 6px 12px 0;font-size: 10px;color: #9B9CA3;">采购规模(万元)</div>
+                    <ve-line :init-options="initRendererSvg" :data="monthScaleData" height="300px" :after-config="lineChartConfig" :extend="chartOptions.lineChart"></ve-line>
+                </div>
+                <div class="bar-tip">注:采购规模指中标金额,少数缺失的中标金额,用项目预算补充。</div>
+            </div>
+            <!-- 采购规模分布 -->
+            <div class="scale-distribute" v-if="isShow.showScaleFb">
+                <div class="chart_title">采购规模分布</div>
+                <div class="hotMapChart">
+                    <div id="myChart" ref="hotChart" :style="{height: heatMapHeight}"></div>
+                </div>
+                <div class="bar-tip">注:平均节支率=(全部项目预算-全部中标金额)/全部项目预算,是指价格减让部分与原价的比率,仅统计预算和中标金额同时存在的项目。</div>
+            </div>
+            <!-- 各类招标方式占比(双柱图) -->
+            <div class="double-bar" v-if="isShow.showBidType">
+                <div class="chart_title">各类招标方式占比</div>
+                <div class="bar-content">
+                    <div class="rate-item" v-for="(item,index) in doubleBar.list" @click.stop="tooltipHandle(item,index)">
+                        <div class="item-label">${item.type}</div>
+                        <div class="item-chart">
+                            <div class="left-chart">
+                                <div class="item-progress" v-if="item.lPercent > 50">
+                                    <span class="blue-progress-bg blue-padding" :style="{width: item.lPercent + '%'}">${item.num}(${item.numShare  + '%'})</span>
+                                </div>
+                                <div class="item-progress" v-else>
+                                    <span class="blue-progress-text">${item.num}(${item.numShare  + '%'})</span>
+                                    <span class="blue-progress-bg" :style="{width: item.lPercent + '%'}"></span>
+                                </div>
+                            </div>
+                            <div class="right-chart">
+                                <div class="item-progress" v-if="item.rPercent > 50">
+                                    <span class="yellow-progress-bg yellow-padding" :style="{width: item.rPercent + '%'}">${item.money}(${item.moneyShare + '%'})</span>
+                                </div>
+                                <div class="item-progress" v-else>
+                                    <span class="yellow-progress-bg" :style="{width: item.rPercent + '%'}"></span>
+                                    <span class="yellow-progress-text">${item.money}(${item.moneyShare + '%'})</span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="tooltip" v-show="doubleBar.showTooltip" :style="{left:doubleBar.info.positionLeft,top:doubleBar.info.positionTop}">
+                        <div class="tooltip-item">
+                            <span class="tooltip-circle blue-circle"></span>
+                            <span>数量(个)及占比:${doubleBar.info.num}(${doubleBar.info.numShare + '%'})</span>
+                        </div>
+                        <div class="tooltip-item">
+                            <span class="tooltip-circle yellow-circle"></span>
+                            <span>金额(万元)及占比:${doubleBar.info.money}(${doubleBar.info.moneyShare + '%'})</span>
+                        </div>
+                        <div class="tooltip-name">- ${doubleBar.info.type} -</div>
+                    </div>
+                    <div class="custom-legend">
+                        <div class="legend-item">
+                            <span class="tooltip-circle blue-circle"></span>
+                            <span>数量(个)及占比</span>
+                        </div>
+                        <div class="legend-item">
+                            <span class="tooltip-circle yellow-circle"></span>
+                            <span>金额(万元)及占比</span>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <!-- 各行业项目平均节支率 -->
+            <div class="savings-rate" v-if="isShow.showSaveRate">
+                <div class="chart_title">各行业项目平均节支率</div>
+                <div class="lineChart">
+                    <ve-line :init-options="initRendererSvg" :data="savingsRateData" height="314px" :after-config="savingsRateConfig" :extend="chartOptions.lineChart"></ve-line>
+                </div>
+            </div>
+            <!-- 各行业项目规模占比 -->
+            <div class="industry-scale-rate" v-if="isShow.showScaleRate">
+                <p class="chart_title">各行业项目规模占比</p>
+                <div class="pieChart">
+                    <div ref="pieChart" style="height: 360px;"></div>
+                </div>
+            </div>
+            <!-- 重点合作企业 -->
+            <div class="client" v-if="computedClientList && computedClientList.length> 0">
+                <div class="client-title">重点合作企业</div>
+                <div class="client-content">
+                    <div class="client-list" v-for="c in computedClientList" >
+                        <div class="c-thead">
+                            <strong class="c-name">${c.class}</strong>
+                            <span class="c-count">项目数量</span>
+                            <!-- <span class="c-rate">平均折扣率</span> -->
+                            <span class="c-time">最近合作日期</span>
+                        </div>
+                        <div class="progress-bar-container">
+                            <div class="progress-bar-item" v-for="(item,index) in c.topData" :key="index">
+                                <div class="item-label">
+                                    <span @click="goEntInfo(item)" class="ellipsis-2 item-name">${item.winnerName}</span>
+                                    <span class="item-count">${item.countProject}个</span>
+                                    <!-- <span class="item-rate">${item.rate}</span> -->
+                                    <span class="item-time">${item.lastTime}</span>
+                                </div>
+                                <div class="item-progress">
+                                    <span class="item-money"  v-if="item.countMoney > 0">${utils.moneyUnit(item.countMoney)}</span>
+                                    <span class="item-progress-count active-progress" :style="{width: item.parent}"></span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <!-- 合作企业注册资本分布 -->
+            <div class="industry-scale-rate" v-if="isShow.showCapital">
+                <p class="chart_title">合作企业注册资本分布</p>
+                <div class="barChart">
+                    <ve-histogram :init-options="initRendererSvg" height="284px" set-option-opts :data="regCapitalData" :after-config="regCapConfig" :settings="regCapSettings" :extend="chartOptions.barLineChart.chartExtend"> </ve-histogram>
+                </div>
+            </div>
+            <!-- 合作企业年龄分布 -->
+            <div class="industry-scale-rate" v-if="isShow.showAge">
+                <p class="chart_title">合作企业年龄分布</p>
+                <div class="barChart">
+                    <ve-histogram :init-options="initRendererSvg" height="284px" :data="workingAgeData" :after-config="workingAgeConfig" :extend="chartOptions.barLineChart.chartExtend"> </ve-histogram>
+                </div>
+            </div>
+            <!-- 合作企业注册地分布 -->
+            <div class="industry-scale-rate" v-if="isShow.showArea">
+                <p class="chart_title">合作企业注册地分布</p>
+                <div class="map" style="padding: 0 .32rem;">
+                    <ve-map
+                        :init-options="initRendererSvg"
+                        height="302px"
+                        :after-config="mapConfig"
+                        :data="mapChartData"
+                        :settings="mapSettings.chartSettings"
+                        :extend="mapSettings.chartExtend">
+                    </ve-map>
+                </div>
+            </div>
+            <!-- 重点合作代理机构 -->
+            <div class="agency" v-if="isShow.showAgency">
+                <div class="agency-title">重点合作代理机构</div>
+                <div class="agency-container">
+                    <div class="agency-thead">
+                        <strong class="a-name"></strong>
+                        <span class="a-count">项目数量</span>
+                        <span class="a-time">最近合作日期</span>
+                    </div>
+                    <div class="agency-tbody">
+                        <div v-for="item in agencyList" class="ab-list">
+                            <div class="ab-label">
+                                <span class="ellipsis-2 ab-name">${item.agency_name}</span>
+                                <span class="ab-count">${item.project_count}个</span>
+                                <span class="ab-time">${item.last_with_time}</span>
+                            </div>
+                            <div class="ab-progress">
+                                <span class="ab-progress-default progress-active" :style="{width: item.parent}"></span>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
           </div>
-          <!-- 年度项目统计 -->
-          <div class="years" v-if="isShow.showYearData">
-              <div class="chart_title">年度项目统计</div>
-              <ve-histogram
-                  ref="projectDataCharts"
-                  height="284px"
-                  :colors="colorGreen"
-                  :data="projectData"
-                  :init-options="initRendererSvg"
-                  :after-config="projectConfig"
-                  :settings="projectChartSettings"
-                  :extend="barChart.chartExtend">
-              </ve-histogram>
-              <div class="bar-tip">注:项目金额指所有项目的中标金额之和,少数缺失的中标金额,用项目预算补充。</div>
-          </div>
-          <div class="vip_component" v-if="getStatus" style="height:10.8rem;background:url('/common-module/collection/image/buyer/02-bg.png?v=1') 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>
-          </div>
-          <!-- 月度采购规模统计 -->
-          <div class="month-scale" v-if="isShow.showMonthScale">
-              <div class="chart_title">月度采购规模统计</div>
-              <div class="lineChart">
-                  <div style="padding: 6px 12px 0;font-size: 10px;color: #9B9CA3;">采购规模(万元)</div>
-                  <ve-line :init-options="initRendererSvg" :data="monthScaleData" height="300px" :after-config="lineChartConfig" :extend="chartOptions.lineChart"></ve-line>
-              </div>
-              <div class="bar-tip">注:采购规模指中标金额,少数缺失的中标金额,用项目预算补充。</div>
-          </div>
-          <div class="vip_component" v-if="getStatus" style="height:10.8rem;background:url('/common-module/collection/image/buyer/03-bg.png?v=1') 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>
-          </div>
-          <!-- 采购规模分布 -->
-          <div class="scale-distribute" v-if="isShow.showScaleFb">
-              <div class="chart_title">采购规模分布</div>
-              <div class="hotMapChart">
-                  <div id="myChart" ref="hotChart" :style="{height: heatMapHeight}"></div>
-              </div>
-              <div class="bar-tip">注:平均节支率=(全部项目预算-全部中标金额)/全部项目预算,是指价格减让部分与原价的比率,仅统计预算和中标金额同时存在的项目。</div>
-          </div>
-          <div class="vip_component" v-if="getStatus" style="height:10.8rem;background:url('/common-module/collection/image/buyer/04-bg.png?v=1') 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>
-          </div>
-          <!-- 各类招标方式占比(双柱图) -->
-          <div class="double-bar" v-if="isShow.showBidType">
-              <div class="chart_title">各类招标方式占比</div>
-              <div class="bar-content">
-                  <div class="rate-item" v-for="(item,index) in doubleBar.list" @click.stop="tooltipHandle(item,index)">
-                      <div class="item-label">${item.type}</div>
-                      <div class="item-chart">
-                          <div class="left-chart">
-                              <div class="item-progress" v-if="item.lPercent > 50">
-                                  <span class="blue-progress-bg blue-padding" :style="{width: item.lPercent + '%'}">${item.num}(${item.numShare  + '%'})</span>
-                              </div>
-                              <div class="item-progress" v-else>
-                                  <span class="blue-progress-text">${item.num}(${item.numShare  + '%'})</span>
-                                  <span class="blue-progress-bg" :style="{width: item.lPercent + '%'}"></span>
-                              </div>
-                          </div>
-                          <div class="right-chart">
-                              <div class="item-progress" v-if="item.rPercent > 50">
-                                  <span class="yellow-progress-bg yellow-padding" :style="{width: item.rPercent + '%'}">${item.money}(${item.moneyShare + '%'})</span>
-                              </div>
-                              <div class="item-progress" v-else>
-                                  <span class="yellow-progress-bg" :style="{width: item.rPercent + '%'}"></span>
-                                  <span class="yellow-progress-text">${item.money}(${item.moneyShare + '%'})</span>
-                              </div>
-                          </div>
-                      </div>
-                  </div>
-                  <div class="tooltip" v-show="doubleBar.showTooltip" :style="{left:doubleBar.info.positionLeft,top:doubleBar.info.positionTop}">
-                      <div class="tooltip-item">
-                          <span class="tooltip-circle blue-circle"></span>
-                          <span>数量(个)及占比:${doubleBar.info.num}(${doubleBar.info.numShare + '%'})</span>
-                      </div>
-                      <div class="tooltip-item">
-                          <span class="tooltip-circle yellow-circle"></span>
-                          <span>金额(万元)及占比:${doubleBar.info.money}(${doubleBar.info.moneyShare + '%'})</span>
-                      </div>
-                      <div class="tooltip-name">- ${doubleBar.info.type} -</div>
-                  </div>
-                  <div class="custom-legend">
-                      <div class="legend-item">
-                          <span class="tooltip-circle blue-circle"></span>
-                          <span>数量(个)及占比</span>
-                      </div>
-                      <div class="legend-item">
-                          <span class="tooltip-circle yellow-circle"></span>
-                          <span>金额(万元)及占比</span>
-                      </div>
-                  </div>
-              </div>
-          </div>
-          <div class="vip_component" v-if="getStatus" style="height:8.8rem;background:url('/common-module/collection/image/buyer/05-bg.png?v=1') 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>
-          </div>
-          <!-- 各行业项目平均节支率 -->
-          <div class="savings-rate" v-if="isShow.showSaveRate">
-              <div class="chart_title">各行业项目平均节支率</div>
-              <div class="lineChart">
-                  <ve-line :init-options="initRendererSvg" :data="savingsRateData" height="314px" :after-config="savingsRateConfig" :extend="chartOptions.lineChart"></ve-line>
-              </div>
-          </div>
-          <div class="vip_component" v-if="getStatus" style="height:10.8rem;background:url('/common-module/collection/image/buyer/06-bg.png?v=1') 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>
-          </div>
-          <!-- 各行业项目规模占比 -->
-          <div class="industry-scale-rate" v-if="isShow.showScaleRate">
-              <p class="chart_title">各行业项目规模占比</p>
-              <div class="pieChart">
-                  <div ref="pieChart" style="height: 360px;"></div>
-              </div>
-          </div>
-          <div class="vip_component" v-if="getStatus" style="height:11.2rem;background:url('/common-module/collection/image/buyer/07-bg.png?v=1') 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>
-          </div>
-          <!-- 重点合作企业 -->
-          <div class="client" v-if="computedClientList && computedClientList.length> 0">
-              <div class="client-title">重点合作企业</div>
-              <div class="client-content">
-                  <div class="client-list" v-for="c in computedClientList" >
-                      <div class="c-thead">
-                          <strong class="c-name">${c.class}</strong>
-                          <span class="c-count">项目数量</span>
-                          <!-- <span class="c-rate">平均折扣率</span> -->
-                          <span class="c-time">最近合作日期</span>
-                      </div>
-                      <div class="progress-bar-container">
-                          <div class="progress-bar-item" v-for="(item,index) in c.topData" :key="index">
-                              <div class="item-label">
-                                  <span @click="goEntInfo(item)" class="ellipsis-2 item-name">${item.winnerName}</span>
-                                  <span class="item-count">${item.countProject}个</span>
-                                  <!-- <span class="item-rate">${item.rate}</span> -->
-                                  <span class="item-time">${item.lastTime}</span>
-                              </div>
-                              <div class="item-progress">
-                                  <span class="item-money"  v-if="item.countMoney > 0">${utils.moneyUnit(item.countMoney)}</span>
-                                  <span class="item-progress-count active-progress" :style="{width: item.parent}"></span>
-                              </div>
-                          </div>
-                      </div>
-                  </div>
-              </div>
-          </div>
-          <div class="vip_component" v-if="getStatus" style="height:10.8rem;background:url('/common-module/collection/image/buyer/08-bg.png?v=1') 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>
-          </div>
-          <!-- 合作企业注册资本分布 -->
-          <div class="industry-scale-rate" v-if="isShow.showCapital">
-              <p class="chart_title">合作企业注册资本分布</p>
-              <div class="barChart">
-                  <ve-histogram :init-options="initRendererSvg" height="284px" set-option-opts :data="regCapitalData" :after-config="regCapConfig" :settings="regCapSettings" :extend="chartOptions.barLineChart.chartExtend"> </ve-histogram>
-              </div>
-          </div>
-          <div class="vip_component" v-if="getStatus" style="height:10.8rem;background:url('/common-module/collection/image/buyer/09-bg.png?v=1') 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>
-          </div>
-          <!-- 合作企业年龄分布 -->
-          <div class="industry-scale-rate" v-if="isShow.showAge">
-              <p class="chart_title">合作企业年龄分布</p>
-              <div class="barChart">
-                  <ve-histogram :init-options="initRendererSvg" height="284px" :data="workingAgeData" :after-config="workingAgeConfig" :extend="chartOptions.barLineChart.chartExtend"> </ve-histogram>
-              </div>
-          </div>
-          <div class="vip_component" v-if="getStatus" style="height:10.8rem;background:url('/common-module/collection/image/buyer/10-bg.png?v=1') 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>
-          </div>
-          <!-- 合作企业注册地分布 -->
-          <div class="industry-scale-rate" v-if="isShow.showArea">
-              <p class="chart_title">合作企业注册地分布</p>
-              <div class="map" style="padding: 0 .32rem;">
-                  <ve-map
-                      :init-options="initRendererSvg"
-                      height="302px"
-                      :after-config="mapConfig"
-                      :data="mapChartData"
-                      :settings="mapSettings.chartSettings"
-                      :extend="mapSettings.chartExtend">
-                  </ve-map>
-              </div>
-          </div>
-          <div class="vip_component" v-if="getStatus" style="height:10.8rem;background:url('/common-module/collection/image/buyer/11-bg.png?v=1') 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>
-          </div>
-          <!-- 重点合作代理机构 -->
-          <div class="agency" v-if="isShow.showAgency">
-              <div class="agency-title">重点合作代理机构</div>
-              <div class="agency-container">
-                  <div class="agency-thead">
-                      <strong class="a-name"></strong>
-                      <span class="a-count">项目数量</span>
-                      <span class="a-time">最近合作日期</span>
-                  </div>
-                  <div class="agency-tbody">
-                      <div v-for="item in agencyList" class="ab-list">
-                          <div class="ab-label">
-                              <span class="ellipsis-2 ab-name">${item.agency_name}</span>
-                              <span class="ab-count">${item.project_count}个</span>
-                              <span class="ab-time">${item.last_with_time}</span>
-                          </div>
-                          <div class="ab-progress">
-                              <span class="ab-progress-default progress-active" :style="{width: item.parent}"></span>
-                          </div>
-                      </div>
-                  </div>
-              </div>
-          </div>
-          <div class="vip_component" v-if="getStatus" style="height:10.8rem;background:url('/common-module/collection/image/buyer/12-bg.png?v=1') 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>
+          <!-- 遮罩部分 -->
+          <div v-if="getStatus">
+            <!-- 历史项目联系人 -->
+            <!-- <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/01-bg.png') no-repeat;background-size:100% 100%">
+              <p class="example-title">历史项目联系方式</p>
+              <buyer-example :status="bigStatus" :power="power" type="item_1" imgurl='{{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>
+            </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>
+            </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>
+            </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>
+            </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>
+            </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>
+            </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>
+            </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>
+            </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>
+            </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>
+            </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>
+            </div>
           </div>
       </div>
     </div>

+ 1 - 1
src/web/templates/frontRouter/wx/bigmember/free/perfect_info.html

@@ -1044,7 +1044,7 @@
                 } else {
                   _this.$dialog.close()
                   _this.$dialog.confirm({
-                    message: '您的申请已提交,我们的客户经理会在24小时内尽快与您联系。',
+                    message: '您的申请已提交,我们会尽快联系您并预约演示时间,请耐心等待~您将获得免费体验大会员全部功能!',
                     className: 'ent-search-dialog max-54',
                     overlayClass: 'z-2030',
                     showCancelButton: false,

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

@@ -41,7 +41,7 @@
         line-height: 0.4rem;
     }
     .vip_openDialog{
-        padding: 0.56rem 0 0.64rem;
+        padding: 0 0 0.64rem;
         width: 6.06rem;
         background: url('{{Msg "seo" "cdn"}}/big-member/image/openVip.png') no-repeat;
         background-size: 100% 100%;
@@ -98,6 +98,7 @@
             :class="singleTab ? 'single-tab' : ''"
             v-model="tabActiveName"
             sticky
+            scrollspy
             color="#2cb7ca"
             title-active-color="#2cb7ca"
             title-inactive-color="#5F5E64"
@@ -105,101 +106,107 @@
             v-if="conf.powerLoaded && conf.showPortraitAll"
             :offset-top="stickyTop">
             <van-tab name="1" title="企业信息">
-                <div class="bg-white tab-card">
-                    <div class="card-row">
-                        <div class="card-column ent-type">
-                            <div class="ent-type-label">公司类型</div>
-                            <div class="ent-type-text">${entBaseInfo.type ? entBaseInfo.type : '-'}</div>
-                        </div>
-                    </div>
-                    <div class="card-row">
-                        <div class="card-column ent-business-term">
-                            <div class="ent-business-term-label">营业期限</div>
-                            <div class="ent-business-term-text">
-                                <span>${entBaseInfo.operStart == -1 ? '-' : new Date(entBaseInfo.operStart*1000).pattern('yyyy/MM/dd')}</span>
-                                <span> 至 </span>
-                                <span>${entBaseInfo.operEnd == -1 ? '-' : new Date(entBaseInfo.operEnd*1000).pattern('yyyy/MM/dd')}</span>
-                            </div>
-                        </div>
-                    </div>
-                    <div class="card-row">
-                        <div class="card-column social-credit-code">
-                            <div class="ent-registration-label">统一社会信用代码</div>
-                            <div class="ent-registration-text">${entBaseInfo.creditNo ? entBaseInfo.creditNo : '-'}</div>
-                        </div>
+              <div class="bg-white tab-card">
+                <div class="card-row">
+                  <div class="card-column social-credit-code">
+                    <div class="ent-registration-label">统一社会信用代码</div>
+                    <div class="ent-registration-text">${entBaseInfo.creditNo ? entBaseInfo.creditNo : '-'}</div>
+                  </div>
+                  <div class="card-column organization-code">
+                    <div class="ent-info-label">联系方式</div>
+                    <div class="ent-info-text">${entBaseInfo.phone ? entBaseInfo.phone : '-'}</div>
+                  </div>
+                </div>
+                <div class="card-row">
+                  <div class="card-column registered-capital">
+                    <div class="ent-info-label">注册资本</div>
+                    <div class="ent-info-text">${entBaseInfo.capital ? entBaseInfo.capital+'万元' : '-'}</div>
+                  </div>
+                  <div class="card-column registered-capital">
+                    <div class="ent-info-label">法人姓名</div>
+                    <div class="ent-info-text">${entBaseInfo.legal ? entBaseInfo.legal : '-'}</div>
+                  </div>
+                </div>
+                <div class="card-row">
+                  <div class="card-column ent-establish">
+                    <div class="ent-info-label">成立日期</div>
+                    <div class="ent-info-text">
+                      ${(!entBaseInfo.establish || entBaseInfo.establish == -1) ? '-' : new
+                      Date(entBaseInfo.establish*1000).pattern('yyyy/MM/dd')}
                     </div>
-                    <div class="card-row">
-                        <div class="card-column tax-identification-number">
-                            <div class="ent-registration-label">纳税人识别号</div>
-                            <div class="ent-registration-text">${entBaseInfo.taxCode ? entBaseInfo.taxCode : '-'}</div>
-                        </div>
+                  </div>
+                  <div class="card-column ent-status">
+                    <div class="ent-info-label">经营状态</div>
+                    <div class="ent-info-text">${entBaseInfo.status ? entBaseInfo.status : '-'}</div>
+                  </div>
+                </div>
+                <div v-if="!showBaseInfo" class="show-more" @click="showBaseInfo = true">查看更多</div>
+                <div v-show="showBaseInfo" style="width: 100%;">
+                  <div class="card-row">
+                    <div class="card-column ent-type">
+                      <div class="ent-type-label">公司类型</div>
+                      <div class="ent-type-text">${entBaseInfo.type ? entBaseInfo.type : '-'}</div>
                     </div>
-                    <div class="card-row">
-                        <div class="card-column business-registration-number">
-                            <div class="ent-registration-label">工商注册号</div>
-                            <div class="ent-registration-text">${entBaseInfo.company_code ? entBaseInfo.company_code : '-'}</div>
-                        </div>
+                  </div>
+                  <div class="card-row">
+                    <div class="card-column ent-business-term">
+                      <div class="ent-business-term-label">营业期限</div>
+                      <div class="ent-business-term-text">
+                        <span>${entBaseInfo.operStart == -1 ? '-' : new
+                          Date(entBaseInfo.operStart*1000).pattern('yyyy/MM/dd')}</span>
+                        <span> 至 </span>
+                        <span>${entBaseInfo.operEnd == -1 ? '-' : new
+                          Date(entBaseInfo.operEnd*1000).pattern('yyyy/MM/dd')}</span>
+                      </div>
                     </div>
-                    <div class="card-row">
-                        <div class="card-column organization-code">
-                            <div class="ent-info-label">组织机构代码</div>
-                            <div class="ent-info-text">${entBaseInfo.org_code ? entBaseInfo.org_code : '-'}</div>
-                        </div>
-                        <div class="card-column organization-code">
-                            <div class="ent-info-label">联系方式</div>
-                            <div class="ent-info-text">${entBaseInfo.phone ? entBaseInfo.phone : '-'}</div>
-                        </div>
+                  </div>
+                  <div class="card-row">
+                    <div class="card-column tax-identification-number">
+                      <div class="ent-registration-label">纳税人识别号</div>
+                      <div class="ent-registration-text">${entBaseInfo.taxCode ? entBaseInfo.taxCode : '-'}</div>
                     </div>
-                    <div class="card-row">
-                        <div class="card-column registered-capital">
-                            <div class="ent-info-label">注册资本</div>
-                            <div class="ent-info-text">${entBaseInfo.capital ? entBaseInfo.capital+'万元' : '-'}</div>
-                        </div>
-                        <div class="card-column registered-capital">
-                            <div class="ent-info-label">法人姓名</div>
-                            <div class="ent-info-text">${entBaseInfo.legal ? entBaseInfo.legal : '-'}</div>
-                        </div>
+                  </div>
+                  <div class="card-row">
+                    <div class="card-column business-registration-number">
+                      <div class="ent-registration-label">工商注册号</div>
+                      <div class="ent-registration-text">${entBaseInfo.company_code ? entBaseInfo.company_code : '-'}</div>
                     </div>
-                    <div class="card-row">
-                        <div class="card-column ent-establish">
-                            <div class="ent-info-label">成立日期</div>
-                            <div class="ent-info-text">
-                                ${(!entBaseInfo.establish || entBaseInfo.establish == -1) ? '-' : new Date(entBaseInfo.establish*1000).pattern('yyyy/MM/dd')}
-                            </div>
-                        </div>
-                        <div class="card-column ent-status">
-                            <div class="ent-info-label">经营状态</div>
-                            <div class="ent-info-text">${entBaseInfo.status ? entBaseInfo.status : '-'}</div>
-                        </div>
+                  </div>
+                  <div class="card-row">
+                    <div class="card-column organization-code">
+                      <div class="ent-info-label">组织机构代码</div>
+                      <div class="ent-info-text">${entBaseInfo.org_code ? entBaseInfo.org_code : '-'}</div>
                     </div>
-                    <div class="card-row">
-                        <div class="card-column ent-employee">
-                            <div class="ent-info-label">人员规模(工商年报-参保人数,仅供参考)</div>
-                            <div class="ent-info-text">${entBaseInfo.employeeNo ? entBaseInfo.employeeNo : '-'}</div>
-                        </div>
+                  </div>
+                  <div class="card-row">
+                    <div class="card-column ent-employee">
+                      <div class="ent-info-label">人员规模(工商年报-参保人数,仅供参考)</div>
+                      <div class="ent-info-text">${entBaseInfo.employeeNo ? entBaseInfo.employeeNo : '-'}</div>
                     </div>
-                    <div class="card-row">
-                        <div class="card-column registered-capital">
-                            <div class="ent-info-label">注册地址</div>
-                            <div class="ent-info-text">${entBaseInfo.address ? entBaseInfo.address : '-'}</div>
-                        </div>
+                  </div>
+                  <div class="card-row">
+                    <div class="card-column registered-capital">
+                      <div class="ent-info-label">注册地址</div>
+                      <div class="ent-info-text">${entBaseInfo.address ? entBaseInfo.address : '-'}</div>
                     </div>
-                    <div class="card-row">
-                        <div class="card-column registered-capital">
-                            <div class="ent-info-label">经营范围</div>
-                            <div class="ent-info-text">${entBaseInfo.scope ? entBaseInfo.scope : '-'}</div>
-                        </div>
+                  </div>
+                  <div class="card-row">
+                    <div class="card-column registered-capital">
+                      <div class="ent-info-label">经营范围</div>
+                      <div class="ent-info-text">${entBaseInfo.scope ? entBaseInfo.scope : '-'}</div>
                     </div>
+                  </div>
                 </div>
+              </div>
                 <div class="bg-white tab-card ent-change-history" @click="goToEntHistory">
                     <div class="ent-change-l">企业情报历史记录</div>
                     <div class="j-icon icon-back base-icon"></div>
                 </div>
             </van-tab>
-            <van-tab name="2" v-if="!singleTab">
+            <van-tab name="2" >
                 <template #title>
                     <span :class="{bidinfo:!hasOnePower}">中标信息</span>
-                    <span v-if="!hasOnePower && isShowUpTip" class="bid_upgrade">升级</span>
+                    <span v-if="isShowUpTip" class="bid_upgrade">升级</span>
                     <span v-if="isMember && (hasOnePower && surplus && isVip)" class="bid_surplus">剩余:${entvisit.total - entvisit.usage}</span>
                 </template>
                 <div class="bg-white tab-card" v-if="conf._4 && !getStatus">
@@ -229,6 +236,11 @@
                     </div>
                 </div>
                 <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" 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"  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">
                     <div class="j-img img-empty empty-img"></div>
                     <p class="empty-text">暂无项目动态</p>
@@ -259,16 +271,14 @@
                         </ul>
                     </div>
                 </div>
-                <div class="vip_component" v-if="getStatus && !conf._13" style="height:9.16rem;background:url('/common-module/collection/image/bg/vip_bg_1.png') no-repeat;background-size:100% 100%">
-                    <vip-component @tabactive="tabActive" :power="conf" type="item_1" :entvisit="entvisit" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_1.png'></vip-component>
-                </div>
-                <div class="vip_component" v-if="isMember" style="height:11.36rem;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" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_9.png'></vip-component>
+              </div>
+                <div class="vip_component" v-if="!showContacts" style="height:11.36rem;background:url('/common-module/collection/image/bg/vip_bg_9.png') no-repeat;background-size:100% 100%">
+                    <vip-component @tabactive="tabActive" :power="conf" type="item_9" :entvisit="entvisit" :newvip="isVip" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_9.png'></vip-component>
                 </div>
                 <div class="bg-white tab-card cell-list history-list" v-else>
                   <hispro-component type="winner" :id="entInfo.id"></hispro-component>
                 </div>
-                <div class="bg-white tab-card charts" v-if="conf._4 && tabActiveName == '2' && annualData.rows.length !== 0  && !getStatus">
+                <div class="bg-white tab-card charts" v-if="conf._4 && annualData.rows.length !== 0  && !getStatus">
                     <div class="tab-card-title">年度项目统计</div>
                     <!-- e-charts和sticky同时使用时候,需要手动降低css层级(z-index: 1),确保tooltip不遮挡固定定位头部 -->
                     <div class="tab-card-content">
@@ -285,9 +295,9 @@
                     <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 @tabactive="tabActive" :power="conf" type="item_2" :entvisit="entvisit" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_2.png'></vip-component>
+                    <vip-component @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>
                 </div>
-                <div class="bg-white tab-card charts"  v-if="conf._4 && tabActiveName == '2' && monthZbData.rows.length !== 0  && !getStatus">
+                <div class="bg-white tab-card charts"  v-if="conf._4 && monthZbData.rows.length !== 0  && !getStatus">
                     <div class="tab-card-title">月度中标金额统计</div>
                     <div class="tab-card-content">
                         <ve-line
@@ -301,9 +311,9 @@
                     <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 @tabactive="tabActive" :power="conf" type="item_3" :entvisit="entvisit" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_3.png'></vip-component>
+                    <vip-component @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>
                 </div>
-                <div class="bg-white tab-card charts" v-if="conf._4 && tabActiveName == '2' && mapChartData.rows.length !== 0  && !getStatus">
+                <div class="bg-white tab-card charts" v-if="conf._4 && mapChartData.rows.length !== 0  && !getStatus">
                     <div class="tab-card-title">市场区域分布</div>
                     <div class="tab-card-content">
                         <ve-map
@@ -317,9 +327,9 @@
                     </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 @tabactive="tabActive" :power="conf" type="item_4" :entvisit="entvisit" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_4.png'></vip-component>
+                    <vip-component @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>
                 </div>
-                <div class="bg-white tab-card charts"  v-if="conf._4 && tabActiveName == '2' && rateData.rows.length !== 0  && !getStatus">
+                <div class="bg-white tab-card charts"  v-if="conf._4 && rateData.rows.length !== 0  && !getStatus">
                     <div class="tab-card-title">各类客户平均折扣率</div>
                     <div class="tab-card-content">
                         <ve-line
@@ -333,19 +343,19 @@
                     <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 @tabactive="tabActive" :power="conf" type="item_5" :entvisit="entvisit" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_5.png'></vip-component>
+                    <vip-component @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>
                 </div>
-                <div class="bg-white tab-card charts"  v-show="conf._4 && tabActiveName == '2' && entPortraitInfo.top10 && entPortraitInfo.top10.length != 0  && !getStatus">
+                <div class="bg-white tab-card charts"  v-show="conf._4 && entPortraitInfo.top10 && entPortraitInfo.top10.length != 0  && !getStatus">
                     <div class="tab-card-title">客户类型分布</div>
                     <div class="tab-card-content">
-                        <div ref="pieChart" style="height: 360px;"></div>
+                        <div ref="pieChart" style="height: 360px;width: 320px;margin: 0 auto;"></div>
                     </div>
                     <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 @tabactive="tabActive" :power="conf" type="item_6" :entvisit="entvisit" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_6.png'></vip-component>
+                    <vip-component @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>
                 </div>
-                <div class="bg-white tab-card customers client"  v-show="conf._4 && tabActiveName == '2' && importantCustomers.length !== 0  && !getStatus">
+                <div class="bg-white tab-card customers client"  v-show="conf._4 && importantCustomers.length !== 0  && !getStatus">
                     <div class="tab-card-title">重点客户</div>
                     <div class="tab-card-content">
                         <div class="client-list" v-for="c in importantCustomers">
@@ -373,7 +383,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 @tabactive="tabActive" :power="conf" type="item_7" :entvisit="entvisit" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/bg/vip_ex_7.png'></vip-component>
+                    <vip-component @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>
                 </div>
             </van-tab>
         </van-tabs>

+ 1 - 1
src/web/templates/frontRouter/wx/collection/sess/ent_portrait_change.html

@@ -23,7 +23,7 @@
 </head>
 <style>
     .vip_openDialog{
-        padding: 0.56rem 0 0.64rem;
+        padding: 0 0 0.64rem;
         width: 6.06rem;
         /* height: 6.88rem; */
         background: url('{{Msg "seo" "cdn"}}/big-member/image/openVip.png') no-repeat;

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 1 - 217
src/web/templates/pc/biddetail_rec.html


+ 258 - 183
src/web/templates/pc/dataExport_sieve.html

@@ -972,194 +972,83 @@
 
         $(".public-nav").css("background-color", "#fff");
         $(".public-nav").css("border-bottom", "1px solid #e0e0e0");
-
-        if (localStorage && localStorage.length > 0) {
-            getLocalStorage();
-            if (paramObj) {
-                //筛选日期
-                if (selectDateBtnIndex != -1) {
-                    $("#sieveDate .u-select").removeClass("select");
-                    selectDateDisSelect();
-                    $("#sieveDate .u-select").eq(selectDateBtnIndex).addClass("select");
-                } else {
-                    $("#sieveDate .u-select").removeClass("select");
-                    var publishTime = paramObj["publishtime"];
-                    if (publishTime && publishTime.split("_").length == 2) {
-                        var dates = publishTime.split("_");
-                        var startTime = dates[0];
-                        var endTime = dates[1];
-                        var startTimeVal = "";
-                        var endTimeVal = "";
-                        if (startTime) {
-                            startTimeVal = new Date(new Number(startTime + "000")).Format("yyyy年MM月dd日");
-                        }
-                        if (endTime) {
-                            endTimeVal = new Date(new Number(endTime + "000")).Format("yyyy年MM月dd日");
-                        }
-                        $("#starttime").attr("data-value", startTime);
-                        $("#endtime").attr("data-value", endTime);
-                        $("#starttime").val(startTimeVal);
-                        $("#endtime").val(endTimeVal);
-                    }
-                    selectDateSelect();
-                }
-                //区域
-                var region = paramObj["region"];
-                if (region) {
-                    var regionHtml = "";
-                    $.each(region.split(","), function (i, v) {
-                        regionHtml += "<div data-arr=\"selectArea\" class=\"delete-close\">" + v + "<i class=\"iconfont icon-guanbi\"></i></div>";
-                    });
-                    $("#area-del").html(regionHtml);
-                }
-                //行业
-                var classArr_arr = ClassArr.arr;
-                ClassArr.arr = [];
-                $.each(classArr_arr, function (i, v) {
-                    if (v && v.split("_").length > 0) {
-                        var sel = "";
-                        var dataValue = v;
-                        if (v.split("_").length == 2) {
-                            sel = v.split("_")[1];
-                        } else if (v.split("_").length == 1) {
-                            sel = v;
-                        }
-                        ClassArr.add(sel, dataValue);
-                    }
-                });
-                // 采购单位类型
-                var buyClassing = buyClassArr.arr;
-                buyClassArr.arr = []
-                $.each(buyClassing, function (i, v) {
-                    if (v) {
-                        var sel = "";
-                        var dataValue = v;
-                        sel = v;
-                        buyClassArr.add(v, dataValue);
-                    }
-                });
-                //关键词
-                $("#keyInput").val("");
-                var keyWordP = paramObj["keyword"];
-                if (keyWordP && JSON.parse(keyWordP) && JSON.parse(keyWordP).length > 0) {
-                    var keyWords = JSON.parse(keyWordP);
-                    $("#keyInput").hide();
-                    $.each(keyWords, function (i, val) {
-                        if (val) {
-                            var keyword = val["keyword"];
-                            var appendedArr = val["appended"];
-                            var excludedArr = val["exclude"];
-                            if (keyword) {
-                                var box = "inputDel_0";
-                                var arr = box;
-                                appendArr = appendedArr;
-                                excludeArr = excludedArr;
-                                var template = createKeyBox(keyword);
-                                var LArr = [$("#inputDel_0 .column:eq(0)>div").length, $("#inputDel_0 .column:eq(1)>div").length, $("#inputDel_0 .column:eq(2)>div").length];
-                                var tempI = LArr.indexOf(Math.min(LArr[0], LArr[1], LArr[2]));
-                                box += ' .column:eq(' + (tempI) + ')';
-                                var tempArr = keyAllArr.map(function (v) {
-                                    return v.name
-                                });
-                                if (tempArr.indexOf(keyword) === -1) {
-                                    keyAllArr.push({
-                                        name: keyword,
-                                        append: appendArr,
-                                        exclude: excludeArr
-                                    })
-                                }
-                                appendArr = [];
-                                excludeArr = [];
-                                $(".add-input-w input.sm").remove();
-                                $(".add-input-w").css("display", "none");
-                                $("#addKeyword").css("display", "block");
-                                addDelBox(keyword, '#' + box, arr, template);
-                            }
-                        }
-
-                    });
-                }
-                //金额
-                priceDisSel();
-                priceConfirmHide();
-                if (priceAllBtnSel == "1") {
-                    $("#priceAll").addClass("select");
-                    priceDisSelected();
-                    $("#minprice").val("");
-                    $("#maxprice").val("");
-                } else {
-                    $("#priceAll").removeClass("select");
-                    var minPrice = paramObj["minprice"];
-                    var maxPrice = paramObj["maxprice"];
-                    if (minPrice) {
-                        $("#minprice").val(minPrice);
+        if(getParam("id")!=null){
+          $.ajax({
+            type: 'post',
+            url: '/jypay/dataExport/historyById',
+            data: {
+                id: getParam("id")
+            },
+            async: false,
+            dataType: 'json',
+            success: function (r) {
+              history.replaceState({id: getParam('id')}, '回显筛选条件', location.href.replace(new RegExp('(\\?|&)id=' + getParam('id')), ''))
+              if ($.isArray(r.area)) {
+                  selectProvince = JSON.parse(JSON.stringify(r.area));
+              }
+              r.area = arrToString(r.area);
+              r.city = arrToString(r.city);
+              r.region = arrToString(r.region);
+              if (r.region == '') {
+                  r.region = r.area + (r.city != '' ? (',' + r.city) : '')
+              }
+              r.winner = arrToString(r.winner);
+              r.buyer = arrToString(r.buyer);
+              if(r.keywords!=null){
+                for(var i=0;i<r.keywords.length;i++){
+                  if(r.keywords[i]!=null){
+                    if(r.keywords[i].keyword==null){
+                      r.keywords[i].keyword = "";
                     }
-                    if (maxPrice) {
-                        $("#maxprice").val(maxPrice);
+                    if(r.keywords[i].appended==null){
+                      r.keywords[i].appended = [];
                     }
-                    priceSelected();
-                }
-                //信息类型
-                var infoArr_arr = InfoArr.arr;
-                InfoArr.arr = [];
-                $.each(infoArr_arr, function (i, v) {
-                    if (v && v.split("_").length > 0) {
-                        var sel = "";
-                        var dataValue = v;
-                        if (v.split("_").length == 2) {
-                            sel = v.split("_")[1];
-                        } else if (v.split("_").length == 1) {
-                            sel = v;
-                        }
-                        InfoArr.add(sel, dataValue);
+                    if(r.keywords[i].exclude==null){
+                      r.keywords[i].exclude = [];
                     }
-                });
-                //采购单位
-                $("#buyerInput").val("");
-                if (paramObj["buyer"] && paramObj["buyer"].split(",").length > 0) {
-                    var buyers = paramObj["buyer"].split(",");
-                    $("#buyerInput").hide();
-                    $.each(buyers, function (i, v) {
-                        if (v) {
-                            addDelBox(v, '#' + "inputDel_1", "inputDel_1", null);
-                        }
-                    });
-                    $("#addBuyer").show();
+                  }
                 }
-                //中标单位
-                $("#winnerInput").val("");
-                if (paramObj["winner"] && paramObj["winner"].split(",").length > 0) {
-                    var winners = paramObj["winner"].split(",");
-                    $("#winnerInput").hide();
-                    $.each(winners, function (i, v) {
-                        if (v) {
-                            addDelBox(v, '#' + "inputDel_2", "inputDel_2", null);
-                        }
-                    });
-                    $("#addWinner").show();
-                }
-            }
-        } else {
-            $("#starttime").val("");
-            $("#endtime").val("");
-            $("#minprice").val("");
-            $("#maxprice").val("");
-        }
-        //
-        if (localStorage.selectType !== "" && localStorage.selectType !== undefined) {
-            var selectType = localStorage.selectType;
-            var select = '';
-            if (selectType === "title") {
-                select = "按标题匹配";
-            } else if (selectType === "all") {
-                select = "按全文匹配";
+                r.keyword = JSON.stringify(r.keywords);
+              }else{
+                r.keyword = "";
+              }
+              if(r.minprice!=""||r.maxprice!=""){
+                priceAllBtnSel = "0";
+              }
+              if(r.industry==null){
+                ClassArr.arr = [];
+              }else{
+                ClassArr.arr = r.industry;
+              }
+              if(r.buyerclass==null){
+                buyClassArr.arr = [];  
+              }else{
+                buyClassArr.arr = r.buyerclass;
+              }
+              InfoArr.arr = r.subtype.split(",");
+              if(r.selectType=="title,detail"){
+                r.selectType="all"
+              }
+              selectDateBtnIndex = -1;
+              paramObj = r;
+              echo(paramObj);
+              echo_selectType(paramObj.selectType);
             }
-            $(".selectType button").each(function () {
-                if ($(this).text() === select) {
-                    $(".selectType button").removeClass("select");
-                    $(this).addClass("select");
-                }
-            });
+          });
+        }else{
+          if (localStorage && localStorage.length > 0) {
+              getLocalStorage();
+              echo(paramObj);
+          } else {
+              $("#starttime").val("");
+              $("#endtime").val("");
+              $("#minprice").val("");
+              $("#maxprice").val("");
+          }
+          //
+          if (localStorage.selectType !== "" && localStorage.selectType !== undefined) {
+            echo_selectType(localStorage.selectType);
+          }
         }
 
         //行业
@@ -2033,6 +1922,192 @@
         $(".selectType button").removeClass("select")
         $(this).addClass("select")
     });
+    function echo(paramObj){
+      if (paramObj) {
+        //筛选日期
+        if (selectDateBtnIndex != -1) {
+            $("#sieveDate .u-select").removeClass("select");
+            selectDateDisSelect();
+            $("#sieveDate .u-select").eq(selectDateBtnIndex).addClass("select");
+        } else {
+            $("#sieveDate .u-select").removeClass("select");
+            var publishTime = paramObj["publishtime"];
+            if (publishTime && publishTime.split("_").length == 2) {
+                var dates = publishTime.split("_");
+                var startTime = dates[0];
+                var endTime = dates[1];
+                var startTimeVal = "";
+                var endTimeVal = "";
+                if (startTime) {
+                    startTimeVal = new Date(new Number(startTime + "000")).Format("yyyy年MM月dd日");
+                }
+                if (endTime) {
+                    endTimeVal = new Date(new Number(endTime + "000")).Format("yyyy年MM月dd日");
+                }
+                $("#starttime").attr("data-value", startTime);
+                $("#endtime").attr("data-value", endTime);
+                $("#starttime").val(startTimeVal);
+                $("#endtime").val(endTimeVal);
+            }
+            selectDateSelect();
+        }
+        //区域
+        var region = paramObj["region"];
+        if (region) {
+            var regionHtml = "";
+            $.each(region.split(","), function (i, v) {
+                regionHtml += "<div data-arr=\"selectArea\" class=\"delete-close\">" + v + "<i class=\"iconfont icon-guanbi\"></i></div>";
+            });
+            $("#area-del").html(regionHtml);
+        }
+        //行业
+        var classArr_arr = ClassArr.arr;
+        ClassArr.arr = [];
+        $.each(classArr_arr, function (i, v) {
+            if (v && v.split("_").length > 0) {
+                var sel = "";
+                var dataValue = v;
+                if (v.split("_").length == 2) {
+                    sel = v.split("_")[1];
+                } else if (v.split("_").length == 1) {
+                    sel = v;
+                }
+                ClassArr.add(sel, dataValue);
+            }
+        });
+        // 采购单位类型
+        var buyClassing = buyClassArr.arr;
+        buyClassArr.arr = []
+        $.each(buyClassing, function (i, v) {
+            if (v) {
+                var sel = "";
+                var dataValue = v;
+                sel = v;
+                buyClassArr.add(v, dataValue);
+            }
+        });
+        //关键词
+        $("#keyInput").val("");
+        var keyWordP = paramObj["keyword"];
+        if (keyWordP && JSON.parse(keyWordP) && JSON.parse(keyWordP).length > 0) {
+            var keyWords = JSON.parse(keyWordP);
+            $("#keyInput").hide();
+            $.each(keyWords, function (i, val) {
+                if (val) {
+                    var keyword = val["keyword"];
+                    var appendedArr = val["appended"];
+                    var excludedArr = val["exclude"];
+                    if (keyword) {
+                        var box = "inputDel_0";
+                        var arr = box;
+                        appendArr = appendedArr;
+                        excludeArr = excludedArr;
+                        var template = createKeyBox(keyword);
+                        var LArr = [$("#inputDel_0 .column:eq(0)>div").length, $("#inputDel_0 .column:eq(1)>div").length, $("#inputDel_0 .column:eq(2)>div").length];
+                        var tempI = LArr.indexOf(Math.min(LArr[0], LArr[1], LArr[2]));
+                        box += ' .column:eq(' + (tempI) + ')';
+                        var tempArr = keyAllArr.map(function (v) {
+                            return v.name
+                        });
+                        if (tempArr.indexOf(keyword) === -1) {
+                            keyAllArr.push({
+                                name: keyword,
+                                append: appendArr,
+                                exclude: excludeArr
+                            })
+                        }
+                        appendArr = [];
+                        excludeArr = [];
+                        $(".add-input-w input.sm").remove();
+                        $(".add-input-w").css("display", "none");
+                        $("#addKeyword").css("display", "block");
+                        addDelBox(keyword, '#' + box, arr, template);
+                    }
+                }
 
+            });
+        }
+        //金额
+        priceDisSel();
+        priceConfirmHide();
+        if (priceAllBtnSel == "1") {
+            $("#priceAll").addClass("select");
+            priceDisSelected();
+            $("#minprice").val("");
+            $("#maxprice").val("");
+        } else {
+            $("#priceAll").removeClass("select");
+            var minPrice = paramObj["minprice"];
+            var maxPrice = paramObj["maxprice"];
+            if (minPrice) {
+                $("#minprice").val(minPrice);
+            }
+            if (maxPrice) {
+                $("#maxprice").val(maxPrice);
+            }
+            priceSelected();
+        }
+        //信息类型
+        var infoArr_arr = InfoArr.arr;
+        InfoArr.arr = [];
+        $.each(infoArr_arr, function (i, v) {
+            if (v && v.split("_").length > 0) {
+                var sel = "";
+                var dataValue = v;
+                if (v.split("_").length == 2) {
+                    sel = v.split("_")[1];
+                } else if (v.split("_").length == 1) {
+                    sel = v;
+                }
+                InfoArr.add(sel, dataValue);
+            }
+        });
+        //采购单位
+        $("#buyerInput").val("");
+        if (paramObj["buyer"] && paramObj["buyer"].split(",").length > 0) {
+            var buyers = paramObj["buyer"].split(",");
+            $("#buyerInput").hide();
+            $.each(buyers, function (i, v) {
+                if (v) {
+                    addDelBox(v, '#' + "inputDel_1", "inputDel_1", null);
+                }
+            });
+            $("#addBuyer").show();
+        }
+        //中标单位
+        $("#winnerInput").val("");
+        if (paramObj["winner"] && paramObj["winner"].split(",").length > 0) {
+            var winners = paramObj["winner"].split(",");
+            $("#winnerInput").hide();
+            $.each(winners, function (i, v) {
+                if (v) {
+                    addDelBox(v, '#' + "inputDel_2", "inputDel_2", null);
+                }
+            });
+            $("#addWinner").show();
+        }
+    }
+  }
+  function echo_selectType(selectType){
+    var select = '';
+    if (selectType === "title") {
+        select = "按标题匹配";
+    } else if (selectType === "all") {
+        select = "按全文匹配";
+    }
+    $(".selectType button").each(function () {
+        if ($(this).text() === select) {
+            $(".selectType button").removeClass("select");
+            $(this).addClass("select");
+        }
+    });
+  }
+  function arrToString(v){
+    if(v==null){
+      return ""
+    }else{
+      return v.join(",");
+    }
+  }
 </script>
 </html>

+ 11 - 22
src/web/templates/pc/dataPack/index.html

@@ -136,7 +136,8 @@
                                 <el-table
                                     v-loading="isLoading"
                                     :data="exportList.list"
-                                    style="width: 100%;color:#1d1d1d"
+                                    style="width: 100%;color:#1d1d1d;cursor: pointer;"
+                                    @row-click="onClickRow"
                                 >
                                     <div slot="empty">
                                         <div class="no-data"><el-image src="/images/pc_12.png"></el-image><div class="tip-text"><p>暂无导出记录</p></div></div>
@@ -150,35 +151,23 @@
                                     <el-table-column prop="data_from" label="数据来源" align="center"></el-table-column>
                                     <el-table-column label="搜索条件" align="center">
                                         <template slot-scope="scope">
-                                            <div class="searchConditions" v-if="scope.row.search&&scope.row.search.area">
-                                                <el-tooltip placement="top" :disabled="!((scope.row.search.area&&scope.row.search.area.length>0)|| scope.row.search.publishtime || (scope.row.search.industry&&scope.row.search.industry.length>0))">
+                                            <div class="searchConditions">
+                                                <el-tooltip v-if="scope.row.search" placement="top" :disabled="!((scope.row.search.area&&scope.row.search.area.length>0)|| scope.row.search.publishtime || (scope.row.search.buyerclass&&scope.row.search.buyerclass.length>0))">
                                                     <div slot="content" class="changeCell" style="max-width:300px;line-height: 18px;"> 
-                                                        <span v-if="scope.row.search.industry && scope.row.search.industry.length>0">采购单位行业:{searchChange(scope.row.search.industry)}<br/></span> 
+                                                        <span v-if="scope.row.search.buyerclass && scope.row.search.buyerclass.length>0">采购单位类型:{searchChange(scope.row.search.buyerclass)}<br/></span>
                                                         <span v-if="scope.row.search.publishtime">时间:{dateFormate(scope.row.search.publishtime)}<br/></span>
                                                         <span v-if="scope.row.search.area && scope.row.search.area.length"> 地区:{searchChange(scope.row.search.area)}</span>
                                                     </div>
-                                                    <div class="secondEillps">
-                                                        <span v-if="scope.row.search.industry && scope.row.search.industry.length>0">采购单位行业:{searchChange(scope.row.search.industry)}<br/></span> 
+                                                    <div class="secondEillps" :data-scope="scope.row.search.buyerclass">
+                                                        <span v-if="scope.row.search.buyerclass && scope.row.search.buyerclass.length>0">采购单位类型:{searchChange(scope.row.search.buyerclass)}<br/></span>
                                                         <span v-if="scope.row.search.publishtime"> 时间:{dateFormate(scope.row.search.publishtime)}<br/></span>
                                                         <span v-if="scope.row.search.area && scope.row.search.area.length"> 地区:{searchChange(scope.row.search.area)}</span>
-                                                        <span class="imptySeach" v-if="!((scope.row.search.area&&scope.row.search.area.length>0)|| scope.row.search.publishtime || (scope.row.search.industry&&scope.row.search.industry.length>0))">--</span>
-                                                    </div>
-                                                </el-tooltip>
-                                            </div>
-                                            <div class="searchConditions" v-else>
-                                                <el-tooltip placement="top" :disabled="!(scope.row.search&&scope.row.search.Area|| scope.row.search&&scope.row.search.Time || scope.row.search&&scope.row.search.Buyerclass)">
-                                                    <div slot="content" class="changeCell" style="max-width:300px;line-height: 18px;"> 
-                                                        <span v-if="scope.row.search&&scope.row.search.Buyerclass">采购单位行业:{scope.row.search.Buyerclass.replace(/,/g, "、")}<br/></span> 
-                                                        <span v-if="scope.row.search&&scope.row.search.Time"> 时间:{dateFormate(scope.row.search.Time)}<br/></span>
-                                                        <span v-if="scope.row.search&&scope.row.search.Area"> 地区:{scope.row.search.Area}</span>
-                                                    </div>
-                                                    <div class="secondEillps">
-                                                        <span v-if="scope.row.search&&scope.row.search.Buyerclass">采购单位行业:{scope.row.search.Buyerclass.replace(/,/g, "、")}<br/></span> 
-                                                        <span v-if="scope.row.search&&scope.row.search.Time"> 时间:{dateFormate(scope.row.search.Time)}<br/></span>
-                                                        <span v-if="scope.row.search&&scope.row.search.Area"> 地区:{scope.row.search.Area}</span>
-                                                        <span class="imptySeach" v-if="!(scope.row.search&&scope.row.search.Area|| scope.row.search&&scope.row.search.Time || scope.row.search&&scope.row.search.Buyerclass)">--</span>
+                                                        <span class="imptySeach" v-if="!((scope.row.search.area&&scope.row.search.area.length>0)|| scope.row.search.publishtime || (scope.row.search.buyerclass&&scope.row.search.buyerclass.length>0))">--</span>
                                                     </div>
                                                 </el-tooltip>
+                                                <div class="secondEillps" v-else>
+                                                    <span class="imptySeach">--</span>
+                                                </div>
                                             </div>
                                         </template>
                                     </el-table-column>

+ 4 - 4
src/web/templates/weixin/wxinfocontent_rec.html

@@ -3,7 +3,7 @@
 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
 <title>公告信息</title>
 <link href="{{Msg "seo" "cdn"}}/css/font.css?v={{Msg "seo" "version"}}" rel="stylesheet">
-<link href="{{Msg "seo" "cdn"}}/css/wxcontentinfo.css?v={{Msg "seo" "version"}}1" rel="stylesheet">
+<link href="{{Msg "seo" "cdn"}}/css/wxcontentinfo.css?v={{Msg "seo" "version"}}2" rel="stylesheet">
 <link href="{{Msg "seo" "cdn"}}/css/bootstrap.min.css" rel="stylesheet">
 <link href="{{Msg "seo" "cdn"}}/wxswordfish/style.css?v={{Msg "seo" "version"}}" rel="stylesheet">
 <link rel="stylesheet" href="//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/index.css">
@@ -936,10 +936,10 @@ pre {
 				<a class="iconarrow"></a>
 			</div>
 			<!--s 大会员引流 s-->
-			<div class="bigvip_drain lead_drain" style='background: url("{{Msg "seo" "cdn"}}/images/big-drain.png") no-repeat; background-size: 100% 100%'>
+			<div class="bigvip_drain lead_drain" style="background: #f5f6f7;">
 				<div class="bigvip_text">
 					<span class="bigvip_ad">想让剑鱼帮你找合作伙伴吗?</span>
-					<span class="bigvip_btn">点这里</span>
+					<span class="bigvip_btn">点这里!</span>
 				</div>
 			</div>
 			<!-- e 大会员引流 e -->
@@ -964,7 +964,7 @@ pre {
 			<a class="iconarrow"></a>
 		</div>
 		<!--s 大会员引流 s-->
-		<div class="bigvip_drain" style='background: url("{{Msg "seo" "cdn"}}/images/big-drain.png") no-repeat; background-size: 100% 100%'>
+		<div class="bigvip_drain" style="background: #f5f6f7;">
 			<div class="bigvip_text">
 					<span class="bigvip_ad">想让剑鱼帮你找合作伙伴吗?</span>
 					<span class="bigvip_btn">点这里</span>

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно