瀏覽代碼

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

TANGSHIZHE 4 年之前
父節點
當前提交
d24bed3fb0
共有 59 個文件被更改,包括 6381 次插入1396 次删除
  1. 73 0
      src/jfw/front/jylog.go
  2. 2 0
      src/jfw/front/swordfish.go
  3. 2 0
      src/jfw/modules/app/src/app/front/swordfish.go
  4. 7 0
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/j-icons.css
  5. 40 17
      src/jfw/modules/app/src/web/staticres/jyapp/js/searchindex.js
  6. 64 0
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/rights_page.css
  7. 二進制
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/image/rights-icons.png
  8. 5 1
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/price.js
  9. 6 0
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/vip_index_new.js
  10. 125 13
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/vip_renew.js
  11. 29 34
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/vip_upgrade.js
  12. 0 65
      src/jfw/modules/app/src/web/templates/vipsubscribe/commonRules.html
  13. 18 13
      src/jfw/modules/app/src/web/templates/vipsubscribe/vip_UpgradePage.html
  14. 143 39
      src/jfw/modules/app/src/web/templates/vipsubscribe/vip_purchase.html
  15. 54 4
      src/jfw/modules/app/src/web/templates/vipsubscribe/vip_renew.html
  16. 8 50
      src/jfw/modules/app/src/web/templates/weixin/search/mainSearch.html
  17. 88 183
      src/jfw/modules/app/src/web/templates/weixin/search/tabSearch.html
  18. 46 3
      src/jfw/modules/common/src/qfw/util/jy/subscribepush.go
  19. 7 3
      src/jfw/modules/publicapply/src/bidcollection.json
  20. 142 11
      src/jfw/modules/publicapply/src/bidcollection/entity/entity.go
  21. 4 3
      src/jfw/modules/publicapply/src/bidcollection/service/service.go
  22. 8 4
      src/jfw/modules/publicapply/src/config/config.go
  23. 1 1
      src/jfw/modules/subscribepay/src/service/invoice.go
  24. 2 2
      src/jfw/modules/subscribepay/src/service/vipSubscribePay.go
  25. 4 2
      src/web/staticres/common-module/coupon/js/pay-order-template.js
  26. 449 0
      src/web/staticres/common-module/ent-search/ent-search-template.css
  27. 7 0
      src/web/staticres/common-module/ent-search/ent-search-template.css.map
  28. 392 0
      src/web/staticres/common-module/ent-search/ent-search-template.js
  29. 405 0
      src/web/staticres/common-module/ent-search/ent-search-template.scss
  30. 164 0
      src/web/staticres/common-module/ent-search/j-icon.css
  31. 56 61
      src/web/staticres/common-module/vipsubscribe/js/vip-coupon-template.js
  32. 66 24
      src/web/staticres/common-module/vipsubscribe/js/vip-size-template.js
  33. 54 0
      src/web/staticres/css/ele-reset.css
  34. 466 35
      src/web/staticres/css/wxsearch.css
  35. 0 39
      src/web/staticres/frontRouter/pc/collection/css/index-pc.css
  36. 9 2
      src/web/staticres/frontRouter/pc/collection/js/index-pc.js
  37. 二進制
      src/web/staticres/images/ent-search-item-mask.jpg
  38. 255 55
      src/web/staticres/js/ent-search-index-pc.js
  39. 265 0
      src/web/staticres/js/selector/area-pc.js
  40. 5 0
      src/web/staticres/js/selector/price-pc.js
  41. 2 2
      src/web/staticres/js/selector/select-list-pc.js
  42. 26 0
      src/web/staticres/js/superSearch.js
  43. 303 114
      src/web/staticres/js/wxSupersearch.js
  44. 75 4
      src/web/staticres/pccss/ent-search-index-pc.css
  45. 64 0
      src/web/staticres/vipsubscribe/css/rights_page.css
  46. 二進制
      src/web/staticres/vipsubscribe/image/rights-icons.png
  47. 2 1
      src/web/staticres/vipsubscribe/js/price.js
  48. 5 0
      src/web/staticres/vipsubscribe/js/vip_index_new.js
  49. 107 3
      src/web/staticres/vipsubscribe/js/vip_renew.js
  50. 22 16
      src/web/staticres/vipsubscribe/js/vip_upgrade.js
  51. 1 7
      src/web/staticres/wx_dataExport/css/search_tab.css
  52. 0 65
      src/web/templates/common/commonRules.html
  53. 6 6
      src/web/templates/frontRouter/pc/collection/sess/index.html
  54. 194 126
      src/web/templates/pc/entsearchindex.html
  55. 153 337
      src/web/templates/weixin/search/mainSearch.html
  56. 1684 0
      src/web/templates/weixin/search/tabSearch.html
  57. 23 8
      src/web/templates/weixin/vipsubscribe/vip_UpgradePage.html
  58. 178 26
      src/web/templates/weixin/vipsubscribe/vip_purchase.html
  59. 65 17
      src/web/templates/weixin/vipsubscribe/vip_renew.html

+ 73 - 0
src/jfw/front/jylog.go

@@ -0,0 +1,73 @@
+package front
+
+/**
+日志文件自动切换,默认保留15天内日志
+**/
+
+import (
+	"log"
+	"os"
+	"path/filepath"
+	"regexp"
+	"time"
+
+	"github.com/go-xweb/xweb"
+	"github.com/robfig/cron"
+)
+
+//日志格式
+var fileReg = regexp.MustCompile("^(\\d{4}_[0-9_]{14})\\.log$")
+
+//当前日志文件句柄
+var LogFile *os.File
+
+//时间格式
+var FMT = "2006_01_02_15_04_05"
+
+//日志目录
+var LogPath = "./jylog"
+
+func init() {
+	os.Mkdir(LogPath, os.ModePerm)
+	//默认保留15天内的日志,-1为永久保留
+	initLog(15)
+}
+
+func initLog(saveDay int) {
+	go logfile()
+	task := cron.New()
+	task.Start()
+	task.AddFunc("0 0 0 * * ?", func() {
+		go logfile()
+		time.Sleep(50 * time.Second)
+		if saveDay > 0 {
+			filepath.Walk(LogPath, func(path string, info os.FileInfo, err error) error {
+				str := fileReg.FindStringSubmatch(info.Name())
+				if len(str) == 2 {
+					t, er := time.ParseInLocation(FMT, str[1], time.Local)
+					if er == nil {
+						if (time.Now().Unix()-t.Unix())/86400 > int64(saveDay) {
+							log.Println("delete log file:", path, os.Remove(path))
+						}
+					}
+				}
+				return nil
+			})
+		}
+	})
+}
+
+//创建并切换输出文件
+func logfile() {
+	now := time.Now().Format(FMT)
+	file, _ := os.Create(LogPath + "/" + now + ".log")
+	log.SetOutput(file)
+	xweb.RootApp().Logger.SetOutput(file)
+	go func(file *os.File) {
+		time.Sleep(5 * time.Second)
+		if LogFile != nil {
+			LogFile.Close()
+		}
+		LogFile = file
+	}(file)
+}

+ 2 - 0
src/jfw/front/swordfish.go

@@ -1981,6 +1981,7 @@ func (f *Front) HasPushHistory() {
 			}
 		}
 	}
+	jy.SubscribePush.MakeCollection(userId, public.Mysql, list)
 	//
 	f.ServeJson(map[string]interface{}{
 		"haskey":      hasKeyFlag,
@@ -2095,6 +2096,7 @@ func (f *Front) HistorypushPaging() error {
 			Subscopeclass: f.GetString("subscopeclass"),
 			Key:           f.GetString("key"),
 		})
+		jy.SubscribePush.MakeCollection(userId, public.Mysql, list)
 		//		hasNextPage, list, _ := public.HistoryPush.Datas(userId, pageNum, firstPushTime, formatTime)
 		f.ServeJson(map[string]interface{}{
 			"hasNextPage": hasNextPage,

+ 2 - 0
src/jfw/modules/app/src/app/front/swordfish.go

@@ -448,6 +448,7 @@ func (f *Front) HasPushHistory() {
 		Key:           f.GetString("key"),
 	}
 	hasNextPage, list := jy.SubscribePush.Datas(spqp)
+	jy.SubscribePush.MakeCollection(userId, public.Mysql, list)
 	//首次用户推送查询“其他”
 	t, _ := time.ParseInLocation("2006-01-02", time.Now().Format("2006-01-02"), time.Local)
 	today_1 := t.Unix()
@@ -532,6 +533,7 @@ func (f *Front) HistorypushPaging() error {
 		Subscopeclass: f.GetString("subscopeclass"),
 		Key:           f.GetString("key"),
 	})
+	jy.SubscribePush.MakeCollection(userId, public.Mysql, list)
 	f.ServeJson(map[string]interface{}{
 		"hasNextPage": hasNextPage,
 		"data":        list,

+ 7 - 0
src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/j-icons.css

@@ -339,6 +339,13 @@
 .icon-address {
     background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAKaSURBVHgB7ZhBkhIxFED/T+OMsxJv0OwAF8AJBKa0ypVHgCPMDYAbOCeQOQHDyoUOjSdocIFUubBvIKsplenE/JapckZ+Ot2dZb8qqqvIT3jwk58EgJKSEiMIBah/DLsovLd6lDaC8vVb/mHQnQRcgYKVkvF8+6qzhJzkEkzEPG+kpbqWXSJQcrI570whI5kE/VlYPXvmzTKIPUThVP6OJ9s3nci2i7Vg/UPoi1MRwCGNBYjkL9mzlbQSdCh3j7WkAAu03AzcyRE+nnrvbQJTBZvBeqQfbUhHLwR1nbxArdKCaR43bsKL9DgDVqlFdb3fq8m3150HUvUg9FHBGEEMgGd3i7IW9To7LqBi6AziBLpGOQWTTb89Pta07SXza9i8CSNAMWJGqJ5JGOrnO+AcwAAiDoxy560xpKBr31jXwEv+Q3ShN8AKtoOwqgC7cNQNolsh2W/9mBMBY/04mkaai77+LMgq+POOXxiIammaN49ZUaySV1z7E8M0sioz/yHVZ8gOu7IrcQ5BIZzWPSOIkD3FSgGbQj0H2QHz9JFS11AGXtDjU5K28o52Ae8l1xZX+B/DWKibi/UPYL653ktrthv+oeB/Z5p3m37rOdfXvEgULtmOf/dnK4yxSFujoa+pUcr40tDcbiy+BPTrcAF0fqQYMOzlKlZzMJB63HqxWAVcwT5AW9l0v7+b3+/HSUqfVgao5IVpcVDB/9pv1aCIIB3vhZccGJwjY30mTLmvpBbqZAB9nwDX6L3c5jJlfeRvfFpPUcAAHKBTe6VTO7SJzXRpciGZRY7IfO0sIplVjsh1L84jmUeOyP3PQhbJvHJEob8+bCSLyBGFBAmTZFE5orAgcUzShRzhRJD4V9KVnHNIsrFYT6GkxJ4/YdQTQvZUTqcAAAAASUVORK5CYII=");
 }
+/* 对勾-圈 */
+.icon-tick-circle-fill {
+    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOuSURBVHgB7ZlPSBRRHMd/762oocUWgmJKIyWsQegePHRyN+nQba276VUhu3kwUA9BxwzqmtI53E5BYeqhk4ddCXRByJFUlKIWS/xDO6/fm3YHXebNvLezs3uZDww7s+/Nm+935r3fe/MbgICAgIBqQqBMRN6ntFAtJBiQbiAkhg2HGW75i2RxX2eM6BRyy7lTSGbuRXUoA54N3FxIDTESekiAxUCNNDBjZq0/OgseKNlA5GMqRkP0Ne5q4A0djUyXakTZgDafCjeEQ5OMscdQRggjzw9pblqPR7NK56lU5v2c1tF53O0Bf9CNEyOuMj6kDeTFL4L3LuOGkgkqU4l3mwqJNy/Hn7K2mArLVJYywPs8VEZ8gZ4Gw7ymK65diIdJIGa0qThGDrvS3eiSUx33J0Co1J3wg3yYdq7jVGje/Qp0nUTLZXOzQctrEFLjVEgIHWPgL6NaM4x0NFvHyb1f58r5LI8/s6LzhU+Ah03mX7w3KRZvB1+idH1euyYqFxoguDADH7G788V33+L4ZEDUjtgAhPrAJ+zET6x/E9YnFFe4AsQGCNPs/m+tr4UPtyPmFmmsB1VUxZswEhMVCQ0wQfTh0eIqmuDbbPQ69DddAllKEv8f4axMVU96hxfdPT419y/WhODFLQ0G25rAjWLxC98PZMULtXCklhJn2UHxQ6mvlgnOeGcrjDpEk2LxmT9H8CQjLd4RJwPCdbmdiREUaWfCTvwwnnvwNwcKCLWUZIDDTdxf2TAFFeAmnna1Wcd8vJRBPEcXFTgMYmMZXPiNQh6gieTeT+u/RMsVeNvbCYPtTWim3frfg3iuZUtURh3OSoMkE+vb8HJz3zqONF6A8Rut1jHvao++bJUkPq9lSVQkfgIUkqDAK33/nIkCu/nxsnNmvKjipEVoIBOP6rgOWQIFuIlnG7vWcTnEI2muRVTouBrNMTZHiXgWtOPN9g9YyR5Cb7jBnDNK7jZ5DMwdOZW7vpF1fVrdJJV9nbTg2bz1O90dTnVcJzKWM4ahSjBMeLnVcTVgvpO6PEY/YAxmMhLZOqmlRC2FKQD5sOoV3nWOqDElU1fKQBrTfQYxBpjDjFguzCw2MeKyKUbpxRwPZbxhP01g22l+DaewWYzSapQ3XEeMqB9jgvf5I0XxnNLT65juwKzFpNcQa3YZjHRuCSwRnj9wcCM42Y1hU0oZDIazPKbo5zLV+sBRTGQxpREDEgRIH7aqYdO4WW9SWXNjKBrYKivjJ6aAgICA6vIPiiaSgW3pn7sAAAAASUVORK5CYII=");
+}
+.icon-tick-circle {
+    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANySURBVHgB7VndUdtAEP5OsvPsDiIqiDMJmWEgg1VBTAVABZAKwBUEKghUEFKB7AmEBwg4FcTpgKc8YKTN7kk2MsPpx5asyUTfjHxne3W7e3u3u7cH1KhRo0aVUCgI3uWlA7/RVcp6BaIOCC0evaX/JNxxfyQPEQ0wfjhz3bURCsDCCngXP3YU0TZ3O8iHIang2F1/d4IFMLcC3rerjlLqM3cd/YPMsqXOyMcAtj/EfXPkuq/vNK1328KLMdPZbfg+v2d9mFoHbBUV9OZVJLcCIozVDA4ItD8VAHSMceNkInCmcULLHSCaAAV1FIytXp4xwvdywPMuHdVsfuFuW2acFPXcjdUjLADv/Gqfhf8UfR3ReOzm2R+ZFYiE9xDOWG5GZY1tZSGSZRNjMCxSeIGMJWPK2MJDrKz3TQZkUkDWPB5nZ6tI4SeIlNgSHvy0I56pSF1C0WYTbwNmsFKG8DP8wuV0y90WxwzXfb/aT6JPtUDkKXjP0seyhRdoS4B6mnfophORaIHY7I86G29XsET0z69/ceNwjNhNihGJFmDh96SVQIMlQ8cWLYO1nURnVEDWIsTfA3eLhvu5wIFRePPTubi5eWkiM1ug2eiGHXWGCiARmQJ8lf79H3/LRGdUQJHalJaUP0BlUH39KRmuAWYLqChJC4NLNfD9Ce+OiSRpEzv6k7NKVIaIN5ExKicpoF/Kmx0WiRjvuRT4J5CkwONhpCLEeBtXQaoC4UmqKkx5j0wURgXYB0/cZxtV4YWteXNU/m0iMVvAIu3CFOxNVAROZSa8+yYaswJc+tAtUbfCfdCdkeUZGBWIUuc+xIU1H3awZEgmjNB9DpPS+EQ3SkqdSsuH7j0sGdNzCNeOkugSFXDX35wg9ACOVA+wJAy+X8uEOcI7LRNODWR8rNuVlq1wEKXYpUJ4sAfUpZos55BUBeRMSgQxo65MlKlErLwC4ZnlHJItlXiwDzFT8iheiVjRzIEs25BnKv6PwpYgVnwaIbTEbREbWzasaugyioM5imZzFXfR8A+VwsS15q4u6zE4tkTu2ZHf9D7jZVNqcXdGiCfV5fASg8vr4RH0+fK6b7eVjU0E1J0pr7OnSytgFa7AE0VkJvMmfX223GllFxxPoT1TU66YuBhAbBV5Zq+YxELskoOfsPmKaa38Kl+NGjVqlI+/zO65Qdp3pJkAAAAASUVORK5CYII=");
+}
 
 /******** img背景图 **********/
 .j-img {

+ 40 - 17
src/jfw/modules/app/src/web/staticres/jyapp/js/searchindex.js

@@ -995,6 +995,10 @@ var SuperSearch = {
         console.log('没有筛选tab 01')
         $("#supersearchPage div[data-open='industry']").trigger('click')
         console.log('清空 01', sessionStorage.superSearch_shaxuan)
+        // 隐藏企业搜索
+        if (vEntSearchComponent) {
+          vEntSearchComponent.toggleEntShow(false)
+        }
         SuperSearch.filterWin = {}
         SuperSearch.filterBuy = {}
         $('#supersearchPage .list').find('.industry_item').removeClass('active');
@@ -1577,14 +1581,16 @@ var SuperSearch = {
 		}
 	},
   changeKeepStatus (id, type) {
-    var aDom = $("a[sid='"+id+"']")
+    var aDom = $("p[sid='"+id+"'], a[sid='"+id+"']")
     if (aDom.length) {
-      var gDom = aDom.parents('.two-group').find('.flow-start-box')
-      if (type) {
-        gDom.addClass('fill')
-      } else {
-        gDom.removeClass('fill')
-      }
+      aDom.each(function () {
+        var gDom = $(this).parents('.two-group').find('.flow-start-box')
+        if (type) {
+          gDom.addClass('fill')
+        } else {
+          gDom.removeClass('fill')
+        }
+      })
     }
   },
   checkStartKeepStatus: function (list) {
@@ -1610,6 +1616,13 @@ var SuperSearch = {
       event.preventDefault();
       event.stopPropagation();
       console.log('收藏')
+
+      // 登陆判断
+      if(userId == ""||userId == null){
+        window.location.href = "/jyapp/free/login?to=back";
+        return;
+      }
+
       var isStartStatus = $(event.target).hasClass('.flow-start-box.fill') || $(event.target).parents('.flow-start-box.fill').length
 
       if (vKeepComponent) {
@@ -2515,6 +2528,11 @@ var SuperSearch = {
 		SuperSearch.listLength =  r["listLength"]
 		SuperSearch.myHistory = r["history"]
 		var list = r["list"]
+    if (list && list.length) {
+      SuperSearch.checkStartKeepStatus(list.map(function(v) {
+        return v._id
+      }))
+    }
 		var homeListHtml = '';
 		if(list!=null&&list.length>0){
 			for(var i=0;i<list.length;i++){
@@ -2535,7 +2553,10 @@ var SuperSearch = {
 				homeListHtml +='<div class="list_item" data-need-bind-phone data-onclick="'+_list["_id"]+'">'
 									+'<div class="list_title">'
 									+'<span class="serial_number">'+(i+1)+'. &nbsp;</span>'
-									+'<p>'+title+'</p>'
+                  + '<div class="two-group">'
+									+'<p sid="'+_list["_id"]+'">'+title+'</p>'
+                  + '<div class="flow-start-box"><i class="icon-flow-start"></i></div>'
+                  + '</div>'
 									+'</div>'
 									+'<div class="list_info">'
 									+'<div class="tags">'
@@ -2598,17 +2619,19 @@ var SuperSearch = {
 			}
 		}
 		SuperSearch.showHomeList(homeListHtml);
-		$("*[data-onclick]").on('click', function () {
-      SuperSearch.HomeToDetails($(this).attr('data-onclick'))
+		$("*[data-onclick]").on('click', function (e) {
+      SuperSearch.HomeToDetails($(this).attr('data-onclick'), e)
     })
 	},
-	HomeToDetails:function(id){
-		if(id!=""){
-			sessionStorage.setItem('main-list-data-set-time', JSON.stringify(new Date().getTime()))
-			sessionStorage.setItem('main-scroll-top', nowTop())
-			sessionStorage.setItem('main-save-dom', JSON.stringify($("#home_main .data_list").html()))
-			window.location.href="/jyapp/article/content/"+id+".html"
-		}
+	HomeToDetails:function(id, e){
+      if (SuperSearch.checkIsStartFn(e, { sid: id })) {
+        if(id!=""){
+          sessionStorage.setItem('main-list-data-set-time', JSON.stringify(new Date().getTime()))
+          sessionStorage.setItem('main-scroll-top', nowTop())
+          sessionStorage.setItem('main-save-dom', JSON.stringify($("#home_main .data_list").html()))
+          window.location.href="/jyapp/article/content/"+id+".html"
+        }
+      }
 	},
 	showHomeList:function(hh){
 		SuperSearch.initHomeTip();

File diff suppressed because it is too large
+ 64 - 0
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/rights_page.css


二進制
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/image/rights-icons.png


+ 5 - 1
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/price.js

@@ -40,6 +40,10 @@ var Calculation = {
                 "oneProvince_allBuyerClass": 3800,
                 "allProvince_allBuyerClass": 59900
             },
+            "quarter": {
+              "oneProvince_allBuyerClass": 9900, 
+              "allProvince_allBuyerClass": 149900
+            },
             "year": {
                 "oneProvince_allBuyerClass": 38000,
                 "allProvince_allBuyerClass": 599900
@@ -93,7 +97,7 @@ var Calculation = {
            buyTime  [数量,单位(1:年,2月)]
     return 价格、计价清单
      */
-    GetUpgradeDetail: function (newBuyset = new Buyset(), buyTime = [1, 2]) { //升级计价 time[数量,单位(1:年,2月)]
+    GetUpgradeDetail: function (newBuyset = new Buyset(), buyTime = []) { //升级计价 time[数量,单位(1:年,2月)]
         let subtotail = []; //计价清单
         let final_price = 0; //最终计算价格
         let nowEndTime = this.EndTime;

+ 6 - 0
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/vip_index_new.js

@@ -55,6 +55,11 @@ function getNewYearMarketing () {
 //     }
 // });
 $(function () {
+  // 清除商品规格当前选择
+  sessionStorage.removeItem("vip-cur-select-size")
+  // 清除商品优惠券当前选择
+  sessionStorage.removeItem("vip-cur-select-coupon")
+  sessionStorage.removeItem("$select-coupon")
   var $dialog;
   /* vue 代码 start 提交订单 */
   /* 
@@ -865,6 +870,7 @@ $(function () {
         $('[data-update-tips]').hide()
         if (state.buyset.areacount == -1) {
           $('*[data-bind-update]').hide()
+          $('button[data-bind-renew]').css("margin-right", 0)
         }
       }
   }

+ 125 - 13
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/vip_renew.js

@@ -37,16 +37,23 @@ var renew = {
             result.area = '全国'
         } else {
             var strArr = []
-            if (buySet.areacount) {
+            if (buySet.upgrade == 1) {
+              if (buySet.areacount) {
+                strArr.push(buySet.areacount + '')
+              }
+            } else {
+              if (buySet.areacount) {
                 strArr.push(buySet.areacount + '个省')
+              }
+              if (buySet.newcitys && buySet.newcitys.length !== 0) {
+                  var count = 0
+                  buySet.newcitys.forEach(function (item) {
+                      count += item
+                  })
+                  strArr.push(count + '个市(分布在' + buySet.newcitys.length + '个省内')
+              }
             }
-            if (buySet.newcitys && buySet.newcitys.length !== 0) {
-                var count = 0
-                buySet.newcitys.forEach(function (item) {
-                    count += item
-                })
-                strArr.push(count + '个市(分布在' + buySet.newcitys.length + '个省内')
-            }
+            
             result.area = strArr.join('、')
         }
 
@@ -88,6 +95,17 @@ var renew = {
                             _this.buyInfo.buyset.upgrade || 0
                         )
                     )
+                    // 新超级订阅续费
+                    if (r.data.buyset.upgrade == 1) {
+                      $("[data-new-vip]").show()
+                      $("[data-old-vip]").hide()
+                      if (_this.buyInfo.buyset.areacount == -1) {
+                        goodsSize.props.areaCount = 16
+                      } else {
+                        goodsSize.props.areaCount = _this.buyInfo.buyset.areacount
+                      }
+                      
+                    }
                     // 初始化默认金额
                     _this.setPrice(_this.calcPrice())
                 }
@@ -101,7 +119,9 @@ var renew = {
             type: 'POST',
             success: function (r) {
                 if (r) {
-                    _this.requestRules = r
+                  _this.requestRules = r
+                  // 将价格列表传至商品规格组件
+                  goodsSize.props.priceInfo = r.new
                 }
             }
         })
@@ -113,7 +133,28 @@ var renew = {
     // 设置价格
     setPrice: function (price) {
         this.price = parseInt(price)
-        coupon.updatePrice(this.price / 100)
+        var size = JSON.parse(sessionStorage.getItem('vip-cur-select-size')) 
+        // console.log(renew.buyInfo.buyset)
+        var count = renew.buyInfo.buyset.areacount == -1 ? 16 : renew.buyInfo.buyset.areacount
+        if (this.buyInfo.buyset.upgrade == 1) {
+          // 新规则初始化价格
+          if (size) {
+            // 初始化上次选择的商品规格
+            coupon.updatePrice(size.price / 100)
+          } else {
+            // 初始化默认一个月*省份数量或全国价格
+            sessionStorage.removeItem('$select-coupon')
+            if (count >= 16) {
+              coupon.updatePrice(59900 / 100)
+            } else {
+              coupon.updatePrice(3800*count / 100)
+            }
+          }
+        } else {
+          // 旧规则初始化价格
+          coupon.updatePrice(this.price / 100)
+        }
+        // coupon.updatePrice(this.price / 100)
     },
     // 根据选中结果得到续费了多长时间的字符串
     getDuration: function (timeSelect) {
@@ -281,18 +322,30 @@ var renew = {
             _this.setPrice(_this.calcPrice())
             _this.saveState()
         })
-
         $('.vip-footer.renew .confirm').on('click', function () {
+          var upgrade = renew.buyInfo.buyset.upgrade
+          var size = goodsSize.defaultSize
+          var sizeTime = ''
+          if (size && size.period) {
+            if(size.period.indexOf('月') > -1) {
+              size.period = size.period.replace('月', '个月')
+            }
+            sizeTime = size.period
+          } else {
+            sizeTime = '1个月'
+          }
+          console.log(upgrade,sizeTime, '新or老')
             $('.vip-footer.renew .confirm').prop('disabled', true)
             //支付请求
             var data = {
                 userLotteryId :coupon.$refs.couponRef.coupon.userLotteryId,
                 lotteryId : coupon.$refs.couponRef.coupon.lotteryId,
-                time : _this.getDuration(_this.timeSelect).trim(),
+                time : upgrade == 0 ? _this.getDuration(_this.timeSelect).trim() : sizeTime,
                 orderType: 5,
                 disWord :GetQueryString('disWord'),
-                price: _this.price
+                price: coupon.initPrice*10000/100
             }
+            console.log(data, '提交参数')
             $.ajax({
                 // url: '/subscribepay/vipsubscribe/createOrder',
                 url: '/subscribepay/vipsubscribe/renew',
@@ -485,6 +538,9 @@ function clearSessionStorage() {
     sessionStorage.removeItem("pay_read_cache")
     sessionStorage.removeItem("liveActiveCode_renew");
     sessionStorage.removeItem("liveActiveCode_new");
+    // 清除商品规格当前选择
+    sessionStorage.removeItem("vip-cur-select-size")
+    sessionStorage.removeItem("$select-coupon")
 }
 function showToast(text) {
     weui.toast(text, {
@@ -506,6 +562,61 @@ function pickerShow(selector, f) {
     }
 }
 /* vue 代码 start */
+// vip商品规格
+var goodsSize = new Vue({
+  el:'#goods-size-vue',
+  data: function() {
+    return {
+      props: {
+        defaultSize: {},
+        areaCount: 1,
+        priceInfo: {}
+      }
+    }
+  },
+  created () {
+    
+  },
+  mounted () {
+    this.getSizeStorage()
+  },
+  methods: {
+    // 父组件传省份数量至子组件
+    getAreaCount: function() {
+      var areaStorage = JSON.parse(sessionStorage.getItem('vipSubSelectArea'))
+      console.log(renew.buyInfo.buyset.areacount)
+      if (areaStorage) {
+        var count = 0
+        for (var key in areaStorage) {
+          if (key.indexOf('全国') > -1) {
+            count = 16
+          } else {
+            count++
+          }
+        }
+        this.props.areaCount = count
+      }
+    },
+    getSizeStorage: function() {
+      // 恢复商品规格选择
+      var size = JSON.parse(sessionStorage.getItem('vip-cur-select-size')) 
+      // console.log(size, '恢复的商品规格')
+      if (size) {
+        this.$refs.goodsSize.goodsActive = size.index
+        this.defaultSize = size
+        this.$nextTick(function(){
+          coupon.updatePrice(size.price/100)
+        })
+      }
+    },
+    getGoodSize: function(data) {
+      // console.log(data, '父组件接收子组件传来的商品规格')
+      sessionStorage.removeItem('$select-coupon')
+      this.defaultSize = data
+      coupon.updatePrice(data.price/100)
+    }
+  }
+})
 var coupon = new Vue({ 
   el: '#coupon-vue',
   data: function () {
@@ -531,6 +642,7 @@ var coupon = new Vue({
     this.init()
   }, 
   methods: {
+    updateCoupon: function(data) {},
     // 更新价格相关
     updatePrice: function (before) {
       console.log( '原价:' + before)

+ 29 - 34
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/vip_upgrade.js

@@ -4,7 +4,7 @@ var purchase = {
   }, //已选择地区 {"一个省":["一个市"]}计算价格临时变量
   industrySelect: ["一个行业"], // 已选择行业 一个行业(计算价格临时变量)
   timeSelect: [1, 2], //已选择时间 timeSelect[0]时长  timeSelect[1] 1:年 2:月
-  timeValue: "个月",
+  timeValue: "1个月",
   endTime: "",
   price: {}, //价格
   nowBuyset: {},
@@ -102,7 +102,7 @@ var purchase = {
       console.log(e)
     }
     this.nowBuyset = getBuySet(purchase.areaSelect, purchase.industrySelect, this.price)
-    var old = this.oldBuySet
+    var old = purchase.oldBuySet
     // 选择完区域回显后 需判断选择省份结果
     console.log(this.nowBuyset.areacount,old.areacount,Object.keys(purchase.areaSelect).length)
     // 如果原套餐选择的非全国,当前选择的也非全国, 则判断当前选择的省份数量省份大于原套餐的省份数量,大于则可以提交,小于则不能提交
@@ -139,22 +139,24 @@ var purchase = {
     }
   },
   showArea: function () {
-    if (!$.isEmptyObject(this.areaSelect) && !this.areaSelect["一个省"]) { //有选择
+    if (!$.isEmptyObject(this.areaSelect)) { //有选择
       if (this.nowBuyset.areacount === -1 || this.nowBuyset.areacount >= 16) {
         $(".selected-area").text("全国");
         this.nowBuyset.areacount === -1
       } else {
         var tipTxt = "";
-        if (this.nowBuyset.areacount > 0) tipTxt += this.nowBuyset.areacount + " 个省";
-        var count = 0;
-        this.nowBuyset.citys.forEach(function (item, index) {
-          count += item;
-        });
-        if (count > 0) {
-          if (this.nowBuyset.areacount > 0) tipTxt += "、";
-          tipTxt += count + " 个市";
-          if (this.nowBuyset.citys.length > 1) tipTxt += "(分布在" + this.nowBuyset.citys.length + "个省内)"
-        }
+        // if (this.nowBuyset.areacount > 0) tipTxt += this.nowBuyset.areacount + "";
+        // var count = 0;
+        // this.nowBuyset.citys.forEach(function (item, index) {
+        //   count += item;
+        // });
+        // if (count > 0) {
+        //   if (this.nowBuyset.areacount > 0) tipTxt += "、";
+        //   tipTxt += count + " 个市";
+        //   if (this.nowBuyset.citys.length > 1) tipTxt += "(分布在" + this.nowBuyset.citys.length + "个省内)"
+        // }
+        /* 1个市相当于一个省,取对象的length */
+        tipTxt = Object.keys(this.areaSelect).length
         $(".selected-area").text(tipTxt);
       }
     } else {
@@ -211,12 +213,12 @@ var purchase = {
       }
     }
     this.timeValue = tmp;
+    
   },
   // 计算价格
   flushPrice: function (time, flag) {
     var times = [time[0], time[1]];
-    // var price = getsubVipOrderPriceBybuyset(this.nowBuyset, time); // 2021-5-20
-    // var givePrice = getsubVipOrderPriceBybuyset(this.nowBuyset, [time[1] === 1 ? 1 : time[0], time[1]]); // 2021-5-20
+    console.log(time,times, '11111')
     var obj = this.nowBuyset
     /* 处理 
       1.如果原选择的是全国,则不让跳转选择区域
@@ -231,8 +233,11 @@ var purchase = {
       purchase.areaSelect = {}
     }
     obj.areacount = Object.keys(purchase.areaSelect).length == 0 ? -1 : Object.keys(purchase.areaSelect).length
-    var price = Calculation.GetUpgradeDetail(new Buyset(obj.areacount,[],obj.buyerclasscount,1), time)
-    var givePrice = Calculation.GetUpgradeDetail(new Buyset(obj.areacount,[],obj.buyerclasscount,1), [time[1] === 1 ? 1 : time[0], time[1]])
+    // var price = Calculation.GetUpgradeDetail(new Buyset(obj.areacount,[],obj.buyerclasscount,1), time)
+    // var givePrice = Calculation.GetUpgradeDetail(new Buyset(obj.areacount,[],obj.buyerclasscount,1), [time[1] === 1 ? 1 : time[0], time[1]])
+    /* 超级订阅2.1版本 升级不再自动增加1个月周期,如需增加使用上面注释代码传入周期即可 */
+    var price = Calculation.GetUpgradeDetail(new Buyset(obj.areacount,[],obj.buyerclasscount,1))
+    var givePrice = Calculation.GetUpgradeDetail(new Buyset(obj.areacount,[],obj.buyerclasscount,1))
     price = Number(price[0] / 100) < 0 ? 0 : Number(price[0] / 100)
     var showPrice = formatMoney(price);
     if (flag === 1) {
@@ -261,7 +266,7 @@ var purchase = {
       var time1 = new Date(this.endTime * 1000).pattern('yyyy年MM月dd日');
       var end = getVipEndDate(thisValue[1], thisValue[0], this.endTime);
       var time2 = new Date(end * 1000).pattern('yyyy年MM月dd日');
-
+      console.log(time1, time2, thisValue,'时间')
       if (flag === 1) {
         $(".select_cycle .month").text(this.timeValue);
         var giveTime = this.timeValue
@@ -571,15 +576,20 @@ $(function () {
       'area_count': flag ? 0 : areaCount,
       // "industry": industry.join(","),
       'price': parseInt(coupon.initPrice*10000/100),
-      "time": purchase.timeValue.trim(),
+      // "time": purchase.timeValue.trim(),
       // "orderType": 5,
       "disWord": GetQueryString("disWord"),
     };
+    console.log(param, '提交订单的参数')
     console.log(area, 'area', purchase.nowBuyset, coupon.initPrice*10000/100)
     $DoPost("/subscribepay/vipsubscribe/upgrade", param, function (r) {
       if (r.success) {
         try {
           clearSessionStorage()
+          // if (param.price == 0) {
+          //   window.location.replace("/jyapp/vipsubscribe/toOrderDetailPage?orderCode=" + r.data.code)
+          //   return
+          // }
           history.replaceState({}, '', '/jyapp/vipsubscribe/toOrderDetailPage?orderCode=' + r.data.code);
           window.location.href = "/jyapp/pay/checkout_subvip?orderCode=" + r.data.code + "&t=2&from=buy"
         } catch (e) {
@@ -649,21 +659,6 @@ function pickerShow (selector, f) {
   }
 }
 /* vue 代码 start */
-var goodsSize = new Vue({
-  el:'#goods-size-vue',
-  data: function() {
-    return {}
-  },
-  mounted () {},
-  methods: {
-    getGoodSize: function(data) {
-      console.log(data, '父组件接收子组件传来的商品规格')
-    },
-    getAutoRenew: function(data) {
-      console.log(data, '父组件接收子组件传来的是否开启自动续费')
-    }
-  }
-})
 var coupon = new Vue({
   el: '#coupon-vue',
   data: function () {

File diff suppressed because it is too large
+ 0 - 65
src/jfw/modules/app/src/web/templates/vipsubscribe/commonRules.html


+ 18 - 13
src/jfw/modules/app/src/web/templates/vipsubscribe/vip_UpgradePage.html

@@ -17,7 +17,6 @@
   <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/css/vip_upgrade.css?v={{Msg "seo" "version"}}'>
   <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/layout.css' />
   <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/font.css?v={{Msg "seo" "version"}}' />
-  <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/vipsubscribe/css/vip-size-template.css?v={{Msg "seo" "version"}}' />
   <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/coupon/css/pay-order-template.css?v={{Msg "seo" "version"}}' />
   <style>
     .vip-header {
@@ -38,6 +37,17 @@
       font-size: .24rem;
       color:#FE737A;
     }
+    .area-result{
+      display: flex;
+      align-items: center;
+      margin-left: .16rem;
+      background-color: #2ABED1;
+      color: #fff;
+      font-size: .22rem;
+      text-align: center;
+      padding: 0 .16rem;
+      border-radius: .41rem;
+    }
   </style>
 </head>
 
@@ -55,18 +65,18 @@
           <li class="body-item area">
             <a class="item-container" data-upgrade-to-area href="/jyapp/vipsubscribe/toChooseArea?header=upgrade">
               <div class="item">
-                <span class="item-l">
+                <span class="item-l" style="display: flex;align-items: center;">
                   <span class="item-label">省份数量</span>
+                  <div class="area-result">
+                    <span>已选:</span>
+                    <span class="selected-area"></span>
+                  </div>
                 </span>
-                <span class="item-r">
-                  <span class="selected-area-name ellipsis"></span>
+                <span class="item-r" style="width: auto;">
+                  <span style="color: #9b9ca3;">选择</span>
                   <span class="iconfont icon-arrow"></span>
                 </span>
               </div>
-              <div>
-                <span>已选择</span>
-                <span class="text selected-area"></span>
-              </div>
               <p class="error-update-tips">选择省份数量低于原套餐数,无法升级,请增加省份数量</p>
             </a>
           </li>
@@ -92,10 +102,6 @@
             </a>
           </li>
         </ul>
-        <!-- 商品规格 -->
-        <div id="goods-size-vue">
-          <vip-size-template @select-vip-size="getGoodSize" @select-auto-renew="getAutoRenew"></vip-size-template>
-        </div>
         <!-- 超级订阅专属权益 封装为公共页面-->
         {{include "/vipsubscribe/commonRules.html"}}
       </div>
@@ -206,7 +212,6 @@
   <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/js/price.js?v={{Msg "seo" "mod_version"}}'></script>
   {{include "/common/iosJS.html"}}
   <script src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js></script> 
-  <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/vipsubscribe/js/vip-size-template.js?v={{Msg "seo" "version"}}'></script>
   <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/coupon/js/pay-order-template.js?v={{Msg "seo" "version"}}'>
   </script>
   <script>

+ 143 - 39
src/jfw/modules/app/src/web/templates/vipsubscribe/vip_purchase.html

@@ -4,7 +4,7 @@
 <head>
   <meta charset="utf-8">
   <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
-  <title>超级订阅</title>
+  <title>开通超级订阅</title>
   <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/rem.js'></script>
   <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}'/>
   <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/weui.min.css'>
@@ -66,13 +66,27 @@
     text-align: left;
     margin-top: 2px;
   }
+  .area-result{
+    /* width:1.2rem; */
+    height: .38rem;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    background: #2abed1;
+    border-radius: 41px;
+    font-size: .22rem;
+    color: #fff;
+  }
+  .area-result-text{
+    padding: 0 .16rem;
+  }
   </style>
   <!--E-手机号输入样式-->
 </head>
 <body  data-weui-theme="light">
   <div class="app-layout-header jy-app-header" style="z-index: 8;">
     <span class="app-back jyapp-icon jyapp-icon-zuojiantou"></span>
-    超级订阅{{if not .T.isTrial }}{{else}}(试用){{end}}
+    开通超级订阅{{if not .T.isTrial }}{{else}}(试用){{end}}
     <span></span>
   </div>
   <div class="app-layout-content-b">
@@ -99,14 +113,23 @@
         <div class="choose_condition">
             <ul class="chooseList">
               <li class="choose_item">
-                <a href="/jyapp/vipsubscribe/toChooseArea">
-                  <span class="label">省份数量</span>
-                  {{if not .T.isTrial }}
-                    <input type="text" disabled value="" placeholder="1个省" class="info choose_area">
-                  {{else}}
-                    <input type="text" disabled value="" placeholder="选择全国、省份、地市" class="info choose_area">
-                  {{end}}
-                  <i class="iconfont icon-arrow"></i>
+                <a href="javascript:;" onclick="toChooseArea()">
+                  <div style="display: flex;align-items: center;flex: 1;">
+                    <span class="label">省份数量</span>
+                    <div class="area-result">
+                      {{if not .T.isTrial }}
+                      <input type="hidden" disabled value="" placeholder="1个省" class="info choose_area">
+                      <span class="area-result-text"></span>
+                      {{else}}
+                        <input type="hidden" disabled value="" placeholder="选择全国、省份、地市" class="info choose_area">
+                        <span class="area-result-text"></span>
+                      {{end}}
+                    </div>
+                  </div>
+                  <div style="display: flex;align-items: center;">
+                    <em style="color: #9B9CA3;font-size: .28rem;">选择</em>
+                    <i class="iconfont icon-arrow"></i>
+                  </div>
                 </a>
                 <p class="add_tips area_warn" style="display: none;">请选择区域</p>
                 <!-- 无选择时不显示 -->
@@ -145,11 +168,11 @@
             </ul>
             <!-- 商品规格 -->
             <div id="goods-size-vue">
-              <vip-size-template @select-vip-size="getGoodSize" @select-auto-renew="getAutoRenew"></vip-size-template>
+              <goods-size-template ref="goodsSize" :config="props" @select-vip-size="getGoodSize"></goods-size-template>
             </div>
             <!-- 商品优惠券 -->
             <div id="goods-coupon-vue">
-              <vip-coupon-template></vip-coupon-template>
+              <goods-coupon-template ref="goodsCoupon" @update-coupon="updateCoupon"></goods-coupon-template>
             </div>
             <!-- <div class="pay_mode">
               {{if not .T.isTrial }}
@@ -241,7 +264,7 @@
                     <td><span class="allP_allB">3880</span>元 年/全国/全行业</td>
                   </tr>
                 </table>
-                <dl class="tips">
+                <dl class="tips" style="display: none;">
                   <dt class="b-line">购买须知</dt>
                   <dd>套餐周期内,不支持套餐降级;</dd>
                   <dd>用户最多购买/续费3年套餐;</dd>
@@ -628,41 +651,92 @@
           //试用用户
         {{end}}
 
+        // 跳转区域选择清除商品规格及优惠券选择
+        function toChooseArea() {
+          sessionStorage.removeItem('vip-cur-select-coupon')
+          sessionStorage.removeItem('vip-cur-select-size')
+          location.href = '/jyapp/vipsubscribe/toChooseArea'         
+        }
         /* vue 代码 start */
         // vip商品规格
         var goodsSize = new Vue({
           el:'#goods-size-vue',
           data: function() {
             return {
-
+              props: {
+                defaultSize: {},
+                areaCount: 1,
+                priceInfo: {}
+              }
             }
           },
+          created () {
+            this.getAreaCount()
+          },
           mounted () {
-
+            this.getSizeStorage()
           },
           methods: {
+            // 父组件传省份数量至子组件
+            getAreaCount: function() {
+              var areaStorage = JSON.parse(sessionStorage.getItem('vipSubSelectArea'))
+              if (areaStorage) {
+                var count = 0
+                for (var key in areaStorage) {
+                  if (key.indexOf('全国') > -1) {
+                    count = 16
+                  } else {
+                    count++
+                  }
+                }
+                this.props.areaCount = count
+              }
+            },
+            getSizeStorage: function() {
+              // 恢复商品规格选择
+              var size = JSON.parse(sessionStorage.getItem('vip-cur-select-size')) 
+              if (size) {
+                this.$refs.goodsSize.goodsActive = size.index
+                this.defaultSize = size
+                this.$nextTick(function(){
+                  console.log(size.price, 'size.price')
+                  coupon.updatePrice(size.price/100)
+                  goodsCoupon.updatePrice(size.price/100)
+                })
+              }
+            },
             getGoodSize: function(data) {
               console.log(data, '父组件接收子组件传来的商品规格')
-            },
-            getAutoRenew: function(data) {
-              console.log(data, '父组件接收子组件传来的是否开启自动续费')
+              this.defaultSize = data
+              coupon.updatePrice(data.price/100)
+              goodsCoupon.updatePrice(data.price/100)
             }
           }
         })
-        // vip活动
         // vip优惠券
         var goodsCoupon = new Vue({
           el:'#goods-coupon-vue',
           data: function() {
             return {
-
+              curSelectCoupon: {}
             }
           },
-          mounted () {
-
-          },
+          mounted () {},
           methods: {
-            
+            updatePrice: function(data){
+              this.$refs.goodsCoupon.getCoupon(data)
+            },
+            updateCoupon: function(data) {
+              console.log(data, '更新优惠券选择')
+              this.curSelectCoupon = data
+              var curSize = JSON.parse(sessionStorage.getItem('vip-cur-select-size'))
+              // 更新优惠券选择同时更新订单组件的价格及优惠金额
+              if (curSize) {
+                coupon.updatePrice(curSize.price/100)
+              } else {
+                coupon.updatePrice(coupon.initPrice)
+              }
+            }
           }
         })
         // 订单提交
@@ -697,10 +771,17 @@
             // 更新价格相关
             updatePrice: function (before) {
               console.log( '原价:' + before)
+              var curCoupon = JSON.parse(sessionStorage.getItem('vip-cur-select-coupon'))
+              console.log(curCoupon, '当前选择的优惠券')
+              if (curCoupon) {
+                this.$refs.couponRef.coupon.value = curCoupon.reduce
+              } else {
+                this.$refs.couponRef.coupon.value = 0
+              }
               this.initPrice = before;
               // 调用子组件查询最优卡券
               if (!{{.T.isTrial }}) {
-                this.$refs.couponRef.getCoupon();
+                // this.$refs.couponRef.getCoupon();
               }
             },
             // 初始化及回显相关
@@ -843,6 +924,8 @@
                   //     showGiveStatus(false)
                   // }
                   Calculation.Init(false, undefined, [], 0)
+                  // 将价格列表传至商品规格组件
+                  goodsSize.props.priceInfo = r.new
                 }
               }, false)
               sessionStorage.removeItem("pay_read_cache");
@@ -854,23 +937,26 @@
           showArea: function () {
             if (!$.isEmptyObject(this.areaSelect) && !this.areaSelect["一个省"]) { //有选择
               if (this.nowBuyset.areacount === -1) {
-                $(".choose_area").val("全国");
+                $(".choose_area").val("已选: 全国");
+                $(".area-result-text").show().text("已选: 全国");
               } else {
-                var tipTxt = "已选 ";
-                if (this.nowBuyset.areacount > 0) tipTxt += this.nowBuyset.areacount + " 个省";
+                var tipTxt = "已选: ";
+                if (this.nowBuyset.areacount > 0) tipTxt += this.nowBuyset.areacount + "";
                 var count = 0;
                 this.nowBuyset.citys.forEach(function (item, index) {
                     count += item;
                 });
-                if (count > 0) {
-                    if (this.nowBuyset.areacount > 0) tipTxt += "、";
-                    tipTxt += count + " 个市";
-                    if (this.nowBuyset.citys.length > 1) tipTxt += "(分布在" + this.nowBuyset.citys.length + "个省内)"
-                }
+                // if (count > 0) {
+                //     if (this.nowBuyset.areacount > 0) tipTxt += "、";
+                //     tipTxt += count + " 个市";
+                //     if (this.nowBuyset.citys.length > 1) tipTxt += "(分布在" + this.nowBuyset.citys.length + "个省内)"
+                // }
                 $(".choose_area").val(tipTxt);
+                $(".area-result-text").show().text(tipTxt);
               }
             } else {
               $(".choose_area").val("");
+              $(".area-result-text").hide().text("");
               //是否勾选已阅读
               if (sessionStorage.getItem("vipSub_read") === "true") {
                 $(".area_warn").css("display", "");
@@ -952,7 +1038,6 @@
                 // var price = getsubVipOrderPriceBybuyset(this.nowBuyset, time);
                 // var givePrice = getsubVipOrderPriceBybuyset(this.nowBuyset, [time[1] === 1 ? 1 :time[0], time[1]]);
                 var obj = this.nowBuyset
-                // console.log(obj, 'obj')
                 obj.areacount = obj.areacount == 0 ? 1 : obj.areacount
                 var price = Calculation.GetTotal(new Buyset(obj.areacount,[],obj.buyerclasscount, 1),time)
                 var givePrice = Calculation.GetTotal(new Buyset(obj.areacount,[],obj.buyerclasscount, 1),[time[1] === 1 ? 1 :time[0], time[1]])
@@ -975,7 +1060,11 @@
                   $('.discount-price .dis-price').text(formatMoney(givePrice))
                 }
                 console.log(price, '计算的价格')
-                coupon.updatePrice(price)
+                var size = JSON.parse(sessionStorage.getItem('vip-cur-select-size')) 
+                if (!size) {
+                  coupon.updatePrice(price)
+                  goodsCoupon.updatePrice(price)
+                }
               }
             }
         };
@@ -986,6 +1075,7 @@
           purchase.showIndustry();
           purchase.showPrice();
           purchase.showTime();
+          console.log(purchase.timeSelect, 'purchase.timeSelect')
           purchase.flushPrice(purchase.timeSelect);
           checkOk();
           var time_limit;//定义一个周期变量
@@ -1180,7 +1270,7 @@
           $("input").bind("input propertychange change", function (event) {
             checkOk();
           });
-          console.log(coupon.$refs.couponRef.coupon, '用户优惠券id')
+          // console.log(coupon.$refs.couponRef.coupon, '用户优惠券id')
           $('#payHandle').click(function () {
             $("#payHandle").attr("disabled", "disabled");
             //支付请求
@@ -1200,13 +1290,23 @@
             if (activeCode.toLowerCase() === "jianyu360" && $('.coupon-code-tx .info').text() === "支付成功赠送30天订阅周期") {
               activeCodes = "jianyu360";
             }
+            var size = goodsSize.defaultSize
+            if (size && size.period) {
+              if(size.period.indexOf('月') > -1) {
+                size.period = size.period.replace('月', '个月')
+              }
+              sizeTime = size.period
+            } else {
+              sizeTime = '1个月'
+            }
+            console.log(sizeTime, '选择的周期')
             //付费用户
             var param = {
-              "userLotteryId":coupon.$refs.couponRef.coupon.userLotteryId,
-              "lotteryId": coupon.$refs.couponRef.coupon.lotteryId,
+              "userLotteryId":goodsCoupon.curSelectCoupon.userLotteryId,
+              "lotteryId": goodsCoupon.curSelectCoupon.lotteryId,
               "area": JSON.stringify(area),
               // "industry": industry.join(","),
-              "time": $(".info:eq(2)").val().trim(),
+              "time": sizeTime,
               "orderType":{{.T.orderType}},
               "price": parseInt(coupon.initPrice*10000/100),
               "activeCode": activeCodes,
@@ -1304,6 +1404,10 @@
 
           sessionStorage.removeItem("pay_read_cache");
           sessionStorage.removeItem("liveActiveCode_purchase");
+          // 清除商品规格当前选择
+          sessionStorage.removeItem("vip-cur-select-size")
+          // 清除商品优惠券当前选择
+          sessionStorage.removeItem("vip-cur-select-coupon")
         }
 
         /******* 获取url参数(正则)********/

+ 54 - 4
src/jfw/modules/app/src/web/templates/vipsubscribe/vip_renew.html

@@ -17,6 +17,7 @@
     <link rel="stylesheet" type="text/css" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/css/vip_renew.css?v={{Msg "seo" "version"}}'>
     <link rel="stylesheet" type="text/css" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/layout.css'/>
     <link rel="stylesheet" type="text/css" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/font.css?v={{Msg "seo" "version"}}'/>
+    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/vipsubscribe/css/vip-size-template.css?v={{Msg "seo" "version"}}' />
     <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/coupon/css/pay-order-template.css?v={{Msg "seo" "version"}}' />
     <style>
         .vip-header {
@@ -33,6 +34,41 @@
         button[disabled] {
             opacity: .5;
         }
+        .area-result{
+          position: relative;
+          padding: .3rem .32rem;
+          display: flex;
+          align-items: center;
+          background-color: #fff;
+        }
+        .area-result::after{
+          position: absolute;
+          box-sizing: border-box;
+          content: ' ';
+          pointer-events: none;
+          right: 0;
+          bottom: 0;
+          left: .32rem;
+          border-bottom: 1px solid #f5f5f5;
+          -webkit-transform: scaleY(0.7);
+          transform: scaleY(0.7);
+        }
+        .a-r-label{
+          margin-right: 0.08rem;
+          font-size: .32rem;
+          color: #171826;
+        }
+        .a-r-val{
+          height: .38rem;
+          padding: 0 .16rem;
+          display: flex;
+          align-items: center;
+          background: #2abed1;
+          border: 1px solid #2abed1;
+          border-radius: 41px;
+          font-size: .22rem;
+          color: #fff;
+        }
     </style>
 </head>
 <body class="no-touch"  data-weui-theme="light">
@@ -52,8 +88,18 @@
             <span class="header-right">您的超级订阅服务即将到期,为不影响您的使用。请立即续费</span>
         </div>
         <div class="vip-body">
-            <div class="j-notice-bar bar-red vip-bar" style="text-align: center;">限时续费,3个月起,续多久送多久!</div>
-            <ul style="padding: .16rem .24rem;">
+          <div class="area-result" data-new-vip style="display: none;">
+            <div class="item area" style="display: flex;align-items: center;">
+              <span class="item-l a-r-label">省份数量</span>
+              <span class="a-r-val"><span class="item-r"></span></span>
+            </div>
+          </div>
+          <!-- 商品规格 -->
+          <div id="goods-size-vue" data-new-vip style="display: none;">
+            <goods-size-template ref="goodsSize" :config="props" @select-vip-size="getGoodSize"></goods-size-template>
+          </div>
+            <!-- <div class="j-notice-bar bar-red vip-bar" style="text-align: center;">限时续费,3个月起,续多久送多久!</div> -->
+            <ul style="padding: .16rem .24rem;" data-old-vip>
                 <li class="body-item area-industry">
                     <div class="item-container">
                         <div class="item area">
@@ -102,17 +148,20 @@
                     </div>
                 </li>
             </ul>
-            <div class="tips">
+            <div class="tips" data-old-vip>
                 <div class="tip-title l-line">续费说明</div>
                 <div class="tip-content">
                     <div>1、仅支持原套餐延长周期续费,不支持套餐变更(含增加、减少、更改)原订阅的省份、城市、行业。 <br />续费费用=续费周期(按月/年)/原地区/原行业</div>
                     <div>2、套餐周期内,用户也可以选择升级超级订阅2.0版享受更多权益。</div>
                 </div>
             </div>
+            <div data-new-vip style="display: none;">
+              {{include "/vipsubscribe/commonRules.html"}}
+            </div>
         </div>
         <!-- vue组件 -->
         <div class="vip-footer" id="coupon-vue">
-          <pay-order-template ref="couponRef" :config="$data" @update="updateS" @save="saveEvent"></pay-order-template>
+          <pay-order-template ref="couponRef" :config="$data" @update-coupon="updateCoupon" @update="updateS" @save="saveEvent"></pay-order-template>
         </div>
         <div class="vip-footer renew" style="display: none;">
             <div class="footer-preview-container">
@@ -340,6 +389,7 @@
     <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/common.js?v={{Msg "seo" "mod_version"}}"></script>
   {{include "/common/iosJS.html"}}
     <script src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js></script>
+    <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/vipsubscribe/js/vip-size-template.js?v={{Msg "seo" "version"}}'></script>
     <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/coupon/js/pay-order-template.js?v={{Msg "seo" "version"}}'></script>
 	<script>
       $(window).bind("pageshow", function (event) {

+ 8 - 50
src/jfw/modules/app/src/web/templates/weixin/search/mainSearch.html

@@ -45,6 +45,7 @@
     <link href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}' rel="stylesheet"/>
     <link href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}' rel="stylesheet"/>
     <link href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/p13.css?v={{Msg "seo" "version"}}' rel="stylesheet"/>
+    <link href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/ent-search/ent-search-template.css?v={{Msg "seo" "version"}}' rel="stylesheet"/>
     <link rel="stylesheet" href=//cdn.jsdelivr.net/npm/reset-css@4.0.1/reset.min.css />
     <link rel="stylesheet" href=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/index.css />
     <link rel="stylesheet" href=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/icon/local.css />
@@ -102,7 +103,8 @@
         width: .88rem;
     }
 
-    .p13 .resnumb .two-group {
+    .p13 .resnumb .two-group,
+    .p13 .two-group {
         display: flex;
         flex-direction: row;
         justify-content: space-between;
@@ -479,6 +481,7 @@
 <script src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.js></script>
 <script src=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/vant.min.js></script>
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/keep-tags/keep-tags-template.js'></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/ent-search/ent-search-template.js'></script>
 <script>
     var vKeepComponent = new Vue({
       delimiters: ['${', '}'],
@@ -497,54 +500,7 @@
       }
     })
 </script>
-<script>
-  new Vue({
-    el: '#v-ent-ent-search-group',
-    delimiters: ['@@', '@@'],
-    data: {
-      statusEnum: ['存续', '吊销', '停业', '撤销'],
-      list: [
-        {
-          name: '北京剑鱼信息技术有限公司北京剑鱼信息技术有限公司北京剑鱼信息技术有限公司北京剑鱼信息技术有限公司',
-          legal: '贾新',
-          money: '1000万元',
-          address: '北京市朝阳区北四环中路华严北里健翔3号地峻峰华亭嘉园C座2011号北京市朝阳区北四环中路华严北里健翔3号地峻峰华亭嘉园C座2011号北京市朝阳区北四环中路华严北里健翔3号地峻峰华亭嘉园C座2011号',
-          status: 0,
-          checked: false
-        },
-        {
-          name: '北京剑鱼信息技术有限公司',
-          legal: '贾新',
-          money: '1000万元',
-          address: '北京市朝阳区北四环中路华严北里健翔3号地峻峰华亭嘉园C座2011号',
-          status: 1,
-          checked: true
-        },
-        {
-          name: '北京剑鱼信息技术有限公司',
-          legal: '贾新',
-          money: '1000万元',
-          address: '北京市朝阳区北四环中路华严北里健翔3号地峻峰华亭嘉园C座2011号',
-          status: 2,
-          checked: false
-        },
-        {
-          name: '北京剑鱼信息技术有限公司',
-          legal: '贾新',
-          money: '1000万元',
-          address: '北京市朝阳区北四环中路华严北里健翔3号地峻峰华亭嘉园C座2011号',
-          status: 3,
-          checked: false
-        }
-      ]
-    },
-    methods: {
-      selectEnt (ent) {
-        console.log(ent)
-      }
-    }
-  })
-</script>
+
 <script type="text/javascript">
   var adv_url = "/datareport/page/introduce";
   var adv_img = "/jyapp/images/reportTip.png?v=51430"
@@ -888,7 +844,9 @@
               var isNowIndex = $(".tabs-box .tabs-nav .active").index()
                 if (!$(".tabs-box").hasClass('hidden') && isNowIndex !== 0) {
                     if (isNowIndex === 1) {
-
+                      if (vEntSearchComponent) {
+                        vEntSearchComponent.toggleEntShow(true)
+                      }
                     }
                     return
                 }

+ 88 - 183
src/jfw/modules/app/src/web/templates/weixin/search/tabSearch.html

@@ -490,198 +490,95 @@
             </div>
             <div class="tabs-content-page">
                 <!---->
-                <style>
-                    #v-ent-ent-search-group {
-                        display: block !important;
-                        background-color: rgba(0, 0, 0, 0.05);
-                    }
-                    #v-ent-ent-search-group .ent-search-item {
-                        margin-top: 8px;
-                        display: flex;
-                        flex-direction: column;
-                        padding: 0.32rem;
-                        background-color: #fff;
-                    }
-                    #v-ent-ent-search-group .ent-search-list {
-                        display: flex;
-                        flex-direction: column;
-                    }
-                    .ent-info-head {
-                        flex-shrink: 0;
-                        position: relative;
-                        width: 1.68rem;
-                        height: 1.68rem;
-                        background: rgba(0, 0, 0, 0.05);
-                        border: 0.5px solid rgba(0, 0, 0, 0.05);
-                        box-sizing: border-box;
-                        border-radius: 0.08rem;
-                    }
-                    .ent-info-head .ent-info-status.status-1 {
-                        background: #FB483D;
-                    }
-                    .ent-info-head .ent-info-status.status-2 {
-                        background: #FF9F40;
-                    }
-                    .ent-info-head .ent-info-status.status-3 {
-                        background: #9B9CA3;
-                    }
-                    .ent-info-head .ent-info-status {
-                        position: absolute;
-                        top: 0.08rem;
-                        left: 0.08rem;
-                        background: #2ABED1;
-                        border-radius: 0.08rem;
-                        font-family: PingFang SC;
-                        font-style: normal;
-                        font-weight: 500;
-                        font-size: 0.24rem;
-                        line-height: 0.36rem;
-                        color: #FFFFFF;
-                        padding: 0 0.08rem;
-                        display: inline-block;
-                    }
-                    .ent-info-top {
-                        display: flex;
-                        flex-direction: row;
-                        align-items: center;
-                        justify-content: space-between;
-                    }
-                    .ent-row {
-                        display: flex;
-                        flex-direction: row;
-                        align-items: center;
-                        justify-content: space-between;
-                    }
-                    .ent-search-list .j-icon {
-                        flex-shrink: 0;
-                        width: 0.4rem;
-                        height: 0.4rem;
-                    }
-                    .ent-info-keep .ent-name {
-                        font-family: PingFang SC;
-                        font-style: normal;
-                        font-weight: 500;
-                        font-size: 0.32rem;
-                        line-height: 0.48rem;
-                        color: #171826;
-                        max-width: 4.3rem;
-                    }
-                    .ent-info-keep .fill-icon-box {
-                        padding: 0.12rem;
-                        padding-right: 0;
-                    }
-                    .ent-info-keep {
-                        margin-left: 0.24rem;
-                        flex: 1;
-                    }
-                    .ent-more span {
-                        color: #2ABED1;
-                        margin-top: 0.08rem;
-                    }
-                    .ent-more {
-                        font-family: PingFang SC;
-                        font-style: normal;
-                        font-weight: 500;
-                        font-size: 0.26rem;
-                        line-height: 0.36rem;
-                        color: #5F5E64;
-                        margin-top: 0.2rem;
-                    }
-                    .ent-info-bottom {
-                        display: flex;
-                        flex-direction: row;
-                        justify-content: flex-end;
-                        margin-top: 0.24rem;
-                    }
-                    .ent-line-box {
-                        margin-top: 0.24rem;
-                        width: 4.22rem;
-                        height: 0.02rem;
-                        background: rgba(0, 0, 0, 0.05);
-                        border-radius: 0.08rem;
-                    }
-                    .ent-address > div{
-                        font-family: PingFang SC;
-                        font-style: normal;
-                        font-weight: normal;
-                        font-size: 0.22rem;
-                        line-height: 0.32rem;
-                        color: #5F5E64;
-                        max-width: 4.22rem;
-                        margin-right: 0.32rem;
-                    }
-                    .up-button {
-                        margin: 0 auto;
-                        display: flex;
-                        flex-direction: column;
-                        align-items: center;
-                        justify-content: center;
-                        width: 4.98rem;
-                        height: 0.64rem;
-                        border: 1px solid #2ABED1;
-                        box-sizing: border-box;
-                        border-radius: 0.08rem;
-
-                        font-family: PingFang SC;
-                        font-style: normal;
-                        font-weight: 500;
-                        font-size: 0.26rem;
-                        line-height: 0.48rem;
-                        color: #2ABED1;
-
-                    }
-                    .ent-more-tip .j-icon {
-                        margin-right: 0.08rem;
-                    }
-                    .ent-more-tip {
-                        display: flex;
-                        flex-direction: row;
-                        align-items: center;
-                        justify-content: center;
-                        font-family: PingFang SC;
-                        font-style: normal;
-                        font-weight: 500;
-                        font-size: 0.28rem;
-                        line-height: 0.4rem;
-                        color: #9B9CA3;
-                    }
-
-
-                </style>
                 <div id="v-ent-ent-search-group" v-cloak>
-                    <div class="ent-search-list">
-                        <div class="ent-search-item" v-for="(item, i) in list" :key="i" @click="selectEnt(item)">
-                            <div class="ent-info-top">
-                                <div class="ent-info-head">
-                                    <span class="ent-info-status" :class="'status-' + item.status">@@statusEnum[item.status]@@</span>
-                                </div>
-                                <div class="ent-info-keep">
-                                    <div class="ent-row">
-                                        <div class="ent-name van-ellipsis">@@item.name@@</div>
-                                        <div class="fill-icon-box">
-                                            <i class="j-icon base-icon icon-no-favorite"></i>
+                    <div v-show="showEntSearch">
+                        <van-tabs @click="onClickTabs" :ellipsis="false" line-height="0" v-model="activeTabIndex">
+                            <van-tab v-for="tab in entTabs"  :key="tab.title">
+                                <template #title>
+                                    <div class="ent-search-tab-item" :class="{'ent-p-close': !showPop, 'ent-p-disabled': tab.disabled}" v-show="tab.title">
+                                        <span>@@ tab.title @@</span>
+                                        <div class="disabled-tag">开通</div>
+                                        <div class="an-icon-box">
+                                            <i class="j-icon base-icon icon-triangle-down"></i>
+                                            <i class="j-icon base-icon icon-triangle-up"></i>
                                         </div>
                                     </div>
-                                    <div class="ent-more">
-                                        <div>法定代表人: <span>@@item.legal@@</span></div>
-                                        <div>注册资本: <span>@@item.money@@</span></div>
+                                </template>
+                            </van-tab>
+                        </van-tabs>
+                        <div v-show="showPop" class="jy-diy-pop ent-search-pop">
+                            <div @click="togglePop(false)" class="van-overlay"></div>
+                            <div class="van-popup">
+                                <div class="popup-content">
+                                    <div class="wait-buy-tip-group" v-if="isWaitBuy">
+                                        <h3>您暂无使用权限</h3>
+                                        <p>开通超级订阅,全国企业随手查,<br>搜索信息更高效!</p>
+                                    </div>
+                                    <div class="condition-select-group" :class="{more: isMoreSelect}" v-show="conditionMap[activeTabIndex]">
+                                        <div class="condition-select-item" @click="onSelectItem(item, activeTabIndex)" v-for="(item,i) in conditionMap[activeTabIndex]" :class="{checked: item.checked}">
+                                            <div>@@item.title@@</div>
+                                            <i v-if="!isMoreSelect" class="j-icon base-icon icon-tick"></i>
+                                            <div class="more-icon-box" v-else>
+                                                <i  class="j-icon base-icon icon-tick-circle"></i>
+                                                <i  class="j-icon base-icon icon-tick-circle-fill"></i>
+                                            </div>
+                                        </div>
                                     </div>
-                                    <div class="ent-line-box"></div>
                                 </div>
-                            </div>
-                            <div class="ent-info-bottom">
-                                <div  class="ent-row ent-address">
-                                    <div class="van-multi-ellipsis--l2">@@item.address@@</div>
-                                    <i class="j-icon base-icon icon-address"></i>
+                                <div class="pop-bottom" v-show="!isWaitBuy && isMoreSelect">
+                                    <van-button type="default" @click="resetCondition">重置</van-button>
+                                    <van-button type="primary" @click="submitCondition">确定</van-button>
+                                </div>
+                                <div class="pop-bottom" v-if="isWaitBuy">
+                                    <van-button type="default" @click="resetCondition">再想一想</van-button>
+                                    <van-button type="primary" @click="goUpBuyPage">去开通</van-button>
                                 </div>
-
                             </div>
                         </div>
+                        <div class="ent-search-list" :class="{stop: showPop}">
+                            <van-list
+                                    v-model="listInfo.loading"
+                                    :finished="listInfo.finished"
+                                    finished-text=""
+                                    @load="onLoad"
+                            >
+                                <div class="ent-search-item" v-for="(item, i) in list" :key="i" @click="selectEnt(item)">
+                                    <div class="ent-info-top">
+                                        <div class="ent-info-head">
+                                            <span class="ent-info-status" :class="'status-' + item.status">@@statusEnum[item.status]@@</span>
+                                        </div>
+                                        <div class="ent-info-keep">
+                                            <div class="ent-row">
+                                                <div class="ent-name van-ellipsis">@@item.name@@</div>
+                                                <div class="fill-icon-box">
+                                                    <i class="j-icon base-icon icon-no-favorite"></i>
+                                                </div>
+                                            </div>
+                                            <div class="ent-more">
+                                                <div v-if="item.legal">法定代表人: <span>@@item.legal@@</span></div>
+                                                <div v-if="item.money">注册资本: <span>@@item.money@@万元</span></div>
+                                            </div>
+                                            <div class="ent-line-box"></div>
+                                        </div>
+                                    </div>
+                                    <div class="ent-info-bottom">
+                                        <div  class="ent-row ent-address">
+                                            <div class="van-multi-ellipsis--l2">@@item.address@@</div>
+                                            <i class="j-icon base-icon icon-address"></i>
+                                        </div>
 
-                        <div class="up-button">升级会员,查看更多搜索结果</div>
-                        <div class="ent-more-tip">
-                            <i class="j-icon base-icon icon-up-allow"></i>
-                            <span>上拉查看更多搜索结果</span>
+                                    </div>
+                                </div>
+                            </van-list>
+                            <div class="empty-tip-group" v-if="!listInfo.loading && !list.length">
+                                <div class="img-empty"></div>
+                                <span>未搜索到符合条件的企业</span>
+                            </div>
+                            <div class="up-button" @click="goUpBuyPage" v-if="showUpTip">升级会员,查看更多搜索结果</div>
+                            <div class="ent-more-tip" v-if="false">
+                                <i class="j-icon base-icon icon-up-allow"></i>
+                                <span>上拉查看更多搜索结果</span>
+                            </div>
                         </div>
                     </div>
                 </div>
@@ -1338,6 +1235,7 @@
     }
 
     function createSearchResultList () {
+
         var nowIndex = $(".tabs-box .tabs-nav .active").index()
         var nowInput = $("#search-header-input").val().trim()
         var outDom = nowIndex === 1 ? "#search-ent-list" : "#search-buyer-list"
@@ -1361,6 +1259,13 @@
             }, function (r) {
                 if (r && r.error_code === 0) {
                     var listData = r.data.list
+
+                    if (listData && listData.length) {
+                      if (vEntSearchComponent) {
+                        vEntSearchComponent.toggleEntShow(false)
+                      }
+                    }
+
                     var outHtml = createLiList(listData, nowInput)
                     $(outDom).html(outHtml).siblings().hide()
                     window.topSearchData[nowType] = nowInput

+ 46 - 3
src/jfw/modules/common/src/qfw/util/jy/subscribepush.go

@@ -37,6 +37,7 @@ type SubPushList struct {
 	Matchkeys       []string    `json:"matchkeys"`
 	Budget          interface{} `json:"budget"`
 	Bidamount       interface{} `json:"bidamount"`
+	Collection      int         `json:"collection"`
 }
 
 const (
@@ -180,6 +181,7 @@ func (s *subscribePush) Datas(spqp *SubPushQueryParam) (hasNextPage bool, result
 		spqp.PageNum = 1
 	}
 	starttime, endtime := int64(0), int64(0)
+	st, et := "", ""
 	now := time.Now()
 	if spqp.SelectTime == "lately-7" { //最近7天
 		starttime = time.Date(now.Year(), now.Month(), now.Day()-7, 0, 0, 0, 0, time.Local).Unix()
@@ -189,9 +191,9 @@ func (s *subscribePush) Datas(spqp *SubPushQueryParam) (hasNextPage bool, result
 		starttime = time.Date(now.Year()-1, 1, 1, 0, 0, 0, 0, time.Local).Unix()
 		endtime = time.Date(now.Year()-1, 12, 31, 23, 59, 59, 0, time.Local).Unix()
 	} else if len(strings.Split(spqp.SelectTime, "_")) == 2 {
-		st := strings.Split(spqp.SelectTime, "_")[0]
+		st = strings.Split(spqp.SelectTime, "_")[0]
 		starttime, _ = strconv.ParseInt(st, 0, 64)
-		et := strings.Split(spqp.SelectTime, "_")[1]
+		et = strings.Split(spqp.SelectTime, "_")[1]
 		endtime, _ = strconv.ParseInt(et, 0, 64)
 		if endtime > 0 {
 			etTime := time.Unix(endtime, 0)
@@ -202,7 +204,7 @@ func (s *subscribePush) Datas(spqp *SubPushQueryParam) (hasNextPage bool, result
 	start := (spqp.PageNum - 1) * pageSize
 	end := start + pageSize
 	//时间是今天,没有别的过滤条件
-	if starttime > 0 && starttime == endtime && nowFormat == FormatDateByInt64(&starttime, Date_Short_Layout) && spqp.Area == "" && spqp.Buyerclass == "" && spqp.Subscopeclass == "" && spqp.Subtype == "" && spqp.Key == "" {
+	if starttime > 0 && st == et && nowFormat == FormatDateByInt64(&starttime, Date_Short_Layout) && spqp.Area == "" && spqp.Buyerclass == "" && spqp.Subscopeclass == "" && spqp.Subtype == "" && spqp.Key == "" {
 		subPush, err := s.GetTodayCache(spqp.UserId)
 		if err != nil {
 			log.Println(spqp.UserId, "GetTodayCache Error", err)
@@ -514,6 +516,17 @@ func (s *subscribePush) MakeHistoryDatas(MQFW mg.MongodbSim, PushMysql *mysql.My
 				myInsert["buyerclass"] = buyerclass_mapping
 			}
 		}
+		if s_subscopeclass := ObjToString(v["s_subscopeclass"]); s_subscopeclass != "" {
+			subscopeclass := []string{}
+			for _, v := range strings.Split(s_subscopeclass, ",") {
+				if subscopeclass_mapping, ok := PushMapping.Subscopeclass[v]; ok {
+					subscopeclass = append(subscopeclass, fmt.Sprint(subscopeclass_mapping))
+				}
+			}
+			if len(subscopeclass) > 0 {
+				myInsert["subscopeclass"] = strings.Join(subscopeclass, ",")
+			}
+		}
 		id := PushMysql.Insert("pushsubscribe", myInsert)
 		if id > 0 {
 			redis.Put("pushcache_2_a", redisKey, 1, 86400)
@@ -612,6 +625,36 @@ func (s *subscribePush) GetCache(code, key string) ([]*SubPushList, error) {
 	return p, nil
 }
 
+//是否收藏
+func (s *subscribePush) MakeCollection(userId string, m *mysql.Mysql, list []*SubPushList) {
+	if list == nil || len(list) == 0 {
+		return
+	}
+	param := []interface{}{userId}
+	wh := []string{}
+	for _, v := range list {
+		array := DecodeArticleId2ByCheck(v.Id)
+		if len(array) == 1 && array[0] != "" {
+			param = append(param, array[0])
+			wh = append(wh, "?")
+		}
+	}
+	if len(wh) > 0 {
+		result := m.SelectBySql(`select bid from bdcollection where userid=? and bid in (`+strings.Join(wh, ",")+`)`, param...)
+		bid_map := map[string]bool{}
+		if result != nil {
+			for _, v := range *result {
+				bid_map[EncodeArticleId2ByCheck(ObjToString(v["bid"]))] = true
+			}
+		}
+		for _, v := range list {
+			if bid_map[v.Id] {
+				v.Collection = 1
+			}
+		}
+	}
+}
+
 //历史推送记录中单条信息格式化
 func InfoFormats(info map[string]interface{}, tmp map[string]interface{}) map[string]interface{} {
 	area := ObjToString(info["area"])

+ 7 - 3
src/jfw/modules/publicapply/src/bidcollection.json

@@ -1,6 +1,10 @@
 {
-    "payUserCollLimit":10,
+    "payUserCollLimit":5000,
     "freeUserCollLimit":100,
-    "pageSize":10,
-    "labelMaxCount":2
+    "pageSize":50,
+    "labelMaxCount":50,
+    "collRedisDb":"other",
+    "isCollRedisTime":259200,
+    "collListRedisTime":7200,
+    "collListRedisMaxCount":100
 }

+ 142 - 11
src/jfw/modules/publicapply/src/bidcollection/entity/entity.go

@@ -29,11 +29,33 @@ const (
 func IsCollByBids(bids, userid string) []string {
 	res := []string{}
 	collBidMap := map[string]bool{}
-	if labArr := *db.Mysql.SelectBySql(fmt.Sprintf("select bid from %s where  userid = ?", db.DbConf.Bdcollection), userid); len(labArr) > 0 {
-		for _, v := range labArr {
-			bid_id := qu.ObjToString(v["bid"])
-			collBidMap[bid_id] = true
+	isCollkey := fmt.Sprintf("isColl_%s", userid)
+	collStatus := redis.GetInt(config.BidCollConfig.CollRedisDb, isCollkey)
+	if collStatus == 0 {
+		if count := int(db.Mysql.CountBySql(fmt.Sprintf(`select count(1) 
+		from %s where userid = ?`, db.DbConf.Bdcollection), userid)); count > config.BidCollConfig.CollListRedisMaxCount {
+			collStatus = 2
+		} else if count == 0 {
+			collStatus = 0
+		} else {
+			collStatus = 1
 		}
+		redis.Put(config.BidCollConfig.CollRedisDb, isCollkey, collStatus, config.BidCollConfig.IsCollRedisTime)
+	}
+	if collStatus == 1 { //100条内 取redis
+		list := GetCollRedis(userid, collStatus)
+		for _, v := range list {
+			collBidMap[v] = true
+		}
+	} else if collStatus == 2 { //大于100条 取mysql
+		if labArr := *db.Mysql.SelectBySql(fmt.Sprintf("select bid from %s where  userid = ?", db.DbConf.Bdcollection), userid); len(labArr) > 0 {
+			for _, v := range labArr {
+				bid_id := qu.ObjToString(v["bid"])
+				collBidMap[bid_id] = true
+			}
+		}
+	} else { //0条
+		return res
 	}
 	for _, v := range strings.Split(bids, ",") {
 		//招标信息解密
@@ -101,7 +123,8 @@ func BidCollOrRemByIds(bidAction BidAction, userid string) map[string]interface{
 	ok, msg := true, ""
 	var wg sync.WaitGroup
 	maxCount := config.BidCollConfig.FreeUserCollLimit
-	isPay := Power(userid)
+	isPay, _ := Power(userid)
+	redisArr := []string{}
 	if isPay {
 		maxCount = config.BidCollConfig.PayUserCollLimit
 	}
@@ -116,6 +139,7 @@ func BidCollOrRemByIds(bidAction BidAction, userid string) map[string]interface{
 				"bid":    util.DecodeId(bd.Bid),
 				"userid": userid,
 			}
+			redisArr = append(redisArr, util.DecodeId(bd.Bid))
 			//移除收藏
 			if bidAction.Baction == "R" {
 				if db.Mysql.Delete(db.DbConf.Bdcollection, queryMap) {
@@ -153,6 +177,13 @@ func BidCollOrRemByIds(bidAction BidAction, userid string) map[string]interface{
 		}(v)
 	}
 	wg.Wait()
+	typ := "a" //新增
+	if bidAction.Baction == "R" {
+		typ = "d" //删除
+	}
+	if bl := UpdateCollListRedis(typ, userid, redisArr); !bl { //更新redis
+		log.Println("更新redis失败", userid)
+	}
 	m := map[string]interface{}{
 		"status": qu.If(ok, i <= len(bidAction.Binfo), ok),
 		"msg":    msg,
@@ -171,6 +202,7 @@ type LabelInfo struct {
 //新增标签(并使用)|删除标签 RV0=
 func LabelAction(labInfo *LabelInfo, userid string) map[string]interface{} {
 	ibool, ok, msg := true, true, ""
+	redisArr := []string{}
 	if labInfo.Laction == "D" && labInfo.Lids != "" {
 		labInfo.Lids = strings.Split(labInfo.Lids, ",")[0]
 		labid := qu.SE.DecodeString(labInfo.Lids)
@@ -231,7 +263,7 @@ func LabelAction(labInfo *LabelInfo, userid string) map[string]interface{} {
 		//收藏招标信息
 		if labInfo.Lids != "" && len(labInfo.Binfo) > 0 {
 			maxCount := config.BidCollConfig.FreeUserCollLimit
-			isPay := Power(userid)
+			isPay, _ := Power(userid)
 			if isPay {
 				maxCount = config.BidCollConfig.PayUserCollLimit
 			}
@@ -273,6 +305,7 @@ func LabelAction(labInfo *LabelInfo, userid string) map[string]interface{} {
 							if it := db.Mysql.Insert(db.DbConf.Bdcollection, inserMap); it > 0 {
 								i++
 								collCount++
+								redisArr = append(redisArr, util.DecodeId(bd.Bid))
 							} else {
 								log.Printf("userid :%s,收藏失败 id : %s", userid, util.DecodeId(bd.Bid))
 							}
@@ -291,6 +324,9 @@ func LabelAction(labInfo *LabelInfo, userid string) map[string]interface{} {
 			ibool = i == len(labInfo.Binfo)
 		}
 	}
+	if bl := UpdateCollListRedis("a", userid, redisArr); !bl {
+		log.Println("更新redis失败", userid)
+	}
 	return map[string]interface{}{
 		"status": qu.If(ok, ibool, ok),
 		"msg":    msg,
@@ -326,7 +362,7 @@ func GetCollList(c *CollList, userid string) map[string]interface{} {
 		"pageSize":     pagesize_max,
 	}
 	sql := fmt.Sprintf(`select bid from %s where userid ='%s'`, db.DbConf.Bdcollection, userid)
-	isPay := Power(userid)
+	isPay, _ := Power(userid)
 	limit := config.BidCollConfig.FreeUserCollLimit
 	if isPay {
 		now := time.Now()
@@ -435,15 +471,24 @@ func GetCollList(c *CollList, userid string) map[string]interface{} {
 }
 
 //是否是付费用户 -bool: true:是 fasle:不是
-func Power(userid string) bool {
+func Power(userid string) (bool, map[string]interface{}) {
 	isVip, isMember, isEnt := false, false, false
+	vipstatus := 0
 	phone := ""
-	data, ok := db.Mgo.FindById("user", userid, `"i_member_status":1,"i_vip_status":1,"s_m_phone":1,"s_phone":1`)
+	data, ok := db.Mgo.FindById("user", userid, `"i_member_status":1,"i_vip_status":1,"s_m_phone":1,"s_phone":1,"o_vipjy":1`)
 	if data != nil && len(*data) > 0 && ok {
 		i_vip_status := qu.IntAll((*data)["i_vip_status"])
-		if i_vip_status > 0 {
+		if i_vip_status > 1 {
+			vipstatus = 1
 			isVip = true
 		}
+		ovipjy, _ := (*data)["o_vipjy"].(map[string]interface{})
+		if ovipjy["o_buyset"] != nil {
+			o_buyset := ovipjy["o_buyset"].(map[string]interface{})
+			if o_buyset["upgrade"] != nil && isVip {
+				vipstatus = 2
+			}
+		}
 		if i_member_status := qu.IntAllDef((*data)["i_member_status"], 0); i_member_status > 0 {
 			isMember = true
 		}
@@ -458,7 +503,11 @@ func Power(userid string) bool {
 			}
 		}
 	}
-	return isVip || isEnt || isMember
+	return isVip || isEnt || isMember, map[string]interface{}{
+		"vip":      vipstatus,
+		"member":   isMember,
+		"entniche": isEnt,
+	}
 }
 
 type InfoList struct {
@@ -708,3 +757,85 @@ func AddLab(name, userid string) map[string]interface{} {
 	}
 	return m
 }
+
+//修改redis中的收藏条数;
+/*	typ:"d"删除  typ:"a"添加
+	list:需要添加或删除的bid_id
+*/
+func UpdateCollListRedis(typ, userid string, list []string) bool {
+	bl := false
+	if len(list) == 0 {
+		return true
+	}
+	Blist := []string{}
+	m := map[string]bool{}
+	redisCollKey := fmt.Sprintf("coll_%s", userid)
+	collTime := 3600 * 2
+	if config.BidCollConfig.CollListRedisTime > 0 {
+		collTime = config.BidCollConfig.CollListRedisTime
+	}
+	redisIsCollKey := fmt.Sprintf("isColl_%s", userid) //是否超过100条 超过:2 没超过:1
+	isCollTime := 3600 * 24 * 3
+	if config.BidCollConfig.IsCollRedisTime > 0 {
+		isCollTime = config.BidCollConfig.IsCollRedisTime
+	}
+	collStatus := redis.GetInt(config.BidCollConfig.CollRedisDb, redisIsCollKey)
+	redisArr := GetCollRedis(userid, collStatus)
+	if len(redisArr) > 0 {
+		for _, v := range redisArr {
+			m[v] = true
+		}
+	}
+	if typ == "a" {
+		for _, v := range list {
+			if m[v] {
+				continue //去重
+			}
+			Blist = append(Blist, v)
+		}
+	} else if typ == "d" {
+		for _, v := range list {
+			delete(m, v)
+		}
+		if len(m) > 0 {
+			for k, _ := range m {
+				Blist = append(Blist, k)
+			}
+		}
+	}
+	arr := append(redisArr, Blist...)
+	status := 1
+	if len(arr) > config.BidCollConfig.CollListRedisMaxCount {
+		status = 2
+		arr = []string{}
+	} else if len(arr) == 0 {
+		status = 0
+	}
+	bl = redis.Put(config.BidCollConfig.CollRedisDb, redisCollKey, arr, collTime) &&
+		redis.Put(config.BidCollConfig.CollRedisDb, redisIsCollKey, status, isCollTime)
+	return bl
+
+}
+
+/*
+    isColl int:	收藏条数的状态 (是否超过100条 超过:2 没超过:1)
+return
+	[]string:收藏的id
+*/
+func GetCollRedis(userid string, isColl int) []string {
+	redisCollKey := fmt.Sprintf("coll_%s", userid) //列表
+	redisArr := []string{}
+	if isColl == 1 {
+		redisArr, _ = redis.Get(config.BidCollConfig.CollRedisDb, redisCollKey).([]string)
+		if len(redisArr) == 0 {
+			data := db.Mysql.SelectBySql(fmt.Sprintf(`select bid from %s where userid ='%s'`, db.DbConf.Bdcollection, userid))
+			if data != nil && len(*data) > 0 {
+				for _, v := range *data {
+					redisArr = append(redisArr, qu.ObjToString(v["bid"]))
+				}
+				redis.Put(config.BidCollConfig.CollRedisDb, redisCollKey, redisArr, config.BidCollConfig.CollListRedisTime)
+			}
+		}
+	}
+	return redisArr
+}

+ 4 - 3
src/jfw/modules/publicapply/src/bidcollection/service/service.go

@@ -128,11 +128,12 @@ func (this *ServiceStruct) Power() {
 	defer qu.Catch()
 	userId, _ := this.GetSession("userId").(string)
 	r := func() Result {
-		ispay, msg := false, ""
+		m, msg := map[string]interface{}{}, ""
 		if userId != "" {
-			ispay = entity.Power(userId)
+			_, m = entity.Power(userId)
+			//log.Println(entity.UpdateRedis("a", userId, []string{"a", "d"}))
 		}
-		return Result{Data: ispay, Error_msg: msg}
+		return Result{Data: m, Error_msg: msg}
 	}()
 	this.ServeJson(r)
 }

+ 8 - 4
src/jfw/modules/publicapply/src/config/config.go

@@ -15,10 +15,14 @@ type config struct {
 	Industry string
 }
 type BidColl struct {
-	PayUserCollLimit  int
-	FreeUserCollLimit int
-	Pagesize          int
-	LabelMaxCount     int
+	PayUserCollLimit      int    //付费用户收藏数量最大限制
+	FreeUserCollLimit     int    //免费用户收藏数量最大限制
+	Pagesize              int    //付费用户收藏列表每页展示数量
+	LabelMaxCount         int    //标签数量最大限制
+	CollRedisDb           string //收藏的bid redis key
+	IsCollRedisTime       int    //是否收藏redis过期时间
+	CollListRedisTime     int    //收藏列表redis过期时间
+	CollListRedisMaxCount int    //收藏列表redis最大条数限制
 }
 
 var Config *config

+ 1 - 1
src/jfw/modules/subscribepay/src/service/invoice.go

@@ -122,7 +122,7 @@ func (this *Invoice) Addinvoice() error {
 		pos := qutil.IntAllDef(last, 0)
 		locks[pos].Lock()
 		defer locks[pos].Unlock()
-		u := util.Mysql.FindOne("dataexport_order", map[string]interface{}{"order_code": order_code, "user_id": userId, "applyBill_status": 0}, "order_money,product_type,pay_way,pay_money", "")
+		u := util.Mysql.FindOne("dataexport_order", map[string]interface{}{"order_code": order_code, "user_id": userId, "applyBill_status": map[string]interface{}{"ne": 2}}, "order_money,product_type,pay_way,pay_money", "")
 		if u != nil {
 			var prices float64
 			//公对公转账 账单金额可以修改 开发票应取实付金额 pay_money

+ 2 - 2
src/jfw/modules/subscribepay/src/service/vipSubscribePay.go

@@ -340,7 +340,7 @@ func TimeProcessing(hour interface{}, duration int) time.Time {
 	return t
 }
 
-//cycleunit(1:年 2:月 3:季)
+//cycleunit(1:年 2:月 3:季)
 //cyclecount 数字长度
 func checkReqDate(dateStr string) (cyclecount, cycleunit int, err error) {
 	if strings.HasSuffix(dateStr, "年") {
@@ -353,7 +353,7 @@ func checkReqDate(dateStr string) (cyclecount, cycleunit int, err error) {
 		return
 	} else if strings.HasSuffix(dateStr, "季") {
 		cycleunit = 3
-		dateStr = strings.Replace(dateStr, "", "", -1)
+		dateStr = strings.Replace(dateStr, "季", "", -1)
 		cyclecount, err = strconv.Atoi(strings.Trim(dateStr, " "))
 		if cyclecount > 12 && err == nil {
 			err = errors.New(fmt.Sprintf("日期%s范围超出最大值", dateStr))

+ 4 - 2
src/web/staticres/common-module/coupon/js/pay-order-template.js

@@ -246,7 +246,9 @@ var couponTem = {
         _this.coupon.checkedId = couponStorage.userLotteryId;
         _this.coupon.userLotteryId = couponStorage.userLotteryId;
         _this.coupon.lotteryId = couponStorage.lotteryId
-        sessionStorage.removeItem('$select-coupon')
+        if(this.config.type.indexOf('vip') == -1) {
+          sessionStorage.removeItem('$select-coupon')
+        }
         _this.$emit('update-coupon',_this.coupon)
       } else {
         $.ajax({
@@ -272,7 +274,7 @@ var couponTem = {
                 _this.coupon.list = res.data.list;
                 _this.$emit('update-coupon',_this.coupon)
               } else {
-                console.log('没有优惠券')
+                // console.log('没有优惠券')
               }
             }
           },

+ 449 - 0
src/web/staticres/common-module/ent-search/ent-search-template.css

@@ -0,0 +1,449 @@
+#v-ent-ent-search-group {
+  display: block !important;
+  background-color: #f5f6f7;
+}
+
+#v-ent-ent-search-group .ent-search-item {
+  margin-top: 8px;
+  display: flex;
+  flex-direction: column;
+  padding: 0.32rem;
+  background-color: #fff;
+}
+
+#v-ent-ent-search-group .ent-search-list {
+  display: flex;
+  flex-direction: column;
+}
+
+.ent-info-head {
+  flex-shrink: 0;
+  position: relative;
+  width: 1.68rem;
+  height: 1.68rem;
+  background: rgba(0, 0, 0, 0.05);
+  border: 0.5px solid rgba(0, 0, 0, 0.05);
+  box-sizing: border-box;
+  border-radius: 0.08rem;
+}
+
+.ent-info-head .ent-info-status.status-1 {
+  background: #FB483D;
+}
+
+.ent-info-head .ent-info-status.status-2 {
+  background: #FF9F40;
+}
+
+.ent-info-head .ent-info-status.status-3 {
+  background: #9B9CA3;
+}
+
+.ent-info-head .ent-info-status {
+  position: absolute;
+  top: 0.08rem;
+  left: 0.08rem;
+  background: #2ABED1;
+  border-radius: 0.08rem;
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  font-size: 0.24rem;
+  line-height: 0.36rem;
+  color: #FFFFFF;
+  padding: 0 0.08rem;
+  display: inline-block;
+}
+
+.ent-info-top {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: space-between;
+}
+
+.ent-row {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: space-between;
+}
+
+.ent-search-list .j-icon {
+  flex-shrink: 0;
+  width: 0.4rem;
+  height: 0.4rem;
+}
+
+.ent-info-keep .ent-name {
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  font-size: 0.32rem;
+  line-height: 0.48rem;
+  color: #171826;
+  max-width: 4.3rem;
+}
+
+.ent-info-keep .fill-icon-box {
+  padding: 0.12rem;
+  padding-right: 0;
+}
+
+.ent-info-keep {
+  margin-left: 0.24rem;
+  flex: 1;
+}
+
+.ent-more span {
+  color: #2ABED1;
+  margin-top: 0.08rem;
+}
+
+.ent-more {
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  font-size: 0.26rem;
+  line-height: 0.36rem;
+  color: #5F5E64;
+  margin-top: 0.2rem;
+}
+
+.ent-info-bottom {
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-end;
+  margin-top: 0.24rem;
+}
+
+.ent-line-box {
+  margin-top: 0.24rem;
+  width: 4.22rem;
+  height: 0.01rem;
+  background: rgba(0, 0, 0, 0.05);
+  border-radius: 0.08rem;
+}
+
+.ent-address > div {
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: normal;
+  font-size: 0.22rem;
+  line-height: 0.32rem;
+  color: #5F5E64;
+  max-width: 4.22rem;
+  margin-right: 0.32rem;
+}
+
+.up-button {
+  margin: 0.48rem auto;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  width: 4.98rem;
+  height: 0.64rem;
+  border: 1px solid #2ABED1;
+  box-sizing: border-box;
+  border-radius: 0.08rem;
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  font-size: 0.26rem;
+  line-height: 0.48rem;
+  color: #2ABED1;
+}
+
+.ent-more-tip .j-icon {
+  margin-right: 0.08rem;
+}
+
+.ent-more-tip {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: center;
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  font-size: 0.28rem;
+  line-height: 0.4rem;
+  color: #9B9CA3;
+}
+
+#v-ent-ent-search-group .van-tabs__line {
+  opacity: 0 !important;
+}
+
+#v-ent-ent-search-group .an-icon-box {
+  position: relative;
+  width: 0.32rem;
+  height: 0.32rem;
+}
+
+#v-ent-ent-search-group .an-icon-box .j-icon {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 0.32rem;
+  height: 0.32rem;
+  transition: all 0.2s;
+  margin-left: 0.04rem;
+}
+
+#v-ent-ent-search-group .an-icon-box .icon-triangle-up {
+  opacity: 0;
+}
+
+#v-ent-ent-search-group .an-icon-box .icon-triangle-down {
+  opacity: 1;
+}
+
+#v-ent-ent-search-group .ent-search-tab-item {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: center;
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  font-size: 0.28rem;
+  line-height: 0.4rem;
+  color: #5F5E64;
+  padding: 0.24rem 0.38rem;
+}
+
+#v-ent-ent-search-group .ent-search-tab-item .disabled-tag {
+  display: none;
+  width: 0.64rem;
+  height: 0.32rem;
+  border: 0.02rem solid #FB483D;
+  box-sizing: border-box;
+  border-radius: 0.16rem;
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  text-align: center;
+  font-size: 0.2rem;
+  line-height: 0.32rem;
+  color: #FB483D;
+  margin: 0 0.04rem;
+}
+
+#v-ent-ent-search-group .ent-search-tab-item.ent-p-disabled {
+  color: #C0C4CC !important;
+}
+
+#v-ent-ent-search-group .ent-search-tab-item.ent-p-disabled .disabled-tag {
+  display: inline-block;
+}
+
+#v-ent-ent-search-group .van-tabs--line .van-tabs__wrap::after {
+  border-width: 0;
+  border-bottom-width: 1px;
+}
+
+#v-ent-ent-search-group .van-tab--active .ent-search-tab-item {
+  color: #2ABED1;
+}
+
+#v-ent-ent-search-group .van-tab--active .ent-search-tab-item .icon-triangle-up {
+  opacity: 1;
+}
+
+#v-ent-ent-search-group .van-tab--active .ent-search-tab-item .icon-triangle-down {
+  opacity: 0;
+}
+
+#v-ent-ent-search-group .van-tab--active .ent-search-tab-item.ent-p-close {
+  color: #5F5E64;
+}
+
+#v-ent-ent-search-group .van-tab--active .ent-search-tab-item.ent-p-close .icon-triangle-up {
+  opacity: 0;
+}
+
+#v-ent-ent-search-group .van-tab--active .ent-search-tab-item.ent-p-close .icon-triangle-down {
+  opacity: 1;
+}
+
+#v-ent-ent-search-group .ent-search-list {
+  overflow-y: auto;
+  position: relative;
+}
+
+#v-ent-ent-search-group .ent-search-list.stop {
+  overflow: hidden;
+}
+
+#v-ent-ent-search-group .jy-diy-pop {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  height: unset;
+}
+
+#v-ent-ent-search-group .jy-diy-pop .van-overlay {
+  position: absolute;
+}
+
+#v-ent-ent-search-group .jy-diy-pop .van-popup {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  background-color: #fff;
+  z-index: 2;
+}
+
+#v-ent-ent-search-group .jy-diy-pop .popup-content {
+  max-height: 40vh;
+  overflow-y: auto;
+}
+
+#v-ent-ent-search-group .empty-tip-group {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  font-size: 0.28rem;
+  line-height: 0.4rem;
+  color: #5F5E64;
+}
+
+#v-ent-ent-search-group .empty-tip-group .img-empty {
+  width: 3.2rem;
+  height: 3.2rem;
+  margin-bottom: 0.24rem;
+  margin-top: 1.76rem;
+}
+
+#v-ent-ent-search-group .wait-buy-tip-group {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  padding: 0.96rem 0;
+  border-bottom: 0.5px solid rgba(0, 0, 0, 0.05);
+}
+
+#v-ent-ent-search-group .wait-buy-tip-group h3 {
+  font-size: 0.36rem;
+  line-height: 0.52rem;
+  color: #171826;
+  margin-bottom: 0.16rem;
+}
+
+#v-ent-ent-search-group .wait-buy-tip-group p {
+  font-size: 0.3rem;
+  line-height: 0.44rem;
+  text-align: center;
+  color: #5F5E64;
+}
+
+#v-ent-ent-search-group .condition-select-group {
+  padding-left: 0.32rem;
+}
+
+#v-ent-ent-search-group .condition-select-group.more .condition-select-item .more-icon-box {
+  position: relative;
+  width: 0.48rem;
+  height: 0.48rem;
+}
+
+#v-ent-ent-search-group .condition-select-group.more .condition-select-item .more-icon-box .j-icon {
+  top: 0;
+  left: 0;
+  position: absolute;
+}
+
+#v-ent-ent-search-group .condition-select-group.more .condition-select-item .icon-tick-circle-fill {
+  opacity: 0;
+}
+
+#v-ent-ent-search-group .condition-select-group.more .condition-select-item .icon-tick-circle {
+  opacity: 1;
+}
+
+#v-ent-ent-search-group .condition-select-group.more .condition-select-item.checked .icon-tick-circle-fill {
+  opacity: 1;
+}
+
+#v-ent-ent-search-group .condition-select-group.more .condition-select-item.checked .icon-tick-circle {
+  opacity: 0;
+}
+
+#v-ent-ent-search-group .condition-select-group .condition-select-item {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0.24rem 0.32rem;
+  padding-left: 0;
+  border-bottom: 0.5px solid rgba(0, 0, 0, 0.05);
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  font-size: 0.28rem;
+  line-height: 0.4rem;
+  color: #5F5E64;
+}
+
+#v-ent-ent-search-group .condition-select-group .condition-select-item .j-icon {
+  opacity: 0;
+  width: 0.48rem;
+  height: 0.48rem;
+  transition: all 0.2s;
+}
+
+#v-ent-ent-search-group .condition-select-group .condition-select-item.checked {
+  color: #2ABED1;
+}
+
+#v-ent-ent-search-group .condition-select-group .condition-select-item.checked .j-icon {
+  opacity: 1;
+}
+
+#v-ent-ent-search-group .pop-bottom {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0.16rem 0.32rem;
+}
+
+#v-ent-ent-search-group .pop-bottom > .van-button {
+  flex: 1;
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  font-size: 0.32rem;
+  line-height: 0.48rem;
+  color: #5F5E64;
+  background: #EDEFF2;
+  border-radius: 4px;
+}
+
+#v-ent-ent-search-group .pop-bottom > .van-button--primary {
+  color: #fff;
+  border-color: #2ABED1;
+  background-color: #2ABED1;
+}
+
+#v-ent-ent-search-group .pop-bottom > .van-button + .van-button {
+  margin-left: 0.26rem;
+}
+
+.ent-stop-scroll {
+  overflow: hidden !important;
+}
+
+/*# sourceMappingURL=ent-search-template.css.map */

File diff suppressed because it is too large
+ 7 - 0
src/web/staticres/common-module/ent-search/ent-search-template.css.map


+ 392 - 0
src/web/staticres/common-module/ent-search/ent-search-template.js

@@ -0,0 +1,392 @@
+var vEntSearchComponent = new Vue({
+  el: '#v-ent-ent-search-group',
+  delimiters: ['@@', '@@'],
+  data: function () {
+    return {
+      showEntSearch: false,
+      showPop: false,
+      showUpTip: false,
+      listInfo: {
+        value: '',
+        pageNum: 0,
+        pageSize: 10,
+        total: -1,
+        loading: true,
+        finished: false
+      },
+      activeTabIndex: 0,
+      entTabs: [
+        {
+          title: ''
+        },
+        {
+          title: '搜索范围'
+        },
+        {
+          title: '注册地'
+        },
+        {
+          title: '注册资本'
+        },
+        {
+          title: '企业类型'
+        },
+        {
+          title: '企业状态'
+        },
+        {
+          title: '中标区域',
+          disabled: true
+        },
+        {
+          title: '单位类型'
+        },
+        {
+          title: '联系方式'
+        }
+      ],
+      statusEnum: ['存续', '吊销', '停业', '撤销'],
+      list: [],
+      conditionMap: {
+        1: [
+          {
+            title: '企业名称',
+            checked: false,
+            key: 'A'
+          },
+          {
+            title: '法定代表人',
+            checked: false,
+            key: 'B'
+          },
+          {
+            title: '股东',
+            checked: false,
+            key: 'C'
+          },
+          {
+            title: '高管',
+            checked: false,
+            key: 'D'
+          },
+          {
+            title: '中标项目/标的物',
+            checked: false,
+            key: 'E'
+          }
+        ],
+        4: [
+          {
+            title: '有限责任公司',
+            checked: false,
+            key: 'A'
+          },
+          {
+            title: '股份有限公司',
+            checked: false,
+            key: 'B'
+          },
+          {
+            title: '有限合伙',
+            checked: false,
+            key: 'C'
+          },
+          {
+            title: '普通合伙',
+            checked: false,
+            key: 'D'
+          }
+        ],
+        5: [
+          {
+            title: '存续(在营、开业、在业)',
+            checked: false,
+            key: 'A'
+          },
+          {
+            title: '吊销',
+            checked: false,
+            key: 'B'
+          },
+          {
+            title: '注销',
+            checked: false,
+            key: 'C'
+          },
+          {
+            title: '撤销',
+            checked: false,
+            key: 'D'
+          }
+        ],
+        7: [
+          {
+            title: '全部单位类型',
+            checked: true,
+            key: ''
+          },
+          {
+            title: '采购单位',
+            checked: false,
+            key: '1'
+          },
+          {
+            title: '投标企业',
+            checked: false,
+            key: '2'
+          },
+          {
+            title: '招标代理机构',
+            checked: false,
+            key: '3'
+          },
+          {
+            title: '厂商',
+            checked: false,
+            key: '4'
+          }
+        ],
+        8: [
+          {
+            title: '全部联系方式',
+            checked: true,
+            key: ''
+          },
+          {
+            title: '固定电话',
+            checked: false,
+            key: '1'
+          },
+          {
+            title: '手机号',
+            checked: false,
+            key: '2'
+          },
+          {
+            title: '电子邮箱',
+            checked: false,
+            key: '3'
+          },
+          {
+            title: '无联系方式',
+            checked: false,
+            key: '4'
+          }
+        ]
+      },
+      conditionStrMap: {
+        matchType: '',
+        entArea: '',
+        entCity: '',
+        entCapital: '',
+        entType: '',
+        entStatus: '',
+        biddingArea: '',
+        entClass: '',
+        entContact: ''
+      }
+    }
+  },
+  computed: {
+    getMatchType () {
+      return this.condition1.filter(function (v) {
+        return v.checked
+      }).map(function (v) {
+        return v.key
+      }).join(',')
+    },
+    isMoreSelect () {
+      return this.activeTabIndex < 7
+    },
+    isWaitBuy () {
+      return this.entTabs[this.activeTabIndex].disabled
+    },
+
+  },
+  methods: {
+    getMoreListToStr (key) {
+      if (typeof this.conditionMap[key] !== "undefined" && this.conditionMap[key].length) {
+        return this.conditionMap[key].filter(function (v) {
+          return v.checked
+        }).map(function (v) {
+          return v.key
+        }).join(',')
+      }
+      return ''
+    },
+    changeConditionStrMap (i) {
+      switch (i) {
+        case 1 : {
+          this.conditionStrMap.matchType = this.getMoreListToStr(1)
+          break
+        }
+        case 4 : {
+          this.conditionStrMap.entType = this.getMoreListToStr(4)
+          break
+        }
+        case 5 : {
+          this.conditionStrMap.entStatus = this.getMoreListToStr(5)
+          break
+        }
+        case 7 : {
+          this.conditionStrMap.entClass = this.getMoreListToStr(7)
+          break
+        }
+        case 8 : {
+          this.conditionStrMap.entContact = this.getMoreListToStr(8)
+          break
+        }
+      }
+    },
+    goUpBuyPage () {
+
+    },
+    getSearchParams () {
+      var tempParams = {
+        match: this.listInfo.value,
+        pageSize: this.listInfo.pageSize,
+        pageNum: this.listInfo.pageNum
+      }
+      for (var k in this.conditionStrMap) {
+        if (this.conditionStrMap[k]) {
+          tempParams[k] = this.conditionStrMap[k]
+        }
+      }
+      return tempParams
+    },
+    onLoad () {
+      this.ajaxEntList().done(this.doFormatList.bind(this))
+    },
+    doFormatList (r) {
+      if (r && r.error_msg == '' && r.data) {
+        this.listInfo.pageNum++
+        if (this.listInfo.pageNum === 1) {
+          if (r.data.total || r.data.total === 0) {
+            this.listInfo.total = r.data.total
+            this.showUpTip = false
+          } else {
+            this.showUpTip = true
+            this.listInfo.finished = true
+          }
+        }
+
+        if (r.data.list) {
+          var _this = this
+          this.list = this.list.concat(r.data.list.map(function (v) {
+            return {
+              name: v.company_name,
+              legal: v.legal_person,
+              money: v.capital,
+              address: v.company_address,
+              _id: v.id,
+              status: _this.statusEnum.indexOf(v.company_status) || 0,
+              checked: false
+            }
+          }))
+        }
+
+        this.listInfo.loading = false
+        if (this.listInfo.total !== -1 && this.listInfo.total <= this.list.length) {
+          this.listInfo.finished = true
+        }
+      }
+    },
+    ajaxEntList() {
+      return $.ajax({
+        url: '/publicapply/enterpriseSearch/doQuery',
+        type: 'POST',
+        contentType: 'application/x-www-form-urlencoded',
+        data: this.getSearchParams(),
+        dataType: 'json'
+      })
+    },
+
+    doQueryList () {
+      this.listInfo.pageNum = 0
+      this.listInfo.total = -1
+      this.listInfo.finished = false
+      this.listInfo.loading = true
+      this.listInfo.value = $("#search-header-input").val()
+      this.list = []
+      this.onLoad()
+    },
+    resetCondition () {
+      this.resetValueForData(this.activeTabIndex)
+      this.togglePop(false)
+      this.changeConditionStrMap(this.activeTabIndex)
+      this.doQueryList()
+    },
+    submitCondition () {
+      console.log('submit', this.activeTabIndex)
+      this.changeConditionStrMap(this.activeTabIndex)
+      this.togglePop(false)
+      this.doQueryList()
+    },
+    resetValueForData (key) {
+      if (typeof this.conditionMap[key] !== "undefined") {
+        var defalutKey = this.$options.data().conditionMap[key]
+        this.$set(this.conditionMap, key, defalutKey)
+      }
+    },
+    removeFixedScroll () {
+      $(".app-layout-content-b").scrollTop(0)
+      $(".app-layout-content-b").removeClass('ent-stop-scroll')
+      $(".ent-search-list").css({height: 'unset'})
+      $(".ent-search-pop").css({height: 'unset'})
+    },
+    fixedScroll () {
+      $(".app-layout-content-b").scrollTop(0)
+      $(".app-layout-content-b").addClass('ent-stop-scroll')
+      var isMaxHeight = $(".app-layout-content-b").height() - $(".tabs-nav").height() - $(".van-tabs.van-tabs--line").height()
+      $(".ent-search-list").css({height: isMaxHeight})
+      $(".ent-search-pop").css({height: isMaxHeight})
+    },
+    selectEnt (ent) {
+      console.log(ent)
+      sessionStorage.setItem('home_top_search_tab_index', $(".tabs-nav .active").index())
+      saveSearchHistory('ent', ent.name, ent._id)
+      sessionStorage.setItem('landentinfo', JSON.stringify({
+        anchor: '企业全景分析',
+        landname: ent.name
+      }))
+      SuperSearch.setSessionStorage()
+      if(!isMember){
+        location.href = (utils.isWeiXinBrowser ? '' : '/jyapp') + "/big/page/landingPage"
+      }else{
+        location.href = (utils.isWeiXinBrowser ? '' : '/jyapp') + "/big/page/ent_portrait?eId="+encodeURIComponent(ent._id)
+      }
+    },
+    onClickTabs (name, title) {
+      console.log(name, title)
+      this.togglePop(true)
+    },
+    onSelectItem (item, index) {
+      if (index < 7) {
+        item.checked = !item.checked
+      } else {
+        this.conditionMap[index].forEach(function (v) {
+          v.checked = false
+        })
+        item.checked = true
+        this.submitCondition()
+      }
+    },
+    togglePop (type) {
+      this.showPop = type
+    },
+    toggleEntShow (type) {
+      this.showEntSearch = type
+      if (type) {
+        this.doQueryList()
+      }
+      var _this = this
+      this.$nextTick(function () {
+        if (type) {
+          _this.fixedScroll()
+        } else {
+          _this.removeFixedScroll()
+        }
+      })
+    }
+  }
+})

+ 405 - 0
src/web/staticres/common-module/ent-search/ent-search-template.scss

@@ -0,0 +1,405 @@
+#v-ent-ent-search-group {
+  display: block !important;
+  background-color: #f5f6f7;
+}
+#v-ent-ent-search-group .ent-search-item {
+  margin-top: 8px;
+  display: flex;
+  flex-direction: column;
+  padding: 0.32rem;
+  background-color: #fff;
+}
+#v-ent-ent-search-group .ent-search-list {
+  display: flex;
+  flex-direction: column;
+}
+.ent-info-head {
+  flex-shrink: 0;
+  position: relative;
+  width: 1.68rem;
+  height: 1.68rem;
+  background: rgba(0, 0, 0, 0.05);
+  border: 0.5px solid rgba(0, 0, 0, 0.05);
+  box-sizing: border-box;
+  border-radius: 0.08rem;
+}
+.ent-info-head .ent-info-status.status-1 {
+  background: #FB483D;
+}
+.ent-info-head .ent-info-status.status-2 {
+  background: #FF9F40;
+}
+.ent-info-head .ent-info-status.status-3 {
+  background: #9B9CA3;
+}
+.ent-info-head .ent-info-status {
+  position: absolute;
+  top: 0.08rem;
+  left: 0.08rem;
+  background: #2ABED1;
+  border-radius: 0.08rem;
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  font-size: 0.24rem;
+  line-height: 0.36rem;
+  color: #FFFFFF;
+  padding: 0 0.08rem;
+  display: inline-block;
+}
+.ent-info-top {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: space-between;
+}
+.ent-row {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: space-between;
+}
+.ent-search-list .j-icon {
+  flex-shrink: 0;
+  width: 0.4rem;
+  height: 0.4rem;
+}
+.ent-info-keep .ent-name {
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  font-size: 0.32rem;
+  line-height: 0.48rem;
+  color: #171826;
+  max-width: 4.3rem;
+}
+.ent-info-keep .fill-icon-box {
+  padding: 0.12rem;
+  padding-right: 0;
+}
+.ent-info-keep {
+  margin-left: 0.24rem;
+  flex: 1;
+}
+.ent-more span {
+  color: #2ABED1;
+  margin-top: 0.08rem;
+}
+.ent-more {
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  font-size: 0.26rem;
+  line-height: 0.36rem;
+  color: #5F5E64;
+  margin-top: 0.2rem;
+}
+.ent-info-bottom {
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-end;
+  margin-top: 0.24rem;
+}
+.ent-line-box {
+  margin-top: 0.24rem;
+  width: 4.22rem;
+  height: 0.01rem;
+  background: rgba(0, 0, 0, 0.05);
+  border-radius: 0.08rem;
+}
+.ent-address > div{
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: normal;
+  font-size: 0.22rem;
+  line-height: 0.32rem;
+  color: #5F5E64;
+  max-width: 4.22rem;
+  margin-right: 0.32rem;
+}
+.up-button {
+  margin: 0.48rem auto;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  width: 4.98rem;
+  height: 0.64rem;
+  border: 1px solid #2ABED1;
+  box-sizing: border-box;
+  border-radius: 0.08rem;
+
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  font-size: 0.26rem;
+  line-height: 0.48rem;
+  color: #2ABED1;
+
+}
+.ent-more-tip .j-icon {
+  margin-right: 0.08rem;
+}
+.ent-more-tip {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: center;
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  font-size: 0.28rem;
+  line-height: 0.4rem;
+  color: #9B9CA3;
+}
+
+#v-ent-ent-search-group {
+  .van-tabs__line {
+    opacity: 0 !important;
+  }
+  .an-icon-box {
+    position: relative;
+    width: 0.32rem;
+    height: 0.32rem;
+    .j-icon {
+      position: absolute;
+      top: 0;
+      left: 0;
+      width: 0.32rem;
+      height: 0.32rem;
+      transition: all 0.2s;
+      margin-left: 0.04rem;
+    }
+    .icon-triangle-up {
+      opacity: 0;
+    }
+    .icon-triangle-down {
+      opacity: 1;
+    }
+  }
+  .ent-search-tab-item {
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    justify-content: center;
+    font-family: PingFang SC;
+    font-style: normal;
+    font-weight: 500;
+    font-size: 0.28rem;
+    line-height: 0.4rem;
+    color: #5F5E64;
+    padding: 0.24rem 0.38rem;
+    .disabled-tag {
+      display: none;
+      width: 0.64rem;
+      height: 0.32rem;
+      border: 0.02rem solid #FB483D;
+      box-sizing: border-box;
+      border-radius: 0.16rem;
+      font-family: PingFang SC;
+      font-style: normal;
+      font-weight: 500;
+      text-align: center;
+      font-size: 0.2rem;
+      line-height: 0.32rem;
+      color: #FB483D;
+      margin: 0 0.04rem;
+    }
+    &.ent-p-disabled {
+      color: #C0C4CC !important;
+      .disabled-tag {
+        display: inline-block;
+      }
+    }
+  }
+  .van-tabs--line .van-tabs__wrap::after {
+    border-width: 0;
+    border-bottom-width: 1px;
+  }
+
+  .van-tab--active {
+    .ent-search-tab-item {
+      color: #2ABED1;
+      .icon-triangle-up {
+        opacity: 1;
+      }
+      .icon-triangle-down {
+        opacity: 0;
+      }
+      &.ent-p-close {
+        color: #5F5E64;
+        .icon-triangle-up {
+          opacity: 0;
+        }
+        .icon-triangle-down {
+          opacity: 1;
+        }
+      }
+    }
+  }
+  .ent-search-list {
+    overflow-y: auto;
+    position: relative;
+    &.stop {
+      overflow: hidden;
+    }
+  }
+  .jy-diy-pop {
+    position: absolute;
+    bottom: 0;
+    left: 0;
+    width: 100%;
+    height: unset;
+    .van-overlay {
+      position: absolute;
+    }
+    .van-popup {
+      position: absolute;
+      top: 0;
+      left: 0;
+      width: 100%;
+      background-color: #fff;
+      z-index: 2;
+    }
+    .popup-content {
+      max-height: 40vh;
+      overflow-y: auto;
+    }
+  }
+
+  .empty-tip-group {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    font-family: PingFang SC;
+    font-style: normal;
+    font-weight: 500;
+    font-size: 0.28rem;
+    line-height: 0.4rem;
+    color: #5F5E64;
+    .img-empty {
+      width: 3.2rem;
+      height: 3.2rem;
+      margin-bottom: 0.24rem;
+      margin-top: 1.76rem;
+    }
+  }
+
+  .wait-buy-tip-group {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    font-family: PingFang SC;
+    font-style: normal;
+    font-weight: 500;
+    padding: 0.96rem 0;
+    border-bottom: 0.5px solid rgba(0, 0, 0, 0.05);
+    h3 {
+      font-size: 0.36rem;
+      line-height: 0.52rem;
+      color: #171826;
+      margin-bottom: 0.16rem;
+    }
+    p {
+      font-size: 0.3rem;
+      line-height: 0.44rem;
+      text-align: center;
+      color: #5F5E64;
+    }
+  }
+
+  .condition-select-group {
+    padding-left: 0.32rem;
+    &.more {
+      .condition-select-item {
+        .more-icon-box {
+          position: relative;
+          width: 0.48rem;
+          height: 0.48rem;
+          .j-icon {
+            top: 0;
+            left: 0;
+            position: absolute;
+          }
+        }
+        .icon-tick-circle-fill {
+          opacity: 0;
+        }
+        .icon-tick-circle {
+          opacity: 1;
+        }
+        &.checked {
+          .icon-tick-circle-fill {
+            opacity: 1;
+          }
+          .icon-tick-circle {
+            opacity: 0;
+          }
+        }
+      }
+    }
+    .condition-select-item {
+      display: flex;
+      flex-direction: row;
+      align-items: center;
+      justify-content: space-between;
+      padding: 0.24rem 0.32rem;
+      padding-left: 0;
+      border-bottom: 0.5px solid rgba(0, 0, 0, 0.05);
+      font-family: PingFang SC;
+      font-style: normal;
+      font-weight: 500;
+      font-size: 0.28rem;
+      line-height: 0.4rem;
+      color: #5F5E64;
+      .j-icon {
+        opacity: 0;
+        width: 0.48rem;
+        height: 0.48rem;
+        transition: all 0.2s;
+      }
+      &.checked {
+        color: #2ABED1;
+        .j-icon {
+          opacity: 1;
+        }
+      }
+    }
+  }
+
+  .pop-bottom {
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    justify-content: space-between;
+    padding: 0.16rem 0.32rem;
+    > .van-button {
+      flex: 1;
+
+      font-family: PingFang SC;
+      font-style: normal;
+      font-weight: 500;
+      font-size: 0.32rem;
+      line-height: 0.48rem;
+      color: #5F5E64;
+      background: #EDEFF2;
+      border-radius: 4px;
+      &--primary {
+        color: #fff;
+        border-color: #2ABED1;
+        background-color: #2ABED1;
+      }
+
+
+      & + .van-button {
+        margin-left: 0.26rem;
+      }
+    }
+  }
+}
+
+.ent-stop-scroll {
+  overflow: hidden !important;
+}

File diff suppressed because it is too large
+ 164 - 0
src/web/staticres/common-module/ent-search/j-icon.css


+ 56 - 61
src/web/staticres/common-module/vipsubscribe/js/vip-coupon-template.js

@@ -1,67 +1,16 @@
-Vue.component('vip-coupon-template', {
+var vipCouponTem = {
   delimiters: ['@@', '@@'],
-  props: {
-    
-  },
+  props: {},
   data: function () {
     return {
-      couponList: [
-        {
-          "lotteryId": "4159",
-          "lotteryAttribute": "满减卷",
-          "lotteryBeginDate": "2021-04-08",
-          "lotteryEndDate": "2021-05-10",
-          "products": [],
-          "available": true,
-          "full": 100,
-          "reduce": 10,
-          "instructions": "使用说明",
-          "userLotteryId": "465c"
-        },
-        {
-          "lotteryId": "4159",
-          "lotteryAttribute": "折扣卷",
-          "lotteryBeginDate": "2021-04-08",
-          "lotteryEndDate": "2021-05-10",
-          "products": [],
-          "available": true,
-          "full": 100,
-          "reduce": 10,
-          "instructions": "使用说明",
-          "userLotteryId": "465c"
-        },
-        {
-          "lotteryId": "4159",
-          "lotteryAttribute": "折扣卷",
-          "lotteryBeginDate": "2021-04-08",
-          "lotteryEndDate": "2021-05-10",
-          "products": [],
-          "available": true,
-          "full": 100,
-          "reduce": 10,
-          "instructions": "使用说明",
-          "userLotteryId": "465c"
-        },
-        {
-          "lotteryId": "4159",
-          "lotteryAttribute": "折扣卷",
-          "lotteryBeginDate": "2021-04-08",
-          "lotteryEndDate": "2021-05-10",
-          "products": [],
-          "available": true,
-          "full": 100,
-          "reduce": 10,
-          "instructions": "使用说明",
-          "userLotteryId": "465c"
-        }
-      ]
+      couponList: []
     }
   },
   template: `
   <div class="vip-coupon-template" id="vip-coupon-template">
     <div class="vip-coupon-list" v-for="(item,index) in couponList" :key="item.lotteryId">
-      <div :class="['list-left', item.lotteryAttribute == '满减卷' ? 'red-bg': '', item.lotteryAttribute == '折扣卷' ? 'yellow-bg' : '']">
-        <div :class="['c-name', item.lotteryAttribute == '满减卷' ? 'red-bg': '', item.lotteryAttribute == '折扣卷' ? 'yellow-bg' : '']">@@item.lotteryAttribute@@</div>
+      <div :class="['list-left', item.lotteryAttribute == '满减券' ? 'red-bg': '', item.lotteryAttribute == '折扣券' ? 'yellow-bg' : '']">
+        <div :class="['c-name', item.lotteryAttribute == '满减券' ? 'red-bg': '', item.lotteryAttribute == '折扣券' ? 'yellow-bg' : '']">@@item.lotteryAttribute@@</div>
         <div class="c-result">@@item.reduce@@</div>
         <div class="c-sub">满@@item.full@@元可用</div>
       </div>
@@ -71,9 +20,8 @@ Vue.component('vip-coupon-template', {
           <p class="valid-value">@@item.lotteryBeginDate@@ - @@item.lotteryEndDate@@</p>
         </div>
         <div class="handle">
-          <button v-if="1 !== 2" :class="['handle-use', item.lotteryAttribute == '满减卷' ? 'red-color': 'yellow-color']" @click="useFn(item)">使用</button>
-          <button v-else-if="1 == 3" class="handle-disabled">暂不可用</button>
-          <button v-else class="handle-selected">已选择</button>
+          <button v-if="item.available" :class="['handle-use', item.active ? 'handle-selected' : '', item.lotteryAttribute == '满减券' ? 'red-color': 'yellow-color']" @click="useFn(item)" v-html="item.active ? '已选择': '使用'"></button>
+          <button v-else-if="!item.available" class="handle-disabled">暂不可用</button>
         </div>
       </div> 
     </div>
@@ -82,7 +30,54 @@ Vue.component('vip-coupon-template', {
   mounted() {},
   methods: {
     useFn: function(item) {
-      console.log(item)
+      this.couponList.forEach(function(item) {
+        item.active = false
+      })
+      item.active = true
+      sessionStorage.setItem('vip-cur-select-coupon', JSON.stringify(item))
+      this.$emit('update-coupon', item)
+    },
+    getCoupon: function(price) {
+      var _this = this
+      $.ajax({
+        type:'POST',
+        url:'/jyCoupon/showCoupons',
+        data:{
+          pId: 101,
+          price: parseInt(price*10000/100) ,
+          JYR: 1
+        },
+        success:function(res) {
+          if (res.data) {
+            res.data.forEach(function(item) {
+              if (item.lotteryBeginDate) {
+                item.lotteryBeginDate = item.lotteryBeginDate.replace(/-/g, '.')
+              }
+              if (item.lotteryEndDate) {
+                item.lotteryEndDate = item.lotteryEndDate.replace(/-/g, '.')
+              }
+              // 如当前选择过优惠券,将其状态回显至已选择
+              var curCoupon = JSON.parse(sessionStorage.getItem('vip-cur-select-coupon'))
+              if (curCoupon) {
+                if (curCoupon.userLotteryId && curCoupon.userLotteryId == item.userLotteryId) {
+                  item.active = true
+                } else {
+                  item.active = false
+                }
+              } else {
+                item.active = false
+              }
+            })
+            _this.couponList = res.data
+          }
+        },
+        error:function(err) {
+          console.log(err)
+        }
+      })
     }
   }
-})
+}
+if (typeof Vue !== 'undefined') {
+  Vue.component('goods-coupon-template', vipCouponTem)
+}

+ 66 - 24
src/web/staticres/common-module/vipsubscribe/js/vip-size-template.js

@@ -1,28 +1,20 @@
-Vue.component('vip-size-template', {
+var goodsSizeTem = {
   delimiters: ['@@', '@@'],
   props: {
-    
+    config: {
+      type: Object,
+      default: function() {
+        return {
+          areaCount: Number,
+          priceInfo: Object
+        }
+      }
+    }
   },
   data: function () {
     return {
       goodsActive: 0,
-      goodsSize: [
-        {
-          period: '1月',
-          price: 38,
-          summary: '每天仅需1.27元'
-        },
-        {
-          period: '1季',
-          price: 99,
-          summary: '每天仅需1.09元'
-        },
-        {
-          period: '1年',
-          price: 380,
-          summary: '每天仅需1.04元'
-        }
-      ],
+      goodsInfo: {},
       isShowAuto: false, // 是否显示自动续费,本次版本不显示
       autoChecked: false, // 自动续费是否勾选
     }
@@ -30,13 +22,13 @@ Vue.component('vip-size-template', {
   template: `
   <div class="goods-size-template">
     <div class="goods">
-      <div :class="['goods-list', goodsActive == index ? 'goods-active' : '']" v-for="(item,index) in goodsSize" :key="item.price" @click="chooseGoods(item, index)">
+      <div :class="['goods-list', goodsActive == index ? 'goods-active' : '']" v-for="(item,index) in priceList" :key="item.period" @click="chooseGoods(item, index)">
         <div class="goods-period">@@item.period@@</div>
         <div class="goods-price">
           <span>¥</span>
-          <strong>@@item.price@@</strong>
+          <strong>@@item.price/100@@</strong>
         </div>
-        <div class="goods-summary">@@item.summary@@</div>
+        <div class="goods-summary">每天仅需@@(item.price/item.days/100).toFixed(2)@@元</div>
       </div>
     </div>
     <div class="auto-renew" v-if="isShowAuto">
@@ -45,11 +37,58 @@ Vue.component('vip-size-template', {
     </div>
   </div>
   `,
-  mounted() {},
+  mounted() {
+    
+  },
+  computed: {
+    priceList: function() {
+      var list = []
+      var count = this.config.areaCount
+      var obj = {
+        '1月': this.config.priceInfo.month,
+        '1季': this.config.priceInfo.quarter,
+        '1年': this.config.priceInfo.year
+      }
+      for (var key in obj) {
+        var days = 30
+        if (obj[key]) {
+          switch (key) {
+            case '1月':
+              days = 30
+              break;
+            case '1季':
+              days = 90
+              break;
+            case '1年':
+              days = 365
+              break;
+          }
+          if (count < 16) {
+            list.push({
+              period: key,
+              price: obj[key].oneProvince_allBuyerClass * count,
+              days: days
+            })
+          } else {
+            list.push({
+              period: key,
+              price: obj[key].allProvince_allBuyerClass,
+              days: days
+            })
+          }
+        }
+      }
+      // console.log(list)
+      return list
+    }
+  },
   methods: {
     // 选择商品规格
     chooseGoods: function(item, index) {
       this.goodsActive = index
+      sessionStorage.removeItem('vip-cur-select-coupon')
+      item.index = index
+      sessionStorage.setItem('vip-cur-select-size', JSON.stringify(item))
       this.$emit('select-vip-size', item)
     },
     // 自动续费
@@ -58,4 +97,7 @@ Vue.component('vip-size-template', {
       this.$emit('select-auto-renew', this.autoChecked)
     }
   }
-})
+}
+if (typeof Vue !== 'undefined') {
+  Vue.component('goods-size-template', goodsSizeTem)
+}

+ 54 - 0
src/web/staticres/css/ele-reset.css

@@ -20,6 +20,10 @@
     outline: 0;
 }
 
+.el-select .el-input.is-focus .el-input__inner {
+    border-color: #2cb7ca;
+}
+
 /* tab切换颜色 */
 .el-tabs__item.is-active {
     color: #2cb7ca;
@@ -113,4 +117,54 @@ li.el-select-dropdown__item {
     align-items: center;
     justify-content: center;
     color: #fff;
+}
+
+.j-t-button {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    padding: 7px 50px;
+    font-size: 16px;
+    color: #686868;
+    border: 1px solid #e0e0e0;
+    border-radius: 7px;
+    background-color: #fff;
+}
+.j-t-button.confirm {
+    color: #2cb7ca;
+    border-color: #2cb7ca;
+}
+.j-t-button.confirm.active,
+.j-t-button.confirm:hover {
+    color: #fff;
+    background-color: #2cb7ca;
+}
+.j-t-button.cancel {
+    margin-left: 40px;
+}
+
+/* dialog居中布局 */
+.j-el-confirm {
+    border-radius: 8px;
+}
+.j-el-confirm .el-dialog__header,
+.j-el-confirm .el-dialog__body,
+.j-el-confirm .el-dialog__footer {
+    text-align: center;
+}
+.j-el-confirm .el-dialog__header {
+    padding-top: 30px;
+}
+.j-el-confirm .el-dialog__body {
+    color: #686868;
+    font-size: 14px;
+    line-height: 22px;
+}
+.j-el-confirm .el-dialog__footer {
+    padding-bottom: 40px;
+}
+.j-el-confirm .dialog-footer {
+    display: flex;
+    align-items: center;
+    justify-content: center;
 }

+ 466 - 35
src/web/staticres/css/wxsearch.css

@@ -1514,22 +1514,27 @@ form{
 .mbsc-ios .dwb-s{
 	float: right !important;
 }
-.jyshaxuan div{
-	font-size: 14px;
-	color: #888;
-	background: url(/images/search/sys-jt-bottom.png)right center no-repeat;
-	background-size: 9px 5px;
-	padding-right: 12px;
-}
 .jyshaxuan{
-	height: 40px;
-	line-height: 40px;
-	width: 100%;
-	border-bottom: 1px solid #ccc;
-	padding-left: 5px;
+    height: 0.88rem;
 	display: flex;
-	justify-content: space-around;
+    justify-content: flex-start;
 	align-content: center;
+    overflow-x: scroll;
+}
+.jyshaxuan div.active-open{
+    color: #2ABED1;
+}
+.jyshaxuan div{
+	font-size: 0.28rem;
+    line-height: 0.4rem;
+    color: #5F5E64;
+    flex-shrink: 0;
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    justify-content: flex-start;
+    padding: 0.24rem 0.32rem;
+    box-sizing: border-box;
 }
 .money-dialog,.jypt-dialog{
 	padding:0 10px 10px 10px;
@@ -1826,35 +1831,32 @@ body{
 .resbm{
 	display: table;
 	position: fixed;
-	z-index: 9999;
+	z-index: 2000;
 	bottom: 0px;
 	width: 100%;
-	height: 50px;
+/*	height: 50px;*/
 	background-color: #37c6da;
 	border: 1px solid #37c6da;
-	color: #fff;
-	font-size: 13px;
-	padding-right: 15px;
+/*	color: #fff;*/
+/*	font-size: 15px;*/
+/*	padding-right: 15px;*/
+/*	text-align: center;*/
 }
 .rests {
-	height: 60px;
+	height: 50px;
+	line-height: 50px;
+	text-align: center;
 	display: inline-block;
 	margin-right: 10px;
-	margin-left: 0.7rem;
-	padding: .2rem 0px;
-    line-height: 0.4rem;
 }
 .resdy {
-	height:30px;
-    width:80px;
+	height: 35px;
+	width: 110px;
     border: 1px solid #fff;
-    line-height:30px;
+	line-height: 35px;
     border-radius: 20px;
     text-align: center;
     display: inline-block;
-    right: 0.2rem;
-    position: absolute;
-    top: 0.28rem;
 }
 .resdy img {
 	width: 12px;
@@ -1865,8 +1867,8 @@ body{
 }
 .dy_close{
 	position: absolute;
-    left: 0px;
-    top: 0.38rem;
+    right: 0px;
+    top: 0px;
     padding: 5px 10px 10px 10px;
 }
 .dy_close img{
@@ -1902,6 +1904,13 @@ body{
 .inputDiv img{
 	width: 20px;
 }
+.inpTitle_history .sprite_history{
+    float: left;
+    margin-top: 8px;
+}
+.inpTitle_history span{
+    float: left;
+}
 .inpTitle_history,.inpTitle_msgset{
 	color:#888;
 	font-size: 16px;
@@ -2015,10 +2024,10 @@ body{
 }
 #entsearchPage .bottom_btn{
 	border-top: 1px solid #ccc;
-	width: 100%;
-	/* height: 45px; */
+	/* width: 100%;
+	height: 45px;
 	display: block;
-	line-height: 45px;
+	line-height: 45px; */
 	position: fixed;
 	left: 0px;
 	right: 0px;
@@ -2027,8 +2036,8 @@ body{
 }
 #entsearchPage .bottom_btn ul li{
 	text-align: center;
-    width: 50%;
-    font-size: 18px;
+    /* width: 50%; */
+    /* font-size: 18px; */
 }
 #entsearchPage .bottom_btn .reset{
 	background-color:#eff9fa;
@@ -2227,6 +2236,15 @@ body{
     color: #fff;
     opacity: 0.75;
 }
+#searchIndex .app-layout-header{
+	background-color: transparent;
+	color: #ffffff;
+	border-width: 0px;
+}
+.absolute-hide{
+	position: absolute;
+	left: -1000px;
+}
 #supersearchPage #nijianTip .easypopup-content{
 	text-align: left;
 }
@@ -2252,3 +2270,416 @@ body{
     text-align: center;
     cursor: pointer;
 }
+/*********************wxlist.css*************************/
+/*列表样式*/
+.tslist .bt{
+	color: #1d1d1d;
+	text-decoration: none;
+	word-break: break-all;
+}
+.tslist .keyword{
+	color:#2cb7ca;
+}
+.tslist{
+	border-bottom: 1px solid #e5e6e9;
+	padding: 17px 0px 17px 0px;
+}
+.resnumb .two{
+	font-size:16px;
+	font-weight:500;
+	padding-left:25px;
+	float:left;
+	line-height:24px;
+    color: #1D1D1D;
+    font-size: .32rem;
+    text-align: justify;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    display: -webkit-box;
+    -webkit-line-clamp: 2;
+    -webkit-box-orient: vertical;
+}
+.resnumb{
+	position: relative;
+}
+.resnumb .one{
+	color:#1d1d1d;
+	font-size:16px;
+	width:25px;
+	position: absolute;
+	top: 1px;
+}
+.restime{
+	float:right;
+	color:#999;
+	margin-top:10px;
+	font-size: 14px;
+	margin-right: 5px;
+}
+.reslist{
+	width:100%;
+	height:90px;
+	border-bottom:1px solid #ddd;
+	padding-top:5px;
+}
+.restime span.location{
+	margin: 0px 5px;
+	background: #24C0D7;
+	color: #FFF;
+	font-size: 14px;
+    border:1px solid #24C0D7;
+    border-radius: 3px;
+    padding: 1px 3px;
+}
+.restime span.type{
+	border: 1px solid #ffba00;
+	background:#ffba00;
+	border-radius: 3px;
+	margin: 0px 5px;
+	padding: 1px 3px;
+	color: #fff;
+	font-size: 14px;
+}
+.restime span.industry{
+	border: 1px solid #25c78c;
+	background:#25c78c;
+	border-radius: 3px;
+	margin: 0px 5px;
+	padding: 1px 3px;
+	color: #fff;
+	font-size: 14px;
+}
+/*****************dropload.css***************************/
+.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);
+    }
+}
+/*****************myorder/weui.min.css***************************/
+.weui-mask, .weui-mask_transparent {
+    position: fixed;
+    z-index: 1000;
+    top: 0;
+    right: 0;
+    left: 0;
+    bottom: 0;
+}
+.weui-mask {
+    background: rgba(0,0,0,.6);
+}
+/*******************字体图标**************************/
+@font-face {
+	font-family: 'jyapp';
+	src: url('/jyapp/fonts/jyAPP.eot?v=51430');
+	src: url('/jyapp/fonts/jyAPP.eot?v=51430#iefix') format('embedded-opentype'),
+	url('/jyapp/fonts/jyAPP.woff?v=51430') format('woff'),
+	url('/jyapp/fonts/jyAPP.ttf?v=51430') format('truetype'),
+	url('/jyapp/fonts/jyAPP.svg?v=51430') format('svg');
+}
+
+.jyapp-icon {
+	position: relative;
+	top: 0px;
+	display: inline-block;
+	font-family: 'jyapp';
+	font-style: normal;
+	font-weight: normal;
+	line-height: 1;
+	text-align: center;
+	-webkit-font-smoothing: antialiased;
+	-moz-osx-font-smoothing: grayscale;
+}
+
+.jyapp-icon-zuojiantou:before {
+	content: "\A7";
+}
+.jyapp-icon-bofangjilu:before {
+	content: "\B7";
+}
+.jyapp-icon-shujudaochu:before {
+  content: "\BA";
+}
+.jyapp-icon-zhankai:before {
+  content: "\B9";
+}
+.jyapp-icon-shouqi:before {
+  content: "\B8";
+}
+.jyapp-icon-xuanzhong:before {
+  content: "\BB";
+}
+/**********************/
+.jyapp-icon-shujudaochu,.jyapp-icon-zhankai,.jyapp-icon-shouqi{
+	display: initial;
+}
+.jyapp-icon-xuanzhong{
+	display: inline-block;
+    margin-left: .2em;
+    margin-right: .2em;
+}
+.newdialog .tab-box .sub-tab li.active>i{
+	display: block;
+}
+.newdialog .tab-box .sub-tab li>i {
+    display: none;
+    margin-top: -0.05rem;
+    font-size: .37rem;
+    color: #2CB7CA;
+}
+/*dev2.10.2*/
+.resbm0{
+	display: flex;
+    position: relative;
+    flex-direction: column;
+    align-items: center;
+    justify-content: space-between;
+}
+.resbm0 div{
+	padding: .15rem .3rem;
+    color: #fff;
+    font-size: .26rem;
+	    width: 100%;
+		    display: flex;
+    align-items: center;
+    justify-content: space-between;
+}
+.iconfont {
+    font-family: "iconfont" !important;
+    font-size: 16px;
+    font-style: normal;
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale;
+}
+.resbm0 div i{
+	font-size: .32rem;
+}
+.resbm0 div a{
+	width: 1.44rem;
+    height: .64rem;
+    line-height: .64rem;
+    color: #fff !important;
+    text-align: center;
+    background: transparent;
+    border: 1px solid white;
+    border-radius: .32rem;
+    text-decoration: none;
+	display: flex;
+    align-items: center;
+    justify-content: center;
+}
+/* -S p13 v2.10.4*/
+.p13 .home .top .home_banner {
+    padding: 0;
+    margin-top: 0.3rem;
+    position: relative;
+}
+.p13 .home .top .home_banner .placeholder-div {
+    display: block;
+    position: absolute;
+    top: 0;
+    left: 0.3rem;
+    width: 6.86rem;
+    height: 2.4rem;
+    border-radius: 8px;
+    background: #EDEFF2;
+}
+.p13 .home .top .home_search {
+    height: 0.92rem;
+    /*height: 0.8rem;*/
+    border-radius: 0.16rem;
+    background: #fff;
+    /*background: #F5F6F7;*/
+    border: 0.5px solid rgba(0, 0, 0, 0.05);
+    transition: all 0.18s;
+}
+.p13 .home .top .home_search .home_search_left {
+    height: 100%;
+}
+.p13 .home .top .home_banner .lunbo .custorm_dot {
+    bottom: 0.12rem;
+}
+.p13 .home .top .home_banner .lunbo {
+    padding: 0 0.3rem;
+    height: 2.4rem;
+}
+.p13 .home .home_tab {
+    padding: 0 0.16rem;
+    background: #fff;
+    border-bottom: none;
+}
+.p13 .home .top {
+    height: auto;
+    background: none;
+    padding-top: 0;
+    overflow: hidden;
+    background: #fff;
+}
+.p13 .home .home_tab .tab_container .tab_item img {
+    width: 0.88rem;
+    height: 0.88rem;
+}
+.p13 .home .home_tab .tab_container .tab_item span {
+    color: #171826;
+    font-size: 0.22rem;
+}
+.p13 .home .top .home_banner .lunbo .swiper-slide a img {
+    background: #EDEFF2;
+}
+.p13 .swiper-slide {
+    border-radius: 8px;
+    max-height: 2.4rem;
+    overflow: hidden;
+}
+.p13 .top-bg-box {
+    position: relative;
+    padding-top: 1.04rem;
+    /*height: 4.32rem;*/
+}
+.p13 .top-bg-right {
+    position: absolute;
+    width: 9rem;
+    height: 9rem;
+    border-radius: 50%;
+    right: -4.02rem;
+    top: -5.08rem;
+    background: linear-gradient(0deg, #29B9CC 0%, #2AD1D1 100%);
+}
+.p13 .top-bg-left {
+    position: absolute;
+    width: 8rem;
+    height: 8rem;
+    border-radius: 50%;
+    top: -3.68rem;
+    left: -1.46rem;
+    background: #29B9CC;
+}
+.p13 .top-title {
+    font-weight: bold;
+    font-size: 0.44rem;
+    line-height: 0.64rem;
+    color: #FFFFFF;
+    position: relative;
+    margin-left: 0.32rem;
+    margin-bottom: 0.32rem;
+}
+.p13 .home .top .home_search {
+    position: relative;
+    margin: 0 0.32rem;
+}
+.p13 #searchIndex .content {
+    overflow-y: scroll;
+    height: 100%;
+}
+.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;
+}
+.p13 .home .top .home_search.fixed-top .home_search_left {
+    border: 0.5px solid rgba(0, 0, 0, 0.05);
+    border-radius: 0.16rem;
+    background: #F5F6F7;
+    padding: 0 0.28rem;
+}
+.p13 .jy_sprite_main.sprite_home_search {
+    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOgSURBVHgB7VldTttAEJ61E9RHeoI6J2gQFAkBTXwCuEGTE0BPEDhB6QkwJyicwAQaRaL8nqDuCZqXvuCf7YwT0NrYy25sizz4k6Jkx97ZmZ3d+QtAjRo1arwlGBSE694tgxntMhM6wHkbOFjIdTl+yGGCvz1c5p6zcAiPzVPbXplAiZhbAdcdW0ZzaY9z3nsWWG1Jh/uPh7a94UEJ0FaAdtxoRgMOfB8KgAE76mytfoWC0FKAdp01my7+tKAceNz37SLWMFRfdN2rdq7weNbxKB3ix+am3+purTH6cN98H9M4fCdhM9jGG+KOrtowJ5QsINl5DwXs29ufzpX4jG56jPNBJp85LaFkgSzhaVdxh1dUhSfYm6sOzZlZRMTUEuTRNNF47YXhz5tveGEtkUbHBQU/gDkwc6P77uWvCWNsIDyyyDngt9bFlh6h2dH5LdJo9+zttUIe6Jn/5fURY7CX4O/7LZ2jJD1CKPwgRfIgMA+gLEx5eQlao6m1ObkWoPPImuFfkcZZ1Lc31x0oEXiUuniUXIE0wXvSUo3Y+RZYinZTFK9s4QkzJyAKuwxL/q7q/FwF0N11xDGe/TOoCOgUEl6JgdlRnSu7A6ngwk+hOpwnl+LKgU2mgJUYBY17qApB4IFsbQlkCiSCStlpcJL3C7epHNCUc6FFhUyBxI6Pbm8/QEXISCGUrS1TwBMHj//CFlSFRtCWrS1DrgI8gocUqQuVgaX8PlN2GBILsPPEiLE9qAiYD+2I47h+VkS+AqFBfj8RISnsQ8mgGgHSbhOLf1BErgLkNjH6nog0tMLxPDl7HuJ8a1rgiKs4Oi5b7kYD/yhFecrZS8GMlyXSqGMBGpAqQAEmXT1RN2I4uimsBPFIdzbiWkOzrHy1Jp6l1XeQ2ilqi0S+cagboSVtGS8uUTX5vRqJ47uABTekfDMJQIphR6EHiohzf5yT01OyjHfhDmhCuS9ErQ/GjR+QnWh5aJHTiEdnlPQ97aI7Hls4tgzD6PAIhVbo4GGLstfZWDsBRbxtY2vaO32hlI4SWskcXTBsWLUy2iLaiNsygdniUdR/8SwEZzi+/qLCp1BzF0zzgBmG0kJTybDeBYwt6J5Fb+NeXPWQz3H6dRVLlNNep/o5DLsoxMfM9jrD9noIQ4rueV4mTwlqTcqaZ4UVKBOZSjDmdDdX+3lzFqqgsT+vO+k7wXn0IJuzUBZ4gntxjf/4sB1U5s+8LcwaNWrUqKGE/5MGofZlmVHvAAAAAElFTkSuQmCC");
+    background-size: 100% 100%;
+    background-position: unset;
+    background-position: 0 0;
+}
+.p13 .home .top .home_search .home_search_left span {
+    color: #C0C4CC;
+    font-size: 16px;
+}
+.p13 .home_search.fixed-top .jy_sprite_main.sprite_home_search {
+    width: 0.4rem;
+    height: 0.4rem;
+}
+.p13 .home .top .home_search.fixed-top .home_search_left span {
+    color: #9B9CA3;
+    font-size: 14px;
+}
+/* -E p13 v2.10.4*/
+
+.app-layout-content-b{
+    position: absolute;
+    top: 10.66667vw;
+    padding-top: 0;
+    overflow-y: auto;
+    bottom: 0px;
+    left: 0px;
+    right:0px;
+    -webkit-overflow-scrolling:touch;
+}

+ 0 - 39
src/web/staticres/collection/css/index-pc.css → src/web/staticres/frontRouter/pc/collection/css/index-pc.css

@@ -243,42 +243,3 @@
 .tag-drawer .el-tag {
     margin: 6px;
 }
-
-.j-t-button {
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    padding: 7px 50px;
-    font-size: 16px;
-    color: #686868;
-    border: 1px solid #e0e0e0;
-    border-radius: 7px;
-    background-color: #fff;
-}
-.j-t-button.confirm {
-    color: #2cb7ca;
-    border-color: #2cb7ca;
-}
-.j-t-button.confirm:hover {
-    color: #fff;
-    background-color: #2cb7ca;
-}
-.j-t-button.cancel {
-    margin-left: 40px;
-}
-.j-el-confirm .el-dialog__header,
-.j-el-confirm .el-dialog__body,
-.j-el-confirm .el-dialog__footer {
-    text-align: center;
-}
-.j-el-confirm .el-dialog__header {
-    padding-top: 30px;
-}
-.j-el-confirm .el-dialog__footer {
-    padding-bottom: 40px;
-}
-.dialog-footer {
-    display: flex;
-    align-items: center;
-    justify-content: center;
-}

+ 9 - 2
src/web/staticres/collection/js/index-pc.js → src/web/staticres/frontRouter/pc/collection/js/index-pc.js

@@ -10,7 +10,9 @@ var vm = new Vue({
     },
     data: function () {
         return {
+            powerInfo: {},
             power: false,
+            powerLoaded: false,
             toast: {
                 show: false,
                 content: '暂无数据'
@@ -38,7 +40,7 @@ var vm = new Vue({
             },
             listState: {
                 listType: 'line', // line/table
-                loaded: true, // 是否已经搜索过
+                loaded: false, // 是否已经搜索过
                 loading: false,
                 pageNum: 1, // 当前页
                 pageSize: 10, // 每页多少条数据
@@ -78,14 +80,19 @@ var vm = new Vue({
                 type: 'POST',
                 success: function (res) {
                     if (res.error_code === 0 && res.data) {
-                        this.power = res.data
+                        this.powerInfo = res.data
+                        this.checkPower()
                     }
                 }.bind(this),
                 complete: function () {
+                    this.powerLoaded = true
                     callback && callback()
                 }.bind(this)
             })
         },
+        checkPower: function () {
+            this.power = this.powerInfo.entniche || this.powerInfo.member || this.powerInfo.vip !== 0
+        },
         getTagList: function () {
             $.ajax({
                 url: '/publicapply/bidcoll/getLabel',

二進制
src/web/staticres/images/ent-search-item-mask.jpg


+ 255 - 55
src/web/staticres/js/ent-search-index-pc.js

@@ -1,12 +1,11 @@
-// https://app.mockplus.cn/app/GAWopftifeIg/specs/design/zOeSvzlU0mPC-w
-// element-ui输入框标签: https://blog.csdn.net/ju__ju/article/details/97801297
 var vm = new Vue({
-    el: '.search-container',
+    el: '.vue-search-container',
     delimiters: ['${', '}'],
     components: {
         areaCityComponent: areaCityComponent,
-        choiceListComponent: choiceListComponent,
-        priceComponent: priceComponent
+        selectListComponent: selectListComponent,
+        priceComponent: priceComponent,
+        noData: noDataComponent
     },
     data: function () {
         return {
@@ -17,85 +16,81 @@ var vm = new Vue({
             searchTypeList: [
                 {
                     label: '企业名称',
-                    value: 'ent-name'
+                    value: 'A'
                 },
                 {
                     label: '法定代表人',
-                    value: '法定代表人'
+                    value: 'B'
                 },
                 {
                     label: '股东',
-                    value: '股东'
+                    value: 'C'
                 },
                 {
                     label: '高管',
-                    value: '高管'
+                    value: 'D'
                 },
                 {
                     label: '中标项目/标的物',
-                    value: 'bdw'
+                    value: 'E'
                 }
             ],
             entTypeList: [
                 {
                     label: '有限责任公司',
-                    value: '有限责任公司'
+                    value: 'A'
                 },
                 {
                     label: '股份有限公司',
-                    value: '股份有限公司'
+                    value: 'B'
                 },
                 {
                     label: '有限合伙',
-                    value: '有限合伙'
+                    value: 'C'
                 },
                 {
                     label: '普通合伙',
-                    value: '普通合伙'
+                    value: 'D'
                 }
             ],
             entStateList: [
                 {
                     label: '存续(在营、开业、在业)',
-                    value: '存续'
+                    value: 'A'
                 },
                 {
-                    label: '有限合伙',
-                    value: '有限合伙'
+                    label: '吊销',
+                    value: 'B'
                 },
                 {
-                    label: '有限合伙',
-                    value: '有限合伙'
-                },
-                {
-                    label: '有限合伙',
-                    value: '有限合伙'
+                    label: '注销',
+                    value: 'C'
                 },
                 {
-                    label: '有限合伙',
-                    value: '有限合伙'
+                    label: '撤销',
+                    value: 'D'
                 }
             ],
             priceList: [
                 {
                     label: '100万以内',
-                    value: '100万以内'
+                    value: '0-100'
                 },
                 {
                     label: '100-500万',
-                    value: '100-500'
+                    value: '100-500'
                 },
                 {
                     label: '500-1000万',
-                    value: '500-1000'
+                    value: '500-1000'
                 },
                 {
                     label: '1000-5000万',
-                    value: '1000-5000'
+                    value: '1000-5000'
                 },
                 {
                     label: '5000万以上',
-                    value: '5000万以上'
+                    value: '5000-'
                 },
             ],
             zblyFilterOption: {
@@ -108,61 +103,78 @@ var vm = new Vue({
                 dwlxOptions: [
                     {
                         label: '采购单位',
-                        value: '采购单位'
+                        value: '1'
                     },
                     {
                         label: '投标企业',
-                        value: '投标企业'
+                        value: '2'
                     },
                     {
                         label: '招标代理机构',
-                        value: '招标代理机构'
+                        value: '3'
                     },
                     {
                         label: '厂商',
-                        value: '厂商'
+                        value: '4'
                     }
                 ],
                 lxfsOptions: [
                     {
                         label: '固定电话',
-                        value: '固定电话'
+                        value: '1'
                     },
                     {
                         label: '手机号',
-                        value: '手机号'
+                        value: '2'
                     },
                     {
                         label: '电子邮箱',
-                        value: '电子邮箱'
+                        value: '3'
                     },
                     {
                         label: '不存在',
-                        value: '不存在'
+                        value: '4'
                     }
                 ],
             },
             filterState: {
-                searchType: '',
-                area: '',
-                zbArea: '', // 中标区域
-                dwlx: '', // 单位类型
-                lxfs: '' // 联系方式
+                searchType: [],
+                entArea: [],
+                entCity: [],
+                entType: [],
+                entStatus: [],
+                entCapital: [],
+                biddingArea: '', // 中标区域
+                entClass: '', // 单位类型
+                entContact: '' // 联系方式
             },
             listState: {
-                loaded: true, // 是否已经搜索过
+                loaded: false, // 是否已经搜索过
                 loading: false,
-                pageNum: 1, // 当前页
+                pageNum: 1, // 当前页, 从0开始
                 pageSize: 10, // 每页多少条数据
                 total: 0, // 一共多少条数据
                 list: [] // 查询请求返回的数据
-            }
+            },
+            preSearch: {
+                hover: false,
+                focus: false,
+                list: []
+            },
+            powerInfo: {
+                entniche: '',
+                member: '',
+                vip: ''
+            },
+            power: false,
+            powerLoaded: false,
+            powerDialogShow: false,
         }
     },
     watch: {
         tabActive: function (newVal, oldVal) {
             if (newVal === 'zb') {
-                if (this.this.searchContent) {
+                if (this.searchContent) {
                     location.href = '/jylab/supsearch/index.html?keywords=' + this.searchContent
                 } else {
                     location.href = '/jylab/supsearch/index.html'
@@ -170,14 +182,62 @@ var vm = new Vue({
             }
         }
     },
+    computed: {
+        preSearchListShow: function () {
+            return this.searchContent.trim().length > 2 && this.preSearch.list.length && (this.preSearch.focus || this.preSearch.hover)
+        },
+        buttonText: function () {
+            if (this.power) {
+                return '升级'
+            } else {
+                if (this.powerInfo.vip === 0) {
+                    return '开通'
+                } else if (this.powerInfo.vip === 1) {
+                    return '升级'
+                } else {
+                    return '升级'
+                }
+            }
+        }
+    },
     created: function () {
+        this.getPower()
         this.initPageData()
         this.initProvinceMapList()
     },
     mounted: function () {
         this.initDOMEvents()
+        // this.checkLogin()
     },
     methods: {
+        checkLogin: function () {
+            var moduleOpen = $('body').hasClass('modal-open')
+            if (moduleOpen) return
+            if (!loginflag) {
+                $("#bidLogin").modal("show");
+            }
+        },
+        getPower: function (callback) {
+            $.ajax({
+                url: '/publicapply/bidcoll/power',
+                type: 'POST',
+                success: function (res) {
+                    if (res.error_code === 0 && res.data) {
+                        Object.assign(this.powerInfo, res.data)
+                        this.checkPower()
+                    } else {
+                        this.checkLogin()
+                    }
+                }.bind(this),
+                complete: function () {
+                    this.powerLoaded = true
+                    callback && callback()
+                }.bind(this)
+            })
+        },
+        checkPower: function () {
+            this.power = this.powerInfo.member || this.powerInfo.vip !== 0
+        },
         initPageData: function () {
             if (pageInfo.searchContent) {
                 this.searchContent = pageInfo.searchContent
@@ -200,40 +260,180 @@ var vm = new Vue({
             refreshEwmText(this.searchContent)
         },
         isFilterShow: function () {
+            if (this.filterShow) {
+                $('.search-filters').slideUp()
+            } else {
+                $('.search-filters').slideDown()
+            }
             this.filterShow = !this.filterShow
         },
         searchTypeChange: function (t) {
-            console.info(t)
+            var eIndex = t.indexOf('E')
+            if (!this.power && eIndex !== -1) {
+                this.powerDialogShow = true
+                t.splice(eIndex, 1)
+                this.$refs.searchType.setState(t)
+                return
+            }
+            this.filterState.searchType = t
+            this.doSearch()
         },
-        areaCityChange: function (a) {
-            console.info(a)
+        areaCityChange: function (area) {
+            var city = []
+            for (var key in area) {
+                city = city.concat(area[key])
+            }
+            this.filterState.entArea = Object.keys(area)
+            this.filterState.entCity = city
+            this.doSearch()
         },
         entTypeChange: function (e) {
-            console.info(e)
+            this.filterState.entType = e
+            this.doSearch()
         },
         entStateChange: function (e) {
-            console.info(e)
+            this.filterState.entStatus = e
+            this.doSearch()
         },
+        // 标准金额区间
         inexactPriceChange: function (p) {
+            console.info('inexactPriceChange')
             console.info(p)
         },
+        // 输入金额区间
         exactPriceChange: function (p) {
+            console.info('exactPriceChange')
+            this.$refs.entCapital.setState()
             console.info(p)
         },
         zbFilterChange: function () {
-            console.info('zbFilterChange')
+            if (this.power) {
+                this.doSearch()
+            } else {
+                this.filterState.biddingArea = ''
+                this.filterState.entClass = ''
+                this.filterState.entContact = ''
+                this.powerDialogShow = true
+            }
         },
         doSearch: function () {
-            console.info(123)
+            this.resetListState()
             this.getList()
         },
+        resetListState: function () {
+            var state = {
+                loaded: false,
+                loading: false,
+                pageNum: 1,
+                total: 0,
+                list: []
+            }
+            Object.assign(this.listState, state)
+        },
+        getPreSearchList: utils.debounce(function () {
+            var data = {
+                name: this.searchContent.trim()
+            }
+            if (data.name.length <= 2) return
+            $.ajax({
+                url: '/bigmember/search/ent/association',
+                method: 'POST',
+                data: data,
+                success: function (res) {
+                    if (res.error_code === 0) {
+                        if (res.data) {
+                            this.preSearch.list = res.data.list || []
+                        }
+                    } else {
+                        this.checkLogin()
+                    }
+                }.bind(this)
+            })
+        }, 200),
         getList: function () {
+            var data = {
+                match: this.searchContent,
+                matchType: this.filterState.searchType.join(','),
+                entArea: this.filterState.entArea.join(','),
+                entCity: this.filterState.entCity.join(','),
+                entCapital: '',
+                entType: this.filterState.entType.join(','),
+                entStatus: this.filterState.entStatus.join(','),
+                biddingArea: this.filterState.biddingArea,
+                entClass: this.filterState.entClass,
+                entContact: this.filterState.entContact,
+                pageSize: this.listState.pageSize,
+                pageNum: this.listState.pageNum - 1, // 当前页, 从0开始
+            }
+            
+            if (!data.match.replace(/\s+/g, '')) return
+
+            this.listState.loading = true
+            this.listState.loaded = false
 
+            $.ajax({
+                url: '/publicapply/enterpriseSearch/doQuery',
+                method: 'POST',
+                data: data,
+                success: function (res) {
+                    if (res.error_code === 0) {
+                        if (res.data) {
+                            if (res.data.total) {
+                                if (this.power) {
+                                    this.listState.total = res.data.total
+                                } else {
+                                    this.listState.total = 9
+                                }
+                            }
+                            if (res.data.list) {
+                                if (this.power) {
+                                    this.listState.list = res.data.list || []
+                                } else {
+                                    if (res.data.list.length > 4) {
+                                        res.data.list.length = 4
+                                        res.data.list.push({
+                                            company_address: 'xxx',
+                                            company_name: 'xxx',
+                                            company_status: 'xxx',
+                                            legal_person: 'xxx',
+                                            id: 'xxx',
+                                            showMask: true
+                                        })
+                                    }
+                                    this.listState.list = res.data.list || []
+                                }
+                            }
+                        } else {
+                            this.listState.total = 0
+                            this.listState.list = []
+                        }
+                    } else {
+                        this.checkLogin()
+                    }
+                }.bind(this),
+                complete: function () {
+                    this.listState.loading = false
+                    this.listState.loaded = true
+                }.bind(this)
+            })
         },
         onPageChange: function (p) {
             this.listState.pageNum = p
             this.getList()
-        }
+        },
+        openVipPage: function () {
+            window.open('/front/subscribe.html')
+        },
+        toDetail: function (id) {
+            window.open('/swordfish/page_big_pc/svip/ent_ser_portrait/' + id)
+        },
+        calcListItemForCap: function (p) {
+            if (p) {
+                return p + '万元'
+            } else {
+                return '-'
+            }
+        },
     }
 })
 

+ 265 - 0
src/web/staticres/js/selector/area-pc.js

@@ -0,0 +1,265 @@
+// var areaComponentTemplate = `
+// <div class="selector-content area-content">
+//     <div
+//         class="select-group-container"
+//         v-for="(item, key) in provinceListMap"
+//         :key="key">
+//             <span class="select-group-header index-bar" v-if="key !== '#'">{{ key }}</span>
+//             <div
+//                 class="j-button-item bgc"
+//                 v-for="(province, ii) in item"
+//                 :class="{
+//                     active: province.selected,
+//                     all: province.level === 0
+//                 }"
+//                 :key="ii*2"
+//                 @click="changeProvinceState(province)"
+//             >{{ province.name }}</div>
+//     </div>
+// </div>
+// `
+var areaComponentTemplate = "\n<div class=\"selector-content area-content\">\n    <div\n        class=\"select-group-container\"\n        v-for=\"(item, key) in provinceListMap\"\n        :key=\"key\">\n            <span class=\"select-group-header index-bar\" v-if=\"key !== '#'\">{{ key }}</span>\n            <div\n                class=\"j-button-item bgc\"\n                v-for=\"(province, ii) in item\"\n                :class=\"{\n                    active: province.selected,\n                    all: province.level === 0\n                }\"\n                :key=\"ii*2\"\n                @click=\"changeProvinceState(province)\"\n            >{{ province.name }}</div>\n    </div>\n</div>\n";
+
+var areaComponent = {
+    name: 'area-pc',
+    template: areaComponentTemplate,
+    props: {
+        initCityMap: {
+            type: Object,
+            default: function () {
+                return {
+                    // '北京': [],
+                    // '安徽': [],
+                    // '广东': [],
+                    // '河北': [],
+                    // '福建': [],
+                    // '重庆': []
+                }
+            }
+        }
+    },
+    watch: {
+        initIndustry (newVal, oldVal) {
+            this.setIndustryState(newVal)
+        },
+    },
+    data: function () {
+        return {
+            provinceListMapExp: {
+                '#': ['全国'],
+                A: ['安徽', '澳门'],
+                B: ['北京'],
+                C: ['重庆'],
+                F: ['福建'],
+                G: ['广东', '广西', '贵州', '甘肃'],
+                H: ['河北', '湖北', '黑龙江', '海南', '河南', '湖南'],
+                J: ['吉林', '江苏', '江西'],
+                L: ['辽宁'],
+                N: ['内蒙古', '宁夏'],
+                Q: ['青海'],
+                S: ['山西', '陕西', '上海', '山东', '四川'],
+                T: ['天津', '台湾'],
+                X: ['西藏', '新疆', '香港'],
+                Y: ['云南'],
+                Z: ['浙江']
+            },
+            provinceListMap: {
+                // A: [
+                //     {
+                //         name: '安徽',
+                //         selected: true,
+                //         children: []
+                //     }
+                // ]
+            },
+            // indexBar数据
+            indexList: [],
+            provinceExp: {
+                name: '全国',
+                // 选中状态
+                selected: false,
+                level: 0,
+                children: []
+            }
+        }
+    },
+    created: function () {
+        this.initIndexBarAndAreaMap()
+        this.provinceListMap['#'][0].selected = true
+        this.setCitySelected(this.initCityMap)
+    },
+    methods: {
+        // 整理数据列表
+        initIndexBarAndAreaMap: function () {
+            var _this = this
+            // 整理数据得到indexListMap(),同时获得indexList
+            var provinceListMap = {}
+            var indexList = []
+            for (var key in this.provinceListMapExp) {
+                var areaArr = []
+                indexList.push(key)
+                this.provinceListMapExp[key].forEach(function (pName) {
+                    var provinceExp = JSON.parse(JSON.stringify(_this.provinceExp))
+
+                    provinceExp.name = pName
+
+                    if (pName !== '全国') {
+                        var cities = _this.getCitiesFromJSONMap(pName)
+                        // 筛选掉直辖市和特别行政区(台湾省也不不需要展开)
+                        if (cities.ProRemark === '省份' || cities.ProRemark === '自治区') {
+                            provinceExp.level = 1
+                            if (cities.ProID === 32) {
+                                provinceExp.children = []
+                                provinceExp.selected = false
+                            } else {
+                                cities.city.forEach(function (c) {
+                                    // 将市区重组成一个新的对象
+                                    return provinceExp.children.push({
+                                        city: c.name,
+                                        selected: false,
+                                        level: 2
+                                    })
+                                })
+                            }
+                        } else {
+                            provinceExp.children = []
+                            provinceExp.selected = false
+                            provinceExp.level = 1
+                        }
+                    }
+
+                    areaArr.push(provinceExp)
+                })
+
+                provinceListMap[key] = areaArr
+            }
+
+            this.provinceListMap = provinceListMap
+            this.indexList = indexList
+
+            // 给provinceListMap赋值
+            for (var k in provinceListMap) {
+                this.$set(this.provinceListMap, k, provinceListMap[k])
+            }
+        },
+        // 循环chinaMapJSON,找到对应省下面对应的市
+        getCitiesFromJSONMap (provinceName) {
+            return chinaMapJSON.find(function (item) { return item.name.indexOf(provinceName) !== -1 })
+        },
+        // 按钮点击事件
+        changeProvinceState: function (item) {
+            // 循环所有数据,判断并改变状态
+            switch (item.level) {
+                case 0: {
+                    this.setCitySelected()
+                    break
+                }
+                case 1: {
+                    this.provinceListMap['#'][0].selected = false
+                    item.selected = !item.selected
+                    break
+                }
+                default: {
+                  console.log('未知level')
+                }
+              }
+
+              if (item.level !== 0) {
+                var allSelected = this.checkAllProvinceState()
+                if (allSelected.allSelected || allSelected.allNotSelected) {
+                  this.setCitySelected()
+                }
+              }
+        
+              this.onChange()
+        },
+        // 检查是否省份全部选中了/全部不选中
+        checkAllProvinceState: function () {
+            var stateArr = []
+            for (var key in this.provinceListMap) {
+                this.provinceListMap[key].forEach(function (item) {
+                    if (item.name !== '全国') {
+                        stateArr.push(item.selected)
+                    }
+                })
+            }
+            return {
+                allSelected: stateArr.indexOf(false) === -1,
+                allNotSelected: stateArr.indexOf(true) === -1
+            }
+        },
+        /**
+         * 初始化页面选中状态
+         * @param { Array | undefined } data 要恢复的数据
+         */
+        setCitySelected: function (data) {
+            // 设置全国
+            if (!data || Object.keys(data).length === 0) {
+                // 其他全部设置不选中,全国设置选中
+                for (var key in this.provinceListMap) {
+                    this.provinceListMap[key].forEach(function (item) {
+                        item.selected = false
+                        item.children.forEach(function (iitem) {
+                            iitem.selected = false
+                        })
+                        if (item.name === '全国') {
+                            item.selected = true
+                        }
+                    })
+                }
+            } else {
+                // 先将所有城市选择取消
+                this.setCitySelected()
+                // 设置某几个省份被选中
+                for (var key in this.provinceListMap) {
+                    this.provinceListMap[key].forEach(function (item) {
+                        var selectCityArr = data[item.name]
+                        if (Array.isArray(selectCityArr)) {
+                            if (selectCityArr.length === 0) {
+                                item.children.forEach(function (iitem) {
+                                    iitem.selected = true
+                                })
+                                item.selected = true
+                            } else {
+                                // 省份中的某些市被选中
+                                item.children.forEach(function (iitem) {
+                                    if (selectCityArr.indexOf(iitem.city) !== -1) {
+                                        iitem.selected = true
+                                    }
+                                })
+                                item.selected = false
+                            }
+                        }
+
+                        if (item.name === '全国') {
+                            item.selected = false
+                        }
+                    })
+                }
+            }
+        },
+        // 获取选中的数据
+        getSelected: function () {
+            var counter = {}
+            // 判断是否全国被选中
+            if (this.provinceListMap['#'][0].selected) {
+                return counter
+            }
+
+            // 全国没有被选中,排除循环全国
+            for (var key in this.provinceListMap) {
+                if (key === '#') continue
+                this.provinceListMap[key].forEach(function (item) {
+                    if (item.selected) {
+                        counter[item.name] = []
+                    }
+                })
+            }
+            return counter
+        },
+        onChange: function () {
+            var selected = this.getSelected()
+            this.$emit('change', selected)
+        }
+    }
+}

+ 5 - 0
src/web/staticres/js/selector/price-pc.js

@@ -38,6 +38,11 @@ var priceComponent = {
             this.price.max = max
         },
         getState: function () {
+            if (this.price.min > this.price.max) {
+                var max = this.price.max
+                this.price.max = this.price.min
+                this.price.min = max
+            }
             return this.price
         },
         confirm: function () {

+ 2 - 2
src/web/staticres/js/selector/select-list-pc.js

@@ -42,7 +42,7 @@ var selectListComponent = {
             type: String,
             default: 'button' // checkbox/button
         },
-        // 多选或者单选
+        // 多选或者单选(仅当selectButtonType=button时生效)
         multi: {
             type: Boolean,
             default: true
@@ -154,8 +154,8 @@ var selectListComponent = {
             } else {
                 if (this.multi) {
                     // 如果是checkbox的多选则不需要做任何操做
+                    this.selectList[0].selected = false
                     if (this.selectButtonType === 'button') {
-                        this.selectList[0].selected = false
                         item.selected = !item.selected
                     }
                 } else {

+ 26 - 0
src/web/staticres/js/superSearch.js

@@ -1156,4 +1156,30 @@ function toastFn (text) {
 	setTimeout(function(){
 		$(".custom-toast").fadeOut();
 	},1000)
+}
+
+// 是否有权限
+// isPower()
+function isPower () {
+  $.ajax({
+    type:'post',
+    url:'/publicapply/bidcoll/power?t=' + Date.now(),
+    success: function(r){
+      if (r.data) {
+        var entniche = r.data.entniche
+        var member = r.data.member
+        var vip = r.data.vip
+        if (entniche || member || vip > 0) {
+          console.log('true')
+          return 'true'
+        } else {
+          console.log('false')
+          return 'false'
+        }
+      } else {
+        console.log('false')
+        return 'false'
+      }
+    }
+  })
 }

+ 303 - 114
src/web/staticres/js/wxSupersearch.js

@@ -83,6 +83,9 @@ var MoneyUnit = {
 	}
 }
 var SuperSearch = {
+    // 筛选企业信息
+    filterWin: {},
+    filterBuy: {},
 	secondFlag:"",
 	secondList:"",
 	secondKWS:"",
@@ -114,7 +117,9 @@ var SuperSearch = {
 		"minprice":"",
 		"maxprice":"",
 		"industry":"",
-		"pageNum": 1
+		"pageNum": 1,
+		"winner":"",
+		"buyerclass":""
 	},
 	njTipEasyPopup: null,
 	hasHistory :false,
@@ -125,6 +130,8 @@ var SuperSearch = {
 	locationCount:0,
 	init: function(isReload,isFocus,isPushHistory){
 		this.dyDiv = true;
+        // 初始化高级搜索和筛选中标企业
+        initSearchHeader()
 		if(!isReload){
 			this.recoveryPage();
 		}
@@ -133,8 +140,15 @@ var SuperSearch = {
 		this.clearSessionStorage();
 		EntSearch.isMyPage = false;
 		this.isMyPage = true;
+		$("#supersearchPage").addClass("absolute-hide");
 		$("#searchIndex").addClass("hidden");
 		$("#supersearchPage").removeClass("hidden");
+		setTimeout(function(){
+			$("#supersearchPage").removeClass("absolute-hide");
+		},0);
+		try{
+			JyObj.hiddenBottom("0");
+		}catch(e){}
         $("body").css("background-color","#fff");
 		if(SuperSearch.dyDiv){   //首次进来是否显示订阅
 			SuperSearch.showToOrder(false)
@@ -188,7 +202,10 @@ var SuperSearch = {
 			});
 		});
 		//筛选菜单展示or隐藏
-		$("#supersearchPage .wxhead").find(".screen").on("tap",function(){
+		$("#supersearchPage").on("tap" , "#clickFilter", function(){
+		    if ($(this).text().trim() !== '筛选') {
+		        return
+            }
 			hideTab();
 			SuperSearch.inputBlur();
 			if(SuperSearch.requesting){
@@ -229,7 +246,7 @@ var SuperSearch = {
 			SuperSearch.afterFocus();
 		}).blur(function(){
 			setTimeout(function(){
-				$("#supersearchPage .inputDiv").addClass("hidden");
+				$("#supersearchPage .clearInpt").addClass("hidden");
 			},300);
 		});
 
@@ -240,16 +257,26 @@ var SuperSearch = {
 			SuperSearch.canSearch();
 		});
 		//提交查询
-		$("#supersearchPage .query").click(function(){
+		$("#supersearchPage").on('click', "#clickFilter",function(){
+            if ($(this).text().trim() !== '搜索') {
+                return
+            }
+            sessionStorage.setItem('isSearchListPage', 'true')
+            // SuperSearch.isSearchListPage = true
 			$(".loading_").show();
 			SuperSearch.formSubmit("N");
 		});
 		$("#supersearchPage .jyshxbottom .jydqsure").on("tap",function(){
 			if($(this).hasClass("on")){
+				var max=$("#supersearchPage .maxMrice").val(),min=$("#supersearchPage .minMrice").val();
+		        if(Number(max)<Number(min)&&max!=""&&min!=""){
+		            $("#supersearchPage .maxMrice").val(min);
+		            $("#supersearchPage .minMrice").val(max);
+				}
 				setTimeout(function(){
 					$(".loading_").show();
 					SuperSearch.formSubmit("N");
-				},200)
+				},300)
 			}
 		});
 		//清除筛选
@@ -258,8 +285,8 @@ var SuperSearch = {
 		});
 		//是否开通超级搜索服务
 		//关闭搜索后订阅================================================================
-		$("#supersearchPage .dy_close").on("tap",function(){
-			SuperSearch.showToOrder(false)
+		$("#supersearchPage #close_set").on("tap",function(){
+			SuperSearch.showToOrder(false);
 			SuperSearch.dyDiv=true;
 		});
 
@@ -318,24 +345,28 @@ var SuperSearch = {
 		});
 		//订阅结束==========================================================================
 		//删除历史搜索
-		$("#supersearchPage #del_history").on("tap",function(){
-			if($("#supersearchPage .inputDiv .history").find("li").length >0){
+		$("#supersearchPage").on("click", " #del_history", function(){
+			if(localStorage){
+				localStorage.removeItem("superSearch_history");
+			}
+			if(userId != "" && $("#supersearchPage .search-one-box ul.history-list-box").find("li").length >0){
 				$.ajax({
 					type:"post",
 					url:"/swordfish/delWxHistorySearch",
 					success:function(rt){
-						$("#supersearchPage .inputDiv .history").find("li").remove();
-						$("#supersearchPage .inputDiv .inpTitle_history").addClass("hidden");
-						//$("#supersearchPage .inputDiv .inpTitle_msgset").css("border-top-right-radius","5px").css("border-top-left-radius","5px");
+					    $(".tabs-box .tabs-content-page").eq(0).addClass("hidden")
 					}
 				});
 			}
+			$("#supersearchPage .search-one-box ul.history-list-box").find("li").remove();
 		});
 
 		////
 		SuperSearch.njTipEasyPopup = new EasyPopup("nijianTip");
 		$("#supersearchPage .q-mark").on("tap",function(){
+			setTimeout(function(){
 			SuperSearch.njTipEasyPopup.show();
+			},500);
 		});
 		//金额点击事件
 		$("#supersearchPage .money-dialog .btn").on("tap",function(){
@@ -722,7 +753,6 @@ var SuperSearch = {
 		}
 	},
 	recoveryPage: function(){
-		$("#supersearchPage .inputDiv").addClass("hidden")
 		$("#searchIndex").addClass("hidden");
 		$("#supersearchPage").removeClass("hidden");
 		$("#supersearchPage #wrapper").removeClass("hidden");
@@ -753,6 +783,7 @@ var SuperSearch = {
 			"industry":"",
 			"pageNum": 1
 		}
+		resetTopSearch()
 		$("#supersearchPage #list").text("");
 		$("#supersearchPage .dropload-down").remove();
 		$("#supersearchPage .nullcontent").addClass("hidden");
@@ -780,13 +811,13 @@ var SuperSearch = {
 		$("#supersearchPage .jydq-dialog,.jytype-dialog,.jypt-dialog,.money-dialog").addClass("hidden");
 	},
 	afterFocus: function(){
-		setTimeout(function(){
-			$("#supersearchPage .inputDiv").removeClass("hidden")
-		});
 		if($.trim($("#supersearchPage input[name=super_searchinput]").val()).length>0){
 			$("#supersearchPage .clearInpt").removeClass("hidden");
 			$("#supersearchPage .query").removeClass("hidden");
-			$("#supersearchPage input[name=super_searchinput]").addClass("searchinput-padding");
+		}
+		if(!!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)){ //处理ios输入框光标无法遮盖问题
+			$("#supersearchPage .app-layout-content-b").scrollTop(0);
+			$("#supersearchPage .app-layout-content-b").off("scroll", SuperSearch.SuperSearchInputblur).on("scroll",SuperSearch.SuperSearchInputblur);
 		}
 	},
 	limitPaging: function(me){
@@ -819,7 +850,7 @@ var SuperSearch = {
 		}
 		SuperSearch.reqParam["pageNum"] = parseInt(pgNum);
 		SuperSearch.dropload = $('#supersearchPage #wrapper').dropload({
-			scrollArea: window,
+			scrollArea: $("#supersearchPage .app-layout-content-b"),
 			loadDownFn: function(me){
 				if(SuperSearch.dropload == null){
 					SuperSearch.dropload = me;
@@ -831,7 +862,7 @@ var SuperSearch = {
 				if(SuperSearch.limitFlag){
 					setTimeout(function(){
 						SuperSearch.limitPaging(me);
-					},100);
+					},500);
 					return
 				}
 				//$(".loading_").show();
@@ -890,11 +921,15 @@ var SuperSearch = {
 		if(!sessionStorage){
 			return;
         }
+		sessionStorage.removeItem("superSearch_filterWin");
+		sessionStorage.removeItem("superSearch_filterBuy");
 		sessionStorage.removeItem("superSearch_noMoreCache");
 		sessionStorage.removeItem("superSearch_listContent");
 		sessionStorage.removeItem("superSearch_tableContent");
 		sessionStorage.removeItem("superSearch_subtype");
 		sessionStorage.removeItem("superSearch_scope");
+		sessionStorage.removeItem("superSearch_buyerclass");
+		sessionStorage.removeItem("superSearch_winner");
 		sessionStorage.removeItem("superSearch_publishtime");
 		sessionStorage.removeItem("superSearch_pageNum");
 		sessionStorage.removeItem("superSearch_xScroll");
@@ -904,15 +939,16 @@ var SuperSearch = {
 		sessionStorage.removeItem("superSearch_dyDiv");
 		sessionStorage.removeItem("superSearch_advertIsClose");
 		sessionStorage.removeItem("superSearch_shaxuan");
-		sessionStorage.removeItem("superSearch_showType");
 		sessionStorage.removeItem("superSearch_shaxuanFlag");
 		sessionStorage.removeItem("superSearch_searchType");
+		sessionStorage.removeItem("superSearch_showType");
 		sessionStorage.removeItem("superSearch_interceptWord");
 		sessionStorage.removeItem("superSearch_hasNoData_tiptext");
 		sessionStorage.removeItem("superSearch_allSearchModel_isshow");
 		sessionStorage.removeItem("superSearch_limitFlag");
 		sessionStorage.removeItem("superSearch_maxprice");
 		sessionStorage.removeItem("superSearch_minprice");
+		sessionStorage.removeItem("superSearch_showNull");
 		sessionStorage.removeItem("superSearch_currentkws");//当前搜索关键词
 	},
 	//js 方法
@@ -922,18 +958,32 @@ var SuperSearch = {
 		$("#supersearchPage .jypt-dialog .jypt-pt .btn:eq(0)").trigger("tap");//清除时间
 		$("#supersearchPage .jydq-dialog .btn:eq(0)").trigger("tap");  //清除地区
 		$("#supersearchPage .jytype-dialog .btn:eq(0)").trigger("tap"); //清除类别
+        // TODO 清除中标企业
+        $("#supersearchPage #select-win-list").html('')
+        $("#supersearchPage #search-win-list").html('')
+        $("#supersearchPage #search-win-input").val('')
+        console.log('没有筛选tab 01')
+        $("#supersearchPage div[data-open='industry']").trigger('click')
+        console.log('清空 01', sessionStorage.superSearch_shaxuan)
+        // 隐藏企业搜索
+        if (vEntSearchComponent) {
+          vEntSearchComponent.toggleEntShow(false)
+        }
+        SuperSearch.filterWin = {}
+        SuperSearch.filterBuy = {}
+        $('#supersearchPage .list').find('.industry_item').removeClass('active');
+        $('#supersearchPage .update_tips').hide();
+        $("#supersearchPage .industry_item.whole:not(.active)").trigger("click")
 	},
 	canSearch: function(){  //判断是否显示搜索按钮
 		var len=$.trim($("#supersearchPage input[name=super_searchinput]").val()).length;
 		if(len>0){
 			$("#supersearchPage .clearInpt").removeClass("hidden");
 			$("#supersearchPage .query").removeClass("hidden");
-			$("#supersearchPage input[name=super_searchinput]").addClass("searchinput-padding");
 			$("#supersearchPage .jydqsure").addClass("on");
 		}else{
 			$("#supersearchPage .clearInpt").addClass("hidden");
 			$("#supersearchPage .query").addClass("hidden");
-			$("#supersearchPage input[name=super_searchinput]").removeClass("searchinput-padding");
 			$("#supersearchPage .jydqsure").removeClass("on");
 		}
 	},
@@ -1019,6 +1069,29 @@ var SuperSearch = {
 		}else{
 			SuperSearch.reqParam.selectType="all";
 		}
+		//采购单位行业
+		var buyerclasstypes = "";
+		$("#supersearchPage .choose_industry .industry_item.active").each(function(){
+			if($(this).parent().index() == 0){
+				return true;
+			}
+			var thisText = $(this).text();
+			if(buyerclasstypes != ""){
+				buyerclasstypes += ",";
+			}
+			buyerclasstypes += thisText;
+		});
+		SuperSearch.reqParam.buyerclass=buyerclasstypes;
+		//中标企业
+		var winnertypes = "";
+		$("#supersearchPage #select-win-list .select").each(function(){
+			var thisText = $(this).text();
+			if(winnertypes != ""){
+				winnertypes += ",";
+			}
+			winnertypes += thisText;
+		});
+		SuperSearch.reqParam.winner=winnertypes;
 		return true;
 	},
 	//行为采集 type=1 搜索、type=2 显示列表次数统计
@@ -1079,26 +1152,27 @@ var SuperSearch = {
 		} else {
 			//判断显示信息方式  列表or表格  查询后都显示列表
 			$("#supersearchPage #wrapper").removeClass("hidden");
-			$(".selected-export .show-list").find("em").text("列表显示");
-			$(".newdialog .sub-show-list").find("li[dataval='showlist']").addClass("active");
-			$("#supersearchPage #wrapper #table").addClass("hidden");
-			$("#supersearchPage #wrapper #list").removeClass("hidden");
-			SuperSearch.isTable(false);
+			SuperSearch.showType();
 		}
 	},
 	formSubmit: function (nw){    //提交表单,获取数据
+		$(".loading_").show();
 		if(!SuperSearch.beforeSubmit()){
+			$(".loading_").hide();
 			return;
 		}
-		$(".loading_").show();
-		$("#wrapper .shade_table").css("display","none"); //隐藏table 查看更多
+        // 切换显示
+        $("#supersearchPage .tabs-box").addClass("hidden")
+        $("#supersearchPage #clickFilter").text('筛选')
+        // 隐藏table 查看更多
+        $("#wrapper .shade_table").css("display","none");
 		$("#supersearchPage #working").removeClass("hidden");
 		$("#supersearchPage #intercept").addClass("hidden");
 		$("#supersearchPage #table").addClass("hidden");
 		$("#supersearchPage #list").addClass("hidden");
-		if(SuperSearch.showNull){
-			SuperSearch.showToOrder(false)
-		}
+//		if(SuperSearch.showNull){
+//			SuperSearch.showToOrder(false);
+//		}
 		$("#supersearchPage .nullcontent").addClass("hidden");
 		$("#supersearchPage .selLable").removeClass("hidden");
 		$("#supersearchPage #super_search").addClass("hidden");
@@ -1107,8 +1181,18 @@ var SuperSearch = {
 		$("#supersearchPage input[name=super_searchinput]").blur();
 		$("#supersearchPage .clearInpt").addClass("hidden");
 		$("#supersearchPage .query").addClass("hidden");
-		$("#supersearchPage input[name=super_searchinput]").removeClass("searchinput-padding");
+		var filter_winner = []
+        var filter_buyerclass = []
+        $("#select-win-list li.select").each(function(){
+            filter_winner.push($(this).text())
+        })
+        var buttons = $('.select-area-box .list button.active:not(.whole)');
+        buttons.each(function () {
+            filter_buyerclass.push($(this).text())
+        })
 		SuperSearch.reqParam.pageNum=1;
+		SuperSearch.reqParam.winner = filter_winner.join(',')
+        SuperSearch.reqParam.buyerclass = filter_buyerclass.join(',')
 		SuperSearch.noMoreCache = false;
 		SuperSearch.requesting = true;
 		if(nw=="N"){
@@ -1138,7 +1222,34 @@ var SuperSearch = {
 				$("#supersearchPage input[name=super_searchinput]").val(SuperSearch.s_words);
 				SuperSearch.requesting = false;
 				//历史记录和我的订阅
-				SuperSearch.htmlTipMsg(data["history"],data["msgset"]);
+                    if(data.isLogin){
+                        if(localStorage && data["history"] != null && typeof(data["history"]) != "undefined"){
+                            localStorage.superSearch_history = data["history"].join(",");
+                        }
+                        SuperSearch.htmlTipMsg(data["history"]);
+                    }else{
+                        //搜索历史记录保存到本地
+                        if(localStorage){
+                            var l_history = localStorage.superSearch_history;
+                            var l_historys = [];
+                            if(typeof(l_history) != "undefined"){
+                                l_historys = l_history.split(",");
+                                //去重
+                                for(var i=0;i<l_historys.length;i++){
+                                    if(l_historys[i] == $.trim(SuperSearch.s_words)){
+                                        l_historys.splice(i,1);
+                                        break;
+                                    }
+                                }
+                            }
+                            l_historys.push(SuperSearch.s_words);
+                            if(l_historys.length > 5){
+                                l_historys.shift();
+                            }
+                            localStorage.superSearch_history = l_historys.join(",");
+                            SuperSearch.htmlTipMsg(l_historys,null);
+                        }
+                    }
 				//查询后显示 展示方式
 				$("#supersearchPage .selLable").removeClass("hidden");
 				//铺查询信息
@@ -1181,6 +1292,10 @@ var SuperSearch = {
 		});
 	},
 	getHtml: function (list,pageNum){//生成list表单 或 table表单
+    // 获取收藏状态
+    SuperSearch.checkStartKeepStatus(list.map(function(v) {
+      return v._id
+    }))
 		var html ={};
 		var ListHtml='';
 		var TableHtml='';
@@ -1282,7 +1397,7 @@ var SuperSearch = {
 				fullTime=thisTime.getFullYear()+"<br>"+month+date;
 				tdf = timeDiff(new Date(Number(tdf+"000")));
 				if(tdf != null){
-					tdf='<span><i class="glyphicon bofangjilu" style="color:#7a7a7a;margin-right:2px;"></i>'+tdf+'</span>'
+					tdf='<span><i class="jyapp-icon jyapp-icon-bofangjilu" style="color:#7a7a7a;margin-right:2px;"></i>'+tdf+'</span>'
 				}
 			}else{
 				tdf = '';
@@ -1344,9 +1459,12 @@ var SuperSearch = {
 						+'<div class="one">'
 						+'<span class="xh">'+index+'.</span>'
 						+'</div>'
+            + '<div class="two-group">'
 						+'<div class="two bt-parent"'+thisStyle+'>'
 						+'<a class="bt" sid="'+list[i]._id+'" s="'+href+'" href="javascript:void(0);">'+title+'</a>'
 						+'</div>'
+            + '<div class="flow-start-box"><i class="icon-flow-start"></i></div>'
+						+'</div>'
 						+'</div>'
 						+'<div style="clear:both;"></div>'
 						+'<div class="restime time-diff">'
@@ -1427,9 +1545,56 @@ var SuperSearch = {
 		if(SuperSearch.dyDiv){
 			SuperSearch.showToOrder(false)
 		}else{
-			SuperSearch.showToOrder(true)
+			SuperSearch.showToOrder(true);
 		}
 	},
+  changeKeepStatus (id, type) {
+    var aDom = $("p[sid='"+id+"'], a[sid='"+id+"']")
+    if (aDom.length) {
+      aDom.each(function () {
+        var gDom = $(this).parents('.two-group').find('.flow-start-box')
+        if (type) {
+          gDom.addClass('fill')
+        } else {
+          gDom.removeClass('fill')
+        }
+      })
+    }
+  },
+  checkStartKeepStatus: function (list) {
+      $.ajax({
+        url: '/publicapply/bidcoll/isColl',
+        type: 'POST',
+        data: {
+          bids: list.join(',')
+        }
+      }).done(function (r) {
+        if (r && r.error_msg == '' && r.data) {
+          console.log('start', r.data)
+          r.data.forEach(function(v) {
+            SuperSearch.changeKeepStatus(v, true)
+          })
+        }
+      })
+  },
+  checkIsStartFn: function (event, attrData) {
+    var isStart = $(event.target).hasClass('.flow-start-box') || $(event.target).parents('.flow-start-box').length
+    console.log(isStart, 'isStart')
+    if (isStart) {
+      event.preventDefault();
+      event.stopPropagation();
+      console.log('收藏')
+
+      var isStartStatus = $(event.target).hasClass('.flow-start-box.fill') || $(event.target).parents('.flow-start-box.fill').length
+
+      if (vKeepComponent) {
+        vKeepComponent.changeBid(attrData.sid, !isStartStatus)
+      }
+
+      return false
+    }
+    return true
+	},
 	appendListHtml: function (html){  //下拉时展示信息
 	    // 插入数据到页面,放到最后面
 	    var ListHtmlObj = $(html.ListHtml);
@@ -1437,9 +1602,12 @@ var SuperSearch = {
 	        var h = $(this).find("a.bt").attr("s");
 	        var sid = $(this).find("a.bt").attr("sid");
 			var industry = $(this).find(".industry").text();
+			    if (SuperSearch.checkIsStartFn(event, { sid: sid })) {
 	        SuperSearch.myredirect(h,sid,industry);
+          }
 	    });
 	    $('#supersearchPage #list').append(ListHtmlObj);
+		$(".loading_").hide();
 //	    var TableHtmlobj=$(html.TableHtml);
 //	    TableHtmlobj.on("tap",function(event){
 //	        var h = $(this).attr("s");
@@ -1448,7 +1616,6 @@ var SuperSearch = {
 //	        SuperSearch.myredirect(h,sid,industry);
 //	    });
 //	    $("#supersearchPage #table .content").append(TableHtmlobj);
-		$(".loading_").hide();
 	},
 	replayListHtml: function(html){ //搜索时替换信息
 	   	// 替换
@@ -1485,7 +1652,10 @@ var SuperSearch = {
 	       var h = $(this).find("a.bt").attr("s");
 	       var sid = $(this).find("a.bt").attr("sid");
 		   var industry = $(this).find(".industry").text();
+
+        if (SuperSearch.checkIsStartFn(event, { sid: sid })) {
 	       SuperSearch.myredirect(h,sid,industry);
+        }
 	   	});
 	   	$('#supersearchPage #list').html(ListHtmlObj);
 
@@ -1552,10 +1722,19 @@ var SuperSearch = {
 	    SuperSearch.dropload.resetload();
 	},
 	loadTipMsg: function(){
-		$.post("/jylab/mainSearch/getHK?t="+new Date().getTime(),function(r){
-			SuperSearch.myHistory=r.history;
-			SuperSearch.htmlTipMsg(r.history,r.msgset);
+		//从服务器端取
+			var l_superSearch_history = ""
+			if(localStorage.superSearch_history==null||localStorage.superSearch_history==undefined){
+				$.post("/jylab/mainSearch/getHK?t="+new Date().getTime(),{},function(r){
+					if(localStorage && r.history != null && typeof(r.history) != "undefined"){
+						localStorage.superSearch_history = r.history.join(",");
+            l_superSearch_history =  localStorage.superSearch_history || '';
+            SuperSearch.htmlTipMsg(l_superSearch_history.split(","),null);
+					}
 	    });
+			}
+			l_superSearch_history =  localStorage.superSearch_history || '';
+			SuperSearch.htmlTipMsg(l_superSearch_history.split(","),null);
 	},
 	htmlTipMsg: function(history,msgset){
 		//历史信息
@@ -1566,53 +1745,17 @@ var SuperSearch = {
 				if(hy == ""){
 					continue;
 				}
-				historyHtml+="<li>"+hy+"</li>"
+				historyHtml+="<li  class='hover-css--slide'>"+hy+"</li>"
 			}
 		}
-		$("#supersearchPage .inputDiv .history").html(historyHtml);
+		$("#supersearchPage .search-one-box ul.history-list-box").html(historyHtml);
 		if(historyHtml == ""){
-			$("#supersearchPage .inputDiv .inpTitle_history").addClass("hidden");
+			$("#supersearchPage .tabs-box .tabs-content-page").eq(0).addClass("hidden");
 		}else{
-			$("#supersearchPage .inputDiv .inpTitle_history").removeClass("hidden");
-		}
-		//订阅信息
-//		msgsetHtml="";
-//		if(msgset != null){
-//			for(var n=0;n<msgset.length;n++){
-//				var  mymsgset="";
-//				for(var m=0;m<msgset[n].length;m++){
-//					mymsgset+=msgset[n][m]+" "
-//				}
-//				var mt = $.trim(mymsgset);
-//				if(mt == ""){
-//					continue
-//				}
-//				msgsetHtml+="<li>"+mt+"</li>";
-//			}
-//		}
-//		$("#supersearchPage .inputDiv .myMsgset").html(msgsetHtml);
-//		if(msgsetHtml == ""){
-//			$("#supersearchPage .inputDiv .inpTitle_msgset").addClass("hidden");
-//		}else{
-//			$("#supersearchPage .inputDiv .inpTitle_msgset").removeClass("hidden");
-//		}
-		//样式控制
-		if(historyHtml != ""){
-			$("#supersearchPage .inputDiv .inpTitle_history").css({"border-top-right-radius":"5px","border-top-left-radius":"5px"});
-//		}else if(historyHtml == "" && msgsetHtml != ""){
-//			$("#supersearchPage .inputDiv .inpTitle_msgset").css({"border-top-right-radius":"5px","border-top-left-radius":"5px"});
-		}
-		//
-		if(historyHtml == ""){
-			$("#supersearchPage .inputDiv").css("border-top-width","0px");
-//		}else{
-//			$("#supersearchPage .inputDiv").css("border-top-width","1px");
+            $("#supersearchPage .tabs-box .tabs-content-page").eq(0).removeClass("hidden");
 		}
-		//
-		var len=$("#supersearchPage .inputDiv ul li").length;
-		$("#supersearchPage .inputDiv ul li:eq("+(len-1)+")").css("border-bottom-right-radius","5px").css("border-bottom-left-radius","5px");
-		//点击提示框内容 进行搜索
-		$("#supersearchPage .inputDiv li").unbind("tap").on("tap",function () {
+		// 点击历史记录内容 进行搜索
+		$("#supersearchPage .search-one-box .history-list-box").off("click", 'li').on("click", 'li', function () {
 			$("#supersearchPage input[name=super_searchinput]").val($(this).text());
 			SuperSearch.canSearch();
 			SuperSearch.formSubmit("N");
@@ -1717,6 +1860,15 @@ var SuperSearch = {
 	},
 	setSessionStorage: function(){
 	    if(sessionStorage){
+            var filter_buyerclass = []
+            var buttons = $('.select-area-box .list button.active:not(.whole)');
+            buttons.each(function () {
+                filter_buyerclass.push($(this).text())
+            })
+            SuperSearch.filterWin.html = $("#supersearchPage #select-win-list").html()
+            SuperSearch.filterBuy.select = filter_buyerclass
+	        sessionStorage.superSearch_filterWin = JSON.stringify(SuperSearch.filterWin)
+	        sessionStorage.superSearch_filterBuy = JSON.stringify(SuperSearch.filterBuy)
 			sessionStorage.superSearch_noMoreCache = SuperSearch.noMoreCache;
 	        sessionStorage.superSearch_listContent=$("#supersearchPage #list").html();
 	        sessionStorage.superSearch_tableContent=$("#supersearchPage #table .data .content").html();
@@ -1726,8 +1878,10 @@ var SuperSearch = {
 	        sessionStorage.superSearch_minprice=SuperSearch.reqParam.minprice;
 			sessionStorage.superSearch_maxprice=SuperSearch.reqParam.maxprice;
 	        sessionStorage.superSearch_pageNum=SuperSearch.reqParam.pageNum;
+	        sessionStorage.superSearch_buyerclass=SuperSearch.reqParam.buyerclass;
+	        sessionStorage.superSearch_winner=SuperSearch.reqParam.winner;
 	        sessionStorage.superSearch_xScroll=$("#supersearchPage #table .data").scrollLeft();
-	        sessionStorage.superSearch_yScroll=$("body").scrollTop();
+	        sessionStorage.superSearch_yScroll=$("#supersearchPage .app-layout-content-b").scrollTop();
 	        sessionStorage.superSearch_industry=$("#supersearchPage .contentthree").html();
 			sessionStorage.searchpageName="superSearch";
 			sessionStorage.superSearch_dyDiv=SuperSearch.dyDiv;
@@ -1738,9 +1892,9 @@ var SuperSearch = {
 //				sessionStorage.superSearch_showType="showTable";
 //			}
 			sessionStorage.superSearch_showType=$(".newdialog .tab-box .sub-show-list").find("li.active").attr('dataVal');
-			var shaxuanclass = $("#supersearchPage .jyshaxuan .shaixcl").attr("class");
+
+			var shaxuanclass = $("#supersearchPage .jyshaxuan .icon-triangle-up").parent().attr("data-open");
 			if(shaxuanclass){
-				shaxuanclass = shaxuanclass.split(" ")[0];
 				sessionStorage.superSearch_shaxuan=shaxuanclass;
 			}
 			sessionStorage.superSearch_shaxuanFlag=!$("#supersearchPage #super_search").hasClass("hidden");
@@ -1754,6 +1908,7 @@ var SuperSearch = {
 			}
 			sessionStorage.superSearch_allSearchModel_isshow=$("#supersearchPage #allSearchModel").is(":visible");
 			sessionStorage.superSearch_limitFlag=SuperSearch.limitFlag;
+			sessionStorage.superSearch_showNull=SuperSearch.showNull;
 			sessionStorage.superSearch_currentkws=$("input[name='super_searchinput']").val();
 	    }
 	},
@@ -1761,7 +1916,18 @@ var SuperSearch = {
 		if(!sessionStorage){
 			return;
 		}
+        console.log('win 01')
+		SuperSearch.filterBuy = JSON.parse(sessionStorage.superSearch_filterBuy || '{}')
+		SuperSearch.filterWin = JSON.parse(sessionStorage.superSearch_filterWin || '{}')
+
+        initSearchHeader(true)
+
         $("input[name='super_searchinput']").val(sessionStorage.superSearch_currentkws)
+		if(sessionStorage.superSearch_showNull == "null"){
+			SuperSearch.showNull = null;
+			$("#supersearchPage .selLable").addClass("hidden");
+			SuperSearch.showToOrder(false);
+		}else{
 	    $("#supersearchPage .clearInpt").addClass("hidden");
 	    if(sessionStorage.superSearch_limitFlag=="true"){
 			SuperSearch.limitFlag = true;
@@ -1785,6 +1951,17 @@ var SuperSearch = {
 				$("#supersearchPage #allSearchModel").hide();
 			}
 	    }else{
+				if(sessionStorage.superSearch_dyDiv == "false"){
+					SuperSearch.dyDiv = false;
+					$("#supersearchPage .resbm").css("position","absolute");
+					SuperSearch.showToOrder(true);
+					setTimeout(function(){
+						$("#supersearchPage .resbm").css("position","fixed");
+					},200);
+				}else{
+					SuperSearch.dyDiv = true;
+					SuperSearch.showToOrder(false);
+				}
 			SuperSearch.noMoreCache = sessionStorage.superSearch_noMoreCache;
 			SuperSearch.showNull = false;
 			var ListContent=$(sessionStorage.superSearch_listContent);
@@ -1792,10 +1969,12 @@ var SuperSearch = {
 			    var h = $(this).find("a.bt").attr("s");
 			    var sid = $(this).find("a.bt").attr("sid");
 				var industry = $(this).find(".industry").text();
+          if (SuperSearch.checkIsStartFn(event, { sid: sid })) {
 			    SuperSearch.myredirect(h,sid,industry);
+          }
 			});
 			$("#supersearchPage #list").html(ListContent);
-			SuperSearch.initDropload(SuperSearch.noMoreCache!="true",sessionStorage.superSearch_pageNum);
+				//
 			var TableContent=$(sessionStorage.superSearch_tableContent);
 			TableContent.on("tap",function(event){
 			    var h =  $(this).attr("s");
@@ -1804,6 +1983,8 @@ var SuperSearch = {
 			    SuperSearch.myredirect(h,sid,industry);
 			});
 			$("#supersearchPage #table .data .content").html(TableContent);
+				//
+				SuperSearch.initDropload(SuperSearch.noMoreCache!="true",sessionStorage.superSearch_pageNum);
 	    }
 		SuperSearch.appendInterceptWord(sessionStorage.superSearch_interceptWord);
 		if(sessionStorage.superSearch_advertIsClose == "false"){
@@ -1811,14 +1992,13 @@ var SuperSearch = {
 		}else{
 			SuperSearch.advertIsClose = true;
 		}
-		if(sessionStorage.superSearch_dyDiv == "false"){
-			SuperSearch.dyDiv = false;
-		}else{
-			SuperSearch.dyDiv = true;
+			var superSearch_yScroll = sessionStorage.superSearch_yScroll;
+			var superSearch_xScroll = sessionStorage.superSearch_xScroll;
+			setTimeout(function(){
+			    $("#supersearchPage .app-layout-content-b").scrollTop(superSearch_yScroll);
+			    $("#supersearchPage #table .data").scrollLeft(superSearch_xScroll);
+			},50);
 		}
-	    $("body").scrollTop(sessionStorage.superSearch_yScroll);
-	    $("#supersearchPage #table .data").scrollLeft(sessionStorage.superSearch_xScroll);
-
 	    //筛选时间
 	    var ptime= sessionStorage.superSearch_publishtime;
 	    if(typeof(ptime) != "undefined" && ptime != ""){
@@ -1914,23 +2094,15 @@ var SuperSearch = {
 			$("#supersearchPage #wrapper").addClass("hidden");
 			$("#supersearchPage .nullcontent").addClass("hidden");
 			$("#supersearchPage #super_search").removeClass("hidden");
-			$("#supersearchPage .jyshaxuan>div").removeClass("shaixcl");
+			$("#supersearchPage .jyshaxuan .j-icon").removeClass("icon-triangle-up");
 		}
 		if(shaxuanclass){
-			$("#supersearchPage ."+shaxuanclass).addClass("shaixcl");
-			$("#supersearchPage ."+shaxuanclass).siblings().removeClass("shaixcl");
-			$("#supersearchPage .industry-dialog,.jydq-dialog,.jytype-dialog,.jypt-dialog,.money-dialog").addClass("hidden");
-			if(shaxuanclass == "shaixIndustry"){
-				$("#supersearchPage .industry-dialog").removeClass("hidden");
-			}else if(shaxuanclass == "shaixMoney"){
-				$("#supersearchPage .money-dialog").removeClass("hidden");
-			}else if(shaxuanclass == "shaixpt"){
-				$("#supersearchPage .jypt-dialog").removeClass("hidden");
-			}else if(shaxuanclass == "shaixone"){
-				$("#supersearchPage .jydq-dialog").removeClass("hidden");
-			}else if(shaxuanclass == "shaixtwo"){
-				$("#supersearchPage .jytype-dialog").removeClass("hidden");
-			}
+            console.log('xxx', shaxuanclass)
+            checkFilterButtonText()
+			$("#supersearchPage div[data-open='"+shaxuanclass+"']").trigger('click')
+		} else {
+            console.log('没有筛选tab')
+            $("#supersearchPage div[data-open='industry']").trigger('click')
 		}
 //		$("#supersearchPage #selLable>.com-title>span.on").removeClass("on");
 //		$("#supersearchPage #selLable>.com-title>#"+sessionStorage.superSearch_searchType).addClass("on");
@@ -1943,6 +2115,11 @@ var SuperSearch = {
 			$(".selected-export .options .search-title").find("em").text("全文搜索");
 			$(".newdialog .sub-search-title").find("li[dataval='searchall']").addClass("active");
 		}
+
+		SuperSearch.showType();
+	    SuperSearch.beforeSubmit();
+    },
+	showType: function(){
 		if(sessionStorage.superSearch_showType=="showtable"){
 			$(".selected-export .show-list").find("em").text("表格显示");
 			$(".newdialog .sub-show-list").find("li[dataval='showtable']").addClass("active");
@@ -1958,7 +2135,6 @@ var SuperSearch = {
 			$("#supersearchPage #wrapper #list").removeClass("hidden");
 			SuperSearch.isTable(false);
 		}
-	    SuperSearch.beforeSubmit();
 	},
 	getIndustry: function(){
 	    //铺设行业信息
@@ -2098,6 +2274,9 @@ var SuperSearch = {
 			dataType: "json",
 			async: false,
 			success: function(r){
+				if(nReq==2){
+					$(".loading_Top").hide();
+				}
 				if(r.success){
 					SuperSearch.homePageShow(r.data);
 				}
@@ -2139,6 +2318,11 @@ var SuperSearch = {
 		SuperSearch.listLength =  r["listLength"]
 		SuperSearch.myHistory = r["history"]
 		var list = r["list"]
+    if (list && list.length) {
+      SuperSearch.checkStartKeepStatus(list.map(function(v) {
+        return v._id
+      }))
+    }
 		var homeListHtml = '';
 		if(list!=null&&list.length>0){
 			for(var i=0;i<list.length;i++){
@@ -2156,10 +2340,13 @@ var SuperSearch = {
 				}else if(SuperSearch.myHistory!=null&&SuperSearch.myHistory.length>0){
 					title = keyWordHighlight(title,SuperSearch.myHistory,'<font class="keyword">$1</font>');
 				}
-				homeListHtml +='<div class="list_item" onclick="SuperSearch.HomeToDetails(\''+_list["_id"]+'\')">'
+				homeListHtml +='<div class="list_item" onclick="SuperSearch.HomeToDetails(\''+_list["_id"]+'\', event)">'
 									+'<div class="list_title">'
 									+'<span class="serial_number">'+(i+1)+'. &nbsp;</span>'
-									+'<p>'+title+'</p>'
+                  + '<div class="two-group">'
+									+'<p sid="'+_list["_id"]+'">'+title+'</p>'
+                  + '<div class="flow-start-box"><i class="icon-flow-start"></i></div>'
+                  + '</div>'
 									+'</div>'
 									+'<div class="list_info">'
 									+'<div class="tags">'
@@ -2226,9 +2413,11 @@ var SuperSearch = {
 		}
 		SuperSearch.showHomeList(homeListHtml);
 	},
-	HomeToDetails:function(id){
-		if(id!=""){
-			window.location.href="/article/content/"+id+".html"
+	HomeToDetails:function(id, e){
+	if (SuperSearch.checkIsStartFn(e, { sid: id })) {
+        if(id!=""){
+          window.location.href="/article/content/"+id+".html"
+        }
 		}
 	},
 	showHomeList:function(hh){

+ 75 - 4
src/web/staticres/pccss/ent-search-index-pc.css

@@ -19,6 +19,9 @@
 .rotate180 {
     transform: rotate(180deg);
 }
+.search-container {
+    min-height: 400px;
+}
 .search-header {
     padding: 29px 0 15px;
     background-color: #f5f5fb;
@@ -26,9 +29,6 @@
 .search-content {
     padding: 28px 0;
 }
-.search-footer {
-    /* padding: 28px 0; */
-}
 
 .search-header-top {
     display: flex;
@@ -44,6 +44,9 @@
     height: 36px;
     cursor: pointer;
 }
+.input-container {
+    position: relative;
+}
 .input-container .el-input-group {
     width: 640px;
 }
@@ -58,6 +61,33 @@
     color: #fff;
     background-color: #2cb7ca;
 }
+.pre-search-list {
+    padding: 20px 0;
+    position: absolute;
+    z-index: 6;
+    top: 52px;
+    width: 640px;
+    background: #fff;
+    box-shadow: 0 0 20px rgb(0,0,0,0.1);
+    border-radius: 8px;
+    overflow: hidden;
+}
+.pre-search-item {
+    padding: 12px 40px;
+    width: 100%;
+    font-size: 16px;
+    line-height: 24px;
+    color: #686868;
+    box-sizing: border-box;
+    transition: all .3s;
+    cursor: pointer;
+}
+.pre-search-item:hover {
+    padding: 12px 30px;
+    color: #1d1d1d;
+    background-color: #ececec;
+}
+
 .filter-button {
     margin-left: 18px;
     color: #1D1D1D;
@@ -127,6 +157,9 @@
 .selector-card:not(:last-of-type) {
     border-bottom: 1px dashed #ECECEC;
 }
+.selector-card.price .time-content {
+    flex: none;
+}
 .selector-card.price .selector-content {
     padding-right: 26px;
 }
@@ -147,10 +180,35 @@
 }
 
 .ent-info-item {
+    position: relative;
     padding: 18px 16px;
     display: flex;
     border-bottom: 1px solid rgba(0,0,0,.05);
+    cursor: pointer;
+}
+.ent-info-item.hover:hover {
+    background-color: #f5f6f7;
+    box-shadow: inset 0 -1px 0 0 rgb(0,0,0,.05);
+}
+.ent-info-item .list-item-mask {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    background-image: url(/images/ent-search-item-mask.jpg);
+    background-repeat: no-repeat;
+    background-size: cover;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    cursor: auto;
+}
+.ent-info-item .list-item-mask > p {
+    margin-bottom: 18px;
 }
+
 .ent-info-item .ei-i-l-container {
     width: 60px;
     height: 60px;
@@ -198,4 +256,17 @@
     border: 1px solid #2cb7ca;
     background-color: rgba(44,183,202,0.08);
     border-radius: 5px;
-}
+}
+
+.ent-info-list {
+    min-height: 400px;
+}
+
+.j-el-confirm {
+    width: 380px!important;
+}
+.j-el-confirm .j-t-button {
+    padding: 0;
+    height: 36px;
+    width: 132px;
+}

File diff suppressed because it is too large
+ 64 - 0
src/web/staticres/vipsubscribe/css/rights_page.css


二進制
src/web/staticres/vipsubscribe/image/rights-icons.png


+ 2 - 1
src/web/staticres/vipsubscribe/js/price.js

@@ -40,6 +40,7 @@ var Calculation = {
                 "oneProvince_allBuyerClass": 3800,
                 "allProvince_allBuyerClass": 59900
             },
+            "quarter": {"oneProvince_allBuyerClass": 9900, "allProvince_allBuyerClass": 149900},
             "year": {
                 "oneProvince_allBuyerClass": 38000,
                 "allProvince_allBuyerClass": 599900
@@ -93,7 +94,7 @@ var Calculation = {
            buyTime  [数量,单位(1:年,2月)]
     return 价格、计价清单
      */
-    GetUpgradeDetail: function (newBuyset = new Buyset(), buyTime = [1, 2]) { //升级计价 time[数量,单位(1:年,2月)]
+    GetUpgradeDetail: function (newBuyset = new Buyset(), buyTime = []) { //升级计价 time[数量,单位(1:年,2月)]
         let subtotail = []; //计价清单
         let final_price = 0; //最终计算价格
         let nowEndTime = this.EndTime;

+ 5 - 0
src/web/staticres/vipsubscribe/js/vip_index_new.js

@@ -135,6 +135,11 @@ $(function () {
   //     }
   //   }
   // })
+  // 清除商品规格当前选择
+  sessionStorage.removeItem("vip-cur-select-size")
+  // 清除商品优惠券当前选择
+  sessionStorage.removeItem("vip-cur-select-coupon")
+  sessionStorage.removeItem("$select-coupon")
   /* vue 代码 end */
     //项目匹配开关
     var checkedflag = true;

+ 107 - 3
src/web/staticres/vipsubscribe/js/vip_renew.js

@@ -88,6 +88,17 @@ var renew = {
                             _this.buyInfo.buyset.upgrade || 0
                         )
                     )
+                    // 新超级订阅续费
+                    if (r.data.buyset.upgrade == 1) {
+                      $("[data-new-vip]").show()
+                      $("[data-old-vip]").hide()
+                      if (_this.buyInfo.buyset.areacount == -1) {
+                        goodsSize.props.areaCount = 16
+                      } else {
+                        goodsSize.props.areaCount = _this.buyInfo.buyset.areacount
+                      }
+                      
+                    }
                     // 初始化默认金额
                     _this.setPrice(_this.calcPrice())
                 }
@@ -102,6 +113,8 @@ var renew = {
             success: function (r) {
                 if (r) {
                     _this.requestRules = r
+                    // 将价格列表传至商品规格组件
+                  goodsSize.props.priceInfo = r.new
                 }
             }
         })
@@ -113,7 +126,27 @@ var renew = {
     // 设置价格
     setPrice: function (price) {
         this.price = parseInt(price)
-        coupon.updatePrice(this.price / 100)
+        var size = JSON.parse(sessionStorage.getItem('vip-cur-select-size')) 
+        // console.log(renew.buyInfo.buyset)
+        var count = renew.buyInfo.buyset.areacount == -1 ? 16 : renew.buyInfo.buyset.areacount
+        if (this.buyInfo.buyset.upgrade == 1) {
+          // 新规则初始化价格
+          if (size) {
+            // 初始化上次选择的商品规格
+            coupon.updatePrice(size.price / 100)
+          } else {
+            // 初始化默认一个月*省份数量或全国价格
+            sessionStorage.removeItem('$select-coupon')
+            if (count >= 16) {
+              coupon.updatePrice(59900 / 100)
+            } else {
+              coupon.updatePrice(3800*count / 100)
+            }
+          }
+        } else {
+          // 旧规则初始化价格
+          coupon.updatePrice(this.price / 100)
+        }
     },
     // 根据选中结果得到续费了多长时间的字符串
     getDuration: function (timeSelect) {
@@ -284,14 +317,26 @@ var renew = {
 
         $('.vip-footer.renew .confirm').on('click', function () {
             $('.vip-footer.renew .confirm').prop('disabled', true)
+            var upgrade = renew.buyInfo.buyset.upgrade
+            var size = goodsSize.defaultSize
+            var sizeTime = ''
+            if (size && size.period) {
+              if(size.period.indexOf('月') > -1) {
+                size.period = size.period.replace('月', '个月')
+              }
+              sizeTime = size.period
+            } else {
+              sizeTime = '1个月'
+            }
+            console.log(upgrade,sizeTime, '新or老')
             //支付请求
             var data = {
                 userLotteryId :coupon.$refs.couponRef.coupon.userLotteryId,
                 lotteryId : coupon.$refs.couponRef.coupon.lotteryId,
-                time : _this.getDuration(_this.timeSelect).trim(),
+                time : upgrade == 0 ? _this.getDuration(_this.timeSelect).trim() : sizeTime,
                 orderType: 5,
                 disWord :GetQueryString('disWord'),
-                price: _this.price
+                price: coupon.initPrice*10000/100
             }
             $.ajax({
                 // url: '/subscribepay/vipsubscribe/createOrder',
@@ -485,6 +530,9 @@ function clearSessionStorage() {
     sessionStorage.removeItem("pay_read_cache")
     sessionStorage.removeItem("liveActiveCode_renew");
     sessionStorage.removeItem("liveActiveCode_new");
+    // 清除商品规格当前选择
+    sessionStorage.removeItem("vip-cur-select-size")
+    sessionStorage.removeItem("$select-coupon")
 }
 function showToast(text) {
     weui.toast(text, {
@@ -506,6 +554,62 @@ function pickerShow(selector, f) {
     }
 }
 /* vue 代码 start */
+// vip商品规格组件
+var goodsSize = new Vue({
+  el:'#goods-size-vue',
+  data: function() {
+    return {
+      props: {
+        defaultSize: {},
+        areaCount: 1,
+        priceInfo: {}
+      }
+    }
+  },
+  created () {
+    
+  },
+  mounted () {
+    this.getSizeStorage()
+  },
+  methods: {
+    // 父组件传省份数量至子组件
+    getAreaCount: function() {
+      var areaStorage = JSON.parse(sessionStorage.getItem('vipSubSelectArea'))
+      console.log(renew.buyInfo.buyset.areacount)
+      if (areaStorage) {
+        var count = 0
+        for (var key in areaStorage) {
+          if (key.indexOf('全国') > -1) {
+            count = 16
+          } else {
+            count++
+          }
+        }
+        this.props.areaCount = count
+      }
+    },
+    getSizeStorage: function() {
+      // 恢复商品规格选择
+      var size = JSON.parse(sessionStorage.getItem('vip-cur-select-size')) 
+      // console.log(size, '恢复的商品规格')
+      if (size) {
+        this.$refs.goodsSize.goodsActive = size.index
+        this.defaultSize = size
+        this.$nextTick(function(){
+          coupon.updatePrice(size.price/100)
+        })
+      }
+    },
+    getGoodSize: function(data) {
+      // console.log(data, '父组件接收子组件传来的商品规格')
+      sessionStorage.removeItem('$select-coupon')
+      this.defaultSize = data
+      coupon.updatePrice(data.price/100)
+    }
+  }
+})
+// 订单提交组件
 var coupon = new Vue({ 
   el: '#coupon-vue',
   data: function () {

+ 22 - 16
src/web/staticres/vipsubscribe/js/vip_upgrade.js

@@ -142,20 +142,23 @@ var purchase = {
   showArea: function () {
     if (!$.isEmptyObject(this.areaSelect) && !this.areaSelect["一个省"]) { //有选择
       if (this.nowBuyset.areacount === -1 || this.nowBuyset.areacount >= 16) {
-        $(".area-result .item-r").text("全国");
+        // $(".area-result .item-r").text("全国");
+        $(".selected-area").text("全国");
       } else {
         var tipTxt = "";
-        if (this.nowBuyset.areacount > 0) tipTxt += this.nowBuyset.areacount + " 个省";
-        var count = 0;
-        this.nowBuyset.citys.forEach(function (item, index) {
-          count += item;
-        });
-        if (count > 0) {
-          if (this.nowBuyset.areacount > 0) tipTxt += "、";
-          tipTxt += count + " 个市";
-          if (this.nowBuyset.citys.length > 1) tipTxt += "(分布在" + this.nowBuyset.citys.length + "个省内)"
-        }
-        $(".area-result .item-r").text(tipTxt);
+        // if (this.nowBuyset.areacount > 0) tipTxt += this.nowBuyset.areacount + "";
+        // var count = 0;
+        // this.nowBuyset.citys.forEach(function (item, index) {
+        //   count += item;
+        // });
+        // if (count > 0) {
+        //   if (this.nowBuyset.areacount > 0) tipTxt += "、";
+        //   tipTxt += count + " 个市";
+        //   if (this.nowBuyset.citys.length > 1) tipTxt += "(分布在" + this.nowBuyset.citys.length + "个省内)"
+        // }
+        // $(".area-result .item-r").text(tipTxt);
+        tipTxt = Object.keys(this.areaSelect).length
+        $(".selected-area").text(tipTxt);
       }
     } else {
       $(".area-result .item-r").text("");
@@ -233,8 +236,11 @@ var purchase = {
       purchase.areaSelect = {}
     }
     obj.areacount = Object.keys(purchase.areaSelect).length == 0 ? -1 : Object.keys(purchase.areaSelect).length
-    var price = Calculation.GetUpgradeDetail(new Buyset(obj.areacount,[],obj.buyerclasscount,1), time)
-    var givePrice = Calculation.GetUpgradeDetail(new Buyset(obj.areacount,[],obj.buyerclasscount,1), [time[1] === 1 ? 1 : time[0], time[1]])
+    // var price = Calculation.GetUpgradeDetail(new Buyset(obj.areacount,[],obj.buyerclasscount,1), time)
+    // var givePrice = Calculation.GetUpgradeDetail(new Buyset(obj.areacount,[],obj.buyerclasscount,1), [time[1] === 1 ? 1 : time[0], time[1]])
+    /* 超级订阅2.1版本 升级不再自动增加1个月周期,如需增加使用上面注释代码传入周期即可 */
+    var price = Calculation.GetUpgradeDetail(new Buyset(obj.areacount,[],obj.buyerclasscount,1))
+    var givePrice = Calculation.GetUpgradeDetail(new Buyset(obj.areacount,[],obj.buyerclasscount,1))
     price = Number(price[0] / 100) < 0 ? 0 : Number(price[0] / 100)
 
     var showPrice = formatMoney(price);
@@ -578,8 +584,8 @@ $(function () {
       "area": flag ? JSON.stringify(area) : '',
       'area_count': flag ? 0 : areaCount,
       // "industry": industry.join(","),
-      'price': parseInt(coupon.initPrice*100),
-      "time": purchase.timeValue.trim(),
+      'price': parseInt(coupon.initPrice*10000/100),
+      // "time": purchase.timeValue.trim(),
       // "orderType": 5,
       "activeCode": activeCodes,
       "disWord":GetQueryString("disWord"),

+ 1 - 7
src/web/staticres/wx_dataExport/css/search_tab.css

@@ -48,12 +48,6 @@
   -webkit-transform: translateY(-50%);
           transform: translateY(-50%);
 	color: #2CB7CA;
-    background: #EFFAFC;
-    width: 1.65rem;
-    height: 0.52rem;
-    line-height: 0.55rem;
-    text-align: center;
-    border-radius: 0.25rem;
 }
 .selected-export-box .selected-export .export span i {
 /*  position: absolute;*/
@@ -124,4 +118,4 @@
 }
 .weui-mask, .weui-mask_transparent {
     top: 80px !important;
-}
+}

File diff suppressed because it is too large
+ 0 - 65
src/web/templates/common/commonRules.html


+ 6 - 6
src/web/templates/frontRouter/pc/collection/sess/index.html

@@ -18,7 +18,7 @@
         <link href="//cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/theme-chalk/index.css" rel="stylesheet" />
         <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/css/ele-reset.css?v={{Msg "seo" "version"}}'>
         <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/css/selector/selector.css?v={{Msg "seo" "version"}}'>
-        <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/collection/css/index-pc.css?v={{Msg "seo" "version"}}'>
+        <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/frontRouter/pc/collection/css/index-pc.css?v={{Msg "seo" "version"}}'>
         <style>
             .collection-container {
                 line-height: 1;
@@ -34,7 +34,7 @@
         <div class="collection-header w">
             <h3 class="tab-title">标讯收藏</h3>
         </div>
-        <div class="search-content w" v-cloak>
+        <div class="search-content w" v-cloak v-show="powerLoaded">
             <div class="selector-card-container search-filters" v-if="power">
                 <div class="selector-card">
                     <div class="selector-card-header">个人标签:</div>
@@ -117,7 +117,7 @@
                 </div>
             </div>
             <div class="collect-list-container">
-                <div class="collect-list-header">
+                <div class="collect-list-header" v-show="listState.list.length !== 0 && listState.loaded">
                     <div class="c-tab-container flex">
                         <div class="left flex">
                             <el-checkbox v-model="currentPageAllChecked" @change="allCheckboxChange"></el-checkbox>
@@ -166,7 +166,7 @@
                     </div>
                     <div class="list collect-table-list" v-loading="listState.loading" v-show="listState.listType === 'table'" style="display: none;">
                         <table class="table">
-                            <thead class="thead">
+                            <thead class="thead" v-show="listState.list.length !== 0">
                                 <tr>
                                     <td width="48">序号</td>
                                     <td width="315" class="deep-border">项目名称</td>
@@ -241,7 +241,7 @@
                 width="30%">
                 <span>确定删除该标签?</span>
                 <span slot="footer" class="dialog-footer">
-                    <button class="j-t-button confirm" @click="delThisTagConfirm">确 定</el-button>
+                    <button class="j-t-button confirm active" @click="delThisTagConfirm">确 定</el-button>
                     <button class="j-t-button cancel" @click="tagDrawer.dialogShow=false">取 消</button>
                 </span>
             </el-dialog>
@@ -264,7 +264,7 @@
     <script src='{{Msg "seo" "cdn"}}/js/selector/select-level2-pc.js?v={{Msg "seo" "version"}}'></script>
     <script src='{{Msg "seo" "cdn"}}/js/selector/article-item-pc.js?v={{Msg "seo" "version"}}'></script>
     <script src='{{Msg "seo" "cdn"}}/js/selector/no-data-pc.js?v={{Msg "seo" "version"}}'></script>
-    <script src='{{Msg "seo" "cdn"}}/collection/js/index-pc.js?v={{Msg "seo" "version"}}'></script>
+    <script src='{{Msg "seo" "cdn"}}/frontRouter/pc/collection/js/index-pc.js?v={{Msg "seo" "version"}}'></script>
 </body>
 
 </html>

+ 194 - 126
src/web/templates/pc/entsearchindex.html

@@ -15,7 +15,7 @@
         <script src="{{Msg "seo" "cdn"}}/js/jquery.cookie.js"></script>
 		<script src="{{Msg "seo" "cdn"}}/js/public-nav.js?v={{Msg "seo" "version"}}"></script>
         
-        <link href="//cdn.jsdelivr.net/npm/element-ui@2.9.2/lib/theme-chalk/index.css" rel="stylesheet" />
+        <link href="//cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/theme-chalk/index.css" rel="stylesheet" />
         <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/css/ele-reset.css?v={{Msg "seo" "version"}}'>
         <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/css/selector/selector.css?v={{Msg "seo" "version"}}'>
         <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/pccss/ent-search-index-pc.css?v={{Msg "seo" "version"}}'>
@@ -31,169 +31,237 @@
 	<body>
 	{{include "/common/pchead.html"}}
 	<section class="search-container">
-        <div class="search-header">
-            <div class="search-header-content w">
-                <div class="search-header-top">
-                    <div class="input-container flex">
-                        <el-input placeholder="请输入内容" v-model="searchContent" clearable>
-                            <template slot="append">
-                                <div class="search-button no-select" @click="doSearch">搜 索</div>
-                            </template>
-                        </el-input>
-                        <div class="filter-button no-select" @click="isFilterShow">
-                            <span>筛选</span>
-                            <span class="el-icon-arrow-up" :class="filterShow ? '' : 'rotate180'"></span>
+        <div class="vue-search-container" v-cloak>
+            <div class="search-header">
+                <div class="search-header-content w">
+                    <div class="search-header-top">
+                        <div class="input-container flex">
+                            <el-input
+                                placeholder="请输入内容"
+                                v-model.trim="searchContent"
+                                clearable
+                                @focus="preSearch.focus=true"
+                                @blur="preSearch.focus=false"
+                                @input="getPreSearchList"
+                                @keyup.enter.native="doSearch">
+                                <template slot="append">
+                                    <div class="search-button no-select" @click="doSearch">搜 索</div>
+                                </template>
+                            </el-input>
+                            <div class="filter-button no-select" @click="isFilterShow">
+                                <span>筛选</span>
+                                <span class="el-icon-arrow-up" :class="filterShow ? '' : 'rotate180'"></span>
+                            </div>
+                            <div class="pre-search-list" style="display: none;" v-show="preSearchListShow" @mouseout="preSearch.hover=false" @mouseover="preSearch.hover=true">
+                                <div
+                                    class="pre-search-item ellipsis"
+                                    v-for="(item,index) in preSearch.list"
+                                    :key="index"
+                                    @click="toDetail(item.entId)"
+                                    >${ item.name }</div>
+                            </div>
                         </div>
-                    </div>
-                    <div class="search-right-wx">
-                        <img src="{{Msg "seo" "cdn"}}/images/biddingSearch/sea-right-wx.png" />
-                        <div class="search-right-wx-inner">
-                            <div class="wx-inner-title">扫码关注剑鱼标讯</div>
-                            <div class="wx-inner-ewm">
-                                <img id="keyImg" src="/front/share/{{.T.shareid}}"/>
+                        <div class="search-right-wx">
+                            <img src="{{Msg "seo" "cdn"}}/images/biddingSearch/sea-right-wx.png" />
+                            <div class="search-right-wx-inner">
+                                <div class="wx-inner-title">扫码关注剑鱼标讯</div>
+                                <div class="wx-inner-ewm">
+                                    <img id="keyImg" src="/front/share/{{.T.shareid}}"/>
+                                </div>
+                                <div class="wx-inner-bottom">微信扫一扫<br>随时随地掌握招标信息</div>
                             </div>
-                            <div class="wx-inner-bottom">微信扫一扫<br>随时随地掌握招标信息</div>
                         </div>
                     </div>
-                </div>
-                <div class="search-header-bottom">
-                    <el-tabs v-model="tabActive">
-                        <el-tab-pane label="招标搜索" name="zb"></el-tab-pane>
-                        <el-tab-pane label="企业搜索" name="qy"></el-tab-pane>
-                    </el-tabs>
-                </div>
-            </div>
-        </div>
-        <div class="search-content w">
-            <div class="selector-card-container search-filters">
-                <div class="selector-card">
-                    <div class="selector-card-header">搜索范围:</div>
-                    <div class="selector-card-content">
-                        <choice-list-component :list="searchTypeList" @change="searchTypeChange"></choice-list-component>
+                    <div class="search-header-bottom">
+                        <el-tabs v-model="tabActive">
+                            <el-tab-pane label="招标搜索" name="zb"></el-tab-pane>
+                            <el-tab-pane label="企业搜索" name="qy"></el-tab-pane>
+                        </el-tabs>
                     </div>
                 </div>
-                <div class="selector-card">
-                    <div class="selector-card-header">注册地:</div>
-                    <div class="selector-card-content">
-                        <area-city-component @change="areaCityChange"></area-city-component>
+            </div>
+            <div class="search-content w">
+                <div class="selector-card-container search-filters">
+                    <div class="selector-card">
+                        <div class="selector-card-header">搜索范围:</div>
+                        <div class="selector-card-content">
+                            <select-list-component
+                                ref="searchType"
+                                :list="searchTypeList"
+                                select-button-type="checkbox"
+                                :show-all-button="false"
+                                @change="searchTypeChange"
+                            ></select-list-component>
+                        </div>
                     </div>
-                </div>
-                <div class="selector-card price">
-                    <div class="selector-card-header">注册资本:</div>
-                    <div class="selector-card-content">
-                        <choice-list-component :multi="false" :list="priceList" @change="inexactPriceChange"></choice-list-component>
-                        <price-component @confirm="exactPriceChange"></price-component>
+                    <div class="selector-card">
+                        <div class="selector-card-header">注册地:</div>
+                        <div class="selector-card-content">
+                            <area-city-component @change="areaCityChange"></area-city-component>
+                        </div>
                     </div>
-                </div>
-                <div class="selector-card">
-                    <div class="selector-card-header">企业类型:</div>
-                    <div class="selector-card-content">
-                        <choice-list-component :multi="false" :list="entTypeList" @change="entTypeChange"></choice-list-component>
+                    <div class="selector-card price">
+                        <div class="selector-card-header">注册资本:</div>
+                        <div class="selector-card-content">
+                            <select-list-component
+                                ref="entCapital"
+                                select-button-type="checkbox"
+                                :list="priceList"
+                                :show-all-button="false"
+                                @change="inexactPriceChange"
+                            ></select-list-component>
+                            <price-component @confirm="exactPriceChange"></price-component>
+                        </div>
                     </div>
-                </div>
-                <div class="selector-card">
-                    <div class="selector-card-header">企业状态:</div>
-                    <div class="selector-card-content">
-                        <choice-list-component :multi="false" :list="entStateList" @change="entStateChange"></choice-list-component>
+                    <div class="selector-card">
+                        <div class="selector-card-header">企业类型:</div>
+                        <div class="selector-card-content">
+                            <select-list-component
+                                select-button-type="checkbox"
+                                :list="entTypeList"
+                                :show-all-button="false"
+                                @change="entTypeChange"
+                            ></select-list-component>
+                        </div>
                     </div>
-                </div>
-                <div class="selector-card vip filter-zbly">
-                    <div class="selector-card-header">
-                        <span>招标领域筛选条件</span>
-                        <span class="icon-hot-vip"></span>
+                    <div class="selector-card">
+                        <div class="selector-card-header">企业状态:</div>
+                        <div class="selector-card-content">
+                            <select-list-component
+                                select-button-type="checkbox"
+                                :list="entStateList"
+                                :show-all-button="false"
+                                @change="entStateChange"
+                            ></select-list-component>
+                        </div>
                     </div>
-                    <div class="selector-card-content flex mini-select">
-                        <el-select v-model="filterState.zbArea" filterable @change="zbFilterChange" clearable placeholder="中标区域">
-                            <el-option
-                                v-for="item in zblyFilterOption.zbAreaOptions"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value">
-                            </el-option>
-                        </el-select>
-                        <el-select v-model="filterState.dwlx" @change="zbFilterChange" clearable placeholder="单位类型">
-                            <el-option
-                                v-for="item in zblyFilterOption.dwlxOptions"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value">
-                            </el-option>
-                        </el-select>
-                        <el-select v-model="filterState.lxfs" @change="zbFilterChange" clearable placeholder="联系方式">
-                            <el-option
-                                v-for="item in zblyFilterOption.lxfsOptions"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value">
-                            </el-option>
-                        </el-select>
+                    <div class="selector-card vip filter-zbly">
+                        <div class="selector-card-header">
+                            <span>招标领域筛选条件</span>
+                            <span class="icon-hot-vip"></span>
+                        </div>
+                        <div class="selector-card-content flex mini-select">
+                            <el-select v-model="filterState.biddingArea" @change="zbFilterChange" clearable placeholder="中标区域">
+                                <el-option
+                                    v-for="item in zblyFilterOption.zbAreaOptions"
+                                    :key="item.value"
+                                    :label="item.label"
+                                    :value="item.value">
+                                </el-option>
+                            </el-select>
+                            <el-select v-model="filterState.entClass" @change="zbFilterChange" clearable placeholder="单位类型">
+                                <el-option
+                                    v-for="item in zblyFilterOption.dwlxOptions"
+                                    :key="item.value"
+                                    :label="item.label"
+                                    :value="item.value">
+                                </el-option>
+                            </el-select>
+                            <el-select v-model="filterState.entContact" @change="zbFilterChange" clearable placeholder="联系方式">
+                                <el-option
+                                    v-for="item in zblyFilterOption.lxfsOptions"
+                                    :key="item.value"
+                                    :label="item.label"
+                                    :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </div>
                     </div>
                 </div>
-            </div>
-            <div class="search-result-container">
-                <div class="ent-info-list">
-                    <div class="ent-info-item">
-                        <div class="ei-i-left">
-                            <div class="ei-i-l-container">
-                                <!-- <img src="" alt=""> -->
-                            </div>
-                        </div>
-                        <div class="ei-i-right">
-                            <div class="ei-r-title-container flex">
-                                <div class="ei-r-title">北京剑鱼信息技术有限公司</div>
-                                <div class="ei-r-tag">存续</div>
+                <div class="search-result-container">
+                    <div class="ent-info-list" v-loading="listState.loading">
+                        <div
+                            class="ent-info-item"
+                            :class="{
+                                hover: !item.showMask
+                            }"
+                            v-for="(item,index) in listState.list"
+                            @click="toDetail(item.id)"
+                            :key="item.id">
+                            <div class="ei-i-left">
+                                <div class="ei-i-l-container">
+                                    <img src="" alt="">
+                                </div>
                             </div>
-                            <div class="ei-r-info-container">
-                                <div class="ei-r-info-item">
-                                    <div class="i-label">法定代表人:</div>
-                                    <div class="i-text">xxxxx</div>
+                            <div class="ei-i-right">
+                                <div class="ei-r-title-container flex">
+                                    <div class="ei-r-title">${ item.company_name }</div>
+                                    <div class="ei-r-tag" v-if="item.company_status">${ item.company_status }</div>
                                 </div>
-                                <div class="ei-r-info-item">
-                                    <div class="i-label">注册资本:</div>
-                                    <div class="i-text">xxxxx</div>
+                                <div class="ei-r-info-container">
+                                    <div class="ei-r-info-item">
+                                        <div class="i-label">法定代表人:</div>
+                                        <div class="i-text">${ item.legal_person ? item.legal_person : '-' }</div>
+                                    </div>
+                                    <div class="ei-r-info-item">
+                                        <div class="i-label">注册资本:</div>
+                                        <div class="i-text">${ calcListItemForCap(item.capital) }</div>
+                                    </div>
                                 </div>
-                            </div>
-                            <div class="ei-r-info-container">
-                                <div class="ei-r-info-item">
-                                    <div class="i-label">地址:</div>
-                                    <div class="i-text">xxxxx</div>
+                                <div class="ei-r-info-container">
+                                    <div class="ei-r-info-item">
+                                        <div class="i-label">地址:</div>
+                                        <div class="i-text">${ item.company_address ? item.company_address : '-' }</div>
+                                    </div>
                                 </div>
                             </div>
+                            <div @click.stop.prevent class="list-item-mask" v-if="item.showMask">
+                                <p>${ buttonText }会员,查看更多搜索结果</p>
+                                <button class="j-t-button confirm active" @click="openVipPage">
+                                    去${ buttonText }
+                                </button>
+                            </div>
                         </div>
+                        <no-data style="display: none;" v-show="listState.list.length === 0 && listState.loaded" tip-text="没有找到符合条件的企业"></no-data>
                     </div>
                 </div>
+                <div class="el-pagination-container">
+                    <el-pagination
+                        background
+                        layout="prev, pager, next, ->"
+                        :hide-on-single-page="true"
+                        :current-page="listState.pageNum"
+                        :page-size="listState.pageSize"
+                        :total="listState.total"
+                        @current-change="onPageChange"
+                    ></el-pagination>
+                </div>
             </div>
-            <div class="el-pagination-container">
-                <el-pagination
-                    background
-                    layout="prev, pager, next, ->"
-                    :hide-on-single-page="true"
-                    :current-page="listState.pageNum"
-                    :page-size="listState.pageSize"
-                    :total="listState.total"
-                    @current-change="onPageChange"
-                ></el-pagination>
-            </div>
+            <div class="search-footer w"></div>
+            <el-dialog
+                title="您暂无使用权限"
+                :visible.sync="powerDialogShow"
+                custom-class="j-el-confirm"
+                :show-close="false"
+                top="25vh"
+                width="30%">
+                <span>开通超级订阅,全国企业随手查,搜索信息更高效!</span>
+                <span slot="footer" class="dialog-footer">
+                    <button class="j-t-button confirm active" @click="openVipPage">去开通</el-button>
+                    <button class="j-t-button cancel" @click="powerDialogShow=false">取 消</button>
+                </span>
+            </el-dialog>
         </div>
-        <div class="search-footer w">footer</div>
     </section>
 
     {{include "/common/pcbottom.html"}}
     {{include "/common/baiducc.html"}}
 
-    <script src="//cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>
-    <script src="//cdn.jsdelivr.net/npm/element-ui@2.9.2/lib/index.js"></script>
+    <script src="//cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.min.js"></script>
+    <script src="//cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script>
     <script src="{{Msg "seo" "cdn"}}/big-member/js/utils.js?v={{Msg "seo" "version"}}"></script>
     <script>
         var pageInfo = {
             searchContent: {{.T.searchvalue}},
         }
+        haslogin({{.T.logid}})
 	</script>
     <script src='{{Msg "seo" "cdn"}}/common-module/selector/js/china_area.js'></script>
     <script src='{{Msg "seo" "cdn"}}/common-module/selector/js/provinceMap.js'></script>
-    <script src='{{Msg "seo" "cdn"}}/js/selector/choice-list-pc.js?v={{Msg "seo" "version"}}'></script>
+    <script src='{{Msg "seo" "cdn"}}/js/selector/select-list-pc.js?v={{Msg "seo" "version"}}'></script>
     <script src='{{Msg "seo" "cdn"}}/js/selector/area-city-pc.js?v={{Msg "seo" "version"}}'></script>
     <script src='{{Msg "seo" "cdn"}}/js/selector/price-pc.js?v={{Msg "seo" "version"}}'></script>
+    <script src='{{Msg "seo" "cdn"}}/js/selector/no-data-pc.js?v={{Msg "seo" "version"}}'></script>
     <script src='{{Msg "seo" "cdn"}}/js/ent-search-index-pc.js?v={{Msg "seo" "version"}}'></script>
 </body>
 

+ 153 - 337
src/web/templates/weixin/search/mainSearch.html

@@ -69,6 +69,13 @@
 <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}"/>
 <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/css/merge-wx.css?v={{Msg "seo" "version"}}"/>
 <script type="text/javascript" src="{{Msg "seo" "cdn"}}/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
+
+<link href='{{Msg "seo" "cdn"}}/common-module/ent-search/j-icon.css?v={{Msg "seo" "version"}}' rel="stylesheet"/>
+<link href='{{Msg "seo" "cdn"}}/common-module/ent-search/ent-search-template.css?v={{Msg "seo" "version"}}' rel="stylesheet"/>
+<link rel="stylesheet" href=//cdn.jsdelivr.net/npm/reset-css@4.0.1/reset.min.css />
+<link rel="stylesheet" href=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/index.css />
+<link rel="stylesheet" href=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/icon/local.css />
+
 <title>搜索</title>
 <script type="text/javascript">
   var adv_url = "/datareport/page/introduce";
@@ -115,8 +122,9 @@
         // 切换上下三角
        $('.selected-export .options .search-title').find('i').removeClass('icon-zhankai').removeClass('icon-shouqi').addClass('icon-zhankai');
        $('.selected-export .options .show-list').find('i').removeClass('icon-zhankai').removeClass('icon-shouqi').addClass('icon-zhankai');
-        $('.weui-mask').hide();
-		if(getWxVersion()!=null){
+       $('.weui-mask').hide();
+      $('.app-layout-content-b').css({"overflow":"auto"});
+      if(getWxVersion()!=null){
 			window.ontouchmove=function(e){
 		        //e.preventDefault && e.preventDefault();
 		        //e.returnValue=true;
@@ -382,9 +390,98 @@
 			background-color: transparent;
 		}
 	</style>
+    <style>
+        #dqbtn{
+            width: 5.5em !important;
+        }
+        html,body{
+            background: #fff;
+        }
+        body .loading_,body .loading_Top{
+            margin-top:0px;
+        }
+        .home .home_data .data_list .list_title p {
+            transition: all 1s;
+        }
+        .custom-toast .weui-toast {
+            font-size: 0.3rem;
+            padding: 0.2rem;
+            width: auto;
+            max-width: 6rem;
+            min-height: 0;
+            height: auto;
+            top: 50%;
+            left: 50%;
+            margin-left: 0;
+            margin-top: -0.47rem;
+            transform: translateX(-50%) translateY(-50%);
+        }
+
+        .custom-toast .weui-icon_toast {
+            display: none;
+        }
+
+        .custom-toast .weui-toast__content {
+            margin: 0;
+        }
+
+        .p13 .resnumb .two-group,
+        .p13 .two-group {
+            display: flex;
+            flex-direction: row;
+            justify-content: space-between;
+            width: 100%;
+        }
+
+        .flow-start-box {
+            padding-left: 0.36rem;
+            flex-shrink: 0;
+            height: 0.48rem;
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+            justify-content: center;
+        }
+
+        .flow-start-box.fill .icon-flow-start {
+            background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAALxSURBVHgB7VhNbtNAFP7GSRwKAiIugLOCrpqyA4REbgAngJ6g6glQbwAnAE4APUErIWBHs0NiU3MCAqWlJc08vrEcNz+OZ+zxohL9JNujGc+bL9+b9+Y5wP8E+YRN+YjnuIiQD3hMcpJcbKMmBKgLCi+ydmOq7YlaCCaKqSnVhGrWpGI9CgZ4ttBXk4oKnpBdRAhxkDuo0VePsAcP+CsYFihVg4peChaqN4Gnin4Khg4KeapYWUEn9SbwULG6gmEJZTxULFRQPlOlEXr8GRGv2+yKmON6ck1FaHPqiUAdC0pgwBWHyVPjO20NaHeoHvJpI5i4rI3NCYnkmQdqLremhNc0csjbCL4w5GM+Y5zileonbTSz4RZemxPAZkXaapHwzeBcTY2q6KXCmO3T5f1Jaj6FwlsnM+GS/isK0gnqOZsU3kyamTnuA9O5YZlIpQu2bep+ueqVXjfUA7yfXnIGySEf4B2bnYWxkK/fcFx8TJf/LOFyYfAIns6no9zVWNOZvbA7T5LRC6yUUMcE0BFvp7CTU8yVOdGcu2PSF/u8hjMDTZSDcfl1i8sLyKUm8pFLslVxb5GgmK0RlCNXSHCBZAt+COei3IGclWBGMsA61YvhC+NyQ7LBJNzAuo1cOsUOdR+xXlE7qANcUbexY2y6vO687YNA1kQ8C3Bh6vnF6wxrrlOcCZJcDz4YkdhhlhedbTm5WA6SfNhBFRjVjhaSdke+JNVRPQTPTlBNPaPaDxL7k1OS/WbgOcDJxYEKyhE0qh0jn1hmdEk5NwfXPRjBFbN7bTmUW6A4udhEsPUlJXtjrft0aZ/kYtjh5BUnBYsjWAZjLVut1ZkqpJv+y2W+RaIlE5f1z8Ca2P5+Q68pwf7iiMRay3Zz9by4zEMh0RVE6h6/TQpgP+rG8+lFhoyBreCOdG3kkvkshHmZEt4Uw/HMoEMklyjQSUxjm98d3cZd/RIlkRGlDcDtmHPG6Cv/TtuvmKhzYD5n06L4Epe48PgHEbMB7isFmsoAAAAASUVORK5CYII=");
+
+        }
+        .icon-flow-start {
+            background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAPJSURBVHgB7ZhdctowEMd3hcgzPUHICUJvADdon5svJpiZTB+SniDhBE2eMsVkgNA8d3ICcoPSE4ScoPStg22puzYC4zogwHnoNP+ZjCxbkn9e7a42APxParZ6p83m7RFkKISMdO32yhKhH3a0X3Gc6gNkIAEZieDOpx2U55CRMgFk61FTjt0qu267DBkoE8A84uGsp0dhk5EVNwa8vm4XNegjvkbEjtJ4NXmUiRU3Bszn81NLeWOvsSX9yyytuBFg0nonJ9VhtVod0b3uZMjGVtwIMGk9cx146nI6aEMrrg2YZj3zLLzWkIkV1wZ8znpGvu9fTDsbWHHhScJWEnlZAq2LUojtgFqaUkLgdrIAWa92vFdNm++6vQ69IZaCcMABJBAHvlJPCoKB0jD6WK8OYBkgw2xt5U/TIBbJ9/yd+PYmP1Dm5SNYCQfkMsMc4nA89q7MmtI8poXaSutyRKxTFuDUgUNEPQCNvxS3QTB4Do7Fz8iKFS10UStdRBS7tH4Rwo/HQmJ9MgqUiAFyMrdDN97NAdICXRRYnvsiVFdC48jz/IUgi+Q4+w9p99vtdsH3ZUkRmEBxyIDmGblAZ0oRn8SlEkG2Zw/xqFbb68ILqtX6ekhb2zF9MlS1Xj/ozBgScvngR/3NbMFLQs7DkQtpfJ+0eGoUN5vtEopc/yUhk3BaBZV6SjSn5kEeyBPMmcoLuTe9zGo89+bu3AaOtTAPJi1Joy+c4/0GbAhHjnZhAxe9comyhFwVLnqdhTjh5vK5PvliMZokirXahydYQfGkTYfA0POCik3qsjqLo4X0/aQ7WhUutkbo0wrw3javWhcLZLXdyeUA1hTtwDBqYdd2zgrVTJTpqTgYwpoKtPoxuSzZzrEC5GPJBEmgpi9ZQ2isX2i17rZtZkibQb/pzJSTcBJUIqWNCc9WJU85kLg+TPMxrlRMGRKAekvNUl+2AhTh9kaEUs77oAHzAzijboESMBezZUrsHX/sd+OgXHRQJEcdbVfOWW0xlVjFyeWI/ykyYHy6+AGlDg0XDGfGay6n6B6B9r+4t2fmfjySc8IuUOwAExHMPxKlgD1Qv8J/XHgaUCqdPtO5+zj7USnyQ63RKlCsErXbuv0ZBQlXvVBIVNtUwMKnZBXSvCEgDecmuUcvYx8MLchwI6e2/2bZuy2POvn974l6qBQ04rVb6vwU0Nkay0+kpUESoCzMD+K6TTRqzv4lWKh+HH5AJw3UJpKX+qCcA4OGzAU7jrNnBZcErdcOdngN46OZiavsKFlnIy4c2HXgVa/6B/QH9KsAvtIf+2MAAAAASUVORK5CYII=");
+            width: 0.4rem;
+            height: 0.4rem;
+            background-size: 100% 100%;
+            background-repeat: no-repeat;
+            background-position: center;
+            transition: all 0.2s;
+        }
+
+        .icon-zuojiantou:before {
+            content: "\A7";
+        }
+        .icon-bofangjilu:before {
+            content: "\B7";
+        }
+        .icon-shujudaochu:before {
+            content: "\BA";
+        }
+        .icon-zhankai:before {
+            content: "\B9";
+        }
+        .icon-shouqi:before {
+            content: "\B8";
+        }
+        .icon-xuanzhong:before {
+            content: "\BB";
+        }
+
+    </style>
 </head>
 <body  style="min-height:100vh;" class="p13">
-
+<div id="jyKeepComponent">
+    <keep-component ref="vKeepComponent" @on-change-keep="changeKeepStatus" :bid="nowOpenBid" :first="false"></keep-component>
+</div>
 <div class="modal fade" data-backdrop="static"  id="homePageTap" style="display: none;align-items: center;justify-content: center;" tabindex="-1" role="dialog">
   <div class="modal-dialog" role="document">
     <div class="modal-content" style="background: unset;margin:auto;/*top: 3rem;*/">
@@ -581,341 +678,12 @@
 		</ul>
 	</section>
 </section>
-<!--超级搜索页面-->
-<section id="supersearchPage" class="hidden">
-	<div class="loading_" style="display: none;">
-	    <p><span></span></p>
-	</div>
-	<form class="wxhead" action="">
-		<div class="searchhead">
-			<input class="form-control searchinput" name="super_searchinput" maxlength ="50"  placeholder="示例:税务局 软件"/>
-			<div class="inputDiv hidden">
-				<div class="inpTitle_history"><img src="{{Msg "seo" "cdn"}}/images/search/history.png"><span>历史搜索</span><img id="del_history" src="/images/search/history_clean.png"></div>
-				<div>
-					<ul class="history"></ul>
-				</div>
-				<div style="clear: both"></div>
-<!--				<div class="inpTitle_msgset"><img src="{{Msg "seo" "cdn"}}/images/search/msgset.png"><span>我订阅的关键词</span></div>
-				<div>
-					<ul class="myMsgset"></ul>
-				</div>-->
-			</div>
-			<span class="screen text-center">筛选</span>
-			<span class="query hidden"><img src="{{Msg "seo" "cdn"}}/images/wx/jywxjs.png"></span>
-			<span class="clearInpt hidden"><img src="{{Msg "seo" "cdn"}}/images/wx/jyqingchu.png"></span>
-		</div>
-	</form>
-	<div>
-		<div class="selLable hidden" id="selLable">
-			<div class="selected-export-box">
-                <div class="selected-export">
-                    <div class="options">
-                        <span class="search-title active" index="1">
-                            <em>标题搜索</em>
-                            <i class="iconfont icon-zhankai"></i>
-                        </span>
-                        <span class="show-list active" index="2">
-                            <em>列表显示</em>
-                            <!-- icon-shouqi -->
-                            <i class="iconfont icon-zhankai"></i>
-                        </span>
-                    </div>
-                    <div class="export">
-                        <span>
-                            <i class="iconfont icon-shujudaochu"></i>
-                            <em id="wx-mainSearch-dataExport">数据导出</em>
-                        </span>
-                    </div>
-                </div>
-                <div class="newdialog">
-                    <div class="tab-box">
-                        <ul class="sub-tab sub-search-title" index="1"  style="display: none">
-                            <li class="active" dataVal="searchtitle">
-                                <span>标题搜索</span>
-                                <i class="weui-icon-success-no-circle"></i>
-                            </li>
-                            <li dataVal="searchall">
-                                <span>全文搜索</span>
-                                <i class="weui-icon-success-no-circle"></i>
-                            </li>
-                        </ul>
-                        <ul class="sub-tab sub-show-list" index="2" style="display: none">
-                            <li class="active" dataVal="showlist">
-                                <span>列表显示</span>
-                                <i class="weui-icon-success-no-circle"></i>
-                            </li>
-                            <li dataVal="showtable">
-                                <span>表格显示</span>
-                                <i class="weui-icon-success-no-circle"></i>
-                            </li>
-                        </ul>
-                    </div>
-                </div>
-            </div>
-            <div class="weui-mask" style="display: none"></div>
-			<div class="com-title" style="display:none;"><!--height:30px; margin-top:20px;-->
-				<span id="search_title" class="on">标题搜索</span><!--<span style="float:left;">|</span>--><span id="search_all">全文搜索</span>
-			</div>
-			<div class="line-vertical" style="display:none;">
-			</div>
-			<div class="showType" style="display:none;">
-				<div class="showlist on">列表</div>
-				<div class="showtable">表格</div>
-			</div>
-		</div>
-		<div id="intercept" class="hidden">
-			<img src="{{Msg "seo" "cdn"}}/images/tip.png"><font>“的方式”</font>及其后面的字词均被忽略,因为剑鱼标讯的查询限制在20个汉字以内。
-		</div>
-		<div class="wxsearch hidden" id="super_search">
-			<div class="jysstj">
-				<div class="jyshaxuan">
-					<div class="shaixIndustry shaixcl">行业</div>
-					<div class="shaixMoney">金额</div>
-					<div class="shaixpt">时间</div>
-					<div class="shaixone">地区</div>
-					<div class="shaixtwo">类型</div>
-				</div>
-				<div class="industry-dialog">
-					<div class="dialog-content contentthree">
-
-					</div>
-				</div>
-				<!-->金额<-->
-				<div class="money-dialog hidden"  style="overflow-y: scroll;height: 150px;">
-					<ul style="height: 180px;">
-						<li><button data-value="all" class="btn active">全部</button></li>
-						<li>价格区间</li>
-						<li class="money-inp" data-value="">
-							<div class="min-price">
-								<input class="form-control minMrice" type="text"/>
-								<span class="min-unit">万元</span>
-								<span class="fgx"></span>
-							</div>
-							<div class="max-price">
-								<input class="form-control maxMrice"  type="text"/>
-								<span class="max-unit">万元</span>
-							</div>
-						</li>
-					</ul>
-				</div>
-				<div class="jypt-dialog hidden">
-					<div class="jypt-pt">
-						<button type="button" data-value="" class="btn jypt-active">全部</button>
-						<button type="button" data-value="lately-7" class="btn">最近7天</button>
-						<button type="button" data-value="lately-30" class="btn">最近30天</button>
-						<button type="button" data-value="thisyear" class="btn">去年</button>
-					</div>
-					<div class="jypt-timeinputs">
-						<input type="text" name="starttime" readonly="readonly" id="starttime" data-value="">
-						<div class="jypt-fg">
-							<span></span>
-						</div>
-						<input type="text" name="endtime" readonly="readonly" id="endtime" data-value="">
-					</div>
-				</div>
-				<div class="jydq-dialog hidden">
-					<div class="dialog-content contentone">
-						<ul>
-							<li>
-								<button class="btn active">全国</button>
-							</li>
-							<li>
-								<span>A</span>
-								<button class="btn">安徽</button>
-								<button class="btn">澳门</button>
-							</li>
-							<li>
-								<span>B</span>
-								<button class="btn">北京</button>
-							</li>
-							<li>
-								<span>C</span>
-								<button class="btn">重庆</button>
-							</li>
-							<li>
-								<span>F</span>
-								<button class="btn">福建</button>
-							</li>
-							<li>
-								<span>G</span>
-								<button class="btn">广东</button>
-								<button class="btn">广西</button>
-								<button class="btn">贵州</button>
-								<button class="btn">甘肃</button>
-							</li>
-							<li>
-								<span>H</span>
-								<button class="btn">河北</button>
-								<button class="btn">湖北</button>
-								<button class="btn">黑龙江</button>
-								<button class="btn">海南</button>
-								<button class="btn">河南</button>
-								<button class="btn">湖南</button>
-							</li>
-							<li>
-								<span>J</span>
-								<button class="btn">吉林</button>
-								<button class="btn">江苏</button>
-								<button class="btn">江西</button>
-							</li>
-							<li>
-								<span>L</span>
-								<button class="btn">辽宁</button>
-							</li>
-							<li>
-								<span>N</span>
-								<button class="btn">内蒙古</button>
-								<button class="btn">宁夏</button>
-							</li>
-							<li>
-								<span>Q</span>
-								<button class="btn">青海</button>
-							</li>
-							<li>
-								<span>S</span>
-								<button class="btn">山西</button>
-								<button class="btn">陕西</button>
-								<button class="btn">上海</button>
-								<button class="btn">山东</button>
-								<button class="btn">四川</button>
-							</li>
-							<li>
-								<span>T</span>
-								<button class="btn">天津</button>
-								<button class="btn">台湾</button>
-							</li>
-							<li>
-								<span>X</span>
-								<button class="btn">西藏</button>
-								<button class="btn">新疆</button>
-								<button class="btn">香港</button>
-							</li>
-							<li>
-								<span>Y</span>
-								<button class="btn">云南</button>
-							</li>
-							<li>
-								<span>Z</span>
-								<button class="btn">浙江</button>
-							</li>
-						</ul>
-					</div>
-				</div>
-				<div class="jytype-dialog hidden">
-					<div class="dialog-content contenttwo">
-						<ul>
-							<li>
-								<button class="btn active">全部</button>
-							</li>
-							<li>
-								<div id="dqbtn" style="width:81px;position:relative;float:left;" data-value="拟建">拟建项目</div><img style="float:left;" class="q-mark" src="{{Msg "seo" "cdn"}}/images/wx/q-mark.png"/>
-								<button class="btn hidden" style="clear:both;">拟建</button>
-							</li>
-							<li>
-								<div id="dqbtn" style="width:81px;" data-value="预告">招标预告</div>
-								<button class="btn hidden">预告</button>
-							</li>
-							<li>
-								<div id="dqbtn" style="width:81px;" data-value="招标">招标公告</div>
-								<button class="btn">招标</button>
-								<button class="btn">邀标</button>
-								<button class="btn">询价</button>
-								<button class="btn">竞谈</button>
-								<button class="btn">单一</button>
-								<button class="btn">竞价</button>
-								<button class="btn">变更</button>
-								<button class="btn">其他</button>
-							</li>
-							<li>
-								<div id="dqbtn" style="width:81px;" data-value="结果">招标结果</div>
-								<button class="btn">中标</button>
-								<button class="btn">成交</button>
-								<button class="btn">废标</button>
-								<button class="btn">流标</button>
-							</li>
-							<li>
-								<div id="dqbtn" style="width:7.5em !important;" data-value="其它">招标信用信息</div>
-								<button class="btn">合同</button>
-								<button class="btn">验收</button>
-								<button class="btn">违规</button>
-							</li>
-						</ul>
-					</div>
-				</div>
-			</div>
-			<div class="jyshxbottom sl-jyshxbottom">
-				<ul class="text-center j-button-group">
-					<li class="jydqreset j-button-cancel">重置</li>
-					<li class="jydqsure j-button-confirm">确定</li>
-				</ul>
-			</div>
-		</div>
-		<div id="wrapper" class="hidden">
-			<div id="list" ></div>
-			<div id="table" class="hidden">
-				<div class="data">
-                    <table class="content">
-                        <!--
-                        <tr>
-                            <td><div>序号</div></td>
-                            <td><div>发布时间</div></td>
-                            <td><div>公告类型</div></td>
-                            <td><div>招标单位</div></td>
-                            <td><div>项目名称</div></td>
-                            <td><div>预算<br>(万元)</div></td>
-                            <td><div>开标时间</div></td>
-                            <td><div>中标单位</div></td>
-                            <td><div>中标金额<br>(万元)</div></td>
-                        </tr>
-                        -->
-                    </table>
-                </div>
-				<div class="TableTip" id="TableTip" style="display:none;"><img class="tableclose" src="{{Msg "seo" "cdn"}}/images/table_close.png"><div class="TableText">推荐使用电脑浏览器访问剑鱼标讯网站<br>jianyu360.com查看数据表格,体验更佳。</div></div>
-			</div>
-      <div class="shade_table">
-        <div class="more" onclick="toSearchExport()">
-          查看更多
-        </div>
-      </div>
-			<div class="resbm ">
-				<div class="rests"><p>如果您对以上结果满意可【直接订阅】</p><p>更有超级订阅等你试用。<p></div>
-				<div class="resdy" id="zjdy">直接订阅</div>
-				<div class="dy_close"><img src="{{Msg "seo" "cdn"}}/images/search/dy_close.png"/></div>
-				<div style="clear:both"></div>
-			</div>
-			<!--<div onclick="window.location.href='/supportJy'" style="font-size:15px;background-color: #FFB900;line-height: 50px;z-index: 2000;color: #fff;bottom: 0px;right: 0px;left:0px;position: fixed;"><img src="{{Msg "seo" "cdn"}}/images/search/laba.png" style="width: 23px;margin:0px 10px;">好几天没有推送消息了,真相是......</div>-->
-		</div>
-	</div>
-	<div id="working" class="hidden" style="text-align: center;position: absolute;top: 50%;left: 50%;margin-left: -81px;margin-top: -50px;"><img style="width:163px;" src="/images/wx/working.gif"><div style="font-size:16px;">剑鱼标讯正在努力工作中···</div></div>
-	<div class="nullcontent text-center hidden" style="padding-bottom: 50px;">
-		<div>
-			<img style="width:163px;margin:60px 0px 50px 0px;" src="{{Msg "seo" "cdn"}}/images/wx/jysorry_1.png">
-		</div>
-		<div style="font-size:16px;color:#1d1d1d;">
-			<span id="hasNoData_tiptext">
-				<font>没有找到和该关键词匹配的信息</font>
-				<font style="display: none;">抱歉!由于系统繁忙暂时无法进行搜索,请1分钟后再试!</font>
-				<font style="display: none;">抱歉!由于系统繁忙暂时无法进行搜索,请稍后再试!</font>
-			</span><br>
-			<div id="allSearchModel">试试<span style="color:#2cb7ca;text-decoration:underline;line-height: 30px">全文搜索</span></div>
-		</div>
-		<div style="width:100%;" class="text-center" id="feedback">
-			<img style="width: 200px;margin-top: 15px;" src="{{Msg "seo" "cdn"}}/images/wx/jyyjfk.png">
-		</div>
-		<!--<div onclick="window.location.href='/supportJy'" style="font-size:15px;background-color: #FFB900;line-height: 50px;z-index: 2000;color: #fff;bottom: 0px;right: 0px;left:0px;position: fixed;"><img src="{{Msg "seo" "cdn"}}/images/search/laba.png" style="width: 23px;margin:0px 10px;">好几天没有推送消息了,真相是......</div>-->
-	</div>
-	<div class="easypopup" id="nijianTip">
-		<div class="easypopup-alert">
-			<div class="easypopup-content">
-				“拟建项目”是指那些处于前期立项、审批阶段的项目。供应商应在立项阶段掌握项目信息,做到早介入,稳拿单。
-			</div>
-			<div class="easypopup-footer">
-				<span onclick="SuperSearch.njTipEasyPopup.hide();">我知道了</span>
-			</div>
-		</div>
-	</div>
-	<div id="tempDiv" style="display:none;"></div>
+<!--S-超级搜索-->
+<section class="hidden" id="supersearchPage">
+{{include "/weixin/search/tabSearch.html"}}
 </section>
+<!--E-超级搜索-->
+
 <!--企业搜索页面-->
 <section id="entsearchPage" class="hidden">
 	<form class="wxhead" action="">
@@ -1113,7 +881,46 @@
 	$("#advertscript").html(ADHtml);
 </script>
 </div>
+<script src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.js></script>
+<script src=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/vant.min.js></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/keep-tags/keep-tags-template.js'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/ent-search/ent-search-template.js'></script>
+<script>
+  var vKeepComponent = new Vue({
+    delimiters: ['${', '}'],
+    el: '#jyKeepComponent',
+    data: {
+      nowOpenBid: ''
+    },
+    methods: {
+      changeBid (id, type) {
+        this.nowOpenBid = id
+        this.$refs.vKeepComponent.ajaxAddKeep(id, type)
+      },
+      changeKeepStatus (type) {
+        SuperSearch.changeKeepStatus(this.nowOpenBid, type)
+      }
+    }
+  })
+</script>
 <script type="text/javascript">
+  var member_status;
+  var isMember = false;
+
+  $.ajax({
+    type:'POST',
+    url:'/bigmember/use/isAdd?t' + new Date().getTime(),
+    success: function (r) {
+      if (r && r.data) {
+
+        if ($.isArray(r.data.power)) {
+          if (r.data.power.length>0&&(r.data.power.indexOf(4) !== -1||r.data.power.indexOf(13) !== -1||r.data.power.indexOf(12) !== -1)){
+            isMember = true;
+          }
+        }
+      }
+    }
+  })
 	SuperSearch.getHomeList("",1);//获取数据
 
 	sessionStorage.removeItem("remind"); //开标提醒标识
@@ -1163,6 +970,15 @@
             window.event.returnValue = false;
 			//超级搜索
 			if(SuperSearch.isMyPage){
+              var isNowIndex = $(".tabs-box .tabs-nav .active").index()
+                if (!$(".tabs-box").hasClass('hidden') && isNowIndex !== 0) {
+                    if (isNowIndex === 1) {
+                      if (vEntSearchComponent) {
+                        vEntSearchComponent.toggleEntShow(true)
+                      }
+                    }
+                    return
+                }
 				var max=$("#supersearchPage .maxMrice").val(),min=$("#supersearchPage .minMrice").val();
 		        if(Number(max)<Number(min)&&max!=""&&min!=""){
 		            $("#supersearchPage .maxMrice").val(min);

+ 1684 - 0
src/web/templates/weixin/search/tabSearch.html

@@ -0,0 +1,1684 @@
+<!--S-当前页必定需要预加载的资源-->
+<link rel="preload" as="style" href='{{Msg "seo" "cdn"}}/jyapp/big-member/css/j-icons.css?v={{Msg "seo" "version"}}' />
+<!--E-当前页必定需要预加载的资源-->
+
+<!--S-当前页面的css资源-->
+<link rel="stylesheet" href='{{Msg "seo" "cdn"}}/jyapp/big-member/css/j-icons.css?v={{Msg "seo" "version"}}' />
+<!--E-当前页面的css资源-->
+
+<style>
+    #supersearchPage .j-icon {
+        width: 0.4rem;
+        height: 0.4rem;
+    }
+    #supersearchPage .j-icon.icon-back {
+        width: 0.48rem;
+        height: 0.48rem;
+    }
+    .search-header-box,
+    .search-win-box
+    {
+        display: flex;
+        flex-direction: row;
+        align-items: center;
+        width: 100%;
+        height: 0.72rem;
+        padding: 0 0.24rem;
+        box-sizing: border-box;
+        background: #F5F6F7;
+        border-radius: 4px;
+        font-weight: 500;
+        font-size: 0.28rem;
+        line-height: 0.4rem;
+        color: #171826;
+        transition: all 0.4s;
+    }
+    .search-header-box .base-icon,
+    .search-win-box .base-icon {
+        flex-shrink: 0;
+    }
+    .search-header-box .padding-icon,
+    .search-win-box .padding-icon {
+        padding: 0.16rem 0.24rem 0.16rem 0;
+        margin-right: -0.24rem;
+        opacity: 0;
+        transition: all 0.2s;
+    }
+    .search-header-box input,
+    .search-win-box input
+    {
+        margin: 0 0.16rem;
+        padding-left: 0;
+        caret-color:#05A6F3;
+        font-weight: 500;
+        height: 100%;
+        border: none;
+        background: transparent;
+        width: 100%;
+        font-size: 0.28rem;
+    }
+    .search-header-box input::placeholder,
+    .search-win-box input::placeholder{
+        color: #C0C4CC;
+    }
+    .special.jy-app-header.app-layout-header {
+        display: flex;
+        width: 100%;
+        justify-content: space-between;
+        align-items: center;
+        padding-left: 0;
+        padding-right: 0;
+        padding-bottom: 0.08rem;
+        border-bottom: none;
+    }
+    #special-header  .padding-box{
+        padding: 0.2rem 0.16rem 0.2rem 0.24rem;
+    }
+    .special .click-span {
+        font-weight: 500;
+        font-size: 0.28rem;
+        line-height: 0.4rem;
+        color: #2ABED1;
+        flex-shrink: 0;
+        padding: 0.2rem 0.32rem 0.2rem 0.24rem;
+    }
+    .search-header-box.m-r {
+        margin-right: 0.32rem;
+    }
+
+
+    .tabs-nav {
+        font-weight: 500;
+        font-size: 0.28rem;
+        line-height: 0.4rem;
+        text-align: center;
+        color: #5F5E64;
+        display: flex;
+        flex-direction: row;
+        align-items: center;
+        position: relative;
+    }
+    .tabs-nav > div {
+        flex: 1;
+        padding: 0.28rem 0;
+    }
+    .tabs-nav .active {
+        color: #2ABED1;
+    }
+
+    .tabs-nav .slide-line {
+        position: absolute;
+        left: calc(16.665% - 0.24rem);
+        bottom: 0.08rem;
+        width: 0.48rem;
+        height: 0.04rem;
+        display: inline-block;
+        background: linear-gradient(270.04deg, #25BEEE 0.03%, #2ABED1 74.46%);
+        border-radius: 1px;
+        transition: all 0.3s;
+    }
+    .tabs-nav .active + div + div + .slide-line {
+        left: calc(16.665% - 0.24rem);
+    }
+    .tabs-nav div + .active + div + .slide-line {
+        left: calc(49.995% - 0.24rem);
+    }
+    .tabs-nav div + div + .active + .slide-line {
+        left: calc(83.325% - 0.24rem);
+    }
+    .tabs-content-page {
+        display: none;
+    }
+    .tabs-content-page.active {
+        display: inherit;
+    }
+
+    .history-title-box {
+        display: flex;
+        flex-direction: row;
+        align-items: center;
+        justify-content: space-between;
+        font-weight: bold;
+        font-size: 0.32rem;
+        line-height: 0.48rem;
+        color: #171826;
+        box-sizing: border-box;
+        padding-left: 0.32rem;
+    }
+    .history-title-box .padding-icon,
+    #del_history.padding-icon {
+        padding: 0.32rem;
+        margin: unset;
+        float: unset;
+        width: unset;
+    }
+    .history-list-box {
+        font-weight: 500;
+        font-size: 0.28rem;
+        line-height: 0.8rem;
+        color: #171826;
+    }
+    .history-list-box li {
+        padding: 0 0.32rem;
+        box-sizing: border-box;
+        overflow: hidden;
+        white-space: nowrap;
+        text-overflow: ellipsis;
+        float: none;
+        float: unset;
+    }
+    .ent-search-list-box {
+        font-weight: 500;
+        font-size: 0.28rem;
+        line-height: 0.96rem;
+        color: #171826;
+    }
+    .ent-search-list-box li {
+        padding: 0 0.32rem;
+        box-sizing: border-box;
+        overflow: hidden;
+        white-space: nowrap;
+        text-overflow: ellipsis;
+        float: none;
+        float: unset;
+    }
+    .jy-hairline--bottom {
+        position: relative;
+    }
+    .jy-hairline--bottom::after {
+        position: absolute;
+        box-sizing: border-box;
+        content: ' ';
+        pointer-events: none;
+        top: -50%;
+        right: -50%;
+        bottom: -50%;
+        left: -50%;
+        border: 0 solid #ebedf0;
+        -webkit-transform: scale(0.5);
+        transform: scale(0.5);
+        border-bottom-width: 1px;
+    }
+    .ent-search-list-box .highlight {
+        color: #2ABED1;
+    }
+    .ent-search-list-box .jy-hairline--bottom::after {
+        margin-left: 0.32rem;
+    }
+    .hover-css--slide {
+        outline: none;
+        border: none;
+        z-index: 1;
+        position: relative;
+        font-size: inherit;
+        font-family: inherit;
+        color: #171826;
+        background: inherit;
+        padding: 0.5em 1em;
+    }
+
+    .hover-css--slide::before {
+        content: '';
+        z-index: -1;
+        position: absolute;
+        top: 0;
+        bottom: 0;
+        left: 0;
+        right: 0;
+        background-color: #E6E6E6;
+        transform-origin: center right;
+        transform: scaleX(0);
+    }
+
+    .hover-css--slide.hover {
+        cursor: pointer;
+        color: #9B9CA3;
+    }
+
+    .hover-css--slide.hover::before {
+        transform-origin: center left;
+        transform: scaleX(1);
+    }
+    .jysstj {
+        overflow: hidden;
+    }
+    #swiper-filter .j-icon {
+        width: 0.32rem;
+        height: 0.32rem;
+    }
+    .search-win-box {
+        width: auto;
+        height: 0.8rem;
+        margin: 0.18rem 0.24rem;
+        padding-left: 0.32rem;
+    }
+    #select-win-list li {
+        display: flex;
+        flex-direction: row;
+        align-items: center;
+        justify-content: space-between;
+    }
+    #select-win-list li .j-icon {
+        opacity: 0;
+    }
+    #select-win-list li.select .j-icon {
+        opacity: 1;
+    }
+    .wait-open-box {
+        overflow-y: auto;
+        padding-bottom: 1.32rem;
+    }
+
+
+
+    .choose_industry {
+        position: relative;
+        display: flex;
+        flex-direction: column;
+        justify-content: space-between;
+        height: 100%;
+    }
+
+    .choose_industry .form {
+        flex: 1;
+        overflow: scroll;
+    }
+
+    .choose_industry .slide {
+        position: absolute;
+        top: 0.4rem;
+        right: 0;
+        display: flex;
+        flex-direction: column;
+    }
+
+    .choose_industry .slide a {
+        display: inline-block;
+        width: 100%;
+        text-align: center;
+        font-size: 0.24rem;
+        line-height: 0.4rem;
+        color: #5F5E64 !important;
+        padding: 0 0.16rem;
+    }
+    .choose_industry .slide a.active {
+        color: #2ABED1 !important;
+    }
+
+    .choose_industry .select-area-box {
+        padding-bottom: .94rem;
+        background-color: #fff;
+        min-height: 100%;
+    }
+    .choose_industry .list_item {
+        width: 100%;
+    }
+    .choose_industry .list .list_item.active .item_label {
+        color: #2ABED1;
+    }
+
+    /* .choose_industry .list {
+      padding: 0 .3rem;
+    } */
+
+    .choose_industry .list .wenhao {
+        display: inline-block;
+        padding: 0 0.1rem;
+        height: .7rem;
+        line-height: .7rem;
+    }
+
+    .choose_industry .list .show_tips {
+        color: #2cb7ca;
+        font-size: .34rem;
+    }
+
+    .choose_industry .list .tips_detail {
+        width: 6.4rem;
+        padding: .2rem;
+        margin-top: -0.1rem;
+        margin-bottom: .25rem;
+        display: none;
+        box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.16);
+        text-align: justify;
+        font-size: .26rem;
+        color: #1d1d1d;
+        line-height: .4rem;
+        border-radius: 2px;
+    }
+
+    .choose_industry .list .list_item:last-of-type {
+        border-bottom: none;
+    }
+
+    .choose_industry .list .list_item .item_label {
+        padding: 0 .32rem;
+        height: .48rem;
+        line-height: .48rem;
+        background-color: #F5F6F7;
+        color: #5F5E64;
+        font-size: .28rem;
+    }
+
+    .choose_industry .list .list_item .item_industry_list {
+        display: flex;
+        flex: 1;
+        flex-wrap: wrap;
+        justify-content: flex-start;
+        padding: .25rem .3rem 0;
+    }
+
+    .choose_industry .list .list_item .item_industry_list .industry_item {
+        margin: 0 .08rem;
+        margin-bottom: .25rem;
+        padding: 0 .3rem;
+        height: .7rem;
+        line-height: .7rem;
+        font-size: .28rem;
+        color: #1d1d1d;
+        background-color: #F5F6F7;
+        border-radius: 4px;
+        min-width: 1.56rem;
+    }
+
+    .choose_industry .list .list_item .item_industry_list .industry_item.active {
+        color: #2ABED1;
+        background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHGSURBVHgB7da/T8JAFAfw11aRGNTGkKDRoUhMEBc68Adg4u4/YMRVB3Vz09EN/wQGVyNOJiamOjtUnFg0DA4OJOKvQAz2vHdSQklp77Aw+ab27rhPXrl+U4D/CrBSl2ZahiFV0ihtSCOyIcEQasko7UgEjvF64B2mjNKBjWENtEPEgMBh59jAwGXjPk8I2e0eDxzUzkx1XFXyQEjObT5QkGFTskEv073WBAYmL0xNHmOY5rUuEJAXCwQUwf4MYlRhehAAlfc3fb/4dlSJYH2DGFUygYIXtj4fhdPMIiQjYce4AoLViqojrzXbWgz2ErMQDY1C9asJt7XP9pxQh25R5YZtxWPsuvxRh5OnqmOeu0OMKortZ9QIu39vfvtim+YjvHWt8z2lnVGFWEFfYFjOfKCbNoQwLNkXw6hq5SJuhNjEiELhRPtA8GK07np22OuFRgQxRBG/qr7C2sw0D0afJylIIpgbapcvRsuSrLgsiv1u3mD/oX1weDDsrpzVK44ORaNqLhyClegknD+/eGJ0vwqRrKwDxKhS6LeHaFT5VSeG9+yR8kRVXyWRYl2ydBtjQzzpIVA12lOFfsvcEAuK5VX9unvBD+h28RDMijACAAAAAElFTkSuQmCC) no-repeat bottom right #E8FAFD;
+        background-size: 0.28rem 0.28rem;
+    }
+
+    .choose_industry .list .list_item .item_industry_list .industry_item[disabled] {
+        color: #fff;
+        background-color: #bfbfc3;
+    }
+    #js_dialog .weui-dialog{
+        border-radius: 8px;
+        left: .72rem;
+        right: .72rem;
+    }
+    #js_dialog .weui-dialog__hd{
+        padding: .48rem 0 0.16rem;
+        color: #171826;
+        font-size: .36rem;
+        line-height: .52rem;
+    }
+    #js_dialog .weui-mask {
+        z-index: 1000 !important;
+    }
+    #js_dialog .weui-dialog__bd{
+        padding-bottom: .48rem;
+        color: #5F5E64;
+        font-size: .3rem;
+        text-align: justify;
+    }
+    #js_dialog .weui-dialog__ft{
+        line-height: .92rem;
+    }
+    #js_dialog .weui-dialog__btn{
+        color: #2ABED1 !important;
+        font-size: .36rem;
+        font-weight: 500;
+    }
+    @media screen and (min-width: 352px) {
+        .weui-dialog {
+            width: auto;
+        }
+    }
+    #js_dialog .weui-dialog__btn:active {
+        background-color: #fff;
+    }
+    #super_search .jysstj {
+        height: 100%;
+        /*height: calc(100% - 21.33333vw);*/
+        /*max-height: calc(100vh - 21.33333vw);*/
+        overflow-y: scroll;
+    }
+    .wait-open-box[data-wait-open="buyer"] {
+        height: 100%;
+        height: calc(100% - 100px);
+        overflow: scroll;
+        box-sizing: border-box;
+        padding-bottom: 0;
+    }
+    body .loading_ {
+        background-color: transparent !important;
+    }
+    body .loading_ > p {
+        display: none !important;
+    }
+    .p13 .home .home_tab {
+        padding: 0;
+    }
+</style>
+
+<!--S-Loading-->
+<div class="loading_" style="display: none;">
+    <p><span></span></p>
+</div>
+<!--E-Loading-->
+<!--S-页面-->
+<div id="special-header" class="app-layout-header jy-app-header special">
+    <div class="padding-box app-back" onclick="history.back()">
+        <span class="j-icon base-icon icon-back"></span>
+    </div>
+    <form data-name="input-clear-box" class="search-header-box" action="javascript:return true">
+        <span class="j-icon base-icon icon-search"></span>
+        <input id="search-header-input" name="super_searchinput" type="search" placeholder="税务局软件">
+        <div class="padding-icon">
+            <span class="j-icon base-icon icon-delete-gray"></span>
+        </div>
+    </form>
+    <div class="click-span" id="clickFilter">
+        <span>搜索</span>
+    </div>
+</div>
+
+<div class="app-layout-content-b">
+    <!--tabs-->
+    <div class="tabs-box">
+        <div class="tabs-nav">
+            <div class="active">招标搜索</div>
+            <div>企业搜索</div>
+            <div>采购单位搜索</div>
+            <span class="slide-line"></span>
+        </div>
+        <div class="tabs-content">
+            <div class="search-one-box tabs-content-page active">
+                <div class="history-title-box">
+                    <span>历史搜索</span>
+                    <div class="padding-icon" id="del_history">
+                        <span class="j-icon base-icon icon-delete"></span>
+                    </div>
+                </div>
+                <ul class="history-list-box"></ul>
+            </div>
+            <div class="tabs-content-page">
+                <!---->
+                <div id="v-ent-ent-search-group" v-cloak>
+                    <div v-show="showEntSearch">
+                        <van-tabs @click="onClickTabs" :ellipsis="false" line-height="0" v-model="activeTabIndex">
+                            <van-tab v-for="tab in entTabs"  :key="tab.title">
+                                <template #title>
+                                    <div class="ent-search-tab-item" :class="{'ent-p-close': !showPop, 'ent-p-disabled': tab.disabled}" v-show="tab.title">
+                                        <span>@@ tab.title @@</span>
+                                        <div class="disabled-tag">开通</div>
+                                        <div class="an-icon-box">
+                                            <i class="j-icon base-icon icon-triangle-down"></i>
+                                            <i class="j-icon base-icon icon-triangle-up"></i>
+                                        </div>
+                                    </div>
+                                </template>
+                            </van-tab>
+                        </van-tabs>
+                        <div v-show="showPop" class="jy-diy-pop ent-search-pop">
+                            <div @click="togglePop(false)" class="van-overlay"></div>
+                            <div class="van-popup">
+                                <div class="popup-content">
+                                    <div class="wait-buy-tip-group" v-if="isWaitBuy">
+                                        <h3>您暂无使用权限</h3>
+                                        <p>开通超级订阅,全国企业随手查,<br>搜索信息更高效!</p>
+                                    </div>
+                                    <div class="condition-select-group" :class="{more: isMoreSelect}" v-show="conditionMap[activeTabIndex]">
+                                        <div class="condition-select-item" @click="onSelectItem(item, activeTabIndex)" v-for="(item,i) in conditionMap[activeTabIndex]" :class="{checked: item.checked}">
+                                            <div>@@item.title@@</div>
+                                            <i v-if="!isMoreSelect" class="j-icon base-icon icon-tick"></i>
+                                            <div class="more-icon-box" v-else>
+                                                <i  class="j-icon base-icon icon-tick-circle"></i>
+                                                <i  class="j-icon base-icon icon-tick-circle-fill"></i>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="pop-bottom" v-show="!isWaitBuy && isMoreSelect">
+                                    <van-button type="default" @click="resetCondition">重置</van-button>
+                                    <van-button type="primary" @click="submitCondition">确定</van-button>
+                                </div>
+                                <div class="pop-bottom" v-if="isWaitBuy">
+                                    <van-button type="default" @click="resetCondition">再想一想</van-button>
+                                    <van-button type="primary" @click="goUpBuyPage">去开通</van-button>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="ent-search-list" :class="{stop: showPop}">
+                            <van-list
+                                    v-model="listInfo.loading"
+                                    :finished="listInfo.finished"
+                                    finished-text=""
+                                    @load="onLoad"
+                            >
+                                <div class="ent-search-item" v-for="(item, i) in list" :key="i" @click="selectEnt(item)">
+                                    <div class="ent-info-top">
+                                        <div class="ent-info-head">
+                                            <span class="ent-info-status" :class="'status-' + item.status">@@statusEnum[item.status]@@</span>
+                                        </div>
+                                        <div class="ent-info-keep">
+                                            <div class="ent-row">
+                                                <div class="ent-name van-ellipsis">@@item.name@@</div>
+                                                <div class="fill-icon-box">
+                                                    <i class="j-icon base-icon icon-no-favorite"></i>
+                                                </div>
+                                            </div>
+                                            <div class="ent-more">
+                                                <div v-if="item.legal">法定代表人: <span>@@item.legal@@</span></div>
+                                                <div v-if="item.money">注册资本: <span>@@item.money@@万元</span></div>
+                                            </div>
+                                            <div class="ent-line-box"></div>
+                                        </div>
+                                    </div>
+                                    <div class="ent-info-bottom">
+                                        <div  class="ent-row ent-address">
+                                            <div class="van-multi-ellipsis--l2">@@item.address@@</div>
+                                            <i class="j-icon base-icon icon-address"></i>
+                                        </div>
+
+                                    </div>
+                                </div>
+                            </van-list>
+                            <div class="empty-tip-group" v-if="!listInfo.loading && !list.length">
+                                <div class="img-empty"></div>
+                                <span>未搜索到符合条件的企业</span>
+                            </div>
+                            <div class="up-button" @click="goUpBuyPage" v-if="showUpTip">升级会员,查看更多搜索结果</div>
+                            <div class="ent-more-tip" v-if="false">
+                                <i class="j-icon base-icon icon-up-allow"></i>
+                                <span>上拉查看更多搜索结果</span>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <!---->
+                <ul class="ent-search-list-box"  id="search-ent-list"></ul>
+                <div class="del_ent_history">
+                    <div class="history-title-box">
+                        <span>历史搜索</span>
+                        <div class="padding-icon" id="del_ent_history">
+                            <span class="j-icon base-icon icon-delete"></span>
+                        </div>
+                    </div>
+                    <ul class="history-list-box"></ul>
+                </div>
+            </div>
+            <div class="tabs-content-page">
+                <ul class="ent-search-list-box" id="search-buyer-list"></ul>
+                <div class="del_buyer_history">
+                    <div class="history-title-box">
+                        <span>历史搜索</span>
+                        <div class="padding-icon" id="del_buyer_history">
+                            <span class="j-icon base-icon icon-delete"></span>
+                        </div>
+                    </div>
+                    <ul class="history-list-box"></ul>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <!--old-->
+    <div>
+        <div class="selLable hidden" id="selLable">
+            <div class="selected-export-box">
+                <div class="selected-export">
+                    <div class="options">
+	                        <span class="search-title active" index="1">
+	                            <em>标题搜索</em>
+	                            <i class="jyapp-icon jyapp-icon-zhankai"></i>
+	                        </span>
+                        <span class="show-list active" index="2">
+	                            <em>列表显示</em>
+                            <!-- jyapp-icon-shouqi -->
+	                            <i class="jyapp-icon jyapp-icon-zhankai"></i>
+	                        </span>
+                    </div>
+                    <div class="export">
+	                        <span style="padding: 3px 8px 3px;border-radius: 10px;background: rgba(44,183,202, 0.1);">
+	                            <i class="jyapp-icon jyapp-icon-shujudaochu"></i>
+	                            <em id="mainSearch-selLable-dataExport">数据导出</em>
+	                        </span>
+                    </div>
+                </div>
+                <div class="newdialog">
+                    <div class="tab-box">
+                        <ul class="sub-tab sub-search-title" index="1"  style="display: none">
+                            <li class="active" dataVal="searchtitle">
+                                <span>标题搜索</span>
+                                <i class="jyapp-icon jyapp-icon-xuanzhong"></i>
+                            </li>
+                            <li dataVal="searchall">
+                                <span>全文搜索</span>
+                                <i class="jyapp-icon jyapp-icon-xuanzhong"></i>
+                            </li>
+                        </ul>
+                        <ul class="sub-tab sub-show-list" index="2" style="display: none">
+                            <li class="active" dataVal="showlist">
+                                <span>列表显示</span>
+                                <i class="jyapp-icon jyapp-icon-xuanzhong"></i>
+                            </li>
+                            <li dataVal="showtable">
+                                <span>表格显示</span>
+                                <i class="jyapp-icon jyapp-icon-xuanzhong"></i>
+                            </li>
+                        </ul>
+                    </div>
+                </div>
+            </div>
+            <div class="weui-mask" style="display: none"></div>
+            <div class="com-title" style="display:none;"><!--height:30px; margin-top:20px;-->
+                <span class="on" id="search_title">标题搜索</span><!--<span style="float:left;">|</span>--><span id="search_all">全文搜索</span>
+            </div>
+            <div class="line-vertical" style="display:none;">
+            </div>
+            <div class="showType" style="display:none;">
+                <div class="showlist on">列表</div>
+                <div class="showtable">表格</div>
+            </div>
+        </div>
+        <div class="hidden" id="intercept">
+            <div class="jy_sprite_main sprite_tip"></div>
+            <!--				<img src="{{Msg "seo" "cdn"}}/jyapp/images/tip.png?v={{Msg "seo" "version"}}">-->
+            <font>“的方式”</font>及其后面的字词均被忽略,因为剑鱼标讯的查询限制在20个汉字以内。
+        </div>
+        <div class="wxsearch hidden" id="super_search">
+            <div class="jysstj">
+                <div class="jy-hairline--bottom" id="swiper-filter">
+                    <div class="jyshaxuan">
+                        <div data-open="industry" class="active-open">
+                            <span>行业</span>
+                            <i class="j-icon base-icon icon-triangle-down icon-triangle-up"></i>
+                        </div>
+                        <div data-open="money">
+                            <span>金额</span>
+                            <i class="j-icon base-icon icon-triangle-down"></i>
+                        </div>
+                        <div data-open="time">
+                            <span>时间</span>
+                            <i class="j-icon base-icon icon-triangle-down"></i>
+                        </div>
+                        <div data-open="area">
+                            <span>地区</span>
+                            <i class="j-icon base-icon icon-triangle-down"></i>
+                        </div>
+                        <div data-open="type">
+                            <span>类型</span>
+                            <i class="j-icon base-icon icon-triangle-down"></i>
+                        </div>
+                        <div data-open="win">
+                            <span>中标企业</span>
+                            <i class="j-icon base-icon icon-triangle-down"></i>
+                        </div>
+                        <div data-open="buyer">
+                            <span>采购单位</span>
+                            <i class="j-icon base-icon icon-triangle-down"></i>
+                        </div>
+                    </div>
+                </div>
+                <div class="industry-dialog active-open" data-wait-open="industry">
+                    <div class="dialog-content contentthree">
+
+                    </div>
+                </div>
+                <!--金额-->
+                <div class="money-dialog hidden" data-wait-open="money" style="overflow-y: scroll;height: 150px;">
+                    <ul style="height: 180px;">
+                        <li><button class="btn active" data-value="all">全部</button></li>
+                        <li>价格区间</li>
+                        <li class="money-inp" data-value="">
+                            <div class="min-price">
+                                <input class="form-control minMrice" type="text"/>
+                                <span class="min-unit">万元</span>
+                                <span class="fgx"></span>
+                            </div>
+                            <div class="max-price">
+                                <input class="form-control maxMrice"  type="text"/>
+                                <span class="max-unit">万元</span>
+                            </div>
+                        </li>
+                    </ul>
+                </div>
+                <div class="jypt-dialog hidden" data-wait-open="time">
+                    <div class="jypt-pt">
+                        <button class="btn jypt-active" data-value="" type="button">全部</button>
+                        <button class="btn" data-value="lately-7" type="button">最近7天</button>
+                        <button class="btn" data-value="lately-30" type="button">最近30天</button>
+                        <button class="btn" data-value="thisyear" type="button">去年</button>
+                    </div>
+                    <div class="jypt-timeinputs">
+                        <input data-value="" id="starttime" name="starttime" readonly="readonly" type="text">
+                        <div class="jypt-fg">
+                            <span></span>
+                        </div>
+                        <input data-value="" id="endtime" name="endtime" readonly="readonly" type="text">
+                    </div>
+                </div>
+                <div class="jydq-dialog hidden" data-wait-open="area">
+                    <div class="dialog-content contentone">
+                        <ul>
+                            <li>
+                                <button class="btn active">全国</button>
+                            </li>
+                            <li>
+                                <span>A</span>
+                                <button class="btn">安徽</button>
+                                <button class="btn">澳门</button>
+                            </li>
+                            <li>
+                                <span>B</span>
+                                <button class="btn">北京</button>
+                            </li>
+                            <li>
+                                <span>C</span>
+                                <button class="btn">重庆</button>
+                            </li>
+                            <li>
+                                <span>F</span>
+                                <button class="btn">福建</button>
+                            </li>
+                            <li>
+                                <span>G</span>
+                                <button class="btn">广东</button>
+                                <button class="btn">广西</button>
+                                <button class="btn">贵州</button>
+                                <button class="btn">甘肃</button>
+                            </li>
+                            <li>
+                                <span>H</span>
+                                <button class="btn">河北</button>
+                                <button class="btn">湖北</button>
+                                <button class="btn">黑龙江</button>
+                                <button class="btn">海南</button>
+                                <button class="btn">河南</button>
+                                <button class="btn">湖南</button>
+                            </li>
+                            <li>
+                                <span>J</span>
+                                <button class="btn">吉林</button>
+                                <button class="btn">江苏</button>
+                                <button class="btn">江西</button>
+                            </li>
+                            <li>
+                                <span>L</span>
+                                <button class="btn">辽宁</button>
+                            </li>
+                            <li>
+                                <span>N</span>
+                                <button class="btn">内蒙古</button>
+                                <button class="btn">宁夏</button>
+                            </li>
+                            <li>
+                                <span>Q</span>
+                                <button class="btn">青海</button>
+                            </li>
+                            <li>
+                                <span>S</span>
+                                <button class="btn">山西</button>
+                                <button class="btn">陕西</button>
+                                <button class="btn">上海</button>
+                                <button class="btn">山东</button>
+                                <button class="btn">四川</button>
+                            </li>
+                            <li>
+                                <span>T</span>
+                                <button class="btn">天津</button>
+                                <button class="btn">台湾</button>
+                            </li>
+                            <li>
+                                <span>X</span>
+                                <button class="btn">西藏</button>
+                                <button class="btn">新疆</button>
+                                <button class="btn">香港</button>
+                            </li>
+                            <li>
+                                <span>Y</span>
+                                <button class="btn">云南</button>
+                            </li>
+                            <li>
+                                <span>Z</span>
+                                <button class="btn">浙江</button>
+                            </li>
+                        </ul>
+                    </div>
+                </div>
+                <div class="jytype-dialog hidden" data-wait-open="type">
+                    <div class="dialog-content contenttwo">
+                        <ul>
+                            <li>
+                                <button class="btn active">全部</button>
+                            </li>
+                            <li>
+                                <div data-value="拟建" id="dqbtn" style="width:7em;position:relative;float:left;">拟建项目</div>
+                                <div class="jy_sprite_main sprite_q-mark q-mark" style=""></div>
+                                <!--									<img style="float:left;" class="q-mark" src="{{Msg "seo" "cdn"}}/jyapp/images/wx/q-mark.png?v={{Msg "seo" "version"}}"/>-->
+                                <button class="btn hidden" style="clear:both;">拟建</button>
+                            </li>
+                            <li>
+                                <div data-value="预告" id="dqbtn" style="width:7em">招标预告</div>
+                                <button class="btn hidden">预告</button>
+                            </li>
+                            <li>
+                                <div data-value="招标" id="dqbtn" style="width:7em">招标公告</div>
+                                <button class="btn">招标</button>
+                                <button class="btn">邀标</button>
+                                <button class="btn">询价</button>
+                                <button class="btn">竞谈</button>
+                                <button class="btn">单一</button>
+                                <button class="btn">竞价</button>
+                                <button class="btn">变更</button>
+                                <button class="btn">其他</button>
+                            </li>
+                            <li>
+                                <div data-value="结果" id="dqbtn" style="width:5.6em">招标结果</div>
+                                <button class="btn">中标</button>
+                                <button class="btn">成交</button>
+                                <button class="btn">废标</button>
+                                <button class="btn">流标</button>
+                            </li>
+                            <li>
+                                <div data-value="其它" id="dqbtn" style="width:7.5em !important; ">招标信用信息</div>
+                                <button class="btn">合同</button>
+                                <button class="btn">验收</button>
+                                <button class="btn">违规</button>
+                            </li>
+                        </ul>
+                    </div>
+                </div>
+                <div class="wait-open-box hidden" data-wait-open="win">
+                    <ul class="ent-search-list-box" id="select-win-list"></ul>
+                    <form data-name="input-clear-box" class="search-win-box" action="javascript:return true">
+                        <input type="search" id="search-win-input" placeholder="输入中标企业名称">
+                        <div class="padding-icon">
+                            <span class="j-icon base-icon icon-delete-gray"></span>
+                        </div>
+                    </form>
+                    <ul class="ent-search-list-box"  id="search-win-list"></ul>
+                </div>
+                <div class="wait-open-box hidden" data-wait-open="buyer">
+                    <div class="choose_industry">
+                        <div class="form">
+                            <div class="select-area-box">
+                                <ul class="list">
+                                    <li class="list_item" id="all">
+                                        <!-- <div class="item_label"></div> -->
+                                        <div class="item_industry_list">
+                                            <button class="industry_item whole">全部行业</button>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="C">
+                                        <div class="item_label">C</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">财政</button>
+                                            <button class="industry_item">传媒</button>
+                                            <button class="industry_item">城管</button>
+                                            <button class="industry_item">采矿业</button>
+                                            <button class="industry_item">出版广电</button>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="D">
+                                        <div class="item_label">D</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">档案</button>
+                                            <button class="industry_item">党委办</button>
+                                            <button class="industry_item">电信行业</button>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="F">
+                                        <div class="item_label">F</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">法院</button>
+                                            <button class="industry_item">发改</button>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="G">
+                                        <div class="item_label">G</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">工信</button>
+                                            <button class="industry_item">公安</button>
+                                            <button class="industry_item">国资委</button>
+                                            <button class="industry_item">公共资源交易</button>
+                                            <span class="wenhao">
+                                <i id="showTips" class="iconfont icon-wenhao show_tips"></i>
+                         </span>
+                                            <div class="tips_detail" style="display: none;">
+                                                订阅采购单位行业“公共资源交易”意味着订阅公共资源交易中心本单位采购的信息,并非所有单位通过公共资源交易中心发布的采购信息,敬请注意。
+                                            </div>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="H">
+                                        <div class="item_label">H</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">海关</button>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="J">
+                                        <div class="item_label">J</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">教育</button>
+                                            <button class="industry_item">军队</button>
+                                            <button class="industry_item">交通</button>
+                                            <button class="industry_item">纪委</button>
+                                            <button class="industry_item">金融业</button>
+                                            <button class="industry_item">建筑业</button>
+                                            <button class="industry_item">检察院</button>
+                                            <button class="industry_item">机关事务</button>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="K">
+                                        <div class="item_label">K</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">科技</button>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="M">
+                                        <div class="item_label">M</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">民政</button>
+                                            <button class="industry_item">民宗</button>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="N">
+                                        <div class="item_label">N</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">农业</button>
+                                            <button class="industry_item">能源化工</button>
+                                            <button class="industry_item">农林牧渔</button>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="P">
+                                        <div class="item_label">P</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">批发零售</button>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="Q">
+                                        <div class="item_label">Q</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">气象</button>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="R">
+                                        <div class="item_label">R</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">人行</button>
+                                            <button class="industry_item">人社</button>
+                                            <button class="industry_item">人大</button>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="S">
+                                        <div class="item_label">S</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">税务</button>
+                                            <button class="industry_item">水利</button>
+                                            <button class="industry_item">市政</button>
+                                            <button class="industry_item">审计</button>
+                                            <button class="industry_item">商务</button>
+                                            <button class="industry_item">司法</button>
+                                            <button class="industry_item">社会团体</button>
+                                            <button class="industry_item">市场监管</button>
+                                            <button class="industry_item">生态环境</button>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="T">
+                                        <div class="item_label">T</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">统计</button>
+                                            <button class="industry_item">统战</button>
+                                            <button class="industry_item">体育</button>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="W">
+                                        <div class="item_label">W</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">文旅</button>
+                                            <button class="industry_item">卫健委</button>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="X">
+                                        <div class="item_label">X</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">学校</button>
+                                            <button class="industry_item">宣传</button>
+                                            <button class="industry_item">信息技术</button>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="Y">
+                                        <div class="item_label">Y</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">医疗</button>
+                                            <button class="industry_item">银保监</button>
+                                            <button class="industry_item">运输物流</button>
+                                            <button class="industry_item">应急管理</button>
+                                        </div>
+                                    </li>
+                                    <li class="list_item" id="Z">
+                                        <div class="item_label">Z</div>
+                                        <div class="item_industry_list">
+                                            <button class="industry_item">组织</button>
+                                            <button class="industry_item">政协</button>
+                                            <button class="industry_item">住建</button>
+                                            <button class="industry_item">证监</button>
+                                            <button class="industry_item">政府办</button>
+                                            <button class="industry_item">制造业</button>
+                                            <button class="industry_item">政务中心</button>
+                                            <button class="industry_item">住宿餐饮</button>
+                                            <button class="industry_item">自然资源</button>
+                                        </div>
+                                    </li>
+                                </ul>
+                            </div>
+                        </div>
+                        <div class="slide">
+                            <a href="javascript:;">C</a>
+                            <a href="javascript:;">D</a>
+                            <a href="javascript:;">F</a>
+                            <a href="javascript:;">G</a>
+                            <a href="javascript:;">H</a>
+                            <a href="javascript:;">J</a>
+                            <a href="javascript:;">K</a>
+                            <a href="javascript:;">M</a>
+                            <a href="javascript:;">N</a>
+                            <a href="javascript:;">P</a>
+                            <a href="javascript:;">Q</a>
+                            <a href="javascript:;">R</a>
+                            <a href="javascript:;">S</a>
+                            <a href="javascript:;">T</a>
+                            <a href="javascript:;">W</a>
+                            <a href="javascript:;">X</a>
+                            <a href="javascript:;">Y</a>
+                            <a href="javascript:;">Z</a>
+                        </div>
+                        <div class="js_dialog custom-dialog" id="js_dialog" style="display: none">
+                            <div class="weui-mask"></div>
+                            <div class="weui-dialog">
+                                <div class="weui-dialog__hd">公共资源交易</div>
+                                <div class="weui-dialog__bd">订阅采购单位行业“公共资源交易”意味着订阅公共资源交易中心本单位采购的信息,并非所有单位通过公共资源交易中心发布的采购信息,敬请注意。</div>
+                                <div class="weui-dialog__ft">
+                                    <a href="javascript:" class="weui-dialog__btn weui-dialog__btn_primary know">我知道了</a>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="jyshxbottom sl-jyshxbottom">
+                <ul class="text-center j-button-group">
+                    <li class="jydqreset j-button-cancel">重置</li>
+                    <li class="jydqsure j-button-confirm">确定</li>
+                </ul>
+            </div>
+        </div>
+        <div class="hidden" id="wrapper">
+            <div id="list" ></div>
+            <div class="hidden" id="table">
+                <div class="data">
+                    <table class="content">
+                        <!--
+                        <tr>
+                            <td><div>序号</div></td>
+                            <td><div>发布时间</div></td>
+                            <td><div>公告类型</div></td>
+                            <td><div>招标单位</div></td>
+                            <td><div>项目名称</div></td>
+                            <td><div>预算<br>(万元)</div></td>
+                            <td><div>开标时间</div></td>
+                            <td><div>中标单位</div></td>
+                            <td><div>中标金额<br>(万元)</div></td>
+                        </tr>
+                        -->
+                    </table>
+                </div>
+                <div class="TableTip" id="TableTip" style="display:none;">
+                    <div class="jy_sprite_main sprite_table_close tableclose"></div>
+                    <!--						<img class="tableclose" src="{{Msg "seo" "cdn"}}/jyapp/images/table_close.png?v={{Msg "seo" "version"}}">-->
+                    <div class="TableText">推荐使用电脑浏览器访问剑鱼标讯网站<br>jianyu360.com查看数据表格,体验更佳。</div></div>
+            </div>
+            <div class="shade_table">
+                <div class="more">查看更多</div>
+            </div>
+        </div>
+    </div>
+    <div class="hidden" id="working" style="text-align: center;position: fixed;top: 50%;left: 0;width: 100%;transform: translateY(-50%);">
+        <!--<img style="width:163px;" src="{{Msg "seo" "cdn"}}/jyapp/images/wx/working.gif?v={{Msg "seo" "version"}}">
+        <div style="font-size:16px;">剑鱼标讯正在努力工作中···</div>-->
+    </div>
+    <div class="nullcontent text-center  hidden">
+        <div>
+            <div class="jy_sprite_main sprite_jysorry_1_wx" style="width:3.2rem;margin:60px 0px 50px 0px;"></div>
+            <!--				<img style="width:163px;margin:60px 0px 50px 0px;" src="{{Msg "seo" "cdn"}}/jyapp/images/wx/jysorry_1.png?v={{Msg "seo" "version"}}">-->
+        </div>
+        <div style="font-size:16px;color:#1d1d1d;">
+				<span id="hasNoData_tiptext">
+					<font>没有找到和该关键词匹配的信息</font>
+					<font style="display: none;">抱歉!由于系统繁忙暂时无法进行搜索,请1分钟后再试!</font>
+					<font style="display: none;">抱歉!由于系统繁忙暂时无法进行搜索,请稍后再试!</font>
+				</span><br>
+            <div id="allSearchModel">试试<span style="color:#2cb7ca;text-decoration:underline;line-height: 30px">全文搜索</span></div>
+        </div>
+        <div class="text-center" id="feedback" style="width:100%;">
+            <div class="jy_sprite_main sprite_jyyjfk" style="transform: scale(1.21);margin-top: 15px;"></div>
+            <!--				<img style="width: 200px;margin-top: 15px;" src="{{Msg "seo" "cdn"}}/jyapp/images/wx/jyyjfk.png?v={{Msg "seo" "version"}}">-->
+        </div>
+    </div>
+    <div class="easypopup" id="nijianTip">
+        <div class="easypopup-alert">
+            <div class="easypopup-content">
+                “拟建项目”是指那些处于前期立项、审批阶段的项目。供应商应在立项阶段掌握项目信息,做到早介入,稳拿单。
+            </div>
+            <div class="easypopup-footer">
+                <span onclick="SuperSearch.njTipEasyPopup.hide();">我知道了</span>
+            </div>
+        </div>
+    </div>
+    <div id="tempDiv" style="display:none;"></div>
+</div>
+<!--S-底部提示-->
+<div class="resbm hidden" id="resbm">
+    <div class="resbm0">
+        <div>
+            <i class="icon iconfont" id="close_set">&#xe61a;</i>
+            <span>如果您对以上结果满意可【直接订阅】{{if and (not .T.isIosExam) (not .T.isIosExamPhone)}}<br>更有超级订阅等你试用。{{end}}</span>
+            <a id="zjdy" style="text-decoration: none;">直接订阅</a>
+        </div>
+    </div>
+</div>
+<!--E-底部提示-->
+
+<!--E-页面-->
+
+<!--S-脚本-->
+<script src='{{Msg "seo" "cdn"}}/jyapp/big-member/js/utils.js'></script>
+<script>
+
+    function ajaxQueryAssociateList (data, callback) {
+        // 大会员接口参数调整
+        var tempUrl = 'buyer'
+        switch (data.typ) {
+          case "buyer": {
+            tempUrl = 'buyer'
+            break
+          }
+          case "ent": {
+            tempUrl = 'ent'
+            data.num = 10
+            break
+          }
+          case "win": {
+            tempUrl = 'ent'
+            data.num = 5
+            break
+          }
+        }
+        $.ajax({
+            type: 'post',
+            url: '/bigmember/search/'+ tempUrl +'/association',
+            data: data,
+            dataType: "json",
+            success: function(r){
+                if (tempUrl === 'buyer') {
+                  r.data.list = r.data.list.map(function (vItem) {
+                    return {
+                      name: vItem,
+                      entId: vItem
+                    }
+                  })
+                }
+                callback(r)
+            }
+        })
+    }
+
+    function createLiList (list, keyStr, config) {
+        var outHtml = ''
+        if (list && list.length > 0) {
+            list.forEach(function (v) {
+                outHtml += (''
+                 + '<li data-eid="' + v.entId  + '" class="hover-css--slide jy-hairline--bottom ' + ((config && config.className) ? config.className : '') + '">'
+                 + utils.replaceKeyword(v.name, keyStr, '<span class="highlight">' + keyStr + '</span>')
+                 + ((config && config.afterNode) ? config.afterNode : '')
+                 + '</li>')
+            })
+        }
+        return outHtml
+    }
+
+    function createSearchResultList () {
+
+        var nowIndex = $(".tabs-box .tabs-nav .active").index()
+        var nowInput = $("#search-header-input").val().trim()
+        var outDom = nowIndex === 1 ? "#search-ent-list" : "#search-buyer-list"
+        var nowType = nowIndex === 1 ? 'ent' : 'buyer'
+
+
+        if (nowIndex === 0) {
+            return
+        }
+
+        if (!nowInput.length) {
+            $(outDom).html('')
+            getSearchHistory(nowType, true)
+        } else {
+            if (window.topSearchData[nowType] === nowInput) {
+                return
+            }
+            ajaxQueryAssociateList({
+                name: nowInput,
+                typ: nowType
+            }, function (r) {
+                if (r && r.error_code === 0) {
+                    var listData = r.data.list
+
+                    if (listData && listData.length) {
+                      if (vEntSearchComponent) {
+                        vEntSearchComponent.toggleEntShow(false)
+                      }
+                    }
+
+                    var outHtml = createLiList(listData, nowInput)
+                    $(outDom).html(outHtml).siblings().hide()
+                    window.topSearchData[nowType] = nowInput
+                } else {
+                    weui.toast(r.error_msg)
+                }
+            })
+        }
+    }
+
+    function resetTopSearch () {
+        $("#supersearchPage #clickFilter").text('搜索')
+        $("#supersearchPage .tabs-box").removeClass('hidden')
+        $("#supersearchPage .tabs-box .tabs-nav > div").eq(0).trigger('click')
+        $("#search-ent-list").html('')
+        $("#search-buyer-list").html('')
+        window.topSearchData = {
+            ent: '',
+            buyer: ''
+        }
+        createSearchResultList()
+    }
+
+    function checkInputClear () {
+        var nowInputValue = $(this).val()
+        if (nowInputValue.trim().length) {
+            $(this).next().css('opacity', '1').show()
+        } else {
+            $(this).next().css('opacity', '0').hide()
+        }
+    }
+    // 判断筛选按钮显示
+    function checkFilterButtonText () {
+        // console.trace()
+        var isSearchList = $("#selLable").hasClass('hidden') || $("#super_search").hasClass('hidden')
+        var isNewPage = $("#selLable").hasClass('hidden') && $("#super_search").hasClass('hidden')
+        console.log(!isNewPage && isSearchList, '显示筛选/搜索')
+        if (!isNewPage && isSearchList) {
+            $("#clickFilter").text('筛选')
+            $(".app-layout-content-b .tabs-box").addClass('hidden')
+            // sessionStorage.removeItem('isSearchListPage')
+        } else {
+            $("#clickFilter").text('搜索')
+            $(".app-layout-content-b .tabs-box").removeClass('hidden')
+        }
+    }
+    // 筛选tab切换
+    function openClickWait () {
+        // console.trace()
+        console.log($(this), 'openwait')
+        $("#js_dialog").hide()
+        $(this).siblings().removeClass('active-open').children('.icon-triangle-up').removeClass('icon-triangle-up')
+        $(this).addClass('active-open').children(".icon-triangle-down").addClass('icon-triangle-up')
+        $("div[data-wait-open]").addClass('hidden')
+        var showTabContentDom = $('div[data-wait-open="'+ $(this).attr('data-open') +'"]')
+        showTabContentDom.removeClass('hidden')
+        if (showTabContentDom.attr('data-wait-open') === 'buyer') {
+            console.log('xxxx')
+            var computeHeight = $("#swiper-filter").height() + $(".jyshxbottom.sl-jyshxbottom").height()
+            showTabContentDom.css('height', 'calc(100% - ' + computeHeight.toFixed() + 'px)')
+        }
+        $("#swiper-filter .jyshaxuan").animate({scrollLeft: $(this).offset().left})
+    }
+    window.isAddEventListener = false
+    function initSearchHeader (t) {
+        console.log('是否仅刷新数据', t)
+        $("#supersearchPage #working").addClass("hidden");
+        $(".loading_").hide()
+        if (t) {
+            // $("#working").hide()
+            // $(".loading_").hide()
+            var oldIndex = sessionStorage.getItem('home_top_search_tab_index') || '0'
+            console.log('判断是否需要切换tabs', oldIndex)
+            sessionStorage.removeItem('home_top_search_tab_index')
+            $(".tabs-nav div").eq(oldIndex).trigger('click')
+            // 从缓存刷新数据
+            $("#select-win-list").html(SuperSearch.filterWin.html)
+            var filter_buy = SuperSearch.filterBuy.select || []
+
+            if (filter_buy.length) {
+                $('#supersearchPage .industry_item:not(.whole)').each(function () {
+                    var text = $(this).text().trim()
+                    for (var i = 0; i < filter_buy.length; i++) {
+                        var element = filter_buy[i];
+                        if (element == text) {
+                            $(this).addClass('active')
+                        }
+                    }
+                })
+            } else {
+                $("#supersearchPage .industry_item.whole:not(.active)").addClass('active')
+            }
+
+            return
+        }
+        if (window.isAddEventListener) {
+            console.log('拒绝重复初始化事件')
+            return
+        }
+        window.isAddEventListener = true
+        $(window).on('popstate', function () {
+            console.log('取消未完成列表请求')
+            window.AjaxPAGIng && window.AjaxPAGIng.abort && window.AjaxPAGIng.abort()
+        })
+        // 通用输入框删除ICON事件
+        $("form[data-name='input-clear-box'] input").on('input change', checkInputClear).on('focus', checkInputClear).on('blur', function () {
+            var that = this
+            setTimeout(function () {
+                $(that).next().css('opacity', '0').hide()
+            }, 150)
+        })
+
+        $("form[data-name='input-clear-box'] .padding-icon").on('click', function () {
+            $(this).prev().val('')
+        })
+        console.log('初始化时间')
+        $("#search-header-input").on('focus', function () {
+            $("#clickFilter").text('搜索')
+        }).on('blur', utils.debounce(checkFilterButtonText, 300))
+        // 头部输入框事件
+        $("#search-header-input").on('input change', utils.debounce(function () {
+            createSearchResultList()
+        }, 300))
+        $("#search-header-input + .padding-icon").on('click', function () {
+            $('#search-header-input').focus().val('')
+            window.topSearchData = {
+                ent: '',
+                buyer: ''
+            }
+            $("#search-ent-list").html('')
+            $("#search-buyer-list").html('')
+            createSearchResultList()
+
+            // KB需求:#12441 (清空输入框显示历史记录)
+            // 如果有列表(不在筛选状态) 就显示tab
+            if ($('#super_search').hasClass('hidden')) {
+                // 不在筛选状态, 就显示tab
+                $("#supersearchPage .tabs-box").removeClass("hidden")
+                $("#supersearchPage #clickFilter").text('搜索')
+
+                // 隐藏列表
+                $("#supersearchPage #list").addClass("hidden");
+                // 隐藏表格(列表显示的情况)
+                $('#table').addClass('hidden')
+                // 隐藏空状态
+                $("#supersearchPage .nullcontent").addClass("hidden");
+                // 隐藏标题搜索或者列表搜索切换
+                $("#supersearchPage .selLable").addClass("hidden");
+                // 隐藏底部订阅
+                $('#resbm').addClass('hidden');
+                $(".dropload-down").hide();
+                $('.shade_table').hide()
+                // debugger
+                // console.trace()
+            } else {
+                // console.log('在筛选状态...')
+            }
+        })
+        // 存放搜索历史
+        window.topSearchData = {
+            ent: '',
+            buyer: ''
+        }
+        // tabs 切换
+        $(".tabs-nav div").on('click', function () {
+            $(this).addClass('active').siblings().removeClass('active')
+            var nowIndex = $(this).index()
+            var tipArr = ['税务局软件', '企业名称', '采购单位名称']
+            $("#search-header-input").attr('placeholder', tipArr[nowIndex])
+            $(".tabs-content > .tabs-content-page").eq(nowIndex).addClass('active').siblings().removeClass('active')
+            if (nowIndex !== 0) {
+                var type = nowIndex === 1 ? 'ent' : 'buyer'
+                $(".search-header-box").addClass('m-r').removeAttr("action").next().hide()
+                createSearchResultList()
+            } else {
+                $(".search-header-box").removeClass('m-r').attr("action", "javascript:return true").next().show()
+            }
+        })
+        // 历史记录选择
+        // $(".history-list-box").on('click', 'li', function () {
+        //     $("#search-header-input").val($(this).text())
+        // })
+
+        // 选择效果实现
+        $("body").on("touchstart", ".hover-css--slide", function () {
+            $(this).addClass('hover')
+        })
+            .on("touchmove", ".hover-css--slide", function () {
+            $(this).addClass('hover')
+        })
+            .on("touchend", ".hover-css--slide", function () {
+            $(this).removeClass('hover')
+        })
+
+        // 筛选
+        $("#swiper-filter .jyshaxuan").on('click', "div[data-open]", openClickWait)
+
+        // 中标企业输入框事件
+        $("#search-win-input").on('input change', utils.debounce(function () {
+            var nowInput = $(this).val()
+            if (nowInput.trim().length <= 0) {
+                return
+            }
+            ajaxQueryAssociateList({
+                name: nowInput,
+                typ: 'win'
+            }, function (r) {
+                if (r && r.error_code === 0) {
+                    var listData = r.data.list
+                    var outHtml = createLiList(listData, nowInput)
+                    $("#search-win-list").html(outHtml)
+                } else {
+                    weui.toast(r.error_msg)
+                }
+            })
+        }, 300))
+        $("#search-win-input + .padding-icon").on('click', function () {
+            $("#search-win-list").html('')
+        })
+
+        $("#search-win-list").on('click', 'li', function () {
+            var nowEnt = $(this).text()
+            if (!SuperSearch.filterWin.select) {
+                SuperSearch.filterWin.select = []
+            }
+            if (SuperSearch.filterWin.select.indexOf(nowEnt) !== -1) {
+                return $(this).remove()
+            }
+
+            SuperSearch.filterWin.select.push(nowEnt)
+            var appendLi = '<li class="hover-css--slide select">' + nowEnt + '<i class="j-icon base-icon icon-tick"></i></li>'
+            $("#select-win-list").append(appendLi)
+            $("#search-win-list").html('')
+            $("#search-win-input").val('')
+            SuperSearch.filterWin.html = $("#select-win-list").html()
+        })
+        $("#select-win-list").on("click", 'li', function () {
+            $(this).toggleClass('select')
+        })
+
+        // 公共资源交易介绍提示框
+        $('#showTips').click(function (e) {
+            e.stopPropagation();
+            $('#js_dialog').show()
+            $("#js_dialog .weui-mask").show()
+        });
+        $('#js_dialog .know').click(function () {
+            $('#js_dialog').hide()
+        })
+        // $('#showTips').click(function (e) {
+        //     e.stopPropagation();
+        //     $('.tips_detail').slideToggle()
+        // });
+        // 点击导航跳转
+        $("body").on('click', '.slide a', function () {
+            var sDom = $(this)
+            var s = sDom.html()
+            sDom.addClass('active')
+            $('#' + s).addClass('active')
+            if (s == '#') {
+                return;
+            }
+            document.querySelector('#' + s).scrollIntoView({
+                block: 'start'
+            });
+            setTimeout(function () {
+                sDom.removeClass('active')
+                $('#' + s).removeClass('active')
+            }, 600)
+        })
+        // 选择全部行业
+        $('.industry_item.whole').on('click', function () {
+            $(this).addClass('active').parents('.list').find('.industry_item:not(.whole)').removeClass('active');
+        })
+        // 选择非全部行业
+        console.log('初始化点击事件')
+        $('.industry_item:not(.whole)').on('click', function () {
+            $('.industry_item.whole').removeClass('active');
+            $(this).toggleClass('active');
+        })
+
+        // 企业搜索点击
+        $("#search-ent-list").on('click', 'li', goEntPage)
+        $(".del_ent_history").on('click', 'li', goEntPage)
+        // 采购单位搜索点击
+        $("#search-buyer-list").on('click', 'li', goBuyPage)
+        $(".del_buyer_history").on('click', 'li', goBuyPage)
+
+        // 清除搜索历史记录
+        $('#del_ent_history').on('click', function () {
+            clearSearchHistory('ent')
+        })
+        $('#del_buyer_history').on('click', function () {
+            clearSearchHistory('buyer')
+        })
+    }
+
+    function goEntPage () {
+        sessionStorage.setItem('home_top_search_tab_index', $(".tabs-nav .active").index())
+        saveSearchHistory('ent', $(this).text(), $(this).attr('data-eid'))
+        sessionStorage.setItem('landentinfo', JSON.stringify({
+            anchor: '企业全景分析',
+            landname: $(this).text()
+        }))
+        SuperSearch.setSessionStorage()
+        if(!isMember){
+           location.href = "/jyapp/big/page/landingPage"
+        }else{
+          location.href = "/jyapp/big/page/ent_portrait?eId="+encodeURIComponent($(this).attr('data-eId'))
+        }
+    }
+
+    function goBuyPage () {
+        sessionStorage.setItem('home_top_search_tab_index', $(".tabs-nav .active").index())
+        saveSearchHistory('buyer', $(this).text(), $(this).attr('data-eid'))
+        sessionStorage.setItem('landinfo', JSON.stringify({
+            anchor: '采购单位全景分析',
+            landname: $(this).text()
+        }))
+        SuperSearch.setSessionStorage()
+        location.href = "/jyapp/big/page/unit_portrayal?entName="+encodeURIComponent($(this).text())
+    }
+
+    function setOnlyCookie () {
+        try {
+            var oCookie = {{session "userId"}}
+            localStorage.setItem('big_member_only_user', oCookie)
+        } catch (e) {
+            console.log('cookie 获取失败01')
+        }
+    }
+
+    function clearOtherUserLocalStorage () {
+        var oCookie = localStorage.getItem('big_member_only_user')
+        if (oCookie) {
+            try {
+                var isUserNext = oCookie != {{session "userId"}}
+                if (isUserNext) {
+                    localStorage.removeItem('home_top_search_ent_history_2021')
+                    localStorage.removeItem('home_top_search_buyer_history_2021')
+                }
+            } catch (e) {
+                console.log('cookie 获取失败02')
+            }
+        } else {
+            localStorage.removeItem('home_top_search_ent_history_2021')
+            localStorage.removeItem('home_top_search_buyer_history_2021')
+        }
+    }
+
+    function saveSearchHistory (type, insetStr, entId) {
+        var saveOnlyKey = 'home_top_search_' + type + '_history_2021'
+        var oldArr = JSON.parse(localStorage.getItem(saveOnlyKey) || '[]')
+        var oldIds = JSON.parse(localStorage.getItem(saveOnlyKey + '_ids') || '[]')
+        // 检查原数组中是否存有本次查询字符串
+        var index = oldIds.indexOf(entId)
+        if (index === -1) {
+            if (oldIds.length >= 10) {
+                oldIds.pop()
+                oldArr.pop()
+            }
+            oldIds.unshift(entId)
+            oldArr.unshift(insetStr)
+        } else {
+            // 如果有,将该字符提前
+            oldIds.splice(index, 1)
+            oldIds.unshift(entId)
+
+            oldArr.splice(index, 1)
+            oldArr.unshift(insetStr)
+        }
+        localStorage.setItem(saveOnlyKey, JSON.stringify(oldArr))
+        localStorage.setItem(saveOnlyKey  + '_ids', JSON.stringify(oldIds))
+        setOnlyCookie()
+    }
+
+    function clearSearchHistory (type) {
+        var saveOnlyKey = 'home_top_search_' + type + '_history_2021'
+        localStorage.removeItem(saveOnlyKey)
+        localStorage.removeItem(saveOnlyKey  + '_ids')
+        var domNode = $('.del_' + type + '_history')
+        if (domNode) {
+            domNode.find('ul.history-list-box').html('')
+            domNode.hide()
+        }
+    }
+
+    function getSearchHistory (type, setDom) {
+        clearOtherUserLocalStorage()
+        console.log('tyoe', type)
+        var saveOnlyKey = 'home_top_search_' + type + '_history_2021'
+        var oldArr = JSON.parse(localStorage.getItem(saveOnlyKey) || '[]')
+        var oldIds = JSON.parse(localStorage.getItem(saveOnlyKey  + '_ids') || '[]')
+        if (setDom) {
+            var domNode = $('.del_' + type + '_history')
+            if (domNode) {
+                var outHtml = ''
+                oldArr.forEach(function (v, index) {
+                    outHtml += '<li data-eid="'+ oldIds[index] +'" class="hover-css--slide">' + v + '</li>'
+                })
+                domNode.find('ul.history-list-box').html(outHtml)
+                if (oldArr.length > 0) {
+                    domNode.show()
+                } else {
+                    domNode.hide()
+                }
+            }
+        }
+        return oldArr
+    }
+</script>
+<!--E-脚本-->

+ 23 - 8
src/web/templates/weixin/vipsubscribe/vip_UpgradePage.html

@@ -35,6 +35,17 @@
       font-size: .24rem;
       color:#FE737A;
     }
+    .area_result{
+      display: flex;
+      align-items: center;
+      margin-left: .16rem;
+      background-color: #2ABED1;
+      color: #fff;
+      font-size: .22rem;
+      text-align: center;
+      padding: 0 .16rem;
+      border-radius: .41rem;
+    }
   </style>
 </head>
 
@@ -47,18 +58,22 @@
           <li class="body-item area-industry">
             <a class="item-container" href="/front/vipsubscribe/toChooseArea?header=upgrade">
               <div class="item area">
-                <span class="item-l">省份数量</span>
-                <span class="iconfont icon-arrow"></span>
+                <span class="item-l" style="display: flex;align-items: center;">
+                  <span class="item-label">省份数量</span>
+                  <div class="area_result">
+                    <span>已选:</span>
+                    <span class="selected-area"></span>
+                  </div>
+                </span>
+                <span class="item-r" style="width: auto;">
+                  <span style="color: #9b9ca3;">选择</span>
+                  <span class="iconfont icon-arrow"></span>
+                </span>
               </div>
-              <div class="area-result">已选择 <span class="item-r"></span></div>
-              <!-- <div class="item industry">
-                <span class="item-l">行业:</span>
-                <span class="item-r"></span>
-              </div> -->
               <p class="error-update-tips">选择省份数量低于原套餐数,无法升级,请增加省份数量</p>
             </a>
           </li>
-          <li class="body-item select_cycle">
+          <li class="body-item select_cycle" style="display: none;">
             <a class="item-container" href="javascript:;">
               <div class="item">
                 <span class="item-l">

+ 178 - 26
src/web/templates/weixin/vipsubscribe/vip_purchase.html

@@ -13,6 +13,8 @@
     <link rel="stylesheet" href="/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/css/wxbutton.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet" href="/vipsubscribe/css/vip_purchase.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/vipsubscribe/css/vip-size-template.css?v={{Msg "seo" "version"}}' />
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/vipsubscribe/css/vip-coupon-template.css?v={{Msg "seo" "version"}}' />
     <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/coupon/css/pay-order-template.css?v={{Msg "seo" "version"}}' />
     <!--S-手机号输入样式-->
     <style>
@@ -58,6 +60,20 @@
       text-align: left;
       margin-top: 2px;
     }
+    .area-result{
+      /* width:1.2rem; */
+      height: .38rem;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      background: #2abed1;
+      border-radius: 41px;
+      font-size: .22rem;
+      color: #fff;
+    }
+    .area-result-text{
+      padding: 0 .16rem;
+    }
     </style>
     <!--E-手机号输入样式-->
 
@@ -91,15 +107,23 @@
             <div class="choose_condition">
                 <ul class="chooseList">
                     <li class="choose_item">
-                        <a href="/front/vipsubscribe/toChooseArea">
+                        <a href="javascript:;" onclick="toChooseArea()">
+                          <div style="display: flex;align-items: center;flex: 1;">
                             <span class="label">省份数量</span>
-                            {{if not .T.isTrial }}
-                                <input type="text" disabled value="" placeholder="1个省"
-                                       class="info choose_area">
-                            {{else}}
-                                <input type="text" disabled value="" placeholder="选择全国、省份、地市" class="info choose_area">
-                            {{end}}
+                            <div class="area-result">
+                              {{if not .T.isTrial }}
+                                  <input type="hidden" disabled value="" placeholder="1个省" class="info choose_area">
+                                  <span class="area-result-text"></span>
+                              {{else}}
+                                  <input type="hidden" disabled value="" placeholder="选择全国、省份、地市" class="info choose_area">
+                                  <span class="area-result-text"></span>
+                              {{end}}
+                            </div>
+                          </div>
+                          <div style="display: flex;align-items: center;">
+                            <em style="color: #9B9CA3;font-size: .28rem;">选择</em>
                             <i class="iconfont icon-arrow"></i>
+                          </div>
                         </a>
                         <p class="add_tips area_warn" style="display: none;">请选择区域</p>
                         <!-- 无选择时不显示 -->
@@ -121,7 +145,7 @@
                         <p class="add_tips industry_warn" style="display: none;">请选择行业</p>
                         <p class="add_tips industry" style="display:none">已选择 0 个行业</p>
                     </li>
-                    <li class="choose_item select_cycle">
+                    <li class="choose_item select_cycle" style="display: none;">
                         <!-- 需要选择订阅周期就用a标签,div.class="free-7day"隐藏 opacity: 1 !important; -->
                         <!-- 需要选择试用就用div标签,a标签隐藏 -->
                         {{if not .T.isTrial }}
@@ -141,8 +165,16 @@
 
                     </li>
                 </ul>
+                <!-- 商品规格 -->
+                <div id="goods-size-vue">
+                  <goods-size-template ref="goodsSize" :config="props" @select-vip-size="getGoodSize"></goods-size-template>
+                </div>
+                <!-- 商品优惠券 -->
+                <div id="goods-coupon-vue">
+                  <goods-coupon-template ref="goodsCoupon" @update-coupon="updateCoupon"></goods-coupon-template>
+                </div>
                 <!--S-手机号输入-->
-                <div class='order-phone-group'>
+                <div class='order-phone-group' style="margin: .24rem;border-radius: 8px;">
                   <label for='order_phone'>手机号码</label>
                   <input id='order_phone' autocomplete='off' placeholder='请输入手机号码' maxlength='11' type='tel' />
                   <p>手机号码输入错误</p>
@@ -210,7 +242,7 @@
                                 <td><span>3880</span>元 年/全国/全行业</td>
                             </tr>
                         </table>
-                        <dl class="tips">
+                        <dl class="tips" style="display: none;">
                             <dt class="b-line">购买须知</dt>
                             <dd>套餐周期内,不支持套餐降级;</dd>
                             <dd>用户最多购买/续费3年套餐;</dd>
@@ -443,6 +475,8 @@
         <!--<script src='{{Msg "seo" "cdn"}}/js/check-bind-phone.js?v={{Msg "seo" "version"}}'></script>-->
         <script src="/vipsubscribe/js/price.js?v={{Msg "seo" "version"}}"></script>
         <script src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js></script>
+        <script src='{{Msg "seo" "cdn"}}/common-module/vipsubscribe/js/vip-size-template.js?v={{Msg "seo" "version"}}'></script>
+        <script src='{{Msg "seo" "cdn"}}/common-module/vipsubscribe/js/vip-coupon-template.js?v={{Msg "seo" "version"}}'></script>
         <script src='{{Msg "seo" "cdn"}}/common-module/coupon/js/pay-order-template.js?v={{Msg "seo" "version"}}'></script>
         {{include "/common/weixin.html"}}
         <script>
@@ -602,9 +636,95 @@
             sessionStorage.setItem("vipSubisTrial", "1");//试用界面
             //试用用户
             {{end}}
-
-            console.log({{.T.isTrial }}, '22222')
+            // 跳转区域选择清除商品规格及优惠券选择
+            function toChooseArea() {
+              sessionStorage.removeItem('vip-cur-select-coupon')
+              sessionStorage.removeItem('vip-cur-select-size')
+              location.href = '/jyapp/vipsubscribe/toChooseArea'         
+            }
             /* vue 代码 start */
+            // vip商品规格
+            var goodsSize = new Vue({
+              el:'#goods-size-vue',
+              data: function() {
+                return {
+                  props: {
+                    defaultSize: {},
+                    areaCount: 1,
+                    priceInfo: {}
+                  }
+                }
+              },
+              created () {
+                this.getAreaCount()
+              },
+              mounted () {
+                this.getSizeStorage()
+              },
+              methods: {
+                // 父组件传省份数量至子组件
+                getAreaCount: function() {
+                  var areaStorage = JSON.parse(sessionStorage.getItem('vipSubSelectArea'))
+                  if (areaStorage) {
+                    var count = 0
+                    for (var key in areaStorage) {
+                      if (key.indexOf('全国') > -1) {
+                        count = 16
+                      } else {
+                        count++
+                      }
+                    }
+                    this.props.areaCount = count
+                  }
+                },
+                getSizeStorage: function() {
+                  // 恢复商品规格选择
+                  var size = JSON.parse(sessionStorage.getItem('vip-cur-select-size')) 
+                  if (size) {
+                    this.$refs.goodsSize.goodsActive = size.index
+                    this.defaultSize = size
+                    this.$nextTick(function(){
+                      console.log(size.price, 'size.price')
+                      coupon.updatePrice(size.price/100)
+                      goodsCoupon.updatePrice(size.price/100)
+                    })
+                  }
+                },
+                getGoodSize: function(data) {
+                  console.log(data, '父组件接收子组件传来的商品规格')
+                  this.defaultSize = data
+                  coupon.updatePrice(data.price/100)
+                  goodsCoupon.updatePrice(data.price/100)
+                }
+              }
+            })
+            // vip优惠券
+            var goodsCoupon = new Vue({
+              el:'#goods-coupon-vue',
+              data: function() {
+                return {
+                  curSelectCoupon: {}
+                }
+              },
+              mounted () {},
+              methods: {
+                updatePrice: function(data){
+                  this.$refs.goodsCoupon.getCoupon(data)
+                },
+                updateCoupon: function(data) {
+                  console.log(data, '更新优惠券选择')
+                  this.curSelectCoupon = data
+                  var curSize = JSON.parse(sessionStorage.getItem('vip-cur-select-size'))
+                  // 更新优惠券选择同时更新订单组件的价格及优惠金额
+                  if (curSize) {
+                    coupon.updatePrice(curSize.price/100)
+                  } else {
+                    coupon.updatePrice(coupon.initPrice)
+                  }
+                }
+              }
+            })
+            // 订单提交组件
             var coupon = new Vue({ 
               el: '#coupon-vue',
               data: function () {
@@ -625,6 +745,7 @@
                   buttons: {
                     submit: this.submitOrder
                   },
+                  hideCoupon: true //超级订阅购买隐藏订单提交组件的优惠券部分
                 }
               },
               mounted () {
@@ -634,11 +755,17 @@
                 // 更新价格相关
                 updatePrice: function (before) {
                   console.log( '原价:' + before)
-                  console.log('是否是试用',{{.T.isTrial }})
+                  var curCoupon = JSON.parse(sessionStorage.getItem('vip-cur-select-coupon'))
+                  console.log(curCoupon, '当前选择的优惠券')
+                  if (curCoupon) {
+                    this.$refs.couponRef.coupon.value = curCoupon.reduce
+                  } else {
+                    this.$refs.couponRef.coupon.value = 0
+                  }
                   this.initPrice = before;
                   // 调用子组件查询最优卡券 vip试用用户不调用优惠券
                   if (!{{.T.isTrial }}) {
-                    this.$refs.couponRef.getCoupon();
+                    // this.$refs.couponRef.getCoupon();
                   }
                 },
                 // 初始化及回显相关
@@ -646,7 +773,7 @@
                   var areaStorage = sessionStorage.getItem('vipSubSelectArea');
                   var industryStorage = sessionStorage.getItem('vipSubSelectIndustry');
                   var readStorage = sessionStorage.getItem('vipSub_read') == 'true' ? true : false;
-                  console.log(areaStorage, industryStorage, readStorage)
+                  // console.log(areaStorage, industryStorage, readStorage)
                   if(readStorage) {
                     this.checkboxStatus = true
                   }
@@ -772,6 +899,8 @@
                                 //     showGiveStatus(false)
                                 // }
                                 Calculation.Init(false, undefined, [], 0)
+                                // 将价格列表传至商品规格组件
+                                goodsSize.props.priceInfo = r.new
                             }
                         }, false)
                     } catch (e) {
@@ -783,22 +912,25 @@
                     if (!$.isEmptyObject(this.areaSelect) && !this.areaSelect["一个省"]) { //有选择
                         if (this.nowBuyset.areacount === -1) {
                             $(".choose_area").val("全国");
+                            $(".area-result-text").show().text("已选: 全国");
                         } else {
-                            var tipTxt = "已选 ";
-                            if (this.nowBuyset.areacount > 0) tipTxt += this.nowBuyset.areacount + " 个省";
+                            var tipTxt = "已选: ";
+                            if (this.nowBuyset.areacount > 0) tipTxt += this.nowBuyset.areacount + "";
                             var count = 0;
                             this.nowBuyset.citys.forEach(function (item, index) {
                                 count += item;
                             });
-                            if (count > 0) {
-                                if (this.nowBuyset.areacount > 0) tipTxt += "、";
-                                tipTxt += count + " 个市";
-                                if (this.nowBuyset.citys.length > 1) tipTxt += "(分布在" + this.nowBuyset.citys.length + "个省内)"
-                            }
+                            // if (count > 0) {
+                            //     if (this.nowBuyset.areacount > 0) tipTxt += "、";
+                            //     tipTxt += count + " 个市";
+                            //     if (this.nowBuyset.citys.length > 1) tipTxt += "(分布在" + this.nowBuyset.citys.length + "个省内)"
+                            // }
                             $(".choose_area").val(tipTxt);
+                            $(".area-result-text").show().text(tipTxt);
                         }
                     } else {
                         $(".choose_area").val("");
+                        $(".area-result-text").hide().text("");
                         //是否勾选已阅读
                         if (sessionStorage.getItem("vipSub_read") === "true") {
                             $(".area_warn").css("display", "");
@@ -898,7 +1030,13 @@
                             $('.computed_price').html(showPrice);
                             $('.discount-price .dis-price').text(formatMoney(givePrice))
                         }
-                        coupon.updatePrice(price)
+                        // coupon.updatePrice(price)
+                        var size = JSON.parse(sessionStorage.getItem('vip-cur-select-size')) 
+                        // 首次进入没有选择商品规格 默认
+                        if (!size) {
+                          coupon.updatePrice(price)
+                          goodsCoupon.updatePrice(price)
+                        }
                     }
                 }
             };
@@ -1118,12 +1256,22 @@
                     if (activeCode.toLowerCase() === couponInfo.code && $('.coupon-code-tx .info').text() === couponInfo.successTip) {
                         activeCodes = couponInfo.code;
                     }
+                    var size = goodsSize.defaultSize
+                    if (size && size.period) {
+                      if(size.period.indexOf('月') > -1) {
+                        size.period = size.period.replace('月', '个月')
+                      }
+                      sizeTime = size.period
+                    } else {
+                      sizeTime = '1个月'
+                    }
+                    console.log(sizeTime, '选择的周期')
                     var param = {
-                        "userLotteryId":coupon.$refs.couponRef.coupon.userLotteryId,
-                        "lotteryId": coupon.$refs.couponRef.coupon.lotteryId,
+                      "userLotteryId":goodsCoupon.curSelectCoupon.userLotteryId,
+                      "lotteryId": goodsCoupon.curSelectCoupon.lotteryId,
                         "area": JSON.stringify(area),
                         // "industry": industry.join(","),
-                        "time": $(".info:eq(2)").val().trim(),
+                        "time": sizeTime,
                         "price": Number((coupon.initPrice*100).toFixed(2)),
                         "orderType":{{.T.orderType}},
                         "activeCode": activeCodes,
@@ -1211,6 +1359,10 @@
                 sessionStorage.removeItem("vip_index_read");
                 sessionStorage.removeItem("vip_change_time");
                 sessionStorage.removeItem("liveActiveCode_purchase");
+                // 清除商品规格当前选择
+                sessionStorage.removeItem("vip-cur-select-size")
+                // 清除商品优惠券当前选择
+                sessionStorage.removeItem("vip-cur-select-coupon")
             }
 
             /******* 获取url参数(正则)********/

+ 65 - 17
src/web/templates/weixin/vipsubscribe/vip_renew.html

@@ -16,22 +16,56 @@
     <link rel="stylesheet" href="/vipsubscribe/css/public.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet" href="/css/wxbutton.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet" href="/vipsubscribe/css/vip_renew.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/vipsubscribe/css/vip-size-template.css?v={{Msg "seo" "version"}}' />
     <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/coupon/css/pay-order-template.css?v={{Msg "seo" "version"}}' />
     <style>
-        .vip-header {
-            display: none;
-            padding: .26rem .3rem;
-            font-size: .26rem;
-            color: #FE737A;
-        }
-
-        .weui-toast {
-            z-index: 999999;
-        }
-
-        button[disabled] {
-            opacity: .5;
-        }
+      .vip-header {
+        display: none;
+        padding: .26rem .3rem;
+        font-size: .26rem;
+        color: #FE737A;
+      }
+      .weui-toast {
+        z-index: 999999;
+      }
+      button[disabled] {
+        opacity: .5;
+      }
+      .area-result{
+        position: relative;
+        padding: .3rem .32rem;
+        display: flex;
+        align-items: center;
+        background-color: #fff;
+      }
+      .area-result::after{
+        position: absolute;
+        box-sizing: border-box;
+        content: ' ';
+        pointer-events: none;
+        right: 0;
+        bottom: 0;
+        left: .32rem;
+        border-bottom: 1px solid #f5f5f5;
+        -webkit-transform: scaleY(0.7);
+        transform: scaleY(0.7);
+      }
+      .a-r-label{
+        margin-right: 0.08rem;
+        font-size: .32rem;
+        color: #171826;
+      }
+      .a-r-val{
+        height: .38rem;
+        padding: 0 .16rem;
+        display: flex;
+        align-items: center;
+        background: #2abed1;
+        border: 1px solid #2abed1;
+        border-radius: 41px;
+        font-size: .22rem;
+        color: #fff;
+      }
     </style>
 </head>
 
@@ -47,8 +81,18 @@
             <span class="header-right">您的超级订阅服务即将到期,为不影响您的使用。请立即续费</span>
         </div>
         <div class="vip-body">
-            <div class="j-notice-bar bar-red vip-bar" style="text-align: center;">限时续费,3个月起,续多久送多久!</div>
-            <ul style="padding: .16rem .24rem;">
+            <!-- <div class="j-notice-bar bar-red vip-bar" style="text-align: center;">限时续费,3个月起,续多久送多久!</div> -->
+          <div class="area-result" data-new-vip style="display: none;">
+            <div class="item area" style="display: flex;align-items: center;">
+              <span class="item-l a-r-label">省份数量</span>
+              <span class="a-r-val"><span class="item-r"></span></span>
+            </div>
+          </div>
+            <!-- 商品规格 -->
+          <div id="goods-size-vue" data-new-vip style="display: none;">
+            <goods-size-template ref="goodsSize" :config="props" @select-vip-size="getGoodSize"></goods-size-template>
+          </div>
+            <ul style="padding: .16rem .24rem;" data-old-vip>
                 <li class="body-item area-industry">
                     <div class="item-container">
                         <div class="item area">
@@ -82,7 +126,7 @@
                         </div>
                     </a>
                 </li>
-                <div class="tips">
+                <div class="tips" data-old-vip>
                     <div class="tip-title l-line">续费说明</div>
                     <div class="tip-content">
                         <div>1、仅支持原套餐延长周期续费,不支持套餐变更(含增加、减少、更改)原订阅的省份、城市、行业。 <br />续费费用=续费周期(按月/年)/原地区/原行业</div>
@@ -104,6 +148,9 @@
                     </div>
                 </li>
             </ul>
+            <div data-new-vip style="display: none;">
+              {{include "/common/commonRules.html"}}
+            </div>
         </div>
         <!-- vue组件 -->
         <div class="vip-footer renew" id="coupon-vue">
@@ -332,6 +379,7 @@
     </div>
     <script src="/vipsubscribe/js/jquery-2.1.4.js?v={{Msg "seo" "version"}}"></script>
     <script src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js></script>
+    <script src='{{Msg "seo" "cdn"}}/common-module/vipsubscribe/js/vip-size-template.js?v={{Msg "seo" "version"}}'></script>
     <script src='{{Msg "seo" "cdn"}}/common-module/coupon/js/pay-order-template.js?v={{Msg "seo" "version"}}'></script>
     <script src="/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
     <script src="/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}"></script>

Some files were not shown because too many files changed in this diff