Browse Source

feat: 订阅页面筛选地区精确到市

cuiyalong 4 years ago
parent
commit
ef3475b1f6

+ 38 - 14
src/jfw/modules/app/src/web/staticres/jyapp/js/historypush.js

@@ -3,7 +3,7 @@ var vm = new Vue({
   el: '#select-meau',
   components: {
     dateComponent: dateComponent,
-    areaComponent: areaComponent,
+    areaCityMobile: areaCityMobileComponent,
     industryComponent: industryComponent,
     cateComponent: cateComponent,
     keywordComponent: keywordComponent,
@@ -23,6 +23,8 @@ var vm = new Vue({
       },
       // 地区参数
       area: '',
+      // 城市
+      city: '',
       // 行业参数
       subscopeclass: '',
       // 采购单位
@@ -42,7 +44,7 @@ var vm = new Vue({
       },
       hasNextPage: false, // 是否有下一页
       selectCateList: [], // 选择的采购单位类型列表
-      selectAreaList: [], // 选择的地区列表
+      selectAreaList: {}, // 选择的地区列表
       selectIndustryList: [], // 选择的行业列表
       selectKeyWordList: [], // 选择的行业列表
       selectNoticeList: [], // 选择的公告类型列表
@@ -67,6 +69,8 @@ var vm = new Vue({
     }else {
       firstTime = this.time
     }
+  },
+  mounted () {
     var recover = this.recover()
     if (!recover) {
       setTimeout(() => {
@@ -97,7 +101,6 @@ var vm = new Vue({
       }, false);
     },
     recover: function () {
-      let _this = this
       var excludeKey = ['sessStorageKey']
       var $data = sessionStorage.getItem(this.sessStorageKey)
       if ($data) {
@@ -112,16 +115,15 @@ var vm = new Vue({
           // 时间
           console.log(res)
           if(res.time != '') {
-            console.log(this.selectDate)
             this.selectDate.startDate = res.time.split('_')[0] * 1000
             this.selectDate.endDate= res.time.split('_')[1] * 1000
           }
           // 地区
-          if(res.area != '') {
+          if(res.area || res.city) {
             setTimeout(() => {
+              this.$refs.areaCitySelector.setState(this.selectAreaList)
               $('.areaText').html(res.tagText.areaText)
-            })
-            this.selectAreaList = res.area.split(',')
+            }, 0)
           }
           // 采购单位类型
           if(res.buyerclass != '') {
@@ -159,6 +161,7 @@ var vm = new Vue({
     revorceData: function() {
       this.time = ''
       this.area = ''
+      this.city = ''
       this.subtype = ''
       this.subscopeclass = ''
       this.key = ''
@@ -166,6 +169,7 @@ var vm = new Vue({
     },
     revorceOtherData: function() {
       this.area = ''
+      this.city = ''
       this.subtype = ''
       this.subscopeclass = ''
       this.key = ''
@@ -246,10 +250,29 @@ var vm = new Vue({
             break
           }
         }
-      } else if(data.name === 'areaItem'){
-        $('.areaText').html(data.t)
-        this.tagText.areaText = data.t
-        this.area = data.data.join(',')
+      } else if(data.name === 'areaCityItem'){
+        var areaCityRes = data.data
+        var count = data.count
+        this.selectAreaList = areaCityRes
+        if (!areaCityRes || Object.keys(areaCityRes).length === 0) {
+          
+        } 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(',')
+        }
       } else if(data.name === 'industryItem'){
         $('.industryText').html(data.t)
         this.tagText.industryText = data.t
@@ -290,8 +313,9 @@ var vm = new Vue({
         this.selectDate.end = ''
         this.selectDate.exact = 'all'
         this.setTimer.datetimer = new Date().getTime()
-      } else if(data.name === 'areaItem'){
+      } else if(data.name === 'areaCityItem'){
         this.area = ''
+        this.city = ''
         $('.areaText').html('地区')
         this.setTimer.areatimer = new Date().getTime()
       } else if(data.name === 'industryItem'){
@@ -317,11 +341,11 @@ var vm = new Vue({
       }, 500)
     },
     getAjaXParams: function() {
-      ajaxFun(this.time, this.area, this.subscopeclass, this.buyerclass, this.key, this.subtype)
+      ajaxFun(this.time, this.area, this.city, this.subscopeclass, this.buyerclass, this.key, this.subtype)
     },
     setToggle: function() {
       this.$refs.dateItem.toggle(false)
-      this.$refs.areaItem.toggle(false)
+      this.$refs.areaCityItem.toggle(false)
       this.$refs.industryItem.toggle(false)
       this.$refs.cateItem.toggle(false)
       this.$refs.keywordItem.toggle(false)

+ 61 - 277
src/jfw/modules/app/src/web/templates/weixin/historypush.html

@@ -130,24 +130,11 @@
         <div class="_header collection" id="select-meau">
             <!-- 筛选条件 -->
             <div class="filter_tab">
-                <!-- <div class="tab_left">
-                    <div class="time">
-                        <p class="time_box" id="showDatePicker">
-                            <span class="time_result jymobile-tab-triangle">时间</span>
-                        </p>
-                    </div>
-                    <div class="area" style="display: none;">
-                        <p class="area_box" id="showArea">
-                            <span class="jymobile-tab-triangle">地区</span>
-                        </p>
-                    </div>
-                </div> -->
-
                     <van-dropdown-menu style="width: auto;overflow-x: auto;"  >
                         <van-dropdown-item get-container="#dropDownItemGroup" :lazy-render="false" :title="tagText.timeText"  ref="dateItem" @open="open('时间')" @close="close">
                             <date-component type="only-picker" :key="setTimer.datetimer" @cancel="cancel" @confirm="confirm" :selectdate="selectDate"/>
                         </van-dropdown-item>
-                        <van-dropdown-item get-container="#dropDownItemGroup" :lazy-render="false" ref="areaItem" @open="open('地区')" @close="close">
+                        <van-dropdown-item get-container="#dropDownItemGroup" :lazy-render="false" ref="areaCityItem" @open="open('地区')" @close="close">
                             <template #title>
                                 <span v-if="screenShow" class="areaText">地区</span>
                                 <span v-if="!screenShow" class="rootstyletitle">
@@ -155,7 +142,7 @@
                                     <span class="root_open">开通</span>
                                 </span>
                             </template>
-                            <area-component :key="setTimer.areatimer" v-if="screenShow" @cancel="cancel" @confirm="confirm" :selectarealist="selectAreaList"></area-component>
+                            <area-city-mobile :key="setTimer.areatimer" v-if="screenShow" @cancel="cancel" @confirm="confirm" ref="areaCitySelector"></area-city-mobile>
                             <root-component v-if="!screenShow" @cancel="cancel" @confirm="confirm"></root-component>
                         </van-dropdown-item>
                         <van-dropdown-item get-container="#dropDownItemGroup" :lazy-render="false" ref="industryItem" @open="open('行业')" @close="close">
@@ -358,22 +345,22 @@
 
 </body>
 <script>
-      var firstTime = {{.T.selectTime}}
+    var firstTime = {{.T.selectTime}}
 </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>
 <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/selector/js/china_area.js'></script>
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/js/root-mobile.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/js/date-mobile.js?v={{Msg "seo" "version"}}'></script>
-<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/js/area-mobile.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/js/area-city-mobile.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/js/industry-mobile.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/js/cate-mobile.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/js/keyword-mobile.js?v={{Msg "seo" "version"}}'></script>
 <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/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/local/weui.min.js"></script>-->
 <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
    <script>
         // 双11活动文案修改
@@ -389,61 +376,6 @@
 <script>
   // @手机号绑定及账号合并 2021/1/25
   $("#toKeySet").on('click', tokeyset)
-  /*
-  * money unit for zyh @date 2020/6/5
-  * */
-  var MoneyUnit = {
-      levelArr: ['元', '万元', '亿元', '万亿元'],
-      test: function (num, type, lv) {
-          if (type === void 0) {
-              type = 'string';
-          }
-
-          if (lv === void 0) {
-              lv = 0;
-          }
-
-          if (num === 0) {
-              if (type === 'string') {
-                  return '0';
-              }
-
-              if (type === 'lv') {
-                  return this.levelArr[lv];
-              }
-
-              if (type === 'number') {
-                  return 0;
-              }
-
-              if (type === 'index') {
-                  return lv;
-              }
-          }
-
-          var result = num / Math.pow(10000, lv);
-
-          if (result > 10000 && lv < 2) {
-              return this.test(num, type, lv + 1);
-          } else {
-              if (type === 'string') {
-                  return String(Math.floor(result * 100) / 100).replace('.00', '') + this.levelArr[lv];
-              }
-
-              if (type === 'lv') {
-                  return this.levelArr[lv];
-              }
-
-              if (type === 'index') {
-                  return lv;
-              }
-
-              if (type === 'number') {
-                  return String(Math.floor(result * 100) / 100).replace('.00', '');
-              }
-          }
-      }
-  }
   var isExaminePhone={{session "s_phone"}}=="18613717801";
   function receivePushMessageHandle(type,url){
     if(type=="bid" || type=="vipreport"){
@@ -547,7 +479,8 @@
   });
 
   var userId = "";
-  var selectCity = vm.area; // 地区
+  var selectArea = vm.area; // 地区
+  var selectCity = vm.city; // 城市
   var selectIndustry = vm.subscopeclass // 行业
   var selectCate = vm.buyerclass // 采购单位
   var selectKeyword = vm.key // 关键词
@@ -675,6 +608,7 @@
             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");
@@ -707,31 +641,21 @@
             $(".listcontent").scrollTop(scrollTop);
             removeSessionStorage();
             $('#sub_manager').css({ visibility: 'unset' })
-            showPage();
         } else {
             userId = sessionStorage.userId;
-            // if (window.location.href.indexOf("selectTime") < 0 && sessionStorage.getItem(userId + "_searchTime") != null && sessionStorage.getItem(userId + "_searchTime") != "") {
-            //     firstTime = sessionStorage.getItem(userId + "_searchTime");
-            // }
-            // if (sessionStorage.getItem(userId + "_selectCity") != null && sessionStorage.getItem(userId + "_selectCity") != "") {
-            //     selectCity = sessionStorage.getItem(userId + "_selectCity");
-            // }
-            // if (sessionStorage.getItem(userId + "_selectIndustry") != null && sessionStorage.getItem(userId + "_selectIndustry") != "") {
-            //     selectIndustry = sessionStorage.getItem(userId + "_selectIndustry");
-            // }
-            // if (sessionStorage.getItem(userId + "_selectCate") != null && sessionStorage.getItem(userId + "_selectCate") != "") {
-            //     selectCate = sessionStorage.getItem(userId + "_selectCate");
-            // }
-            // if (sessionStorage.getItem(userId + "_selectKeyword") != null && sessionStorage.getItem(userId + "_selectKeyword") != "") {
-            //     selectKeyword = sessionStorage.getItem(userId + "_selectKeyword");
-            // }
-            // if (sessionStorage.getItem(userId + "_selectNotice") != null && sessionStorage.getItem(userId + "_selectNotice") != "") {
-            //     selectNotice = sessionStorage.getItem(userId + "_selectNotice");
-            // }
             $.ajax({
                 type: 'post',
                 url: '/jyapp/front/hasPushHistory?t=' + new Date().getTime(),
-                data: {"selectTime": firstTime, "pageNum": 1, "area": selectCity, "subscopeclass": selectIndustry, "buyerclass": selectCate, "key": selectKeyword, "subtype": selectNotice},
+                data: {
+                  selectTime: firstTime,
+                  pageNum: 1,
+                  area: selectArea,
+                  city: selectCity,
+                  subscopeclass: selectIndustry,
+                  buyerclass: selectCate,
+                  key: selectKeyword,
+                  subtype: selectNotice
+                },
                 async: false,
                 dataType: 'json',
                 success: function (data) {
@@ -785,7 +709,6 @@
                     userId = data.userId;
                     sessionStorage.userId = userId;
                     sessionStorage.setItem(userId + "_searchTime", firstTime);
-                    showPage();
                 },
                 error: function (xhr, type) {
                     hasNoData();
@@ -803,7 +726,6 @@
 
             setTimeout(function () {
                 $(".listcontent").scrollTop(0);
-                //$("#list").css("visibility","visible");
             }, 300);
         }
         if (hasNextPage) {
@@ -922,28 +844,13 @@ window.listScroll = function() {
   }
  }
 }
-  //页面渲染处理
-  function showPage() {
-      //时间渲染
-      if (firstTime != null && firstTime != "" && firstTime.length >= 10) {
-          var _formatDate = formatDate(firstTime / 1000, "2");
-          date = formatDate(firstTime / 1000, "1");
-          $('#showDatePicker .time_result').html(_formatDate).addClass('current');
-      }
-      //地区渲染
-      try{
-        // loadJS("{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/js/mapArea.js?v={{Msg "seo" "version"}}",function(){
-          mapData();
-        // })
-      }catch(error){}
-  }
-
   //下拉刷新
   function reloadFirstPage(me) {
       if($(".vip_report").is(":hidden")||$(".vip_report>a").is(":hidden")){
         afterJyObjInit();
       }
-      selectCity = vm.area; // 地区
+      selectArea = vm.area; // 地区
+      selectCity = vm.city; // 城市
       selectIndustry = vm.subscopeclass // 行业
       selectCate = vm.buyerclass // 采购单位
       selectKeyword = vm.key // 关键词
@@ -951,7 +858,16 @@ window.listScroll = function() {
       $.ajax({
           type: 'post',
           url: '/jyapp/front/hasPushHistory?t=' + new Date().getTime(),
-          data: {"selectTime": firstTime, "pageNum": 1, "area": selectCity, "subscopeclass": selectIndustry, "buyerclass": selectCate, "key": selectKeyword, "subtype": selectNotice},
+          data: {
+            selectTime: firstTime,
+            pageNum: 1,
+            area: selectArea,
+            city: selectCity,
+            subscopeclass: selectIndustry,
+            buyerclass: selectCate,
+            key: selectKeyword,
+            subtype: selectNotice
+          },
           async: false,
           dataType: 'json',
           success: function (data) {
@@ -991,7 +907,8 @@ window.listScroll = function() {
 
   function loadDatas(me, le) {
       wxflag = me;
-      selectCity = vm.area; // 地区
+      selectArea = vm.area; // 地区
+      selectCity = vm.city; // 城市
       selectIndustry = vm.subscopeclass // 行业
       selectCate = vm.buyerclass // 采购单位
       selectKeyword = vm.key // 关键词
@@ -1000,7 +917,16 @@ window.listScroll = function() {
         $.ajax({
           type: 'post',
           url: '/jyapp/swordfish/historypush/paging',
-          data: {"pageNum": pageIndex, "selectTime": firstTime, "area": selectCity, "subscopeclass": selectIndustry, "buyerclass": selectCate, "key": selectKeyword, "subtype": selectNotice},
+          data: {
+            pageNum: pageIndex,
+            selectTime: firstTime,
+            area: selectArea,
+            city: selectCity,
+            subscopeclass: selectIndustry,
+            buyerclass: selectCate,
+            key: selectKeyword,
+            subtype: selectNotice
+          },
           dataType: 'json',
           success: function (data) {
               //没有数据
@@ -1121,10 +1047,10 @@ function hasNoData() {
           // 预算:budget;中标:bidamount
           var moneyList = "";
           if (obj.budget != null && obj.budget != "") {
-              moneyList = '<span class="bidamount">' + MoneyUnit.test(obj.budget) + '</span>';
+              moneyList = '<span class="bidamount">' + utils.moneyUnit(obj.budget) + '</span>';
           }
           if (obj.bidamount != null && obj.bidamount != "") {
-              moneyList = '<span class="bidamount">' + MoneyUnit.test(obj.bidamount) + '</span>';
+              moneyList = '<span class="bidamount">' + utils.moneyUnit(obj.bidamount) + '</span>';
           }
           //时间
           var showdateList = ""
@@ -1372,35 +1298,36 @@ function hasNoData() {
               type: 'post',
               url: '/jyapp/wxpush/bid/ajaxReq?t=' + new Date().getTime(),
               data: {vsid: vsid},
-              async: false,
-              dataType: 'json',
-              success: function (r) {
-                 //alert(r)
-              },
-              error: function (e) {
-              }
+              async: false
           });
-          //$.post("/jyapp/wxpush/bid/ajaxReq", {vsid: vsid});
       }
   }
 
   //
   var ajaxFlag = true;
 
-  function ajaxFun(time, area, subscopeclass, buyerclass, key, subtype) {
-      //console.log(ajaxFlag)
+  function ajaxFun(time, area, city, subscopeclass, buyerclass, key, subtype) {
       if (!ajaxFlag) {
           return
       }
       ajaxFlag = false;
       $("#loading").show();
-      if(time==""&&area==""&&subscopeclass==""&&buyerclass==""&&key==""&&subtype==""){
+      if(!time && !area && !city && !subscopeclass && !buyerclass && !key && !subtype){
         afterJyObjInit();
       }
       $.ajax({
           type: 'post',
           url: '/jyapp/front/hasPushHistory?t=' + new Date().getTime(),
-          data: {"selectTime": time, "area": area, "subscopeclass": subscopeclass, "pageNum": 1, "buyerclass": buyerclass, "key": key, "subtype": subtype},
+          data: {
+            selectTime: time,
+            area: area,
+            city: city,
+            subscopeclass: subscopeclass,
+            pageNum: 1,
+            buyerclass: buyerclass,
+            key: key,
+            subtype: subtype
+          },
           async: false,
           dataType: 'json',
           success: function (data) {
@@ -1416,11 +1343,11 @@ function hasNoData() {
               } else {
                   sessionStorage.setItem(userId + "_searchTime", time);
               }
-              if (area == undefined || area == "") {
+              if (!area) {
+                  sessionStorage.removeItem(userId + "_selectArea");
+              }
+              if (!city) {
                   sessionStorage.removeItem(userId + "_selectCity");
-                  sessionStorage.removeItem(userId + "_selectCityName");
-              } else {
-                //   sessionStorage.setItem(userId + "_selectCity", area);
               }
           },
           error: function (xhr, type) {
@@ -1429,7 +1356,6 @@ function hasNoData() {
           }
       });
       dataCache = firstPage;
-    //   firstPage.length = 0
       if (firstPage.length == 0) {
           if ($(".findnull").css("display") == "block") {
               $(".findnull").css("display", "none");
@@ -1532,124 +1458,6 @@ function hasNoData() {
   }
 </script>
 <script type="text/javascript" charset="UTF-8">
-    function mapData() {
-        var _citySessionData = null
-        var _provinceArr = {}//选择的省份对应的城市
-        var allCityNum = 0;//选择全部省份的个数
-        var cityNumArr = {};//单个省份下的城市个数
-        if (sessionStorage && sessionStorage.getItem(userId + "_selectCityName") != null) {
-            _citySessionData = JSON.parse(sessionStorage.getItem(userId + "_selectCityName"));
-            for (var k = 0; k < _citySessionData.length; k++) {
-                if (_citySessionData[k]["selectCity"]["0"] == "全部") {
-                    cityNumArr[_citySessionData[k]["province"]] = _citySessionData[k]["selectCity"].length - 1;
-                } else {
-                    cityNumArr[_citySessionData[k]["province"]] = _citySessionData[k]["selectCity"].length;
-                }
-                allCityNum += cityNumArr[_citySessionData[k]["province"]]
-                _provinceArr[_citySessionData[k]["province"]] = _citySessionData[k]["selectCity"]
-            }
-            //所选地级市的数量
-            if (allCityNum > 0) {
-                $('#showArea .jymobile-tab-triangle').addClass('current').text('地区 '+allCityNum);
-            }
-            //sessionStorage.removeItem("selectCityName");
-        }
-        var provinceHtml = '<div class="province">';
-        var cityHtml = '<div class="city" >';
-        for (var j = 0; j < chinaMapJSON.length; j++) {
-            var shwohide = 'none'
-            var _active = "";
-            var thisArea = chinaMapJSON[j]
-            for (var i in thisArea) {
-                //首先显示安徽省和其地级市 其他隐藏
-                if (i == "安徽") {
-                    shwohide = "";
-                    _active = "active";
-                }
-                var provinceFlag = true;
-                if (_provinceArr[i] != undefined && _provinceArr[i].length > 0) {
-                    provinceHtml += '<p class="p_item ' + _active + '"><span class="province-name">' + i + '</span><span class="city-count" style="display: inline;">(' + cityNumArr[i] + ')</span></p>'
-                    //
-                    cityHtml += '<div class="province_city" data-id="' + i + '" style="display:' + shwohide + '">';
-                    provinceFlag = false;
-                }
-                if (provinceFlag) {
-                    provinceHtml += '<p class="p_item ' + _active + '"><span class="province-name">' + i + '</span><span class="city-count"></span></p>'
-
-                    cityHtml += '<div class="province_city" data-id="' + i + '" style="display:' + shwohide + '">'
-                }
-                var cityArr = thisArea[i]//每个省份下的地市
-                var allSH = "";
-                if (cityArr.length == 1) {
-                    allSH = "hide";
-                }
-                var _cityMap = _provinceArr[i]
-                if (_cityMap != undefined && _cityMap[0] == "全部") {
-                    cityHtml += '<p class="c_item cityAll ' + allSH + '"><input type="checkbox" class="checkbox" checked><span class="city-name">全部</span></p>';
-                } else {
-                    cityHtml += '<p class="c_item cityAll ' + allSH + '"><input type="checkbox" class="checkbox"><span class="city-name">全部</span></p>';
-                }
-                for (var m = 0; m < cityArr.length; m++) {
-                    var cityFlag = true;
-                    if (_cityMap != undefined && _cityMap.length > 0) {
-                        for (var k = 0; k < _cityMap.length; k++) {
-                            if (_cityMap[k] == cityArr[m]) {
-                                cityHtml += '<p class="c_item"><input type="checkbox" class="checkbox"  checked><span class="city-name">' + cityArr[m] + '</span></p>';
-                                cityFlag = false;
-                                break;
-                            }
-                        }
-                    }
-                    if (cityFlag) {
-                        cityHtml += '<p class="c_item"><input type="checkbox" class="checkbox"><span class="city-name">' + cityArr[m] + '</span></p>'
-                    }
-                }
-                cityHtml += '</div>'
-            }
-        }
-        provinceHtml += '</div>'
-        cityHtml += '</div>'
-        $(".area_data").html(provinceHtml + cityHtml)
-        // 地区省份选择的操作
-        $('.province .p_item').click(function () {
-            var i = $(this).index();
-            $(this).addClass('active').siblings().removeClass('active');
-            $('.city div').eq(i).show().siblings().hide();
-        })
-        // 每次选择框变化,更新城市计数
-        $('.area_wrap .c_item input[type="checkbox"]').on('change', function () {
-            if ($(this).parent("p").hasClass("cityAll")) {
-                if ($(this).is(':checked')) {
-                    $(this).parent("p").nextAll("p").find('input[type="checkbox"]').prop('checked', true);
-                } else {
-                    $(this).parent("p").nextAll("p").find('input[type="checkbox"]').prop('checked', false);
-                }
-            } else {
-                if ($(this).is(':checked')) {
-                    if ($(this).parent().parent().find('input:checked').length == ($(this).parent().parent().find('p').length - 1)) {
-                        $(this).parent().parent().find('.cityAll  input[type="checkbox"]').prop('checked', true);
-                    }
-                } else {
-                    $(this).parent().parent().find('.cityAll  input[type="checkbox"]').prop('checked', false);
-                }
-            }
-            var i = $(this).parent().parent().index()
-            // 找到该省份下所有被选中的input,统计有几个
-            var checkedCityNum = $(this).parent().parent().find('input:checked').length;
-            if (checkedCityNum > 0 && $(this).parent().parent().find('.cityAll  input[type="checkbox"]').is(':checked')) {
-                //判断全选是否
-                checkedCityNum = checkedCityNum - 1;
-            }
-            var cityCountDOM = $('.province .p_item').eq(i).children('.city-count')
-            if (checkedCityNum) {
-                cityCountDOM.show().text('('+checkedCityNum +')')
-            } else {
-                cityCountDOM.show().text('')
-                cityCountDOM.hide()
-            }
-        })
-    }
-
     function weuiDialog() {
         weui.dialog({
             title: '提示信息',
@@ -1675,20 +1483,6 @@ function hasNoData() {
         });
     }
 
-    //
-    function FTAGData(time) {
-        if (time != undefined && time.toString() != "") {
-            // var Time = new Date(time);
-            // var timestemp = Time.getTime();
-            // firstTime = timestemp.toString();
-            firstTime = time;
-            ajaxFun(firstTime, selectCity, selectIndustry, selectCate, selectKeyword, selectNotice);
-        } else {
-            firstTime = "";
-            ajaxFun("", selectCity);
-        }
-    }
-
     $('.open_remind .icon-chahao').on('click', function () {
         $('.open_remind').hide()
     })
@@ -1728,16 +1522,6 @@ function hasNoData() {
             date = formatDate(firstTime / 1000, "1");
         }
 
-        //
-        $('.screen').click(function () {
-            //$(".subscribe").toggleClass('overClass');
-            //scrollHtml();
-            if (sessionStorage.getItem(userId + "_selectCityName") == "" || sessionStorage.getItem(userId + "_selectCityName") == undefined) {
-                $('#showArea').find("span").toggleClass("current");
-            }
-            $('.area_container').slideUp();
-            $('.screen').hide();
-        })
         // 关闭设置弹窗
         $('#close_set').on('click', function () {
             $('.set_keyword').hide()

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

@@ -448,7 +448,7 @@
     flex: none;
 }
 .collection .unitTab .van-tabs__content{
-    height: 7.5rem;
+    height: 100%;
     overflow: auto;
 }
 .collection .unitType {

+ 299 - 0
src/web/staticres/common-module/collection/js/area-city-mobile.js

@@ -0,0 +1,299 @@
+var areaCityMobileComponentTemplate = `
+<div class="select-area-city-container  j-container">
+    <div class="unitTab j-main">
+        <van-tabs type="card" class="unitType">
+            <van-tab v-for="(item, index) in tablist" :key="index">
+                <template #title>
+                    <div class="tabtitle">
+                        {{item.name}}
+                    </div>
+                    <div class="optionnum" v-if="getActiveCount(item)">{{getActiveCount(item)}}/{{item.children.length}}</div>
+                </template>
+                <van-cell
+                    clickable
+                    title="全选"
+                    :class="{checkActive: item.type}"
+                    @click="checkAll(item)"
+                >
+                    <template #right-icon>
+                        <van-checkbox checked-color="#2ABED1" :bind-group="false" v-model="item.type"></van-checkbox>
+                    </template>
+                </van-cell>
+                <van-cell-group>
+                    <van-cell
+                        v-for="(iitem, i) in item.children"
+                        clickable
+                        label-disabled="false"
+                        :key="i"
+                        :class="{checkActive: iitem.type}"
+                        :title="iitem.name.replace(/市/, '')"
+                        @click="toggleCheck(iitem, item)"
+                    >
+                        <template #right-icon>
+                            <van-checkbox checked-color="#2ABED1" :bind-group="false" v-model="iitem.type" :name="iitem.name" ref="checkboxes" />
+                        </template>
+                    </van-cell>
+                </van-cell-group>
+            </van-tab>
+        </van-tabs>
+    </div>
+    <div class="j-footer">
+        <div class="j-button-group">
+            <button class="j-button-cancel" @click="resetAll">重置</button>
+            <button class="j-button-confirm" :disabled="confirmDisabled" @click="onConfirm">确认</button>
+        </div>
+    </div>
+</div>`
+
+var areaCityMobileComponent = {
+  name: 'area-city-mobile',
+  template: areaCityMobileComponentTemplate,
+  props: {
+    selectAreaCityList: {
+      type: Object,
+      default: function () {
+        return {}
+      }
+    }
+  },
+  data:function () {
+    return {
+      active: 1,
+      tablist: [],
+      // 原始数组
+      provinceListMapExp: {
+        '#': ['全国'],
+        A: ['安徽', '澳门'],
+        B: ['北京'],
+        C: ['重庆'],
+        F: ['福建'],
+        G: ['广东', '广西', '贵州', '甘肃'],
+        H: ['河北', '湖北', '黑龙江', '海南', '河南', '湖南'],
+        J: ['吉林', '江苏', '江西'],
+        L: ['辽宁'],
+        N: ['内蒙古', '宁夏'],
+        Q: ['青海'],
+        S: ['山西', '陕西', '上海', '山东', '四川'],
+        T: ['天津', '台湾'],
+        X: ['西藏', '新疆', '香港'],
+        Y: ['云南'],
+        Z: ['浙江']
+      }
+    }
+  },
+  created () {
+    this.getData()
+  },
+  computed: {
+    confirmDisabled: function () {
+      var arr = []
+      this.tablist.forEach(function (item) {
+        arr.push(item.type)
+        item.children.forEach(function (iitem) {
+          arr.push(iitem.type)
+        })
+      })
+      // 如果找到一个true,就可以点击确认按钮
+      return arr.indexOf(true) === -1
+    }
+  },
+  methods: {
+    // 整理原始数据
+    getData: function () {
+      var provinceListMapExp = this.provinceListMapExp
+
+      // 整理数据得到indexListMap(),同时获得indexList
+      const provinceListMap = {}
+      const indexList = []
+      for (const key in provinceListMapExp) {
+        const areaArr = []
+        indexList.push(key)
+        provinceListMapExp[key].forEach(pName => {
+          const provinceExp = {
+            name: pName,
+            type: false,
+            children: []
+          }
+
+          if (pName !== '全国') {
+            const cities = this.getCitiesFromJSONMap(pName)
+            // console.log(pName, cities)
+            // 筛选掉直辖市和特别行政区(台湾省也不不需要展开)
+            if (cities.ProRemark === '省份' || cities.ProRemark === '自治区') {
+              if (cities.ProID === 32) {
+                provinceExp.children = []
+              } else {
+                cities.city.forEach(c => {
+                  // 将市区重组成一个新的对象
+                  return provinceExp.children.push({
+                    name: c.name,
+                    type: false
+                  })
+                })
+              }
+            } else {
+              provinceExp.children = []
+            }
+          }
+
+          areaArr.push(provinceExp)
+        })
+
+        provinceListMap[key] = areaArr
+      }
+
+      var provinceList = []
+      for (var key in provinceListMap) {
+        if (key === '#') {
+          continue
+        } else {
+          provinceList = provinceList.concat(provinceListMap[key])
+        }
+      }
+
+      this.tablist = provinceList.map(function (item) {
+        var obj = {
+          name: item.name,
+          type: false,
+          children: item.children
+        }
+        // 如果市直辖市自治区等没有子项的,给他push一个子项
+        if (item.children.length === 0) {
+          obj.children.push({
+            name: item.name,
+            type: false
+          })
+        }
+        return obj
+      })
+    },
+    getCitiesFromJSONMap (provinceName) {
+      return chinaMapJSON.find(item => item.name.indexOf(provinceName) !== -1)
+    },
+    setState: function(data) {
+      // 设置全国(此处为全部未选中)
+      if (!data || Object.keys(data).length === 0) {
+        this.allStateChange(false)
+        this.confirmDisabled = true
+      } else {
+        for (var key in data) {
+          if (data[key].length === 0) {
+            // 当前全省
+            for (var i = 0; i < this.tablist.length; i++) {
+              this.tablist[i].children.forEach(function (item) {
+                item.type = true
+              })
+            }
+          }  else {
+            this.tablist.some(function (item) {
+              var gotThis = item.name === key
+              if (gotThis) {
+                item.children.forEach(function (iitem) {
+                  if (data[key].indexOf(iitem.name) !== -1) {
+                    iitem.type = true
+                  }
+                })
+              }
+              return gotThis
+            })
+          }
+          
+        }
+        this.confirmDisabled = false
+      }
+    },
+    // 获取当前选中状态
+    getState: function () {
+      var state = {}
+      var count = 0
+      this.tablist.forEach(function (item) {
+        if (item.type) {
+          // 全省被选中
+          state[item.name] = []
+          if (item.children.length === 0) {
+            count += 1
+          } else {
+            count += item.children.length
+          }
+        } else {
+          var cityArr = []
+          // 全省没有被选中
+          item.children.forEach(function (city) {
+            if (city.type) {
+              cityArr.push(city.name)
+            }
+          })
+          if (cityArr.length) {
+            state[item.name] = cityArr
+            count += cityArr.length
+          }
+        }
+      })
+      return {
+        state: state,
+        count: count
+      }
+    },
+    // 全选或者全不选
+    allStateChange: function (type) {
+      this.tablist.forEach(function (item) {
+        item.type = type
+        item.children.forEach(function (iitem) {
+          iitem.type = type
+        })
+      })
+    },
+    // 模块全选
+    checkAll: function (item) {
+      // 子项跟随全选状态
+      item.type = !item.type
+      item.children.forEach(function (city) {
+        city.type = item.type
+      })
+    },
+    // 模块单选
+    toggleCheck: function (item, parent) {
+      item.type = !item.type
+
+      var state = []
+      parent.children.forEach(function (item) {
+        state.push(item.type)
+      })
+
+      // 如果没有到了false就代表全选了,置为true
+      parent.type = state.indexOf(false) === -1
+    },
+    // 选择的数量
+    getActiveCount: function(item) {
+      let arr = []
+      item.children.forEach(function (city) {
+        if (city.type) {
+          arr.push(city.name)
+        }
+      })
+      return arr.length
+    },
+    // 重置按钮
+    resetAll: function () {
+      this.setState()
+      let params = {
+        name: 'areaCityItem',
+        data: '',
+        count: ''
+      }
+      this.$emit('cancel', params)
+      return params
+    },
+    // 确定按钮
+    onConfirm:function() {
+      var state = this.getState()
+      let params = {
+        name: 'areaCityItem',
+        data: state.state,
+        count: state.count
+      }
+      this.$emit('confirm', params)
+      return params
+    }
+  }
+}

+ 0 - 8
src/web/staticres/common-module/collection/js/area-mobile.js

@@ -69,14 +69,6 @@ var areaComponent = {
     if (!recover) {
         this.arrangeListMap()
         this.recoverData()
-        // 从推送到订阅页面获取参数,时间默认是接收的参数
-        if(utils.getParam('pushtime')){
-            var pushtime = parseInt(utils.getParam('pushtime'))
-            this.setParam.time = pushtime
-            this.nowTime = new Date(pushtime*1000).pattern('yyyy-MM-dd')
-            this.currentDate = new Date(new Date(pushtime*1000).pattern('yyyy/MM/dd'))
-            this.optionData(this.setParam.area,pushtime)
-        }
     }
     if(this.selectarealist.length !== 0) {
       this.setState()

+ 38 - 16
src/web/staticres/vipsubscribe/js/historypush.js

@@ -3,7 +3,7 @@ var vm = new Vue({
   el: '#select-meau',
   components: {
     dateComponent: dateComponent,
-    areaComponent: areaComponent,
+    areaCityMobile: areaCityMobileComponent,
     industryComponent: industryComponent,
     cateComponent: cateComponent,
     keywordComponent: keywordComponent,
@@ -23,6 +23,8 @@ var vm = new Vue({
       },
       // 地区参数
       area: '',
+      // 城市
+      city: '',
       // 行业参数
       subscopeclass: '',
       // 采购单位
@@ -41,7 +43,7 @@ var vm = new Vue({
         noticeText: '公告类型'
       },
       selectCateList: [], // 选择的采购单位类型列表
-      selectAreaList: [], // 选择的地区列表
+      selectAreaList: {}, // 选择的地区列表
       selectIndustryList: [], // 选择的行业列表
       selectKeyWordList: [], // 选择的关键词列表
       selectNoticeList: [], // 选择的公告类型列表
@@ -66,7 +68,8 @@ var vm = new Vue({
     } else {
       firstTime = this.time
     }
-
+  },
+  mounted () {
     var recover = this.recover()
     if (!recover) {
       setTimeout(() => {
@@ -80,13 +83,10 @@ var vm = new Vue({
         }
       })
     }
-  },
-  mounted () {
     utils.iosBackRefresh()
   },
   methods: {
     recover: function () {
-      let _this = this
       var excludeKey = ['sessStorageKey']
       var $data = sessionStorage.getItem(this.sessStorageKey)
       if ($data) {
@@ -105,11 +105,11 @@ var vm = new Vue({
             this.selectDate.endDate= res.time.split('_')[1] * 1000
           }
           // 地区
-          if(res.area != '') {
+          if(res.area || res.city) {
             setTimeout(() => {
+              this.$refs.areaCitySelector.setState(this.selectAreaList)
               $('.areaText').html(res.tagText.areaText)
-            })
-            this.selectAreaList = res.area.split(',')
+            }, 0)
           }
           // 采购单位类型
           if(res.buyerclass != '') {
@@ -147,6 +147,7 @@ var vm = new Vue({
     revorceData: function() {
       this.time = ''
       this.area = ''
+      this.city = ''
       this.subtype = ''
       this.subscopeclass = ''
       this.key = ''
@@ -154,6 +155,7 @@ var vm = new Vue({
     },
     revorceOtherData: function() {
       this.area = ''
+      this.city = ''
       this.subtype = ''
       this.subscopeclass = ''
       this.key = ''
@@ -232,10 +234,29 @@ var vm = new Vue({
             break
           }
         }
-      } else if(data.name === 'areaItem'){
-        $('.areaText').html(data.t)
-        this.tagText.areaText = data.t
-        this.area = data.data.join(',')
+      } else if(data.name === 'areaCityItem'){
+        var areaCityRes = data.data
+        var count = data.count
+        this.selectAreaList = areaCityRes
+        if (!areaCityRes || Object.keys(areaCityRes).length === 0) {
+          
+        } 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(',')
+        }
       } else if(data.name === 'industryItem'){
         $('.industryText').html(data.t)
         this.tagText.industryText = data.t
@@ -276,8 +297,9 @@ var vm = new Vue({
         this.selectDate.end = ''
         this.selectDate.exact = 'all'
         this.setTimer.datetimer = new Date().getTime()
-      } else if(data.name === 'areaItem'){
+      } else if(data.name === 'areaCityItem'){
         this.area = ''
+        this.city = ''
         $('.areaText').html('地区')
         this.setTimer.areatimer = new Date().getTime()
       } else if(data.name === 'industryItem'){
@@ -303,11 +325,11 @@ var vm = new Vue({
       }, 500)
     },
     getAjaXParams: function() {
-      ajaxFun(this.time, this.area, this.subscopeclass, this.buyerclass, this.key, this.subtype)
+      ajaxFun(this.time, this.area, this.city, this.subscopeclass, this.buyerclass, this.key, this.subtype)
     },
     setToggle: function() {
       this.$refs.dateItem.toggle(false)
-      this.$refs.areaItem.toggle(false)
+      this.$refs.areaCityItem.toggle(false)
       this.$refs.industryItem.toggle(false)
       this.$refs.cateItem.toggle(false)
       this.$refs.keywordItem.toggle(false)

+ 55 - 262
src/web/templates/weixin/historypush.html

@@ -577,24 +577,11 @@
     </div>
     <!-- 筛选条件 -->
     <div class="filter_tab">
-        <!-- <div class="tab_left">
-            <div class="time" style="display: none;">
-                <p class="time_box" id="showDatePicker">
-                    <span class="time_result jymobile-tab-triangle">时间</span>
-                </p>
-            </div>
-            <div class="area" style="display: none;">
-                <p class="area_box" id="showArea">
-                    <span class="jymobile-tab-triangle">地区</span>
-                </p>
-            </div>
-        </div> -->
-
            <van-dropdown-menu style="width: auto;overflow-x: auto;">
             <van-dropdown-item get-container="#dropDownItemGroup" :lazy-render="false" :title="tagText.timeText"  ref="dateItem" @open="open('时间')" @close="close">
                 <date-component type="only-picker"  :key="setTimer.datetimer" @cancel="cancel" @confirm="confirm" :selectdate="selectDate"/>
             </van-dropdown-item>
-                        <van-dropdown-item get-container="#dropDownItemGroup" :lazy-render="false" ref="areaItem" @open="open('地区')" @close="close">
+             <van-dropdown-item get-container="#dropDownItemGroup" :lazy-render="false" ref="areaCityItem" @open="open('地区')" @close="close">
                 <template #title>
                     <span v-if="screenShow" class="areaText">地区</span>
                     <span v-if="!screenShow" class="rootstyletitle">
@@ -602,10 +589,10 @@
                         <span class="root_open">开通</span>
                     </span>
                 </template>
-                <area-component :key="setTimer.areatimer" v-if="screenShow" @cancel="cancel" @confirm="confirm" :selectarealist="selectAreaList"></area-component>
+                <area-city-mobile :key="setTimer.areatimer" v-if="screenShow" @cancel="cancel" @confirm="confirm" ref="areaCitySelector"></area-city-mobile>
                 <root-component v-if="!screenShow" @cancel="cancel" @confirm="confirm"></root-component>
             </van-dropdown-item>
-                        <van-dropdown-item get-container="#dropDownItemGroup" :lazy-render="false" ref="industryItem" @open="open('行业')" @close="close">
+            <van-dropdown-item get-container="#dropDownItemGroup" :lazy-render="false" ref="industryItem" @open="open('行业')" @close="close">
                 <template #title>
                     <span v-if="screenShow" class="industryText">行业</span>
                     <span v-if="!screenShow" class="rootstyletitle">
@@ -616,7 +603,7 @@
                 <industry-component :key="setTimer.industrytimer" ref="industryCom" v-if="screenShow" @cancel="cancel" @confirm="confirm" :selectindustrylist="selectIndustryList"></industry-component>
                 <root-component v-if="!screenShow" @cancel="cancel" @confirm="confirm"></root-component>
             </van-dropdown-item>
-                        <van-dropdown-item get-container="#dropDownItemGroup" :lazy-render="false"  ref="cateItem" @open="open('采购单位')" @close="close">
+            <van-dropdown-item get-container="#dropDownItemGroup" :lazy-render="false"  ref="cateItem" @open="open('采购单位')" @close="close">
                 <template #title>
                     <span v-if="screenShow" class="cateText">采购单位</span>
                     <span v-if="!screenShow" class="rootstyletitle">
@@ -627,7 +614,7 @@
                 <cate-component :key="setTimer.catetimer" @cancel="cancel" v-if="screenShow" @confirm="confirm" :selectcatelist="selectCateList"></cate-component>
                 <root-component v-if="!screenShow" @cancel="cancel" @confirm="confirm"></root-component>
             </van-dropdown-item>
-                        <van-dropdown-item get-container="#dropDownItemGroup" :lazy-render="false" title="关键词" ref="keywordItem" @open="open('关键词')" @close="close">
+            <van-dropdown-item get-container="#dropDownItemGroup" :lazy-render="false" title="关键词" ref="keywordItem" @open="open('关键词')" @close="close">
                 <template #title>
                     <span v-if="screenShow" class="keywordText">关键词</span>
                     <span v-if="!screenShow" class="rootstyletitle">
@@ -638,7 +625,7 @@
                 <keyword-component :key="setTimer.keytimer" @cancel="cancel" v-if="screenShow" @confirm="confirm" :selectkeywordlist="selectKeyWordList"></keyword-component>
                 <root-component v-if="!screenShow" @cancel="cancel" @confirm="confirm"></root-component>
             </van-dropdown-item>
-                        <van-dropdown-item get-container="#dropDownItemGroup" :lazy-render="false" title="公告类型" ref="noticeItem" @open="open('公告类型')" @close="close">
+            <van-dropdown-item get-container="#dropDownItemGroup" :lazy-render="false" title="公告类型" ref="noticeItem" @open="open('公告类型')" @close="close">
                 <template #title>
                     <span v-if="screenShow" class="noticeText">公告类型</span>
                     <span v-if="!screenShow" class="rootstyletitle">
@@ -792,9 +779,10 @@
 <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>
 <script src='{{Msg "seo" "cdn"}}/big-member/js/utils.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/selector/js/china_area.js'></script>
 <script src='{{Msg "seo" "cdn"}}/common-module/collection/js/root-mobile.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/common-module/collection/js/date-mobile.js?v={{Msg "seo" "version"}}'></script>
-<script src='{{Msg "seo" "cdn"}}/common-module/collection/js/area-mobile.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/collection/js/area-city-mobile.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/common-module/collection/js/industry-mobile.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/common-module/collection/js/cate-mobile.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/common-module/collection/js/keyword-mobile.js?v={{Msg "seo" "version"}}'></script>
@@ -805,7 +793,6 @@
 </script>
 <script src='{{Msg "seo" "cdn"}}/vipsubscribe/js/historypush.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}'></script>
-<script src='{{Msg "seo" "cdn"}}/vipsubscribe/js/mapArea.js?v={{Msg "seo" "version"}}'></script>
 <script>
     // 双11活动文案修改
     $.get('/jyactive/doubleEleven/isActiving?t=' + new Date().getTime(), function (r) {
@@ -820,61 +807,6 @@
 <script>
   // @手机号绑定及账号合并 2021/1/25
   $("#toKeySet").on('click', tokeysetForFree)
-  /*
-      * money unit for zyh @date 2020/6/5
-      * */
-      var MoneyUnit = {
-          levelArr: ['元', '万元', '亿元', '万亿元'],
-          test: function (num, type, lv) {
-              if (type === void 0) {
-                  type = 'string';
-              }
-
-              if (lv === void 0) {
-                  lv = 0;
-              }
-
-              if (num === 0) {
-                  if (type === 'string') {
-                      return '0';
-                  }
-
-                  if (type === 'lv') {
-                      return this.levelArr[lv];
-                  }
-
-                  if (type === 'number') {
-                      return 0;
-                  }
-
-                  if (type === 'index') {
-                      return lv;
-                  }
-              }
-
-              var result = num / Math.pow(10000, lv);
-
-              if (result > 10000 && lv < 2) {
-                  return this.test(num, type, lv + 1);
-              } else {
-                  if (type === 'string') {
-                      return String(Math.floor(result * 100) / 100).replace('.00', '') + this.levelArr[lv];
-                  }
-
-                  if (type === 'lv') {
-                      return this.levelArr[lv];
-                  }
-
-                  if (type === 'index') {
-                      return lv;
-                  }
-
-                  if (type === 'number') {
-                      return String(Math.floor(result * 100) / 100).replace('.00', '');
-                  }
-              }
-          }
-      }
       var zbadd = {{Msg "seo" "ZBADDRESS"}};
       var firstPage = null;
       var scrollTop = 0;
@@ -914,9 +846,7 @@
           }
 
           new FastClick(document.body);
-          //$("#normal_set").click(function () {
-          //  tokeysetForFree()
-          //});
+
           // TODO 缺陷疑问
           $(".wx_header_right .sub_manager").click(function () {
             sessionStorage.setItem(vm.sessStorageKey, JSON.stringify(vm.$data))
@@ -941,7 +871,8 @@
       var isExpire = 0;//即将到期的时间
       var userId = "";
 
-      var selectCity = vm.area; // 地区
+      var selectArea = vm.area; // 地区
+      var selectCity = vm.city; // 城市
       var selectIndustry = vm.subscopeclass // 行业
       var selectCate = vm.buyerclass // 采购单位
       var selectKeyword = vm.key // 关键词
@@ -987,6 +918,7 @@
               isExpire = sessionStorage.isExpire;
               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");
@@ -1032,7 +964,16 @@
               $.ajax({
                 type: 'post',
                 url: '/front/hasPushHistory?t=' + new Date().getTime(),
-                data: {"selectTime": firstTime, "pageNum": 1, "area": selectCity, "subscopeclass": selectIndustry, "buyerclass": selectCate, "key": selectKeyword, "subtype": selectNotice},
+                data: {
+                    selectTime: firstTime,
+                    pageNum: 1,
+                    area: selectArea,
+                    city: selectCity,
+                    subscopeclass: selectIndustry,
+                    buyerclass: selectCate,
+                    key: selectKeyword,
+                    subtype: selectNotice
+                },
                 async: false,
                 dataType: 'json',
                 success: function (data) {
@@ -1092,7 +1033,16 @@
                       $.ajax({
                           type: 'post',
                           url: '/swordfish/historypush/paging',
-                          data: {"pageNum": pageIndex, "selectTime": firstTime, "area": selectCity, "subscopeclass": selectIndustry, "buyerclass": selectCate, "key": selectKeyword, "subtype": selectNotice},
+                          data: {
+                            pageNum: pageIndex,
+                            selectTime: firstTime,
+                            area: selectArea,
+                            city: selectCity,
+                            subscopeclass: selectIndustry,
+                            buyerclass: selectCate,
+                            key: selectKeyword,
+                            subtype: selectNotice
+                          },
                           dataType: 'json',
                           success: function (data) {
                               //没有数据
@@ -1132,15 +1082,6 @@
 
       //页面渲染处理
       function showPage() {
-          //时间渲染
-          if (firstTime != null && firstTime != "" && firstTime.length >= 10) {
-              var _formatDate = formatDate(firstTime / 1000, "2");
-              date = formatDate(firstTime / 1000, "1");
-              $('#showDatePicker .time_result').html(_formatDate).addClass('current');
-          }
-          $(".tab_left .time").show();
-          //地区渲染
-          mapData();
 
           if (!isVipSub) {
             // 如果是新用户(没有推送历史数据,没有关键词),直接就显示空页面
@@ -1340,10 +1281,10 @@
               // 预算:budget;中标:bidamount
               var moneyList = "";
               if (obj.budget != null && obj.budget != "") {
-                  moneyList = '<span class="bidamount">' + MoneyUnit.test(obj.budget) + '</span>';
+                  moneyList = '<span class="bidamount">' + utils.moneyUnit(obj.budget) + '</span>';
               }
               if (obj.bidamount != null && obj.bidamount != "") {
-                  moneyList = '<span class="bidamount">' + MoneyUnit.test(obj.bidamount) + '</span>';
+                  moneyList = '<span class="bidamount">' + utils.moneyUnit(obj.bidamount) + '</span>';
               }
               //时间
               var showdateList = ""
@@ -1467,31 +1408,6 @@
                    vKeepComponent.changeKeepStatus(!shoucang, _this)
                 }
             }
-            // $.ajax({
-            //     url: '/publicapply/bidcoll/action',
-            //     type: "POST",
-            //     contentType: 'application/json;charset=utf-8',
-            //     data:JSON.stringify(paramsObj),
-            //     success: function(res){
-            //         console.log(res)
-            //         if(res.error_code == 0) {
-            //             if(res.data) {
-            //                 $(_this).find('.shoucang').show()
-            //                 $(_this).find('.weishoucang').hide()
-            //             } else {
-            //             }
-            //         }
-            //     },
-            //     error: function(err){
-            //         _this.$toast(res.error_msg)
-            //     }
-            // })
-            // this.listState.list.map((item,index) => {
-            // console.log(item)
-            // if(id === item._id) {
-            //     this.getList()
-            // }
-            // })
         })
       }
 
@@ -1613,7 +1529,7 @@
     //
     var ajaxFlag = true;
 
-    function ajaxFun(time, area, subscopeclass, buyerclass, key, subtype) {
+    function ajaxFun(time, area, city, subscopeclass, buyerclass, key, subtype) {
         if (!ajaxFlag) {
             return
         }
@@ -1621,7 +1537,16 @@
         $.ajax({
             type: 'post',
             url: '/front/hasPushHistory?t=' + new Date().getTime(),
-            data: {"selectTime": time, "pageNum": 1, "area": area, "subscopeclass": subscopeclass, "buyerclass": buyerclass, "key": key, "subtype": subtype},
+            data: {
+                selectTime: time,
+                pageNum: 1,
+                area: area,
+                city: city,
+                subscopeclass: subscopeclass,
+                buyerclass: buyerclass,
+                key: key,
+                subtype: subtype
+            },
             async: false,
             dataType: 'json',
             success: function (data) {
@@ -1673,7 +1598,16 @@
                         $.ajax({
                             type: 'post',
                             url: '/swordfish/historypush/paging',
-                            data: {"pageNum": pageIndex, "selectTime": time, "area": area, "subscopeclass": subscopeclass, "buyerclass": buyerclass, "key": key, "subtype": subtype},
+                            data: {
+                                pageNum: pageIndex,
+                                selectTime: time,
+                                area: area,
+                                city: city,
+                                subscopeclass: subscopeclass,
+                                buyerclass: buyerclass,
+                                key: key,
+                                subtype: subtype
+                            },
                             dataType: 'json',
                             success: function (data) {
                                 //没有数据
@@ -1778,124 +1712,6 @@
 </script>
 
 <script type="text/javascript" charset="UTF-8">
-    function mapData() {
-        var _citySessionData = null
-        var _provinceArr = {}//选择的省份对应的城市
-        var allCityNum = 0;//选择全部省份的个数
-        var cityNumArr = {};//单个省份下的城市个数
-        if (sessionStorage && sessionStorage.getItem(userId + "_selectCityName") != null) {
-            _citySessionData = JSON.parse(sessionStorage.getItem(userId + "_selectCityName"));
-            for (var k = 0; k < _citySessionData.length; k++) {
-                if (_citySessionData[k]["selectCity"]["0"] == "全部") {
-                    cityNumArr[_citySessionData[k]["province"]] = _citySessionData[k]["selectCity"].length - 1;
-                } else {
-                    cityNumArr[_citySessionData[k]["province"]] = _citySessionData[k]["selectCity"].length;
-                }
-                allCityNum += cityNumArr[_citySessionData[k]["province"]]
-                _provinceArr[_citySessionData[k]["province"]] = _citySessionData[k]["selectCity"]
-            }
-            //所选地级市的数量
-            if (allCityNum > 0) {
-                $('#showArea .jymobile-tab-triangle').addClass('current').text("地区 " + allCityNum);
-            }
-            //sessionStorage.removeItem("selectCityName");
-        }
-        var provinceHtml = '<div class="province">';
-        var cityHtml = '<div class="city" >';
-        for (var j = 0; j < chinaMapJSON.length; j++) {
-            var shwohide = 'none'
-            var _active = "";
-            var thisArea = chinaMapJSON[j]
-            for (var i in thisArea) {
-                //首先显示安徽省和其地级市 其他隐藏
-                if (i == "安徽") {
-                    shwohide = "";
-                    _active = "active";
-                }
-                var provinceFlag = true;
-                if (_provinceArr[i] != undefined && _provinceArr[i].length > 0) {
-                    provinceHtml += '<p class="p_item ' + _active + '"><span class="province-name">' + i + '</span><span class="city-count" style="display: inline;">(' + cityNumArr[i] + ')</span></p>'
-                    //
-                    cityHtml += '<div class="province_city" data-id="' + i + '" style="display:' + shwohide + '">';
-                    provinceFlag = false;
-                }
-                if (provinceFlag) {
-                    provinceHtml += '<p class="p_item ' + _active + '"><span class="province-name">' + i + '</span><span class="city-count"></span></p>'
-
-                    cityHtml += '<div class="province_city" data-id="' + i + '" style="display:' + shwohide + '">'
-                }
-                var cityArr = thisArea[i]//每个省份下的地市
-                var allSH = "";
-                if (cityArr.length == 1) {
-                    allSH = "hide";
-                }
-                var _cityMap = _provinceArr[i]
-                if (_cityMap != undefined && _cityMap[0] == "全部") {
-                    cityHtml += '<p class="c_item cityAll ' + allSH + '"><input type="checkbox" class="checkbox" checked><span class="city-name">全部</span></p>';
-                } else {
-                    cityHtml += '<p class="c_item cityAll ' + allSH + '"><input type="checkbox" class="checkbox"><span class="city-name">全部</span></p>';
-                }
-                for (var m = 0; m < cityArr.length; m++) {
-                    var cityFlag = true;
-                    if (_cityMap != undefined && _cityMap.length > 0) {
-                        for (var k = 0; k < _cityMap.length; k++) {
-                            if (_cityMap[k] == cityArr[m]) {
-                                cityHtml += '<p class="c_item"><input type="checkbox" class="checkbox"  checked><span class="city-name">' + cityArr[m] + '</span></p>';
-                                cityFlag = false;
-                                break;
-                            }
-                        }
-                    }
-                    if (cityFlag) {
-                        cityHtml += '<p class="c_item"><input type="checkbox" class="checkbox"><span class="city-name">' + cityArr[m] + '</span></p>'
-                    }
-                }
-                cityHtml += '</div>'
-            }
-        }
-        provinceHtml += '</div>'
-        cityHtml += '</div>'
-        $(".area_data").html(provinceHtml + cityHtml)
-
-        // 地区省份选择的操作
-        $('.province .p_item').click(function () {
-            var i = $(this).index();
-            $(this).addClass('active').siblings().removeClass('active');
-            $('.city div').eq(i).show().siblings().hide();
-        })
-        // 每次选择框变化,更新城市计数
-        $('.area_wrap .c_item input[type="checkbox"]').on('change', function () {
-            if ($(this).parent("p").hasClass("cityAll")) {
-                if ($(this).is(':checked')) {
-                    $(this).parent("p").nextAll("p").find('input[type="checkbox"]').prop('checked', true);
-                } else {
-                    $(this).parent("p").nextAll("p").find('input[type="checkbox"]').prop('checked', false);
-                }
-            } else {
-                if ($(this).is(':checked')) {
-                    if ($(this).parent().parent().find('input:checked').length == ($(this).parent().parent().find('p').length - 1)) {
-                        $(this).parent().parent().find('.cityAll  input[type="checkbox"]').prop('checked', true);
-                    }
-                } else {
-                    $(this).parent().parent().find('.cityAll  input[type="checkbox"]').prop('checked', false);
-                }
-            }
-            var i = $(this).parent().parent().index()
-            // 找到该省份下所有被选中的input,统计有几个
-            var checkedCityNum = $(this).parent().parent().find('input:checked').length;
-            if (checkedCityNum > 0 && $(this).parent().parent().find('.cityAll  input[type="checkbox"]').is(':checked')) {
-                //判断全选是否
-                checkedCityNum = checkedCityNum - 1;
-            }
-            var cityCountDOM = $('.province .p_item').eq(i).children('.city-count')
-            if (checkedCityNum) {
-                cityCountDOM.show().text("(" + checkedCityNum + ")")
-            } else {
-                cityCountDOM.show().text('')
-                cityCountDOM.hide()
-            }
-        })
-    }
     function weuiDialog() {
         weui.dialog({
             title: '提示信息',
@@ -1921,19 +1737,6 @@
         });
     }
 
-    function FTAGData(time) {
-        if (time != undefined && time.toString() != "") {
-            // var Time = new Date(time);
-            // var timestemp = Time.getTime();
-            // firstTime = timestemp.toString();
-            firstTime = time;
-            ajaxFun(firstTime, selectCity);
-        } else {
-            firstTime = "";
-            ajaxFun("", selectCity);
-        }
-    }
-
     var _scrollTop = 0;
 
     function scrollHtml() {
@@ -1981,16 +1784,6 @@
             date = formatDate(firstTime / 1000, "1");
         }
 
-        //
-        $('.screen').click(function () {
-            //$(".subscribe").toggleClass('overClass');
-            //scrollHtml();
-            if (sessionStorage.getItem(userId + "_selectCityName") == "" || sessionStorage.getItem(userId + "_selectCityName") == undefined) {
-                $('#showArea').find("span").toggleClass("current");
-            }
-            $('.area_container').slideUp();
-            $('.screen').hide();
-        })
         // 关闭设置弹窗
         $('#close_set').on('click', function () {
             $('.set_keyword').hide()