Parcourir la source

Merge branch 'dev2.0' of 192.168.3.17:qmx/jy into dev2.0

张金坤 il y a 8 ans
Parent
commit
0fa79a2731

+ 8 - 0
.idea/misc.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+<<<<<<< HEAD
+  <component name="GOROOT" path="/usr/local/go" />
+=======
+  <component name="GOROOT" path="C:/go" />
+>>>>>>> b673ea6b82d098a5040ba1bd5d56ac194a55394d
+</project>

+ 42 - 19
src/jfw/front/entsearch.go

@@ -4,27 +4,17 @@ import (
 	"fmt"
 	"jfw/jylabutil"
 	"log"
-	//"math/rand"
 	"qfw/util"
-	//"qfw/util/redis"
-
 	"time"
+	_"jfw/jyutil"
 
-	"jfw/jyutil"
-	//"regexp"
 	"strconv"
-	//"strings"
-	//"sync"
-
 	"github.com/go-xweb/xweb"
-
-	//. "github.com/thinxer/go-word2vec"
-	//"gopkg.in/mgo.v2/bson"
 )
 
 type Entsearch struct {
 	*xweb.Action
-	bidsearchforent  xweb.Mapper `xweb:"/jylab/bidsearchforent"`
+	bidsearchforent  xweb.Mapper `xweb:"/jylab/bidsearchforent.html"`
 	pcSearchZbqyAjax xweb.Mapper `xweb:"/jylab/pcSearchZbqyAjax"`
 }
 
@@ -36,13 +26,21 @@ func (e *Entsearch) Bidsearchforent() error {
 	defer util.Catch()
 	searchvalue := e.GetString("searchvalue")
 	area := e.GetString("area")
+	pricetype := e.GetString("pricetype")
 	minprice, _ := strconv.Atoi(e.GetString("minprice"))
 	maxprice, _ := strconv.Atoi(e.GetString("maxprice"))
+	if pricetype == "y" {
+		//搜索minprice和maxprice价格区间的数据
+	}
+	if pricetype == "n" || pricetype == "" {
+		//搜索所有价格
+	}
 
-	fmt.Println("searchvalue==", searchvalue)
-	fmt.Println("area==", area)
-	fmt.Println("lower==", minprice)
-	fmt.Println("upper==", maxprice)
+	fmt.Println("searchvalue1==", searchvalue)
+	fmt.Println("area1==", area)
+	fmt.Println("lower1==", minprice)
+	fmt.Println("upper1==", maxprice)
+	fmt.Println("pricetype1==", pricetype)
 
 	if minprice == 0 {
 		e.T["minprice"] = ""
@@ -57,12 +55,12 @@ func (e *Entsearch) Bidsearchforent() error {
 
 	e.T["searchvalue"] = searchvalue
 	e.T["area"] = area
-
+	e.T["pricetype"] = pricetype
 	log.Println("-------中标企业搜索:")
 
 	list := []map[string]interface{}{}
 	list = jylabutil.GetProjectByEntName("", "", 0, 0, 1, 10)
-	jyutil.BidListConvert("", &list)
+	//jyutil.BidListConvert("", &list)
 
 	for k, v := range list {
 		v["k"] = k + 1
@@ -84,14 +82,39 @@ func (e *Entsearch) PcSearchZbqyAjax() error {
 	defer util.Catch()
 	searchvalue := e.GetString("searchvalue")
 	area := e.GetString("area")
+	pricetype := e.GetString("pricetype")
 	minprice, _ := strconv.Atoi(e.GetString("minprice"))
 	maxprice, _ := strconv.Atoi(e.GetString("maxprice"))
 
+	if pricetype == "y" {
+		//搜索minprice和maxprice价格区间的数据
+	}
+	if pricetype == "n" {
+		//搜索所有价格
+	}
 	fmt.Println("searchvalue==", searchvalue)
 	fmt.Println("area==", area)
 	fmt.Println("lower==", minprice)
 	fmt.Println("upper==", maxprice)
+	fmt.Println("pricetype==", pricetype)
+
+	list := []map[string]interface{}{}
+	list = jylabutil.GetProjectByEntName(searchvalue, area, minprice, maxprice, 1, 10)
+	//jyutil.BidListConvert("", &list)
 
-	return nil
+	for k, v := range list {
+		v["k"] = k + 1
+		t1 := time.Unix(util.Int64All(v["createtime"]), 0)
+		v["time1"] = util.TimeDiff(t1)
+		t2 := time.Unix(util.Int64All(v["zbtime"]), 0)
+		v["time2"] = util.TimeDiff(t2)
 
+		//fmt.Println(v["industry"])
+		//for i,z := range v{
+		//	fmt.Println(i)
+		//	fmt.Println(z)
+		//}
+	}
+	e.T["list"] = list
+	return e.Render("/pc/biddingsearch_enterprise.html", &e.T)
 }

+ 4 - 1
src/jfw/front/front.go

@@ -87,7 +87,7 @@ type Front struct {
 	historypush       xweb.Mapper `xweb:"/swordfish/historypush"`        //历时推送记录
 	historypushPaging xweb.Mapper `xweb:"/swordfish/historypush/paging"` //历时推送记录--分页
 	aboutus           xweb.Mapper `xweb:"/front/aboutus.html"`           //关于我们
-	busicooperation	  xweb.Mapper `xweb:"/front/busicooperation.html"`   //商务合作
+	busicooperation   xweb.Mapper `xweb:"/front/busicooperation.html"`   //商务合作
 	//bidsearchforent	  xweb.Mapper `xweb:"/front/bidsearchforent.html"`   //中标企业搜索
 
 	/********************wxkeyset:v1.8**************************/
@@ -102,6 +102,9 @@ type Front struct {
 	mobtopics       xweb.Mapper `xweb:"/promotional/mobtopics.html"` //移动端专题推广
 	saveuserlogs    xweb.Mapper `xweb:"/front/saveuserlogs"`         //保存用户关注日志
 	followinfo      xweb.Mapper `xweb:"/front/followinfo"`           //redis用户关注日志
+
+	/********************dev:2.0**************************/
+	getClassifyList xweb.Mapper `xweb:"/front/getClassifyList"` //得到标签页表格数据
 }
 
 var sewx util.SimpleEncrypt //微信的加密方法

+ 41 - 33
src/jfw/front/supsearch.go

@@ -61,9 +61,8 @@ func (p *Pcsearch) PcSearchIndex() error {
 	subtype := p.GetString("subtype")         //信息类型
 	minprice, _ := p.GetFloat("minprice")     //最低价格
 	maxprice, _ := p.GetFloat("maxprice")     //最高价格
-	log.Println(minprice, "---", maxprice)
-	industry := p.GetString("industry")     //选中的行业
-	selectType := p.GetString("selectType") //标题或全文
+	industry := p.GetString("industry")       //选中的行业
+	selectType := p.GetString("selectType")   //标题或全文
 	selectTypesess := p.GetSession("selectType")
 	if selectTypesess != nil && selectTypesess != "" {
 		selectType = selectTypesess.(string)
@@ -73,10 +72,21 @@ func (p *Pcsearch) PcSearchIndex() error {
 	}
 	var count int64
 	var list *[]map[string]interface{}
+	var status = 1
+	log.Println(searchvalue, "___:", p.Method())
 	if len(searchvalue) > 0 {
+		status = 2
 		count, list = getBidSearchData(searchvalue, area, publishtime, subtype, industry, 0, true, selectType)
 	} else if p.Method() == "POST" {
+		status = 2
 		count, list = getLastNewsData(searchvalue, area, publishtime, subtype, industry, 0, true)
+	} else {
+		p.DisableHttpCache()
+		Newbids()
+		data := redis.Get("other", "index_list").([]interface{})
+		p.T["list"] = data[0]
+	}
+	if status == 2 {
 		if list != nil {
 			for _, v := range *list {
 				v["_id"] = util.EncodeArticleId2ByCheck(v["_id"].(string))
@@ -96,37 +106,35 @@ func (p *Pcsearch) PcSearchIndex() error {
 			}
 		}
 		p.T["list"] = list
-		p.T["area"] = area
-		p.T["publishtime"] = publishtime
-		p.T["timeslot"] = p.GetString("timeslot")
-		p.T["toptype"] = toptype
-		p.T["subtype"] = subtype
-		p.T["count"] = count
-		p.T["keywords"] = keywords
-		p.T["searchvalue"] = searchvalue
-		p.T["selectType"] = selectType
-		p.T["login"] = p.Session().Get("user")
-		p.SetSession("paramkey", keywords)
-		if publishtime == "lately-7" {
-			p.SetSession("parampublishtime", "最近7天")
-		} else if publishtime == "lately-30" {
-			p.SetSession("parampublishtime", "最近30天")
-		} else if publishtime == "thisyear" {
-			p.SetSession("parampublishtime", "去年")
-		} else {
-			p.SetSession("parampublishtime", publishtime)
-		}
-		p.SetSession("paramarea", area)
-		if subtype != "" {
-			p.SetSession("paraminfotype", subtype)
-		} else {
-			p.SetSession("paraminfotype", toptype)
-		}
+	}
+	p.T["area"] = area
+	p.T["publishtime"] = publishtime
+	p.T["timeslot"] = p.GetString("timeslot")
+	p.T["toptype"] = toptype
+	p.T["subtype"] = subtype
+	p.T["count"] = count
+	p.T["keywords"] = keywords
+	p.T["searchvalue"] = searchvalue
+	p.T["selectType"] = selectType
+	p.T["industry"] = industry
+	p.T["minprice"] = minprice
+	p.T["maxprice"] = maxprice
+	p.T["login"] = p.Session().Get("user")
+	p.SetSession("paramkey", keywords)
+	if publishtime == "lately-7" {
+		p.SetSession("parampublishtime", "最近7天")
+	} else if publishtime == "lately-30" {
+		p.SetSession("parampublishtime", "最近30天")
+	} else if publishtime == "thisyear" {
+		p.SetSession("parampublishtime", "去年")
 	} else {
-		p.DisableHttpCache()
-		Newbids()
-		data := redis.Get("other", "index_list").([]interface{})
-		p.T["list"] = data[0]
+		p.SetSession("parampublishtime", publishtime)
+	}
+	p.SetSession("paramarea", area)
+	if subtype != "" {
+		p.SetSession("paraminfotype", subtype)
+	} else {
+		p.SetSession("paraminfotype", toptype)
 	}
 	industrylist, sortArray := getindustrys()
 	p.T["industrylist"] = industrylist

+ 39 - 12
src/jfw/front/swordfish.go

@@ -855,7 +855,7 @@ func (m *Front) WxsearchlistPaging() {
 			if history == "" {
 				arrs = make([]string, 0)
 			}
-			var historyFlag= 0
+			var historyFlag = 0
 			for _, v := range arrs {
 				if v == strings.Trim(searchvalue, " ") {
 					historyFlag = 1
@@ -892,7 +892,6 @@ func (m *Front) WxsearchlistPaging() {
 
 	}
 
-
 	m.ServeJson(map[string]interface{}{
 		"list":        list,
 		"hasNextPage": list != nil && len(*list) == wx_pageSize && pageNum < wx_maxPageNum,
@@ -919,7 +918,7 @@ func (m *Front) DelWxHistorySearch() {
 //微信端搜索
 func getWxsearchlistData(keywords, searchvalue, scope, publishtime, subtype, industry string, pageNum int, selectType string) (list *[]map[string]interface{}) {
 	query := getBidSearchQuery(scope, publishtime, subtype, industry) //scope是地区对应传进的areas, stype是类型对应scope
-	fmt.Print("keywords>>>",keywords,"searchvalue>>",searchvalue)
+	fmt.Print("keywords>>>", keywords, "searchvalue>>", searchvalue)
 	if len(keywords) > 0 {
 		if selectType == "all" { //全文搜索
 			list = elastic.GetByNgramOther(INDEX, TYPE, searchvalue, query, `"title","detail"`, bidSearch_sort, bidSearch_field_1, (pageNum-1)*wx_pageSize, wx_pageSize, true, false, 100)
@@ -1928,9 +1927,9 @@ func searchresulthtml(list *[]map[string]interface{}) string {
 	for i := 0; i < len(*list); i++ {
 		listdata := (*list)[i]
 		j = i + 1
-		listhtml += `<li><div>` + strconv.Itoa(j) + `.</div>`
+		listhtml += `<li><div class="liLuceneList"><div class="luce-left"><em>` + strconv.Itoa(j) + `.</em>`
 		if listdata["title"] != "" {
-			listhtml += `<div><a onclick="noIn(this)" dataId="` + util.EncodeArticleId2ByCheck(util.ObjToString(listdata["_id"])) + `" target="_blank">` + util.ObjToString(listdata["title"]) + `</a></div><div>`
+			listhtml += `<div class="left-title"><a onclick="noIn(this)" dataId="` + util.EncodeArticleId2ByCheck(util.ObjToString(listdata["_id"])) + `" target="_blank">` + util.ObjToString(listdata["title"]) + `</a></div></div><div class="luce-right">`
 		}
 		area, _ := listdata["area"].(string)
 		area = strings.TrimSpace(area)
@@ -1950,19 +1949,29 @@ func searchresulthtml(list *[]map[string]interface{}) string {
 		}
 		stpadd, areaadd := classify(finalType, area)
 		if area != "" && area != "A" {
-			listhtml += `<span class="com-area"><a href="/list/area/` + areaadd + `.html">` + area + `</a></span>`
+			listhtml += `<a href="/list/area/` + areaadd + `.html">` + area + `</a>`
+		} else {
+			listhtml += `<a href="#" style="display:none;"></a>`
 		}
 		if finalType != "" {
-			listhtml += `<span class="com-type"><a href="/list/stype/` + stpadd + `.html">` + finalType + `</a></span>`
+			listhtml += `<a href="/list/stype/` + stpadd + `.html">` + finalType + `</a>`
+		} else {
+			listhtml += `<a href="#" style="display:none;"></a>`
+		}
+		industry, _ := listdata["industry"].(string)
+		if industry != "" {
+			listhtml += `<a href="javascript:volid(0);">` + industry + `</a>`
+		} else {
+			listhtml += `<a href="#" style="display:none;"></a>`
 		}
 		publishtime, _ := listdata["publishtime"].(float64)
 		if publishtime != 0 {
 			diff := util.TimeDiff(time.Unix(util.Int64All(publishtime), 0))
 			if diff != "" {
-				listhtml += `<span class="com-time"><i class="glyphicon bofangjilu"></i>` + diff + `</span>`
+				listhtml += `<span class="com-time">` + diff + `</span>`
 			}
 		}
-		listhtml += `</div></li>`
+		listhtml += `</div></div></li>`
 	}
 	return listhtml
 }
@@ -1973,12 +1982,14 @@ func (f *Front) SearchResult(at, name string) error {
 	var no = 5
 	var area = ""
 	var stype = ""
+	var industry = ""
 	var startPage, currentPage, limitcount int
 	limitcount = util.IntAll(config.Seoconfig["limitcount"])
 	var res = ""
 	var seotitle = ""
 	var seokeywords = ""
 	var seodescription = ""
+	f.T["industrylist"], f.T["sortArray"] = getindustrys()
 	var shareid = f.GetString("id")
 	if len(shareid) == 0 {
 		shareid = fmt.Sprintf("%s%d", config.Seoconfig["jybqy"].(string)+fmt.Sprintf("%d", time.Now().UnixNano())[8:14], rand.Intn(9))
@@ -2015,13 +2026,15 @@ func (f *Front) SearchResult(at, name string) error {
 	if area == "全国" {
 		return f.Redirect("/swordfish/searchinfolist.html")
 	}
-	if area != "" || stype != "" {
+	if area != "" || stype != "" || industry != "" {
 		list := redis.Get("other", "classify_"+name)
 		query1 := `{"query": {"bool": {"must":[`
 		if area != "" {
 			query1 += `{"term":{"area":"` + area + `"}}`
 		} else if stype != "" {
 			query1 += `{"term":{"subtype":"` + stype + `"}}`
+		} else if industry != "" {
+			query1 += `{"term":{"industry":"` + industry + `"}}`
 		}
 		query1 += `],"should": [],"minimum_should_match": 1}}}`
 		query := getLastNewsQuery(area, "", stype)
@@ -2035,17 +2048,18 @@ func (f *Front) SearchResult(at, name string) error {
 			if count1 < startPage || startPage < 0 {
 				startPage = 0
 			}
-			datas = elastic.GetPage(INDEX, TYPE, query, bidSearch_sort, `"_id","title","publishtime","toptype","subtype","type","area","href"`, startPage, limitcount)
+			datas = elastic.GetPage(INDEX, TYPE, query, bidSearch_sort, `"_id","title","publishtime","toptype","subtype","type","area","href","bidopentime","winner","agency","bidamount","budget","biddingcontent","projectname"`, startPage, limitcount)
 			redis.Put("other", "classify_"+name, datas, 2*60*60)
 		} else {
 			b, _ := json.Marshal(list)
 			json.Unmarshal(b, &datas)
 		}
-
+		jyutil.BidListConvert(industry, datas)
 		res = searchresulthtml(datas)
 		f.T["res"] = res
 		f.T["area"] = area
 		f.T["stype"] = stype
+		f.T["classifyname"] = name
 		f.SetSession("paramarea", area)
 		f.SetSession("paraminfotype", stype)
 		f.T["shareid"] = se.EncodeString(shareid)
@@ -2053,6 +2067,19 @@ func (f *Front) SearchResult(at, name string) error {
 	return f.Render("/pc/classifylist.html", &f.T)
 }
 
+//
+func (f *Front) GetClassifyList() error {
+	defer util.Catch()
+	//判断用户是否开启超级搜索?
+
+	classifyname := f.GetString("classifyname")
+	data := redis.Get("other", "classify_"+classifyname)
+	f.ServeJson(map[string]interface{}{
+		"data": data,
+	})
+	return nil
+}
+
 //
 func classify(stp, area string) (string, string) {
 	var areas, _ = config.Seoconfig["area"].(map[string]interface{})

+ 5 - 5
src/jfw/jylabutil/entsearch.go

@@ -36,7 +36,7 @@ upper	上限单位万
 pagenum	页码
 pagesize每页数量
 */
-func GetProjectByEntName(entname string, area string, lower, upper, pagenum, pagesize int) []map[string]interface{} {
+func GetProjectByEntName(entname string, area string, lower, upper float64, pagenum, pagesize int) []map[string]interface{} {
 	if pagenum < 1 {
 		pagenum = 1
 	}
@@ -50,7 +50,7 @@ func GetProjectByEntName(entname string, area string, lower, upper, pagenum, pag
 	return list
 }
 
-func getSearchQuery(area string, lower, upper int) string {
+func getSearchQuery(area string, lower, upper float64) string {
 	query := ``
 	if area != "" {
 		query += `{"terms":{"area":[`
@@ -66,19 +66,19 @@ func getSearchQuery(area string, lower, upper int) string {
 		if len(query) > 0 {
 			query += ","
 		}
-		query += `{"range":{"bidamount":{"gte":` + fmt.Sprint(lower*10000) + `,"lte":` + fmt.Sprint(upper*10000) + `}}}`
+		query += `{"range":{"bidamount":{"gte":` + fmt.Sprint(lower) + `,"lte":` + fmt.Sprint(upper) + `}}}`
 	} else {
 		if lower > 0 {
 			if len(query) > 0 {
 				query += ","
 			}
-			query += `{"range":{"bidamount":{"gte":` + fmt.Sprint(lower*10000) + `}}}`
+			query += `{"range":{"bidamount":{"gte":` + fmt.Sprint(lower) + `}}}`
 		}
 		if upper > 0 {
 			if len(query) > 0 {
 				query += ","
 			}
-			query += `{"range":{"bidamount":{"lte":` + fmt.Sprint(upper*10000) + `}}}`
+			query += `{"range":{"bidamount":{"lte":` + fmt.Sprint(upper) + `}}}`
 		}
 	}
 	return query

+ 4 - 0
src/jfw/modules/entsesearch/.idea/misc.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="GOROOT" path="C:/go" />
+</project>

+ 0 - 603
src/jfw/modules/entsesearch/.idea/workspace.xml

@@ -1,603 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ChangeListManager">
-    <list default="true" id="8aeecff7-7661-418b-8b35-28dd61a91106" name="Default" comment="" />
-    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
-    <option name="TRACKING_ENABLED" value="true" />
-    <option name="SHOW_DIALOG" value="false" />
-    <option name="HIGHLIGHT_CONFLICTS" value="true" />
-    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
-    <option name="LAST_RESOLUTION" value="IGNORE" />
-  </component>
-  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
-  <component name="FileEditorManager">
-    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file leaf-file-name="main.go" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main.go">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="200">
-              <caret line="21" column="13" lean-forward="false" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="13" />
-              <folding>
-                <element signature="e#14#173#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="entinfo.go" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/search/entinfo.go">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="0">
-              <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="entsesearch.go" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/search/entsesearch.go">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="1220">
-              <caret line="70" column="0" lean-forward="false" selection-start-line="70" selection-start-column="0" selection-end-line="70" selection-end-column="0" />
-              <folding>
-                <element signature="e#16#129#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="config.json" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/config.json">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="20">
-              <caret line="1" column="23" lean-forward="true" selection-start-line="1" selection-start-column="23" selection-end-line="1" selection-end-column="41" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="entseSearch.html" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/web/templates/weixin/entseSearch.html">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="20">
-              <caret line="263" column="50" lean-forward="false" selection-start-line="263" selection-start-column="50" selection-end-line="263" selection-end-column="50" />
-              <folding>
-                <element signature="n#style#0;n#div#0;n#div#0;n#form#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="mongo.go" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/../../tools/mongo.go">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="114">
-              <caret line="12" column="34" lean-forward="true" selection-start-line="12" selection-start-column="34" selection-end-line="12" selection-end-column="34" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="config.go" pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/../../config/config.go">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="80">
-              <caret line="6" column="4" lean-forward="false" selection-start-line="6" selection-start-column="4" selection-end-line="6" selection-end-column="4" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="entsearch.go" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/../../jylabutil/entsearch.go">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="302">
-              <caret line="84" column="0" lean-forward="false" selection-start-line="84" selection-start-column="0" selection-end-line="84" selection-end-column="0" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="tools.go" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/../../tools/tools.go">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="0">
-              <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-    </leaf>
-  </component>
-  <component name="FindInProjectRecents">
-    <findStrings>
-      <find>recList</find>
-    </findStrings>
-  </component>
-  <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
-  <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
-  <component name="JsGulpfileManager">
-    <detection-done>true</detection-done>
-    <sorting>DEFINITION_ORDER</sorting>
-  </component>
-  <component name="ProjectFrameBounds">
-    <option name="x" value="-8" />
-    <option name="y" value="-8" />
-    <option name="width" value="1382" />
-    <option name="height" value="744" />
-  </component>
-  <component name="ProjectView">
-    <navigator currentView="ProjectPane" proportions="" version="1">
-      <flattenPackages />
-      <showMembers />
-      <showModules />
-      <showLibraryContents />
-      <hideEmptyPackages />
-      <abbreviatePackageNames />
-      <autoscrollToSource />
-      <autoscrollFromSource />
-      <sortByType />
-      <manualOrder />
-      <foldersAlwaysOnTop value="true" />
-    </navigator>
-    <panes>
-      <pane id="Scope" />
-      <pane id="Scratches" />
-      <pane id="ProjectPane">
-        <subPane>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="entsesearch" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="entsesearch" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="entsesearch" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="entsesearch" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="src" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="entsesearch" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="entsesearch" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="src" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="web" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="templates" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="weixin" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="entsesearch" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="entsesearch" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="src" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="web" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="templates" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="entsesearch" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="entsesearch" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="src" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="web" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="entsesearch" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="entsesearch" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="src" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="search" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-        </subPane>
-      </pane>
-    </panes>
-  </component>
-  <component name="PropertiesComponent">
-    <property name="settings.editor.selected.configurable" value="com.goide.configuration.GoLibrariesConfigurableProvider" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$/src/main.go" />
-    <property name="configurable.Global.GOPATH.is.expanded" value="true" />
-    <property name="configurable.Project.GOPATH.is.expanded" value="true" />
-    <property name="configurable.Module.GOPATH.is.expanded" value="true" />
-  </component>
-  <component name="RunDashboard">
-    <option name="ruleStates">
-      <list>
-        <RuleState>
-          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
-        </RuleState>
-        <RuleState>
-          <option name="name" value="StatusDashboardGroupingRule" />
-        </RuleState>
-      </list>
-    </option>
-  </component>
-  <component name="RunManager" selected="Go Application.entseSearch">
-    <configuration default="true" type="GoApplicationRunConfiguration" factoryName="Go Application">
-      <module name="" />
-      <working_directory value="$PROJECT_DIR$" />
-      <go_parameters value="-i" />
-      <filePath value="$PROJECT_DIR$" />
-      <kind value="FILE" />
-      <method />
-    </configuration>
-    <configuration default="true" type="GoRunFileConfiguration" factoryName="Go Single File">
-      <module name="" />
-      <working_directory value="$PROJECT_DIR$" />
-      <filePath value="$PROJECT_DIR$" />
-      <method />
-    </configuration>
-    <configuration default="true" type="GoTestRunConfiguration" factoryName="Go Test">
-      <module name="" />
-      <working_directory value="$PROJECT_DIR$" />
-      <go_parameters value="-i" />
-      <framework value="gotest" />
-      <kind value="DIRECTORY" />
-      <method />
-    </configuration>
-    <configuration default="true" type="JavaScriptTestRunnerJest" factoryName="Jest">
-      <node-interpreter value="project" />
-      <working-dir value="" />
-      <envs />
-      <scope-kind value="ALL" />
-      <method />
-    </configuration>
-    <configuration default="true" type="JavaScriptTestRunnerProtractor" factoryName="Protractor">
-      <config-file value="" />
-      <node-interpreter value="project" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
-      <method />
-    </configuration>
-    <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
-      <node-interpreter>project</node-interpreter>
-      <node-options />
-      <gulpfile />
-      <tasks />
-      <arguments />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="js.build_tools.npm" factoryName="npm">
-      <command value="run" />
-      <scripts />
-      <node-interpreter value="project" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="false" name="entseSearch" type="GoApplicationRunConfiguration" factoryName="Go Application">
-      <output_file path="D:\jianyu\jy\src\jfw\modules\entsesearch\src" />
-      <module name="entsesearch" />
-      <working_directory value="$PROJECT_DIR$" />
-      <go_parameters value="-i" />
-      <filePath value="D:\jianyu\jy\src\jfw\modules\entsesearch\src\main.go" />
-      <kind value="FILE" />
-      <method />
-    </configuration>
-    <list size="1">
-      <item index="0" class="java.lang.String" itemvalue="Go Application.entseSearch" />
-    </list>
-  </component>
-  <component name="ShelveChangesManager" show_recycled="false">
-    <option name="remove_strategy" value="false" />
-  </component>
-  <component name="ToolWindowManager">
-    <frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
-    <layout>
-      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2489019" sideWeight="0.5" order="1" side_tool="false" content_ui="combo" />
-      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
-      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="true" content_ui="tabs" />
-      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4148265" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
-      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="true" content_ui="tabs" />
-      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
-      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
-      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
-      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="3" side_tool="false" content_ui="combo" />
-      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
-      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-    </layout>
-  </component>
-  <component name="TypeScriptGeneratedFilesManager">
-    <option name="processedProjectFiles" value="true" />
-  </component>
-  <component name="VcsContentAnnotationSettings">
-    <option name="myLimit" value="2678400000" />
-  </component>
-  <component name="XDebuggerManager">
-    <breakpoint-manager />
-    <watches-manager />
-  </component>
-  <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/src/main.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="200">
-          <caret line="21" column="13" lean-forward="false" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="13" />
-          <folding>
-            <element signature="e#14#173#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/search/entinfo.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/search/entsesearch.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1400">
-          <caret line="70" column="0" lean-forward="false" selection-start-line="70" selection-start-column="0" selection-end-line="70" selection-end-column="0" />
-          <folding>
-            <element signature="e#16#129#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/config.json">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="60">
-          <caret line="3" column="25" lean-forward="true" selection-start-line="3" selection-start-column="25" selection-end-line="3" selection-end-column="25" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/web/templates/weixin/entseSearch.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="5260">
-          <caret line="263" column="50" lean-forward="true" selection-start-line="263" selection-start-column="50" selection-end-line="263" selection-end-column="50" />
-          <folding>
-            <element signature="n#style#0;n#div#0;n#div#0;n#form#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/../../jylabutil/entsearch.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1600">
-          <caret line="84" column="0" lean-forward="false" selection-start-line="84" selection-start-column="0" selection-end-line="84" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/../../tools/tools.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/../../tools/mongo.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="160">
-          <caret line="12" column="0" lean-forward="false" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="200">
-          <caret line="21" column="13" lean-forward="false" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="13" />
-          <folding>
-            <element signature="e#14#173#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/search/entinfo.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/search/entsesearch.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1220">
-          <caret line="70" column="0" lean-forward="false" selection-start-line="70" selection-start-column="0" selection-end-line="70" selection-end-column="0" />
-          <folding>
-            <element signature="e#16#129#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/config.json">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="60">
-          <caret line="3" column="25" lean-forward="true" selection-start-line="3" selection-start-column="25" selection-end-line="3" selection-end-column="25" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/../../tools/mongo.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="160">
-          <caret line="12" column="54" lean-forward="false" selection-start-line="12" selection-start-column="40" selection-end-line="12" selection-end-column="54" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/../../jylabutil/entsearch.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1600">
-          <caret line="84" column="0" lean-forward="false" selection-start-line="84" selection-start-column="0" selection-end-line="84" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/../../tools/tools.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/web/templates/weixin/entseSearch.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="5260">
-          <caret line="263" column="50" lean-forward="true" selection-start-line="263" selection-start-column="50" selection-end-line="263" selection-end-column="50" />
-          <folding>
-            <element signature="n#style#0;n#div#0;n#div#0;n#form#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="200">
-          <caret line="21" column="13" lean-forward="false" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="13" />
-          <folding>
-            <element signature="e#14#173#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/search/entinfo.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/search/entsesearch.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1220">
-          <caret line="70" column="0" lean-forward="false" selection-start-line="70" selection-start-column="0" selection-end-line="70" selection-end-column="0" />
-          <folding>
-            <element signature="e#16#129#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/../../tools/tools.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/../../jylabutil/entsearch.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="302">
-          <caret line="84" column="0" lean-forward="false" selection-start-line="84" selection-start-column="0" selection-end-line="84" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/web/templates/weixin/entseSearch.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="20">
-          <caret line="263" column="50" lean-forward="false" selection-start-line="263" selection-start-column="50" selection-end-line="263" selection-end-column="50" />
-          <folding>
-            <element signature="n#style#0;n#div#0;n#div#0;n#form#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/config.json">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="20">
-          <caret line="1" column="23" lean-forward="true" selection-start-line="1" selection-start-column="23" selection-end-line="1" selection-end-column="41" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/../../tools/mongo.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="114">
-          <caret line="12" column="34" lean-forward="true" selection-start-line="12" selection-start-column="34" selection-end-line="12" selection-end-column="34" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/../../config/config.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="80">
-          <caret line="6" column="4" lean-forward="false" selection-start-line="6" selection-start-column="4" selection-end-line="6" selection-end-column="4" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-  </component>
-</project>

+ 39 - 23
src/jfw/modules/entsesearch/src/search/entsesearch.go

@@ -11,6 +11,10 @@ import (
 	"qfw/util"
 )
 
+const (
+	wx_maxPageNum         = 20
+	wx_pageSize           = 1
+)
 type EntSeSearch struct {
 	*xweb.Action
 	toSearch  xweb.Mapper `xweb:"/jylab/entsesearch/search"`  //跳转到中标企业查询页面
@@ -24,7 +28,7 @@ func init() {
 }
 
 func (e *EntSeSearch) ToSearch() error{
-	e.T["pageSize"] = "10"
+	e.T["pageSize"] = wx_pageSize
 	return e.Render("/weixin/entseSearch.html", &e.T)
 }
 
@@ -43,30 +47,42 @@ func (e *EntSeSearch) RecList() {
 func (e *EntSeSearch) ProList() {
 	var searchname = e.GetString("searchname")
 	var scope = e.GetString("scope")
-	//var money = e.GetString("money")
-	var money_from,_ = strconv.Atoi(e.GetString("money_from"))
-	var money_to,_ = strconv.Atoi(e.GetString("money_to"))
-	fmt.Println(searchname,scope,money_from,money_to)
-	proMap := jylabutil.GetProjectByEntName(searchname,scope,money_from,money_to,1,10)
-	fmt.Println("proMap------------------",proMap)
-	for _,val := range proMap{
-		var jgtime = val["jgtime"]
-		if jgtime!=nil{
-			val["jgtime"] = time.Unix(int64(jgtime.(float64)),0).Format("20060102")
-		}else{
-			val["jgtime"] = ""
-		}
-		var bidamount = val["bidamount"]
-		if bidamount!=nil{
-			var bidamount_f = bidamount.(float64)/10000
-			val["bidamount"] = strings.Replace(fmt.Sprintf("%.2f", bidamount_f),".00","",-1)
-		}else{
-			val["bidamount"] = ""
-		}
+	var money_from = e.GetString("money_from")
+	var money_to = e.GetString("money_to")
+	var money_from_p = float64(0)
+	var money_to_p = float64(0)
+	if money_from !=""{
+		money_from_p,_ = strconv.ParseFloat(money_from, 64)
+	}
+	if money_to !=""{
+		money_to_p,_ = strconv.ParseFloat(money_to, 64)
+	}
+	var pageNum,_ = strconv.Atoi(e.GetString("pageNum"))
 
-		val["sourceinfoid"] = util.EncodeArticleId2ByCheck(val["sourceinfoid"].(string))
+	fmt.Println(searchname,scope,money_from_p,money_to_p)
+	proList := make([]map[string]interface{},0)
+	if pageNum<=wx_maxPageNum {
+		proList = jylabutil.GetProjectByEntName(searchname,scope,money_from_p,money_to_p,pageNum,wx_pageSize)
+		//fmt.Println("proList------------------2",proList)
+		for _,val := range proList{
+			var jgtime = val["jgtime"]
+			if jgtime!=nil{
+				val["jgtime"] = time.Unix(int64(jgtime.(float64)),0).Format("20060102")
+			}else{
+				val["jgtime"] = ""
+			}
+			var bidamount = val["bidamount"]
+			if bidamount!=nil{
+				var bidamount_f = bidamount.(float64)/10000
+				val["bidamount"] = strings.Replace(fmt.Sprintf("%.2f", bidamount_f),".00","",-1)
+			}else{
+				val["bidamount"] = ""
+			}
+			val["sourceinfoid"] = util.EncodeArticleId2ByCheck(val["sourceinfoid"].(string))
+		}
 	}
 	e.ServeJson(map[string]interface{}{
-		"proList": proMap,
+		"proList": proList,
+		"hasNextPage": proList != nil && len(proList) == wx_pageSize && pageNum < wx_maxPageNum,
 	})
 }

BIN
src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/images/wx/jysorry_1.png


BIN
src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/images/wx/jyyjfk.png


+ 383 - 88
src/jfw/modules/entsesearch/src/web/templates/weixin/entseSearch.html

@@ -7,6 +7,7 @@
 <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,initial-scale=1.0" user-scalable="no" />
 <meta name="renderer" content="webkit"/>
 <link href="/jylab/entsesearch/wxswordfish/style.css?v={{Msg "seo" "version"}}" rel="stylesheet">
+<link href="/jylab/entsesearch/css/dropload.css?v={{Msg "seo" "version"}}" rel="stylesheet">
 {{include "/common/pnc.html"}}
 <link href="/jylab/entsesearch/css/wxlist.css?v={{Msg "seo" "version"}}" rel="stylesheet">
 <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
@@ -16,9 +17,129 @@
 <script src="/jylab/entsesearch/wxswordfish/search.js?v={{Msg "seo" "version"}}"></script>
 <script src="/jylab/entsesearch/wxswordfish/jquery.resize.js"></script>
 <script src="/jylab/entsesearch/js/dropload.js?v={{Msg "seo" "version"}}"></script>
-
 <script src="/jylab/entsesearch/js/rem.js"></script>
 <link rel="stylesheet" href="/jylab/entsesearch/css/reset.css" />
+
+<script>
+    var scrollTop = 0;
+    var listCache = "";
+    var pageNumCache = 1;
+    var noMoreCache = false;
+    var moneyFromCache = "";
+    var moneyToCache = "";
+    var scopeCache = "";
+    var pageSize = {{.T.pageSize}};
+    var pageNum = "1";
+    //是否有列表数据
+    var dataListFlag = true;
+    //查询参数
+    var reqParam = null;
+    $(function () {
+        reqParam = {
+            "searchname": $.trim($(".searchname").val()),
+            "money_from": "",
+            "money_to": "",
+            "scope": "",
+            "pageNum": pageNum
+        };
+        //返回时 在缓存取数据
+        var loadCacheData = false;
+        if (sessionStorage && sessionStorage.wxsearchScrollTop && sessionStorage.wxsearchListCache) {
+            loadCacheData = true;
+            pageNum = sessionStorage.wxsearchPageNumCache;
+            noMoreCache = sessionStorage.wxsearchNoMoreCache;
+            $("#list").css("visibility", "hidden");
+            appendListHtml(sessionStorage.wxsearchListCache, pageNum);
+            if (noMoreCache == "true") {
+                initDroploadNoMoreData();
+            }else{
+                initDropload();
+            }
+            sessionStorage.removeItem("wxsearchPageNumCache");
+            sessionStorage.removeItem("wxsearchListCache");
+
+            moneyFromCache = sessionStorage.wxsearchMoneyFromCache;
+            moneyToCache = sessionStorage.wxsearchMoneyToCache;
+            $("#money_from").val(moneyFromCache);
+            $("#money_to").val(moneyToCache);
+            if(moneyFromCache!="" || moneyToCache!=""){
+                $(".money-inp").addClass("money-inp-active");
+                $(".money .btn").removeClass("active_m");
+            }else{
+                $(".money .btn").addClass("active_m");
+                $(".money-inp").removeClass("money-inp-active");
+            }
+            sessionStorage.removeItem("wxsearchMoneyFromCache");
+            sessionStorage.removeItem("wxsearchMoneyToCache");
+
+            scopeCache = sessionStorage.wxsearchScopeCache;
+            if(scopeCache != ""){
+                $(".contentone").find("ul:first li:first .btn").removeClass("active");
+                scopeCache = scopeCache.split(",");
+                for(var i=0;i<scopeCache.length;i++){
+                    $(".contentone").find(".btn").each(function(){
+                        if($(this).text() == scopeCache[i]){
+                            $(this).addClass("active");
+                            if($(this).parent("li").find(".btn").length == $(this).parent("li").find(".btn.active").length){
+                                $(this).prevAll('div[id="dqbtn"]').addClass("active");
+                            };
+                            return false;
+                        }
+                    });
+                }
+            }
+            sessionStorage.removeItem("wxsearchScopeCache");
+
+            setTimeout(function () {
+                $(window).scrollTop(sessionStorage.wxsearchScrollTop);
+                sessionStorage.removeItem("wxsearchScrollTop");
+                $("#list").css("visibility", "visible");
+            }, 300);
+        } else {
+            $(window).scrollTop(0);
+        }
+    });
+
+    function initDropload(){
+        $(".dropload-down,.dropload-noData").remove();
+        //上拉分页
+        $('#wrapper').dropload({
+            scrollArea: window,
+            loadDownFn: function (me) {
+                beforeSubmit();
+                pageNum++;
+                reqParam["pageNum"] = pageNum;
+                $.ajax({
+                    type: 'post',
+                    url: '/jylab/entsesearch/proList',
+                    data: reqParam,
+                    dataType: 'json',
+                    success: function (data) {
+                        //没有数据
+                        if (data["proList"] == null || data["proList"].length == 0) {
+                            noMoreData(me);
+                            return;
+                        }
+                        var html = getHtml(data["proList"], reqParam["pageNum"]);
+                        // 每次数据插入,必须重置
+                        appendListHtml(html, pageNum);
+                        //没有下一页了
+                        if (!data.hasNextPage) {
+                            // 锁定
+                            me.lock();
+                            // 无数据
+                            me.noData();
+                        }
+                        me.resetload();
+                    },
+                    error: function (xhr, type) {
+                        noMoreData(me);
+                    }
+                });
+            }
+        });
+    }
+</script>
 <style>
 #searchDiv .searchform{
 	width:79%;
@@ -68,9 +189,9 @@
 	transform: translateZ(0);
 }
 .select{
-	height:40px;
+	height:45px;
 	width:100%;
-	line-height:40px;
+	line-height:45px;
 	border-bottom: 1px solid #ccc;
 }
 .select ul li{
@@ -81,15 +202,15 @@
 }
 .select ul li img{
 	width: 10px;
-    padding-bottom: 5px;
+    padding-bottom: 3px;
     margin-left: 8px;
 }
 .shuxian{
 	border-right: 1px solid #ccc;
     color: #2cb7ca;
-    line-height: 30px;
-    height: 30px;
-    margin-top: 4px;
+    line-height: 35px;
+    height: 35px;
+    margin-top: 5px;
 }
 .selecter{
 	padding:10px;
@@ -127,6 +248,7 @@
 }
 .money-inp input{
 	width:100%;
+	padding-right: 45px;
 }
 .money-inp .min-price{
 	width:42%;
@@ -172,7 +294,7 @@
 }
 .bottom_btn .reset{
 	background-color:#eff9fa;
-	color:2cb7ca;
+	color:#2cb7ca;
 }
 .bottom_btn .sure{
 	background-color:#2cb7ca;
@@ -199,7 +321,8 @@
 }
 
 #jytables{
-	padding: .3rem;
+	/*padding: .3rem;*/
+	padding-bottom: .3rem;
 	padding-top: .4rem;
 }
 #jytables table{
@@ -229,14 +352,18 @@
 	color: #2cb7ca;
 }
 
+.money-inp-active{
+	background-color: #2cb7ca;
+}
+
 .tip_m{
 	font-size: 14px;
-	padding: 0 .3rem;
+	/*padding: 0 .3rem;*/
 	margin-bottom:70px;
 	line-height: 20px;
 }
 #recList{
-	z-index: 1;
+	z-index: 1000;
 	position: absolute;
 	background: rgb(255, 255, 255);
 	width: 79%;
@@ -246,10 +373,27 @@
 	background-color: #24C0D7;
 	color: #FFFFFF;
 }
+
+#wrapper,.nullcontent{
+	/*padding:0px 20px;*/
+	padding:0px 15px;
+	background-color:#fff;
+}
+.nullcontent{
+	padding-top: 10%;
+	position: absolute;
+	top: 65px;
+	left: 0px;
+	right: 0px;
+	border-top: 1px solid #f4f4f9;
+}
+#wrapper{
+	margin-bottom: 52px;
+}
 </style>
 </head>
 <body>
-<!-->顶部搜索<-->
+<!--顶部搜索-->
 <div id="searchDiv">
 	<form class="searchform" id="searchform" method="post" target="listf">
 	<div class="wxhead">
@@ -268,7 +412,7 @@
 	</div>
 	</form>
 </div>
-<!-->过滤搜索<-->
+<!--过滤搜索-->
 <div id="set_search" class="hidden">
 	<div class="select">
 		<ul>
@@ -285,12 +429,16 @@
 						<li>价格区间</li>
 						<li class="money-inp">
 							<div class="min-price">
-								<input class="form-control money-input" id="money_from"  placeholder="最低价" type="number"/>
+								<input class="form-control money-input" id="money_from"  placeholder="最低价" type="number"
+									   onkeyup="(this.v=function(){this.value=/^\d+(\.\d{0,2})?$/.test(this.value)==true?this.value:'';}).call(this)"
+									   onblur="this.v();"/>
 								<span class="min-unit">万元</span>
 								<span class="fgx"></span>
 							</div>
 							<div class="max-price">
-								<input class="form-control money-input"  id="money_to" placeholder="最高价" type="number"/>
+								<input class="form-control money-input"  id="money_to" placeholder="最高价" type="number"
+									   onkeyup="(this.v=function(){this.value=/^\d+(\.\d{0,2})?$/.test(this.value)==true?this.value:'';}).call(this)"
+									   onblur="this.v();"/>
 								<span class="max-unit">万元</span>
 							</div>
 						</li>
@@ -368,42 +516,51 @@
 	</div>	
 </div>
 <!--数据列表-->
-<div id="searchList" style="margin-top:.2rem;border-top: 1px solid #E0E0E0;">
-	<section id="jytables">
+<div id="wrapper" style="margin-top:.2rem;border-top: 1px solid #E0E0E0;">
+	<div id="list">
+		<section id="jytables">
 		<table>
 			<thead>
 			<tr>
-				<td>序号</td>
-				<td>中标日期</td>
-				<td>项目名称</td>
-				<td>中标金额(万元)</td>
+				<td width="10%">序号</td>
+				<td width="20%">中标日期</td>
+				<td width="50%">项目名称</td>
+				<td width="20%">中标金额(万元)</td>
 			</tr>
 			</thead>
 			<tbody>
 			</tbody>
 		</table>
 	</section>
+	</div>
+	<!--tip-->
+	<div class="tip_m">提示:为了获得更佳的体验,推荐使用电脑浏览器访问剑鱼网站jianyu360.com查看数据表格。</div>
+</div>
+<!--no data-->
+<!--<div class="nullcontent text-center  hidden">-->
+	<!--<div style="font-size:16px;color:#1d1d1d;">没有找到和该企业匹配的中标项目信息</div>-->
+<!--</div>-->
+<div class="nullcontent text-center  hidden">
+	<div >
+		<img style="width:150px;margin:0px 0 50px 0;" src="/jylab/entsesearch/images/wx/jysorry_1.png">
+	</div>
+	<div style="font-size:16px;color:#1d1d1d;">没有找到和该关键词匹配的信息</div>
+	<div style="width:100%;" class="text-center">
+		<img onClick="window.open('/swordfish/feedback')" style="width: 200px;margin-top: 25px;" src="/jylab/entsesearch/images/wx/jyyjfk.png">
+	</div>
 </div>
-<!--tip-->
-<div class="tip_m">提示:为了获得更佳的体验,推荐使用电脑浏览器访问剑鱼网站jianyu360.com查看数据表格。</div>
 </body>
 <script>
-	var pageSize = {{.T.pageSize}};
-	var pageNum = "1";
-	//查询参数
-    var reqParam = {
-        "searchname": $.trim($(".searchname").val()),
-        "money_from": $.trim($("#money_from").val()),
-        "money_to": $.trim($("#money_to").val()),
-        "scope": "",
-        "pageNum": pageNum
-    };
-	$(function () {
+    $(function () {
+        //
+		if($("#wrapper tbody tr").length==0){
+            $("#wrapper").addClass("hidden");
+            $(".tip_m").addClass("hidden");
+		}
         $(".qc").addClass("hidden");
         $(".tubiao").addClass("hidden");
         $(".jydqsure").css("background","#ccc");
-        $("#searchList").addClass("hidden");
-        $(".tip_m").addClass("hidden");
+        $(".jydqsure").removeClass("jydqsure_active");
 
         //选项卡
         $("#set_search .select ul li:eq(0)").css("color","#2cb7ca");
@@ -411,18 +568,33 @@
         $(".money").removeClass("hidden");
         $(".jydq-dialog").addClass("hidden");
 
-        //搜索框
+        //搜索框输入
         $("#searchname").on("input propertychange",function(){
             var snqc = $(".searchname").val();
             if(snqc.length > 0){
                 $(".qc").removeClass("hidden");
                 $(".tubiao").removeClass("hidden");
                 $(".jydqsure").css("background","#2cb7ca");
+                $(".jydqsure").addClass("jydqsure_active");
                 getRecList(snqc);
             }else{
                 $(".qc").addClass("hidden");
                 $(".tubiao").addClass("hidden");
                 $(".jydqsure").css("background","#ccc");
+                $(".jydqsure").removeClass("jydqsure_active");
+                $("#recList").hide();
+            }
+        });
+
+        //搜索框选中
+        $("#searchname").focus(function(){
+            var snqc = $(".searchname").val();
+            if(snqc.length > 0){
+                $(".qc").removeClass("hidden");
+                $(".tubiao").removeClass("hidden");
+            }else{
+                $(".qc").addClass("hidden");
+                $(".tubiao").addClass("hidden");
             }
         });
 
@@ -432,22 +604,25 @@
             $(".qc").addClass("hidden");
             $(".tubiao").addClass("hidden");
             $(".jydqsure").css("background","#ccc");
+            $(".jydqsure").removeClass("jydqsure_active");
             $(".wxhead").find("[name='searchname']").focus();
         });
-
-        $("body").click(function () {
-            $("#recList").hide();
+        $("body").on("touchstart",function (e) {
+            if(e.target.id != "recList" && e.target.className !="rec"){
+                $("#recList").hide();
+            }
         });
-
         //金额输入
         $(".money-input").on("input propertychange",function(){
             var money_from = $.trim($("#money_from").val());
             var money_to = $.trim($("#money_to").val());
             var val = $.trim($(this).val());
             if(val!="" ||  money_from!="" || money_to!=""){
+                $(".money-inp").addClass("money-inp-active");
                 $(".money .btn").removeClass("active_m");
 			}else{
                 $(".money .btn").addClass("active_m");
+                $(".money-inp").removeClass("money-inp-active");
 			}
         });
 
@@ -465,6 +640,7 @@
 
         $(".money .btn").click(function () {
             $(".money .btn").addClass("active_m");
+            $(".money-inp").removeClass("money-inp-active");
         });
 
         //重置
@@ -473,11 +649,14 @@
             $(".contentone").find(".btn").first().addClass("active");
 
             $(".money .btn").addClass("active_m");
+            $(".money-inp").removeClass("money-inp-active");
         });
 
         //搜索企业项目信息
         $(".jydqsure").click(function () {
-            formSubmit();
+            if($(this).attr("class").indexOf("jydqsure_active")>0){
+                formSubmit();
+			}
         });
 
         $(".tubiao").click(function(){
@@ -487,11 +666,26 @@
         //显示筛选过滤选择
         $(".shaixuan").click(function(){
             if($("#set_search").attr("class")=="hidden"){
+                if($.trim($("#searchname").val())!=""){
+                    $(".jydqsure").css("background","#2cb7ca");
+                    $(".jydqsure").addClass("jydqsure_active");
+                }
                 $("#set_search").removeClass("hidden");
-                $("#searchList").addClass("hidden");
+                $("#wrapper").addClass("hidden");
                 $(".tip_m").addClass("hidden");
+                $(".nullcontent").addClass("hidden");
             }else{
-                shaixuanHide();
+                $("#set_search").addClass("hidden");
+                //if($("#wrapper tbody tr").length==0){
+                if(!dataListFlag){
+                    $("#wrapper").addClass("hidden");
+                    $(".tip_m").addClass("hidden");
+                    $(".nullcontent").removeClass("hidden");
+                }else if($("#wrapper tbody tr").length>0){
+                    $("#wrapper").removeClass("hidden");
+                    $(".tip_m").removeClass("hidden");
+                    $(".nullcontent").addClass("hidden");
+				}
             }
         });
 
@@ -513,13 +707,17 @@
             $(".jydq-dialog").removeClass("hidden");
         })
 
-        $('#searchList').dropload({
-            scrollArea: window.top.isIOS ? window.top : window,
-            loadDownFn: function (me) {
-                alert(111);
+        document.onkeydown = function () {
+            if (window.event && window.event.keyCode == 13) {
+                window.event.returnValue = false;
+                if($.trim($(".searchname").val()) == ""){
+                    return;
+                }
+                $("#searchname").blur();
+                $("#recList").hide();
+                formSubmit();
             }
-        });
-
+        }
     });
 
     //企业推荐列表
@@ -544,9 +742,11 @@
             $(".rec").click(function(){
                 if($(this).text()!=""){
                     $("#searchname").val($(this).text());
+                    setSearchCursor();
                     $("#recList").hide();
                     $(".qc").addClass("hidden");
                     $(".tubiao").removeClass("hidden");
+                    //formSubmit();
                 }
             });
         });
@@ -554,16 +754,59 @@
 
     //确定
     function formSubmit(){
+		beforeSubmit();
+        pageNum = "1";
+        //default
+        scrollTop = 0;
+        listCache = "";
+        pageNumCache = 1;
+        noMoreCache = false;
+
+        reqParam["pageNum"]=pageNum;
+        $.post("/jylab/entsesearch/proList",reqParam,function(r){
+            if(r){
+                var proList = r.proList;
+                if(typeof (proList)!="undefined" && proList.length>0){
+                    $("#wrapper tbody tr").remove();
+                    var html = "";
+                    for(var i=0;i<proList.length;i++){
+                        var bidamount = parseNToEmpty(proList[i].bidamount);
+                        var projectname = parseNToEmpty(proList[i].projectname);
+                        var jgtime = parseNToEmpty(proList[i].jgtime);
+                        var sourceinfoid = parseNToEmpty(proList[i].sourceinfoid);
+                        var projectcode = parseNToEmpty(proList[i].projectcode);
+                        //var obj =$("<tr onclick=\"toDetail('"+sourceinfoid+"','"+projectcode+"','"+projectname+"')\"><td>"+(i+1)+"</td><td>"+jgtime+"</td><td>"+projectname+"</td><td>"+bidamount+"</td></tr>");
+                        //$("#wrapper tbody").append(obj);
+                        html +="<tr onclick=\"toDetail('"+sourceinfoid+"','"+projectcode+"','"+projectname+"')\"><td>"+(i+1)+"</td><td>"+jgtime+"</td><td>"+projectname+"</td><td>"+bidamount+"</td></tr>";
+                    }
+                    appendListHtml(html,1);
+                    shaixuanHide();
+                    initDropload();
+                }else{
+                    dataListFlag = false;
+                    hasNoData();
+				}
+            }
+        });
+    }
+
+    function beforeSubmit() {
         var searchname = $.trim($(".searchname").val().replace(/^\s+|\s+$/g,"").replace(/\s+/g,"+"));
-        var dataObj = {};
 
         var money = "";
+        var money_from  = "";
+        var money_to = "";
         //金额
         if($(".money .btn.active_m").first().length>0){
             money = $(".money .btn.active_m").first().text();
         }
-        var money_from = $.trim($("#money_from").val());
-        var money_to = $.trim($("#money_to").val());
+        if(money!=""){
+            money_from = "";
+            money_to = "";
+        }else{
+            money_from = $.trim($("#money_from").val());
+            money_to = $.trim($("#money_to").val());
+        }
 
         //项目地区
         this.setScope = function(){
@@ -580,41 +823,12 @@
             return scope.join(",");
         };
         reqParam["scope"] = this.setScope();
-        dataObj["searchname"] = searchname;
-        dataObj["scope"] = this.setScope();
-        dataObj["money"] = money;
-        dataObj["money_from"] = money_from;
-        dataObj["money_to"] = money_to;
-        dataObj["pagenum"] = "1";
-        dataObj["pagesize"] = "10";
-
-//			  $("#searchform [name='scope']").val(this.setScope());
-//            $("#searchform [name='money']").val(money);
-//            $("#searchform [name='money_from']").val(money_from);
-//            $("#searchform [name='money_to']").val(money_to);
-//            $(".searchform").submit();
-
-        $.post("/jylab/entsesearch/proList",dataObj,function(r){
-            if(r){
-                if(typeof (r.proList)!="undefined"){
-                    var proList = r.proList;
-                    //$("#searchList tbody tr").remove();
-                    for(var i=0;i<proList.length;i++){
-                        var bidamount = proList[i].bidamount;
-                        var projectname = proList[i].projectname;
-                        var zbtime = proList[i].jgtime;
-                        var sourceinfoid = proList[i].sourceinfoid;
-                        var projectcode = proList[i].projectcode;
-                        var obj =$("<tr onclick=\"toDetail('"+sourceinfoid+"','"+projectcode+"','"+projectname+"')\"><td>"+(i+1)+"</td><td>"+zbtime+"</td><td>"+projectname+"</td><td>"+bidamount+"</td></tr>");
-                        $("#searchList tbody").append(obj);
-                    }
-                }
-                shaixuanHide();
-            }
-        });
+        reqParam["searchname"] = searchname;
+        reqParam["money_from"] = money_from;
+        reqParam["money_to"] = money_to;
     }
 
-    //
+    //项目历程
     function toDetail(id,projectcode,projectname) {
         if(id!="" && typeof (id)!="undefined" && projectcode!="" && typeof(projectcode)!="undefined" && projectname!="" && typeof(projectname)!="undefined"){
             window.location.href="/follow/photo/"+id+"__"+projectname+"__"+projectcode;
@@ -623,10 +837,91 @@
 
     //筛选隐藏
 	function shaixuanHide() {
+        $(".nullcontent").addClass("hidden");
         $("#set_search").addClass("hidden");
-        $("#searchList").removeClass("hidden");
+        $("#wrapper").removeClass("hidden");
         $(".tip_m").removeClass("hidden");
     }
-	
+
+    //null || undefined to empty
+    function parseNToEmpty(str) {
+        if(str==null || typeof (str)=="undefined"){
+            str = "";
+		}
+		return str;
+    }
+
+    //搜索框光标位置
+    function setSearchCursor() {
+        $("#searchname").focus();
+        try{
+            setCursorPos(document.getElementById("searchname"),$("#searchname").val().length);
+        }catch(e){}
+    }
+
+    function noMoreData(me){
+        noMoreCache = "true";
+        // 锁定
+        me.lock();
+        // 无数据
+        me.noData();
+        me.resetload();
+    }
+    function getHtml(list,pageNum){
+        var html = '';
+        for(var i=0;i<list.length;i++){
+            var index = (pageNum-1)*pageSize+i+1;
+            var bidamount = parseNToEmpty(list[i].bidamount);
+            var projectname = parseNToEmpty(list[i].projectname);
+            var jgtime = parseNToEmpty(list[i].jgtime);
+            var sourceinfoid = parseNToEmpty(list[i].sourceinfoid);
+            var projectcode = parseNToEmpty(list[i].projectcode);
+            html +="<tr onclick=\"toDetail('"+sourceinfoid+"','"+projectcode+"','"+projectname+"')\"><td>"+(index)+"</td><td>"+jgtime+"</td><td>"+projectname+"</td><td>"+bidamount+"</td></tr>";
+        }
+        return html;
+    }
+    function hasNoData(){
+        $(".nullcontent").removeClass("hidden");
+        $("#wrapper tbody tr").remove();
+        //window.top.$(".resbm").addClass("hidden");
+        $("#set_search").addClass("hidden");
+        $("#wrapper").addClass("hidden");
+        $(".tip_m").addClass("hidden");
+    }
+    function appendListHtml(html,pageNum){
+        //缓存数据
+        if(sessionStorage){
+            listCache += html;
+            pageNumCache = pageNum;
+        }
+        // 插入数据到页面,放到最后面
+        var htmlObj = $(html);
+        htmlObj.on("click", function(event){
+            putToSessionStorage();
+        });
+        $('#wrapper tbody').append(htmlObj);
+    }
+    function initDroploadNoMoreData(){
+        setTimeout(function(){
+            $('#wrapper').dropload({
+                scrollArea : window,
+                loadDownFn : function(me){
+                    noMoreData(me);
+                }
+            });
+        },0);
+    }
+    //put to sessionstorage
+	function  putToSessionStorage() {
+        if(sessionStorage){
+            sessionStorage.wxsearchScrollTop = scrollTop;
+            sessionStorage.wxsearchListCache = listCache;
+            sessionStorage.wxsearchPageNumCache = pageNumCache;
+            sessionStorage.wxsearchNoMoreCache = noMoreCache;
+            sessionStorage.wxsearchMoneyFromCache = reqParam["money_from"];
+            sessionStorage.wxsearchMoneyToCache = reqParam["money_to"];
+            sessionStorage.wxsearchScopeCache = reqParam["scope"];
+        }
+    }
 </script>
 </html>

+ 2 - 1
src/seo.json

@@ -299,6 +299,7 @@
 		"360SEM":"360SEM",
 		"QQqun":"QQ群广告",
 		"BDwangmeng":"百度网盟",
-		"PCwailian":"PC端外链"
+		"PCwailian":"PC端外链",
+		"email":"邮箱广告"
 	}
 }

+ 4 - 4
src/web/staticres/css/dev2/biddingSearch.css

@@ -66,7 +66,7 @@
   font-size: 16px;
 }
 
-#searchInner .searchHeader .searchHeader-container .searchInput form input[type='button'] {
+#searchInner .searchHeader .searchHeader-container .searchInput form input[type='submit'] {
   float: left;
   width: 106px;
   height: 42px;
@@ -628,7 +628,7 @@
   font-size: 16px;
 }
 #searchInner .searchControl .seaTender-inner .tabContainer-2 .lucene li {
-  padding: 15px 20px 0;
+  padding: 20px 20px 0;
   overflow: hidden;
   font-size: 16px;
 }
@@ -638,14 +638,14 @@
 }
 
 #searchInner .searchControl .seaTender-inner .tabContainer .lucene li .liLuceneList {
-  border-bottom: 1px solid #e0e0e0;
+  border-bottom: 1px solid #EBEBEB;
   overflow: hidden;
   padding-bottom: 20px;
 width:1160px;
 }
 
 #searchInner .searchControl .seaTender-inner .tabContainer-2 .lucene li .liLuceneList {
-	padding-bottom: 15px;
+	padding-bottom: 20px;
 }
 #searchInner .searchControl .seaTender-inner .tabContainer .lucene li .luce-left {
   float: left;

+ 1 - 1
src/web/staticres/css/dev2/biddingSearch1.css

@@ -10,7 +10,7 @@
     background-color: #fff;
 	padding: 3px 5px;
 }
-.active{
+#searchInner .active{
 	background-color: #2cb7ca;
 }
 .hasNoData{

+ 4 - 4
src/web/staticres/js/biddingSearch.js

@@ -70,7 +70,10 @@ $(function() {
 
 	function superSearchToggle() {
 		var $superSearch = $(".searchInput .superSearch");
-		$superSearch.on("click", function() {
+		$superSearch.mouseover(function() {
+			$(this).toggleClass("active")
+		})
+		$superSearch.mouseout(function() {
 			$(this).toggleClass("active")
 		})
 	}
@@ -142,8 +145,6 @@ $(function() {
 			} else {
 				$induAll.addClass("active");
 			}
-			beforeSubmit();
-
 		})
 		/*全部点击*/
 		$induAll.on("click", function() {
@@ -187,7 +188,6 @@ $(function() {
 			$tabDIv = $(".tabContainer");
 
 		$tab.on("click", function() {
-			console.log(submitflag+"----)))))")
 			if(submitflag){
 				$(this).find("a").addClass("active").parent().siblings().find("a").removeClass("active");
 				$tabDIv.eq($(this).index()).show().siblings().not(".tabTitle").hide()

+ 16 - 23
src/web/staticres/js/superSearch.js

@@ -2,8 +2,6 @@ var pageSize = 50;
 var nbflag = false;//是否显示的是最新招标数据
 var currentPage = 1;//当前页
 var submitflag = true;
-var searchvalue = "";//关键词
-var searchtype = "all"//全文或标题
 
 $(function() {
 	$("#minprice").click(function(){
@@ -91,17 +89,12 @@ $(function() {
 			localStorage.setItem("hideorshow", "D");
 		}
 	})
-	//
-	$("#zbSeatchT input[type='button']").click(function(){
-		currentPage=1;
-		beforeSubmit(1)
-	})
 	//全文检索和标题检索切换
 	$("#newsclass li:nth-child(1)").click(function(){
 		$("#zbSeatchT [name='selectType']").val("all");
 		currentPage=1;
 		if(submitflag){
-			searchtype = "all";
+			selectType = "all";
 			searchOnsubmit();
 			submitflag=false;
 		}
@@ -111,7 +104,7 @@ $(function() {
 		$("#zbSeatchT [name='selectType']").val("title");
 		currentPage=1;
 		if(submitflag){
-			searchtype = "title";
+			selectType = "title";
 			searchOnsubmit();
 			submitflag=false;
 		}
@@ -200,6 +193,13 @@ function appendDatas(datas,flag){
 	var tableHtml = '';
 	var searchvalueArray = searchvalue.split("+");
 	$(".pagination-inner").find("span").text(currentPage);
+	if(flag&&selectType == "all"){
+		$("#allnews").show();
+		$(".tabContainer-2").hide();
+	}else{
+		$("#allnews").hide();
+		$(".tabContainer-2").show();
+	}
 	for(var i=0;i<datas.length;i++){
 		var index = (currentPage - 1) * pageSize + i + 1;
 		var title = datas[i].title;
@@ -231,20 +231,13 @@ function appendDatas(datas,flag){
 				type = "";
 			}
 		}
-		if(flag&&searchtype == "all"){
-			$("#allnews").show();
-			$(".tabContainer-2").hide();
-		}else{
-			$("#allnews").hide();
-			$(".tabContainer-2").show();
-		}
 		listHtml += '<li>'
-					+'<div class="liLuceneList">'
+					+'<div class="liLuceneList" style="border-bottom: 1px solid #EBEBEB;">'
 					+'<div class="luce-left"><em>'+index+'.</em>'
 					+'<div class="left-title">'
 					+'<a href="'+aHref+'"> '+title+'</a>'
 					+'</div>'
-		if(flag&&searchtype == "all"){
+		if(flag&&selectType == "all"&&detail!=""){
 			listHtml += '<div class="left-content">'
 					+'<a href="javascript:volid(0);">'+detail+'...</a>'
 					+'</div>'
@@ -264,7 +257,7 @@ function appendDatas(datas,flag){
 		if(typeof(datas[i].industry) != "undefined" && datas[i].industry != null && datas[i].industry != ""){
 			listHtml += '<a href="javascript:volid(0);">'+datas[i].industry+'</a>';
 		}else{
-			listHtml += '<a href="#" style="display:none;"></a>';
+			listHtml += '<a href="javascript:volid(0);" style="display:none;"></a>';
 		}
 		
 		//
@@ -339,11 +332,11 @@ function appendDatas(datas,flag){
 		}
 			tableHtml+='</tr>'
 	}
-	if(!flag||searchtype=="title"){
+	if(!flag||selectType=="title"){
 		$(".tabContainer-2 .lucene ul").html(listHtml);
 		$(".tabContainer-2 .lucene-table table tbody").html(tableHtml);
 	}else{
-		if(searchtype=="all"){
+		if(selectType=="all"){
 			$(".tabContainer .lucene ul").html(listHtml);
 			$(".tabContainer .lucene-table table tbody").html(tableHtml);
 		}
@@ -353,7 +346,7 @@ function appendDatas(datas,flag){
 }
 //
 //
-function   formatDate(date,sl)   { 
+function formatDate(date,sl)   { 
 	var myDate = new Date(date*1000);      
     var   year=myDate.getFullYear();
     var   month=myDate.getMonth()+1; 
@@ -491,7 +484,7 @@ function beforeSubmit(n){
 		$("#zbSeatchT [name='maxprice']").val(selectMaxPrices);
 		//搜索关键词
 		var searchname = $("#zbSeatchT input[name='keywords']").val();
-		$("#zbSeatchT input[name='searchvalue']").val($.trim(searchname))
+		$("#zbSeatchT input[name='searchvalue']").val($.trim(searchname));
 		if(n!="F"){
 			if(submitflag){	
 				if($.trim(searchname)==""){

+ 1 - 1
src/web/templates/common/pnc.html

@@ -11,7 +11,7 @@
 <link href="/css/animate.css" rel="stylesheet">
 <link rel="stylesheet" href="/css/unicorn.main.css" />
 <link rel="stylesheet" href="/css/unicorn.grey.css" />
-<script src="/js/jquery.js"></script>
+<script src="/js/jquery-3.2.1.min.js?v={{Msg "seo" "version"}}"></script>
 <script src="/js/jquery.cookie.js"></script>
 <script src="/js/bootstrap.min.js"></script>
 <script src="/js/jy.js?v={{Msg "seo" "version"}}"></script>

+ 199 - 15
src/web/templates/pc/biddingsearch_enterprise.html

@@ -13,8 +13,8 @@
 		<link href="/css/dev2/biddingSearch.css?v={{Msg "seo" "version"}}" rel="stylesheet">
 		<link href="/css/dev2/biddingSearch1.css?v={{Msg "seo" "version"}}" rel="stylesheet">
 		<script src="/js/jquery.cookie.js"></script>
-		<script src="/js/jquery-3.2.1.min.js?v={{Msg "seo" "version"}}"></script>
 		<script src="/js/biddingSearch.js?v={{Msg "seo" "version"}}"></script>
+		<script type="text/javascript" src="/js/entsearchscript.js"></script>
 		<script language="javascript" type="text/javascript" src="/My97DatePicker/WdatePicker.js"></script>
 		
 		<style type="text/css">
@@ -97,11 +97,66 @@
 				     -o-animation-fill-mode:forwards;
 				        animation-fill-mode:forwards;
 			}
+			#keyImg{
+				width:198px;
+			}
+			#layerImg{
+				position:absolute;
+				width: 150px !important;
+			    height: 150px !important;
+			    left: 198px;
+			    top: 148px;
+			}
+			.layheader{
+				position: absolute;
+			    color: #fff;
+			    left: 138px;
+			    top: 40px;
+			    line-height: 32px;
+			    font-family: 微软雅黑;
+			    font-weight: bold;
+			}
+			.layheader div:nth-child(1){
+				font-size:20px;
+			}
+			.layheader div:nth-child(2){
+				font-size:16px;
+				margin-top:10px;
+			}
+			.modal-footer{
+				text-align: center;
+			    position: absolute;
+			    bottom: 65px;
+			    left: 110px;
+			    font-size: 14px;
+			    line-height: 22px;
+			    color: #686868;
+			}
+			.modal-dialog{
+				width:500px;
+			}
 		</style>
 	</head>
 
 	<body>
 	{{include "/common/pchead.html"}}
+		<div class="modal fade" id="labModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
+		    <div class="modal-dialog">
+		        <div class="modal-content" id="labmodalcont">
+		            <div class="modal-body" id="labmodalbody">
+						<div class="layheader">
+							<div>超级搜索</div>
+							<div>按行业、金额搜索、结果可按表格显示</div>
+						</div>
+						<img src="/images/biddingSearch/labbkimg.png"/>
+						<img id="layerImg" src="/front/share/{{.T.shareid}}"/>
+					</div>
+		            <div class="modal-footer">
+		                此功能尚处在实验阶段,请扫码进入<br>剑鱼实验室,打开相应开关后,即可体验!
+		            </div>
+		        </div><!-- /.modal-content -->
+		    </div><!-- /.modal -->
+		</div>
 		<section id="searchInner">
 			<!--搜索头部 START-->
 			<div class="searchHeader">
@@ -114,7 +169,7 @@
 					<!--搜索-->
 					<div class="searchInput clearfix">
 						<form action="/jylab/bidsearchforent" method="post" id="zbSeatchT" class="clearfix" onsubmit="return true">
-							<input class="searchname" autocomplete="off" type="search" name="keywords" id="searchinput" value="" placeholder="高速公路" />
+							<input class="searchname" autocomplete="off" type="search" name="keywords" id="searchinput" value="{{.T.searchvalue}}" placeholder="高速公路" />
 
 							<input type="button" class="searchBtn" value="搜索" />
 							<!--<div class="searchSlideText">
@@ -150,6 +205,18 @@
 						<!--二维码-->
 						<div class="search-right-wx">
 							<img src="/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>随时随地掌握招标信息
+		<!--						微信扫一扫,及时获取及时获取<i>"1"</i>相关招标信息-->
+								</div>
+							</div>
 						</div>
 					</div>
 				</div>
@@ -159,7 +226,7 @@
 			<!--招标搜索页面 START-->
 			<div class="searchControl">
 				<!--头部功能-->
-				<div class="searchTender w">
+				<div class="searchTender w" style="display:none;">
 					<!--价格区间-->
 					<div class="Price clearfix">
 						<div class="leftTitle">
@@ -242,8 +309,8 @@
 							</li>
 						</ul>
 						<div class="right-tabBtn">
-							<button class="active">列表</button>
-							<button>表格</button>
+							<button id="listBtn" class="active">列表</button>
+							<button id="tableBtn">表格</button>
 						</div>
 					</div>
 					<!--tab切换内容-->
@@ -262,7 +329,7 @@
 										<div class="luce-right">
 											<a href="#">{{$v.area}}</a>
 											<a href="#">{{$v.bidtype}}</a>
-											<a href="#">{{$v.industry}}</a>
+											<!--<a href="#">{{$v.industry}}</a>-->
 											<span>{{$v.time1}}</span>
 										</div>
 									</div>
@@ -299,9 +366,9 @@
 				<!--分页-->
 				<div class="pagination clearfix w">
 					<div class="pagination-inner fr">
-						<a href="#"><i><</i>上一页</a>
+						<a class="nbprev disabled" href="#"><i><</i>上一页</a>
 						<span>1</span>
-						<a href="#">下一页<i>></i></a>
+						<a class="nbnext" href="#">下一页<i>></i></a>
 					</div>
 				</div>
 			</div>
@@ -312,11 +379,80 @@
 	{{include "/common/baiducc.html"}}
 	<script>
 		var mainList = {{.T.list}};
+		var submitflag = true;
+		var pricetype = "";
+		var areas = {{.T.area}};
+		var searchvalue = {{.T.searchvalue}};
+		
+		//地区回显样式设置
+		if(areas != ""){
+			$("#regionBtn").removeClass("active");
+			areas = areas.split(",");
+			for(var i=0;i<areas.length;i++){
+				$(".region-content>font:not('.parent-node')").each(function(){
+					if($(this).text() == areas[i]){
+						$(this).addClass("active");
+						return false;
+					}
+				});
+			}
+		}
+		$(".region-content .parent-node").each(function(){
+			var fontLen = $(this).nextUntil(".parent-node").filter("font").length;
+			var activeLen = $(this).nextUntil(".parent-node").filter(".active").length;
+			if(fontLen == activeLen){
+				$(this).addClass("active");
+			}
+			if(activeLen >0 && activeLen < fontLen){
+				$(this).addClass("secondActice");
+			}
+		});
+		
+		//搜索关键词回显页面样式设置
+		if(searchvalue != "" && searchvalue != null){
+			$(".seaTender-inner").css({'border':'0px'});
+			$(".lucene-table").css({'padding':'0px','border-bottom':'0px','display':'block'});		
+			$(".tabTitle").addClass("hidden");
+			$(".lucene").attr("style","display:none");
+		}
 		
+		//价格回显样式设置
+		if({{.T.pricetype}} == "y"){
+			$(".Price-content").find("span:first-child").removeClass("active");
+			$(".pricefat").addClass("active");
+		}
 		
 		$(function(){
 			haslogin({{.T.logid}});
 			
+			//筛选关闭和打开
+			//根据cookie值设置筛选是否显示
+			var rsw = localStorage.getItem("entstore");
+			console.log("00000"+rsw);
+			if(rsw == null){
+				setTimeout(function(){
+					$(".searchTender").stop(false,true).slideDown(1000);
+					localStorage.setItem("entstore", "D");
+				},500);
+			}else{
+				if(rsw=="U"){
+					$("#screenBtn").addClass("down");
+					$(".searchTender").hide();
+				}else{
+					$("#screenBtn").removeClass("down");
+					$(".searchTender").show();
+				}
+			}
+				
+			//记录用户刷选按钮状态
+			$("#screenBtn").click(function(){
+				if($(this).attr("class").indexOf("down")>0){
+					localStorage.setItem("entstore", "U");
+				}else{
+					localStorage.setItem("entstore", "D");
+				}
+			})
+					
 			//价格
 			$("#minprice").click(function(){
 				$(".pricebut").show();
@@ -326,10 +462,15 @@
 				$(".pricebut").show();
 				$(".pricefat").addClass("customtime-active");
 			})
+			//价格的全部按钮
 			$(".Price-content").find("span:first-child").click(function(){
 				$(this).addClass("active");
 				$(".pricefat").removeClass("active");
+				pricetype = "n"
+				$("#zbSeatchT input[name='pricetype']").val(pricetype);
+				beforeSubmit();
 			})
+			//价格的确定按钮
 			$(".pricebut").click(function(){
 				var minp = $("#minprice").val();
 				var maxp = $("#maxprice").val();
@@ -344,8 +485,28 @@
 				$(".pricefat").addClass("active");
 				$(".Price-content").find("span:first-child").removeClass("active");
 				$(".pricefat").removeClass("customtime-active");
+				pricetype = "y";
+				$("#zbSeatchT input[name='pricetype']").val(pricetype);
 				beforeSubmit();
-			})		
+			})	
+			
+			//搜索按钮
+			$(".searchBtn").click(function(){
+				var searchname = $("#zbSeatchT input[name='keywords']").val();
+				$("#zbSeatchT input[name='searchvalue']").val($.trim(searchname));
+				$("#zbSeatchT").submit();
+			})	
+			
+			//点击超级搜索按钮
+			$(".superSearch").click(function(){
+				$("#labModal").modal("show");
+			})
+			
+			//关闭登录二维码
+			$(".code-close").click(function(){
+				$("#bidLogin").modal("hide");
+			})
+			
         });
 		function beforeSubmit(){			
 			//地区
@@ -366,28 +527,51 @@
 			var selectMaxPrices =  $(".PriceInput [name='maxprice']").val();
 			$("#zbSeatchT [name='minprice']").val(selectMinPrices);
 			$("#zbSeatchT [name='maxprice']").val(selectMaxPrices);
+			
 			//搜索关键词
 			var searchname = $("#zbSeatchT input[name='keywords']").val();
-			console.log("----"+searchname)
 			$("#zbSeatchT input[name='searchvalue']").val($.trim(searchname))
-			searchOnsubmit();
+			console.log("关键词============"+searchname);
+			if(submitflag){	
+				if($.trim(searchname) != ""){
+					console.log("搜索关键词不为空");
+					getTableInfo();
+				}else{
+					console.log("搜索关键词为空"+"--------------------");
+					
+					$(".tabTitle").removeClass("hidden");
+					$(".lucene").attr("style","display:block");
+					$(".lucene-table").attr("style","display:none");
+					searchOnsubmit();
+				}
+				submitflag=false;
+			}	
+			setTimeout(function(){
+				submitflag=true
+			},200);
 			return true
 		}
-//
+	
+		function getTableInfo(){
+			$(".seaTender-inner").css({'border':'0px'});
+			$(".lucene-table").css({'padding':'0px','border-bottom':'0px','display':'block'});		
+			$(".tabTitle").addClass("hidden");
+			$(".lucene").attr("style","display:none");
+			searchOnsubmit();
+		}
+
 		function searchOnsubmit(){
 			var param = {
 						searchvalue: $("#zbSeatchT [name='searchvalue']").val(),
 						area: $("#zbSeatchT [name='area']").val(),
 						minprice: $("#zbSeatchT [name='minprice']").val(),
 						maxprice: $("#zbSeatchT [name='maxprice']").val(),
+						pricetype: $("#zbSeatchT [name='pricetype']").val()
 					};
 			$.post("/jylab/pcSearchZbqyAjax",param,function(r){
 				
 			});
 		}
-
-
-
 	</script>
 	</body>
 

Fichier diff supprimé car celui-ci est trop grand
+ 653 - 243
src/web/templates/pc/classifylist.html


+ 181 - 8
src/web/templates/pc/supsearch.html

@@ -134,11 +134,106 @@ a{
 .modal-dialog{
 	width:500px;
 }
+.superSearch:hover{
+	background: #2cb7ca url(/images/biddingSearch/sea-header-btnImg-bai.png) 16px center no-repeat;
+    color: #ffffff;
+    background-size: 15px 16px;
+}
+#labmodalbody .code-close{
+	width: 40px;
+    height: 40px;
+    position: absolute;
+    right: 40px;
+    top: -20px;
+    cursor: pointer;
+    -webkit-transition: all 1s;
+    -o-transition: all 1s;
+    -moz-transition: all 1s;
+    transition: all 1s;
+}
+#labmodalbody .code-close:hover{
+	-webkit-transform: scale(1.2);
+	   -moz-transform: scale(1.2);
+	    -ms-transform: scale(1.2);
+	     -o-transform: scale(1.2);
+	        transform: scale(1.2);
+}
+.j-clearicon{
+	right:118px !important;
+}
 </style>
 <script>
+var areas = {{.T.area}};
+var selectPublishtime = {{.T.publishtime}};
+var selectTimeslot = {{.T.timeslot}};
+var toptype = {{.T.toptype}};
+var subtype = {{.T.subtype}};
+var isopen = {{.T.isopen}};
+var keys = {{.T.keywords}};
+var selectType = {{.T.selectType}};//全文或标题
+var industry = {{.T.industry}}
+var industrylist = {{.T.industrylist}}
+var sortArray = {{.T.sortArray}}
+var list = {{.T.list}}
+var searchvalue = {{.T.searchvalue}};
+var searchvalueArray = searchvalue.split("+");
 $(function(){
-	var industrylist = {{.T.industrylist}}
-	var sortArray = {{.T.sortArray}}
+	if(selectType=="all"){
+		$("#newsclass li:nth-child(1) a").addClass("active");
+		$("#newsclass li:nth-child(2) a").removeClass("active");
+	}else{
+		$("#newsclass li:nth-child(1) a").removeClass("active");
+		$("#newsclass li:nth-child(2) a").addClass("active");
+	};
+	$("#zbSeatchT [name='selectType']").val(selectType);
+	//
+	$("#zbSeatchT [name='keywords']").val($.trim(keys));
+	$("#zbSeatchT [name='searchvalue']").val($.trim(keys));
+	$("#searchinput").focus();
+	if($.trim(keys)!=""){
+		searchvalue = $.trim(keys);
+		searchvalueArray = searchvalue.split("+");
+		$("#newsclass").show();
+		$("#newsnow").hide();
+		if(list == null || list.length == 0){
+			$(".tabContainer").hide();
+			$(".pagination").hide();
+			$(".hasNoData").show();
+			submitflag=true;
+		}else{
+			$(".tabContainer").show();
+			$(".pagination").show();
+			$(".hasNoData").hide();
+			appendDatas(list,true);
+		}
+	}else{
+		if(list!=null&&list.length>0){
+			$(".tabContainer").show();
+			$(".pagination").show();
+			$(".hasNoData").hide();
+			appendDatas(list,false);
+		}else{
+			$(".tabContainer").hide();
+			$(".pagination").hide();
+			$(".hasNoData").show();
+			submitflag=true;
+		}
+	}
+	//
+	$(".searchname").on("input propertychange",function(){
+		var kw = $("#zbSeatchT [name='keywords']").val();
+    	$("#zbSeatchT [name='searchvalue']").val($.trim(kw));
+		if($.trim(kw)!=""){
+			$("#t-clear").show();
+		}else{
+			$("#t-clear").hide();
+		}
+  	});
+	$("#t-clear").click(function(){
+		$("#t-clear").hide();
+		$("#searchinput").val("").focus();
+	})
+	
 	var industryhtml = '<span id="induAll" class="active">全部</span>';
 	if (sortArray!=null&&sortArray.length>0){
 		for(var i in sortArray){
@@ -153,6 +248,80 @@ $(function(){
 		$(".industry-content").html(industryhtml)
 	}
 	
+	//
+	if(industry!=""){
+		$("#induAll").removeClass("active");
+		industry = industry.split(",");
+		for(var i=0;i<industry.length;i++){
+			$(".industry-content>font:not('.parent-node')").each(function(){
+				if($(this).attr("data-value") == industry[i]){
+					$(this).addClass("active");
+					return false;
+				}
+			});
+		}
+	}
+	$(".industry-content .parent-node").each(function(){
+		if($(this).nextUntil(".parent-node").filter("font").length == $(this).nextUntil(".parent-node").filter(".active").length){
+			$(this).addClass("active");
+		}
+	});
+	//
+	if(selectPublishtime != ""){
+		$("#timerAll").removeClass("active");
+		$(".timer [data-value='"+selectPublishtime+"']").addClass("active");
+		if(selectPublishtime.indexOf("_") > -1){
+			$(".timerInput").addClass("active");
+		}
+	}
+	if(selectTimeslot != "" && selectTimeslot.indexOf("_") > -1){
+		var spTimeArray = selectTimeslot.split("_");
+		if(spTimeArray[0] != ""){
+			$("#starttime").val(new Date(new Number(spTimeArray[0]+"000")).Format("yyyy年MM月dd日"));
+			$("#starttime").attr("data-value",spTimeArray[0]);
+		}
+		if(spTimeArray[1] != ""){
+			$("#endtime").val(new Date(new Number(spTimeArray[1]+"000")).Format("yyyy年MM月dd日"));
+			$("#endtime").attr("data-value",spTimeArray[1]);
+		}
+	}
+	//
+	if(areas != ""){
+		$("#regionBtn").removeClass("active");
+		areas = areas.split(",");
+		for(var i=0;i<areas.length;i++){
+			$(".region-content>font:not('.parent-node')").each(function(){
+				if($(this).text() == areas[i]){
+					$(this).addClass("active");
+					return false;
+				}
+			});
+		}
+	}
+	$(".region-content .parent-node").each(function(){
+		if($(this).nextUntil(".parent-node").filter("font").length == $(this).nextUntil(".parent-node").filter(".active").length){
+			$(this).addClass("active");
+		}
+	});
+	//
+	if(subtype != ""){
+		$("#infoBtn").removeClass("active");
+		subtype = subtype.split(",");
+		for(var i=0;i<subtype.length;i++){
+			$(".info-content>font:not('.parent-node')").each(function(){
+				if($(this).attr("data-value") == subtype[i]){
+					$(this).addClass("active");
+					return false;
+				}
+			});
+		}
+	}
+	$(".info-content .parent-node").each(function(){
+		if($(this).nextUntil(".parent-node").filter("font").length == $(this).nextUntil(".parent-node").filter(".active").length){
+			$(this).addClass("active");
+		}
+	});
+	
 })
 </script>
 <script src="/js/biddingSearch.js?v={{Msg "seo" "version"}}"></script>
@@ -164,6 +333,7 @@ $(function(){
     <div class="modal-dialog">
         <div class="modal-content" id="labmodalcont">
             <div class="modal-body" id="labmodalbody">
+				<img class="code-close" src="/images/j-wx-code-close.png" alt="" onclick="labClose();">
 				<div class="layheader">
 					<div>超级搜索</div>
 					<div>按行业、金额搜索、结果可按表格显示</div>
@@ -190,9 +360,9 @@ $(function(){
 			<!--搜索-->
 			<div class="searchInput clearfix">
 				<form action="/jylab/supsearch/index.html" method="post"  id="zbSeatchT" class="clearfix" onsubmit="return beforeSubmit('F')">
-					<input class="searchname" autocomplete="off" type="search" id="searchinput" value="" name="keywords" placeholder="高速公路" />
-
-					<input type="button" value="搜索" />
+					<input class="searchname" autocomplete="off" type="search" id="searchinput" value="{{.T.keywords}}" name="keywords" placeholder="高速公路" />
+					<img src="/images/pc_20.png" id="t-clear" class="j-clearicon" style="display: none;">
+					<input type="submit" value="搜索" />
 <!--					<div class="searchSlideText">
 						<ul>
 							<li>大连<i>万达集团</i>股份有限公司北京投资管理分公司</li>
@@ -209,7 +379,7 @@ $(function(){
 							<li>大连<i>万达集团</i>股份有限公司北京投资管理分公司</li>
 						</ul>
 					</div>-->
-					<input type="hidden" name="searchvalue" value="{{.T.searchvalue}}">
+					<input type="hidden" name="searchvalue" value="{{.T.keywords}}">
 					<input type="hidden" name="publishtime" value="{{.T.publishtime}}">
 					<input type="hidden" name="timeslot" value="{{.T.timeslot}}">
 					<input type="hidden" name="area" value="{{.T.area}}">
@@ -505,6 +675,7 @@ $(function(){
 	haslogin({{.T.logid}});
 	console.log(loginflag+"-------")
 	//
+	$(".j-nav .j-nav-link:eq(2)").addClass("active");
 	$(".q-mark").click(function(){
 		$(".remind").fadeIn();
 	})
@@ -519,9 +690,11 @@ $(function(){
 			$("#backTop").hide();
 		}
 	});
-	var list = {{.T.list}}
-	appendDatas(list,false);
 })
+//关闭遮罩层
+function labClose(){
+	$("#labModal").modal("hide");
+}
 </script>
 </body>
 </html>

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff