Просмотр исходного кода

Merge branch 'dev/v4.9.31_zsy' of qmx/jy into feature/v4.9.31

zhangsiya 1 год назад
Родитель
Сommit
0ab8ca336b

+ 4 - 2
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/ent_portrait.js

@@ -135,6 +135,8 @@ var vNode = {
       },
       importantCustomers: [],
       scrollTop: 0,
+      // 页面滚动距离
+      pageScrollTop: 0,
       getEntPortraitInfoTimes: 0,
       initEchartsOptions: {
         renderer: 'svg'
@@ -361,8 +363,8 @@ var vNode = {
       }
     },
     // 监听画像页面滚动
-    onEntScroll: utils.debounce(function () {
-      // do something
+    onEntScroll: utils.debounce(function (e) {
+      this.pageScrollTop = e.target.scrollTop
     }, 50),
     scrollHeight: function () {
       var storageClick = JSON.parse(sessionStorage.getItem('is-click-set'))

+ 7 - 4
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/unit_portrayal.js

@@ -174,7 +174,9 @@ var vNode = {
       buyerHighSet: '',
       unitParams: {},
       follow:false, // 是否监控
-      allpower:{}
+      allpower:{},
+      // 页面滚动距离
+      pageScrollTop: 0
     }
   },
   computed: {
@@ -363,7 +365,8 @@ var vNode = {
     getStickyTop: function () {
       this.stickyTop = $('.j-header.jy-app-header').outerHeight()
     },
-    onUnitScroll: utils.debounce(function () {
+    onUnitScroll: utils.debounce(function (e) {
+      this.pageScrollTop = e.target.scrollTop
       if (!this.getfreeBuyerOpen) return
     }, 300),
     // 判断当前用户是登录
@@ -851,7 +854,7 @@ var vNode = {
               data: JSON.stringify(params),
               success: function(res) {
                 if (res.data && !_this.follow) { // 为监控调用组件函数 相关逻辑统一组件内处理
-                  _this.$refs.portrayalFooter.no_monitor(res.data)   
+                  _this.$refs.portrayalFooter.no_monitor(res.data)
                 }
                 if (res && res.error_code === 0 && res.data.status) {
                   if (_this.follow) {
@@ -862,7 +865,7 @@ var vNode = {
 
                   } else {
                     // 关注操作返回
-                    _this.follow = true  
+                    _this.follow = true
                     _this.updataStorage(decodeURIComponent(utils.getParam('entName')),'isFollowed',true)
                   }
                 } else {

+ 5 - 2
src/jfw/modules/app/src/web/templates/big-member/page_client_portrayal.html

@@ -98,7 +98,7 @@
 <body>
 <div class="j-container">
   {{include "/big-member/header.html"}}
-  <div id="client_portrayal" class="j-main" v-cloak @click="doubleBar.showTooltip = false">
+  <div id="client_portrayal" class="j-main" v-cloak @click="doubleBar.showTooltip = false"  @scroll="onUnitScroll">
     <div v-if="chartLoading" class="skeleton">
       <img class="working"  src="/jyapp/big-member/image/working.gif" alt="">
     </div>
@@ -132,7 +132,7 @@
           <forwardshare :params="clientParams"></forwardshare>
         </div> -->
       </div>
-      
+
       <!-- 超级订阅用户展示  -->
       <!-- <div v-if="superVipPort" style="margin-top: .24rem; " class="free-give">
         <div class="balance-text"> 当月采购单位画像余额:<em class="highlight-text">${usageInfo.surplus}</em></div>
@@ -576,6 +576,8 @@
     </div>
     <!-- 底部按钮组件 -->
     <mobile-portrayal-footer ref="portrayalFooter" @monitorclick="changeFollowState('g')" @claimclick="changeClaimState" :islogin="true" :monitorshow="true" :monitor="follow" :params="clientParams" :shareshow="true" :claimshow="claimShow" :claim="claim" :allpower="powerInfo"></mobile-portrayal-footer>
+      <!--客服组件-->
+      <customer-corner-component :scroll-status="pageScrollTop < 60" bottom-position="12%"></customer-corner-component>
   </div>
   <div id="jyKeepEntComponent">
     <keep-ent-component ref="vKeepComponent" @on-save-tag="onSaveTag" :bid="nowOpenBid" :first="false"></keep-ent-component>
@@ -615,6 +617,7 @@
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/forward-share/js/forward.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module//mobile-portrayal-footer/js/mobile-portrayal-footer.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/big-member/js/client_portrayal.js?v={{Msg "seo" "version"}}11'></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/customer-corner/mobile-template.js?v={{Msg "seo" "version"}}'></script>
 <script>
   // 收藏组件
   var vKeepComponent = new Vue({

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

@@ -627,8 +627,10 @@
           </div>
         </van-tab>
       </van-tabs>
+     <!--客服组件-->
+      <customer-corner-component v-show="isLogin" :scroll-status="pageScrollTop < 60"></customer-corner-component>
     </section>
-    
+
     <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>
@@ -689,6 +691,7 @@
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/keep-tags/keep-tags-template.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/keep-tags/keep-ent-tags-template.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/dataExport/components/popup-data-export.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/customer-corner/mobile-template.js?v={{Msg "seo" "version"}}'></script>
 <script>
   // 收藏组件
   var vKeepComponent = new Vue({

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

@@ -706,7 +706,9 @@
       <popup-data-export ref="popup_dataExport" @next="next_export"></popup-data-export>
        <!-- 底部按钮组件 -->
     <mobile-portrayal-footer ref="portrayalFooter" @monitorclick="changeFollowState('g')" :islogin="userInfo.isLogin"  :monitorshow="true" :monitor="follow" :params="unitParams" :allpower="allpower" :shareshow="isLogin"></mobile-portrayal-footer>
-    </div>
+      <!--客服组件-->
+      <customer-corner-component v-show="isLogin" :scroll-status="pageScrollTop < 60" bottom-position="12%"></customer-corner-component>
+  </div>
     <div id="jyKeepComponent">
       <keep-component ref="vKeepComponent" @on-change-keep="changeKeepStatus" :bid="nowOpenBid" :first="false">
       </keep-component>
@@ -759,6 +761,7 @@
     src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/keep-tags/keep-ent-tags-template.js?v={{Msg "seo" "version"}}'>
   </script>
   <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/dataExport/components/popup-data-export.js?v={{Msg "seo" "version"}}'></script>
+  <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/customer-corner/mobile-template.js?v={{Msg "seo" "version"}}'></script>
   <script>
     // 收藏组件
     var vKeepComponent = new Vue({

+ 8 - 6
src/web/staticres/big-member/js/unit_portrayal.js

@@ -174,7 +174,8 @@ var vNode = {
             isShowMoreBtn:false,
             unitParams: {},
             follow:false, // 是否监控,
-            allpower:{}
+            allpower:{},
+          pageScrollTop: 0
         }
     },
     computed: {
@@ -350,7 +351,8 @@ var vNode = {
           referer: location.href
         }
       },
-        onUnitScroll: utils.debounce(function() {
+        onUnitScroll: utils.debounce(function(e) {
+          this.pageScrollTop = e.target.scrollTop
           if (!this.getfreeBuyerOpen) return
         }, 300),
         goOpenVip: function () {
@@ -502,7 +504,7 @@ var vNode = {
                       data: JSON.stringify(params),
                       success: function(res) {
                         if (res.data && !_this.follow) { // 为监控调用组件函数 相关逻辑统一组件内处理
-                          _this.$refs.portrayalFooter.no_monitor(res.data)   
+                          _this.$refs.portrayalFooter.no_monitor(res.data)
                         }
                         if (res && res.error_code === 0 && res.data.status) {
                           if (_this.follow) {
@@ -512,7 +514,7 @@ var vNode = {
                             _this.updataStorage(decodeURIComponent(utils.getParam('entName')),'isFollowed',false)
                           } else {
                             // 关注操作返回
-                            _this.follow = true  
+                            _this.follow = true
                             _this.updataStorage(decodeURIComponent(utils.getParam('entName')),'isFollowed',true)
                           }
 
@@ -539,7 +541,7 @@ var vNode = {
             }catch(e){
             }
           },
-          
+
         // 点击去开通埋点方法(免费体验)
         goBuyBuried: function(text) {
           var _this = this
@@ -1757,7 +1759,7 @@ var vNode = {
                     sessionStorage.removeItem(this.sessKey)
                     return false
                 }
-        
+
                 this.chartLoading = $data.chartLoading
                 this.tabActiveName = $data.tabActiveName
                 Object.assign(this.buyer, $data.buyer || {})

+ 10 - 6
src/web/staticres/common-module/big-member/js/client_portrayal.js

@@ -179,7 +179,8 @@ var vNode = {
           list:[],
           // 招标动态筛选条件缓存,用来判断是否正在使用筛选项进行请求
           buyerHighSet: '',
-          clientParams: {}
+          clientParams: {},
+          pageScrollTop: 0
       }
   },
   computed: {
@@ -318,6 +319,9 @@ var vNode = {
     window.removeEventListener("resize", this.init,20);
   },
   methods: {
+      onUnitScroll:function (e) {
+        this.pageScrollTop = e.target.scrollTop
+      },
       restoreTab: function() {
         var tab = utils.getParam('tab') || ''
         if (tab) {
@@ -470,7 +474,7 @@ var vNode = {
           success: function(res) {
             if(res.error_code == 0) {
               if (res.data && !_this.follow) { // 为监控调用组件函数 相关逻辑统一组件内处理
-                _this.$refs.portrayalFooter.no_monitor(res.data)   
+                _this.$refs.portrayalFooter.no_monitor(res.data)
               }
               if(res.data.status) {
                   if(_this.follow){
@@ -480,7 +484,7 @@ var vNode = {
                     _this.updataStorage(decodeURIComponent(utils.getParam('entName')),'isFollowed',true)
 
                   }
-                  _this.follow = !_this.follow 
+                  _this.follow = !_this.follow
               } else {
                 // _this.$toast(res.error_msg)
               }
@@ -551,7 +555,7 @@ var vNode = {
              }
           })
          }
-         
+
          localStorage.setItem('JY-MOBILE-/search/result/buyer',JSON.stringify(data))
         }catch(e){
         }
@@ -1198,7 +1202,7 @@ var vNode = {
             v.parent = v.project_count / data[0].project_count*100 + "%";
           })
           this.agencyList = data;
-          this.isShow.showAgency = true 
+          this.isShow.showAgency = true
         }
       },
       // 处理金额区间转换
@@ -1680,7 +1684,7 @@ var vNode = {
             sessionStorage.removeItem(this.sessKey)
             return false
           }
-  
+
           this.chartLoading = $data.chartLoading
           this.tabActiveName = $data.tabActiveName
           Object.assign(this.buyer, $data.buyer || {})

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

@@ -134,6 +134,8 @@ var vNode = {
       },
       importantCustomers: [],
       scrollTop: 0,
+      // 页面滚动距离
+      pageScrollTop: 0,
       getEntPortraitInfoTimes: 0,
       initEchartsOptions: {
         renderer: 'svg'
@@ -359,7 +361,8 @@ var vNode = {
       }
     },
     // 监听画像页面滚动
-    onEntScroll: utils.debounce(function(){
+    onEntScroll: utils.debounce(function(e){
+      this.pageScrollTop = e.target.scrollTop
       if (!this.freeWinnerOpen) return // 没有开通超级订阅广告位banner return
       // do something
     }, 50),

BIN
src/web/staticres/common-module/customer-corner/img/kf-blue.png


+ 64 - 0
src/web/staticres/common-module/customer-corner/mobile-template.js

@@ -0,0 +1,64 @@
+var customerCornerStyle = `<style>
+.customer-corner-component{
+    position: fixed;
+    padding-top:0.08rem;
+    width: 0.84rem;
+    height: 0.84rem;
+    bottom: 9%;
+    right: 0.24rem;
+    background: #fff;
+    border-radius: 50%;
+    z-index: 99;
+    box-shadow: 0 0 16px rgba(0,0,0,0.16);
+    font-size: 0.18rem;
+    line-height: 0.2rem;
+    color: #2ABED1;
+  }
+  .customer-corner-component.fadeOutRight{
+   transform: translateX(98%);
+      opacity: 0.2;
+  }
+  .customer-corner-component  .content{
+      height:100%;
+      text-align: center;
+    }
+  .customer-corner-component img{
+    width: 0.48rem;
+    height: 0.48rem;
+  }
+  </style>`
+var customerCornerTemplate = `
+<div class="customer-corner-component" :class="{ fadeOutRight: !scrollStatus }" :style="{bottom: bottomPosition || ''}">
+    <div class="content" @click="jumpCustomerPage">
+      <img src="/common-module/customer-corner/img/kf-blue.png" alt="">
+      <p>客服</p>
+    </div>
+  </div>`
+
+Vue.component('customer-corner-component',{
+  name: 'customerCornerComponent',
+  template: customerCornerTemplate,
+  props: {
+    scrollStatus: {
+      type: Boolean,
+      default: false
+    },
+    bottomPosition: {
+      type: String,
+      default: ''
+    }
+  },
+  data () {
+    return {
+      show: false
+    }
+  },
+  created () {
+    $('head').append(customerCornerStyle)
+  },
+  methods: {
+    jumpCustomerPage () {
+      location.href = '/page_social_mobile/home?pname=剑鱼标讯&receiveAppId=465d475c52&userType=1'
+    }
+  }
+})

+ 3 - 0
src/web/templates/big-member/wx/page_client_portrayal.html

@@ -562,6 +562,8 @@
       </div>
        <!-- 底部按钮组件 -->
     <mobile-portrayal-footer ref="portrayalFooter" @monitorclick="changeFollowState('g')" @claimclick="changeClaimState" :islogin="true" :monitorshow="true" :monitor="follow" :params="clientParams" :shareshow="true" :claimshow="claimShow" :allpower="powerInfo" :claim="claim"></mobile-portrayal-footer>
+    <!--客服组件-->
+    <customer-corner-component :scroll-status="pageScrollTop < 60" bottom-position="12%"></customer-corner-component>
     </div>
     <div id="jyKeepEntComponent">
       <keep-ent-component ref="vKeepComponent" @on-save-tag="onSaveTag" :bid="nowOpenBid" :first="false"></keep-ent-component>
@@ -591,6 +593,7 @@
 <script src='{{Msg "seo" "cdn"}}/common-module/forward-share/js/forward.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/common-module//mobile-portrayal-footer/js/mobile-portrayal-footer.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/common-module/big-member/js/client_portrayal.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/customer-corner/mobile-template.js?v={{Msg "seo" "version"}}'></script>
 <script>
   // 收藏组件
   var vKeepComponent = new Vue({

+ 3 - 0
src/web/templates/big-member/wx/page_unit_portrayal.html

@@ -791,6 +791,8 @@
       <popup-data-export ref="popup_dataExport" @next="next_export"></popup-data-export>
         <!-- 底部按钮组件 -->
     <mobile-portrayal-footer ref="portrayalFooter" @monitorclick="changeFollowState('g')" :islogin="userInfo.isLogin"  :monitorshow="true" :monitor="follow" :params="unitParams" :shareshow="true" :allpower="allpower"></mobile-portrayal-footer>
+    <!--客服组件-->
+    <customer-corner-component :scroll-status="pageScrollTop < 60" bottom-position="12%"></customer-corner-component>
     </div>
   <div id="jyKeepComponent">
     <keep-component ref="vKeepComponent" @on-change-keep="changeKeepStatus" :bid="nowOpenBid" :first="false"></keep-component>
@@ -827,6 +829,7 @@
 <script src='{{Msg "seo" "cdn"}}/common-module/keep-tags/keep-tags-template.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/common-module/keep-tags/keep-ent-tags-template.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/common-module/dataExport/components/popup-data-export.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/customer-corner/mobile-template.js?v={{Msg "seo" "version"}}'></script>
 <script>
   // 收藏组件
   var vKeepComponent = new Vue({

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

@@ -620,8 +620,10 @@
                     </div>
                 </van-tab>
             </van-tabs>
+        <!--客服组件-->
+        <customer-corner-component v-show="isLogin" :scroll-status="pageScrollTop < 60"></customer-corner-component>
         </section>
-        
+
         <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>
@@ -683,6 +685,7 @@
 <script src='{{Msg "seo" "cdn"}}/common-module/keep-tags/keep-tags-template.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/common-module/keep-tags/keep-ent-tags-template.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/common-module/dataExport/components/popup-data-export.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/customer-corner/mobile-template.js?v={{Msg "seo" "version"}}'></script>
 <script>
   // 收藏组件
   var vKeepComponent = new Vue({