Procházet zdrojové kódy

feat: 订阅页面资源迁移至公共目录

zhangyuhan před 2 roky
rodič
revize
fdd607104b
40 změnil soubory, kde provedl 7609 přidání a 2552 odebrání
  1. 4 4
      src/jfw/modules/app/src/web/templates/big-member/commonjs.html
  2. 24 1889
      src/jfw/modules/app/src/web/templates/weixin/historypush.html
  3. 51 0
      src/web/staticres/common-module/history-push/css/dropload.css
  4. 190 0
      src/web/staticres/common-module/history-push/css/old-page-style.css
  5. 504 0
      src/web/staticres/common-module/history-push/css/p13.css
  6. 629 0
      src/web/staticres/common-module/history-push/css/public.css
  7. 1739 0
      src/web/staticres/common-module/history-push/css/subscribe.css
  8. 4 0
      src/web/staticres/common-module/history-push/css/weui.min.css
  9. 3 0
      src/web/staticres/common-module/history-push/iconfont/iconfont.css
  10. binární
      src/web/staticres/common-module/history-push/iconfont/iconfont.eot
  11. binární
      src/web/staticres/common-module/history-push/iconfont/iconfont.ttf
  12. binární
      src/web/staticres/common-module/history-push/iconfont/iconfont.woff
  13. binární
      src/web/staticres/common-module/history-push/iconfont/iconfont.woff2
  14. binární
      src/web/staticres/common-module/history-push/images/close.png
  15. 3 0
      src/web/staticres/common-module/history-push/images/close.svg
  16. binární
      src/web/staticres/common-module/history-push/images/close_heidi.png
  17. binární
      src/web/staticres/common-module/history-push/images/curve.png
  18. binární
      src/web/staticres/common-module/history-push/images/dialog-image.png
  19. binární
      src/web/staticres/common-module/history-push/images/entback.png
  20. binární
      src/web/staticres/common-module/history-push/images/icon-biaozhunhy.png
  21. binární
      src/web/staticres/common-module/history-push/images/icon-gaojihy.png
  22. binární
      src/web/staticres/common-module/history-push/images/icon-putonghy.png
  23. binární
      src/web/staticres/common-module/history-push/images/merge.png
  24. binární
      src/web/staticres/common-module/history-push/images/nopush.png
  25. binární
      src/web/staticres/common-module/history-push/images/purchase_bg.jpg
  26. binární
      src/web/staticres/common-module/history-push/images/report.png
  27. binární
      src/web/staticres/common-module/history-push/images/shangjigl.png
  28. binární
      src/web/staticres/common-module/history-push/images/sub_manager.png
  29. binární
      src/web/staticres/common-module/history-push/images/switch_ent.png
  30. binární
      src/web/staticres/common-module/history-push/images/switch_vip.png
  31. binární
      src/web/staticres/common-module/history-push/images/v_icon.png
  32. binární
      src/web/staticres/common-module/history-push/images/vip-icon.png
  33. binární
      src/web/staticres/common-module/history-push/images/xuanzhong.png
  34. 416 0
      src/web/staticres/common-module/history-push/js/common.js
  35. 940 0
      src/web/staticres/common-module/history-push/js/historypush.js
  36. 1699 0
      src/web/staticres/common-module/history-push/js/old-page-script.js
  37. 338 0
      src/web/staticres/common-module/history-push/local/dropload.js
  38. 360 0
      src/web/staticres/common-module/history-push/local/layout.css
  39. 19 0
      src/web/staticres/common-module/history-push/local/rem.js
  40. 686 659
      src/web/staticres/common-module/public/js/utils.js

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

@@ -1,9 +1,9 @@
 <!--S-必定会使用的资源-->
-<link rel="preload" as="script" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/rem.js'></link>
-<link rel="preload" as="script" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/utils.js?v={{Msg "seo" "version"}}'></link>
+<link rel="preload" as="script" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/local/rem.js'></link>
+<link rel="preload" as="script" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/utils.js?v={{Msg "seo" "version"}}'></link>
 
-<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/rem.js'></script>
-<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/utils.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/local/rem.js'></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/utils.js?v={{Msg "seo" "version"}}'></script>
 <script>
     utils.iosBackRefresh()
     // 头部事件js

+ 24 - 1889
src/jfw/modules/app/src/web/templates/weixin/historypush.html

@@ -2,214 +2,22 @@
 <head>
     {{include "/common/meta.html"}}
     <title>标讯订阅</title>
-    <link rel="stylesheet" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/layout.css" />
-    <link rel="stylesheet" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/subscribe.css?v={{Msg "seo" "version"}}"/>
+    <link rel="stylesheet" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/local/layout.css" />
+    <link rel="stylesheet" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/css/subscribe.css?v={{Msg "seo" "version"}}"/>
     <script src="https://cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js"></script>
     {{include "/common/js.html"}}
-    <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/dropload.js"></script>
+    <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/local/dropload.js"></script>
     <!-- 2.8.5 -->
-    <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}"></script>
-    <link rel="stylesheet" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}"/>
-    <link rel="stylesheet" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}"/>
-    <link href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/p13.css?v={{Msg "seo" "version"}}" rel="stylesheet">
+    <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/js/common.js?v={{Msg "seo" "version"}}"></script>
+    <link rel="stylesheet" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/css/weui.min.css?v={{Msg "seo" "version"}}"/>
+    <link rel="stylesheet" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/iconfont/iconfont.css?v={{Msg "seo" "version"}}"/>
+    <link href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/css/p13.css?v={{Msg "seo" "version"}}" rel="stylesheet">
     <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='{{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/public.css?v={{Msg "seo" "version"}}'/>
-    <style>
-        .j-popup.van-popup--bottom .j-main {
-          height: 100%;
-        }
-        .merge-dialog,
-        .weui-dialog,
-        .weui-mask{
-          z-index: 99999;
-        }
-
-        .van-dialog,
-        .j-popup,
-        .j-overlay {
-            z-index: 99999!important;
-        }
-
-        .jymobile-setting-dialog .weui-dialog__hd{
-          text-align: center !important;
-        }
-        .jymobile-setting-dialog .weui-dialog__bd{
-          padding: .37rem .1rem .38rem !important;
-          color: #1D1D1D !important;
-          font-size: .32rem !important;
-          text-align: center !important;
-        }
-        .jymobile-setting-dialog .weui-dialog__ft{
-          display: flex !important;
-          padding: 0 0 .38rem 0 !important;
-          text-align: center !important;
-        }
-        .jymobile-setting-dialog .weui-dialog__ft .weui-dialog__btn_default{
-          margin-right: .3rem !important;
-        }
-        .jymobile-setting-dialog .weui-dialog__ft>a {
-            text-decoration: none !important;
-        }
-        .app-layout-header{
-            padding-left: 16px;
-            padding-right: 16px;
-            padding-top: 20px;
-        }
-        .app-layout-header .switch-vip:before, .app-layout-header .only-vip:before {
-            height: 18px;
-        }
-        .app-layout-header .switch-vip:before, .app-layout-header .only-member::after {
-            content: '';
-            display: flex;
-            margin-left: 4px;
-            width: 12px;
-            height: 12px;
-            background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACSSURBVHgBzZO7CYAwFEWvQXCNWOoWDiFY27mUDmDjBo5gZ2vWEBElASGGFyGfwlOFGzgkeTdAJBIqXIaGZ9c5y3XZjrm+t/b1RuXph4SDhsyZo8QKs0gEHGGUJNmPCo4okSkpuknAEf2NvCUSNTVzlD4wROJ/ohSBPNUJOpHeP2+RWWJvkVnikKtxaCUOEb1+wg1trU+oaaKLhgAAAABJRU5ErkJggg==) no-repeat;
-            background-size: contain;
-        }
-        .app-layout-header .switch-vip:before, .app-layout-header .switch {
-            align-items: center;
-            font-size: 12px;
-        }
-        .app-layout-content-b .app-content::after{
-            content: '';
-            width: 100%;
-            height: 8px;
-            background: #F5F6F7;
-        }
-        .iosMeau{
-            height: 100%;
-        }
-        .app-layout-content-b {
-            height: calc(100vh - 70px);
-            overflow: hidden;
-        }
-        .collection .van-dropdown-menu__item {
-           flex: 1;
-           padding-left: 0;
-           padding-right: 0;
-        }
-        .collection .van-dropdown-item:nth-of-type(4) .van-dropdown-item__content {
-            max-height: unset;
-            overflow: unset;
-            height: 100%;
-        }
-        .empty{
-            padding-top: .34rem;
-        }
-    </style>
-    <style>
-        .oldUserTips{
-            position: fixed;
-            top: 0;
-            left: 0;
-            right: 0;
-            bottom: 0;
-            z-index: 99999;
-            background-color:rgba(0, 0, 0, 0.7);
-            display: none;
-        }
-        .updateTips-wrap{
-            width: 6.06rem;
-            height: 4.58rem;
-            background: #FFFFFF;
-            border-radius: 0.16rem 0.16rem 0.16rem 0.16rem;
-            position: absolute;
-            top: 50%;
-            left: 50%;
-            transform: translateX(-50%) translateY(-50%);
-        }
-        .updateTips-title{
-            text-align: center;
-            padding-top: 0.48rem;
-            font-size: 0.36rem;
-            font-weight: 500;
-            color: #161826;
-        }
-        .updateTips-text{
-            text-align: left;
-            padding: 0.16rem 0.6rem 0.1rem;
-            font-size: 0.3rem;
-            font-weight: 500;
-            color: #5E5E64;
-            line-height: 0.44rem;
-        }
-        .updateTips-btnWrap{
-            display: flex;
-            justify-content: center;
-            align-items: center;
-            margin-top: 0.32rem;
-            border-top:0.02rem solid rgba(0, 0, 0, 0.1) ;
-        }
-        .updateTips-btn{
-            font-size: 0.36rem;
-            font-weight: 500;
-            color: #161826;
-            width: 50%;
-            height: 0.92rem;
-            line-height: 0.92rem;
-            text-align: center;
-            cursor: pointer;
-        }
-        .updateTips-line{
-            height: 0.92rem;
-            width: 0.02rem;
-            background-color: rgba(0, 0, 0, 0.1);
-        }
-        .levelUp{
-            color: #2ABDD1;
-        }
-        #freeArea{
-            color: #2ABDD1;
-        }
-        /* 留资查看更多新增 */
-        .seeMore{
-            text-align: center;
-            line-height: 1.12rem;
-            height: 1.12rem;
-            background: #FFFFFF;
-            bottom: 1.4rem;
-        }
-        .seeMore + .dropload-down {
-            display: none;
-        }
-        .seeMore-btn{
-            font-size: .28rem;
-            color: #2ABED1;
-            display: contents;
-        }
-        .product-switch{
-          display: block;
-          height: auto;
-        }
-        .typeswitch{
-          height: 1.08rem;
-        }
-        .push-money-component {
-          height: auto;
-        }
-        .push-money-component .money-component-group {
-          min-height: auto;
-          flex: unset;
-          padding: 0;
-        }
-        .push-money-component .j-footer {
-          display: none;
-        }
-        .push-money-component .select-tag-group{
-          padding: 6px 0 0!important;
-        }
-        .push-money-component .select-tag-item.active::after{
-          background: none!important;
-        }
-        .selected{
-          background: #E8FAFD!important;
-          color: #2ABED1!important;
-        }
-    </style>
+    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/css/public.css?v={{Msg "seo" "version"}}'/>
+    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/css/old-page-style.css?v={{Msg "seo" "version"}}'/>
 </head>
 <body class="p13" id="viperSuper" style="background: #fff;overflow: hidden;">
 <!-- 加载数据-->
@@ -284,7 +92,7 @@
 <van-popup v-model="bigSubShow" class="product-switch" position="top" get-container="body">
     <div class="typeswitch entniche" v-if="isEntniche" @click="proClick('ent')">
       <div class="type-left">
-          <img class="icon-bm" src="/jyapp/images/shangjigl.png" alt="">
+          <img class="icon-bm" src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/images/shangjigl.png?v={{Msg "seo" "version"}}' alt="">
           <span class="bm-text">商机管理</span>
       </div>
       <div class="type-right">
@@ -302,7 +110,7 @@
     </div>
     <div class="typeswitch vipproduct" v-if="rootInfo.vipStatus > 0" @click="proClick('vip')">
         <div class="type-left">
-            <img class="icon-bm" src="/jyapp/vipsubscribe/image/vip-icon.png" alt="">
+            <img class="icon-bm" src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/images/vip-icon.png?v={{Msg "seo" "version"}}" alt="">
             <span class="bm-text">超级订阅</span>
         </div>
         <div class="type-right">
@@ -315,8 +123,8 @@
     <div class="j-container">
     <div class="app-content j-header" style="background:#fff;border-top: 1px solid transparent;">
   		<div class="header_header" style="height: 60px;display:none;transition: all 0.1s;position: relative;width: 100%;">
-  			<div class="only-personal" style="position: absolute;top: 50%;left: 50%;background-image: url(/jyapp/vipsubscribe/image/entback.png?v=51430);background-size: 100%;background-repeat: no-repeat;border-radius: 8px;width: 92%;display: flex;align-items: center;justify-content: space-between;height: 44px;transform: translate(-50%, -50%);">
-  				<img style="width: 20px;height: 20px; margin-left: .3rem;" src="/jyapp/vipsubscribe/image/vip-icon.png?v=1">
+  			<div class="only-personal" style="position: absolute;top: 50%;left: 50%;background-image: url({{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/images/entback.png?v={{Msg "seo" "version"}});background-size: 100%;background-repeat: no-repeat;border-radius: 8px;width: 92%;display: flex;align-items: center;justify-content: space-between;height: 44px;transform: translate(-50%, -50%);">
+  				<img style="width: 20px;height: 20px; margin-left: .3rem;" src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/images/vip-icon.png?v={{Msg "seo" "version"}}'>
   				<span  data-name="doubleEleven_title" style="padding: 0 .12rem;flex: 1;font-size: .26rem;font-weight: 700;color: #fff;">全国企业随手查,竞争实力尽展示!</span>
   				<span  data-name="doubleEleven_button" class="switch_ext" id="app-historypush-vipSub-banner" style="border-radius: 32px;display: flex;flex-direction: row;padding: 3px 12px;font-size: 12px;color: #FAE7CA;margin-right: .2rem;background: linear-gradient(to bottom, #F1D090 0%, #FAE7CA 100%);color: #33323A;font-family: PingFang SC;font-size: 12px;line-height: 18px;letter-spacing: 0px;text-align: center;white-space: nowrap;">立即使用</span>
   			</div>
@@ -503,7 +311,7 @@
             </div>
         </span>
         <span class="empty findnull">
-            <div><img class="empty-img" src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/images/wxkeyset/nopush.png?v={{Msg "seo" "version"}}"></div>
+            <div><img class="empty-img" src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/images/nopush.png?v={{Msg "seo" "version"}}"></div>
             <span class="empty-text">近期没有你想要的信息,再等等吧!<br>你也可以进入设置页面、调整一下关键词再回来看看。</span>
         </span>
         <span class="empty findnull_">
@@ -570,12 +378,12 @@
     <div class="weui-mask weui-animate-fade-in"></div>
     <div class="weui-dialog weui-animate-fade-in">
         <div class="my-dialog__hd">
-            <img src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/image/vipreport/dialog-image.png?v={{Msg "seo" "version"}}" alt="">
+            <img src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/images/dialog-image.png?v={{Msg "seo" "version"}}' alt="">
             <div class="jy_title">剑鱼标讯</div>
             <h2 class="weekly">每<span></span>订阅报告来啦</h2>
             <div class="term"></div>
             <a href="javascript:void(0)" class="vip_report_todetail">点击查看</a>
-            <img src="/jyapp/vipsubscribe/image/vipreport/close.svg" class="vip_report_tip_close">
+            <img src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/images/close.svg' class="vip_report_tip_close">
         </div>
     </div>
 </div>
@@ -593,7 +401,6 @@
     </div>
 </div>
 </div>
-<!--	<img src="/jyapp/images/gotosetpage.png?v=51430" id="gotosetpage">-->
 {{include "/common/baiducc.html"}}
 <div id="advertscript" class="hidden">
     {{$s:=(Ad "jyapp-wxpush-middle" -1)}}
@@ -603,7 +410,7 @@
             var random = Math.floor(Math.random() * ADList.length)
             var AD = ADList[random]
             var ADHtml = "<span class=\"closeadv-bg\"></span>"
-                + "<img src=\"{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/images/close_heidi.png?v={{Msg "seo" "version"}}\" class=\"closeadv\" onclick=\"closeadv(this)\">";
+                + "<img src=\"{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/images/close_heidi.png?v={{Msg "seo" "version"}}\" class=\"closeadv\" onclick=\"closeadv(this)\">";
             if (AD.s_pic) {
                 if (AD.s_link) {
                     var ADtitle = "";
@@ -632,8 +439,8 @@
   <div class="mask"></div>
   <div class="dialog">
       <div class="hd_img">
-          <img src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/images/wxkeyset/merge.png?v={{Msg "seo" "version"}}" alt="" class="logo" />
-          <img src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/images/wxkeyset/close.png?v={{Msg "seo" "version"}}" class="close">
+          <img src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/images/merge.png?v={{Msg "seo" "version"}}" alt="" class="logo" />
+          <img src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/images/close.png?v={{Msg "seo" "version"}}" class="close">
       </div>
       <div class="dialog_hd"><strong class="dialog_title">您同时拥有2个剑鱼标讯账号</strong></div>
       <div class="dialog_bd"><em style="color:#2ABED1">手机号:18609098787、微信号:LLL</em><br> 为保证您的正常使用,您可以根据自身情况进行设置。</div>
@@ -644,7 +451,7 @@
 </div>
 
 </body>
-<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/utils.js?v={{Msg "seo" "version"}}"></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/utils.js?v={{Msg "seo" "version"}}'></script>
 <script>
     var firstTime = ''
     let pushUrlTime = utils.getParam('pushtime')
@@ -654,6 +461,7 @@
     var productType = 0 // 0免费用户 1超级订阅 2大会员 // 3商机管理
     var historyVt = ''
 </script>
+<script src=//cdn-common.jianyu360.com/cdn/lib/fastclick/1.0.6/fastclick.min.js></script>
 <script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js></script>
 <script src=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js></script>
 <script src=//cdn-common.jianyu360.com/cdn/lib/zepto/1.2.0/zepto.min.js></script>
@@ -667,1680 +475,7 @@
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/js/notice-mobile.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/js/money-mobile.js?v={{Msg "seo" "version"}}'></script>
 <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}}/jyapp/js/historypush.js?v={{Msg "seo" "version"}}'></script>
-<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
-   <script>
-        // 双11活动文案修改
-        $.get('/jyactive/doubleEleven/isActiving?t=' + new Date().getTime(), function (r) {
-            if (r && r.data) {
-                if (r.data.isActiving) {
-                    $('*[data-name="doubleEleven_title"]').text('买超级订阅,买多久送多久!')
-                    $('*[data-name="doubleEleven_button"]').text('去抢')
-                }
-            }
-        })
-    </script>
-    <script type="text/javascript">
-    addEventListener('focus', function() {
-        if(document.activeElement = document.getElementById('iframeu6603902_0')) {
-            $.ajax({
-                type: 'POST',
-                url: '/publicapply/adLeague/click',
-                data: {
-                    client: 'APP',
-                    id: 'ad6',
-                    position: '订阅推送列表页'
-                },
-                success: function(res) {
-                        console.log(res)
-                }
-            })
-        }
-    });
-    </script>
-<script>
-        function hiddenTips() {
-            $('#UserTips').hide()
-        }
-        function gotoPay() {
-            $('#UserTips').hide()
-            location.href = '/jy_mobile/common/order/create/areapack?type=buy'
-        }
-        // 得到用户是否需要提醒省份订阅包过期
-        function getUserSubscribe() {
-            $.ajax({
-                url: '/publicapply/free/areapack/tip',
-                type: 'POST',
-                success: function (res) {
-                    if (res.data.tip) {
-                        $('#UserTips').show()
-                        $('#freeArea').text(res.data.area)
-                        tipsClose()
-                    } else {
-                        $('#UserTips').hide()
-                    }
-                }
-            })
-        }
-        getUserSubscribe()
-        function tipsClose() {
-            $.ajax({
-                url: '/publicapply/free/areapack/update',
-                type: 'POST',
-                success: function (res) {
-
-                }
-            })
-        }
-  // @手机号绑定及账号合并 2021/1/25
-  $("#toKeySet").on('click', tokeyset)
-  function receivePushMessageHandle(type,url){
-    if(type=="vipreport" || type == "memberreport"){
-      if(type=="memberreport"&&productType!=2){
-        return
-      }else if(type=="vipreport"&&productType!=1){
-        return
-      }
-      if((type=="vipreport" || type=="memberreport")&& $(".vip_report").is(":visible")){
-        $(".vip_report>a").show();
-      }
-    }
-  }
-    function closeadv(obj) {
-        closeAdvert = true;
-        $(obj).parent().prev().css("border-bottom", "1px solid #e5e6e9");
-        $(obj).parent().remove();
-        if(wxflag != "" && wxflag != null){
-            wxflag.resetload();
-        }
-    }
-
-    function AdClick(e, isExternal, link, title) {
-        var ce = $(e).parent();
-        adv_statistics(ce);
-        if (isExternal) {
-            if (!title) {
-                title = "剑鱼标讯"
-            }
-            JyObj.openExternalLink(link, title)
-        } else {
-            window.location.href = link;
-        }
-    }
-
-  if (sessionStorage && sessionStorage.reloadSubPage) {
-      sessionStorage.removeItem("reloadSubPage");
-      removeSessionStorage();
-      window.location.reload();
-  }
-  var firstPage = null;
-  var scrollTop = 0;
-  var dataCache = new Array();
-  var lasttime = 0;
-  var count = 0;
-  var wxflag = "";
-  var hasNextPage = false;
-  var pageIndex = 1;
-  var closeAdvert = false//是否关闭广告
-  var isread = {{.T.isread}}
-  var isPageShow = localStorage.getItem('hideBottom')
-  // '/jyapp/myinfo'这个接口的返回值(同步请求,放心使用)
-//   有无关键词同意用这个myInfo中的内容判断
-  var myInfo = {}
-  var isInTSguide = null
-
-  if (getUrlParam("f") == "push") {
-      removeSessionStorage();
-      if (history) {
-          sessionStorage.setItem(sessionStorage.userId + "_searchTime",getUrlParam("selectTime"));
-        history.replaceState(null, null, "/jyapp/swordfish/historypush");
-      }
-  }
-//   是否需要留资
-  function isNeedSales (callback) {
-      $.ajax({
-          type: 'GET',
-          url: '/salesLeads/retainedCapital',
-          data: { source: 'jypush_see10_plus_app' },
-          async: false,
-          success: function (res) {
-            callback(res)
-          }
-      })
-  }
-      function checkFreeList (data) {
-      if(window.isFree){
-        if (data.data.length > 10) {
-          // sessionStorage.setItem('isNeedSalesStatus', isNeedSalesStatus)
-          isNeedSales(function (res) {
-            // 推送列表 免费是否需要留资判断
-            var result = checkRequiredKeys(['name', 'phone', 'position', 'branch','company', 'companyType'], res.info)
-            if (!result && res.data && res.data.retainedCapital) {
-              data.data = data.data.slice(0, 10)
-              data.hasNextPage = false
-              $(".seeMore").show()
-              $(".seeMore-btn").on('click', function () {
-                location.href = '/jyapp/frontPage/bigmember/free/perfect_info?source=jypush_see10_plus_app'
-              })
-            }
-          })
-        }
-      }
-    }
-  $(function () {
-      setTimeout(function(){
-        loadJS("{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/fastclick.min.js",function(){
-          FastClick.attach(document.body);
-        });
-      },500);
-      var alert_other;
-      alert_other=setInterval(function(){
-        if(localStorage.canshowother && localStorage.getItem({{.T.userId}}+"_otherFlag")&&localStorage.getItem({{.T.userId}}+"_alert")==null){
-          $(".jy-alert-other").show();
-          localStorage.setItem({{.T.userId}}+"_alert","1")
-          clearInterval(alert_other);
-        }
-      },1000)
-
-      //到期提醒页面
-      var vipSubtips = {{.T.vipSubtips}};
-
-      if (Number(vipSubtips) === 0 && sessionStorage.vipSubtips == undefined) {
-        history.pushState({}, "", "");
-        sessionStorage.vipSubtips = "t";
-        window.location.replace("/jyapp/vipsubscribe/renewPage/exprie");
-        return
-      }
-      //===================
-      var isinitpage = false;
-      $(window).bind("pageshow", function (event) {
-        if (event.originalEvent.persisted) {
-          //返回不加载  导致菜单不出来
-          JyObj.hiddenBottom("1");
-          count=0;
-          initpage();
-          isinitpage = true;
-        }
-      });
-      if (!isinitpage) {
-        initpage();
-        isinitpage = true;
-      }
-      $(".vip_report").click(function () {
-          sessionStorage.setItem(vm.sessStorageKey, JSON.stringify(vm.$data))
-          setSessionStorage();
-
-          var tempUrl = "/vipreport/page/subreport.html"
-          if (window.isFreeUserStatus && window.isUserWeekMonthStatus) {
-              tempUrl += '?type=free'
-          } else if(productType == 2) {
-              tempUrl += '?type=member'
-          } else if(productType == 1) {
-            tempUrl += '?type=vip'
-          }
-          window.location.href = tempUrl;
-      });
-  });
-
-  var userId = "";
-  var selectArea = vm.area; // 地区
-  var selectCity = vm.city; // 城市
-  var selectIndustry = vm.subscopeclass // 行业
-  var selectCate = vm.buyerclass // 采购单位
-  var selectKeyword = vm.key // 关键词
-  var selectNotice = vm.subtype // 公告类型
-  var selectMoney = vm.selectMoney
-  var selectFile = vm.selectFile
-  //获取当前时间
-  var date = (function () {
-      var date = new Date();
-      var year = date.getFullYear();
-      var month = date.getMonth() + 1;
-      var day = date.getDate();
-      month = month < 10 ? '0' + month : month;
-      day = day < 10 ? '0' + day : day;
-      return year + '-' + month + '-' + day;
-  })();
-
-    let listparams = {
-        pageNum: 1
-    }
-    var listnum = 0
-    $.ajax({
-        url: '/publicapply/bidcoll/list',
-        type: "POST",
-        contentType: 'application/json;charset=utf-8',
-        data: JSON.stringify(listparams),
-        success: function(res) {
-            if(res.error_code == 0) {
-                if(res.data && res.data.res) {
-                    listnum = res.data.res.length
-                }
-            }
-        }
-    })
-  function initpage() {
-     console.log(selectMoney, selectFile, 'sessionstorage');
-      afterJyObjInit();
-      var thisClass=this;
-      $("#openmailpush").click(function () {
-          setSessionStorage();
-          window.location.href = '/jyapp/wxkeyset/keyset/seniorset';
-      });
-      $(".listcontent").scroll(function () {
-          scrollTop = $(this).scrollTop();
-      });
-      this.isCanSwitch=true;
-      this.InitPersonal=function(r){
-        $("#sub_manager").click(function() {
-            setSessionStorage();
-            sessionStorage.setItem(vm.sessStorageKey, JSON.stringify(vm.$data))
-            if(historyVt == 's') {
-              if(vm.entinfo.admin_department || vm.entinfo.admin_system) {
-                location.href = '/page_entniche_new/page/sub_management/sub_management_system.html'
-              } else {
-                location.href = '/page_entniche_new/page/subsetting/sub_entrance.html'
-              }
-              return
-            }
-            let thisType = sessionStorage.getItem('userIsNew')
-            if (window.userNewType || thisType) {
-                location.href = '/jyapp/vipsubscribe/toSubVipSetPage'
-            } else {
-                if(vm.rootInfo.memberStatus > 0) {
-                    location.href = '/jyapp/vipsubscribe/toSubVipSetPage?vSwitch=m'
-                } else {
-                    tokeyset()
-                }
-            }
-
-        });
-        $(".tab_left .area").hide();
-        if (r.isPassCount) {
-            if(vm.rootInfo.memberStatus > 0) {
-                $(".open_remind").hide();
-            } else {
-                $(".open_remind").show();
-            }
-        }
-        // 商机管理隐藏弹窗
-        if(r.userType == 'entniche') {
-          $(".open_remind").hide();
-        }
-        if (r.isExpire < 0 && r.vipStatus == -1) {
-          if (localStorage.getItem("nv_vip_" + userId) == null) {
-            // $(".nv_renew_toast").show();
-          }
-        }
-        thisClass.LoadDatas(r);
-      }
-      this.InitVip=function(r){
-        $("#sub_manager").click(function() {
-            setSessionStorage();
-            // console.log(vm.rootInfo, 'vmrootInfo')
-            sessionStorage.setItem(vm.sessStorageKey, JSON.stringify(vm.$data))
-            if(historyVt == 's') {
-              if(vm.entinfo.admin_department || vm.entinfo.admin_system) {
-                location.href = '/page_entniche_new/page/sub_management/sub_management_system.html'
-              } else {
-                location.href = '/page_entniche_new/page/subsetting/sub_entrance.html'
-              }
-              return
-            } else if(historyVt == 'm') {
-              location.href = '/jyapp/vipsubscribe/toSubVipSetPage?vSwitch=m'
-            } else if(historyVt == 'v') {
-              location.href = '/jyapp/vipsubscribe/toSubVipSetPage?vSwitch=v'
-            } else {
-              tosetpage()
-            }
-            // let thisType = sessionStorage.getItem('userIsNew')
-            // if (window.userNewType || thisType) {
-            //     location.href = '/jyapp/vipsubscribe/toSubVipSetPage'
-            // } else {
-            //     if(vm.selectPro == 1) {
-            //         location.href = '/jyapp/vipsubscribe/toSubVipSetPage'
-            //     } else {
-            //         tosetpage()
-            //     }
-            // }
-
-        });
-        if(productType == 0) {
-            $(".vip_report").show();
-        }
-        $(".tab_left .area").show();
-        if (!r.haskey) {
-            if(historyVt == 'm' && vm.rootInfo.isSubCount) {
-                $(".set_keyword").hide();
-            } else if(historyVt == 's'){
-                $(".set_keyword").hide();
-            } else {
-              $(".set_keyword").show();
-            }
-              if (r.isPassCount && (localStorage.isPassCount == null || localStorage.isPassCount != date.split("-")[2])) {
-                localStorage.isPassCount = date.split("-")[2]
-                // weuiDialog(); // liumiao让去掉
-              }
-          }
-          if (r.vipStatus != 1) {
-              if (r.isExpire > 1) {
-                  $(".renew_toast .isExpire").text(r.isExpire);
-                  $(".renew_toast").show();
-              } else if (r.isExpire > 0) {
-                  $(".renew_toast").find(".other").hide();
-                  $(".renew_toast").find(".today").show();
-                  $(".renew_toast").show();
-              }
-          } else {
-              if (r.isExpire > 1) {
-                  $("._renew_toast .isExpire").text(r.isExpire);
-                  $("._renew_toast").show();
-              } else if (r.isExpire > 0) {
-                  $("._renew_toast").find(".other").hide();
-                  $("._renew_toast").find(".today").show();
-                  $("._renew_toast").show();
-              }
-          }
-          thisClass.LoadDatas(r);
-      }
-      this.LoadDatas=function(r){
-        if(isPageShow == '1') {
-          localStorage.removeItem('hideBottom')
-          JyObj.hiddenBottom("0");
-        }
-        $(".app-content").css("display","flex");
-        if(r.reLoad){
-          removeSessionStorage();
-        }
-        if (sessionStorage && sessionStorage.historypushScrollTop && sessionStorage.historypushDataCache) {
-            if (sessionStorage.closeAdvert == "true") {
-                closeAdvert = true;
-            }
-            pageIndex = sessionStorage.historypushPageIndexCache;
-            hasNextPage = sessionStorage.historypushHasNextPage == "true" ? true : false;
-            scrollTop = sessionStorage.historypushScrollTop;
-            dataCache = JSON.parse(sessionStorage.historypushDataCache);
-            userId = sessionStorage.userId;
-            firstTime = sessionStorage.getItem(userId + "_searchTime");
-            selectArea = sessionStorage.getItem(userId + "_selectArea");
-            selectCity = sessionStorage.getItem(userId + "_selectCity");
-            selectIndustry = sessionStorage.getItem(userId + "_selectIndustry");
-            selectCate = sessionStorage.getItem(userId + "_selectCate");
-            selectKeyword = sessionStorage.getItem(userId + "_selectKeyword");
-            selectNotice = sessionStorage.getItem(userId + "_selectNotice");
-            selectMoney = sessionStorage.getItem(userId + "_selectMoney");
-            selectFile = sessionStorage.getItem(userId + "_selectFile");
-
-            // 判断是否需要修改某个收藏的状态
-            var listCollSessionId = sessionStorage.getItem('listCollSessionId')
-            if (listCollSessionId){
-                var listCollSessionBool = sessionStorage.getItem('listCollSessionBool')
-                if (dataCache && $.isArray(dataCache)) {
-                    dataCache.forEach(function (item) {
-                        if (item._id == listCollSessionId) {
-                            item.collection = listCollSessionBool
-                        }
-                    })
-                    sessionStorage.removeItem('listCollSessionId')
-                    sessionStorage.removeItem('listCollSessionBool')
-                }
-            }
-
-            $("#list>*").remove();
-            firstPage = dataCache;
-            if (dataCache.length == 0) {
-                hasNoData();
-            } else {
-                structureHtml(dataCache, true);
-            }
-            //appendList($(listCache),$(tableCache));
-            $(".listcontent").scrollTop(scrollTop);
-            if (sessionStorage.getItem('hasFreeMore') === 'true') {
-                isNeedSales(function (res) {
-                  var result = checkRequiredKeys(['name', 'phone', 'position', 'branch','company'], res.info)
-                  if (!result && res.data && res.data.retainedCapital) {
-                    $(".seeMore").show()
-                    $(".seeMore-btn").on('click', function () {
-                      location.href = '/jyapp/frontPage/bigmember/free/perfect_info?source=jypush_see10_plus_app'
-                    })
-                  } else {
-                    location.reload()
-                  }
-                })
-              }
-            removeSessionStorage();
-        } else {
-            if(historyVt == 's') {
-                $(".set_keyword").hide();
-            }
-            userId = sessionStorage.userId;
-            // var isNeedSalesStatus = false
-            // var isNeedSalesStatus = true
-            console.log('load-ajax', selectFile, selectMoney, vm.selectFile, vm.selectMoney);
-            $.ajax({
-                type: 'post',
-                url: '/publicapply/subscribe/historyPush?t=' + new Date().getTime(),
-                data: {
-                  selectTime: firstTime,
-                  pageNum: 1,
-                  area: selectArea,
-                  city: selectCity,
-                  subscopeclass: selectIndustry,
-                  buyerclass: selectCate,
-                  key: selectKeyword,
-                  subtype: selectNotice,
-                  vt:historyVt,
-                  fileExists: vm.selectFile,
-                  price: vm.selectMoney
-                },
-                async: false,
-                dataType: 'json',
-                success: function (data) {
-                  if(!data.data) {
-                    data.data = []
-                  }
-                  checkFreeList(data)
-
-
-                     checkmerge(data.industry)
-                    if (data.otherFlag){
-                        localStorage.setItem({{.T.userId}}+"_otherFlag",data.otherFlag)
-                    }
-                    firstPage = data.data;
-                    isInTSguide = data.isInTSguide
-                    if (r.userType=="free" && firstPage.length <= 0 && !r.haskey && isInTSguide) {
-                        (function() {
-                            if (sessionStorage && (sessionStorage.keysetindexToHistory == "1" || sessionStorage.keysetindexToHistory == "2" || sessionStorage.keysetindexToHistory == "3")) {
-                                sessionStorage.removeItem("keysetindexToHistory");
-                                return
-                            }
-                            if (firstTime) {
-                                return
-                            }
-                            history.pushState({}, "", "");
-                            window.location.href = '/jyapp/wxkeyset/keyset/index';
-                        })();
-                    }
-
-                    // 非vip的新用户
-                    if (myInfo.userType !== 'vip') {
-                      if(myInfo.userType == 'entniche') {
-                        if(data.data) {
-                          if (data.data.length === 0) {
-                            $('.findnull_').show().siblings('.empty').hide()
-                          }
-                        } else {
-                          $('.findnull_').show().siblings('.empty').hide()
-                        }
-
-                        $('.header_header').hide()
-                      } else {
-                        // 如果是新用户(没有推送历史数据,没有关键词),直接就显示空页面
-                        if (data.data.length === 0 && myInfo.haskey === false && !firstTime) {
-                            if(vm.rootInfo.memberStatus > 0) {
-                                $('.header_header').hide()
-                            } else {
-                                $('.filter_tab').hide()
-                                $('.header_header').hide()
-                                $('.findnull-no-key').css({"display": 'block'}).siblings('.empty').hide()
-                            }
-                            return
-                        } else {
-                            if(vm.rootInfo.memberStatus > 0 || myInfo.userType == 'entniche') {
-                                $('.header_header').hide()
-                            } else {
-                                $('.header_header').show()
-                            }
-                        }
-                      }
-                    } else {
-                        if (data.data.length === 0) {
-                            $('.findnull_').show().siblings('.empty').hide()
-                        }
-
-                        $('.header_header').hide()
-                    }
-
-                    pageIndex = 2;
-                    lasttime = data.thistime;
-                    hasNextPage = data.hasNextPage;
-                    vm.hasNextPage = data.hasNextPage
-                    userId = data.userId;
-                    sessionStorage.userId = userId;
-                    sessionStorage.setItem(userId + "_searchTime", firstTime);
-                },
-                error: function (xhr, type) {
-                    hasNoData();
-                }
-            });
-            // firstPage.length = 0
-            if (firstPage.length == 0) {
-                //sessionStorage.removeItem("search_starttime");
-                sessionStorage.removeItem(sessionStorage.userId + "_searchTime");
-                hasNoData();
-                return;
-            }
-            dataCache = dataCache.concat(firstPage);
-            structureHtml(firstPage, true);
-
-            setTimeout(function () {
-                $(".listcontent").scrollTop(0);
-            }, 300);
-        }
-        setTimeout(() => {
-            $('#select-meau').css({'visibility': 'initial'})
-            $('#select-meau').css({'display':'flex'})
-        }, 500)
-        if (hasNextPage) {
-            setTimeout(function () {
-                wxflag = $('.listcontent').dropload({
-                    scrollArea: $(".listcontent"),
-                    // loadUpFn: function (me) {
-                    //     //loadDatas(me,-1);
-                    //     reloadFirstPage(me);//下拉刷新更新订阅词
-                    // },
-                    loadDownFn: function (me) {
-                        loadDatas(me, lasttime);
-                    }
-                });
-            }, 1000);
-        } else {
-            setTimeout(function () {
-                wxflag = $('.listcontent').dropload({
-                    scrollArea: $(".listcontent"),
-                    // loadUpFn: function (me) {
-                    //     loadDatas(me, -1);
-                    // },
-                    loadDownFn: function (me) {
-                        loadDatas(me, lasttime);
-                    }
-                });
-                noMoreData(wxflag);
-            }, 1000);
-        }
-      }
-      //
-      $.post("/publicapply/myinfo?t="+new Date().getTime(),null,function(r){
-        myInfo = r
-        if(r.vipStatus > 0){
-            // $(".switch").addClass("only-vip");
-            // $(".switch").text("超级订阅").show();
-            // $(".switch").click(tosetpage);
-            thisClass.InitVip(r);
-            extend(1);
-        }else{
-            if(vm.rootInfo.memberStatus <= 0) {
-              if(myInfo.userType == 'entniche') {
-                $('.header_header').hide()
-                $(".switch").addClass('switch_zj')
-                // $(".switch_right").hide()
-                $(".switch .switch_icon").addClass('icon_ent')
-                $(".switch .user_pro").text("商机管理").css('margin-right','.08rem')
-                $(".switch").show()
-                thisClass.InitPersonal(r);
-                if(historyVt === 's') {
-                  $(".switch").click(toEntNichePage);
-                }
-                extend(1)
-                return
-              }
-                setTimeout(function(){
-                    if (scrollTop==0 && r.haskey){
-                        $(".header_header").show();
-                    }
-                },200)
-
-                // 获取一下cache的列表数据
-                var listString = sessionStorage.getItem('historypushDataCache')
-                if (listString) {
-                    listString = JSON.parse(listString)
-                }
-
-                // 非vip
-                if (myInfo.userType !== 'vip') {
-                    if (listString) {
-                        $('.header_header').show()
-                    }
-                }
-                $(".app-content").css("justify-content","flex-start");
-                $(".switch").addClass("only-personal");
-                $(".switch .user_pro").text("立即使用 超级订阅");
-                $(".switch").click(tointroducepage);
-                $(".switch_ext").click(tointroducepage);
-                thisClass.InitPersonal(r);
-                extend(0);
-                // 免费用户删除类名
-                vm.RemoveClass('vip')
-                vm.RemoveClass('big')
-            } else {
-                thisClass.InitPersonal(r);
-                extend(1)
-            }
-        }
-      });
-  }
-  // 是否有未读的周报月报
-  function reportHtml(r){
-    if (r.unread > 0) {
-      $(".vip_report>a").show();
-    }else{
-      $(".vip_report>a").hide();
-    }
-    if (r.tip) {
-      if (r.tip.type == 2) {
-        $(".vip_report_tip .weekly>span").text("周");
-      } else {
-        $(".vip_report_tip .weekly>span").text("月");
-      }
-      $(".vip_report_tip .term").text(new Date(Number(r.tip.startdate + "000")).Format("yyyy年M月d日") + "-" + new Date(Number(r.tip.enddate + "000")).Format("yyyy年M月d日"));
-      $('.vip_report_tip').fadeIn();
-      $('.vip_report_todetail').on('click', function () {
-        $('.vip_report_tip').fadeOut();
-        localStorage.removeItem("reportTipTime");
-        localStorage.removeItem("reportData");
-        updateReportStatus(r.tip);
-      });
-      $('.weui-dialog img.vip_report_tip_close').click(function () {
-        $('.vip_report_tip').fadeOut();
-        localStorage.removeItem("reportTipTime");
-        localStorage.removeItem("reportData");
-        updateReportStatus();
-      });
-    }
-  }
-
-function extend(i){
-  window.listScroll = function() {
-    if (i==0){
-      var nowT = $(".listcontent").scrollTop()
-      if (nowT > 0) {
-        if (nowT > 50) {
-          // 修复非超级订阅用户,但是大会员会用户。在筛选结果只有4条数据时候滚动产生的无限循环
-          // 无限循环触发条件:nowT<50,设置高度,触发scroll事件,nowT<50 ...以此无限循环触发
-          $(".header_header").css({height: (60 - nowT) +'px'})
-          $(".header_header").hide();
-          $(".switch").fadeIn();
-        }else{
-          $(".header_header").show();
-          $(".switch").fadeOut();
-        }
-      } else {
-        $(".header_header").css({height: (60) +'px'})
-        $(".header_header").show()
-        $(".switch").fadeOut();
-      }
-    }
-  }
-}
-  //下拉刷新
-  function reloadFirstPage(me) {
-      if($(".vip_report").is(":hidden")||$(".vip_report>a").is(":hidden")){
-        afterJyObjInit();
-      }
-      selectArea = vm.area; // 地区
-      selectCity = vm.city; // 城市
-      selectIndustry = vm.subscopeclass // 行业
-      selectCate = vm.buyerclass // 采购单位
-      selectKeyword = vm.key // 关键词
-      selectNotice = vm.subtype // 公告类型
-      selectFile = vm.selectFile
-      selectMoney = vm.selectMoney
-      console.log('刷新-ajax', selectFile, selectMoney);
-      $.ajax({
-          type: 'post',
-          url: '/publicapply/subscribe/historyPush?t=' + new Date().getTime(),
-          data: {
-            selectTime: firstTime || vm.time,
-            pageNum: 1,
-            area: selectArea,
-            city: selectCity,
-            subscopeclass: selectIndustry,
-            buyerclass: selectCate,
-            key: selectKeyword,
-            subtype: selectNotice,
-            fileExists: selectFile,
-            price: selectMoney
-          },
-          async: false,
-          dataType: 'json',
-          success: function (data) {
-              pageIndex = 1;
-              lasttime = data.thistime;
-              firstPage = data.data;
-              hasNextPage = data.hasNextPage;
-              words = data.matchkeys;
-              count = 0;
-              dataCache = new Array();
-              $("#list>*").remove();
-              hasNextPage = true;
-              me.$domDown.html(me.opts.domDown.domLoad);
-              me.isData = true;
-              me.isLockUp = false;
-              me.isLockDown = false;
-              if (data.data.length == 0) {
-                  noMoreData(me);
-              } else {
-                  pageIndex++;
-                  lasttime = data["thistime"];
-                  dataCache = dataCache.concat(data["data"]);
-                  structureHtml(data["data"], true);
-                  if (data.hasNextPage) {
-                      // 每次数据插入,必须重置
-                      me.resetload();
-                  } else {
-                      noMoreData(me);
-                  }
-              }
-          },
-          error: function (xhr, type) {
-              hasNoData(me);
-          }
-      });
-  }
-
-  function loadDatas(me, le) {
-      wxflag = me;
-      selectArea = vm.area; // 地区
-      selectCity = vm.city; // 城市
-      selectIndustry = vm.subscopeclass // 行业
-      selectCate = vm.buyerclass // 采购单位
-      selectKeyword = vm.key // 关键词
-      selectNotice = vm.subtype // 公告类型
-      selectFile = vm.selectFile
-      selectMoney = vm.selectMoney
-      if(vm.hasNextPage) {
-        $.ajax({
-          type: 'post',
-          url: '/publicapply/subscribe/historyPaging',
-          data: {
-            pageNum: pageIndex,
-            selectTime: firstTime || vm.time,
-            area: selectArea,
-            city: selectCity,
-            subscopeclass: selectIndustry,
-            buyerclass: selectCate,
-            key: selectKeyword,
-            subtype: selectNotice,
-            vt:historyVt,
-            fileExists: selectFile,
-            price: selectMoney
-          },
-          dataType: 'json',
-          success: function (data) {
-              //没有数据
-              if (data.data.length == 0) {
-                  noMoreData(me);
-              } else {
-                  pageIndex++;
-                  lasttime = data["thistime"];
-                  dataCache = dataCache.concat(data["data"]);
-                  structureHtml(data["data"], false);
-                  if (data.hasNextPage) {
-                      // 每次数据插入,必须重置
-                      me.resetload();
-                  } else {
-                      noMoreData(me);
-                  }
-              }
-          },
-          error: function (xhr, type) {
-              noMoreData(me);
-          }
-        });
-      }
-  }
-
-  function noMoreData(me) {
-      if (me == null) {
-          return;
-      }
-      wxflag = me;
-      hasNextPage = false;
-      // 锁定
-      me.lock();
-      // 无数据
-      me.noData();
-      // 即使加载出错,也得重置
-      me.resetload();
-  }
-
-function hasNoData() {
-    var nokeyNoDataShow = $('.findnull-no-key').is(':visible')
-    var NoDataShow = $('.findnull-no-key').is(':hidden')
-    $(".listcontent").hide()
-    $("#loading").hide()
-    $('#select-meau').css({'visibility': 'initial'})
-    $('#select-meau').css({'display': 'flex'})
-    $(".color_top").hide()
-    // 如果no-key-no-data 不显示,才会显示no-data
-    if (!nokeyNoDataShow || !NoDataShow) {
-        $(".findnull_").css("display", "block")
-        $('.findnull_').siblings('.empty').hide()
-    } else {
-        $(".findnull_").css("display", "none")
-    }
-    if(!NoDataShow) {
-        if(!myInfo.haskey){
-          if(myInfo.userType == 'entniche') {
-            $(".findnull_").css("display", "block").siblings('.empty').hide()
-          } else {
-            $('.findnull-no-key').css("display", "block").siblings('.empty').hide()
-          }
-        } else {
-          $(".findnull_").css("display", "block").siblings('.empty').hide()
-        }
-    }
-}
-
-  function structureHtml(object, showAd) {
-      $('.findnull').hide()
-      $('.findnull_').hide()
-      $('.findnull-no-key').hide()
-      var listhtml = '';
-      var ad = $("#advertscript").html();
-      for (var index in object) {
-          var obj = object[index];
-          //标题(需要高亮)
-          var title = obj.title;
-          if(title==""||title==undefined){
-            continue
-          }
-          count++;
-          var mWords = "";
-          var _words = "";
-          if (obj.matchkeys != undefined && obj.matchkeys != null) {
-              _words = obj.matchkeys;
-          }
-          if (_words != null && _words.length > 0) {
-              for (var n = 0; n < _words.length; n++) {
-                  var keysTemp = _words[n].split("+");
-                  for (var m = 0; m < keysTemp.length; m++) {
-                      title = keyWordHighlight(title, keysTemp[m], '<font class="keyword">$1</font>');
-                  }
-              }
-              mWords = _words.join("_");
-          }
-          //地区
-          var area = obj.area;
-          var areaList = "";
-          if (area != "") {
-              area = $.trim(area);
-              area = area == "A" ? "全国" : area;
-              areaList = '<span class="location">' + area + '</span>';
-          }
-          //类型
-          var datatype = obj.type;
-          var datatypeList = "";
-          var datatypeTable = "";
-          if (datatype != "") {
-              datatypeList = '<span class="type">' + datatype + '</span>'
-              datatypeTable = datatype + "公告"
-          }
-          //行业
-          var ca_isvip = obj.ca_isvip
-          var industryname = "";
-          var industryListname = "";
-          if (ca_isvip) {
-              if (obj.buyerclass != null && obj.buyerclass != "") {
-                  industryname = obj.buyerclass
-                  industryListname = '<span class="buyerclass">' + industryname + '</span>';
-              }
-          } else {
-              if (obj.s_subscopeclass != null && obj.s_subscopeclass != "") {
-                  industryname = obj.s_subscopeclass
-                  industryListname = '<span class="industry">' + industryname + '</span>';
-              }
-          }
-          // 预算:budget;中标:bidamount
-          var moneyList = "";
-          if (obj.budget != null && obj.budget != "") {
-              moneyList = '<span class="bidamount">' + utils.moneyUnit(obj.budget) + '</span>';
-          }
-          if (obj.bidamount != null && obj.bidamount != "") {
-              moneyList = '<span class="bidamount">' + utils.moneyUnit(obj.bidamount) + '</span>';
-          }
-          //时间
-          var showdateList = ""
-          var showdateTable = ""
-
-          if (obj.publishtime) {
-              showdateList = utils.dateFromNow(obj.publishtime * 1000);
-              showdateTable = formatDate(obj.publishtime)
-              if (showdateList != null) {
-                  showdateList = '<span><i class="jyapp-icon jyapp-icon-bofangjilu" style="color:#7a7a7a;margin-right:2px;"></i>' + showdateList + '</span>'
-              }
-          }
-          //
-          var projectM = obj.ca_type;
-          var projectMList = "";
-          if (projectM == 1) {
-              projectMList = '<span class="projectM">项目匹配</span>'
-          } else {
-              projectMList = areaList + industryListname + datatypeList + moneyList
-          }
-          //序号位置
-          var paddingLeft = 20
-          var countLength = count.toString().length;
-          if (countLength > 1) {
-              paddingLeft = (countLength + 1) * 9;
-          }
-          //是否浏览过
-          var visited = "";
-          if (obj.ca_isvisit == 1) {
-              visited = "visited"
-          }
-          // 是否有附件
-          var fileText = ''
-          if (obj.ca_fileExists) {
-            fileText = '<font class="keyword" style="margin-right:4px;">[有附件]</font>'
-          }
-          if (showAd && index == 3 && !closeAdvert) {//广告位
-              var ad = $("#advertscript").html()
-              if (ad != ""&&ad.length>20) {
-                  listhtml += '<div class="tslist ' + visited + '" style="border-bottom: none;" words="' + mWords + '">'
-                  if (obj.site == '剑鱼信息发布平台') {
-                    listhtml += '<div class="userPublish">用户发布</div>'
-                  }
-                  listhtml += '<div class="resnumb">'
-                      + '<div class="one">'
-                      + '<span class="xh ' + visited + '">' + count + '.</span>'
-                      + '</div>'
-                      + '<div class="two bt-parent" style="display: flex;justify-content: space-between;padding-left:' + paddingLeft + 'px;">'
-                      + '<a class="bt ' + visited + '" eid="' + obj["_id"] + '"  push_date="' + obj["ca_date"] + '" list_index="' + obj["ca_index"] + '" projectM="' + obj["ca_type"] + '">' + fileText + title + '</a>'
-                      + '<div class="collec_star" collecnum="'+obj["collection"]+'" data-id="' + obj["_id"] + '">'
-                      + '<span class="shoucang"></span>'
-                      + '<span class="weishoucang"></span>'
-                      + '</div>'
-                      + '</div>'
-                      + '</div>'
-                      + '<div style="clear:both;">'
-                      + '</div>'
-                      + '<div class="restime time-diff">' + projectMList + showdateList + '</div>'
-                      + '<div style="clear:both;"></div>'
-                      + '</div>'
-                      + '<div class="adv-wxpush-center" adv_name="APP推送历史页-中部" id="E1">' + ad + '</div>'
-                  continue
-              }
-          }
-          listhtml += '<div class="tslist ' + visited + '" words="' + mWords + '">'
-          if (obj.site == '剑鱼信息发布平台') {
-            listhtml += '<div class="userPublish">用户发布</div>'
-          }
-          listhtml += '<div class="resnumb">'
-              + '<div class="one">'
-              + '<span class="xh ' + visited + '">' + count + '.</span>'
-              + '</div>'
-              + '<div class="two bt-parent" style="display: flex;justify-content: space-between;padding-left:' + paddingLeft + 'px;">'
-              + '<a class="bt ' + visited + '" eid="' + obj["_id"] + '"  push_date="' + obj["ca_date"] + '" list_index="' + obj["ca_index"] + '" projectM="' + obj["ca_type"] + '">' + fileText + title + '</a>'
-              + '<div class="collec_star" collecnum="'+obj["collection"]+'" data-id="' + obj["_id"] + '">'
-              + '<span class="shoucang"></span>'
-              + '<span class="weishoucang"></span>'
-              + '</div>'
-              + '</div>'
-              + '</div>'
-              + '<div style="clear:both;">'
-              + '</div>'
-              + '<div class="restime time-diff">' + projectMList + showdateList + '</div>'
-              + '<div style="clear:both;"></div>'
-              + '</div>'
-      }
-      if (object.length <= 3 && ad != undefined && ad != "" && !closeAdvert && showAd) {
-          appendList($("<div>" + listhtml + "<div class='adv-wxpush-center' id='E1'>" + ad + "</div></div>"));
-      } else {
-          appendList($("<div>" + listhtml + "</div>"));
-      }
-      if (object.length <= 4 && ad != undefined && ad != "") {
-          $(".closeadv").css("display", "none");
-          $(".closeadv-bg").css("display", "none");
-      } else {
-          $(".closeadv").css("display", "");
-          $(".closeadv-bg").css("display", "");
-      }
-    //   控制收藏五角星显示隐藏
-      $('.collec_star').each(function(item, index) {
-        // console.log($('.collec_star').eq(item)[0])
-        let collecnum = $('.collec_star').eq(item).attr('collecnum')
-        if(collecnum == 1) {
-            $('.collec_star').eq(item).find('.shoucang').show()
-            $('.collec_star').eq(item).find('.weishoucang').hide()
-        }else{
-            $('.collec_star').eq(item).find('.shoucang').hide()
-            $('.collec_star').eq(item).find('.weishoucang').show()
-        }
-      })
-
-       // 收藏或取消收藏
-        $('.collec_star').on('click', function(e){
-            const _this = this
-            e.stopPropagation()
-            const id = $(this).attr('data-id')
-            var shoucang = $(_this).find('.weishoucang').is(':hidden')
-            // 说明未收藏,点击收藏
-            if (vKeepComponent) {
-                vKeepComponent.changeBid(id, !shoucang)
-                // if(listnum < 100) {
-                //     vKeepComponent.changeKeepStatus(!shoucang, _this)
-                // }
-            }
-        })
-  }
-
-  var vKeepComponent = new Vue({
-        delimiters: ['${', '}'],
-        el: '#jyKeepComponent',
-        data: {
-            nowOpenBid: ''
-        },
-        methods: {
-            changeBid (id, type) {
-                this.nowOpenBid = id
-                this.$refs.vKeepComponent.ajaxAddKeep(id, type)
-            },
-            changeKeepStatus (type, that) {
-                if (!that) {
-                  that = $('*[data-id="'+this.nowOpenBid+'"]')
-                }
-                changeCollectStatus(type, that)
-                changeCollectDataStatus(type, this.nowOpenBid)
-            }
-        }
-    })
-    function changeCollectDataStatus (type, id) {
-        if (dataCache && $.isArray(dataCache)) {
-            dataCache.forEach(function (item) {
-                if (item._id == id) {
-                    item.collection = type ? 1 : 0
-                }
-            })
-        }
-    }
-    function changeCollectStatus(type, that) {
-        if(type) {
-            $(that).find('.shoucang').show()
-            $(that).find('.weishoucang').hide()
-            listnum++
-        } else {
-            $(that).find('.shoucang').hide()
-            $(that).find('.weishoucang').show()
-            listnum--
-        }
-    }
-
-  //
-  function formatDate(date, sl) {
-      var myDate = new Date(date * 1000);
-      var year = myDate.getFullYear();
-      var month = myDate.getMonth() + 1;
-      if (month < 10 && sl != "1") {
-          month = "0" + month
-      }
-      var date = myDate.getDate();
-      if (date < 10 && sl != "1") {
-          date = "0" + date
-      }
-      var hour = myDate.getHours()
-      var min = myDate.getMinutes()
-      if (sl == "1") {
-          if (hour < 10) {
-              hour = "0" + hour
-          }
-          if (min < 10) {
-              min = "0" + min
-          }
-          return year + "-" + month + "-" + date;
-      } else if (sl == "2") {
-          return year + "." + month + "." + date;
-      } else {
-          return year + "<br>" + month + "" + date;
-      }
-  }
-    function hiddenTips2() {
-        $('#tipsType').hide()
-    }
-    function updateJump2() {
-        $('#tipsType').hide()
-        location.href = '/jyapp/areaPack/page/set_area'
-        // location.replace('/jyapp/vipsubscribe/toSubVipSetPage?vSwitch=v')
-        // $.ajax({
-        //     url: '/publicapply/free/oneProvinceSet',
-        //     type: 'POST',
-        //     success: function (res) {
-        //         location.href = '/jyapp/areaPack/page/set_area'
-        //     }
-        // })
-    }
-  //
-  function appendList(content) {
-      content.children(".tslist").on("click", function (event) {
-        if (!window.userNewType&&!(vm.rootInfo.vipStatus>0||vm.rootInfo.memberStatus>0||myInfo.userType == 'entniche')) {
-            $('#tipsType').show()
-          } else {
-            $('#tipsType').hide()
-            var isv = $(this).find("a.bt").hasClass("visited");//是否为已读
-            setVisitedIndex($(this), "");
-            var sds = $(this).attr("words");
-            var h = $(this).find("a.bt").attr("s");
-            var eid = $(this).find("a.bt").attr("eid");
-            var index = $(this).find("a.bt").attr("projectm");
-            var pdate = $(this).find("a.bt").attr("push_date");
-            beforeJump(eid, h, sds, index, pdate, isv);
-            sessionStorage.setItem(vm.sessStorageKey, JSON.stringify(vm.$data))
-          }
-        })
-        $("#list").append(content);
-        $(".findnull").hide();
-        $(".listcontent").show();
-        setTimeout(function () {
-            $("#loading").hide();
-        }, 500)
-  }
-
-  function beforeJump(eid, h, sds, index, pd, vis) {
-      if (!vis) {
-          for (var i = 0; i < dataCache.length; i++) {
-              if (dataCache[i]._id == eid && dataCache[i].ca_date == pd) {
-                  dataCache[i].ca_isvisit = 1;
-                  break
-              }
-          }
-      }
-      setSessionStorage();
-      newredirect("", h, eid, "subkey_" + sds, index);
-  }
-
-  function setSessionStorage() {
-      if (sessionStorage && dataCache.length >= 0) {
-          sessionStorage.closeAdvert = closeAdvert;
-          sessionStorage.historypushScrollTop = scrollTop;
-          sessionStorage.historypushDataCache = JSON.stringify(dataCache);
-          sessionStorage.historypushPageIndexCache = pageIndex;
-          sessionStorage.historypushHasNextPage = hasNextPage;
-          sessionStorage.superSearch_iosNoRefresh = 'detail'
-          sessionStorage.hasFreeMore = $(".seeMore").is(":visible").toString()
-      }
-  }
-
-  function removeSessionStorage() {
-      sessionStorage.removeItem("historypushDataCache");
-      sessionStorage.removeItem("historypushPageIndexCache");
-      sessionStorage.removeItem("historypushScrollTop");
-      sessionStorage.removeItem("historypushHasNextPage");
-      sessionStorage.removeItem("closeAdvert");
-      sessionStorage.removeItem("hasFreeMore");
-  }
-
-  function setVisitedIndex(obj, eid) {
-      if (obj.find("a.bt").hasClass("visited") || obj.hasClass("visited")) {
-          return;
-      }
-      obj.find("a.bt").addClass("visited");
-      obj.find("span.xh").addClass("visited");
-      var vsid = obj.find("a.bt").attr("list_index");
-      if (vsid) {
-          $.ajax({
-              type: 'post',
-              url: '/publicapply/subscribe/setRead?t=' + new Date().getTime(),
-              data: {vsid: vsid},
-              async: false
-          });
-      }
-  }
-
-  //
-  var ajaxFlag = true;
-
-  function ajaxFun(time, area, city, subscopeclass, buyerclass, key, subtype, file, price) {
-    if(historyVt == 's') {
-      $(".set_keyword").hide();
-    }
-      if (!ajaxFlag) {
-          return
-      }
-      ajaxFlag = false;
-      $("#loading").show();
-      if(!time && !area && !city && !subscopeclass && !buyerclass && !key && !subtype){
-        afterJyObjInit();
-      }
-      if(isPageShow == '1') {
-        localStorage.removeItem('hideBottom')
-        JyObj.hiddenBottom("0");
-      }
-      // console.log(historyVt, 'historyVt');
-      console.log('ajaxFun-ajax', file, price);
-      $.ajax({
-          type: 'post',
-          url: '/publicapply/subscribe/historyPush?t=' + new Date().getTime(),
-          data: {
-            selectTime: time,
-            area: area,
-            city: city,
-            subscopeclass: subscopeclass,
-            pageNum: 1,
-            buyerclass: buyerclass,
-            key: key.replace(/\s/g, ','),
-            subtype: subtype,
-            vt:historyVt,
-            fileExists: file,
-            price: price
-          },
-          async: false,
-          dataType: 'json',
-          success: function (data) {
-            if(!data.data) {
-              hasNoData
-              return
-            }
-              pageIndex = 2;
-              lasttime = data.thistime;
-              firstPage = data.data;
-              hasNextPage = data.hasNextPage;
-              vm.hasNextPage = data.hasNextPage
-              userId = data.userId;
-              ajaxFlag = true;
-              if(!data.haskey) {
-                if(historyVt == 'm' && vm.rootInfo.isSubCount) {
-                    $(".set_keyword").hide();
-                } else if(historyVt == 's') {
-                    $(".set_keyword").hide();
-                } else {
-                  $(".set_keyword").show();
-                }
-              } else {
-                $(".set_keyword").hide();
-              }
-              if (time == undefined || time == "") {
-                  sessionStorage.removeItem(userId + "_searchTime");
-              } else {
-                  sessionStorage.setItem(userId + "_searchTime", time);
-              }
-              if (!area) {
-                  sessionStorage.removeItem(userId + "_selectArea");
-              }
-              if (!city) {
-                  sessionStorage.removeItem(userId + "_selectCity");
-              }
-              if (!selectFile) {
-                sessionStorage.removeItem(userId + "_selectFile");
-              }
-              if (!selectMoney) {
-                sessionStorage.removeItem(userId + "selectMoney");
-              }
-          },
-          error: function (xhr, type) {
-              ajaxFlag = true;
-              hasNoData();
-          }
-      });
-      dataCache = firstPage;
-      if (firstPage.length == 0) {
-          if ($(".findnull").css("display") == "block") {
-              $(".findnull").css("display", "none");
-          }
-          hasNoData();
-          return;
-      }
-      $("#list").html("");
-      count = 0;
-      structureHtml(firstPage, true);
-      setTimeout(function () {
-          $(".listcontent").scrollTop(0);
-      }, 300);
-      //================================
-      if (hasNextPage) {
-          setTimeout(function () {
-              wxflag = $('.listcontent').dropload({
-                  scrollArea: $(".listcontent"),
-                //   loadUpFn: function (me) {
-                //       //loadDatas(me,-1);
-                //       reloadFirstPage(me);//下拉刷新更新订阅词
-                //   },
-                  loadDownFn: function (me) {
-                      loadDatas(me, lasttime);
-                  }
-              });
-          }, 800);
-      } else {
-          wxflag = $('.listcontent').dropload({
-              scrollArea: $(".listcontent"),
-            //   loadUpFn: function (me) {
-            //       loadDatas(me, -1);
-            //   },
-              loadDownFn: function (me) {
-                  loadDatas(me, lasttime);
-              }
-          });
-          noMoreData(wxflag);
-      }
-  }
-
-  //免费用户关键词设置
-  function tokeyset() {
-    setSessionStorage()
-    // 如果没有订阅过,先去引导页(keyset/index会被重定向到引导页)
-    // 判断当前世大会员还是超级订阅
-    let switchProduct = sessionStorage.getItem('switch-product')
-    if(switchProduct) {
-        if(switchProduct == 'bigmember') {
-            window.location.href = '/jyapp/vipsubscribe/toSetKeyWordPage?vSwitch=m';
-        } else if(switchProduct == 'entniche') {
-          window.location.href = '/page_entniche_new/page/subsetting/keyWord.html'
-        } else {
-            if (isInTSguide) {
-                window.location.href = '/jyapp/wxkeyset/keyset/index';
-            } else {
-                if (myInfo.haskey) {
-                    window.location.href = '/jyapp/wxkeyset/keyset/index';
-                } else {
-                    if(myInfo.userType=="vip") {
-                        window.location.href = '/jyapp/vipsubscribe/toSetKeyWordPage'
-                    } else {
-                        //window.location.href = '/jyapp/vipsubscribe/toSetKeyWordPage'
-                        window.location.href = '/jyapp/vipsubscribe/toSubVipSetPage';
-                    }
-                }
-            }
-        }
-    } else {
-        if (isInTSguide) {
-            window.location.href = '/jyapp/wxkeyset/keyset/index';
-        } else {
-            if (myInfo.haskey) {
-                window.location.href = '/jyapp/wxkeyset/keyset/index';
-            } else {
-                if(myInfo.userType=="vip") {
-                    window.location.href = '/jyapp/vipsubscribe/toSetKeyWordPage'
-                } else {
-                    //window.location.href = '/jyapp/vipsubscribe/toSetKeyWordPage'
-                    window.location.href = '/jyapp/vipsubscribe/toSubVipSetPage';
-                }
-            }
-        }
-    }
-
-  }
-  // 清除超级订阅购买、续费、升级页面相关的优惠券、商品规格缓存
-  sessionStorage.removeItem('vip-cur-select-coupon')
-  sessionStorage.removeItem('$select-coupon')
-  sessionStorage.removeItem('vip-cur-select-size')
-  //介绍页
-  function tointroducepage() {
-      setSessionStorage();
-      window.location.href = "/jyapp/vipsubscribe/introducePage";
-  }
-
-  //我的企业列表
-  function toEntNichePage() {
-      setSessionStorage();
-      window.location.href = "/page_entniche_new/home";
-  }
-
-  //vip设置
-  function tosetpage() {
-      setSessionStorage();
-      window.location.href = "/jyapp/vipsubscribe/toSubVipSetPage?vSwitch=v";
-  }
-
-  //vip关键词设置
-  function tosetkeyspage() {
-      setSessionStorage();
-      window.location.href = "/jyapp/vipsubscribe/toSetKeyWordPage";
-  }
-
-  //续费
-  function torepay() {
-      setSessionStorage();
-      // window.location.href = "/jyapp/vipsubscribe/vipsubscribe_renew";
-      window.location.href = "/jy_mobile/common/order/create/svip?type=renew";
-  }
-
-  //购买
-  function topay() {
-      setSessionStorage();
-      // window.location.href = "/jyapp/vipsubscribe/vipsubscribe_new";
-      window.location.href = "/jy_mobile/common/order/create/svip?type=buy";
-  }
-  function updateReportStatus(tip) {
-      $.post("/subscribepay/report/tipover?t=" + new Date().getTime(), {type:productType==2?"member":"vip"}, function (r) {
-        if (tip) {
-          if(productType == 2){//大会员
-            if (tip.type == 2) { //周
-              window.location.href = "/jyapp/big/page/report_detail_week?start=" + tip.startdate + "&end=" + tip.enddate + "&pushcount=" + tip.pushcount+"&type=member";
-            }else{//月
-              window.location.href = "/jyapp/big/page/report_detail_month?start=" + tip.startdate + "&end=" + tip.enddate + "&pushcount=" + tip.pushcount+"&type=member";
-            }
-          }else{//超级订阅
-            window.location.href = "/vipreport/page/reportdetail.html?start=" + tip.startdate + "&end=" + tip.enddate + "&pushcount=" + tip.pushcount+"&type=vip";
-          }
-        }
-      });
-  }
-  function afterJyObjInit(){
-    try{
-      JyObj.hideRedSpotOnMenu("subscribe");
-    }catch(e){}
-  }
-  function iphoneXInit(){
-    $(".app-layout-content-b").css("top","89px");
-  }
-</script>
-<script type="text/javascript" charset="UTF-8">
-    function weuiDialog() {
-        weui.dialog({
-            title: '提示信息',
-            content: '您未设置关键词<br/>设置后接收信息更精确',
-            className: 'jymobile-setting-dialog',// 设置弹框的类名
-            buttons: [
-                {
-                    label: '去设置',
-                    type: 'primary',
-                    onClick: function () {
-                        // console.log('确定')
-                        tosetkeyspage();
-                    }
-                },
-                {
-                    label: '取消',
-                    type: 'default',
-                    onClick: function () {
-                        console.log('取消')
-                    }
-                }
-            ]
-        });
-    }
-
-    $('.open_remind .icon-chahao').on('click', function () {
-        $('.open_remind').hide()
-    })
-    //禁止默认行为方法
-    function stopScroll(e) {
-        e.preventDefault()
-    }
-    //用户合并
-    $(".dialog_alert .close").on("click",function(){
-      localStorage.canshowother=true
-      $(".dialog_alert").hide()
-    })
-    $(".dialog_alert .dialog_ft").on("click",function(){
-      localStorage.canshowother=true
-      window.location.href='/page_entniche/page/user/account_merge.html'
-    })
-    //关闭 其他采购单位行业 弹窗
-    function close_other(){
-      $(".jy-alert-other").hide();
-    }
-
-    //
-    $(function () {
-        $('#list').on('tap longTap', '.tslist',function(e){
-            var tempS = $(this).addClass("hover")
-            setTimeout(function () {
-                tempS.removeClass('hover')
-            }, 50)
-        })
-        try{
-          document.querySelector('.screen').addEventListener('touchmove', stopScroll, {passive: false});
-          document.querySelector('.tab_left').addEventListener('touchmove', stopScroll, {passive: false});
-          document.querySelector('.tab_right').addEventListener('touchmove', stopScroll, {passive: false});
-          document.querySelector('.handle_menu').addEventListener('touchmove', stopScroll, {passive: false});
-        }catch(e){}
-        if (firstTime != "" && firstTime != null) {
-            date = formatDate(firstTime / 1000, "1");
-        }
-
-        // 关闭设置弹窗
-        $('#close_set').on('click', function () {
-            $('.set_keyword').hide()
-        })
-        $('#close_renew').on('click', function () {
-            $('.renew_toast').hide()
-        })
-        $('#_close_renew').on('click', function () {
-            $('._renew_toast').hide()
-        })
-        $('#nv_close_renew').on('click', function () {
-            localStorage.setItem("nv_vip_" + userId, "T");
-            $('.nv_renew_toast').hide()
-        })
-
-    })
-    var mergedlist = []
-    var merge_industry = ["国土","林业","环保","卫生","工商","质监","食药","安监","地震","公安","文化","旅游","银监","保监"]
-    function checkmerge(state) {
-        if (checkindustry(state)){
-            var tips = "<span style='font-size:15px;font-family:PingFang SC;font-weight:bold;color:rgba(29,29,29,1);opacity:1;'>随着政府机构改革和职能转变工作深入推进,部分采购单位行业与现实不一致,为了提高订阅推送数据的准确性,剑鱼标讯需要针对采购单位行业名称进行优化。</span><br><span style='font-size:13px;font-family:PingFang SC;font-weight:400;color:rgba(104,104,104,1);opacity:1;'>采购单位名称的调整不影响所购买的采购单位数量,您仍可按需调整。<br><br>您订阅的:<br></span>"
-            var hasMerged = isread
-            var s_count=h_count=m_count=p_count=cultural_count=CBRC_count=t_count = 0
-            var nature_source = ["国土","林业"];
-            var health_commission = ["卫生"]
-            var market_supervision = ["工商","质监","食药"]
-            var contingency_management = ["安监","地震","公安"]
-            var cultural_tourism = ["文化","旅游"]
-            var CBRC = ["银监","保监"]
-            var ecological_environment = ["环保"]
-
-            state.forEach(function (item,index) {
-                if (merge_industry.indexOf(item)>-1){
-                    if (item == "国土"||item == "林业"){
-                        mergedlist.push("自然资源")
-                        // hasMerged = true
-                        nature_source = Highlight(nature_source,item)
-                        s_count++
-                    } else if (item == "环保"){
-                        mergedlist.push("生态环境")
-                        // hasMerged = true
-                        ecological_environment = Highlight(ecological_environment,item)
-                        h_count++
-
-                    } else if ( item == "卫生"){
-                        mergedlist.push("卫健委")
-                        // hasMerged = true
-                        health_commission= Highlight(health_commission,item)
-                        p_count++
-                    } else if (item == "工商"||item == "质监"||item == "食药"){
-                        mergedlist.push("市场监管")
-                        // hasMerged = true
-
-                        market_supervision =  Highlight(market_supervision,item)
-                        m_count++
-                    } else if (item == "地震"||item=="安监"||item=="公安"){
-                        if (item !=="公安"){
-                            mergedlist.push("应急管理")
-                        }else{
-                            mergedlist.push("公安")
-                        }
-                        // hasMerged = true
-                        contingency_management = Highlight(contingency_management,item)
-                        t_count++
-                    } else if (item=="文化"||item == "旅游"){
-                        mergedlist.push("文旅")
-                        // hasMerged = true
-                        cultural_tourism = Highlight(cultural_tourism,item)
-                        cultural_count++
-                    } else if  (item == "银监"||item == "保监"){
-                        mergedlist.push("银保监")
-                        // hasMerged = true
-                        CBRC= Highlight(CBRC,item)
-                        CBRC_count++
-                    }
-                }else{
-                    mergedlist.push(item)
-                }
-            })
-            if(s_count>=1){
-                tips +=nature_source.join('、')+" 合并为 【自然资源】<br>"
-            }
-            if (h_count>=1){
-                tips +=ecological_environment.join('、')+" 整合其他部门部分职能后更改为 【生态环境】<br>"
-            }
-            if (p_count>=1){
-                tips +=health_commission.join('、')+" 变更为 【卫健委】<br>"
-            }
-            if (m_count>=1){
-                tips +=market_supervision.join('、')+" 合并为 【市场监管】<br>"
-            }
-            if (t_count>=1){
-                tips +=contingency_management.join('、')+"中的消防 合并为 【应急管理】<br>"
-            }
-            if (cultural_count>=1){
-                tips +=cultural_tourism.join('、')+" 合并为 【文旅】<br>"
-            }
-            if (CBRC_count>=1){
-                tips +=CBRC.join('、')+" 合并为 【银保监】<br>"
-            }
-            if (!hasMerged){
-                $("#merge_content").html(tips)
-                $("#merge_dialog").show()
-            }
-        }
-
-    }
-
-    function acceptchange() {
-        var q = removeDuplicatedItem(mergedlist)
-        $.post("/subscribepay/vipsubscribe/mergeIndustry",{"industry":q.toString(),"isread":true},function (r) {
-            if (r.success){
-                console.log("行业合并成功")
-            }else{
-                console.log("行业合并失败")
-            }
-        })
-        $("#merge_dialog").hide()
-    }
-    function Highlight(a_list,key) {
-        a_list.forEach(function (item,index) {
-            if (item == key){
-                var m = "<span style='color:red'>"+item+"</span>"
-                a_list[index] = m
-
-            }
-        })
-        return a_list
-    }
-    function removeDuplicatedItem(ar) {
-        var ret = [];
-
-        for (var i = 0, j = ar.length; i < j; i++) {
-            if (ret.indexOf(ar[i]) === -1) {
-                ret.push(ar[i]);
-            }
-        }
-
-        return ret;
-    }
-    function checkindustry(industry){
-        var isinclude = false
-        if(!industry) {
-          return isinclude
-        }
-        industry.forEach(function (item,index) {
-            if (merge_industry.indexOf(item)>-1){
-                isinclude =  true
-                return
-            }
-        })
-        return isinclude
-    }
-</script>
-
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/js/historypush.js?v={{Msg "seo" "version"}}'></script>
+<script src=//cdn-common.jianyu360.com/cdn/lib/weui.js/1.2.1/weui.min.js></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/history-push/js/old-page-script.js?v={{Msg "seo" "version"}}'></script>
 </html>

+ 51 - 0
src/web/staticres/common-module/history-push/css/dropload.css

@@ -0,0 +1,51 @@
+.dropload-up,.dropload-down{
+    position: relative;
+    height: 0;
+    overflow: hidden;
+    font-size: 12px;
+    /* 开启硬件加速 */
+    -webkit-transform:translateZ(0);
+    transform:translateZ(0);
+}
+.dropload-down{
+    height: 50px;
+}
+.dropload-refresh,.dropload-update,.dropload-load,.dropload-noData{
+    height: 50px;
+    line-height: 50px;
+    text-align: center;
+}
+.dropload-load .loading{
+    display: inline-block;
+    height: 15px;
+    width: 15px;
+    border-radius: 100%;
+    margin: 6px;
+    border: 2px solid #666;
+    border-bottom-color: transparent;
+    vertical-align: middle;
+    -webkit-animation: rotate 0.75s linear infinite;
+    animation: rotate 0.75s linear infinite;
+}
+@-webkit-keyframes rotate {
+    0% {
+        -webkit-transform: rotate(0deg);
+    }
+    50% {
+        -webkit-transform: rotate(180deg);
+    }
+    100% {
+        -webkit-transform: rotate(360deg);
+    }
+}
+@keyframes rotate {
+    0% {
+        transform: rotate(0deg);
+    }
+    50% {
+        transform: rotate(180deg);
+    }
+    100% {
+        transform: rotate(360deg);
+    }
+}

+ 190 - 0
src/web/staticres/common-module/history-push/css/old-page-style.css

@@ -0,0 +1,190 @@
+.j-popup.van-popup--bottom .j-main {
+  height: 100%;
+}
+.merge-dialog,
+.weui-dialog,
+.weui-mask{
+  z-index: 99999;
+}
+
+.van-dialog,
+.j-popup,
+.j-overlay {
+  z-index: 99999!important;
+}
+
+.jymobile-setting-dialog .weui-dialog__hd{
+  text-align: center !important;
+}
+.jymobile-setting-dialog .weui-dialog__bd{
+  padding: .37rem .1rem .38rem !important;
+  color: #1D1D1D !important;
+  font-size: .32rem !important;
+  text-align: center !important;
+}
+.jymobile-setting-dialog .weui-dialog__ft{
+  display: flex !important;
+  padding: 0 0 .38rem 0 !important;
+  text-align: center !important;
+}
+.jymobile-setting-dialog .weui-dialog__ft .weui-dialog__btn_default{
+  margin-right: .3rem !important;
+}
+.jymobile-setting-dialog .weui-dialog__ft>a {
+  text-decoration: none !important;
+}
+.app-layout-header{
+  padding-left: 16px;
+  padding-right: 16px;
+  padding-top: 20px;
+}
+.app-layout-header .switch-vip:before, .app-layout-header .only-vip:before {
+  height: 18px;
+}
+.app-layout-header .switch-vip:before, .app-layout-header .only-member::after {
+  content: '';
+  display: flex;
+  margin-left: 4px;
+  width: 12px;
+  height: 12px;
+  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACSSURBVHgBzZO7CYAwFEWvQXCNWOoWDiFY27mUDmDjBo5gZ2vWEBElASGGFyGfwlOFGzgkeTdAJBIqXIaGZ9c5y3XZjrm+t/b1RuXph4SDhsyZo8QKs0gEHGGUJNmPCo4okSkpuknAEf2NvCUSNTVzlD4wROJ/ohSBPNUJOpHeP2+RWWJvkVnikKtxaCUOEb1+wg1trU+oaaKLhgAAAABJRU5ErkJggg==) no-repeat;
+  background-size: contain;
+}
+.app-layout-header .switch-vip:before, .app-layout-header .switch {
+  align-items: center;
+  font-size: 12px;
+}
+.app-layout-content-b .app-content::after{
+  content: '';
+  width: 100%;
+  height: 8px;
+  background: #F5F6F7;
+}
+.iosMeau{
+  height: 100%;
+}
+.app-layout-content-b {
+  height: calc(100vh - 70px);
+  overflow: hidden;
+}
+.collection .van-dropdown-menu__item {
+  flex: 1;
+  padding-left: 0;
+  padding-right: 0;
+}
+.collection .van-dropdown-item:nth-of-type(4) .van-dropdown-item__content {
+  max-height: unset;
+  overflow: unset;
+  height: 100%;
+}
+.empty{
+  padding-top: .34rem;
+}
+
+.oldUserTips{
+  position: fixed;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  z-index: 99999;
+  background-color:rgba(0, 0, 0, 0.7);
+  display: none;
+}
+.updateTips-wrap{
+  width: 6.06rem;
+  height: 4.58rem;
+  background: #FFFFFF;
+  border-radius: 0.16rem 0.16rem 0.16rem 0.16rem;
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  transform: translateX(-50%) translateY(-50%);
+}
+.updateTips-title{
+  text-align: center;
+  padding-top: 0.48rem;
+  font-size: 0.36rem;
+  font-weight: 500;
+  color: #161826;
+}
+.updateTips-text{
+  text-align: left;
+  padding: 0.16rem 0.6rem 0.1rem;
+  font-size: 0.3rem;
+  font-weight: 500;
+  color: #5E5E64;
+  line-height: 0.44rem;
+}
+.updateTips-btnWrap{
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  margin-top: 0.32rem;
+  border-top:0.02rem solid rgba(0, 0, 0, 0.1) ;
+}
+.updateTips-btn{
+  font-size: 0.36rem;
+  font-weight: 500;
+  color: #161826;
+  width: 50%;
+  height: 0.92rem;
+  line-height: 0.92rem;
+  text-align: center;
+  cursor: pointer;
+}
+.updateTips-line{
+  height: 0.92rem;
+  width: 0.02rem;
+  background-color: rgba(0, 0, 0, 0.1);
+}
+.levelUp{
+  color: #2ABDD1;
+}
+#freeArea{
+  color: #2ABDD1;
+}
+/* 留资查看更多新增 */
+.seeMore{
+  text-align: center;
+  line-height: 1.12rem;
+  height: 1.12rem;
+  background: #FFFFFF;
+  bottom: 1.4rem;
+}
+.seeMore + .dropload-down {
+  display: none;
+}
+.seeMore-btn{
+  font-size: .28rem;
+  color: #2ABED1;
+  display: contents;
+}
+.product-switch{
+  display: block;
+  height: auto;
+}
+.typeswitch{
+  height: 1.08rem;
+}
+.push-money-component {
+  height: auto;
+}
+.push-money-component .money-component-group {
+  min-height: auto;
+  flex: unset;
+  padding: 0;
+}
+.push-money-component .j-footer {
+  display: none;
+}
+.push-money-component .select-tag-group{
+  padding: 6px 0 0!important;
+}
+.push-money-component .select-tag-item.active::after{
+  background: none!important;
+}
+.selected{
+  background: #E8FAFD!important;
+  color: #2ABED1!important;
+}

+ 504 - 0
src/web/staticres/common-module/history-push/css/p13.css

@@ -0,0 +1,504 @@
+/* -S p13 for v2.10.4 */
+/* -s page 首页*/
+.p13 .home .top .home_search.fixed-top .home_search_left {
+    height: 0.8rem;
+}
+.p13 .home .top .home_search.fixed-top::after {
+    content: '';
+    position: absolute;
+    bottom: 0;
+    background: rgba(0, 0, 0, 0.05);
+    width: 100%;
+    height: 1px;
+    -webkit-transform: scaleY(0.5);
+    transform: scaleY(0.5);
+    -webkit-transform-origin: 0 0;
+    transform-origin: 0 0;
+    left: 0;
+}
+.p13 .home .top .home_search.fixed-top {
+    position: fixed;
+    top: 0;
+    left: 0;
+    z-index: 666;
+    background: #fff;
+    margin: 0;
+    padding: 0.14rem 0.32rem;
+    padding-top: 8vw;
+    box-sizing: border-box;
+    border: none;
+    border-radius: 0;
+    height: 1.08rem;
+    min-height: 21.333vw;
+    transform: translateZ(0);
+    -webkit-transform: translateZ(0);
+}
+#home_main.p13 .home .home_data .data_list {
+    padding: 0;
+}
+#home_main.p13 .home .home_data .data_list .list_item {
+    padding: .3rem .3rem .24rem .3rem;
+    display: block;
+    transition: background-color 150ms;
+    border: none;
+    position: relative;
+    overflow: hidden;
+}
+#home_main.p13 .home .home_data .data_list .list_item.hover {
+    background: #E6E6E6;
+}
+#home_main.p13 .home .home_data .data_list .list_item::after {
+    content: '';
+    position: absolute;
+    bottom: 0;
+    background: rgba(0, 0, 0, 0.05);
+    width: 100%;
+    height: 1px;
+    -webkit-transform: scaleY(0.5);
+    transform: scaleY(0.5);
+    -webkit-transform-origin: 0 0;
+    transform-origin: 0 0;
+}
+#home_main.p13 .home .home_data .data_list .serial_number {
+    display: none;
+}
+#home_main.p13 .content .keyword {
+    color: #2ABED1;
+}
+#home_main.p13 .home .home_data .data_list .tags > div {
+    color: #5F5E64;
+    font-size: 0.24rem;
+    line-height: 0.32rem;
+    background: #F7F9FA;
+    border: 0.5px solid rgba(0, 0, 0, 0.05);
+    box-sizing: border-box;
+    border-radius: 4px;
+    padding: 1px 0.16rem;
+    height: auto;
+    margin: 0 4px 0 0;
+}
+.p13 .home .home_data .data_nav {
+    color: #171826;
+}
+#home_main.p13 .home .home_data .data_list .list_info {
+    margin-top: 0.24rem;
+}
+#home_main.p13 .home .home_data .data_list .tags {
+    padding-left: 0;
+}
+#home_main.p13 .home .home_data .data_list .list_title p {
+    font-size: 0.32rem;
+    line-height: 0.48rem;
+    color: #171826;
+    font-weight: 500;
+}
+
+/* search */
+.p13 #list {
+    padding: 0;
+}
+.p13 #list .tslist {
+    padding: .3rem .3rem .36rem .3rem;
+    display: block;
+    transition: background-color 150ms;
+    border: none;
+    position: relative;
+    overflow: hidden;
+}
+.p13 #list .tslist::after {
+    content: '';
+    position: absolute;
+    bottom: 0;
+    background: rgba(0, 0, 0, 0.05);
+    width: 100%;
+    height: 1px;
+    -webkit-transform: scaleY(0.5);
+    transform: scaleY(0.5);
+    -webkit-transform-origin: 0 0;
+    transform-origin: 0 0;
+}
+.p13 .tslist a.bt {
+    color: #171826 !important;
+    font-size: 0.32rem;
+    line-height: 0.48rem;
+}
+
+/* hover */
+.p13 #list .tslist.hover,
+.p13 #list .tslist.visited.hover {
+    background: #E6E6E6;
+}
+.p13 .tslist.hover a.bt, .p13 .tslist.visited a.bt {
+    color: #9B9CA3 !important;
+}
+.p13 .tslist.hover .restime, .p13 .tslist.visited .restime {
+    color: #9B9CA3;
+}
+.p13 #list .tslist.visited {
+    background: #fff;
+}
+
+.p13 .tslist .keyword {
+    color: #2ABED1;
+}
+.p13 .resnumb .one {
+    display: none;
+}
+.p13 .resnumb .two {
+    padding-left: 0 !important;
+    max-height: 0.97rem;
+}
+.p13 .restime {
+    float: left;
+    width: 100%;
+    margin-top: 0.26rem;
+    color: #5F5E64;
+    position: relative;
+}
+.p13 .restime span i {
+    display: none;
+}
+.p13 .restime span.location,
+.p13 .restime span.industry,
+.p13 .restime span.bidamount,
+.p13 .restime span.projectM,
+.p13 .restime span.type, .p13 .restime span.buyerclass {
+    color: inherit;
+    font-size: 0.24rem;
+    line-height: 0.32rem;
+    background: #F7F9FA;
+    border: 0.5px solid rgba(0, 0, 0, 0.05);
+    box-sizing: border-box;
+    border-radius: 4px;
+    padding: 1px 0.16rem;
+    height: auto;
+    display: inline-block;
+    margin: 0 4px 0 0;
+}
+.p13 .restime > span:last-child {
+    color: #9B9CA3;
+    float: right;
+    position: absolute;
+    top: 0;
+    right: 0;
+}
+
+/*  全文 */
+#home_main.p13 .detail {
+    padding: 0 !important;
+    margin-top: 0.24rem;
+    font-size: 0.26rem;
+    line-height: 0.4rem;
+    color: #5F5E64;
+}
+
+/* ad */
+.p13 #supersearchPage .adv-appsearch-center, .p13 .adv-wxpush-center {
+    max-height: 1.28rem;
+    overflow: hidden;
+    border-radius: 8px;
+    margin: 0.24rem 0.32rem 0;
+    width: auto;
+}
+.p13 #supersearchPage .adv-appsearch-center::before, .p13 .adv-wxpush-center::before {
+    content: '广告';
+    position: absolute;
+    right: 1px;
+    bottom: 0;
+    display: inline-block;
+    background: rgba(0, 0, 0, 0.16);
+    border-radius: 8px 0px 0px 0px;
+    padding: 3px 6px;
+    box-sizing: border-box;
+    color: #fff;
+    font-size: 9px;
+    line-height: 12px;
+}
+.p13 #supersearchPage img.closeadv, .p13 .adv-wxpush-center img.closeadv {
+    width: 0.32rem;
+    top: 0.1rem;
+    right: 0.1rem;
+    z-index: 1;
+}
+.p13 #supersearchPage .closeadv-bg, .p13 .adv-wxpush-center .closeadv-bg  {
+    width: 0.32rem;
+    height: 0.32rem;
+    top: 0.1rem;
+    right: 0.1rem;
+    z-index: 1;
+    display: none;
+}
+
+/* -e page 首页 */
+.p13 .listcontent {
+    padding: 0;
+}
+
+/* -s page 订阅*/
+.p13 .jymobile-datePicker .weui-half-screen-dialog__ft{
+    padding-left: 0;
+    padding-right: 0;
+}
+.p13 .jymobile-datePicker .weui-btn_primary:not(.weui-btn_disabled):active {
+    background-color: #2ABED1;
+}
+.p13 .jymobile-datePicker .weui-picker__indicator:after, .p13 .jymobile-datePicker .weui-picker__indicator:before {
+    content: none;
+}
+.p13 .jymobile-datePicker .weui-picker__item {
+    font-size: 0.3rem;
+}
+.p13 .jymobile-datePicker .weui-picker__item.is-now-select  {
+    color: #2ABED1;
+    font-size: 0.36rem;
+}
+.p13 .jymobile-datePicker .weui-picker__indicator {
+    background: rgba(42, 190, 209, 0.05);
+}
+.p13 .jymobile-datePicker .weui-half-screen-dialog {
+    padding: 0;
+}
+.p13 .jymobile-datePicker .weui-half-screen-dialog__hd {
+    padding: 0 0.32rem;
+    flex-direction: row-reverse;
+}
+.p13 .jymobile-datePicker .weui-half-screen-dialog__hd__side+.weui-half-screen-dialog__hd__main {
+    text-align: left;
+    padding-left: 0;
+}
+.p13 ._header.fix-top {
+    position: fixed;
+    transition: all 0.3s;
+}
+.p13 .filter_tab.is-hide-border {
+    border-bottom-color: transparent;
+}
+.p13 .jymobile-datePicker .weui-half-screen-dialog__title {
+    color: #171826;
+    font-size: 0.4rem;
+    font-weight: 500;
+}
+.p13 .jymobile-datePicker.up .weui-picker {
+    border-radius: 0;
+    z-index: 666;
+    top: 1rem;
+    bottom: initial;
+    bottom: unset;
+    padding-top: 0.8rem;
+    /*max-height: calc(75% - 2.4rem);*/
+}
+@keyframes aa {
+    0% {
+        -webkit-transform: translate3d(0,100%,0);
+        transform: translate3d(0,-100%,0);
+    }
+    100% {
+        -webkit-transform: translateZ(0);
+        transform: translateZ(0);
+    }
+}
+@keyframes bb {
+    0% {
+        -webkit-transform: translateZ(0);
+        transform: translateZ(0);
+    }
+    100% {
+        -webkit-transform: translate3d(0,100%,0);
+        transform: translate3d(0,-100%,0);
+    }
+}
+.p13 .jymobile-datePicker.up .weui-animate-slide-up.weui-animate-slide-down {
+    animation-name: bb;
+    animation-duration: 0.44s;
+}
+.p13 .jymobile-datePicker.up .weui-animate-slide-up {
+    /*animation-direction: reverse;*/
+    animation-duration: 0.44s;
+    animation-name: aa;
+}
+.p13 .jymobile-datePicker.up .weui-half-screen-dialog__hd{
+    display: none;
+}
+.p13 .jymobile-datePicker .weui-mask, .weui-mask_transparent {
+    z-index: 666;
+    top: 0 !important;
+}
+.p13 .jymobile-datePicker .weui-btn_disabled{
+    flex: 1;
+    margin: 0 0.32rem;
+    padding: 0.1rem 0;
+    background: #EDEFF2;
+    border-radius: 8px;
+    color: #5F5E64 !important;
+    font-weight: 500;
+    font-size: 0.32rem;
+    line-height: 0.6rem;
+    width: calc(50% - 0.32rem) !important;
+}
+.p13 .jymobile-datePicker .weui-btn_disabled + .weui-btn_primary{
+    width: calc(50% - 0.32rem) !important;
+}
+.p13 .jymobile-datePicker .weui-btn_primary{
+    flex: 1;
+    margin: 0 0.32rem;
+    height: 0.8rem;
+    box-sizing: border-box;
+    padding: 0.1rem 0;
+    width: auto;
+    background: #2ABED1;
+    background-color: #2ABED1;
+    border-radius: 8px;
+    color: #F7F9FA !important;
+    font-weight: 500;
+    font-size: 0.32rem;
+    line-height: 0.6rem;
+}
+.p13 .jymobile-datePicker  .weui-half-screen-dialog__ft {
+    padding: 8px 0;
+    border: none;
+    position: relative;
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+
+}
+.p13 .jymobile-datePicker .weui-half-screen-dialog__hd .weui-icon-btn {
+    background: url('/common-module/collection/image/wxqc.png?v=1429');
+    color: transparent;
+    width: 16px;
+    height: 16px;
+    background-size: 100% 100%;
+    -webkit-mask: none;
+    position: unset;
+    margin-right: -8px;
+    top: unset;
+    -webkit-transform:unset;
+    transform: unset;
+}
+.p13 .filter_tab .area_container .area_wrap .handle_menu {
+    padding: 0.16rem 0;
+    border: none;
+    position: relative;
+    height: 1.12rem;
+}
+.p13 .filter_tab .area_container .area_wrap .handle_menu button.reset_btn {
+    background: #EDEFF2;
+    color: #5F5E64;
+}
+.p13 .filter_tab .area_container .area_wrap .handle_menu button {
+    width: calc(50% - 0.32rem) !important;
+    margin: 0 0.16rem;
+    background: #2ABED1;
+    border-radius: 8px;
+    color: #F7F9FA;
+    font-weight: 500;
+    font-size: 0.36rem;
+    line-height: 0.6rem;
+}
+.p13 .jymobile-datePicker  .weui-half-screen-dialog__ft::before, .p13 .handle_menu::before {
+    content: '';
+    position: absolute;
+    top: 0;
+    background: rgba(0, 0, 0, 0.05);
+    width: 100%;
+    height: 1px;
+    -webkit-transform: scaleY(0.5);
+    transform: scaleY(0.5);
+    -webkit-transform-origin: 0 0;
+    transform-origin: 0 0;
+}
+/* -e page 订阅*/
+/* -E p13 */
+
+/* 消息展示 */
+.p13 .home .side-line {
+    padding: 0.16rem 0;
+    background: #F5F6F7;
+}
+.p13 .home .list-msg {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    padding: .24rem .32rem .16rem .32rem;
+    background: #fff;
+}
+.p13 .home .list-msg .l-msg .words {
+    width: 6.3rem;
+    display: flex;
+    flex-direction: initial;
+    align-items: center;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}
+.p13 .home .list-msg .l-msg .words:nth-child(2) {
+    margin-top: 0.16rem;
+}
+.p13 .home .list-msg .img-div {
+    padding: 0.5rem 0;
+}
+.p13 .home .list-msg .imgActive {
+    padding: 0.15rem 0;
+}
+.p13 .home .list-msg .r-msg {
+    width: .22rem;
+    height: .14rem;
+    cursor: pointer;
+    transform:rotate(-90deg);
+    -ms-transform:rotate(-90deg); 	/* IE 9 */
+    -moz-transform:rotate(-90deg); 	/* Firefox */
+    -webkit-transform:rotate(-90deg); /* Safari 和 Chrome */
+    -o-transform:rotate(-90deg);
+}
+.p13 .home .list-msg .l-msg .words .dot-img {
+    width: .08rem;
+    height: .08rem;
+    margin-right: .16rem;
+}
+.p13 .home .list-msg .l-msg .words .dotActive {
+    background: #EDEFF2;
+}
+.p13 .home .list-msg .l-msg .words h3 {
+    font-size: .24rem;
+    font-weight: bold;
+    color: #171826;
+    line-height: .48rem;
+}
+.p13 .home .list-msg .l-msg .words span {
+    font-size: .24rem;
+    line-height: .48rem;
+    margin: 0 .24rem;
+    /* max-width: 3rem; */
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}
+.p13 .home .list-msg .l-msg .words .spActive {
+    max-width: 3rem;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}
+.p13 .home .list-msg .l-msg .words p {
+    font-size: .22rem;
+    color: #9B9CA3;
+    line-height: .48rem;
+}
+
+/*S-用户发布样式-S */
+.userPublish{
+  position: absolute;
+  top: 0;
+  left: 0;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  padding: 0 .16rem;
+  height: .36rem;
+  background: rgba(255, 58, 32, 0.1);
+  border-radius: 0px 0px 12px 0px;
+  font-size: .24rem;
+  font-weight: 500;
+  color: #FF3A20;
+}
+/* E-用户发布样式-E */

+ 629 - 0
src/web/staticres/common-module/history-push/css/public.css

@@ -0,0 +1,629 @@
+@charset "UTF-8";
+
+/* reset css start ---------> */
+* {
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+    -webkit-overflow-scrolling: touch;
+    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+    -webkit-tap-highlight-color: transparent;
+}
+html,
+body {
+    height: 100%;
+    color: #171826;
+}
+
+html > body {
+    font-size: 12px;
+    background-color: #F5F6F7;
+}
+
+input, textarea {
+    caret-color: #2cb7ca;
+}
+
+
+/* 清除默认样式 */
+ul,
+ol {
+    list-style: none;
+}
+/*清除输入框内阴影*/
+input,
+textarea,
+select,
+button {
+    outline: none;
+    border: 0;
+    -webkit-appearance: none;
+    appearance: none;
+}
+button,
+span,
+div {
+    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+    /* -webkit-user-modify:read-only; */
+}
+img {
+    border: 0;
+    vertical-align: middle;
+    max-width: 100%;
+    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+a {
+    text-decoration: none;
+    color: #3d3d3d;
+    -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
+    -webkit-user-select: none;
+    -moz-user-focus: none;
+    -moz-user-select: none;
+}
+/*禁用长按页面时的弹出菜单(iOS下有效) ,img和a标签都要加*/
+img,
+a {
+    -webkit-touch-callout: none;
+}
+
+input::placeholder {
+    color: #C0C4CC;
+}
+
+/* reset css end ------ */
+
+/* common css class start */
+[v-cloak] {
+    display: none!important;
+}
+
+.clearfix {
+    zoom: 1;
+}
+.clearfix:after {
+    clear: both;
+    height: 0;
+    overflow: hidden;
+    display: block;
+    visibility: hidden;
+    content: '';
+}
+.left {
+    float: left;
+}
+.right {
+    float: right;
+}
+.ellipsis {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}
+/* 超过2行省略号显示 */
+.ellipsis-2 {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    display: -webkit-box;
+    -webkit-line-clamp: 2;
+    -webkit-box-orient: vertical;
+}
+/* 超过3行省略号显示 */
+.ellipsis-3 {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    display: -webkit-box;
+    -webkit-line-clamp: 3;
+    -webkit-box-orient: vertical;
+}
+.scrollbar-none::-webkit-scrollbar {
+    display: none;
+}
+
+/* 禁止长按复制 加给body ---- */
+.no-touch {
+    -webkit-touch-callout: none;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+}
+
+.j-pd {
+    padding-left: 0.32rem;
+    padding-right: 0.32rem;
+}
+
+.j-arrow {
+    display: inline-block;
+    width: 0.26rem;
+    height: 0.26rem;
+    border: 2px solid #5f5e64;
+    border-bottom-color: transparent;
+    border-right-color: transparent;
+    background: 0 0;
+    transform: rotate(-45deg);
+}
+
+.highlight-text {
+    color: #2cb7ca!important;
+}
+.bg-white {
+    background-color: #fff;
+}
+[class*=clickable]:active {
+    background-color: #f2f3f5;
+}
+
+/*
+    border-line-t 0.5px上边框
+    border-line-b 0.5px下边框
+*/
+.border-line-t,
+.border-line-b {
+    position: relative;
+}
+.border-line-t:after,
+.border-line-b:after {
+    content: '';
+    position: absolute;
+    left: 0;
+    width: 100%;
+    height: 1px;
+    transform: scaleY(0.6);
+    transform-origin: 0 0;
+    background: rgba(0, 0, 0, 0.05);
+    /* background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.05) 65%, transparent 35%); */
+}
+.border-line-t:after {
+    top: -1px;
+}
+.border-line-b:after {
+    bottom: -1px;
+}
+
+/* common css class end ---- */
+
+/* j-container布局  start ---- */
+.j-container {
+    display: flex;
+    flex-direction: column;
+    height: 100%;
+}
+
+.j-header {
+    position: relative;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+}
+
+.j-header.jy-app-header {
+    box-sizing: border-box;
+    padding: 10.66667vw 3.2vw 0 3.2vw;
+    height: 21.33333vw;
+    background: #fff;
+    z-index: 9;
+}
+.jy-app-header .icon-back::before,
+.jy-app-header .icon-back-white::before {
+   content: unset;
+}
+.jy-app-header .icon-back-white {
+    display: none;
+}
+.jy-app-header.transparent-header .icon-back-white {
+    display: inline-block;
+}
+.jy-app-header.transparent-header .icon-back {
+   display: none;
+}
+
+.j-header .header-left,
+.j-header .header-title,
+.j-header .header-right {
+    display: flex;
+    align-items: center;
+}
+
+.j-header .header-left {
+    height: .6rem;
+    width: .6rem;
+}
+.j-header .header-left .j-icon {
+    height: .4rem;
+    width: .4rem;
+}
+
+.j-header .header-title {
+    position: absolute;
+    left: 50%;
+    font-size: 17px;
+    color: #171826;
+    transform: translateX(-50%);
+    white-space: nowrap;
+}
+
+.j-header .header-right {
+    height: 100%;
+    min-width: 0.4rem;
+    font-size: .3rem;
+}
+
+.j-header .header-left.hide,
+.j-header .header-right.hide {
+    visibility: hidden;
+}
+
+/* 头部透明 */
+.j-container .j-header.transparent-header {
+    background-color: transparent;
+}
+.j-container .j-header.transparent-header:after {
+    content: unset;
+}
+.j-header.transparent-header .header-right,
+.j-header.transparent-header .header-left,
+.j-header.transparent-header .header-title {
+    color: #fff;
+}
+.j-header.transparent-header .header-title {
+    font-size: 0;
+}
+
+.j-main {
+    position: relative;
+    display: flex;
+    flex-direction: column;
+    flex: 1;
+    overflow-y: scroll;
+    overflow-x: hidden;
+    /* 所有都j-main开启ios-touch */
+    -webkit-overflow-scrolling: touch;
+}
+
+.j-main.calc-height-1px {
+    height: calc(100% + 1Px);
+}
+
+/* 单独关闭ios惯性滚动 */
+.j-main.no-ios-touch {
+    -webkit-overflow-scrolling: auto;
+}
+
+.j-footer {
+    box-shadow: 0px -2px 8px rgba(54, 147, 179, 0.051);
+}
+/* j-container布局  end ---- */
+
+@keyframes ballRotate {
+    0% {
+        transform: rotate(0);
+    }
+
+    100% {
+        transform: rotate(360deg);
+    }
+}
+
+.ball-clip-rotate {
+    position: absolute;
+    left: 50%;
+    top: 50%;
+    z-index: 2;
+    transform: translate(-50%, -50%);
+}
+
+.ball-clip-rotate .ball {
+    display: inline-block;
+    width: 26px;
+    height: 26px;
+    border-radius: 50%;
+    border: 3px solid #fff;
+    border-bottom-color: transparent;
+    background: 0 0;
+    -webkit-animation: ballRotate 0.75s 0s linear infinite;
+    animation: ballRotate 0.75s 0s linear infinite;
+}
+
+.j-mask {
+    position: fixed;
+    z-index: 1000;
+    top: 0;
+    right: 0;
+    left: 0;
+    bottom: 0;
+}
+
+.black {
+    background: rgba(0, 0, 0, 0.6);
+}
+
+.j-loading {
+    display: none;
+}
+
+.j-loading .j-toast {
+    position: fixed;
+    top: 45%;
+    left: 50%;
+    z-index: 1001;
+    padding: 0.2rem;
+    min-width: 2.2rem;
+    max-width: 6.2rem;
+    width: auto;
+    height: auto;
+    color: #fff;
+    font-size: 0.28rem;
+    text-align: center;
+    background: rgba(18, 18, 18, 0.7);
+    border-radius: 5px;
+    transform: translate(-50%, -50%);
+}
+
+.j-loading .j-toast.icon {
+    padding: 0.5rem 0.2rem;
+}
+
+.j-loading .j-toast.icon .j-toast_icon {
+    display: inline-block;
+    width: 38px;
+    height: 38px;
+}
+
+.j-loading .j-toast .j-toast_icon {
+    display: none;
+}
+
+.j-loading .j-toast .j-toast_content {
+    text-align: center;
+}
+
+.j-loading-icon {
+    display: inline-block;
+    width: 20px;
+    height: 20px;
+    vertical-align: baseline;
+    background: transparent url("data:image/svg+xml;charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E9E9E9' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23989697' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%239B999A' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23A3A1A2' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23ABA9AA' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23B2B2B2' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23BAB8B9' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23C2C0C1' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23CBCBCB' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23D2D2D2' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23DADADA' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E2E2E2' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E") no-repeat;
+    background-size: 100%;
+    -webkit-animation: ballRotate 1s steps(12) infinite;
+    animation: ballRotate 1s steps(12) infinite;
+}
+
+.j-button-group {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    width: 100%;
+    padding: 0.16rem 0.32rem 0.24rem;
+    background-color: #fff;
+    box-sizing: border-box;
+}
+
+.j-button-confirm,
+.j-button-cancel {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    flex: 1;
+    width: 100%;
+    height: 0.8rem;
+    font-size: 0.32rem;
+    line-height: inherit;
+    text-align: center;
+    border-radius: 0.16rem;
+}
+
+.single .j-button-confirm,
+.single .j-button-cancel {
+    height: 0.92rem;
+}
+
+.j-button-cancel {
+    margin-right: 0.26rem;
+    color: #5f5e64;
+    background-color: #edeff2;
+}
+
+.j-button-confirm {
+    color: #fff;
+    background-color: #2cb7ca;
+}
+
+button[disabled] {
+    opacity: 0.5;
+}
+
+.checkbox {
+    width: 0.4rem;
+    height: 0.4rem;
+    border: 1px solid #ddd;
+    border-radius: 50%;
+    margin-right: 0.2rem;
+    -webkit-appearance: none;
+    background: #fff;
+}
+
+.checkbox:checked {
+    border: 0;
+    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACpElEQVRogc1asa2DMBBlhIyQMpKNxAiMwAiMwAhswAgZgQrOHSVwLhiBERghvwCSwMdgOzYG6aQUhLw7v3u+Z+J5Bq4g724U6pCUTeIznlGGHQHsKcOBAPbT544yntOiTSnUoYnf/Rm0X7YRAXxShgMFfCkH4zkBjE8HTos21QYtCJ/xzDpwAhgTwN4k8OWK4GBlRYK8u1HGc2vA/yfSPaC+GwFPoQ6tVn1vNQoMfgJPyiYxzXXl3ijbSA88YOwa/BzKfUEKDK4C/hOSe8cD6vv1wOOLMhykGvtUtVFPotunDmDsHORBCPth1PoLUmeDStvUKdrUObgxqinE9xRt+q/6TjarZWW79cZFGXaiVQjy7va+0S/byDX4LYUhZZOIvrPoBafKw7BbVFOW1ozn7pt3B/xe9ed4QH33KNSho+pXv4CngC9SNon0zVcDTwFHNTqb/wTwqcX5TQry3KNHmmswfMYzEXif8Uz5mQwHT1r/55MGC+AJ4FPruVIJrJwRhToUbjA74LeATxuoHvg5gSMJFf24bO9YAy+7AgTwuQVAirfrmeULvBHxYDhINTEpm0SYhGgMsQ1+LG4v3f17B09rCyqa2Y0fzzCeq8pXJUpiPB/F6jTwc1GVJ1GNQ6dp3lJSLqkEyjbSG+YYDrKnBA+o77a8xruQunK219yeN/aGNaM0j9NTAvpmXqA2VsHDSigMWMrFdDnt1vY8xtpSep4hUz+qTGXbIG1K+iWMvW7137x1Y27UQtBzHyqd6A80qi/00AsqXfKETuWFh0OjLwSv/KLjSkkcbZjXTYLhoA3eeRI6tBFd86h8Inhzr1m/L+v7xESZQ6m8XCJnARckoketca+paNGmVuiievllG032tKKjtezf1f36u43PeEYAY1PV/gMeU6lGAhyHxgAAAABJRU5ErkJggg==) no-repeat center center;
+    background-size: 100% 100%;
+}
+
+.checkbox.transparent:checked {
+    border: 0;
+    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHBSURBVHgBzZiPcYIwFIeDE7hB6QR1gzqCG2g3cAPtBLqBdoK6Ae0EXCd4bmA3+PW9JlxTJEJCgnx37xQSku9IyL9MeQIg558FxxPHnGNqQvjmOJv45DhlWXZWKWCRFUcBf0p5VsWCC5tzEPpDvcT44SnHDvGRMqe+Mjn0q04FQffFzjKE9FCrFHQzEYZDWuFf801qThuOXA3HzNR5DfRnfS/mlUdmCZEa9u3YnHkAfZQ/EyOzGkjmyPHWcD+HPUYh7SdesbXqOzakF1VijvRs7dfB1wdHvgdJXCMtdZnljbxryfCOccgIh1v9h6CbM3Qa8ZX5rVMyXtoKhB7Bfd5kiIxwUTcSCbW5hq/38JdZwAPVkk4NUlt0l5nB3QJOobYHqKNUbxmYJqMuGaWCWoX23HeMICOUrlHTxbKh4n0kGeEUMjA2LxdUlMXdOnTq2CSQEfKqsAL+7CLLlK4O6lUI9C4itM/YrMRlnAs0w4u6H6+Nd9FtaojN3qkJPYkOsXqsILTtYjGmjeKAUmVnmVrzpehTUqbfYUNNTMYoQn8I1oawN0YspMMX8DgXypQn+DvSe1Z6IJWwj/QkPji+VMCR3g//T7SIqLP6vQAAAABJRU5ErkJggg==) no-repeat center center;
+    background-size: 100% 100%;
+}
+
+.j-button {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    height: 0.72rem;
+    padding: 0 0.2rem;
+    background-color: #f5f6f7;
+    color: #5f5e64;
+    border-radius: 0.08rem;
+}
+
+.j-button-item {
+    position: relative;
+    display: inline-block;
+    color: #171826;
+}
+
+.j-button-item.active {
+    color: #2abed1;
+    background-color: #e8fafd;
+}
+
+.j-button-item.active:after {
+    content: '';
+    position: absolute;
+    right: 0;
+    bottom: 0;
+    width: 0.24rem;
+    height: 0.24rem;
+    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAKySURBVHgB7Zg/aNRQHMd/eXfWP6i9omJBhBOXa0W4bK6ni6Murro76Cgu1kF0aysOjnXTyTopLkEcHM8TxIMOHghFQfBAaUtp8/P9Qt+Rpnm99y+XBO6zXJJ7gc83v+S9XwIwZsyY0jIbdB54UFIuBF/mEfFu6QLUX7drR2qVeUC8RfulChDJT7KAbzbFsdIEaLxt19nBSL4eP16KADJ5ovAB9pMnCh1g9n276VVZgAA12RgGBaURdG4OkycKWYGZoHPHQ1hQGVu4CkSrq6I8UagKkDwgzOmcU5gAojUATXIPkGwNdMk1QFproEtuAYYtUKrkEsCVPDHyAC7liZEGUGkNdBnZQqbaGugykgrotAa6ZF4B3dZAlwpkiElrILg2PQVL/nm4ceYE/N3ahu6/jdRxmd1Cpq0BQfKPZs4O9inApY9fU8dWwTGiNUDD1iApT1AAGU4DDFoDRKPWIE2eePb9l/QcZ7eQ7QIlk7//7Qe8+flHep6TAHnJE9azUFJedfYQ2MgTVgGoNWAT7BPfnBbHnl6sw8mJA3C8WoErpyZhdWNTGsJWntM3XshkrQGJxyFBEk3iQJ7oGVWAWgOG8JxvHkr+93tzK7rycZKVcCTPn2B8px1gpzV4IvufJElWFqJx9LAbeU6IuKg1C+m0BrKrnIaJPLHmhVPKFaDWgMvfUx0vq0QSU3l++yyttPxXQ1dim9ZgeUdMVgljeU4I+JB+961A7KvBVTBEVgkbeURY7F5uvqRtaQVcvruKStw+dxqO8Wn28cqquTyfOtdZOCf2Ux9i1y/eriB59MJWt+X3xLE9C1mR5T0vvB6XJ3ZVIIuvBi5Iu/KCQQWy+mpgCz2w617op8kTUQWy/GpgSB8xfIEMFmTiAs/mxdshfX6te9zjM78pPqyx7eVey++rnPgfnLxxiLvERTEAAAAASUVORK5CYII=) no-repeat;
+    background-size: contain;
+}
+
+/* 空状态 配合j-icons中的img-empty和j-img使用 */
+/* 具体使用参考page_ent_follow.html */
+.empty {
+    display: flex;
+    align-items: center;
+    flex-direction: column;
+    flex: 1;
+    padding-top: 1.34rem;
+    width: 100%;
+}
+.empty .empty-img {
+    padding: .2rem;
+    width: 3.2rem;
+    height: 3.2rem;
+    margin-bottom: 0.24rem;
+    background-origin: content-box;
+}
+.empty .empty-text {
+    font-size: .26rem;
+    line-height: .4rem;
+    color: #9B9CA3;
+}
+
+.preferential-tag {
+    position: relative;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    padding: 2px 6px;
+    height: 18px;
+    color: #fff;
+    background: linear-gradient(102deg,#ffa674, #f01212 100%);
+    border-top-left-radius: 4px;
+    border-bottom-left-radius: 4px;
+}
+.preferential-tag::after {
+    content: '';
+    position: absolute;
+    top: 0;
+    right: -5px;
+    width: 0;
+    height: 0;
+    border-top: 9px solid #f01212;
+    border-right: 5px solid transparent;
+    border-bottom: 9px solid #f01212;
+}
+
+.shiyong_common {
+    width: 5.92rem!important;
+    height: 4.48rem;
+}
+
+.shiyong_common .van-dialog__header{
+    font-size: 0.36rem;
+    font-weight: bold;
+    color: #000000;
+}
+
+.shiyong_common .van-dialog__message--has-title {
+    padding-top: 0.36rem;
+    padding-bottom: 0;
+}
+
+.shiyong_common .van-dialog__message--has-title .shiyong_text{
+    line-height: 0.4rem;
+    font-size: 0.28rem;
+    text-align: justify;
+    color: #5f5e64;
+}
+
+.shiyong_common .van-dialog__message--has-title .shiyong_buy{
+    margin-top: 0.36rem;
+    width: 100%;
+    height: 0.8rem;
+    background: #2ABED1;
+    border-radius: 4px;
+    color: #F7F9FA;
+    font-size: 0.32rem;
+}
+
+.visited .visited-hd {
+    color: #C0C4CC!important;
+}
+.visited .visited-ft {
+    color: #9B9CA3!important;
+}
+.visited .visited-ft.visited-tag {
+    background-color: #F7F9F9;
+}
+
+/**/
+.j-container .freeShow {
+  display: flex;
+  align-items: center;
+  padding: 0 16px;
+  width: 100%;
+  height: 64px;
+  box-sizing: border-box;
+  background: #F5F6F7;
+}
+.j-container .freeShow .purchase_in {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding: 0 12px;
+  width: 100%;
+  height: 44px;
+  background: url('/common-module/history-push/images/purchase_bg.jpg?v=1429') no-repeat;
+  background-size: 100% 100%;
+  border-radius: 8px;
+  box-sizing: border-box;
+}
+.j-container .freeShow .purchase_in .pur_text {
+  font-size: 0.3rem;
+}
+.j-container .freeShow .purchase_in .pur_btn {
+  padding: 3px 12px;
+  line-height: 18px;
+  text-align: center;
+  background: linear-gradient(113.06deg, #3E3E52 0%, #2F2F3D 100%);
+  font-size: 12px;
+  color: #FAE7CA;
+  border-radius: 32px;
+}
+.j-main .tip {
+  font-size: 14px;
+  padding: 5px 20px;
+  margin-bottom: 20px;
+}
+.j-main .tip img {
+  margin-right: 10px;
+  height: 19.5px;
+  width: 19.5px;
+  vertical-align: sub;
+}
+.j-main .tip front {
+  margin-left: 10px;
+  color: #a0a0a0;
+}

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1739 - 0
src/web/staticres/common-module/history-push/css/subscribe.css


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 4 - 0
src/web/staticres/common-module/history-push/css/weui.min.css


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 3 - 0
src/web/staticres/common-module/history-push/iconfont/iconfont.css


binární
src/web/staticres/common-module/history-push/iconfont/iconfont.eot


binární
src/web/staticres/common-module/history-push/iconfont/iconfont.ttf


binární
src/web/staticres/common-module/history-push/iconfont/iconfont.woff


binární
src/web/staticres/common-module/history-push/iconfont/iconfont.woff2


binární
src/web/staticres/common-module/history-push/images/close.png


+ 3 - 0
src/web/staticres/common-module/history-push/images/close.svg

@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM13.4143 12L16.2427 14.8284L14.8285 16.2426L12 13.4142L9.17161 16.2426L7.75739 14.8284L10.5858 12L7.75742 9.17158L9.17163 7.75736L12 10.5858L14.8285 7.75736L16.2427 9.17157L13.4143 12Z" fill="white"/>
+</svg>

binární
src/web/staticres/common-module/history-push/images/close_heidi.png


binární
src/web/staticres/common-module/history-push/images/curve.png


binární
src/web/staticres/common-module/history-push/images/dialog-image.png


binární
src/web/staticres/common-module/history-push/images/entback.png


binární
src/web/staticres/common-module/history-push/images/icon-biaozhunhy.png


binární
src/web/staticres/common-module/history-push/images/icon-gaojihy.png


binární
src/web/staticres/common-module/history-push/images/icon-putonghy.png


binární
src/web/staticres/common-module/history-push/images/merge.png


binární
src/web/staticres/common-module/history-push/images/nopush.png


binární
src/web/staticres/common-module/history-push/images/purchase_bg.jpg


binární
src/web/staticres/common-module/history-push/images/report.png


binární
src/web/staticres/common-module/history-push/images/shangjigl.png


binární
src/web/staticres/common-module/history-push/images/sub_manager.png


binární
src/web/staticres/common-module/history-push/images/switch_ent.png


binární
src/web/staticres/common-module/history-push/images/switch_vip.png


binární
src/web/staticres/common-module/history-push/images/v_icon.png


binární
src/web/staticres/common-module/history-push/images/vip-icon.png


binární
src/web/staticres/common-module/history-push/images/xuanzhong.png


+ 416 - 0
src/web/staticres/common-module/history-push/js/common.js

@@ -0,0 +1,416 @@
+//请求同意调用
+function $DoPost (url) {
+  var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+  var callback = arguments.length > 2 ? arguments[2] : undefined;
+  var async = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
+  $.ajax({
+    url: url + "?t=" + new Date().getTime(),
+    type: "POST",
+    data: param,
+    async: async,
+    dataType: "json",
+    success: function success (r) {
+      callback(r);
+
+      if (r.error || r.errMsg) {
+        var errTip = r.error || r.errMsg;
+        weui.toast(errTip, {
+          duration: 2000,
+          className: 'custom-toast'
+        });
+      }
+    }
+  });
+}
+
+//获取url参数
+function getParam (name) {
+  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+  var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
+  var context = "";
+  if (r != null)
+    context = r[2];
+  reg = null;
+  r = null;
+  return context == null || context == "" || context == "undefined" ? "" : context;
+}
+
+//省份 城市 分类
+function getAreaClassArr_index (area) {
+  var cityArr = [];//城市
+  var provinceArr = [];//省份
+  for (var i in area) {
+    var citys = area[i]
+    if (citys.length > 0) {
+      cityArr = cityArr.concat(citys);
+      provinceArr.push(i + "(" + cityArr.join("、") + ")")
+    } else {
+      if (i == "全国") {
+        continue
+      }
+      provinceArr.push(i)
+    }
+  }
+  return SortArr(provinceArr)
+}
+
+//省份 城市 分类
+function getAreaClassArr (area) {
+  var cityArr = [];//城市
+  var provinceArr = [];//省份
+  for (var i in area) {
+    var citys = area[i]
+    if (citys.length > 0) {
+      cityArr = cityArr.concat(citys);
+    } else {
+      if (i == "全国") {
+        continue
+      }
+      provinceArr.push(i)
+    }
+  }
+  return [SortArr(provinceArr), SortArr(cityArr)]
+}
+
+//对数组进行排序(拼音)
+function SortArr (arr) {
+  arr = arr.sort(function compareFunction (item1, item2) {
+    return item1.localeCompare(item2);
+  });
+  return arr
+}
+
+//获取选择
+function getSelectBuyset (area, industry) {
+  if (industry[0] === "全部行业") industry = [];
+  if(area) {
+    if (area["全国"]) area = {};
+  } else {
+    area = {}
+  }
+  //计算地区数量
+  var buyset = {
+    "areacount": -1,  //省份数量
+    "buyerclasscount": -1,
+    "citys": [] //购买省份中城市数量
+  };
+  //行业
+  if (industry.length != 0) {
+    buyset.buyerclasscount = industry.length
+  }
+  //地区
+  if (!$.isEmptyObject(area)) {
+    buyset.areacount = 0;
+    for (var i in area) {
+      var citys = area[i];
+      var thisLen = citys.length;
+      if (thisLen === 0) {
+        buyset.areacount++
+      } else {
+        buyset.citys.push(thisLen)
+      }
+    }
+  }
+  return buyset
+}
+
+
+//购买设置 area map
+function getBuySet (area, industry, price) {
+  price = checkPrice(price);
+  if (industry[0] === "全部行业") industry = [];
+  if (area["全国"]) area = {};
+  //计算地区数量
+  var buyset = {
+    "areacount": -1,  //省份数量
+    "buyerclasscount": -1,
+    "citys": [] //购买省份中城市数量
+  };
+  //行业
+  // console.log(industry,price.buyerClassMaxCount, 'industry')
+  if (industry.length != 0 && industry.length <= price.buyerClassMaxCount) {
+    buyset.buyerclasscount = industry.length
+  }
+  //地区
+  if (!$.isEmptyObject(area)) {
+    buyset.areacount = 0;
+    for (var i in area) {
+      var citys = area[i];
+      var thisLen = citys.length;
+      if (thisLen === 0 || thisLen > price.cityMaxCount) {
+        buyset.areacount++
+      } else {
+        buyset.citys.push(thisLen)
+      }
+    }
+  }
+  if (buyset.areacount > price.provinceMaxCount) {
+    buyset.areacount = -1;
+    buyset.citys = [];
+  }
+  return buyset
+}
+
+/* vip订阅价格
+    area:地区 {}
+    industry:行业 []
+    time[count,unit] count:时间长度 unit 1:年 2:月
+    price 价格表
+   return 价格(单位:分)
+*/
+var priceData;
+
+function getsubVipOrderPrice (area, industry, t, price) {
+  price = checkPrice(price);
+  return getsubVipOrderPriceBybuyset(getBuySet(area, industry, price), t, price)
+}
+
+function checkPrice (price) {
+  if (!price) {
+    if (priceData) {
+      price = priceData
+    } else {
+      $DoPost("/subscribepay/vipsubscribe/getPrice", {}, function (r) {
+        if (r.new) {
+          price = r.new;
+          priceData = price;
+        } else {
+          weui.toast("加载价格异常", {
+            duration: 2000,
+            className: 'custom-toast',
+          });
+        }
+      }, false)
+    }
+  } else {
+    priceData = price
+  }
+  return price
+}
+
+//新旧buyset
+function getMergeNewBuyset (buyset, price) {
+  price = checkPrice(price);
+  if (buyset["newcitys"]) { //新buyset
+    return {
+      "areacount": buyset.areacount,  //省份数量
+      "buyerclasscount": buyset.buyerclasscount,
+      "citys": buyset.newcitys //购买省份中城市数量
+    }
+  } else { //旧buyset
+    var areaCount = buyset.areacount;
+    var buyerclasscount = buyset.buyerclasscount;
+    var oldCitys = buyset.citys;
+    var newCitys = [];
+
+    if (!$.isEmptyObject(oldCitys)) {
+      for (var i in oldCitys) {
+        var thisLen = oldCitys[i];
+        if (thisLen === 0 || thisLen > price.cityMaxCount) {
+          areaCount++
+        } else {
+          newCitys.push(thisLen)
+        }
+      }
+    }
+
+    //省份数量自动转换全国
+    if (areaCount > price.provinceMaxCount) {
+      areaCount = -1;
+      newCitys = [];
+    }
+    //行业数量自动转换全行业
+    if (buyerclasscount > price.buyerClassMaxCount) {
+      buyerclasscount = -1
+    }
+    return {
+      "areacount": areaCount,  //省份数量
+      "buyerclasscount": buyerclasscount,
+      "citys": newCitys //购买省份中城市数量
+    }
+  }
+}
+
+//根据购买设置 获取支付金额
+function getsubVipOrderPriceBybuyset (buyset, t, price) {
+  //console.log("getsubVipOrderPriceBybuyset",buyset, t)
+  price = checkPrice(price);
+  var vipbuyset = JSON.parse(JSON.stringify(buyset));
+  if (t[0] > price.monthMaxCount && t[1] === 2) t[0] = 16;//月份十个月以上价格一样
+
+  if (vipbuyset.areacount === -1) {//计算全国套餐价格
+    if (vipbuyset.buyerclasscount === 1) return getSetMealPrice(0, 1, t[1], price) * t[0] / 100; //全国1行业套餐
+    if (vipbuyset.buyerclasscount === 0) return getSetMealPrice(0, 0, t[1], price) * t[0] / 100; //全国全行业套餐
+    return getSetMealPrice(0, vipbuyset.buyerclasscount, t[1], price) * t[0] / 100 //全国多行业套餐
+  }
+
+  //var final_price = vipbuyset.areacount * getSetMealPrice(1, vipbuyset.buyerclasscount, t[1], price) * t[0];//计算省份价格
+  var final_price = 0;//计算省份价格
+
+  for (var i in vipbuyset.citys) {
+    var thisPrice = 0;
+    if (vipbuyset.citys[i] === 1) {//单城市
+      thisPrice = getSetMealPrice(2, vipbuyset.buyerclasscount, t[1], price) * t[0];
+    } else {//多城市
+      if (vipbuyset.buyerclasscount === 0 || vipbuyset.buyerclasscount === 1) {//多城市 单行业
+        if (vipbuyset.citys[i] > price.cityMaxCount) {
+          vipbuyset.areacount++;
+        } else {
+          thisPrice = vipbuyset.citys[i] * getSetMealPrice(2, vipbuyset.buyerclasscount, t[1], price) * t[0];
+        }
+      } else {//多城市 多行业
+        //var industry_Price = price.buyerClassPrice * vipbuyset.buyerclasscount;
+        //var city_Price = price.cityPrice * vipbuyset.citys[i];
+        //thisPrice = (industry_Price + city_Price) * t[0];
+        if (vipbuyset.citys[i] > price.cityMaxCount) {
+          vipbuyset.areacount++;
+        } else {
+          thisPrice = getSetMealPrice(2, vipbuyset.buyerclasscount, t[1], price) * vipbuyset.citys[i] * t[0];
+          // if (t[1] === 1) thisPrice *= 10 //年的价格是月价格的10倍
+        }
+      }
+    }
+    final_price += thisPrice;
+  }
+  final_price += vipbuyset.areacount * getSetMealPrice(1, vipbuyset.buyerclasscount, t[1], price) * t[0];
+  //console.log("getsubVipOrderPriceBybuyset-final_price",final_price)
+  return final_price / 100
+}
+
+//获取套餐价格
+//c(city) 全国:0 省:1 市:2
+//iCount(industry) 全行业:-1 其他:多个行业
+//u(unit) 年:1 月:2
+function getSetMealPrice (c, iCount, u, price) {
+  var t = u === 2; //是否是月单位
+  switch (c) {
+    case 0:
+      if (iCount === -1) {
+        if (t) return price.month.allProvince_allBuyerClass;  //1月全国全行业
+        return price.year.allProvince_allBuyerClass; //1年全国全行业
+      } else {
+        if (t) return price.month.allProvince_oneBuyerClass * iCount; //1月全国icount个行业
+        return price.year.allProvince_oneBuyerClass * iCount;	//1年全国icount个行业
+      }
+    case 1:
+      if (iCount === -1) {
+        if (t) return price.month.oneProvince_allBuyerClass;  //1月1省全行业
+        return price.year.oneProvince_allBuyerClass	//1年1省全行业
+      } else {
+        if (t) return price.month.oneProvince_oneBuyerClass * iCount; //1月1省icount个行业
+        return price.year.oneProvince_oneBuyerClass * iCount	//1年1省icount个行业
+      }
+    default:
+      if (iCount === -1) {
+        if (t) return price.month.oneCity_allBuyerClass;  //1月1市全行业
+        return price.year.oneCity_allBuyerClass	//1年1市全行业
+      } else {
+        if (t) return price.month.oneCity_oneBuyerClass * iCount; //1月1市icount个行业
+        return price.year.oneCity_oneBuyerClass * iCount	//1年1市icount个行业
+      }
+  }
+}
+
+// 时间格式化
+Date.prototype.pattern = function (fmt) {
+  var o = {
+    "y+": this.getFullYear(),
+    "M+": this.getMonth() + 1, //月份
+    "d+": this.getDate(), //日
+    "h+": this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小时
+    "H+": this.getHours(), //小时
+    "m+": this.getMinutes(), //分
+    "s+": this.getSeconds(), //秒
+    "q+": Math.floor((this.getMonth() + 3) / 3), //季度
+    "S": this.getMilliseconds() //毫秒
+  };
+  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;
+}
+
+//value ;flag 1:年 2:月 endtime 结束时间
+function getVipEndDate (flag, value, endtime) {
+  var EndTime = new Date(endtime * 1000);
+  var startDay = EndTime.getDate();
+  var yearNum = EndTime.getFullYear();
+  var monthNum = EndTime.getMonth();
+  if (flag === 1) {//将年转换成月
+    //年
+    yearNum += value;
+  } else {
+    //月
+    if (monthNum + value > 11) {
+      monthNum = monthNum + value - 12;
+      yearNum++
+    } else {
+      monthNum += value
+    }
+  }
+  //获取当月最后一天
+  var lastDay = new Date(yearNum, monthNum + 1, 0).getDate();
+  if (startDay < lastDay) {
+    return new Date(yearNum, monthNum, startDay, 23, 59, 59).getTime() / 1000;
+  } else {
+    return new Date(yearNum, monthNum, lastDay, 23, 59, 59).getTime() / 1000;
+  }
+}
+// 格式化金钱的函数
+// s: 金额(number) 必传
+// n: 保留小数的位数(int:0-100)
+function formatMoney (s, n) {
+  if (n === undefined) {
+    n = -1
+  } else {
+    n = n > 0 && n <= 20 ? n : 2;
+  }
+  var intS = parseInt(s)
+  var point = '.'
+  var left;
+  var right;
+  s = parseFloat((s + '').replace(/[^\d\.-]/g, ''))
+  // 没传n,默认(如果为整数,则不保留小数。如果为浮点数,则保留两位小数)
+  if (n === -1) {
+    if (s === intS) {
+      n = 0
+      right = ''
+      point = ''
+    } else {
+      n = 2
+      s = s.toFixed(n);
+      right = s.split('.')[1];
+    }
+    s = s + ''
+    left = s.split('.')[0].split("").reverse();
+  } else {
+    s = parseFloat((s + '').replace(/[^\d\.-]/g, '')).toFixed(n) + '';
+    left = s.split('.')[0].split('').reverse();
+    right = s.split('.')[1];
+  }
+
+  t = "";
+  for (i = 0; i < left.length; i++) {
+    t += left[i] + ((i + 1) % 3 == 0 && (i + 1) != left.length ? ',' : '');
+  }
+
+  var money = t.split('').reverse().join('') + point + right;
+  return money;
+}

+ 940 - 0
src/web/staticres/common-module/history-push/js/historypush.js

@@ -0,0 +1,940 @@
+
+var vm = new Vue({
+  el: '#select-meau',
+  delimiters: ['${', '}'],
+  components: {
+    dateComponent: dateComponent,
+    areaCityMobile: areaCityMobileComponent,
+    industryComponent: industryComponent,
+    cateComponent: cateComponent,
+    keywordComponent: keywordComponent,
+    noticeComponent: noticeComponent,
+    rootComponent: rootComponent,
+    moneyComponent: moneyComponent
+  },
+  data: function() {
+    return {
+      sessStorageKey: '$data-historypush',
+      // 时间参数
+      time:'',
+      // 选择的时间数据
+      selectDate: {
+        startDate: '',
+        endDate: '',
+        exact: ''
+      },
+      // 地区参数
+      area: '',
+      // 城市
+      city: '',
+      // 行业参数
+      subscopeclass: '',
+      // 采购单位
+      buyerclass: '',
+      // 关键词
+      key: '',
+      // 公告类型
+      subtype: '',
+      screenShow: false,
+      tagText: {
+        timeText: '时间',
+        areaText: '地区',
+        industryText: '行业',
+        cateText: '采购单位',
+        keywordText: '关键词',
+        noticeText: '公告类型'
+      },
+      hasNextPage: false, // 是否有下一页
+      selectCateList: [], // 选择的采购单位类型列表
+      selectAreaList: {}, // 选择的地区列表
+      selectIndustryList: [], // 选择的行业列表
+      selectKeyWordList: [], // 选择的行业列表
+      selectNoticeList: [], // 选择的公告类型列表
+      setTimer: {
+        datetimer: '',
+        areatimer: '',
+        catetimer: '',
+        industrytimer: '',
+        keytimer: '',
+        noticetimer: ''
+      },
+      // 选择项value显示内容
+      moreFiltersText: {
+        cateItem: '',
+        keywordItem: '',
+        noticeItem: ''
+      },
+      moreFiltersTextCache: {
+        cateItem: '',
+        keywordItem: '',
+        noticeItem: ''
+      },
+      moreFiltersShow: {
+        cateItem: false, // 采购单位类型
+        keywordItem: false, // 关键词
+        noticeItem: false, // 公告类型
+      },
+      iosMeauStyle: false,
+      goUpText: '',
+      rootInfo: {},
+      bigSubShow: false,
+      selectPro: 1, // 1:超级订阅 2:大会员 3:商机管理
+      // ajaxUrl: '/publicapply/subscribe/historyPush?t=' + new Date().getTime(),
+      iconbm: '/common-module/history-push/images/icon-gaojihy.png',
+      // iconbm: '/jyapp/big-member/image/icon-biaozhunhy.png'
+      // iconbm: '/jyapp/big-member/image/icon-putonghy.png'
+      showPopover: false,
+      protype: 'vip', // 关键词接口动态修改
+      entinfo: {},
+      isEntniche: false,// 是否是商机管理
+      address: '', // 商机管理订阅管理跳转地址
+      moneyTags: [
+        {
+          name: '全部',
+          value: '',
+          selected: true
+        }
+      ],
+      fileTags: [
+        {
+          key: '',
+          label: '全部'
+        },
+        {
+          key: '1',
+          label: '有附件'
+        },
+        {
+          key: '-1',
+          label: '无附件'
+        },
+      ],
+      selectFile: '',
+      selectMoney: ''
+    }
+  },
+  computed: {
+    selectedMoreCancelDisabled: function () {
+      return !(this.buyerclass || this.key || this.subtype || this.selectFile || this.selectMoney)
+    },
+    selectedMoreProduct: function () {
+      return !!(this.rootInfo.vipStatus > 0 && this.rootInfo.memberStatus > 0) || !!(this.rootInfo.vipStatus > 0 && this.isEntniche) || !!(this.rootInfo.memberStatus > 0 && this.isEntniche)
+    }
+  },
+  created () {
+    // 离开时缓存页面数据
+    document.addEventListener('visibilitychange',function(){
+      var isHidden = document.hidden;
+      if(isHidden){
+        sessionStorage.setItem(vm.sessStorageKey, JSON.stringify(vm.$data))
+      }
+    });
+    this.getHasWeekMonthData()
+    this.getEntniche()
+    this.subPageMove()
+    if(firstTime) {
+      firstTime = firstTime / 1000 +'_'+ firstTime / 1000;
+      this.time = firstTime
+      this.setPushTime(firstTime)
+    }else {
+      firstTime = this.time
+    }
+    // console.log(this.selectPro, '用户身份');
+  },
+  mounted () {
+    var recover = this.recover()
+    // 判断是否推送消息进入,清空缓存值,显示底部导航
+    try {
+      if (pushUrlTime) {
+        this.setPushTime(pushUrlTime + '_' + pushUrlTime)
+        this.revorceOtherData()
+        JyObj.hiddenBottom("1")
+      }
+    } catch (e) {
+      console.log(e)
+    }
+    if (!recover) {
+      setTimeout(() => {
+        // 如果订阅消息进来时间不为空
+        if(this.time !== '') {
+          this.setPushTime(this.time)
+          this.revorceOtherData()
+        }else{
+          // 清空筛选数据
+          this.revorceData()
+        }
+      })
+    }
+    this.addEventListerWeb()
+  },
+  methods: {
+    // 搬家提示弹窗
+    subPageMove(data) {
+      let _this = this
+      $.ajax({
+        type: 'POST',
+        url: '/bigmember/subPageMove/tip?t=' + new Date().getTime(),
+        data: {
+          doType: data
+        },
+        success: function(res) {
+          // console.log(res)
+          if(res) {
+            if(!data) {
+              if(res.flag) {
+                _this.showPopover = true
+              } else {
+                _this.showPopover = false
+              }
+            } else {
+              if(res.flag) {
+                _this.showPopover = false
+              } else {
+                _this.showPopover = true
+              }
+            }
+          }
+        }
+      })
+    },
+    doTypeKnow: function() {
+      this.subPageMove('know')
+    },
+    // 产品切换
+    SwitchPro: function() {
+      // 超级订阅和大会员
+      // this.rootInfo.memberStatus = 0
+      if(this.selectedMoreProduct) {
+        this.bigSubShow = true
+        if(this.rootInfo.memberStatus == 1 || this.rootInfo.memberStatus == 7) {
+          this.iconbm = '/common-module/history-push/images/icon-gaojihy.png'
+        } else if(this.rootInfo.memberStatus == 2) {
+          this.iconbm = '/common-module/history-push/images/icon-biaozhunhy.png'
+        } else if(this.rootInfo.memberStatus == 3 || this.rootInfo.memberStatus == 6) {
+          this.iconbm = '/common-module/history-push/images/icon-putonghy.png'
+        } else {
+          this.iconbm = '/common-module/history-push/images/icon-gaojihy.png'
+        }
+      } else if(this.rootInfo.vipStatus > 0) {
+        // 仅超级订阅
+        if((!this.rootInfo.memberStatus || this.rootInfo.memberStatus <=0) && !this.isEntniche) {
+          tosetpage()
+        }
+      } else if(this.rootInfo.memberStatus > 0) {
+        // 仅大会员
+        if((!this.rootInfo.vipStatus || this.rootInfo.vipStatus == 0) && !this.isEntniche) {
+          location.href = '/jyapp/big/page/main_root?type=subscribe'
+        }
+      }
+    },
+    proClick: function(data) {
+      if(data == 'big') {
+        productType = 2
+        historyVt = 'm'
+        this.switchVip('m')
+        sessionStorage.setItem('switch-product', 'bigmember')
+        this.selectPro = 2
+        // this.ajaxUrl = '/publicapply/subscribe/historyPush?t=' + new Date().getTime()
+        this.RemoveClass('big')
+        this.getBmStatus(this.rootInfo)
+        // initpage()
+      } else if(data == 'vip') {
+        productType = 1
+        historyVt = 'v'
+        this.switchVip('v')
+        sessionStorage.setItem('switch-product', 'supervip')
+        this.RemoveClass('vip')
+        $(".switch").addClass('only-vip')
+        $(".switch .user_pro").text("超级订阅")
+        $(".switch_right").addClass('right_zh')
+        $('.user_pro').css('color', '#D69E55')
+        $(".switch .switch_icon").addClass('icon_vip')
+        this.selectPro = 1
+        // initpage()
+        // this.ajaxUrl = '/publicapply/subscribe/historyPush?t=' + new Date().getTime()
+      } else if(data == 'ent') {
+        productType = 3
+        historyVt = 's'
+        this.switchVip('s')
+        sessionStorage.setItem('switch-product', 'entniche')
+        this.RemoveClass('ent')
+        $(".switch").addClass('only-vip')
+        $(".switch .user_pro").text("商机管理")
+        $(".switch_right").addClass('right_zj')
+        $('.user_pro').css('color', '#171826')
+        $(".switch .switch_icon").addClass('icon_ent')
+        this.selectPro = 3
+        // this.ajaxUrl = '/publicapply/subscribe/historyPush?t=' + new Date().getTime()
+      }
+      firstTime = ''
+        this.time = ''
+        this.tagText.timeText = '时间'
+      this.bigSubShow = false
+      ajaxFun(this.time, this.area, this.city, this.subscopeclass, this.buyerclass, this.key, this.subtype, this.selectFile, this.selectMoney)
+    },
+    RemoveClass: function(data) {
+      if(data == 'vip') {
+        $(".switch").removeClass('switch_zj')
+        $(".switch").removeClass('switch_zh')
+        $(".switch").removeClass('switch_sj')
+        $(".switch_right").removeClass('right_zj')
+        $(".switch_right").removeClass('right_zh')
+        $(".switch_right").removeClass('right_sj')
+        $(".switch .switch_icon").removeClass('icon_zj')
+        $(".switch .switch_icon").removeClass('icon_zh')
+        $(".switch .switch_icon").removeClass('icon_sj')
+      } else {
+        if(data == 'ent') {
+          $(".switch .switch_icon").removeClass('icon_zj')
+          $(".switch .switch_icon").removeClass('icon_zh')
+          $(".switch .switch_icon").removeClass('icon_sj')
+        }
+        $(".switch").removeClass('switch_zh')
+        $(".switch_right").removeClass('right_zh')
+        $(".switch .switch_icon").removeClass('icon_zh')
+        $(".switch").removeClass('only-vip')
+        $(".switch .switch_icon").removeClass('icon_vip')
+      }
+    },
+    showDialog: function (conf) {
+      var defaultConf = {
+        title: '提示',
+        message: 'message',
+        className: 'j-confirm-dialog',
+        overlayClass: 'j-overlay',
+        showConfirmButton: true,
+        showCancelButton: true,
+        confirmButtonText: '确定',
+        confirmButtonColor: '#2abed1'
+      }
+      if (conf) {
+        Object.assign(defaultConf, conf)
+      }
+      return this.$dialog.confirm(defaultConf)
+    },
+    // 显示去开通超级订阅弹框
+    showSuperVipDialog: function () {
+      this.showDialog({
+        title: '开通超级订阅',
+        message: '立享更多搜索权限\n寻找商机更精准',
+        confirmButtonText: '去开通',
+        className: 'j-confirm-dialog text-center super-vip-dialog',
+      }).then(function () {
+        topay()
+      }).catch(function() {})
+    },
+    addEventListerWeb: function() {
+      let _this = this
+      //监听浏览器tab切换,以便在tab切换之后,页面隐藏的时候,把弹幕停止
+        document.addEventListener('visibilitychange', function() {
+          var isHidden = document.hidden;
+          if (isHidden) {
+        //页面已隐藏
+            _this.setToggle()
+          } else {
+              //页面显示
+          }
+      }, false);
+    },
+    recover: function () {
+      var excludeKey = ['sessStorageKey', 'moreFiltersShow']
+      var $data = sessionStorage.getItem(this.sessStorageKey)
+      if ($data) {
+          $data = JSON.parse($data)
+          for (var key in $data) {
+              if (excludeKey.indexOf(key) !== -1) {
+                  continue
+              }
+              this.$data[key] = $data[key]
+          }
+          const res = $data
+          // 时间
+          if(res.time != '') {
+            this.selectDate.startDate = res.time.split('_')[0] * 1000
+            this.selectDate.endDate= res.time.split('_')[1] * 1000
+            firstTime = res.time.split('_')[0]+ '_' + res.time.split('_')[1]
+          }
+          // 地区
+          if(res.area || res.city) {
+            // this.$nextTick(() => {
+            //   this.$refs.areaCitySelector.setState(this.selectAreaList)
+            //   $('.areaText').html(res.tagText.areaText)
+            // })
+            setTimeout(() => {
+              this.$refs.areaCitySelector.setState(this.selectAreaList)
+              $('.areaText').html(res.tagText.areaText)
+            }, 0)
+          }
+          // 采购单位类型
+          if(res.buyerclass != '') {
+            this.selectCateList = res.buyerclass.split(',')
+            this.moreFiltersText.cateItem = this.selectCateList.length
+          }
+          // 行业
+          if(res.subscopeclass != '') {
+            setTimeout(() => {
+              $('.industryText').html(res.tagText.industryText)
+            })
+            this.selectIndustryList = res.subscopeclass.split(',')
+          }
+          // 关键词
+          if(res.key != '') {
+            this.selectKeyWordList = res.key.split(',')
+            this.moreFiltersText.keywordItem = this.selectKeyWordList.length
+          }
+          // 公告类型
+          if(res.subtype != '') {
+            this.selectNoticeList = res.subtype.split(',')
+            this.moreFiltersText.noticeItem = this.selectNoticeList.length
+          }
+          // 金额
+          if(res.selectMoney) {
+            this.selectMoney = res.selectMoney
+            var moneyStr = JSON.parse(JSON.stringify(res.selectMoney))
+            var moneyArr = moneyStr.split('-')
+            this.$refs.moneyComponent.resetSelected(false)
+            this.$refs.moneyComponent.inputSelected = true
+            this.$refs.moneyComponent.inputMap.start = moneyArr[0]
+            this.$refs.moneyComponent.inputMap.end = moneyArr[1]
+          }
+          // 附件
+          this.selectFile = res.selectFile
+          sessionStorage.removeItem(this.sessStorageKey)
+      }
+      return !!$data
+    },
+    // 清空筛选数据
+    revorceData: function() {
+      this.time = ''
+      this.area = ''
+      this.city = ''
+      this.subtype = ''
+      this.subscopeclass = ''
+      this.key = ''
+      this.buyerclass = ''
+      this.selectFile = ''
+      this.selectMoney = ''
+      this.selectIndustryList = []
+    },
+    revorceOtherData: function() {
+      this.area = ''
+      this.city = ''
+      this.subtype = ''
+      this.subscopeclass = ''
+      this.key = ''
+      this.buyerclass = ''
+      this.selectFile = ''
+      this.selectMoney = ''
+      this.selectIndustryList = []
+    },
+    open: function(name) {
+      this.goUpText = name
+    },
+    close: function() {
+      this.iosMeauStyle = false
+    },
+    calcSelected: function (which) {
+      return this.moreFiltersText[which] || '全部'
+    },
+    moreFiltersItemShow: function (which, text) {
+      this.goUpText = text
+      if (this.screenShow) {
+        this.moreFiltersShow[which] = true
+      } else {
+        this.showSuperVipDialog()
+      }
+    },
+    // 订阅推送消息展示数据
+    setPushTime: function(time) {
+      // console.log(time)
+      let pushtime = {
+        start: parseInt(time.split('_')[0] * 1000),
+        end: parseInt(time.split('_')[0] * 1000),
+      }
+      this.tagText.timeText = new Date(pushtime.end).pattern('yyyy.MM.dd')
+      this.selectDate.startDate = pushtime.start
+      this.selectDate.endDate= pushtime.end
+      this.selectDate.exact = 'exact'
+    },
+    // 判断是否显示免费用户体验报告入口
+    checkShowFreeLink () {
+      if (window.isFreeUserStatus && window.isUserWeekMonthStatus) {
+        $(".vip_report").show();
+      }
+    },
+    // 判断是否有周报月报数据
+    getHasWeekMonthData: function () {
+      var _this = this
+      $.ajax({
+        url: '/subscribepay/report/starttime?type=free',
+        type: 'POST',
+        success: function(res) {
+          // 如果是商机管理、大会员、超级订阅会员有筛选权限
+          if (res != 0) {
+            window.isUserWeekMonthStatus = true
+            _this.checkShowFreeLink()
+          }
+        }
+      })
+    },
+    // 判断是否是新版商机管理
+    getEntniche: function () {
+      var _this = this
+      $.ajax({
+          url: '/entnicheNew/buy/whetherbuy',
+          type: 'POST',
+          success:function(res){
+              if (res.data) {
+                _this.isEntniche = res.data.isNew
+              }
+          }
+      })
+      _this.getUserRoot()
+  },
+    // 会员切换
+    switchVip: function(name) {
+      let _this = this
+      let param = {}
+      if(name) {
+        param = {
+          vt: name
+        }
+      }
+      $.ajax({
+        url: '/publicapply/subscribe/vipSwitch',
+        type: 'POST',
+        async: false,
+        data: param,
+        success: function(res) {
+          if(res.error_code == 0) {
+        	var switchProduct = null;
+            if(res.data.vt == 'm') {
+              if(_this.rootInfo.power.indexOf(10) != -1) {
+                $(".vip_report").show();
+              } else {
+                $(".vip_report").hide();
+              }
+              _this.RemoveClass('big')
+              _this.getBmStatus(_this.rootInfo)
+              productType = 2
+              historyVt = 'm'
+              switchProduct = 'bigmember'
+              _this.protype = 'bigmember'
+			  $.post("/subscribepay/report/tip?t=" + new Date().getTime(), {type:"member"}, function (r) {
+              	reportHtml(r);
+               });
+               if(_this.rootInfo.isSubCount) {
+                 $('.set_keyword').hide()
+                 $('#toKeySet').hide()
+               } else {
+                $('#toKeySet').show()
+               }
+            } else if(res.data.vt == 'v') {
+              $(".vip_report").show();
+              _this.RemoveClass('vip')
+              productType = 1
+              $(".switch").addClass('only-vip')
+              $(".switch .user_pro").text("超级订阅")
+              $(".switch .switch_icon").addClass('icon_vip')
+              $(".switch").show()
+              $(".switch_right").addClass('right_zh')
+              _this.selectPro = 1
+              historyVt = 'v'
+              switchProduct = 'supervip'
+              $.post("/subscribepay/report/tip?t=" + new Date().getTime(), {type:"vip"}, function (r) {
+              	reportHtml(r);
+           	  });
+            } else if (res.data.vt == 's') {
+              productType = 3
+              historyVt = 's'
+              sessionStorage.setItem('switch-product', 'entniche')
+              _this.RemoveClass('ent')
+              $(".switch").addClass('only-vip')
+              $(".switch .user_pro").text("商机管理")
+              $(".switch_right").addClass('right_zj')
+              $('.user_pro').css('color', '#171826')
+              $(".switch .switch_icon").addClass('icon_ent')
+              $(".switch").show()
+              _this.protype = 'entniche'
+              _this.selectPro = 3
+              $('.vip_report').hide()
+              _this.getEntInfo()
+            } else {
+              $(".switch_icon").hide()
+              $('.app-layout-header .switch').css({'padding': '0 0.1rem'})
+            }
+            if(switchProduct == 'bigmember' && _this.rootInfo.isSubCount) {
+            	$('#sub_manager').hide();
+				      $('.vip_report').addClass('vip_report_only');
+            } else {
+                $('#sub_manager').show()
+                $('.vip_report').removeClass('vip_report_only');
+            }
+            if(switchProduct!=null){
+	            sessionStorage.setItem('switch-product', switchProduct)
+            }
+          }
+        }
+      })
+    },
+    // 获取商机管理权限
+    getEntInfo: function () {
+      let _this = this
+      $.ajax({
+        type: 'post',
+        url: '/entbase/ent/entinfo',
+        success: function(res) {
+          // console.log(res)
+          if(res.error_code === 0) {
+            _this.entinfo = res.data
+            if(res.data.admin_department || res.data.admin_system) {
+              _this.address = '/page_entniche_new/page/sub_management/sub_management_system.html'
+            } else {
+              _this.address = '/page_entniche_new/page/subsetting/sub_entrance.html'
+            }
+            $("#sub_manager").click(function() {
+              setSessionStorage();
+              sessionStorage.setItem(_this.sessStorageKey, JSON.stringify(_this.$data))
+              location.href = _this.address
+            })
+          }
+        }
+      })
+    },
+    // 判断是否是有筛选条件
+    getUserRoot: function() {
+      var _this = this
+      $.ajax({
+        url: '/publicapply/bidcoll/power',
+        type: 'POST',
+        success: function(res) {
+          // 如果是商机管理、大会员、超级订阅会员有筛选权限
+          if (!res.data.member && res.data.vip <= 0) {
+            $('.app-layout-header .switch').css({'padding': '0'})
+            window.isFreeUserStatus = true
+            _this.checkShowFreeLink()
+          }
+          if(res.data.entniche || res.data.member || res.data.vip > 0) {
+            _this.screenShow = true
+          } else {
+            _this.screenShow = false
+          }
+          // 从页面移植来的
+          if(!res.data.entniche && !res.data.member && res.data.vip <= 0) {
+            sessionStorage.removeItem('switch-product')
+            setTimeout(function() {
+                (window.slotbydup = window.slotbydup || []).push({
+                    id: "u6603902",
+                    container: "_36y1d8lbx9n",
+                    async: true
+                });
+                (window.slotbydup = window.slotbydup || []).push({
+                    id: "u6603902",
+                    container: "_061vbh43quq3",
+                    async: true
+                });
+            },1000)
+            _this.getAjaxAdv()
+          }
+        }
+      })
+      $.ajax({
+          type: 'post',
+          url: '/bigmember/use/isAdd',
+          dataType: "json",
+          success: function (res) {
+              if (res.data) {
+                window.isFree = res.data.isFree
+                window.userNewType = res.data.isUpgrade // 原页面里的用户版本 变量赋值
+                _this.rootInfo = res.data
+                let switchProduct = sessionStorage.getItem('switch-product')
+                // res.data.memberStatus = 3
+                // res.data.vipStatus = 0
+                sessionStorage.setItem('big_member_status', res.data.memberStatus)
+                if(res.data.power.indexOf(10) != -1) {
+                  $('.vip_report').show()
+                }
+                if(res.data.vipStatus > 0 && res.data.memberStatus > 0) {
+                  if(switchProduct) {
+                    if(switchProduct == 'bigmember') {
+                      _this.getBmStatus(res.data)
+                    }else{
+                      $(".switch").addClass('only-vip')
+                      $(".switch .user_pro").text("超级订阅")
+                      $(".switch .switch_icon").addClass('icon_vip')
+                      $(".switch_right").addClass('right_zh')
+                      _this.selectPro = 1
+                    }
+                  } else {
+                    $(".switch").addClass('only-vip')
+                    $(".switch .user_pro").text("超级订阅")
+                    $(".switch .switch_icon").addClass('icon_vip')
+                    $(".switch").show()
+                    $(".switch_right").addClass('right_zh')
+                    _this.selectPro = 1
+                  }
+                  $(".switch").show()
+                } else if(res.data.vipStatus > 0) {
+                  // 仅超级订阅
+                  $(".switch").show()
+                  if((!res.data.memberStatus || res.data.memberStatus <=0) && !_this.isEntniche) {
+                    $(".switch").addClass('only-vip')
+                    $(".switch .user_pro").text("超级订阅")
+                    $(".switch .switch_icon").addClass('icon_vip')
+                    _this.selectPro = 1
+                  }
+                } else if(res.data.memberStatus > 0) {
+                  // 仅大会员
+                  if((!res.data.vipStatus || res.data.vipStatus == 0) && !_this.isEntniche) {
+                    _this.getBmStatus(res.data)
+                  }
+                } else if(_this.isEntniche) {
+                  // 仅商机管理
+                  if(!res.data.vipStatus || res.data.vipStatus == 0 && res.data.memberStatus <= 0) {
+                    $(".switch .switch_icon").addClass('icon_zj')
+                    _this.selectPro = 3
+                  }
+                }
+    			      _this.switchVip()
+              }
+          }
+      })
+    },
+    // 判断会员状态
+    getBmStatus: function(res) {
+      this.selectPro = 2
+      sessionStorage.setItem('switch-product', 'bigmember')
+      if(res.memberStatus == 1 || res.memberStatus == 7) {
+        $(".switch").addClass('switch_zj')
+        $(".switch_right").addClass('right_zj')
+        $(".switch .switch_icon").addClass('icon_zj')
+        $('.user_pro').css('color', '#171826')
+      } else if(res.memberStatus == 2 ) {
+        $(".switch").addClass('switch_zh')
+        $(".switch_right").addClass('right_zh')
+        $(".switch .switch_icon").addClass('icon_zh')
+        $('.user_pro').css('color', '#d69e55')
+      } else if(res.memberStatus == 3 || res.memberStatus == 6) {
+        $(".switch").addClass('switch_sj')
+        $(".switch_right").addClass('right_sj')
+        $(".switch .switch_icon").addClass('icon_sj')
+        $('.user_pro').css('color', '#2abed1')
+      } else {
+        $(".switch").addClass('switch_zj')
+        $(".switch_right").addClass('right_zj')
+        $(".switch .switch_icon").addClass('icon_zj')
+        $('.user_pro').css('color', '#171826')
+      }
+      $(".switch .user_pro").text("大会员")
+      $(".switch").show()
+    },
+    selectedMoreConfirmed: function () {
+      this.$refs.moreDropdownItems.toggle(false)
+      if (this.screenShow) {
+        this.buyerclass = this.moreFiltersTextCache.cateItem
+        this.key = this.moreFiltersTextCache.keywordItem
+        this.subtype = this.moreFiltersTextCache.noticeItem
+        this.selectMoney = this.$refs.moneyComponent.getState()
+        console.log('金额:', this.selectMoney, '有无附件:', this.selectFile);
+        this.doSearch()
+      }
+    },
+    selectedMoreCancel: function () {
+      this.cancel({ name: 'cateItem' })
+      this.cancel({ name: 'keywordItem' })
+      this.cancel({ name: 'noticeItem' })
+      this.$refs.moreDropdownItems.toggle(false)
+      this.$refs.moneyComponent.resetAll()
+      this.selectFile = ''
+      this.selectMoney = ''
+      if (this.screenShow) {
+        this.buyerclass = ''
+        this.key = ''
+        this.subtype = ''
+        this.selectFile = ''
+        this.selectMoney = ''
+        this.doSearch()
+      }
+    },
+    confirm: function(data){
+      if(data.name === 'dateItem'){
+        const timeRange = {
+          start: (data.data.start / 1000).toFixed(0),
+          end: (data.data.end / 1000).toFixed(0)
+        }
+        if (timeRange.start == 0 && timeRange.end == 0) {
+          this.time = ''
+          this.tagText.timeText = '时间'
+        } else if(timeRange.start == 0 && timeRange.end != 0) {
+          this.time = '_' + timeRange.end
+        } else if(timeRange.start != 0 && timeRange.end == 0) {
+          this.time = timeRange.start + '_'
+        } else {
+          this.time = timeRange.start + '_' + timeRange.end
+        }
+        this.selectDate.exact = data.data.exact
+        switch (data.data.exact) {
+          case 'all': {
+            this.tagText.timeText = '时间'
+            break
+          }
+          case 'lately7': {
+            this.tagText.timeText = '最近7天'
+            break
+          }
+          case 'lately30': {
+            this.tagText.timeText = '最近30天'
+            break
+          }
+          case 'lastYear': {
+            this.tagText.timeText = '去年'
+            break
+          }
+          case 'exact': {
+            this.tagText.timeText = new Date(timeRange.end*1000).pattern('yyyy.MM.dd')
+            break
+          }
+        }
+
+        this.setToggle()
+        this.doSearch()
+      } else if(data.name === 'areaCityItem'){
+        var areaCityRes = data.data
+        var count = data.count
+        this.selectAreaList = areaCityRes
+        if (!areaCityRes || Object.keys(areaCityRes).length === 0) {
+          this.area = ''
+          this.city = ''
+          $('.areaText').html('地区')
+        } else {
+          var obj = {
+            p: [], // 省份全选
+            c: [] // 所有的市
+          }
+          for (var key in areaCityRes) {
+            if (areaCityRes[key].length === 0) {
+              obj.p.push(key)
+            } else {
+              obj.c = obj.c.concat(areaCityRes[key])
+            }
+          }
+          $('.areaText').text('地区 ' + count)
+          this.tagText.areaText = '地区 ' + count
+          this.area = obj.p.join(',')
+          this.city = obj.c.join(',')
+        }
+
+        this.setToggle()
+        this.doSearch()
+      } else if(data.name === 'industryItem'){
+        $('.industryText').html(data.t)
+        this.tagText.industryText = data.t
+        this.subscopeclass = data.data.join(',')
+
+        this.setToggle()
+        this.doSearch()
+      } else if(data.name === 'cateItem'){
+        this.moreFiltersText.cateItem = data.t
+        this.moreFiltersTextCache.cateItem = data.data.join(',')
+        this.moreFiltersShow.cateItem = false
+      } else if(data.name === 'keywordItem'){
+        this.moreFiltersText.keywordItem = data.t.replace('关键词', '')
+        this.moreFiltersTextCache.keywordItem = data.data.join(',')
+        this.moreFiltersShow.keywordItem = false
+      } else if(data.name === 'noticeItem'){
+        this.moreFiltersText.noticeItem = data.t.replace('公告类型', '')
+        this.moreFiltersTextCache.noticeItem = data.data.join(',')
+        this.moreFiltersShow.noticeItem = false
+      } else if(data.name === 'rootItem'){
+        try {
+          _hmt.push(['_trackEvent','超级订阅-app', 'click', '推送列表页' + this.goUpText + '-去开通']);
+        } catch (e) {
+          console.log('未初始化百度统计')
+        }
+        topay()
+      } else {
+        return console.log('暂无数据')
+      }
+    },
+    cancel: function(data){
+      if(data.name === 'dateItem'){
+        this.time = ''
+        this.tagText.timeText = '时间'
+        this.selectDate.start = ''
+        this.selectDate.end = ''
+        this.selectDate.exact = 'all'
+        this.setTimer.datetimer = new Date().getTime()
+
+        this.setToggle()
+        this.doSearch()
+      } else if(data.name === 'areaCityItem'){
+        this.area = ''
+        this.city = ''
+        $('.areaText').html('地区')
+        this.setTimer.areatimer = new Date().getTime()
+
+        this.setToggle()
+        this.doSearch()
+      } else if(data.name === 'industryItem'){
+        this.subscopeclass = ''
+        $('.industryText').html('行业')
+        this.setTimer.industrytimer = new Date().getTime()
+        this.selectIndustryList = []
+        this.setToggle()
+        this.doSearch()
+      } else if(data.name === 'cateItem'){
+        this.selectCateList = []
+        this.moreFiltersTextCache.cateItem = ''
+        this.moreFiltersText.cateItem = ''
+        this.setTimer.catetimer = new Date().getTime()
+        this.moreFiltersShow.cateItem = false
+      } else if(data.name === 'keywordItem'){
+        this.selectKeyWordList = []
+        this.moreFiltersTextCache.keywordItem = ''
+        this.moreFiltersText.keywordItem = ''
+        this.setTimer.keytimer = new Date().getTime()
+        this.moreFiltersShow.keywordItem = false
+      } else if(data.name === 'noticeItem'){
+        this.selectNoticeList = []
+        this.moreFiltersTextCache.noticeItem = ''
+        this.moreFiltersText.noticeItem = ''
+        this.setTimer.noticetimer = new Date().getTime()
+        this.moreFiltersShow.noticeItem = false
+      } else if(data.name === 'rootItem') {
+        this.setToggle()
+      }
+    },
+    doSearch: function (delay) {
+      delay = delay || 500
+      setTimeout(this.getAjaXParams, delay)
+    },
+    getAjaXParams: function() {
+      ajaxFun(this.time, this.area, this.city, this.subscopeclass, this.buyerclass, this.key, this.subtype,this.selectFile, this.selectMoney)
+    },
+    setToggle: function() {
+      this.$refs.dateItem.toggle(false)
+      this.$refs.areaCityItem.toggle(false)
+      this.$refs.industryItem.toggle(false)
+      this.$refs.moreDropdownItems.toggle(false)
+    },
+    getAjaxAdv: function () {
+      $.ajax({
+        type: 'POST',
+        url: '/publicapply/adLeague/exposure',
+        data: {
+            client: 'APP',
+            id: 'ad6',
+            position: '订阅推送列表页'
+        },
+        success: function(res) {
+            // console.log(res)
+        }
+      })
+    },
+    // 选择附件
+    selectFileFn: function(item) {
+      if (!this.screenShow) return
+      this.selectFile = item.key
+    }
+  }
+})

+ 1699 - 0
src/web/staticres/common-module/history-push/js/old-page-script.js

@@ -0,0 +1,1699 @@
+// 双11活动文案修改
+$.get('/jyactive/doubleEleven/isActiving?t=' + new Date().getTime(), function (r) {
+  if (r && r.data) {
+    if (r.data.isActiving) {
+      $('*[data-name="doubleEleven_title"]').text('买超级订阅,买多久送多久!')
+      $('*[data-name="doubleEleven_button"]').text('去抢')
+    }
+  }
+})
+
+
+addEventListener('focus', function () {
+  if (document.activeElement = document.getElementById('iframeu6603902_0')) {
+    $.ajax({
+      type: 'POST',
+      url: '/publicapply/adLeague/click',
+      data: {
+        client: 'APP',
+        id: 'ad6',
+        position: '订阅推送列表页'
+      },
+      success: function (res) {
+        console.log(res)
+      }
+    })
+  }
+});
+
+
+function hiddenTips() {
+  $('#UserTips').hide()
+}
+
+function gotoPay() {
+  $('#UserTips').hide()
+  location.href = '/jy_mobile/common/order/create/areapack?type=buy'
+}
+
+// 得到用户是否需要提醒省份订阅包过期
+function getUserSubscribe() {
+  $.ajax({
+    url: '/publicapply/free/areapack/tip',
+    type: 'POST',
+    success: function (res) {
+      if (res.data.tip) {
+        $('#UserTips').show()
+        $('#freeArea').text(res.data.area)
+        tipsClose()
+      } else {
+        $('#UserTips').hide()
+      }
+    }
+  })
+}
+
+getUserSubscribe()
+
+function tipsClose() {
+  $.ajax({
+    url: '/publicapply/free/areapack/update',
+    type: 'POST',
+    success: function (res) {
+
+    }
+  })
+}
+
+// @手机号绑定及账号合并 2021/1/25
+$("#toKeySet").on('click', tokeyset)
+
+function receivePushMessageHandle(type, url) {
+  if (type == "vipreport" || type == "memberreport") {
+    if (type == "memberreport" && productType != 2) {
+      return
+    } else if (type == "vipreport" && productType != 1) {
+      return
+    }
+    if ((type == "vipreport" || type == "memberreport") && $(".vip_report").is(":visible")) {
+      $(".vip_report>a").show();
+    }
+  }
+}
+
+function closeadv(obj) {
+  closeAdvert = true;
+  $(obj).parent().prev().css("border-bottom", "1px solid #e5e6e9");
+  $(obj).parent().remove();
+  if (wxflag != "" && wxflag != null) {
+    wxflag.resetload();
+  }
+}
+
+function AdClick(e, isExternal, link, title) {
+  var ce = $(e).parent();
+  adv_statistics(ce);
+  if (isExternal) {
+    if (!title) {
+      title = "剑鱼标讯"
+    }
+    JyObj.openExternalLink(link, title)
+  } else {
+    window.location.href = link;
+  }
+}
+
+if (sessionStorage && sessionStorage.reloadSubPage) {
+  sessionStorage.removeItem("reloadSubPage");
+  removeSessionStorage();
+  window.location.reload();
+}
+var firstPage = null;
+var scrollTop = 0;
+var dataCache = new Array();
+var lasttime = 0;
+var count = 0;
+var wxflag = "";
+var hasNextPage = false;
+var pageIndex = 1;
+var closeAdvert = false//是否关闭广告
+var isread = goTemplateData.params.isread
+var isPageShow = localStorage.getItem('hideBottom')
+// '/jyapp/myinfo'这个接口的返回值(同步请求,放心使用)
+// 有无关键词同意用这个myInfo中的内容判断
+var myInfo = {}
+var isInTSguide = null
+
+if (getUrlParam("f") == "push") {
+  removeSessionStorage();
+  if (history) {
+    sessionStorage.setItem(sessionStorage.userId + "_searchTime", getUrlParam("selectTime"));
+    history.replaceState(null, null, "/jyapp/swordfish/historypush");
+  }
+}
+
+// 是否需要留资
+function isNeedSales(callback) {
+  $.ajax({
+    type: 'GET',
+    url: '/salesLeads/retainedCapital',
+    data: {source: 'jypush_see10_plus_app'},
+    async: false,
+    success: function (res) {
+      callback(res)
+    }
+  })
+}
+
+function checkFreeList(data) {
+  if (window.isFree) {
+    if (data.data.length > 10) {
+      // sessionStorage.setItem('isNeedSalesStatus', isNeedSalesStatus)
+      isNeedSales(function (res) {
+        // 推送列表 免费是否需要留资判断
+        var result = checkRequiredKeys(['name', 'phone', 'position', 'branch', 'company', 'companyType'], res.info)
+        if (!result && res.data && res.data.retainedCapital) {
+          data.data = data.data.slice(0, 10)
+          data.hasNextPage = false
+          $(".seeMore").show()
+          $(".seeMore-btn").on('click', function () {
+            location.href = '/jyapp/frontPage/bigmember/free/perfect_info?source=jypush_see10_plus_app'
+          })
+        }
+      })
+    }
+  }
+}
+
+$(function () {
+  FastClick.attach(document.body)
+  var alert_other;
+  alert_other = setInterval(function () {
+    if (localStorage.canshowother && localStorage.getItem(goTemplateData.params.userId + "_otherFlag") && localStorage.getItem(goTemplateData.params.userId + "_alert") == null) {
+      $(".jy-alert-other").show();
+      localStorage.setItem(goTemplateData.params.userId + "_alert", "1")
+      clearInterval(alert_other);
+    }
+  }, 1000)
+
+  //到期提醒页面
+  var vipSubtips = goTemplateData.params.vipSubtips
+
+  if (Number(vipSubtips) === 0 && sessionStorage.vipSubtips == undefined) {
+    history.pushState({}, "", "");
+    sessionStorage.vipSubtips = "t";
+    window.location.replace("/jyapp/vipsubscribe/renewPage/exprie");
+    return
+  }
+  //===================
+  var isinitpage = false;
+  $(window).bind("pageshow", function (event) {
+    if (event.originalEvent.persisted) {
+      //返回不加载  导致菜单不出来
+      JyObj.hiddenBottom("1");
+      count = 0;
+      initpage();
+      isinitpage = true;
+    }
+  });
+  if (!isinitpage) {
+    initpage();
+    isinitpage = true;
+  }
+  $(".vip_report").click(function () {
+    sessionStorage.setItem(vm.sessStorageKey, JSON.stringify(vm.$data))
+    setSessionStorage();
+
+    var tempUrl = "/vipreport/page/subreport.html"
+    if (window.isFreeUserStatus && window.isUserWeekMonthStatus) {
+      tempUrl += '?type=free'
+    } else if (productType == 2) {
+      tempUrl += '?type=member'
+    } else if (productType == 1) {
+      tempUrl += '?type=vip'
+    }
+    window.location.href = tempUrl;
+  });
+});
+
+var userId = "";
+var selectArea = vm.area; // 地区
+var selectCity = vm.city; // 城市
+var selectIndustry = vm.subscopeclass // 行业
+var selectCate = vm.buyerclass // 采购单位
+var selectKeyword = vm.key // 关键词
+var selectNotice = vm.subtype // 公告类型
+var selectMoney = vm.selectMoney
+var selectFile = vm.selectFile
+//获取当前时间
+var date = (function () {
+  var date = new Date();
+  var year = date.getFullYear();
+  var month = date.getMonth() + 1;
+  var day = date.getDate();
+  month = month < 10 ? '0' + month : month;
+  day = day < 10 ? '0' + day : day;
+  return year + '-' + month + '-' + day;
+})();
+
+let listparams = {
+  pageNum: 1
+}
+var listnum = 0
+$.ajax({
+  url: '/publicapply/bidcoll/list',
+  type: "POST",
+  contentType: 'application/json;charset=utf-8',
+  data: JSON.stringify(listparams),
+  success: function (res) {
+    if (res.error_code == 0) {
+      if (res.data && res.data.res) {
+        listnum = res.data.res.length
+      }
+    }
+  }
+})
+
+function initpage() {
+  console.log(selectMoney, selectFile, 'sessionstorage');
+  afterJyObjInit();
+  var thisClass = this;
+  $("#openmailpush").click(function () {
+    setSessionStorage();
+    window.location.href = '/jyapp/wxkeyset/keyset/seniorset';
+  });
+  $(".listcontent").scroll(function () {
+    scrollTop = $(this).scrollTop();
+  });
+  this.isCanSwitch = true;
+  this.InitPersonal = function (r) {
+    $("#sub_manager").click(function () {
+      setSessionStorage();
+      sessionStorage.setItem(vm.sessStorageKey, JSON.stringify(vm.$data))
+      if (historyVt == 's') {
+        if (vm.entinfo.admin_department || vm.entinfo.admin_system) {
+          location.href = '/page_entniche_new/page/sub_management/sub_management_system.html'
+        } else {
+          location.href = '/page_entniche_new/page/subsetting/sub_entrance.html'
+        }
+        return
+      }
+      let thisType = sessionStorage.getItem('userIsNew')
+      if (window.userNewType || thisType) {
+        location.href = '/jyapp/vipsubscribe/toSubVipSetPage'
+      } else {
+        if (vm.rootInfo.memberStatus > 0) {
+          location.href = '/jyapp/vipsubscribe/toSubVipSetPage?vSwitch=m'
+        } else {
+          tokeyset()
+        }
+      }
+
+    });
+    $(".tab_left .area").hide();
+    if (r.isPassCount) {
+      if (vm.rootInfo.memberStatus > 0) {
+        $(".open_remind").hide();
+      } else {
+        $(".open_remind").show();
+      }
+    }
+    // 商机管理隐藏弹窗
+    if (r.userType == 'entniche') {
+      $(".open_remind").hide();
+    }
+    if (r.isExpire < 0 && r.vipStatus == -1) {
+      if (localStorage.getItem("nv_vip_" + userId) == null) {
+        // $(".nv_renew_toast").show();
+      }
+    }
+    thisClass.LoadDatas(r);
+  }
+  this.InitVip = function (r) {
+    $("#sub_manager").click(function () {
+      setSessionStorage();
+      // console.log(vm.rootInfo, 'vmrootInfo')
+      sessionStorage.setItem(vm.sessStorageKey, JSON.stringify(vm.$data))
+      if (historyVt == 's') {
+        if (vm.entinfo.admin_department || vm.entinfo.admin_system) {
+          location.href = '/page_entniche_new/page/sub_management/sub_management_system.html'
+        } else {
+          location.href = '/page_entniche_new/page/subsetting/sub_entrance.html'
+        }
+        return
+      } else if (historyVt == 'm') {
+        location.href = '/jyapp/vipsubscribe/toSubVipSetPage?vSwitch=m'
+      } else if (historyVt == 'v') {
+        location.href = '/jyapp/vipsubscribe/toSubVipSetPage?vSwitch=v'
+      } else {
+        tosetpage()
+      }
+      // let thisType = sessionStorage.getItem('userIsNew')
+      // if (window.userNewType || thisType) {
+      //     location.href = '/jyapp/vipsubscribe/toSubVipSetPage'
+      // } else {
+      //     if(vm.selectPro == 1) {
+      //         location.href = '/jyapp/vipsubscribe/toSubVipSetPage'
+      //     } else {
+      //         tosetpage()
+      //     }
+      // }
+
+    });
+    if (productType == 0) {
+      $(".vip_report").show();
+    }
+    $(".tab_left .area").show();
+    if (!r.haskey) {
+      if (historyVt == 'm' && vm.rootInfo.isSubCount) {
+        $(".set_keyword").hide();
+      } else if (historyVt == 's') {
+        $(".set_keyword").hide();
+      } else {
+        $(".set_keyword").show();
+      }
+      if (r.isPassCount && (localStorage.isPassCount == null || localStorage.isPassCount != date.split("-")[2])) {
+        localStorage.isPassCount = date.split("-")[2]
+        // weuiDialog(); // liumiao让去掉
+      }
+    }
+    if (r.vipStatus != 1) {
+      if (r.isExpire > 1) {
+        $(".renew_toast .isExpire").text(r.isExpire);
+        $(".renew_toast").show();
+      } else if (r.isExpire > 0) {
+        $(".renew_toast").find(".other").hide();
+        $(".renew_toast").find(".today").show();
+        $(".renew_toast").show();
+      }
+    } else {
+      if (r.isExpire > 1) {
+        $("._renew_toast .isExpire").text(r.isExpire);
+        $("._renew_toast").show();
+      } else if (r.isExpire > 0) {
+        $("._renew_toast").find(".other").hide();
+        $("._renew_toast").find(".today").show();
+        $("._renew_toast").show();
+      }
+    }
+    thisClass.LoadDatas(r);
+  }
+  this.LoadDatas = function (r) {
+    if (isPageShow == '1') {
+      localStorage.removeItem('hideBottom')
+      JyObj.hiddenBottom("0");
+    }
+    $(".app-content").css("display", "flex");
+    if (r.reLoad) {
+      removeSessionStorage();
+    }
+    if (sessionStorage && sessionStorage.historypushScrollTop && sessionStorage.historypushDataCache) {
+      if (sessionStorage.closeAdvert == "true") {
+        closeAdvert = true;
+      }
+      pageIndex = sessionStorage.historypushPageIndexCache;
+      hasNextPage = sessionStorage.historypushHasNextPage == "true" ? true : false;
+      scrollTop = sessionStorage.historypushScrollTop;
+      dataCache = JSON.parse(sessionStorage.historypushDataCache);
+      userId = sessionStorage.userId;
+      firstTime = sessionStorage.getItem(userId + "_searchTime");
+      selectArea = sessionStorage.getItem(userId + "_selectArea");
+      selectCity = sessionStorage.getItem(userId + "_selectCity");
+      selectIndustry = sessionStorage.getItem(userId + "_selectIndustry");
+      selectCate = sessionStorage.getItem(userId + "_selectCate");
+      selectKeyword = sessionStorage.getItem(userId + "_selectKeyword");
+      selectNotice = sessionStorage.getItem(userId + "_selectNotice");
+      selectMoney = sessionStorage.getItem(userId + "_selectMoney");
+      selectFile = sessionStorage.getItem(userId + "_selectFile");
+
+      // 判断是否需要修改某个收藏的状态
+      var listCollSessionId = sessionStorage.getItem('listCollSessionId')
+      if (listCollSessionId) {
+        var listCollSessionBool = sessionStorage.getItem('listCollSessionBool')
+        if (dataCache && $.isArray(dataCache)) {
+          dataCache.forEach(function (item) {
+            if (item._id == listCollSessionId) {
+              item.collection = listCollSessionBool
+            }
+          })
+          sessionStorage.removeItem('listCollSessionId')
+          sessionStorage.removeItem('listCollSessionBool')
+        }
+      }
+
+      $("#list>*").remove();
+      firstPage = dataCache;
+      if (dataCache.length == 0) {
+        hasNoData();
+      } else {
+        structureHtml(dataCache, true);
+      }
+      //appendList($(listCache),$(tableCache));
+      $(".listcontent").scrollTop(scrollTop);
+      if (sessionStorage.getItem('hasFreeMore') === 'true') {
+        isNeedSales(function (res) {
+          var result = checkRequiredKeys(['name', 'phone', 'position', 'branch', 'company'], res.info)
+          if (!result && res.data && res.data.retainedCapital) {
+            $(".seeMore").show()
+            $(".seeMore-btn").on('click', function () {
+              location.href = '/jyapp/frontPage/bigmember/free/perfect_info?source=jypush_see10_plus_app'
+            })
+          } else {
+            location.reload()
+          }
+        })
+      }
+      removeSessionStorage();
+    } else {
+      if (historyVt == 's') {
+        $(".set_keyword").hide();
+      }
+      userId = sessionStorage.userId;
+      // var isNeedSalesStatus = false
+      // var isNeedSalesStatus = true
+      console.log('load-ajax', selectFile, selectMoney, vm.selectFile, vm.selectMoney);
+      $.ajax({
+        type: 'post',
+        url: '/publicapply/subscribe/historyPush?t=' + new Date().getTime(),
+        data: {
+          selectTime: firstTime,
+          pageNum: 1,
+          area: selectArea,
+          city: selectCity,
+          subscopeclass: selectIndustry,
+          buyerclass: selectCate,
+          key: selectKeyword,
+          subtype: selectNotice,
+          vt: historyVt,
+          fileExists: vm.selectFile,
+          price: vm.selectMoney
+        },
+        async: false,
+        dataType: 'json',
+        success: function (data) {
+          if (!data.data) {
+            data.data = []
+          }
+          checkFreeList(data)
+
+
+          checkmerge(data.industry)
+          if (data.otherFlag) {
+            localStorage.setItem(goTemplateData.params.userId + "_otherFlag", data.otherFlag)
+          }
+          firstPage = data.data;
+          isInTSguide = data.isInTSguide
+          if (r.userType == "free" && firstPage.length <= 0 && !r.haskey && isInTSguide) {
+            (function () {
+              if (sessionStorage && (sessionStorage.keysetindexToHistory == "1" || sessionStorage.keysetindexToHistory == "2" || sessionStorage.keysetindexToHistory == "3")) {
+                sessionStorage.removeItem("keysetindexToHistory");
+                return
+              }
+              if (firstTime) {
+                return
+              }
+              history.pushState({}, "", "");
+              window.location.href = '/jyapp/wxkeyset/keyset/index';
+            })();
+          }
+
+          // 非vip的新用户
+          if (myInfo.userType !== 'vip') {
+            if (myInfo.userType == 'entniche') {
+              if (data.data) {
+                if (data.data.length === 0) {
+                  $('.findnull_').show().siblings('.empty').hide()
+                }
+              } else {
+                $('.findnull_').show().siblings('.empty').hide()
+              }
+
+              $('.header_header').hide()
+            } else {
+              // 如果是新用户(没有推送历史数据,没有关键词),直接就显示空页面
+              if (data.data.length === 0 && myInfo.haskey === false && !firstTime) {
+                if (vm.rootInfo.memberStatus > 0) {
+                  $('.header_header').hide()
+                } else {
+                  $('.filter_tab').hide()
+                  $('.header_header').hide()
+                  $('.findnull-no-key').css({"display": 'block'}).siblings('.empty').hide()
+                }
+                return
+              } else {
+                if (vm.rootInfo.memberStatus > 0 || myInfo.userType == 'entniche') {
+                  $('.header_header').hide()
+                } else {
+                  $('.header_header').show()
+                }
+              }
+            }
+          } else {
+            if (data.data.length === 0) {
+              $('.findnull_').show().siblings('.empty').hide()
+            }
+
+            $('.header_header').hide()
+          }
+
+          pageIndex = 2;
+          lasttime = data.thistime;
+          hasNextPage = data.hasNextPage;
+          vm.hasNextPage = data.hasNextPage
+          userId = data.userId;
+          sessionStorage.userId = userId;
+          sessionStorage.setItem(userId + "_searchTime", firstTime);
+        },
+        error: function (xhr, type) {
+          hasNoData();
+        }
+      });
+      // firstPage.length = 0
+      if (firstPage.length == 0) {
+        //sessionStorage.removeItem("search_starttime");
+        sessionStorage.removeItem(sessionStorage.userId + "_searchTime");
+        hasNoData();
+        return;
+      }
+      dataCache = dataCache.concat(firstPage);
+      structureHtml(firstPage, true);
+
+      setTimeout(function () {
+        $(".listcontent").scrollTop(0);
+      }, 300);
+    }
+    setTimeout(() => {
+      $('#select-meau').css({'visibility': 'initial'})
+      $('#select-meau').css({'display': 'flex'})
+    }, 500)
+    if (hasNextPage) {
+      setTimeout(function () {
+        wxflag = $('.listcontent').dropload({
+          scrollArea: $(".listcontent"),
+          // loadUpFn: function (me) {
+          //     //loadDatas(me,-1);
+          //     reloadFirstPage(me);//下拉刷新更新订阅词
+          // },
+          loadDownFn: function (me) {
+            loadDatas(me, lasttime);
+          }
+        });
+      }, 1000);
+    } else {
+      setTimeout(function () {
+        wxflag = $('.listcontent').dropload({
+          scrollArea: $(".listcontent"),
+          // loadUpFn: function (me) {
+          //     loadDatas(me, -1);
+          // },
+          loadDownFn: function (me) {
+            loadDatas(me, lasttime);
+          }
+        });
+        noMoreData(wxflag);
+      }, 1000);
+    }
+  }
+  //
+  $.post("/publicapply/myinfo?t=" + new Date().getTime(), null, function (r) {
+    myInfo = r
+    if (r.vipStatus > 0) {
+      // $(".switch").addClass("only-vip");
+      // $(".switch").text("超级订阅").show();
+      // $(".switch").click(tosetpage);
+      thisClass.InitVip(r);
+      extend(1);
+    } else {
+      if (vm.rootInfo.memberStatus <= 0) {
+        if (myInfo.userType == 'entniche') {
+          $('.header_header').hide()
+          $(".switch").addClass('switch_zj')
+          // $(".switch_right").hide()
+          $(".switch .switch_icon").addClass('icon_ent')
+          $(".switch .user_pro").text("商机管理").css('margin-right', '.08rem')
+          $(".switch").show()
+          thisClass.InitPersonal(r);
+          if (historyVt === 's') {
+            $(".switch").click(toEntNichePage);
+          }
+          extend(1)
+          return
+        }
+        setTimeout(function () {
+          if (scrollTop == 0 && r.haskey) {
+            $(".header_header").show();
+          }
+        }, 200)
+
+        // 获取一下cache的列表数据
+        var listString = sessionStorage.getItem('historypushDataCache')
+        if (listString) {
+          listString = JSON.parse(listString)
+        }
+
+        // 非vip
+        if (myInfo.userType !== 'vip') {
+          if (listString) {
+            $('.header_header').show()
+          }
+        }
+        $(".app-content").css("justify-content", "flex-start");
+        $(".switch").addClass("only-personal");
+        $(".switch .user_pro").text("立即使用 超级订阅");
+        $(".switch").click(tointroducepage);
+        $(".switch_ext").click(tointroducepage);
+        thisClass.InitPersonal(r);
+        extend(0);
+        // 免费用户删除类名
+        vm.RemoveClass('vip')
+        vm.RemoveClass('big')
+      } else {
+        thisClass.InitPersonal(r);
+        extend(1)
+      }
+    }
+  });
+}
+
+// 是否有未读的周报月报
+function reportHtml(r) {
+  if (r.unread > 0) {
+    $(".vip_report>a").show();
+  } else {
+    $(".vip_report>a").hide();
+  }
+  if (r.tip) {
+    if (r.tip.type == 2) {
+      $(".vip_report_tip .weekly>span").text("周");
+    } else {
+      $(".vip_report_tip .weekly>span").text("月");
+    }
+    $(".vip_report_tip .term").text(new Date(Number(r.tip.startdate + "000")).Format("yyyy年M月d日") + "-" + new Date(Number(r.tip.enddate + "000")).Format("yyyy年M月d日"));
+    $('.vip_report_tip').fadeIn();
+    $('.vip_report_todetail').on('click', function () {
+      $('.vip_report_tip').fadeOut();
+      localStorage.removeItem("reportTipTime");
+      localStorage.removeItem("reportData");
+      updateReportStatus(r.tip);
+    });
+    $('.weui-dialog img.vip_report_tip_close').click(function () {
+      $('.vip_report_tip').fadeOut();
+      localStorage.removeItem("reportTipTime");
+      localStorage.removeItem("reportData");
+      updateReportStatus();
+    });
+  }
+}
+
+function extend(i) {
+  window.listScroll = function () {
+    if (i == 0) {
+      var nowT = $(".listcontent").scrollTop()
+      if (nowT > 0) {
+        if (nowT > 50) {
+          // 修复非超级订阅用户,但是大会员会用户。在筛选结果只有4条数据时候滚动产生的无限循环
+          // 无限循环触发条件:nowT<50,设置高度,触发scroll事件,nowT<50 ...以此无限循环触发
+          $(".header_header").css({height: (60 - nowT) + 'px'})
+          $(".header_header").hide();
+          $(".switch").fadeIn();
+        } else {
+          $(".header_header").show();
+          $(".switch").fadeOut();
+        }
+      } else {
+        $(".header_header").css({height: (60) + 'px'})
+        $(".header_header").show()
+        $(".switch").fadeOut();
+      }
+    }
+  }
+}
+
+//下拉刷新
+function reloadFirstPage(me) {
+  if ($(".vip_report").is(":hidden") || $(".vip_report>a").is(":hidden")) {
+    afterJyObjInit();
+  }
+  selectArea = vm.area; // 地区
+  selectCity = vm.city; // 城市
+  selectIndustry = vm.subscopeclass // 行业
+  selectCate = vm.buyerclass // 采购单位
+  selectKeyword = vm.key // 关键词
+  selectNotice = vm.subtype // 公告类型
+  selectFile = vm.selectFile
+  selectMoney = vm.selectMoney
+  console.log('刷新-ajax', selectFile, selectMoney);
+  $.ajax({
+    type: 'post',
+    url: '/publicapply/subscribe/historyPush?t=' + new Date().getTime(),
+    data: {
+      selectTime: firstTime || vm.time,
+      pageNum: 1,
+      area: selectArea,
+      city: selectCity,
+      subscopeclass: selectIndustry,
+      buyerclass: selectCate,
+      key: selectKeyword,
+      subtype: selectNotice,
+      fileExists: selectFile,
+      price: selectMoney
+    },
+    async: false,
+    dataType: 'json',
+    success: function (data) {
+      pageIndex = 1;
+      lasttime = data.thistime;
+      firstPage = data.data;
+      hasNextPage = data.hasNextPage;
+      words = data.matchkeys;
+      count = 0;
+      dataCache = new Array();
+      $("#list>*").remove();
+      hasNextPage = true;
+      me.$domDown.html(me.opts.domDown.domLoad);
+      me.isData = true;
+      me.isLockUp = false;
+      me.isLockDown = false;
+      if (data.data.length == 0) {
+        noMoreData(me);
+      } else {
+        pageIndex++;
+        lasttime = data["thistime"];
+        dataCache = dataCache.concat(data["data"]);
+        structureHtml(data["data"], true);
+        if (data.hasNextPage) {
+          // 每次数据插入,必须重置
+          me.resetload();
+        } else {
+          noMoreData(me);
+        }
+      }
+    },
+    error: function (xhr, type) {
+      hasNoData(me);
+    }
+  });
+}
+
+function loadDatas(me, le) {
+  wxflag = me;
+  selectArea = vm.area; // 地区
+  selectCity = vm.city; // 城市
+  selectIndustry = vm.subscopeclass // 行业
+  selectCate = vm.buyerclass // 采购单位
+  selectKeyword = vm.key // 关键词
+  selectNotice = vm.subtype // 公告类型
+  selectFile = vm.selectFile
+  selectMoney = vm.selectMoney
+  if (vm.hasNextPage) {
+    $.ajax({
+      type: 'post',
+      url: '/publicapply/subscribe/historyPaging',
+      data: {
+        pageNum: pageIndex,
+        selectTime: firstTime || vm.time,
+        area: selectArea,
+        city: selectCity,
+        subscopeclass: selectIndustry,
+        buyerclass: selectCate,
+        key: selectKeyword,
+        subtype: selectNotice,
+        vt: historyVt,
+        fileExists: selectFile,
+        price: selectMoney
+      },
+      dataType: 'json',
+      success: function (data) {
+        //没有数据
+        if (data.data.length == 0) {
+          noMoreData(me);
+        } else {
+          pageIndex++;
+          lasttime = data["thistime"];
+          dataCache = dataCache.concat(data["data"]);
+          structureHtml(data["data"], false);
+          if (data.hasNextPage) {
+            // 每次数据插入,必须重置
+            me.resetload();
+          } else {
+            noMoreData(me);
+          }
+        }
+      },
+      error: function (xhr, type) {
+        noMoreData(me);
+      }
+    });
+  }
+}
+
+function noMoreData(me) {
+  if (me == null) {
+    return;
+  }
+  wxflag = me;
+  hasNextPage = false;
+  // 锁定
+  me.lock();
+  // 无数据
+  me.noData();
+  // 即使加载出错,也得重置
+  me.resetload();
+}
+
+function hasNoData() {
+  var nokeyNoDataShow = $('.findnull-no-key').is(':visible')
+  var NoDataShow = $('.findnull-no-key').is(':hidden')
+  $(".listcontent").hide()
+  $("#loading").hide()
+  $('#select-meau').css({'visibility': 'initial'})
+  $('#select-meau').css({'display': 'flex'})
+  $(".color_top").hide()
+  // 如果no-key-no-data 不显示,才会显示no-data
+  if (!nokeyNoDataShow || !NoDataShow) {
+    $(".findnull_").css("display", "block")
+    $('.findnull_').siblings('.empty').hide()
+  } else {
+    $(".findnull_").css("display", "none")
+  }
+  if (!NoDataShow) {
+    if (!myInfo.haskey) {
+      if (myInfo.userType == 'entniche') {
+        $(".findnull_").css("display", "block").siblings('.empty').hide()
+      } else {
+        $('.findnull-no-key').css("display", "block").siblings('.empty').hide()
+      }
+    } else {
+      $(".findnull_").css("display", "block").siblings('.empty').hide()
+    }
+  }
+}
+
+function structureHtml(object, showAd) {
+  $('.findnull').hide()
+  $('.findnull_').hide()
+  $('.findnull-no-key').hide()
+  var listhtml = '';
+  var ad = $("#advertscript").html();
+  for (var index in object) {
+    var obj = object[index];
+    //标题(需要高亮)
+    var title = obj.title;
+    if (title == "" || title == undefined) {
+      continue
+    }
+    count++;
+    var mWords = "";
+    var _words = "";
+    if (obj.matchkeys != undefined && obj.matchkeys != null) {
+      _words = obj.matchkeys;
+    }
+    if (_words != null && _words.length > 0) {
+      for (var n = 0; n < _words.length; n++) {
+        var keysTemp = _words[n].split("+");
+        for (var m = 0; m < keysTemp.length; m++) {
+          title = keyWordHighlight(title, keysTemp[m], '<font class="keyword">$1</font>');
+        }
+      }
+      mWords = _words.join("_");
+    }
+    //地区
+    var area = obj.area;
+    var areaList = "";
+    if (area != "") {
+      area = $.trim(area);
+      area = area == "A" ? "全国" : area;
+      areaList = '<span class="location">' + area + '</span>';
+    }
+    //类型
+    var datatype = obj.type;
+    var datatypeList = "";
+    var datatypeTable = "";
+    if (datatype != "") {
+      datatypeList = '<span class="type">' + datatype + '</span>'
+      datatypeTable = datatype + "公告"
+    }
+    //行业
+    var ca_isvip = obj.ca_isvip
+    var industryname = "";
+    var industryListname = "";
+    if (ca_isvip) {
+      if (obj.buyerclass != null && obj.buyerclass != "") {
+        industryname = obj.buyerclass
+        industryListname = '<span class="buyerclass">' + industryname + '</span>';
+      }
+    } else {
+      if (obj.s_subscopeclass != null && obj.s_subscopeclass != "") {
+        industryname = obj.s_subscopeclass
+        industryListname = '<span class="industry">' + industryname + '</span>';
+      }
+    }
+    // 预算:budget;中标:bidamount
+    var moneyList = "";
+    if (obj.budget != null && obj.budget != "") {
+      moneyList = '<span class="bidamount">' + utils.moneyUnit(obj.budget) + '</span>';
+    }
+    if (obj.bidamount != null && obj.bidamount != "") {
+      moneyList = '<span class="bidamount">' + utils.moneyUnit(obj.bidamount) + '</span>';
+    }
+    //时间
+    var showdateList = ""
+    var showdateTable = ""
+
+    if (obj.publishtime) {
+      showdateList = utils.dateFromNow(obj.publishtime * 1000);
+      showdateTable = formatDate(obj.publishtime)
+      if (showdateList != null) {
+        showdateList = '<span><i class="jyapp-icon jyapp-icon-bofangjilu" style="color:#7a7a7a;margin-right:2px;"></i>' + showdateList + '</span>'
+      }
+    }
+    //
+    var projectM = obj.ca_type;
+    var projectMList = "";
+    if (projectM == 1) {
+      projectMList = '<span class="projectM">项目匹配</span>'
+    } else {
+      projectMList = areaList + industryListname + datatypeList + moneyList
+    }
+    //序号位置
+    var paddingLeft = 20
+    var countLength = count.toString().length;
+    if (countLength > 1) {
+      paddingLeft = (countLength + 1) * 9;
+    }
+    //是否浏览过
+    var visited = "";
+    if (obj.ca_isvisit == 1) {
+      visited = "visited"
+    }
+    // 是否有附件
+    var fileText = ''
+    if (obj.ca_fileExists) {
+      fileText = '<font class="keyword" style="margin-right:4px;">[有附件]</font>'
+    }
+    if (showAd && index == 3 && !closeAdvert) {//广告位
+      var ad = $("#advertscript").html()
+      if (ad != "" && ad.length > 20) {
+        listhtml += '<div class="tslist ' + visited + '" style="border-bottom: none;" words="' + mWords + '">'
+        if (obj.site == '剑鱼信息发布平台') {
+          listhtml += '<div class="userPublish">用户发布</div>'
+        }
+        listhtml += '<div class="resnumb">'
+          + '<div class="one">'
+          + '<span class="xh ' + visited + '">' + count + '.</span>'
+          + '</div>'
+          + '<div class="two bt-parent" style="display: flex;justify-content: space-between;padding-left:' + paddingLeft + 'px;">'
+          + '<a class="bt ' + visited + '" eid="' + obj["_id"] + '"  push_date="' + obj["ca_date"] + '" list_index="' + obj["ca_index"] + '" projectM="' + obj["ca_type"] + '">' + fileText + title + '</a>'
+          + '<div class="collec_star" collecnum="' + obj["collection"] + '" data-id="' + obj["_id"] + '">'
+          + '<span class="shoucang"></span>'
+          + '<span class="weishoucang"></span>'
+          + '</div>'
+          + '</div>'
+          + '</div>'
+          + '<div style="clear:both;">'
+          + '</div>'
+          + '<div class="restime time-diff">' + projectMList + showdateList + '</div>'
+          + '<div style="clear:both;"></div>'
+          + '</div>'
+          + '<div class="adv-wxpush-center" adv_name="APP推送历史页-中部" id="E1">' + ad + '</div>'
+        continue
+      }
+    }
+    listhtml += '<div class="tslist ' + visited + '" words="' + mWords + '">'
+    if (obj.site == '剑鱼信息发布平台') {
+      listhtml += '<div class="userPublish">用户发布</div>'
+    }
+    listhtml += '<div class="resnumb">'
+      + '<div class="one">'
+      + '<span class="xh ' + visited + '">' + count + '.</span>'
+      + '</div>'
+      + '<div class="two bt-parent" style="display: flex;justify-content: space-between;padding-left:' + paddingLeft + 'px;">'
+      + '<a class="bt ' + visited + '" eid="' + obj["_id"] + '"  push_date="' + obj["ca_date"] + '" list_index="' + obj["ca_index"] + '" projectM="' + obj["ca_type"] + '">' + fileText + title + '</a>'
+      + '<div class="collec_star" collecnum="' + obj["collection"] + '" data-id="' + obj["_id"] + '">'
+      + '<span class="shoucang"></span>'
+      + '<span class="weishoucang"></span>'
+      + '</div>'
+      + '</div>'
+      + '</div>'
+      + '<div style="clear:both;">'
+      + '</div>'
+      + '<div class="restime time-diff">' + projectMList + showdateList + '</div>'
+      + '<div style="clear:both;"></div>'
+      + '</div>'
+  }
+  if (object.length <= 3 && ad != undefined && ad != "" && !closeAdvert && showAd) {
+    appendList($("<div>" + listhtml + "<div class='adv-wxpush-center' id='E1'>" + ad + "</div></div>"));
+  } else {
+    appendList($("<div>" + listhtml + "</div>"));
+  }
+  if (object.length <= 4 && ad != undefined && ad != "") {
+    $(".closeadv").css("display", "none");
+    $(".closeadv-bg").css("display", "none");
+  } else {
+    $(".closeadv").css("display", "");
+    $(".closeadv-bg").css("display", "");
+  }
+  //   控制收藏五角星显示隐藏
+  $('.collec_star').each(function (item, index) {
+    // console.log($('.collec_star').eq(item)[0])
+    let collecnum = $('.collec_star').eq(item).attr('collecnum')
+    if (collecnum == 1) {
+      $('.collec_star').eq(item).find('.shoucang').show()
+      $('.collec_star').eq(item).find('.weishoucang').hide()
+    } else {
+      $('.collec_star').eq(item).find('.shoucang').hide()
+      $('.collec_star').eq(item).find('.weishoucang').show()
+    }
+  })
+
+  // 收藏或取消收藏
+  $('.collec_star').on('click', function (e) {
+    const _this = this
+    e.stopPropagation()
+    const id = $(this).attr('data-id')
+    var shoucang = $(_this).find('.weishoucang').is(':hidden')
+    // 说明未收藏,点击收藏
+    if (vKeepComponent) {
+      vKeepComponent.changeBid(id, !shoucang)
+      // if(listnum < 100) {
+      //     vKeepComponent.changeKeepStatus(!shoucang, _this)
+      // }
+    }
+  })
+}
+
+var vKeepComponent = new Vue({
+  delimiters: ['${', '}'],
+  el: '#jyKeepComponent',
+  data: {
+    nowOpenBid: ''
+  },
+  methods: {
+    changeBid(id, type) {
+      this.nowOpenBid = id
+      this.$refs.vKeepComponent.ajaxAddKeep(id, type)
+    },
+    changeKeepStatus(type, that) {
+      if (!that) {
+        that = $('*[data-id="' + this.nowOpenBid + '"]')
+      }
+      changeCollectStatus(type, that)
+      changeCollectDataStatus(type, this.nowOpenBid)
+    }
+  }
+})
+
+function changeCollectDataStatus(type, id) {
+  if (dataCache && $.isArray(dataCache)) {
+    dataCache.forEach(function (item) {
+      if (item._id == id) {
+        item.collection = type ? 1 : 0
+      }
+    })
+  }
+}
+
+function changeCollectStatus(type, that) {
+  if (type) {
+    $(that).find('.shoucang').show()
+    $(that).find('.weishoucang').hide()
+    listnum++
+  } else {
+    $(that).find('.shoucang').hide()
+    $(that).find('.weishoucang').show()
+    listnum--
+  }
+}
+
+//
+function formatDate(date, sl) {
+  var myDate = new Date(date * 1000);
+  var year = myDate.getFullYear();
+  var month = myDate.getMonth() + 1;
+  if (month < 10 && sl != "1") {
+    month = "0" + month
+  }
+  var date = myDate.getDate();
+  if (date < 10 && sl != "1") {
+    date = "0" + date
+  }
+  var hour = myDate.getHours()
+  var min = myDate.getMinutes()
+  if (sl == "1") {
+    if (hour < 10) {
+      hour = "0" + hour
+    }
+    if (min < 10) {
+      min = "0" + min
+    }
+    return year + "-" + month + "-" + date;
+  } else if (sl == "2") {
+    return year + "." + month + "." + date;
+  } else {
+    return year + "<br>" + month + "" + date;
+  }
+}
+
+function hiddenTips2() {
+  $('#tipsType').hide()
+}
+
+function updateJump2() {
+  $('#tipsType').hide()
+  location.href = '/jyapp/areaPack/page/set_area'
+  // location.replace('/jyapp/vipsubscribe/toSubVipSetPage?vSwitch=v')
+  // $.ajax({
+  //     url: '/publicapply/free/oneProvinceSet',
+  //     type: 'POST',
+  //     success: function (res) {
+  //         location.href = '/jyapp/areaPack/page/set_area'
+  //     }
+  // })
+}
+
+//
+function appendList(content) {
+  content.children(".tslist").on("click", function (event) {
+    if (!window.userNewType && !(vm.rootInfo.vipStatus > 0 || vm.rootInfo.memberStatus > 0 || myInfo.userType == 'entniche')) {
+      $('#tipsType').show()
+    } else {
+      $('#tipsType').hide()
+      var isv = $(this).find("a.bt").hasClass("visited");//是否为已读
+      setVisitedIndex($(this), "");
+      var sds = $(this).attr("words");
+      var h = $(this).find("a.bt").attr("s");
+      var eid = $(this).find("a.bt").attr("eid");
+      var index = $(this).find("a.bt").attr("projectm");
+      var pdate = $(this).find("a.bt").attr("push_date");
+      beforeJump(eid, h, sds, index, pdate, isv);
+      sessionStorage.setItem(vm.sessStorageKey, JSON.stringify(vm.$data))
+    }
+  })
+  $("#list").append(content);
+  $(".findnull").hide();
+  $(".listcontent").show();
+  setTimeout(function () {
+    $("#loading").hide();
+  }, 500)
+}
+
+function beforeJump(eid, h, sds, index, pd, vis) {
+  if (!vis) {
+    for (var i = 0; i < dataCache.length; i++) {
+      if (dataCache[i]._id == eid && dataCache[i].ca_date == pd) {
+        dataCache[i].ca_isvisit = 1;
+        break
+      }
+    }
+  }
+  setSessionStorage();
+  newredirect("", h, eid, "subkey_" + sds, index);
+}
+
+function setSessionStorage() {
+  if (sessionStorage && dataCache.length >= 0) {
+    sessionStorage.closeAdvert = closeAdvert;
+    sessionStorage.historypushScrollTop = scrollTop;
+    sessionStorage.historypushDataCache = JSON.stringify(dataCache);
+    sessionStorage.historypushPageIndexCache = pageIndex;
+    sessionStorage.historypushHasNextPage = hasNextPage;
+    sessionStorage.superSearch_iosNoRefresh = 'detail'
+    sessionStorage.hasFreeMore = $(".seeMore").is(":visible").toString()
+  }
+}
+
+function removeSessionStorage() {
+  sessionStorage.removeItem("historypushDataCache");
+  sessionStorage.removeItem("historypushPageIndexCache");
+  sessionStorage.removeItem("historypushScrollTop");
+  sessionStorage.removeItem("historypushHasNextPage");
+  sessionStorage.removeItem("closeAdvert");
+  sessionStorage.removeItem("hasFreeMore");
+}
+
+function setVisitedIndex(obj, eid) {
+  if (obj.find("a.bt").hasClass("visited") || obj.hasClass("visited")) {
+    return;
+  }
+  obj.find("a.bt").addClass("visited");
+  obj.find("span.xh").addClass("visited");
+  var vsid = obj.find("a.bt").attr("list_index");
+  if (vsid) {
+    $.ajax({
+      type: 'post',
+      url: '/publicapply/subscribe/setRead?t=' + new Date().getTime(),
+      data: {vsid: vsid},
+      async: false
+    });
+  }
+}
+
+//
+var ajaxFlag = true;
+
+function ajaxFun(time, area, city, subscopeclass, buyerclass, key, subtype, file, price) {
+  if (historyVt == 's') {
+    $(".set_keyword").hide();
+  }
+  if (!ajaxFlag) {
+    return
+  }
+  ajaxFlag = false;
+  $("#loading").show();
+  if (!time && !area && !city && !subscopeclass && !buyerclass && !key && !subtype) {
+    afterJyObjInit();
+  }
+  if (isPageShow == '1') {
+    localStorage.removeItem('hideBottom')
+    JyObj.hiddenBottom("0");
+  }
+  // console.log(historyVt, 'historyVt');
+  console.log('ajaxFun-ajax', file, price);
+  $.ajax({
+    type: 'post',
+    url: '/publicapply/subscribe/historyPush?t=' + new Date().getTime(),
+    data: {
+      selectTime: time,
+      area: area,
+      city: city,
+      subscopeclass: subscopeclass,
+      pageNum: 1,
+      buyerclass: buyerclass,
+      key: key.replace(/\s/g, ','),
+      subtype: subtype,
+      vt: historyVt,
+      fileExists: file,
+      price: price
+    },
+    async: false,
+    dataType: 'json',
+    success: function (data) {
+      if (!data.data) {
+        hasNoData
+        return
+      }
+      pageIndex = 2;
+      lasttime = data.thistime;
+      firstPage = data.data;
+      hasNextPage = data.hasNextPage;
+      vm.hasNextPage = data.hasNextPage
+      userId = data.userId;
+      ajaxFlag = true;
+      if (!data.haskey) {
+        if (historyVt == 'm' && vm.rootInfo.isSubCount) {
+          $(".set_keyword").hide();
+        } else if (historyVt == 's') {
+          $(".set_keyword").hide();
+        } else {
+          $(".set_keyword").show();
+        }
+      } else {
+        $(".set_keyword").hide();
+      }
+      if (time == undefined || time == "") {
+        sessionStorage.removeItem(userId + "_searchTime");
+      } else {
+        sessionStorage.setItem(userId + "_searchTime", time);
+      }
+      if (!area) {
+        sessionStorage.removeItem(userId + "_selectArea");
+      }
+      if (!city) {
+        sessionStorage.removeItem(userId + "_selectCity");
+      }
+      if (!selectFile) {
+        sessionStorage.removeItem(userId + "_selectFile");
+      }
+      if (!selectMoney) {
+        sessionStorage.removeItem(userId + "selectMoney");
+      }
+    },
+    error: function (xhr, type) {
+      ajaxFlag = true;
+      hasNoData();
+    }
+  });
+  dataCache = firstPage;
+  if (firstPage.length == 0) {
+    if ($(".findnull").css("display") == "block") {
+      $(".findnull").css("display", "none");
+    }
+    hasNoData();
+    return;
+  }
+  $("#list").html("");
+  count = 0;
+  structureHtml(firstPage, true);
+  setTimeout(function () {
+    $(".listcontent").scrollTop(0);
+  }, 300);
+  //================================
+  if (hasNextPage) {
+    setTimeout(function () {
+      wxflag = $('.listcontent').dropload({
+        scrollArea: $(".listcontent"),
+        //   loadUpFn: function (me) {
+        //       //loadDatas(me,-1);
+        //       reloadFirstPage(me);//下拉刷新更新订阅词
+        //   },
+        loadDownFn: function (me) {
+          loadDatas(me, lasttime);
+        }
+      });
+    }, 800);
+  } else {
+    wxflag = $('.listcontent').dropload({
+      scrollArea: $(".listcontent"),
+      //   loadUpFn: function (me) {
+      //       loadDatas(me, -1);
+      //   },
+      loadDownFn: function (me) {
+        loadDatas(me, lasttime);
+      }
+    });
+    noMoreData(wxflag);
+  }
+}
+
+//免费用户关键词设置
+function tokeyset() {
+  setSessionStorage()
+  // 如果没有订阅过,先去引导页(keyset/index会被重定向到引导页)
+  // 判断当前世大会员还是超级订阅
+  let switchProduct = sessionStorage.getItem('switch-product')
+  if (switchProduct) {
+    if (switchProduct == 'bigmember') {
+      window.location.href = '/jyapp/vipsubscribe/toSetKeyWordPage?vSwitch=m';
+    } else if (switchProduct == 'entniche') {
+      window.location.href = '/page_entniche_new/page/subsetting/keyWord.html'
+    } else {
+      if (isInTSguide) {
+        window.location.href = '/jyapp/wxkeyset/keyset/index';
+      } else {
+        if (myInfo.haskey) {
+          window.location.href = '/jyapp/wxkeyset/keyset/index';
+        } else {
+          if (myInfo.userType == "vip") {
+            window.location.href = '/jyapp/vipsubscribe/toSetKeyWordPage'
+          } else {
+            //window.location.href = '/jyapp/vipsubscribe/toSetKeyWordPage'
+            window.location.href = '/jyapp/vipsubscribe/toSubVipSetPage';
+          }
+        }
+      }
+    }
+  } else {
+    if (isInTSguide) {
+      window.location.href = '/jyapp/wxkeyset/keyset/index';
+    } else {
+      if (myInfo.haskey) {
+        window.location.href = '/jyapp/wxkeyset/keyset/index';
+      } else {
+        if (myInfo.userType == "vip") {
+          window.location.href = '/jyapp/vipsubscribe/toSetKeyWordPage'
+        } else {
+          //window.location.href = '/jyapp/vipsubscribe/toSetKeyWordPage'
+          window.location.href = '/jyapp/vipsubscribe/toSubVipSetPage';
+        }
+      }
+    }
+  }
+
+}
+
+// 清除超级订阅购买、续费、升级页面相关的优惠券、商品规格缓存
+sessionStorage.removeItem('vip-cur-select-coupon')
+sessionStorage.removeItem('$select-coupon')
+sessionStorage.removeItem('vip-cur-select-size')
+
+//介绍页
+function tointroducepage() {
+  setSessionStorage();
+  window.location.href = "/jyapp/vipsubscribe/introducePage";
+}
+
+//我的企业列表
+function toEntNichePage() {
+  setSessionStorage();
+  window.location.href = "/page_entniche_new/home";
+}
+
+//vip设置
+function tosetpage() {
+  setSessionStorage();
+  window.location.href = "/jyapp/vipsubscribe/toSubVipSetPage?vSwitch=v";
+}
+
+//vip关键词设置
+function tosetkeyspage() {
+  setSessionStorage();
+  window.location.href = "/jyapp/vipsubscribe/toSetKeyWordPage";
+}
+
+//续费
+function torepay() {
+  setSessionStorage();
+  // window.location.href = "/jyapp/vipsubscribe/vipsubscribe_renew";
+  window.location.href = "/jy_mobile/common/order/create/svip?type=renew";
+}
+
+//购买
+function topay() {
+  setSessionStorage();
+  // window.location.href = "/jyapp/vipsubscribe/vipsubscribe_new";
+  window.location.href = "/jy_mobile/common/order/create/svip?type=buy";
+}
+
+function updateReportStatus(tip) {
+  $.post("/subscribepay/report/tipover?t=" + new Date().getTime(), {type: productType == 2 ? "member" : "vip"}, function (r) {
+    if (tip) {
+      if (productType == 2) {//大会员
+        if (tip.type == 2) { //周
+          window.location.href = "/jyapp/big/page/report_detail_week?start=" + tip.startdate + "&end=" + tip.enddate + "&pushcount=" + tip.pushcount + "&type=member";
+        } else {//月
+          window.location.href = "/jyapp/big/page/report_detail_month?start=" + tip.startdate + "&end=" + tip.enddate + "&pushcount=" + tip.pushcount + "&type=member";
+        }
+      } else {//超级订阅
+        window.location.href = "/vipreport/page/reportdetail.html?start=" + tip.startdate + "&end=" + tip.enddate + "&pushcount=" + tip.pushcount + "&type=vip";
+      }
+    }
+  });
+}
+
+function afterJyObjInit() {
+  try {
+    JyObj.hideRedSpotOnMenu("subscribe");
+  } catch (e) {
+  }
+}
+
+function iphoneXInit() {
+  $(".app-layout-content-b").css("top", "89px");
+}
+
+
+function weuiDialog() {
+  weui.dialog({
+    title: '提示信息',
+    content: '您未设置关键词<br/>设置后接收信息更精确',
+    className: 'jymobile-setting-dialog',// 设置弹框的类名
+    buttons: [
+      {
+        label: '去设置',
+        type: 'primary',
+        onClick: function () {
+          // console.log('确定')
+          tosetkeyspage();
+        }
+      },
+      {
+        label: '取消',
+        type: 'default',
+        onClick: function () {
+          console.log('取消')
+        }
+      }
+    ]
+  });
+}
+
+$('.open_remind .icon-chahao').on('click', function () {
+  $('.open_remind').hide()
+})
+
+//禁止默认行为方法
+function stopScroll(e) {
+  e.preventDefault()
+}
+
+//用户合并
+$(".dialog_alert .close").on("click", function () {
+  localStorage.canshowother = true
+  $(".dialog_alert").hide()
+})
+$(".dialog_alert .dialog_ft").on("click", function () {
+  localStorage.canshowother = true
+  window.location.href = '/page_entniche/page/user/account_merge.html'
+})
+
+//关闭 其他采购单位行业 弹窗
+function close_other() {
+  $(".jy-alert-other").hide();
+}
+
+//
+$(function () {
+  $('#list').on('tap longTap', '.tslist', function (e) {
+    var tempS = $(this).addClass("hover")
+    setTimeout(function () {
+      tempS.removeClass('hover')
+    }, 50)
+  })
+  try {
+    document.querySelector('.screen').addEventListener('touchmove', stopScroll, {passive: false});
+    document.querySelector('.tab_left').addEventListener('touchmove', stopScroll, {passive: false});
+    document.querySelector('.tab_right').addEventListener('touchmove', stopScroll, {passive: false});
+    document.querySelector('.handle_menu').addEventListener('touchmove', stopScroll, {passive: false});
+  } catch (e) {
+  }
+  if (firstTime != "" && firstTime != null) {
+    date = formatDate(firstTime / 1000, "1");
+  }
+
+  // 关闭设置弹窗
+  $('#close_set').on('click', function () {
+    $('.set_keyword').hide()
+  })
+  $('#close_renew').on('click', function () {
+    $('.renew_toast').hide()
+  })
+  $('#_close_renew').on('click', function () {
+    $('._renew_toast').hide()
+  })
+  $('#nv_close_renew').on('click', function () {
+    localStorage.setItem("nv_vip_" + userId, "T");
+    $('.nv_renew_toast').hide()
+  })
+
+})
+var mergedlist = []
+var merge_industry = ["国土", "林业", "环保", "卫生", "工商", "质监", "食药", "安监", "地震", "公安", "文化", "旅游", "银监", "保监"]
+
+function checkmerge(state) {
+  if (checkindustry(state)) {
+    var tips = "<span style='font-size:15px;font-family:PingFang SC;font-weight:bold;color:rgba(29,29,29,1);opacity:1;'>随着政府机构改革和职能转变工作深入推进,部分采购单位行业与现实不一致,为了提高订阅推送数据的准确性,剑鱼标讯需要针对采购单位行业名称进行优化。</span><br><span style='font-size:13px;font-family:PingFang SC;font-weight:400;color:rgba(104,104,104,1);opacity:1;'>采购单位名称的调整不影响所购买的采购单位数量,您仍可按需调整。<br><br>您订阅的:<br></span>"
+    var hasMerged = isread
+    var s_count = h_count = m_count = p_count = cultural_count = CBRC_count = t_count = 0
+    var nature_source = ["国土", "林业"];
+    var health_commission = ["卫生"]
+    var market_supervision = ["工商", "质监", "食药"]
+    var contingency_management = ["安监", "地震", "公安"]
+    var cultural_tourism = ["文化", "旅游"]
+    var CBRC = ["银监", "保监"]
+    var ecological_environment = ["环保"]
+
+    state.forEach(function (item, index) {
+      if (merge_industry.indexOf(item) > -1) {
+        if (item == "国土" || item == "林业") {
+          mergedlist.push("自然资源")
+          // hasMerged = true
+          nature_source = Highlight(nature_source, item)
+          s_count++
+        } else if (item == "环保") {
+          mergedlist.push("生态环境")
+          // hasMerged = true
+          ecological_environment = Highlight(ecological_environment, item)
+          h_count++
+
+        } else if (item == "卫生") {
+          mergedlist.push("卫健委")
+          // hasMerged = true
+          health_commission = Highlight(health_commission, item)
+          p_count++
+        } else if (item == "工商" || item == "质监" || item == "食药") {
+          mergedlist.push("市场监管")
+          // hasMerged = true
+
+          market_supervision = Highlight(market_supervision, item)
+          m_count++
+        } else if (item == "地震" || item == "安监" || item == "公安") {
+          if (item !== "公安") {
+            mergedlist.push("应急管理")
+          } else {
+            mergedlist.push("公安")
+          }
+          // hasMerged = true
+          contingency_management = Highlight(contingency_management, item)
+          t_count++
+        } else if (item == "文化" || item == "旅游") {
+          mergedlist.push("文旅")
+          // hasMerged = true
+          cultural_tourism = Highlight(cultural_tourism, item)
+          cultural_count++
+        } else if (item == "银监" || item == "保监") {
+          mergedlist.push("银保监")
+          // hasMerged = true
+          CBRC = Highlight(CBRC, item)
+          CBRC_count++
+        }
+      } else {
+        mergedlist.push(item)
+      }
+    })
+    if (s_count >= 1) {
+      tips += nature_source.join('、') + " 合并为 【自然资源】<br>"
+    }
+    if (h_count >= 1) {
+      tips += ecological_environment.join('、') + " 整合其他部门部分职能后更改为 【生态环境】<br>"
+    }
+    if (p_count >= 1) {
+      tips += health_commission.join('、') + " 变更为 【卫健委】<br>"
+    }
+    if (m_count >= 1) {
+      tips += market_supervision.join('、') + " 合并为 【市场监管】<br>"
+    }
+    if (t_count >= 1) {
+      tips += contingency_management.join('、') + "中的消防 合并为 【应急管理】<br>"
+    }
+    if (cultural_count >= 1) {
+      tips += cultural_tourism.join('、') + " 合并为 【文旅】<br>"
+    }
+    if (CBRC_count >= 1) {
+      tips += CBRC.join('、') + " 合并为 【银保监】<br>"
+    }
+    if (!hasMerged) {
+      $("#merge_content").html(tips)
+      $("#merge_dialog").show()
+    }
+  }
+
+}
+
+function acceptchange() {
+  var q = removeDuplicatedItem(mergedlist)
+  $.post("/subscribepay/vipsubscribe/mergeIndustry", {"industry": q.toString(), "isread": true}, function (r) {
+    if (r.success) {
+      console.log("行业合并成功")
+    } else {
+      console.log("行业合并失败")
+    }
+  })
+  $("#merge_dialog").hide()
+}
+
+function Highlight(a_list, key) {
+  a_list.forEach(function (item, index) {
+    if (item == key) {
+      var m = "<span style='color:red'>" + item + "</span>"
+      a_list[index] = m
+
+    }
+  })
+  return a_list
+}
+
+function removeDuplicatedItem(ar) {
+  var ret = [];
+
+  for (var i = 0, j = ar.length; i < j; i++) {
+    if (ret.indexOf(ar[i]) === -1) {
+      ret.push(ar[i]);
+    }
+  }
+
+  return ret;
+}
+
+function checkindustry(industry) {
+  var isinclude = false
+  if (!industry) {
+    return isinclude
+  }
+  industry.forEach(function (item, index) {
+    if (merge_industry.indexOf(item) > -1) {
+      isinclude = true
+      return
+    }
+  })
+  return isinclude
+}

+ 338 - 0
src/web/staticres/common-module/history-push/local/dropload.js

@@ -0,0 +1,338 @@
+/**
+ * dropload
+ * 西门(http://ons.me/526.html)
+ * 0.9.1(161205)
+ */
+
+;(function($){
+    'use strict';
+    var win = window;
+    var doc = document;
+    var $win = $(win);
+    var $doc = $(doc);
+    $.fn.dropload = function(options){
+		if(options.scrollArea == window.top){
+			win = window.top;
+			$win = $(win);
+			doc = window.top.document;
+		    $doc = $(doc);
+		}
+        return new MyDropLoad(this, options);
+    };
+    var MyDropLoad = function(element, options){
+        var me = this;
+        me.$element = element;
+        // 上方是否插入DOM
+        me.upInsertDOM = false;
+        // loading状态
+        me.loading = false;
+        // 是否锁定
+        me.isLockUp = false;
+        me.isLockDown = false;
+        // 是否有数据
+        me.isData = true;
+        me._scrollTop = 0;
+        me._threshold = 0;
+		//默认加载下方
+		me.direction = 'up';
+        me.init(options);
+    };
+
+    // 初始化
+    MyDropLoad.prototype.init = function(options){
+        var me = this;
+        me.opts = $.extend(true, {}, {
+            scrollArea : me.$element,                                            // 滑动区域
+            domUp : {                                                            // 上方DOM
+                domClass   : 'dropload-up',
+                domRefresh : '<div class="dropload-refresh">↓下拉刷新</div>',
+                domUpdate  : '<div class="dropload-update">↑释放更新</div>',
+                domLoad    : '<div class="dropload-load"><span class="loading"></span>加载中...</div>'
+            },
+            domDown : {                                                          // 下方DOM
+                domClass   : 'dropload-down',
+                domRefresh : '<div class="dropload-refresh">↑上拉加载更多</div>',
+                domLoad    : '<div class="dropload-load"><span class="loading"></span>加载中...</div>',
+                domNoData  : '<div class="dropload-noData">没有更多了</div>'
+            },
+            autoLoad : true,                                                     // 自动加载
+            distance : 50,                                                       // 拉动距离
+            threshold : '',                                                      // 提前加载距离
+            loadUpFn : '',                                                       // 上方function
+            loadDownFn : ''                                                      // 下方function
+        }, options);
+		//先移除
+		me.$element.find('.'+me.opts.domUp.domClass).remove();
+		me.$element.find('.'+me.opts.domDown.domClass).remove();
+        // 如果加载下方,事先在下方插入DOM
+        if(me.opts.loadDownFn != ''){
+            me.$element.append('<div class="'+me.opts.domDown.domClass+'">'+me.opts.domDown.domRefresh+'</div>');
+            me.$domDown = $('.'+me.opts.domDown.domClass);
+        }
+
+        // 计算提前加载距离
+        if(!!me.$domDown && me.opts.threshold === ''){
+            // 默认滑到加载区2/3处时加载
+            me._threshold = Math.floor(me.$domDown.height()*1/3);
+        }else{
+            me._threshold = me.opts.threshold;
+        }
+
+        // 判断滚动区域
+        if(me.opts.scrollArea == win){
+            me.$scrollArea = $win;
+            // 获取文档高度
+            me._scrollContentHeight = $doc.height();
+            // 获取win显示区高度  —— 这里有坑
+            me._scrollWindowHeight = doc.body.clientHeight;
+			//alert(me._scrollContentHeight+"---"+me._scrollWindowHeight)
+        }else{
+            me.$scrollArea = me.opts.scrollArea;
+            me._scrollContentHeight = me.$element[0].scrollHeight;
+            me._scrollWindowHeight = doc.body.clientHeight;
+        }
+        fnAutoLoad(me);
+
+        // 窗口调整
+        $win.off('resize').on('resize',function(){
+			//移动端数据导出改 --> 软键盘弹起改变窗口高度问题
+			return;
+			if(win != window){
+				return;
+			}
+            clearTimeout(me.timer);
+            me.timer = setTimeout(function(){
+                if(me.opts.scrollArea == win){
+                // 重新获取win显示区高度
+                me._scrollWindowHeight = win.innerHeight;
+                }else{
+                    me._scrollWindowHeight = me.$element.height();
+                }
+                fnAutoLoad(me);
+            },150);
+            
+        });
+
+        // 绑定触摸
+        me.$element.off('touchstart').on('touchstart',function(e){
+            if(!me.loading){
+                fnTouches(e);
+                fnTouchstart(e, me);
+            }
+        });
+        me.$element.off('touchmove').on('touchmove',function(e){
+            if(!me.loading){
+                fnTouches(e, me);
+                fnTouchmove(e, me);
+            }
+        });
+        me.$element.off('touchend').on('touchend',function(){
+            if(!me.loading){
+                fnTouchend(me);
+            }
+        });
+
+        // 加载下方
+        me.$scrollArea.off('scroll').on('scroll',function(){
+			if(typeof(window.top.scrollTop) != "undefined"){
+				window.top.scrollTop = $(this).scrollTop();
+			}
+            me._scrollTop = me.$scrollArea.scrollTop();
+
+            // 滚动页面触发加载数据
+			//console.info(me._scrollContentHeight +"--"+ me._threshold+"--"+me._scrollWindowHeight +"--"+ me._scrollTop)
+            if(me.opts.loadDownFn != '' && !me.loading && !me.isLockDown && (me._scrollContentHeight - me._threshold) <= (me._scrollWindowHeight + me._scrollTop)){
+                loadDown(me);
+            }
+        });
+    };
+
+    // touches
+    function fnTouches(e){
+        if(!e.touches){
+            e.touches = e.originalEvent.touches;
+        }
+    }
+
+    // touchstart
+    function fnTouchstart(e, me){
+        me._startY = e.touches[0].pageY;
+        // 记住触摸时的scrolltop值
+        me.touchScrollTop = me.$scrollArea.scrollTop();
+    }
+
+    // touchmove
+    function fnTouchmove(e, me){
+        me._curY = e.touches[0].pageY;
+        me._moveY = me._curY - me._startY;
+
+        if(me._moveY > 0){
+            me.direction = 'down';
+        }else if(me._moveY < 0){
+            me.direction = 'up';
+        }
+
+        var _absMoveY = Math.abs(me._moveY);
+
+        // 加载上方
+        if(me.opts.loadUpFn != '' && me.touchScrollTop <= 0 && me.direction == 'down' && !me.isLockUp){
+            e.preventDefault();
+
+            me.$domUp = $('.'+me.opts.domUp.domClass);
+            // 如果加载区没有DOM
+            if(!me.upInsertDOM){
+                me.$element.prepend('<div class="'+me.opts.domUp.domClass+'"></div>');
+                me.upInsertDOM = true;
+            }
+            
+            fnTransition(me.$domUp,0);
+
+            // 下拉
+            if(_absMoveY <= me.opts.distance){
+                me._offsetY = _absMoveY;
+                // todo:move时会不断清空、增加dom,有可能影响性能,下同
+                me.$domUp.html(me.opts.domUp.domRefresh);
+            // 指定距离 < 下拉距离 < 指定距离*2
+            }else if(_absMoveY > me.opts.distance && _absMoveY <= me.opts.distance*2){
+                me._offsetY = me.opts.distance+(_absMoveY-me.opts.distance)*0.5;
+                me.$domUp.html(me.opts.domUp.domUpdate);
+            // 下拉距离 > 指定距离*2
+            }else{
+                me._offsetY = me.opts.distance+me.opts.distance*0.5+(_absMoveY-me.opts.distance*2)*0.2;
+            }
+
+            me.$domUp.css({'height': me._offsetY});
+        }
+    }
+
+    // touchend
+    function fnTouchend(me){
+        var _absMoveY = Math.abs(me._moveY);
+        if(me.opts.loadUpFn != '' && me.touchScrollTop <= 0 && me.direction == 'down' && !me.isLockUp){
+            fnTransition(me.$domUp,300);
+
+            if(_absMoveY > me.opts.distance){
+                me.$domUp.css({'height':me.$domUp.children().height()});
+                me.$domUp.html(me.opts.domUp.domLoad);
+                me.loading = true;
+                me.opts.loadUpFn(me);
+            }else{
+                me.$domUp.css({'height':'0'}).on('webkitTransitionEnd mozTransitionEnd transitionend',function(){
+                    me.upInsertDOM = false;
+                    $(this).remove();
+                });
+            }
+            me._moveY = 0;
+        }
+    }
+
+    // 如果文档高度不大于窗口高度,数据较少,自动加载下方数据
+    function fnAutoLoad(me){
+        if(me.opts.loadDownFn != '' && me.opts.autoLoad){
+			//alert(me._scrollContentHeight +"----"+  me._threshold+"----"+ me._scrollWindowHeight)
+            if((me._scrollContentHeight - me._threshold) <= me._scrollWindowHeight){
+                loadDown(me);
+            }
+        }
+    }
+
+    // 重新获取文档高度
+    function fnRecoverContentHeight(me){
+        if(me.opts.scrollArea == win){
+            me._scrollContentHeight = $doc.height();
+			//alert(me._scrollContentHeight +"----"+  me._threshold+"----"+ me._scrollWindowHeight)
+        }else{
+            me._scrollContentHeight = me.$element[0].scrollHeight;
+        }
+    }
+
+    // 加载下方
+    function loadDown(me){
+        me.direction = 'up';
+        me.$domDown.html(me.opts.domDown.domLoad);
+        me.loading = true;
+        me.opts.loadDownFn(me);
+    }
+
+    // 锁定
+    MyDropLoad.prototype.lock = function(direction){
+        var me = this;
+        // 如果不指定方向
+        if(direction === undefined){
+            // 如果操作方向向上
+            if(me.direction == 'up'){
+                me.isLockDown = true;
+            // 如果操作方向向下
+            }else if(me.direction == 'down'){
+                me.isLockUp = true;
+            }else{
+                me.isLockUp = true;
+                me.isLockDown = true;
+            }
+        // 如果指定锁上方
+        }else if(direction == 'up'){
+            me.isLockUp = true;
+        // 如果指定锁下方
+        }else if(direction == 'down'){
+            me.isLockDown = true;
+            // 为了解决DEMO5中tab效果bug,因为滑动到下面,再滑上去点tab,direction=down,所以有bug
+            me.direction = 'up';
+        }
+    };
+
+    // 解锁
+    MyDropLoad.prototype.unlock = function(){
+        var me = this;
+        // 简单粗暴解锁
+        me.isLockUp = false;
+        me.isLockDown = false;
+        // 为了解决DEMO5中tab效果bug,因为滑动到下面,再滑上去点tab,direction=down,所以有bug
+        me.direction = 'up';
+    };
+
+    // 无数据
+    MyDropLoad.prototype.noData = function(flag){
+        var me = this;
+        if(flag === undefined || flag == true){
+            me.isData = false;
+        }else if(flag == false){
+            me.isData = true;
+        }
+    };
+
+    // 重置
+    MyDropLoad.prototype.resetload = function(){
+        var me = this;
+		if(!me.upInsertDOM){
+			me.direction = 'up';
+		}
+        if(me.direction == 'down' && me.upInsertDOM){
+            me.$domUp.css({'height':'0'}).on('webkitTransitionEnd mozTransitionEnd transitionend',function(){
+                me.loading = false;
+                me.upInsertDOM = false;
+                $(this).remove();
+                fnRecoverContentHeight(me);
+            });
+        }else if(me.direction == 'up'){
+            me.loading = false;
+            // 如果有数据
+            if(me.isData){
+                // 加载区修改样式
+                me.$domDown.html(me.opts.domDown.domRefresh);
+                fnRecoverContentHeight(me);
+                fnAutoLoad(me);
+            }else{
+                // 如果没数据
+                me.$domDown.html(me.opts.domDown.domNoData);
+            }
+        }
+    };
+
+    // css过渡
+    function fnTransition(dom,num){
+        dom.css({
+            '-webkit-transition':'all '+num+'ms',
+            'transition':'all '+num+'ms'
+        });
+    }
+})(window.Zepto || window.jQuery);

+ 360 - 0
src/web/staticres/common-module/history-push/local/layout.css

@@ -0,0 +1,360 @@
+* {
+  -webkit-touch-callout:none;
+  -khtml-user-select:none;
+  -moz-user-select:none;
+  -ms-user-select:none;
+  user-select:none;
+}
+a,input,button{
+	outline: none !important;
+	-webkit-tap-highlight-color: rgba(255, 255, 255, 0) !important;
+	-webkit-focus-ring-color: rgba(0, 0, 0, 0) !important;
+}
+/*****app 第一版 布局*****/
+.app-layout-header{
+	line-height: 44px;
+    background-color: #FFFFFF;
+    text-align: center;
+    border-bottom: 1px solid #E6E6E6;
+    font-size: 17px;
+    position: absolute;
+    padding-top: 20px;
+    z-index: 99999;
+    left: 0;
+    right: 0;
+    top: 0;
+	color: #444444;
+}
+.app-layout-header>.app-back{
+	position: absolute;
+    font-size: 19px;
+    padding-top: 20px;
+    padding-left: 11px;
+	padding-right: 40px;
+    padding-bottom: 7px;
+    left: 0px;
+    top: 18px;
+	color: #444444;
+}
+.app-layout-content-a,.app-layout-content-b{
+    position: absolute;
+    top: 44px;
+    padding-top: 20px;
+    overflow-y: auto;
+    bottom: 0px;
+    left: 0px;
+    right:0px;
+    -webkit-overflow-scrolling:touch;
+}
+.app-layout-content-a{
+    bottom: 65px;
+}
+.app-layout-footer {
+  width: 100%;
+  background: #fff;
+  position: fixed;
+  left: 0;
+  bottom: 0;
+  z-index: 99;
+  border-top: 1px solid #E6E6E6;
+  box-sizing: border-box;
+}
+.app-layout-footer ul {
+  width: 100%;
+}
+
+.app-layout-footer ul li {
+  width: 25%;
+  float: left;
+  text-align: center;
+  color: #888888;
+  height: 49px;
+  position: relative;
+}
+
+.app-layout-footer ul li span {
+  font-size: 21px;
+  display: block;
+  width: 100%;
+  text-align: center;
+  margin-top: 10px;
+}
+
+.app-layout-footer ul li p {
+  	margin: 0;
+  	font-size: 10px;
+    position: absolute;
+    left: 0px;
+    right: 0px;
+    text-align: center;
+    bottom: 2px;
+	line-height: initial;
+}
+
+.app-layout-footer ul li.active span {
+  color: #2CB7CA;
+}
+
+.app-layout-footer ul li.active p {
+  color: #2CB7CA;
+}
+.easyalert{
+	position: fixed;
+	background-color: rgba(0,0,0,0.7);
+	top: 50%;
+	color: #fff;
+	z-index: 999;
+	border-radius: 6px;
+	padding: 17px 20px;
+    font-size: 15px;
+	line-height: 22px;
+	max-width: 260px;
+	text-align: center;
+	display: none;
+}
+.easyalert-icon{
+	font-size: 13px;
+	border-radius: 5px;
+	width: 120px;
+	height: 120px;
+	padding: 0px;
+	left: 50%;
+	right: 50%;
+	margin-top: -60px;
+	margin-left: -60px;
+	margin-right: -60px;
+}
+.jyapp-li-active{
+	background-color: #e5e5e8 !important;
+}
+.app-layout-footer .jyapp-icon-sousuo{
+	font-size: 42px;
+    top: -17px;
+    left: -10.5px;
+}
+/******************/
+.easypopup{
+	background-color: rgba(0,0,0,0.7);
+	position: fixed;
+	left: 0px;
+	right: 0px;
+	top: 0px;
+	bottom: 0px;
+	display: none;
+	z-index: 999;
+	letter-spacing: 1px;
+}
+.easypopup>div{
+	background-color: #fff;
+	position: fixed;
+	left: 50%;
+	top: 50%;
+	margin-left: -140px;
+    border-radius: 4px;
+	overflow: hidden;
+	width: 280px;
+}
+.easypopup .easypopup-edit{
+	width: 300px;
+	margin-left: -150px;
+}
+.easypopup .easypopup-header{
+	padding-top: 29px;
+	padding-bottom: 16px;
+	text-align: center;
+	font-size: 17px;
+	color: #1d1d1d;
+}
+.easypopup .easypopup-main .easypopup-content{
+	padding: 0px 20px 18px 20px;
+	color: #686868;
+}
+.easypopup .easypopup-edit .easypopup-content{
+	padding: 0px 15px 18px 15px;
+	color: #686868;
+}
+.easypopup .easypopup-alert .easypopup-content{
+	padding: 38px 20px 24px 20px;
+}
+.easypopup .easypopup-content{
+	text-align: center;
+	font-size: 15px;
+}
+.easypopup .easypopup-edit [type='text']{
+	height: 37px;
+	border-radius: 3px;
+	font-size: 16px;
+	color: #1d1d1d;
+	padding-left: 10px;
+	width: 100%;
+}
+.easypopup .easypopup-edit ::-webkit-input-placeholder {
+    color: #686868;
+}
+.easypopup .easypopup-footer{
+	text-align: center;
+	border-top: 1px solid #E0E0E0;
+	display: table;
+	width: 100%;
+	font-size: 18px;
+}
+.easypopup .easypopup-footer>span{
+	height: 50px;
+	line-height: 50px;
+	display: table-cell;
+	background-color: #fff;
+}
+.easypopup .easypopup-footer>span:last-child{
+	color: #2cb7ca;
+	border-left: 1px solid #E0E0E0;
+}
+.easypopup .easypopup-footer>span:first-child{
+	border-left: none;
+}
+.easypopup .easypopup-alert .easypopup-footer>span{
+	width: 100%;
+}
+
+/*分享好友弹窗*/
+.share {
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  background: rgba(0, 0, 0, 0.6);
+  z-index: 99999;
+  display: none;
+}
+
+.share .shareMain {
+  width: 100%;
+  background: #f4f4f9;
+  position: absolute;
+  left: 0;
+  bottom: 0;
+}
+.share .shareMain ul{
+	background-color: #f4f4f9;
+	height: 120px;
+	padding-top: 32px;
+	box-sizing: border-box;
+}
+.share .shareMain ul li {
+  float: left;
+  text-align: center;
+  margin: 0px 15px;
+}
+
+.share .shareMain ul li span {
+    font-size: 50px;
+}
+
+.share .shareMain ul li span.jyapp-icon-weixin {
+  color: #0ab70e;
+}
+
+.share .shareMain ul li span.jyapp-icon-qq {
+  color: #4cafe9;
+}
+
+.share .shareMain ul li span.jyapp-icon-pengyouquan {
+  color: #a5e537;
+}
+
+.share .shareMain ul li p {
+  font-size: 14px;
+  color: #1D1D1D;
+margin:0px;
+}
+
+.share .shareMain a.shareQx {
+  display: block;
+  height: 50px;
+  line-height: 50px;
+  text-align: center;
+  background: #fff;
+  font-size: 17px;
+color:#1d1d1d;
+}
+.clearfix::after, .clearfix::before {
+    content: "";
+    display: block;
+    height: 0;
+    clear: both;
+    overflow: hidden;
+}
+ul, li, ol {
+    list-style: none;
+}
+.clearfix a, .clearfix strong {
+    color: #1d1d1d;
+}
+.jyapp-icon-weixin:before {
+    content: "\AC";
+}
+.redspot{
+	position: absolute;
+    width: 8px;
+    height: 8px;
+    background: #f12c20;
+    border-radius: 100%;
+}
+/* 统一头部 */
+.jy-app-header.app-layout-header .app-layout-content-a, .app-layout-content-b{
+    top: 21.33333vw;
+    padding-top: 0;
+}
+.jy-app-header.app-layout-header {
+    display: flex;
+    width: 100%;
+    justify-content: space-between;
+    align-items: center;
+}
+.jy-app-header.app-layout-header + .paddingtop {
+    padding-top: 21.33333vw;
+}
+.jy-app-header.app-layout-header >.app-back,.jy-app-header.app-layout-header >.app-back_,.jy-app-header.app-layout-header > .header-share {
+    top: auto;
+    bottom: 0;
+    position: unset;
+    padding: 16px 0;
+    position: relative;
+}
+.jy-app-header.app-layout-header span.app-back.jyapp-icon.jyapp-icon-zuojiantou::after {
+    content: "";
+    display: inline-block;
+    width: 4em;
+    height: 100%;
+    position: absolute;
+    top: 0;
+    left: 0;
+}
+.j-header.jy-app-header {
+    height: 21.33333vw;
+    padding: 10.66667vw 3.2vw 0 3.2vw;
+    font-family: inherit;
+    background: inherit;
+}
+
+.jy-app-header {
+    height: 21.33333vw;
+    padding: 10.66667vw 3.2vw 0 3.2vw;
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+    background: #fff;
+    font-family: Avenir,Helvetica,Arial,sans-serif;
+}
+.jy-app-header .icon-left {}
+.badge-number {
+    font-size: 11px;
+    line-height: 15px;
+    min-width: 15px;
+    color: #fff;
+    background: #FB483D;
+    padding: 0 4px;
+    display: inline-block;
+    text-align: center;
+    white-space: nowrap;
+    border-radius: 40px;
+}

+ 19 - 0
src/web/staticres/common-module/history-push/local/rem.js

@@ -0,0 +1,19 @@
+(function(doc, win) {
+	var docEl = doc.documentElement,
+		resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
+		recalc = function() {
+			var fontSize = RootNodeFontSize();
+			if(fontSize == 0) return;
+			docEl.style.fontSize = fontSize + 'px';
+		};
+	if(!doc.addEventListener) return;
+	win.addEventListener(resizeEvt, recalc, false);
+	doc.addEventListener('DOMContentLoaded', recalc, false);
+})(document, window);
+//获取根节点的font-size
+function RootNodeFontSize(){
+	var clientWidth = document.documentElement.clientWidth;
+	if(!clientWidth) return 0;
+	if(clientWidth > 750) clientWidth = 750;
+	return clientWidth / 7.5;
+}

+ 686 - 659
src/web/staticres/common-module/public/js/utils.js

@@ -21,44 +21,44 @@
    *  参考: 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)));
-        }
+  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;
+  }
+  return fmt;
 }
 /*  挂载到Number原型上,格式化小数用tofixed会造成位数不够补零的情况(处理不让自动补零)
     栗子: 不是number类型的需要转一下
@@ -69,670 +69,697 @@ Date.prototype.pattern = function (fmt) {
         1234.152354.fixed(10)
 */
 Number.prototype.fixed = function(len){
-    len = isNaN(len)?  0 : len
-    var num = Math.pow(10,len)
-    return Math.round(this*num) / num
+  len = isNaN(len)?  0 : len
+  var num = Math.pow(10,len)
+  return Math.round(this*num) / num
 }
 
 var popupTip = {
-    setAlert: function (obj) {
-        var html =  `<p class="shiyong_text">试用功能数额已超限,请购买剑鱼大会员正式版</p><button onClick="location.href='/jyapp/big/page/landingPage'" class="shiyong_buy">立即购买</button>`
-        obj.$dialog.alert({
-            className: 'shiyong_common',
-            title: '温馨提醒',
-            message: html,
-            theme: 'round-button',
-            confirmButtonText:'取消,暂不使用',
-            confirmButtonColor:'#2ABED1'
-        }).then(() => {
-            // on close
-        });
-    }
+  setAlert: function (obj) {
+    var html =  `<p class="shiyong_text">试用功能数额已超限,请购买剑鱼大会员正式版</p><button onClick="location.href='/jyapp/big/page/landingPage'" class="shiyong_buy">立即购买</button>`
+    obj.$dialog.alert({
+      className: 'shiyong_common',
+      title: '温馨提醒',
+      message: html,
+      theme: 'round-button',
+      confirmButtonText:'取消,暂不使用',
+      confirmButtonColor:'#2ABED1'
+    }).then(() => {
+      // on close
+    });
+  }
 }
 
 var versionChangeLog = {
-    '0.0.1': 'init',
-    '0.0.2': 'utils.dateFromNow 函数逻辑修改,具体修改内容查看函数注释'
+  '0.0.1': ['init'],
+  '0.0.2': ['utils.dateFromNow 函数逻辑修改,具体修改内容查看函数注释'],
+  '0.0.3': ['utils.formatMoney 新增不使用,分割返回值的选项'],
 }
 
-var utils = {
-    // utils版本号
-    version: '0.0.2',
-    isWeiXinBrowser: navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1,
-    isAndroid: navigator.userAgent.toLowerCase().indexOf('android') !== -1,
-    isIos: /iphone|ipod|ipad|ios/.test(navigator.userAgent.toLowerCase()),
-    // 传入你要获取的参数的名字
-    getParam: function (name) {
-        var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
-        var r = window.location.search.substr(1).match(reg); //获取url中'?'符后的字符串并正则匹配
-
-        var context = '';
-        if (r != null) context = r[2];
-        // 释放变量
-        reg = null;
-        r = null;
-        return context == null || context == '' || context == 'undefined' ? '' : context;
-    },
-    // 取[m, n]随机数
-    getRandomNumber: function (min, max) {
-        return Math.floor(Math.random() * (max - min + 1) + min);
-    },
-    // 获取唯一的uuid
-    // https://www.kancloud.cn/ifeng/js100/622666
-    getRandomUuid: function () {
-        var s = [];
-        var hexDigits = "0123456789abcdef";
-        for (var i = 0; i < 36; i++) {
-            s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
-        }
-        s[14] = "4";  // bits 12-15 of the time_hi_and_version field to 0010
-        s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);  // bits 6-7 of the clock_seq_hi_and_reserved to 01
-        s[8] = s[13] = s[18] = s[23] = "-";
-
-        var uuid = s.join("");
-        return uuid;
-    },
-    // 获取随机字符串
-    // 不传参数则获取长度不固定的字符串
-    getRandomString: function (len) {
-        var randomString = '';
-        if (len) {
-            /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/
-            var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
-            var maxPos = $chars.length;
-            for (i = 0; i < len; i++) {
-                randomString += $chars.charAt(Math.floor(Math.random() * maxPos));
-            }
-        } else {
-            // Math.random()  生成随机数字, eg: 0.123456
-            // .toString(36)  转化成36进制 : "0.4fzyo82mvyr"
-            // .substring(2)  去掉前面两位 : "yo82mvyr"
-            // .slice(-8)  截取最后八位 : "yo82mvyr"
-            randomString = Math.random().toString(36).substring(2)
-        }
-        return randomString;
-    },
-    // FROM: https://www.jianshu.com/p/90ed8b728975
-    // 比较两个对象是否相等
-    // 返回true为相等,返回false为不相等
-    deepCompare: function (x, y) {
-        var i, l, leftChain, rightChain;
-        function compare2Objects(x, y) {
-            var p;
-            // remember that NaN === NaN returns false
-            // and isNaN(undefined) returns true
-            if (isNaN(x) && isNaN(y) && typeof x === 'number' && typeof y === 'number') {
-                return true;
-            }
 
-            // Compare primitives and functions.
-            // Check if both arguments link to the same object.
-            // Especially useful on the step where we compare prototypes
-            if (x === y) {
-                return true;
-            }
+var utils = {
+  // utils版本号
+  version: '0.0.3',
+  isWeiXinBrowser: navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1,
+  isAndroid: navigator.userAgent.toLowerCase().indexOf('android') !== -1,
+  isIos: /iphone|ipod|ipad|ios/.test(navigator.userAgent.toLowerCase()),
+  // 传入你要获取的参数的名字
+  getParam: function (name) {
+    var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
+    var r = window.location.search.substr(1).match(reg); //获取url中'?'符后的字符串并正则匹配
+
+    var context = '';
+    if (r != null) context = r[2];
+    // 释放变量
+    reg = null;
+    r = null;
+    return context == null || context == '' || context == 'undefined' ? '' : context;
+  },
+  // 取[m, n]随机数
+  getRandomNumber: function (min, max) {
+    return Math.floor(Math.random() * (max - min + 1) + min);
+  },
+  // 获取唯一的uuid
+  // https://www.kancloud.cn/ifeng/js100/622666
+  getRandomUuid: function () {
+    var s = [];
+    var hexDigits = "0123456789abcdef";
+    for (var i = 0; i < 36; i++) {
+      s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
+    }
+    s[14] = "4";  // bits 12-15 of the time_hi_and_version field to 0010
+    s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);  // bits 6-7 of the clock_seq_hi_and_reserved to 01
+    s[8] = s[13] = s[18] = s[23] = "-";
+
+    var uuid = s.join("");
+    return uuid;
+  },
+  // 获取随机字符串
+  // 不传参数则获取长度不固定的字符串
+  getRandomString: function (len) {
+    var randomString = '';
+    if (len) {
+      /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/
+      var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
+      var maxPos = $chars.length;
+      for (i = 0; i < len; i++) {
+        randomString += $chars.charAt(Math.floor(Math.random() * maxPos));
+      }
+    } else {
+      // Math.random()  生成随机数字, eg: 0.123456
+      // .toString(36)  转化成36进制 : "0.4fzyo82mvyr"
+      // .substring(2)  去掉前面两位 : "yo82mvyr"
+      // .slice(-8)  截取最后八位 : "yo82mvyr"
+      randomString = Math.random().toString(36).substring(2)
+    }
+    return randomString;
+  },
+  // FROM: https://www.jianshu.com/p/90ed8b728975
+  // 比较两个对象是否相等
+  // 返回true为相等,返回false为不相等
+  deepCompare: function (x, y) {
+    var i, l, leftChain, rightChain;
+    function compare2Objects(x, y) {
+      var p;
+      // remember that NaN === NaN returns false
+      // and isNaN(undefined) returns true
+      if (isNaN(x) && isNaN(y) && typeof x === 'number' && typeof y === 'number') {
+        return true;
+      }
 
-            // Works in case when functions are created in constructor.
-            // Comparing dates is a common scenario. Another built-ins?
-            // We can even handle functions passed across iframes
-            if ((typeof x === 'function' && typeof y === 'function') ||
-                (x instanceof Date && y instanceof Date) ||
-                (x instanceof RegExp && y instanceof RegExp) ||
-                (x instanceof String && y instanceof String) ||
-                (x instanceof Number && y instanceof Number)) {
-                return x.toString() === y.toString();
+      // Compare primitives and functions.
+      // Check if both arguments link to the same object.
+      // Especially useful on the step where we compare prototypes
+      if (x === y) {
+        return true;
+      }
+
+      // Works in case when functions are created in constructor.
+      // Comparing dates is a common scenario. Another built-ins?
+      // We can even handle functions passed across iframes
+      if ((typeof x === 'function' && typeof y === 'function') ||
+        (x instanceof Date && y instanceof Date) ||
+        (x instanceof RegExp && y instanceof RegExp) ||
+        (x instanceof String && y instanceof String) ||
+        (x instanceof Number && y instanceof Number)) {
+        return x.toString() === y.toString();
+      }
+
+      // At last checking prototypes as good as we can
+      if (!(x instanceof Object && y instanceof Object)) {
+        return false;
+      }
+
+      if (x.isPrototypeOf(y) || y.isPrototypeOf(x)) {
+        return false;
+      }
+
+      if (x.constructor !== y.constructor) {
+        return false;
+      }
+
+      if (x.prototype !== y.prototype) {
+        return false;
+      }
+
+      // Check for infinitive linking loops
+      if (leftChain.indexOf(x) > -1 || rightChain.indexOf(y) > -1) {
+        return false;
+      }
+
+      // Quick checking of one object being a subset of another.
+      // todo: cache the structure of arguments[0] for performance
+      for (p in y) {
+        if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {
+          return false;
+        } else if (typeof y[p] !== typeof x[p]) {
+          return false;
+        }
+      }
+
+      for (p in x) {
+        if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {
+          return false;
+        } else if (typeof y[p] !== typeof x[p]) {
+          return false;
+        }
+
+        switch (typeof (x[p])) {
+          case 'object':
+          case 'function':
+
+            leftChain.push(x);
+            rightChain.push(y);
+
+            if (!compare2Objects(x[p], y[p])) {
+              return false;
             }
 
-            // At last checking prototypes as good as we can
-            if (!(x instanceof Object && y instanceof Object)) {
-                return false;
-            }
+            leftChain.pop();
+            rightChain.pop();
+            break;
 
-            if (x.isPrototypeOf(y) || y.isPrototypeOf(x)) {
-                return false;
+          default:
+            if (x[p] !== y[p]) {
+              return false;
             }
+            break;
+        }
+      }
 
-            if (x.constructor !== y.constructor) {
-                return false;
-            }
+      return true;
+    }
 
-            if (x.prototype !== y.prototype) {
-                return false;
-            }
+    if (arguments.length < 1) {
+      return true; //Die silently? Don't know how to handle such case, please help...
+      // throw "Need two or more arguments to compare";
+    }
 
-            // Check for infinitive linking loops
-            if (leftChain.indexOf(x) > -1 || rightChain.indexOf(y) > -1) {
-                return false;
-            }
+    for (i = 1, l = arguments.length; i < l; i++) {
 
-            // Quick checking of one object being a subset of another.
-            // todo: cache the structure of arguments[0] for performance
-            for (p in y) {
-                if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {
-                    return false;
-                } else if (typeof y[p] !== typeof x[p]) {
-                    return false;
-                }
-            }
+      leftChain = []; //Todo: this can be cached
+      rightChain = [];
 
-            for (p in x) {
-                if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {
-                    return false;
-                } else if (typeof y[p] !== typeof x[p]) {
-                    return false;
-                }
-
-                switch (typeof (x[p])) {
-                    case 'object':
-                    case 'function':
-
-                        leftChain.push(x);
-                        rightChain.push(y);
-
-                        if (!compare2Objects(x[p], y[p])) {
-                            return false;
-                        }
-
-                        leftChain.pop();
-                        rightChain.pop();
-                        break;
-
-                    default:
-                        if (x[p] !== y[p]) {
-                            return false;
-                        }
-                        break;
-                }
-            }
+      if (!compare2Objects(arguments[0], arguments[i])) {
+        return false;
+      }
+    }
 
-            return true;
-        }
+    return true;
+  },
+  // 判断变量是否是数组
+  isArray: function (o){
+    return Object.prototype.toString.call(o) == '[object Array]';
+  },
+  // 数组对象根据某一个值进行从小到大冒泡排序
+  // arr 数组
+  // value 字符串
+  bSort: function (arr, value) {
+    var len = arr.length;
+    for (var i = 0; i < len - 1; i++) {
+      for (var j = 0; j < len - 1 - i; j++) {
+        // 相邻元素两两对比,元素交换,大的元素交换到后面
+        if (arr[j][value] > arr[j + 1][value]) {
+          var temp = arr[j];
+          arr[j] = arr[j + 1];
+          arr[j + 1] = temp;
+        }
+      }
+    }
+    return arr;
+  },
+  // 数组去重
+  unique: function (arr) {
+    if (!this.isArray(arr)) {
+      console.log('type error!')
+      return
+    }
+    var array = [];
+    for (var i = 0; i < arr.length; i++) {
+      if (array .indexOf(arr[i]) === -1) {
+        array .push(arr[i])
+      }
+    }
+    return array
+  },
+  // 数组乱序
+  shuffle: function (arr) {
+    var targetArr = JSON.parse(JSON.stringify(arr || []))
+    var hitArr = []
+    var len = targetArr.length
+    for (var i = 0; i < len; i++) {
+      // 获取随机下标
+      var index = Math.floor(Math.random() * targetArr.length)
+      hitArr.push(targetArr[index])
+      targetArr.splice(index, 1)
+    }
+    return hitArr.concat(targetArr)
+  },
+  // 解决ios返回不刷新页面的问题
+  iosBackRefresh: function () {
+    var isPageHide = false;
+    let superSearch_iosNoRefresh = sessionStorage.getItem('superSearch_iosNoRefresh')
+    window.addEventListener('pageshow', function () {
+      if (isPageHide) {
+        // ios从三级页返回不刷新页面
+        if(!superSearch_iosNoRefresh) {
+          location.reload();
+        } else {
+          sessionStorage.removeItem('superSearch_iosNoRefresh')
+        }
+      } else {
+        if(superSearch_iosNoRefresh) {
+          sessionStorage.removeItem('superSearch_iosNoRefresh')
+        }
+      }
+    });
+    window.addEventListener('pagehide', function () {
+      isPageHide = true;
+    });
+  },
+  // ios返回调用函数
+  iosBackInvoke: function (callback) {
+    var isPageHide = false;
+    window.addEventListener('pageshow', function () {
+      if (isPageHide) {
+        callback && callback();
+      }
+    });
+    window.addEventListener('pagehide', function () {
+      isPageHide = true;
+    });
+  },
+  /**
+   * 格式化金钱的函数
+   * @param {number} s 金额必传
+   * @param {int:0-100} n 保留小数的位数(int:0-100)
+   * @param {Boolean} withoutComma 传true则表示不使用,分割返回值
+   */
+  formatMoney: function (s, n, withoutComma) {
+    // 如果不传s或者s为空,则直接返回0
+    if (!s) return 0
+
+    if (n === undefined || n === null) {
+      n = -1
+    } else {
+      n = n > 0 && n <= 20 ? n : 2;
+    }
+    var intS = parseInt(s)
+    var point = '.'
+    var left;
+    var right;
+    s = parseFloat((s + '').replace(/[^\d\.-]/g, ''))
+    // 没传n,默认(如果为整数,则不保留小数。如果为浮点数,则保留两位小数)
+    if (n === -1) {
+      if (s === intS) {
+        n = 0
+        right = ''
+        point = ''
+      } else {
+        n = 2
+        s = s.toFixed(n);
+        right = s.split('.')[1];
+      }
+      s = s + ''
+      left = s.split('.')[0].split('').reverse();
+    } else {
+      s = parseFloat((s + '').replace(/[^\d\.-]/g, '')).toFixed(n) + '';
+      left = s.split('.')[0].split('').reverse();
+      right = s.split('.')[1];
+    }
 
-        if (arguments.length < 1) {
-            return true; //Die silently? Don't know how to handle such case, please help...
-            // throw "Need two or more arguments to compare";
-        }
+    // 默认进行,拼接
+    if (!withoutComma) {
+      t = '';
+      for (i = 0; i < left.length; i++) {
+        t += left[i] + ((i + 1) % 3 == 0 && (i + 1) != left.length ? ',' : '');
+      }
+      return t.split('').reverse().join('') + point + right;
+    }
 
-        for (i = 1, l = arguments.length; i < l; i++) {
+    return left.reverse().join('') + point + right;;
+  },
+  // 金额大写,链接:https://juejin.im/post/5a2a7a5051882535cd4abfce
+  // upDigit(1682) result:"人民币壹仟陆佰捌拾贰元整"
+  // upDigit(-1693) result:"欠壹仟陆佰玖拾叁元整"
+  upPrice: function (n) {
+    var fraction = ['角', '分', '厘']
+    var digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']
+    var unit = [
+      ['元', '万', '亿'],
+      ['', '拾', '佰', '仟']
+    ]
+    // var head = n < 0 ? '欠人民币' : '人民币'
+    var head = ''
+    n = Math.abs(n)
+    var s = ''
+    for (var i = 0; i < fraction.length; i++) {
+      s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '')
+    }
+    s = s || '整'
+    n = Math.floor(n)
+    for (var i = 0; i < unit[0].length && n > 0; i++) {
+      var p = ''
+      for (var j = 0; j < unit[1].length && n > 0; j++) {
+        p = digit[n % 10] + unit[1][j] + p
+        n = Math.floor(n / 10)
+      }
+      s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s
+      // s = p + unit[0][i] + s;
+    }
+    return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整')
+  },
+  // 手机号中间4位加*
+  addConfusionForTel: function (tel) {
+    var reg = /^(\d{3})\d{4}(\d{4})$/
+    return tel.replace(reg, '$1****$2')
+  },
+  // 手机号加空格
+  addSpaceForTel: function (tel) {
+    var regMap = {
+      isConfuse: /^(\d{3})\*{4}(\d{4})$/,
+      addSpace: /^(\d{3})(\d{4})(\d{4})$/
+    }
+    var confusion = regMap.isConfuse.test(tel)
+    if (confusion) {
+      return tel.replace(regMap.isConfuse, '$1 **** $2')
+    } else {
+      return tel.replace(regMap.addSpace, '$1 $2 $3')
+    }
+  },
+  /**
+   * 时间戳转换 多少秒、多少分、多少小时前  昨天以及昨天之前的显示年月日(今年的时间不显示年份)
+   * @param {Date} originTime 要转换的时间对象(或者时间戳)
+   */
+  dateFromNow: function (originTime, useOld) {
+    if (!originTime) return
+    // 原始时间 - 传入的时间戳
+    var originTimeStamp = +new Date(originTime)
+    // 当前时间戳
+    var nowTimeStamp = +new Date()
+    // 时间戳相差多少
+    var diffTimeStamp = nowTimeStamp - originTimeStamp
+
+    var postfix = diffTimeStamp > 0 ? '前' : '后'
+    // 求绝对值 ms(毫秒)
+    var diffTimeStampAbsMs = Math.abs(diffTimeStamp)
+    var diffTimeStampAbsS = Math.round(diffTimeStampAbsMs / 1000)
+
+    // 10天的秒数
+    var days11 = 11 * 24 * 60 * 60
+    // var dataMap = {
+    //     zh: ['年', '个月', '星期', '天', '小时', '分钟', '秒'],
+    //     number: [365*24*60*60, 30*24*60*60, 7*24*60*60, 24*60*60, 60*60, 60, 1]
+    // }
+    var dataMap = {
+      zh: ['天', '小时', '分钟', '秒'],
+      number: [24 * 60 * 60, 60 * 60, 60, 1]
+    }
 
-            leftChain = []; //Todo: this can be cached
-            rightChain = [];
+    var timeString = ''
+    // 10天前
+    var tenDaysAgo = diffTimeStampAbsS > days11
+    // 是否是当天
+    var isCurrentDay = new Date(originTimeStamp).pattern('yyyy.MM.dd') === new Date().pattern('yyyy.MM.dd')
 
-            if (!compare2Objects(arguments[0], arguments[i])) {
-                return false;
-            }
-        }
+    var condition = !isCurrentDay
+    if (useOld) {
+      condition = tenDaysAgo
+    }
 
-        return true;
-    },
-    // 判断变量是否是数组
-    isArray: function (o){
-        return Object.prototype.toString.call(o) == '[object Array]';
-    },
-    // 数组对象根据某一个值进行从小到大冒泡排序
-    // arr 数组
-    // value 字符串
-    bSort: function (arr, value) {
-        var len = arr.length;
-        for (var i = 0; i < len - 1; i++) {
-            for (var j = 0; j < len - 1 - i; j++) {
-                // 相邻元素两两对比,元素交换,大的元素交换到后面
-                if (arr[j][value] > arr[j + 1][value]) {
-                    var temp = arr[j];
-                    arr[j] = arr[j + 1];
-                    arr[j + 1] = temp;
-                }
-            }
-        }
-        return arr;
-    },
-    // 数组去重
-    unique: function (arr) {
-        if (!this.isArray(arr)) {
-            console.log('type error!')
-            return
-        }
-        var array = [];
-        for (var i = 0; i < arr.length; i++) {
-            if (array .indexOf(arr[i]) === -1) {
-                array .push(arr[i])
-            }
-        }
-        return array
-    },
-    // 数组乱序
-    shuffle: function (arr) {
-        var targetArr = JSON.parse(JSON.stringify(arr || []))
-        var hitArr = []
-        var len = targetArr.length
-        for (var i = 0; i < len; i++) {
-            // 获取随机下标
-            var index = Math.floor(Math.random() * targetArr.length)
-            hitArr.push(targetArr[index])
-            targetArr.splice(index, 1)
-        }
-        return hitArr.concat(targetArr)
-    },
-    // 解决ios返回不刷新页面的问题
-    iosBackRefresh: function () {
-        var isPageHide = false;
-        window.addEventListener('pageshow', function () {
-            if (isPageHide) {
-              // ios从三级页返回不刷新页面
-              const superSearch_iosNoRefresh = sessionStorage.getItem('superSearch_iosNoRefresh')
-              if(!superSearch_iosNoRefresh) {
-                location.reload();
-              } else {
-                sessionStorage.removeItem('superSearch_iosNoRefresh')
-              }
-            }
-        });
-        window.addEventListener('pagehide', function () {
-            isPageHide = true;
-        });
-    },
-    // ios返回调用函数
-    iosBackInvoke: function (callback) {
-        var isPageHide = false;
-        window.addEventListener('pageshow', function () {
-            if (isPageHide) {
-                callback && callback();
-            }
-        });
-        window.addEventListener('pagehide', function () {
-            isPageHide = true;
-        });
-    },
-    /**
-     * 格式化金钱的函数
-     * @param {number} s 金额必传
-     * @param {int:0-100} n 保留小数的位数(int:0-100)
-     */
-    formatMoney: function (s, n) {
-        if (n === undefined) {
-            n = -1
-        } else {
-            n = n > 0 && n <= 20 ? n : 2;
-        }
-        var intS = parseInt(s)
-        var point = '.'
-        var left;
-        var right;
-        s = parseFloat((s + '').replace(/[^\d\.-]/g, ''))
-        // 没传n,默认(如果为整数,则不保留小数。如果为浮点数,则保留两位小数)
-        if (n === -1) {
-            if (s === intS) {
-                n = 0
-                right = ''
-                point = ''
-            } else {
-                n = 2
-                s = s.toFixed(n);
-                right = s.split('.')[1];
-            }
-            s = s + ''
-            left = s.split('.')[0].split('').reverse();
-        } else {
-            s = parseFloat((s + '').replace(/[^\d\.-]/g, '')).toFixed(n) + '';
-            left = s.split('.')[0].split('').reverse();
-            right = s.split('.')[1];
-        }
+    if (condition) {
+      // 不是当天,则使用正常日期显示
+      var originDate = new Date(originTimeStamp)
+      var nowDate = new Date()
+      // 是否同年
+      var sameYear = originDate.getFullYear() === nowDate.getFullYear()
+      // 如果是当年,则不显示年
+      var patternString = sameYear ? 'MM-dd' : 'yyyy-MM-dd'
+      timeString = originDate.pattern(patternString)
+    } else {
+      for (var i = 0; i < dataMap.number.length; i++) {
+        var inm = Math.floor(diffTimeStampAbsS / dataMap.number[i])
+        if (inm != 0) {
+          timeString = inm + dataMap.zh[i] + postfix
+          break
+        }
+      }
+    }
+    return timeString
+  },
+  /**
+   * 输入框获取焦点,隐藏底部固定按钮方法
+   * @param {Array} inputs 传入输入框的DOM对象
+   * @param {Object} footer 按键弹起要隐藏的footer的 DOM对象
+   */
+  inputFocusHideFooter: function (inputs, footer) {
+    var isShowBtn = function (f) {
+      if (f) {
+        footer.style.display = ''
+      } else {
+        footer.style.display = 'none'
+      }
+    }
 
-        t = '';
-        for (i = 0; i < left.length; i++) {
-            t += left[i] + ((i + 1) % 3 == 0 && (i + 1) != left.length ? ',' : '');
-        }
+    // ios监听输入框的软键盘弹起和收起事件
+    if (this.isIos) {
+      inputs.forEach(function (item) {
+        item.addEventListener('focus', function () {
+          console.log('IOS 键盘弹出')
+          // IOS 键盘弹起后操作
+          isShowBtn(false)
+        }, false)
+
+        // IOS 键盘收起:IOS 点击输入框以外区域或点击收起按钮,输入框都会失去焦点,键盘会收起,
+        item.addEventListener('blur', function () {
+          console.log('IOS 键盘收起')
+          // IOS 键盘收起后操作
+          isShowBtn(true)
+        })
+      })
+    }
 
-        var money = t.split('').reverse().join('') + point + right;
-        return money;
-    },
-    // 金额大写,链接:https://juejin.im/post/5a2a7a5051882535cd4abfce
-    // upDigit(1682) result:"人民币壹仟陆佰捌拾贰元整"
-    // upDigit(-1693) result:"欠壹仟陆佰玖拾叁元整"
-    upPrice: function (n) {
-        var fraction = ['角', '分', '厘']
-        var digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']
-        var unit = [
-            ['元', '万', '亿'],
-            ['', '拾', '佰', '仟']
-        ]
-        // var head = n < 0 ? '欠人民币' : '人民币'
-        var head = ''
-        n = Math.abs(n)
-        var s = ''
-        for (var i = 0; i < fraction.length; i++) {
-            s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '')
-        }
-        s = s || '整'
-        n = Math.floor(n)
-        for (var i = 0; i < unit[0].length && n > 0; i++) {
-            var p = ''
-            for (var j = 0; j < unit[1].length && n > 0; j++) {
-                p = digit[n % 10] + unit[1][j] + p
-                n = Math.floor(n / 10)
-            }
-            s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s
-            // s = p + unit[0][i] + s;
-        }
-        return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整')
-    },
-    // 手机号中间4位加*
-    addConfusionForTel: function (tel) {
-        var reg = /^(\d{3})\d{4}(\d{4})$/
-        return tel.replace(reg, '$1****$2')
-    },
-    // 手机号加空格
-    addSpaceForTel: function (tel) {
-        var regMap = {
-            isConfuse: /^(\d{3})\*{4}(\d{4})$/,
-            addSpace: /^(\d{3})(\d{4})(\d{4})$/
-        }
-        var confusion = regMap.isConfuse.test(tel)
-        if (confusion) {
-            return tel.replace(regMap.isConfuse, '$1 **** $2')
+    // Android 键盘收起:Android 键盘弹起或收起页面高度会发生变化,以此为依据获知键盘收起
+    if (this.isAndroid) {
+      var clientHeight = document.documentElement.clientHeight || document.body.clientHeight
+      window.addEventListener('resize', function () {
+        var nowClientHeight = document.documentElement.clientHeight || document.body.clientHeight
+        if (clientHeight > nowClientHeight) {
+          // 键盘弹出的事件处理
+          console.log('Android 键盘弹出')
+          isShowBtn(false)
         } else {
-            return tel.replace(regMap.addSpace, '$1 $2 $3')
-        }
-    },
-    /**
-     * 时间戳转换 多少秒、多少分、多少小时前  昨天以及昨天之前的显示年月日(今年的时间不显示年份)
-     * @param {Date} originTime 要转换的时间对象(或者时间戳)
-     */
-    dateFromNow: function (originTime, useOld) {
-        if (!originTime) return
-        // 原始时间 - 传入的时间戳
-        var originTimeStamp = +new Date(originTime)
-        // 当前时间戳
-        var nowTimeStamp = +new Date()
-        // 时间戳相差多少
-        var diffTimeStamp = nowTimeStamp - originTimeStamp
-
-        var postfix = diffTimeStamp > 0 ? '前' : '后'
-        // 求绝对值 ms(毫秒)
-        var diffTimeStampAbsMs = Math.abs(diffTimeStamp)
-        var diffTimeStampAbsS = Math.round(diffTimeStampAbsMs / 1000)
-
-        // 10天的秒数
-        var days11 = 11 * 24 * 60 * 60
-        // var dataMap = {
-        //     zh: ['年', '个月', '星期', '天', '小时', '分钟', '秒'],
-        //     number: [365*24*60*60, 30*24*60*60, 7*24*60*60, 24*60*60, 60*60, 60, 1]
-        // }
-        var dataMap = {
-            zh: ['天', '小时', '分钟', '秒'],
-            number: [24 * 60 * 60, 60 * 60, 60, 1]
-        }
-
-        var timeString = ''
-        // 10天前
-        var tenDaysAgo = diffTimeStampAbsS > days11
-        // 是否是当天
-        var isCurrentDay = new Date(originTimeStamp).pattern('yyyy.MM.dd') === new Date().pattern('yyyy.MM.dd')
-
-        var condition = !isCurrentDay
-        if (useOld) {
-            condition = tenDaysAgo
+          console.log('Android 键盘收起')
+          // 键盘收起的事件处理
+          isShowBtn(true)
         }
+      }, false)
+    }
+  },
+  /**
+   * 通用关键字高亮替换
+   * @param {String} value 要高亮的字符串
+   * @param {String|Array} oldChar 要被替换的字符串(或数组)
+   * @param {String|Array} newChar 要替换成的字符串(或数组)
+   *
+   * 比如:要将 - `剑鱼标讯工具函数` 字符串中的 `工具` 高亮
+   * 则此时 value -> `剑鱼标讯工具函数`
+   *        oldChar -> `工具`
+   *        newChar -> `<span class="highlight-text">工具</span>`
+   *
+   * 批量高亮-----
+   * 比如:要将 - `剑鱼标讯工具函数` 字符串中的 `工具` `剑鱼` 高亮
+   * 则此时 value -> `剑鱼标讯工具函数批量高亮`
+   *        oldChar -> ['工具', '剑鱼']
+   *        newChar -> ['<span class="highlight-text">', '</span>']
+   *
+   *   注意:此时newChar为一个长度为2的数组,数组中为高亮标签的起始标签和结束标签
+   *
+   */
+  replaceKeyword: function (value, oldChar, newChar) {
+    var _this = this
+    if (!oldChar || !newChar) return value
+    // oldChar的字符串数组,用来循环替换
+    var oldCharArr = []
+
+    if (this.isArray(oldChar)) {
+      oldCharArr = oldChar.concat()
+    } else {
+      oldCharArr.push(oldChar)
+    }
 
-        if (condition) {
-            // 不是当天/10天前,则使用正常日期显示
-            var originDate = new Date(originTimeStamp)
-            var nowDate = new Date()
-            // 是否同年
-            var sameYear = originDate.getFullYear() === nowDate.getFullYear()
-            // 如果是当年,则不显示年
-            var patternString = sameYear ? 'MM-dd' : 'yyyy-MM-dd'
-            timeString = originDate.pattern(patternString)
-        } else {
-            for (var i = 0; i < dataMap.number.length; i++) {
-                var inm = Math.floor(diffTimeStampAbsS / dataMap.number[i])
-                if (inm != 0) {
-                    timeString = inm + dataMap.zh[i] + postfix
-                    break
-                }
-            }
-        }
-        return timeString
-    },
-    /**
-     * 输入框获取焦点,隐藏底部固定按钮方法
-     * @param {Array} inputs 传入输入框的DOM对象
-     * @param {Object} footer 按键弹起要隐藏的footer的 DOM对象
-     */
-    inputFocusHideFooter: function (inputs, footer) {
-        var isShowBtn = function (f) {
-            if (f) {
-                footer.style.display = ''
-            } else {
-                footer.style.display = 'none'
+    // 数组去重
+    oldCharArr = this.unique(oldCharArr)
+
+    try {
+      oldCharArr.forEach(function (item) {
+        // 去空格之后为空字符串,则直接跳过当前替换
+        if (item.replace(/\s+/g, '')) {
+          var oc = item
+          oc = oc.replace(/\$/g, '\\$')
+            .replace(/\(/g, '\\(')
+            .replace(/\)/g, '\\)')
+            .replace(/\*/g, '\\*')
+            .replace(/\+/g, '\\+')
+            .replace(/\./g, '\\.')
+            .replace(/\[/g, '\\[')
+            .replace(/\]/g, '\\]')
+            .replace(/\?/g, '\\?')
+            .replace(/\\/g, '\\')
+            .replace(/\//g, '\\/')
+            .replace(/\^/g, '\\^')
+            .replace(/\{/g, '\\{')
+            .replace(/\}/g, '\\}')
+            .replace(/\|/g, '\\|')
+
+          if (_this.isArray(newChar)) {
+            // 批量高亮
+            var tempV = value
+            value = value.replace(new RegExp('(' + oc + ')', 'gmi'), newChar[0] + oc + newChar[1])
+            if (value === tempV && oc.indexOf('+') !== -1) {
+              var splitReg = oc.split('\\+')
+              splitReg.map(function (v) {
+                value = value.replace(new RegExp('('+v+')', 'gmi'), newChar[0] + v + newChar[1])
+              })
             }
-        }
-
-        // ios监听输入框的软键盘弹起和收起事件
-        if (this.isIos) {
-            inputs.forEach(function (item) {
-                item.addEventListener('focus', function () {
-                    console.log('IOS 键盘弹出')
-                    // IOS 键盘弹起后操作
-                    isShowBtn(false)
-                }, false)
-
-                // IOS 键盘收起:IOS 点击输入框以外区域或点击收起按钮,输入框都会失去焦点,键盘会收起,
-                item.addEventListener('blur', function () {
-                    console.log('IOS 键盘收起')
-                    // IOS 键盘收起后操作
-                    isShowBtn(true)
-                })
-            })
-        }
+          } else {
+            // 普通单个高亮
+            value = value.replace(new RegExp('(' + oc + ')', 'gmi'), newChar)
+          }
+        }
+      })
+    } catch (e) {
+      console.log(e)
+      return value
+    }
+    return value
+  },
+  /**
+   * 批量删除sessionStorage中的数据
+   * @param {RegExp} reg 传入一个要匹配的正则表达式
+   */
+  clearBatchSessionStorage: function (reg) {
+    if (sessionStorage) {
+      var sessKeys = Object.keys(sessionStorage)
+      sessKeys.forEach(function (item) {
+        if (reg.test(item)) {
+          sessionStorage.removeItem(item)
+        }
+      })
+    }
+  },
+  /**
+   * 获取图片原始宽高
+   * @param {Image/Object} img
+   * @param {Function} callback
+   */
+  getImgNaturalDimensions: function (img, callback) {
+    var naturalSize = {}
+    if (img.naturalWidth && img.naturalHeight) { // 现代浏览器
+      naturalSize.with = img.naturalWidth
+      naturalSize.height = img.naturalHeight
+    } else { // IE6/7/8
+      var image = new Image()
+      image.src = img.src
+      image.onload = function() {
+        naturalSize.with = image.width
+        naturalSize.height = image.height
+        callback && callback(naturalSize)
+      }
+    }
+    return naturalSize
+  },
+  moneyUnit: function (num, type, lv) {
+    if (num === '' || num == null || num == undefined || isNaN(num)) return ''
+    var levelArr = ['元', '万元', '亿元', '万亿元']
+    if (type === void 0) {
+      type = 'string';
+    }
 
-        // Android 键盘收起:Android 键盘弹起或收起页面高度会发生变化,以此为依据获知键盘收起
-        if (this.isAndroid) {
-            var clientHeight = document.documentElement.clientHeight || document.body.clientHeight
-            window.addEventListener('resize', function () {
-                var nowClientHeight = document.documentElement.clientHeight || document.body.clientHeight
-                if (clientHeight > nowClientHeight) {
-                    // 键盘弹出的事件处理
-                    console.log('Android 键盘弹出')
-                    isShowBtn(false)
-                } else {
-                    console.log('Android 键盘收起')
-                    // 键盘收起的事件处理
-                    isShowBtn(true)
-                }
-            }, false)
-        }
-    },
-    /**
-     * 通用关键字高亮替换
-     * @param {String} value 要高亮的字符串
-     * @param {String|Array} oldChar 要被替换的字符串(或数组)
-     * @param {String|Array} newChar 要替换成的字符串(或数组)
-     *
-     * 比如:要将 - `剑鱼标讯工具函数` 字符串中的 `工具` 高亮
-     * 则此时 value -> `剑鱼标讯工具函数`
-     *        oldChar -> `工具`
-     *        newChar -> `<span class="highlight-text">工具</span>`
-     *
-     * 批量高亮-----
-     * 比如:要将 - `剑鱼标讯工具函数` 字符串中的 `工具` `剑鱼` 高亮
-     * 则此时 value -> `剑鱼标讯工具函数批量高亮`
-     *        oldChar -> ['工具', '剑鱼']
-     *        newChar -> ['<span class="highlight-text">', '</span>']
-     *
-     *   注意:此时newChar为一个长度为2的数组,数组中为高亮标签的起始标签和结束标签
-     *
-     */
-    replaceKeyword: function (value, oldChar, newChar) {
-        var _this = this
-        if (!oldChar || !newChar) return value
-        // oldChar的字符串数组,用来循环替换
-        var oldCharArr = []
-
-        if (this.isArray(oldChar)) {
-            oldCharArr = oldChar.concat()
-        } else {
-            oldCharArr.push(oldChar)
-        }
+    if (lv === void 0) {
+      lv = 0;
+    }
 
-        // 数组去重
-        oldCharArr = this.unique(oldCharArr)
-
-        try {
-            oldCharArr.forEach(function (item) {
-                // 去空格之后为空字符串,则直接跳过当前替换
-                if (item.replace(/\s+/g, '')) {
-                    var oc = item
-                    oc = oc.replace(/\$/g, '\\$')
-                        .replace(/\(/g, '\\(')
-                        .replace(/\)/g, '\\)')
-                        .replace(/\*/g, '\\*')
-                        .replace(/\+/g, '\\+')
-                        .replace(/\./g, '\\.')
-                        .replace(/\[/g, '\\[')
-                        .replace(/\]/g, '\\]')
-                        .replace(/\?/g, '\\?')
-                        .replace(/\\/g, '\\')
-                        .replace(/\//g, '\\/')
-                        .replace(/\^/g, '\\^')
-                        .replace(/\{/g, '\\{')
-                        .replace(/\}/g, '\\}')
-                        .replace(/\|/g, '\\|')
-
-                    if (_this.isArray(newChar)) {
-                        // 批量高亮
-                        var tempV = value
-                        value = value.replace(new RegExp('(' + oc + ')', 'gmi'), newChar[0] + oc + newChar[1])
-                        if (value === tempV && oc.indexOf('+') !== -1) {
-                          var splitReg = oc.split('\\+')
-                          splitReg.map(function (v) {
-                            value = value.replace(new RegExp('('+v+')', 'gmi'), newChar[0] + v + newChar[1])
-                          })
-                        }
-                    } else {
-                        // 普通单个高亮
-                        value = value.replace(new RegExp('(' + oc + ')', 'gmi'), newChar)
-                    }
-                }
-            })
-        } catch (e) {
-            console.log(e)
-            return value
-        }
-        return value
-    },
-    /**
-     * 批量删除sessionStorage中的数据
-     * @param {RegExp} reg 传入一个要匹配的正则表达式
-     */
-    clearBatchSessionStorage: function (reg) {
-        if (sessionStorage) {
-            var sessKeys = Object.keys(sessionStorage)
-            sessKeys.forEach(function (item) {
-                if (reg.test(item)) {
-                    sessionStorage.removeItem(item)
-                }
-            })
-        }
-    },
-    /**
-     * 获取图片原始宽高
-     * @param {Image/Object} img
-     * @param {Function} callback
-     */
-    getImgNaturalDimensions: function (img, callback) {
-        var naturalSize = {}
-        if (img.naturalWidth && img.naturalHeight) { // 现代浏览器
-            naturalSize.with = img.naturalWidth
-            naturalSize.height = img.naturalHeight
-        } else { // IE6/7/8
-            var image = new Image()
-            image.src = img.src
-            image.onload = function() {
-                naturalSize.with = image.width
-                naturalSize.height = image.height
-                callback && callback(naturalSize)
-            }
-        }
-        return naturalSize
-    },
-    moneyUnit: function (num, type, lv) {
-        if (num === '' || num == null || num == undefined || isNaN(num)) return ''
-        var levelArr = ['元', '万元', '亿元', '万亿元']
-        if (type === void 0) {
-            type = 'string';
-        }
+    if (num === 0) {
+      if (type === 'string') {
+        return '0';
+      }
 
-        if (lv === void 0) {
-            lv = 0;
-        }
+      if (type === 'lv') {
+        return levelArr[lv];
+      }
 
-        if (num === 0) {
-            if (type === 'string') {
-                return '0';
-            }
+      if (type === 'number') {
+        return 0;
+      }
 
-            if (type === 'lv') {
-                return levelArr[lv];
-            }
+      if (type === 'index') {
+        return lv;
+      }
+    }
 
-            if (type === 'number') {
-                return 0;
-            }
+    // 需要传入固定的lv(此时lv为 levelArr 中的一个)
+    function transfer (num, lvString) {
+      var index = levelArr.indexOf(lvString)
+      if (index === -1 || index === 0) {
+        return num
+      } else {
+        return (num / Math.pow(10000, index)).toFixed(2) + lvString
+      }
+    }
 
-            if (type === 'index') {
-                return lv;
-            }
-        }
+    if (type === 'transfer') {
+      return transfer(num, lv)
+    }
 
-        var result = num / Math.pow(10000, 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 (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 === 'lv') {
+        return levelArr[lv];
+      }
 
-            if (type === 'index') {
-                return lv;
-            }
+      if (type === 'index') {
+        return lv;
+      }
 
-            if (type === 'number') {
-                return String(Math.floor(result * 100) / 100).replace('.00', '');
-            }
-        }
-    },
-    /**
-     * 防抖
-     * @param {Function} func 函数
-     * @param {Number} delay 延时间隔 默认 200ms
-     * @param {Boolean} immediate 是否首次执行
-     */
-    debounce: function (func, delay, immediate){
-        var timer = null;
-        delay = delay || 200
-        return function() {
-            var context = this;
-            var args = arguments;
-            if(timer) clearTimeout(timer);
-            if(immediate){
-                var doNow = !timer;
-                timer = setTimeout(function(){
-                    timer = null;
-                },delay);
-                if(doNow){
-                    func.apply(context,args);
-                }
-            }else{
-                timer = setTimeout(function(){
-                    func.apply(context,args);
-                },delay);
-            }
-        }
+      if (type === 'number') {
+        return String(Math.floor(result * 100) / 100).replace('.00', '');
+      }
+    }
+  },
+  /**
+   * 防抖
+   * @param {Function} func 函数
+   * @param {Number} delay 延时间隔 默认 200ms
+   * @param {Boolean} immediate 是否首次执行
+   */
+  debounce: function (func, delay, immediate){
+    var timer = null;
+    delay = delay || 200
+    return function() {
+      var context = this;
+      var args = arguments;
+      if(timer) clearTimeout(timer);
+      if(immediate){
+        var doNow = !timer;
+        timer = setTimeout(function(){
+          timer = null;
+        },delay);
+        if(doNow){
+          func.apply(context,args);
+        }
+      }else{
+        timer = setTimeout(function(){
+          func.apply(context,args);
+        },delay);
+      }
     }
+  }
 }

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů