Преглед изворни кода

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

maxiaoshan пре 8 година
родитељ
комит
7060795702

+ 0 - 4
.idea/misc.xml

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

+ 29 - 0
src/jfw/front/entsearch.go

@@ -25,6 +25,7 @@ import (
 type Entsearch struct {
 	*xweb.Action
 	bidsearchforent xweb.Mapper `xweb:"/jylab/bidsearchforent"`
+	areabidsearchforent xweb.Mapper `xweb:"/jylab/areabidsearchforent"`
 }
 
 func init() {
@@ -78,3 +79,31 @@ func (e *Entsearch) Bidsearchforent() error {
 	e.T["list"] = list
 	return e.Render("/pc/biddingsearch_enterprise.html", &e.T)
 }
+
+func (a *Entsearch) Areabidsearchforent(p string) error {
+	list := []map[string]interface{}{}
+
+	entname := a.GetString("entname")
+	area := a.GetString("area")
+	lower,_:=strconv.Atoi(a.GetString("lower"))
+	upper,_:=strconv.Atoi(a.GetString("upper"))
+
+	list = jylabutil.GetProjectByEntName(entname, area, lower, upper, 1, 10)
+	jyutil.BidListConvert("", &list)
+
+	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)
+		//}
+	}
+	a.T["list"] = list
+	return a.Render("/pc/biddingsearch_enterprise.html", &a.T)
+}

+ 70 - 96
src/jfw/front/search.go

@@ -1,13 +1,13 @@
 package front
 
 import (
-	"fmt"
-
 	"github.com/go-xweb/xweb"
 	"strings"
 	"qfw/util"
 	"qfw/util/redis"
 	"jfw/wx"
+	"gopkg.in/mgo.v2/bson"
+	"fmt"
 )
 
 type Search struct {
@@ -21,123 +21,97 @@ func init() {
 	xweb.AddAction(&Search{})
 }
 func (s *Search) MainSearch() error {
-	fmt.Println("------主页面搜索------")
-	s.T["name"] = "主页面搜索"
+	if userid := s.GetSession("userId"); userid != nil {
+		history := redis.GetStr("other", "s_"+userid.(string))
+		arrs := strings.Split(history, ",")
+		if history == "" {
+			arrs = make([]string, 0)
+		}
+		l := len(arrs) - 1
+		for i := 0; i < len(arrs)/2; i++ {
+			tmp := arrs[l-i]
+			arrs[l-i] = arrs[i]
+			arrs[i] = tmp
+		}
+		s.T["history"] = arrs
+		one, _ := mongodb.FindOneByField("user", bson.M{"_id": bson.ObjectIdHex(userid.(string))}, `{"o_jy":1}`)
+		if one != nil && len(*one) > 0 {
+			o_jy, _ := (*one)["o_jy"].(map[string]interface{})
+			a_key, _ := o_jy["a_key"].([]interface{})
+			var keys []interface{}
+			for _, v := range a_key {
+				keyMap, _ := v.(map[string]interface{})
+				key, _ := keyMap["key"].([]interface{})
+				keys = append(keys, key)
+			}
+			s.T["msgset"] = keys
+		}
+	}
 	return s.Render("/weixin/search/mainSearch.html", &s.T)
 }
 func (m *Search) SuperSearch() error{
 	defer util.Catch()
-	keywords := m.GetString("searchname")
-	searchvalue := m.GetString("searchvalue")
-	toptype := m.GetString("toptype")
-	subtype := m.GetString("subtype")
-	money :=m.GetString("money")
-	industry := m.GetString("industry")
-	scope := m.GetString("scope")
-	publishtime := m.GetString("publishtime")
-	fmt.Println("keywords:",keywords,"searchvalue:",searchvalue,"toptype:",toptype,"subtype",subtype,"scope",scope,"publishtime",publishtime)
-	fmt.Println("money---->>",money,"   industry----->>",industry)
-	selectType := m.GetString("selectType")
-	m.SetSession("shname", keywords)
-	m.SetSession("toptype", toptype)
-	m.SetSession("subtype", subtype)
-	m.SetSession("scope", scope)
-	m.SetSession("publishtime", publishtime)
+	searchvalue := strings.Trim(m.GetString("searchvalue"), " ")
 	var list *[]map[string]interface{}
 	if userid := m.GetSession("userId"); userid != nil {
-		if len(keywords) > 0 {
-			if selectType == "" { //默认设置为全文搜索
-				selectType = "all"
-			}
-			list = getWxsearchlistData(keywords, searchvalue, scope, publishtime, subtype,industry, 1, selectType)
-			fmt.Println("list",list)
-			r := redis.GetStr("other", "s_"+userid.(string))
-			arrs := strings.Split(r, ",")
-			if r == "" {
+		if len(searchvalue) > 0 {
+			searchname := strings.Replace(strings.Replace(searchvalue, " ", "+", -1), "++", "+", -1)
+			list = getWxsearchlistData(searchvalue, searchname, "", "", "","", 1, "all")
+			history := redis.GetStr("other", "s_"+userid.(string))
+			arrs := strings.Split(history, ",")
+			if history == "" {
 				arrs = make([]string, 0)
 			}
 			var historyFlag = 0
+			fmt.Println("|||||||",searchvalue,"||||||")
 			for _, v := range arrs {
-				if v == strings.Trim(keywords, " ") {
+				fmt.Print(v == strings.Trim(searchvalue, " "))
+				if v == strings.Trim(searchvalue, " ") {
 					historyFlag = 1
 					break
 				}
 			}
 			if historyFlag != 1 {
-				arrs = append(arrs, keywords)
+				arrs = append(arrs, searchvalue)
 				if len(arrs) > 5 {
 					arrs = arrs[1:6]
 				}
 				redis.Del("other", "s_"+userid.(string))
 				redis.Put("other", "s_"+userid.(string), strings.Join(arrs, ","), -1)
 			}
+			l := len(arrs) - 1
+			for i := 0; i < len(arrs)/2; i++ {
+				tmp := arrs[l-i]
+				arrs[l-i] = arrs[i]
+				arrs[i] = tmp
+			}
+			m.T["history"] = arrs
+			one, _ := mongodb.FindOneByField("user", bson.M{"_id": bson.ObjectIdHex(userid.(string))}, `{"o_jy":1}`)
+			if one != nil && len(*one) > 0 {
+				o_jy, _ := (*one)["o_jy"].(map[string]interface{})
+				a_key, _ := o_jy["a_key"].([]interface{})
+				var keys []interface{}
+				for _, v := range a_key {
+					keyMap, _ := v.(map[string]interface{})
+					key, _ := keyMap["key"].([]interface{})
+					keys = append(keys, key)
+				}
+				m.T["msgset"] = keys
+			}
 		}
-	}
-	m.T["list"] = list
-	m.T["pageSize"] = wx_pageSize
-	m.T["keywords"] = keywords
-	m.T["searchvalue"] = searchvalue
+		m.T["list"] = list
+		m.T["pageSize"] = wx_pageSize
+		m.T["searchvalue"] = searchvalue
 
-	//搜索列表增加分享
-	m.T["signature"] = wx.SignJSSDK(m.Site() + m.Url())
-	myopenid, _ := m.Session().Get("s_m_openid").(string)
-	m.T["openid"] = se.EncodeString(myopenid)
-	mynickname, _ := m.Session().Get("s_nickname").(string)
-	myavatar, _ := m.Session().Get("s_avatar").(string)
-	m.T["nickname"] = mynickname
-	m.T["avatar"] = myavatar
+		//搜索列表增加分享
+		m.T["signature"] = wx.SignJSSDK(m.Site() + m.Url())
+		myopenid, _ := m.Session().Get("s_m_openid").(string)
+		m.T["openid"] = se.EncodeString(myopenid)
+		mynickname, _ := m.Session().Get("s_nickname").(string)
+		myavatar, _ := m.Session().Get("s_avatar").(string)
+		m.T["nickname"] = mynickname
+		m.T["avatar"] = myavatar
+	}
 	return  m.Render("/weixin/search/superSearch.html", &m.T)
 }
 
-/*
-func (m *Front) Wxsearch() error {
-	defer util.Catch()
-	shname := m.GetSession("shname")
-	toptype := m.GetSession("toptype")
-	subtype := m.GetSession("subtype")
-	scope := m.GetSession("scope")
-	publishtime := m.GetSession("publishtime")
-	industry := m.GetSession("industry")
-	if shname != "" && shname != nil {
-		m.T["shname"] = shname
-	}
-	m.T["toptype"] = toptype
-	m.T["subtype"] = subtype
-	m.T["scope"] = scope
-	m.T["publishtime"] = publishtime
-	m.T["industry"] = industry
-	m.T["signature"] = wx.SignJSSDK(m.Site() + m.Url())
-	mynickname, _ := m.Session().Get("s_nickname").(string)
-	myavatar, _ := m.Session().Get("s_avatar").(string)
-	m.T["nickname"] = mynickname
-	m.T["avatar"] = myavatar
-	myopenid, _ := m.Session().Get("s_m_openid").(string)
-	m.T["openid"] = se.EncodeString(myopenid)
-	if userId := m.GetSession("userId"); userId != nil {
-		one, _ := mongodb.FindOneByField("user", bson.M{"_id": bson.ObjectIdHex(userId.(string))}, `{"o_jy":1}`)
-		history := redis.GetStr("other", "s_"+userId.(string))
-		arrs := strings.Split(history, ",")
-		if history == "" {
-			arrs = make([]string, 0)
-		}
-		l := len(arrs) - 1
-		for i := 0; i < len(arrs)/2; i++ {
-			tmp := arrs[l-i]
-			arrs[l-i] = arrs[i]
-			arrs[i] = tmp
-		}
-		m.T["history"] = arrs
-		if one != nil && len(*one) > 0 {
-			o_jy, _ := (*one)["o_jy"].(map[string]interface{})
-			a_key, _ := o_jy["a_key"].([]interface{})
-			var keys []interface{}
-			for _, v := range a_key {
-				keyMap, _ := v.(map[string]interface{})
-				key, _ := keyMap["key"].([]interface{})
-				keys = append(keys, key)
-			}
-			m.T["msgset"] = keys
-		}
-	}
-	return m.Render("/weixin/wxsearch.html", &m.T)
-}*/

+ 18 - 16
src/jfw/front/supsearch.go

@@ -50,13 +50,27 @@ func (p *Pcsearch) PcSearchIndex() error {
 	defer util.Catch()
 	var shareid = p.GetString("id")
 	p.T["logid"] = config.Seoconfig["jysslby"].(string)
-	industryname := config.Sysconfig["industry"].(string)
 	if len(shareid) == 0 {
 		shareid = fmt.Sprintf("%s%d", config.Seoconfig["jysslby"].(string)+fmt.Sprintf("%d", time.Now().UnixNano())[8:14], rand.Intn(9))
 	}
+	industry, sortArray := getindustrys()
+	p.T["industry"] = industry
+	p.T["sortArray"] = sortArray
+	p.DisableHttpCache()
+	Newbids()
+	data := redis.Get("other", "index_list").([]interface{})
+	p.T["shareid"] = se.EncodeString(shareid)
+	p.T["list"] = data[0]
+	return p.Render("/pc/supsearch.html", &p.T)
+}
+
+//
+func getindustrys() (industry map[string][]string, sortArray []string) {
+	industry = map[string][]string{}
+	sortArray = []string{}
+	industryname := config.Sysconfig["industry"].(string)
 	classdata, ok1 := mongodb.FindOneByField("rc_task", `{"s_name":"`+industryname+`"}`, `{"s_class":1}`)
 	if ok1 && len(*classdata) > 0 {
-		log.Println("---:", (*classdata)["s_class"])
 		classid := ""
 		if util.ObjToString((*classdata)["s_class"]) != "" {
 			classids := strings.Split(util.ObjToString((*classdata)["s_class"]), ",")
@@ -67,15 +81,10 @@ func (p *Pcsearch) PcSearchIndex() error {
 				classid += `"` + v + `"`
 			}
 		}
-		log.Println("caid:", classid)
-		industryData, ok := mongodb.Find("rc_rule", `{"s_pid":{"$ne":""},"s_classid":{"$in":["592f8c14e13823494a0ef74d","5955b9d2e13823524f1c83f3","5955e200e13823050ee481ce","595cb06ae138233628af3a44","595cb0b4e138233628af3a45","597ed6cbe1382369578abf54"]}}`, `{"i_order":1}`, `{"_id":1,"s_name":1}`, false, -1, -1)
-		log.Println("chaud:", len(*industryData))
+		industryData, ok := mongodb.Find("rc_rule", `{"s_pid":{"$ne":""},"s_classid":{"$in":[`+classid+`]}}`, `{"i_order":1}`, `{"_id":1,"s_name":1}`, false, -1, -1)
 		if ok && industryData != nil && len(*industryData) > 0 {
-			industry := map[string][]string{}
-			sortArray := []string{}
 			for _, v := range *industryData {
 				fatFlag := 0
-				//childFlag := 0
 				industryname, _ := v["s_name"].(string)
 				if strings.Contains(industryname, "_") {
 					fat := strings.Split(industryname, "_")[0]
@@ -94,16 +103,9 @@ func (p *Pcsearch) PcSearchIndex() error {
 					}
 				}
 			}
-			p.T["industry"] = industry
-			p.T["sortArray"] = sortArray
 		}
 	}
-	p.DisableHttpCache()
-	Newbids()
-	data := redis.Get("other", "index_list").([]interface{})
-	p.T["shareid"] = se.EncodeString(shareid)
-	p.T["list"] = data[0]
-	return p.Render("/pc/supsearch.html", &p.T)
+	return industry, sortArray
 }
 
 //

+ 56 - 35
src/jfw/front/swordfish.go

@@ -4,9 +4,6 @@ import (
 	"encoding/base64"
 	"encoding/json"
 	"fmt"
-	"github.com/go-xweb/xweb"
-	. "github.com/thinxer/go-word2vec"
-	"gopkg.in/mgo.v2/bson"
 	"html/template"
 	"jfw/config"
 	"jfw/jyutil"
@@ -22,6 +19,10 @@ import (
 	"strings"
 	"sync"
 	"time"
+
+	"github.com/go-xweb/xweb"
+	. "github.com/thinxer/go-word2vec"
+	"gopkg.in/mgo.v2/bson"
 )
 
 const (
@@ -456,8 +457,9 @@ func (m *Front) PcAjaxReq() {
 			count, list = getLastNewsData(searchvalue, area, publishtime, subtype, industry, 0, true)
 		}
 	} else if reqType == "bidSearch" {
-		_, list = getBidSearchData(searchvalue, area, publishtime, subtype, industry, start, false, selectType)
+		count, list = getBidSearchData(searchvalue, area, publishtime, subtype, industry, start, true, selectType)
 	} else if reqType == "lastNews" {
+		log.Println("zuixin:", area)
 		_, list = getLastNewsData(searchvalue, area, publishtime, subtype, industry, start, false)
 	}
 	if list != nil && len(*list) > 0 {
@@ -837,50 +839,68 @@ func (m *Front) WxsearchlistPaging() {
 	var list *[]map[string]interface{}
 	pageNum, _ := m.GetInteger("pageNum")
 	if userid != nil && pageNum <= wx_maxPageNum {
-		keywords := strings.Trim(m.GetString("searchname"), " ")
-		searchvalue := m.GetString("searchvalue")
+		//keywords := strings.Trim(m.GetString("searchvalue"), " ")
+		searchvalue := strings.Trim(m.GetString("searchvalue"), " ")
+		searchname := strings.Replace(strings.Replace(searchvalue, " ", "+", -1), "++", "+", -1)
 		subtype := m.GetString("subtype")
 		scope := m.GetString("scope")
 		publishtime := m.GetString("publishtime")
 		selectType := m.GetString("selectType")
 		industry := m.GetString("industry")
-		list = getWxsearchlistData(keywords, searchvalue, scope, publishtime, subtype, industry, pageNum, selectType)
-	}
-	//历史记录和订阅查询
-	if userId := m.GetSession("userId"); userId != nil {
-		one, _ := mongodb.FindOneByField("user", bson.M{"_id": bson.ObjectIdHex(userId.(string))}, `{"o_jy":1}`)
-		history := redis.GetStr("other", "s_"+userId.(string))
-		arrs := strings.Split(history, ",")
-		if history == "" {
-			arrs = make([]string, 0)
-		}
-		l := len(arrs) - 1
-		for i := 0; i < len(arrs)/2; i++ {
-			tmp := arrs[l-i]
-			arrs[l-i] = arrs[i]
-			arrs[i] = tmp
-		}
-		m.T["history"] = arrs
-		if one != nil && len(*one) > 0 {
-			o_jy, _ := (*one)["o_jy"].(map[string]interface{})
-			a_key, _ := o_jy["a_key"].([]interface{})
-			var keys []interface{}
-			for _, v := range a_key {
-				keyMap, _ := v.(map[string]interface{})
-				key, _ := keyMap["key"].([]interface{})
-				keys = append(keys, key)
+		list = getWxsearchlistData(searchvalue, searchname, scope, publishtime, subtype, industry, pageNum, selectType)
+
+		//历史记录和订阅查询
+		if userId := m.GetSession("userId"); userId != nil {
+			one, _ := mongodb.FindOneByField("user", bson.M{"_id": bson.ObjectIdHex(userId.(string))}, `{"o_jy":1}`)
+			history := redis.GetStr("other", "s_"+userId.(string))
+			arrs := strings.Split(history, ",")
+
+			if history == "" {
+				arrs = make([]string, 0)
+			}
+			var historyFlag= 0
+			for _, v := range arrs {
+				if v == strings.Trim(searchvalue, " ") {
+					historyFlag = 1
+					break
+				}
+			}
+			if historyFlag != 1 {
+				arrs = append(arrs, searchvalue)
+				if len(arrs) > 5 {
+					arrs = arrs[1:6]
+				}
+				redis.Del("other", "s_"+userid.(string))
+				redis.Put("other", "s_"+userid.(string), strings.Join(arrs, ","), -1)
+			}
+			l := len(arrs) - 1
+			for i := 0; i < len(arrs)/2; i++ {
+				tmp := arrs[l-i]
+				arrs[l-i] = arrs[i]
+				arrs[i] = tmp
+			}
+			m.T["history"] = arrs
+
+			if one != nil && len(*one) > 0 {
+				o_jy, _ := (*one)["o_jy"].(map[string]interface{})
+				a_key, _ := o_jy["a_key"].([]interface{})
+				var keys []interface{}
+				for _, v := range a_key {
+					keyMap, _ := v.(map[string]interface{})
+					key, _ := keyMap["key"].([]interface{})
+					keys = append(keys, key)
+				}
+				m.T["msgset"] = keys
 			}
-			m.T["msgset"] = keys
 		}
 	}
 
 
-
 	m.ServeJson(map[string]interface{}{
 		"list":        list,
 		"hasNextPage": list != nil && len(*list) == wx_pageSize && pageNum < wx_maxPageNum,
-		"history":   m.T["history"],
-		"msgset": m.T["msgset"],
+		"history":     m.T["history"],
+		"msgset":      m.T["msgset"],
 	})
 }
 
@@ -902,6 +922,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)
 	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)

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

@@ -0,0 +1,603 @@
+<?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>

+ 3 - 1
src/seo.json

@@ -297,6 +297,8 @@
 	"source":{
 		"baiduSEM":"百度SEM",
 		"360SEM":"360SEM",
-		"QQqun":"QQ群广告"
+		"QQqun":"QQ群广告",
+		"BDwangmeng":"百度网盟",
+		"PCwailian":"PC端外链"
 	}
 }

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

@@ -661,7 +661,7 @@ width:1160px;
 #searchInner .searchControl .seaTender-inner .tabContainer .lucene li .luce-left .left-title {
   float: left;
   line-height: 30px;
-    width: 818px
+    width: 810px
 }
 
 #searchInner .searchControl .seaTender-inner .tabContainer .lucene li .luce-left .left-title a {

+ 37 - 0
src/web/staticres/css/dev2/biddingSearch1.css

@@ -12,4 +12,41 @@
 }
 .active{
 	background-color: #2cb7ca;
+}
+.hasNoData{
+	border-bottom: 1px solid #e0e0e0;
+    height: 400px;
+	text-align: center;
+	padding-top: 30px;
+	margin-bottom:60px;
+}
+.searchInner{
+	line-height:1px;
+}
+.lucene-table tbody>tr>td:nth-child(1) div{
+	width:35px;
+}
+.lucene-table tbody>tr>td:nth-child(2) div{
+	width:88px;
+}
+.lucene-table tbody>tr>td:nth-child(3) div{
+	width:71px;
+}
+.lucene-table tbody>tr>td:nth-child(4) div{
+	width:168px;
+}
+.lucene-table tbody>tr>td:nth-child(5) div{
+	width:308px;
+}
+.lucene-table tbody>tr>td:nth-child(6) div{
+	width:60px;
+}
+.lucene-table tbody>tr>td:nth-child(7) div{
+	width:88px;
+}
+.lucene-table tbody>tr>td:nth-child(8) div{
+	width:161px;
+}
+.lucene-table tbody>tr>td:nth-child(9) div{
+	width:63px;
 }

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

@@ -21,7 +21,7 @@ vertical-align: baseline;
 outline: 0; 
 } 
 body { 
-line-height: 1; 
+/*line-height: 1; */
 /*color: black; 
 background: white; */
 font-family: "Microsoft YaHei",sans-serif;

+ 37 - 2
src/web/staticres/css/search/superSearch.css

@@ -1098,7 +1098,7 @@
 	letter-spacing: 2px;
 	text-align:center;
 }
-.jyabout .searchname{
+.jyabout .searchvalue{
 	background-color: #FFFFFF ;
 	border: 1px solid #E6E6E6;
 	height: 45px;
@@ -1472,7 +1472,7 @@
 body{
 	font-size:16px !important;
 }
-.searchname{
+.searchvalue{
 	background-color: #EEEEEE !important;
 	width:85% !important;
 	font-size:16px;
@@ -1708,4 +1708,39 @@ body{
 .dy_close img{
 	width: 12px;
 	margin: 4px;
+}
+.inputDiv{
+	width: 85%;
+	z-index: 9999;
+	position: absolute;
+	background-color: #fff;
+	border-top: 1px solid #e0e0e0;
+}
+.inputDiv .history li,.inputDiv .myMsgset li,.inpTitle{
+	width: 100%;
+	height: 38px;
+	border-left: 1px solid #e0e0e0;
+	border-right: 1px solid #e0e0e0;
+	border-bottom: 1px solid #e0e0e0;
+	line-height: 38px;
+	padding-left: 10px;
+	overflow: hidden;
+}
+.inputDiv .history li,.inputDiv .myMsgset li{
+	color:#888;
+	font-size: 14px;
+}
+.inputDiv img{
+	width: 20px;
+}
+.inpTitle{
+	color:#888;
+	font-size: 16px;
+}
+.inpTitle span{
+	padding-left: 10px;
+}
+#del_history{
+	float: right;
+	margin: 9px;
 }

BIN
src/web/staticres/images/search/history.png


BIN
src/web/staticres/images/search/history_clean.png


BIN
src/web/staticres/images/search/msgset.png


+ 3 - 5
src/web/staticres/js/biddingSearch.js

@@ -121,7 +121,7 @@ $(function() {
 			} else {
 				$prevNode.removeClass("active").addClass("secondActice");
 			}
-			beforeSubmit();
+
 		});
 		$parentNode.on('click', function() {
 			$(this).toggleClass("active").removeClass("secondActice");
@@ -131,7 +131,7 @@ $(function() {
 			} else {
 				$nextALLChildren.addClass('active');
 			}
-			beforeSubmit();
+
 		});
 		/*如果点击没有内容给全部添加类名*/
 		$content.on("click", "font", function() {
@@ -140,13 +140,12 @@ $(function() {
 			} else {
 				$induAll.addClass("active");
 			}
-			beforeSubmit();
+
 		})
 		/*全部点击*/
 		$induAll.on("click", function() {
 			$(this).addClass("active");
 			$content.children().not($(this)).removeClass("active secondActice")
-			beforeSubmit();
 		})
 	};
 	/*时间发布*/
@@ -157,7 +156,6 @@ $(function() {
 		$childrenLi.on("click", function() {
 			$(this).addClass("active").siblings().removeClass("active");
 			$(".timerInput").removeClass("active");
-			beforeSubmit();
 		})
 	}
 

+ 37 - 0
src/web/staticres/js/entsearchscript.js

@@ -0,0 +1,37 @@
+$(function () {
+    $("#regionBtn").on("click",function () {
+        //alert($(this).text())
+    })
+    $(".region-content>font").on("click",function () {
+        //alert($(this).text())
+        setTimeout(function () {
+            var area = "";
+            var count = $(".region-content").children().length;
+            for(var i=0; i<count; i++){
+                if($(".region-content").children().eq(i).attr("class")=="active"){
+                    if(area == ""){
+                        area += $(".region-content").children().eq(i).html();
+                    }else{
+                        area += ",";
+                        area += $(".region-content").children().eq(i).html();
+                    }
+                }
+            }alert(area)
+            $.ajax({
+                type: "post",
+                url: "/jylab/areabidsearchforent",
+                data: {
+                    "entname": "",
+                    "area": area,
+                    "lower": 0,
+                    "upper": 0,
+                },
+                success:function (data) {
+
+                }
+            });
+        },0)
+    })
+})
+
+

+ 177 - 90
src/web/staticres/js/superSearch.js

@@ -1,6 +1,9 @@
 var pageSize = 50;
 var nbflag = false;//是否显示的是最新招标数据
 var currentPage = 1;
+var submitflag = true;
+var searchvalue = "";
+var searchvalueArray = searchvalue.split("+");
 
 $(function() {
 	$("#minprice").click(function(){
@@ -22,6 +25,7 @@ $(function() {
 	$(".Price-content").find("span:first-child").click(function(){
 		$(this).addClass("active");
 		$(".pricefat").removeClass("active");
+		beforeSubmit();
 	})
 	$(".timer").find("ul li:first-child").click(function(){
 		$(this).addClass("active");
@@ -42,6 +46,7 @@ $(function() {
 		$(".pricefat").addClass("active");
 		$(".Price-content").find("span:first-child").removeClass("active");
 		$(".pricefat").removeClass("customtime-active");
+		beforeSubmit()
 	})
 	//
 	$("#timebut").click(function(){
@@ -93,6 +98,9 @@ $(function() {
 })
 //
 function next(){
+	if($(".nbnext").hasClass("disabled")){
+		return false;
+	}
 	var page = parseInt($(".pagination-inner").find("span").text())+parseInt(1)
 	if(!nbflag&&page<11){
 		if(page==10){
@@ -104,6 +112,9 @@ function next(){
 	}
 }
 function prev(){
+	if($(".nbprev").hasClass("disabled")){
+		return false;
+	}
 	var page = parseInt($(".pagination-inner").find("span").text())-parseInt(1)
 	if(!nbflag&&page>0){
 		if(page==1){
@@ -116,11 +127,38 @@ function prev(){
 }
 ////最新招标信息
 function getNewBiddings(page){
-	currentPage = page;
-	$.post("/jylab/supsearch/getNewBids",{pageNumber: page},function(data){
-		if(data&&data.list.length>0){
-			$(".pagination-inner").find("span").text(page)
-			appendDatas(data.list,false);
+	currentPage = page
+	if(page==1){
+		$(".nbprev").addClass("disabled");
+	}
+	var param = {
+				pageNumber: currentPage,
+				reqType: "lastNews",
+				searchvalue: $("#zbSeatchT [name='searchvalue']").val(),
+				area: $("#zbSeatchT [name='area']").val(),
+				subtype: $("#zbSeatchT [name='subtype']").val(),
+				publishtime: $("#zbSeatchT [name='publishtime']").val(),
+				selectType : $("#zbSeatchT [name='selectType']").val(),
+				minprice : $("#zbSeatchT [name='minprice']").val(),
+				maxprice : $("#zbSeatchT [name='maxprice']").val(),
+				industry : $("#zbSeatchT [name='industry']").val(),
+			};
+	$.post("/front/pcAjaxReq",param,function(r){
+		if(r&&r.list!=null&&r.list.length>0){
+			$(".tabContainer").show();
+			$(".pagination").show();
+			$(".hasNoData").hide();
+			$(".pagination-inner").find("span").text(page);
+			if(r.list.length<pageSize||page==10){
+				$(".nbnext").addClass("disabled");
+			}else{
+				$(".nbnext").removeClass("disabled");
+			}
+			appendDatas(r.list,false);
+		}else{
+			$(".tabContainer").hide();
+			$(".pagination").hide();
+			$(".hasNoData").show();
 		}
 	})
 }
@@ -164,6 +202,9 @@ function appendDatas(datas,flag){
 		if(!flag){
 				$("#allnews").hide();
 				$(".tabContainer-2").show();
+			}else{
+				$("#allnews").show();
+				$(".tabContainer-2").hide();
 			}
 			listHtml += '<li>'
 						+'<div class="liLuceneList">'
@@ -203,53 +244,66 @@ function appendDatas(datas,flag){
 			}
 			listHtml += '</div></li>';
 			tableHtml +='<tr>'
-					+'<td>'+index+'</td>'
+					+'<td><div>'+index+'</div></td>'
 			if(typeof(datas[i].publishtime) != "undefined" && datas[i].publishtime != null && datas[i].publishtime != ""){
 				var diff = formatDate(Number(datas[i].publishtime),"s");
 				if(diff != null){
-					tableHtml += '<td>'+diff+'</td>';
+					tableHtml += '<td><div>'+diff+'</div></td>';
 				}
 			}else{
-				tableHtml += '<td></td>';
+				tableHtml += '<td><div></div></td>';
 			}
 			if(typeof(type) != "undefined" && type != null && type != ""){
-				tableHtml += '<td>'+type+'公告</td>';
+				tableHtml += '<td><div>'+type+'公告</div></td>';
 			}else{
-				tableHtml += '<td></td>';
+				tableHtml += '<td><div></div></td>';
 			}
 			if(typeof(datas[i].agency) != "undefined" && datas[i].agency != null && datas[i].agency != ""){
-				tableHtml += '<td class="tt-l">'+datas[i].agency+'</td>';
+				tableHtml += '<td class="tt-l"><div>'+datas[i].agency+'</div></td>';
 			}else{
-				tableHtml += '<td class="tt-l"></td>';
+				tableHtml += '<td class="tt-l"><div></div></td>';
 			}
 			if(typeof(datas[i].projectname) != "undefined" && datas[i].projectname != null && datas[i].projectname != ""){
-				tableHtml += '<td class="tt-l">'+datas[i].projectname+'</td>';
+				tableHtml += '<td class="tt-l"><div>'+datas[i].projectname+'</div></td>';
 			}else{
-				tableHtml += '<td class="tt-l"></td>';
+				tableHtml += '<td class="tt-l"><div></div></td>';
 			}
 			if(typeof(datas[i].budget) != "undefined" && datas[i].budget != null && datas[i].budget != ""){
 				var budget =parseInt(datas[i].budget)/10000
-				
-				tableHtml += '<td class="tt-r">'+budget+'</td>';
+				if(budget.toString().length>6){
+					if(budget.toString().indexOf(".")==5){
+						budget=budget.toString().substr(0,7)
+					}else{
+						budget=budget.toString().substr(0,6)
+					}
+				}
+				tableHtml += '<td class="tt-r"><div>'+budget+'</div></td>';
 			}else{
-				tableHtml += '<td class="tt-r"></td>';
+				tableHtml += '<td class="tt-r"><div></div></td>';
 			}
 			if(typeof(datas[i].bidopentime) != "undefined" && datas[i].bidopentime != null && datas[i].bidopentime != ""){
 				var diff = formatDate(Number(datas[i].publishtime),"l");
-				tableHtml += '<td>'+diff+'</td>';
+				tableHtml += '<td><div>'+diff+'</div></td>';
 			}else{
-				tableHtml += '<td></td>';
+				tableHtml += '<td><div></div></td>';
 			}
 			if(typeof(datas[i].winner) != "undefined" && datas[i].winner != null && datas[i].winner != ""){
-				tableHtml += '<td class="tt-l">'+datas[i].winner+'</td>';
+				tableHtml += '<td class="tt-l"><div>'+datas[i].winner+'</div></td>';
 			}else{
-				tableHtml += '<td class="tt-l"></td>';
+				tableHtml += '<td class="tt-l"><div></div></td>';
 			}
 			if(typeof(datas[i].bidamount) != "undefined" && datas[i].bidamount != null && datas[i].bidamount != ""){
 				var bidamount = parseInt(datas[i].bidamount)/10000
-				tableHtml += '<td class="tt-r">'+bidamount+'</td>';
+				if(bidamount.toString().length>6){
+					if(bidamount.toString().indexOf(".")==5){
+						bidamount=bidamount.toString().substr(0,7)
+					}else{
+						bidamount=bidamount.toString().substr(0,6)
+					}
+				}
+				tableHtml += '<td class="tt-r"><div>'+bidamount+'</div></td>';
 			}else{
-				tableHtml += '<td class="tt-r"></td>';
+				tableHtml += '<td class="tt-r"><div></div></td>';
 			}
 				tableHtml+='</tr>'
 	}
@@ -322,79 +376,112 @@ function getInputTime(){
 }
 ///
 function beforeSubmit(){
-	//时间
-	var publishtime = null;
-	var timeslot = getInputTime().join("_");
-	if($(".timerInput").hasClass("active")){
-		if(timeslot != "_"){
-			$("#zbSeatchT [name='publishtime']").val(timeslot);
+	setTimeout(function(){
+		//时间
+		var publishtime = null;
+		var timeslot = getInputTime().join("_");
+		if($(".timerInput").hasClass("active")){
+			if(timeslot != "_"){
+				$("#zbSeatchT [name='publishtime']").val(timeslot);
+			}else{
+				$("#zbSeatchT [name='publishtime']").val("");
+			}
 		}else{
-			$("#zbSeatchT [name='publishtime']").val("");
+			publishtime = $(".timer .active").attr("data-value");
+			if(typeof(publishtime) != "undefined"){
+				$("#zbSeatchT [name='publishtime']").val(publishtime);
+			}else{
+				$("#zbSeatchT [name='publishtime']").val("");
+			}
 		}
-	}else{
-		publishtime = $(".timer .active").attr("data-value");
-		if(typeof(publishtime) != "undefined"){
-			$("#zbSeatchT [name='publishtime']").val(publishtime);
+		if(timeslot != "_"){
+			$("#zbSeatchT [name='timeslot']").val(timeslot);	
 		}else{
-			$("#zbSeatchT [name='publishtime']").val("");
+			$("#zbSeatchT [name='timeslot']").val("");
 		}
-	}
-	if(timeslot != "_"){
-		$("#zbSeatchT [name='timeslot']").val(timeslot);	
-	}else{
-		$("#zbSeatchT [name='timeslot']").val("");
-	}
-	//地区
-	var selectAreas = "";
-	$(".region-content .active:not(.parent-node)").each(function(){
-		var thisText = $(this).text();
-		if(thisText != "全国"){
-			if(selectAreas != ""){
-				selectAreas += ",";
+		//地区
+		var selectAreas = "";
+		$(".region-content .active:not(.parent-node)").each(function(){
+			var thisText = $(this).text();
+			if(thisText != "全国"){
+				if(selectAreas != ""){
+					selectAreas += ",";
+				}
+				selectAreas += thisText;
 			}
-			selectAreas += thisText;
-		}
-	});
-	$("#zbSeatchT [name='area']").val(selectAreas);
-	//类型
-	var selectSubTypes = "";
-	$(".info-content .active:not(.parent-node)").each(function(){
-		if($(this).attr("id") == "whole"||$(this).attr("id") == "infoBtn"){
-			return true;
-		}
-		var thisText = $(this).attr("data-value");
-		if(selectSubTypes != ""){
-			selectSubTypes += ",";
-		}
-		selectSubTypes += thisText;
-	});
-	$("#zbSeatchT [name='subtype']").val(selectSubTypes);
-	//行业
-	var selectIndustrys = "";
-	$(".industry-content .active:not(.parent-node)").each(function(){
-		if($(this).attr("id") == "induAll"){
-			return true;
-		}
-		var thisText = $(this).attr("data-value");
-		if(selectIndustrys != ""){
-			selectIndustrys += ",";
-		}
-		selectIndustrys += thisText;
-	});
-	$("#zbSeatchT [name='industry']").val(selectIndustrys);
-	//价格
-	var selectMinPrices = $(".PriceInput [name='minprice']").val();
-	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();
-	return true
+		});
+		$("#zbSeatchT [name='area']").val(selectAreas);
+		//类型
+		var selectSubTypes = "";
+		$(".info-content .active:not(.parent-node)").each(function(){
+			if($(this).attr("id") == "whole"||$(this).attr("id") == "infoBtn"){
+				return true;
+			}
+			var thisText = $(this).attr("data-value");
+			if(selectSubTypes != ""){
+				selectSubTypes += ",";
+			}
+			selectSubTypes += thisText;
+		});
+		$("#zbSeatchT [name='subtype']").val(selectSubTypes);
+		//行业
+		var selectIndustrys = "";
+		$(".industry-content .active:not(.parent-node)").each(function(){
+			if($(this).attr("id") == "induAll"){
+				return true;
+			}
+			var thisText = $(this).attr("data-value");
+			if(selectIndustrys != ""){
+				selectIndustrys += ",";
+			}
+			selectIndustrys += thisText;
+		});
+		$("#zbSeatchT [name='industry']").val(selectIndustrys);
+		//价格
+		var selectMinPrices = $(".PriceInput [name='minprice']").val();
+		var selectMaxPrices =  $(".PriceInput [name='maxprice']").val();
+		$("#zbSeatchT [name='minprice']").val(selectMinPrices);
+		$("#zbSeatchT [name='maxprice']").val(selectMaxPrices);
+		//搜索关键词
+		var searchname = $("#zbSeatchT input[name='keywords']").val();
+		$("#zbSeatchT input[name='searchvalue']").val($.trim(searchname))
+		if(submitflag){	
+			if($.trim(searchname)==""){
+				getNewBiddings(1)
+				nbflag = false;
+				console.log(nbflag+"-----")
+			}else{
+				searchOnsubmit();
+				nbflag = true;
+				console.log("2222")
+			}
+			submitflag=false;
+		}	
+		setTimeout(function(){
+			submitflag=true
+		},200);
+		return true
+	},200)
 }
 //
 function searchOnsubmit(){
-	
+	var param = {
+				pageNumber: currentPage,
+				reqType: "bidSearch",
+				searchvalue: $("#zbSeatchT [name='searchvalue']").val(),
+				area: $("#zbSeatchT [name='area']").val(),
+				subtype: $("#zbSeatchT [name='subtype']").val(),
+				publishtime: $("#zbSeatchT [name='publishtime']").val(),
+				selectType : $("#zbSeatchT [name='selectType']").val(),
+				minprice : $("#zbSeatchT [name='minprice']").val(),
+				maxprice : $("#zbSeatchT [name='maxprice']").val(),
+				industry : $("#zbSeatchT [name='industry']").val(),
+			};
+	$.post("/front/pcAjaxReq",param,function(r){
+		if(r.list == null || r.list.length == 0){
+			
+		}else{
+			appendDatas(r.list,true)
+		}
+	});
 }

+ 1 - 0
src/web/templates/pc/biddingsearch_enterprise.html

@@ -15,6 +15,7 @@
 		<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">

+ 6 - 2
src/web/templates/pc/supsearch.html

@@ -163,6 +163,7 @@ $(function(){
 					<input type="hidden" name="minprice" value="{{.T.minprice}}">
 					<input type="hidden" name="maxprice" value="{{.T.maxprice}}">
 					<input type="hidden" name="industry" value="{{.T.selectIndustry}}">
+					<input type="hidden" name="selectType" value="all">
 				</form>
 				<!--筛选-->
 				<div id="screenBtn" class="screen up">
@@ -216,7 +217,7 @@ $(function(){
 					价格区间:
 				</div>
 				<div class="Price-content clearfix">
-					<span class="active">全部</span>
+					<span id="priceAll" class="active">全部</span>
 					<div class="pricefat">
 						<div class="PriceInput">
 							<input type="text" name="minprice" id="minprice" value="" placeholder="最低价              万元" />
@@ -234,7 +235,7 @@ $(function(){
 				</div>
 				<div class="fl timer">
 					<ul>
-						<li class="active" data-value="">全部</li>
+						<li id="timerAll" class="active" data-value="">全部</li>
 						<li data-value="lately-7">最近七天</li>
 						<li data-value="lately-30">最近30天</li>
 						<li data-value="thisyear">去年</li>
@@ -427,6 +428,9 @@ $(function(){
 					</table>
 				</div>
 			</div>
+			<div class="hasNoData" style="display: none;">
+				<img src="/images/pc_12.png" id="hasNoData">
+			</div>
 		</div>
 		<!--分页-->
 		<div class="pagination clearfix w">

+ 110 - 13
src/web/templates/weixin/search/mainSearch.html

@@ -19,7 +19,7 @@
             color: #000;
             background-color:#f5f4fa;
         }
-        .searchname{
+        .searchvalue{
             background-color:#FFFFFF;
             border:1px solid #E6E6E6;
             height:45px;
@@ -110,28 +110,87 @@
             width: 100%;
             height: 20px;
         }
+        .inputDiv{
+            width: 85%;
+            z-index: 9999;
+            position: absolute;
+            background-color: #fff;
+            border-top: 1px solid #e0e0e0;
+        }
+        .inputDiv ul{
+           margin: 0px;
+            padding: 0px;
+        }
+        .inputDiv .history li,.inputDiv .myMsgset li,.inpTitle{
+            width: 100%;
+            height: 38px;
+            border-left: 1px solid #e0e0e0;
+            border-right: 1px solid #e0e0e0;
+            border-bottom: 1px solid #e0e0e0;
+            line-height: 38px;
+            padding-left: 10px;
+            overflow: hidden;
+        }
+        .inputDiv .history li,.inputDiv .myMsgset li{
+            color:#888;
+            font-size: 14px;
+        }
+        .inputDiv img{
+            width: 20px;
+        }
+        .inpTitle{
+            color:#888;
+            font-size: 16px;
+        }
+        .inpTitle span{
+            padding-left: 10px;
+        }
+        #del_history{
+            float: right;
+            margin: 9px;
+        }
     </style>
     <script>
+        var myHistory={{.T.history}};
+        var msgset={{.T.msgset}};
+        //initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}});
         $(function(){
-            $(".searchname").on("input propertychange",function(){
+            $(".searchvalue").on("input propertychange",function(){
                 canSearch()
             });
             canSearch();
-            $(".searchform .clearInpt").click(function(){$("input[name=searchname]").val("");canSearch();});
+            $(".searchform .clearInpt").click(function(){$("input[name=searchvalue]").val("");canSearch();});
             $(".searchform .query").click(function(){
-                toSearch();
+                $("#searchform").submit();
+            })
+            //历史搜索和我的订阅
+            $("input[name=searchvalue]").focus(function(){$(".inputDiv").removeClass("hidden")});
+            $("input[name=searchvalue]").blur(function(){ setTimeout(function(){$(".inputDiv").addClass("hidden")},0);});
+            loadTipMsg(myHistory,msgset);
+            $(".inputDiv").css("width",($(window).width()-30)*0.92);    //调整宽度
+            //删除历史搜索
+            $("#del_history").click(function(){
+                if($(".inputDiv .history").find("li").length >0){
+                    $.ajax({
+                        type:"post",
+                        url:"/swordfish/delWxHistorySearch",
+                        success:function(rt){
+                            $(".inputDiv .history").find("li").remove();
+                        }
+                    });
+                }
             })
-        })
+        });
         document.onkeydown = function(e){
             if(!e){
                 e = window.event;
             }
             if((e.keyCode || e.which) == 13){
-                toSearch();
+                $("#searchform").submit();
             }
-        }
+        };
         function canSearch(){  //是否显示搜索按钮
-            var len=$(".searchname").val().length;
+            var len=$(".searchvalue").val().length;
             if(len>0){
                 $(".clearInpt").removeClass("hidden");
                 $(".query").removeClass("hidden");
@@ -140,9 +199,34 @@
                 $(".query").addClass("hidden");
             }
         }
-        function toSearch() {
-            $("input[name$='keleyi']").val($(".searchname").val());
-            $("#searchform").submit();
+        function loadTipMsg(myhistory,msgset){
+            //历史信息
+            if(myhistory!=null){
+                historyHtml ="";
+                for(var i=0;i<myhistory.length;i++){
+                    historyHtml+="<li>"+myhistory[i]+"</li>"
+                }
+                $(".inputDiv .history").html(historyHtml);
+            }
+
+            //订阅信息
+            if(msgset!=null){
+                msgsetHtml="";
+                for(var n=0;n<msgset.length;n++){
+                    var  mymsgset="";
+                    for(var m=0;m<msgset[n].length;m++){
+                        mymsgset+=msgset[n][m]+" "
+                    }
+                    msgsetHtml+="<li>"+mymsgset+"</li>";
+                }
+                $(".inputDiv .myMsgset").html(msgsetHtml);
+            }
+
+            //点击提示框内容 进行搜索
+            $(".inputDiv li").click(function () {
+                $("input[name=searchvalue]").val($(this).text());
+                $("#searchform").submit();
+            })
         }
     </script>
 </head>
@@ -151,8 +235,21 @@
 <div id="searchDiv">
     <form class="searchform" id="searchform" method="post" action="/jylab/superSearch">
         <div class="wxhead">
-            <input class="form-control searchname" id="searchname" name="searchname" maxlength ="50" value="{{if .T.shname}}{{.T.shname}}{{end}}" placeholder="示例:税务局 软件"/>
-            <input name="searchvalue" class="hidden">
+            <input class="form-control searchvalue" id="searchvalue" name="searchvalue" maxlength ="50" value="{{if .T.shname}}{{.T.shname}}{{end}}" placeholder="示例:税务局 软件"/>
+            <div class="inputDiv hidden">
+                <div class="inpTitle"><img src="/images/search/history.png"><span>历史搜索</span><img id="del_history" src="/images/search/history_clean.png"></div>
+                <div>
+                    <ul class="history">
+                    </ul>
+                </div>
+                <div style="clear: both"></div>
+                <div class="inpTitle"><img src="/images/search/msgset.png"><span>我的订阅的关键词</span></div>
+                <div>
+                    <ul class="myMsgset">
+                    </ul>
+                </div>
+
+            </div>
             <span class="query hidden"><img src="/images/wx/jywxjs.png"/></span>
             <span class="clearInpt hidden"><img src="/images/wx/jyqingchu.png"></span>
             <span class="help"><img src="/images/help-w.png"/></span>

+ 110 - 58
src/web/templates/weixin/search/superSearch.html

@@ -21,14 +21,15 @@
         var s_words = {{.T.searchvalue}};
         var firstPage = {{.T.list}};
         var pageSize = {{.T.pageSize}};
+        var myHistory={{.T.history}};
+        var msgset={{.T.msgset}};
         window.top.noMoreCache = "false";
         var scrollDownObj=null;   //翻页对象
 		var dyDiv=true;     //显示订阅剑鱼信息
         initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}});
         //提交参数
         var reqParam = {
-            "searchname": $("#searchform [name='searchname']").val(),
-            "searchvalue": $("#searchform [name='searchvalue']").val(),
+            "searchvalue": "",
             "subtype": "",
             "scope": "",
             "publishtime": "",
@@ -39,6 +40,9 @@
         };
         var loadCacheData = true;
         $(function(){
+            //loadTipMsg加载历史记录和我的订阅
+            loadTipMsg(myHistory,msgset);
+
             //筛选菜单展示or隐藏
             $(".wxhead").find(".screen").click(function(){
                 $(".wxsearch").toggleClass("hidden");
@@ -60,21 +64,25 @@
                     scrollArea : window.top.isIOS?window.top:window,
                     loadDownFn : function(me){
                         scrollDownObj=me;
-                        if(loadCacheData&&firstPage){
-                            if(firstPage.length>0){
-                                appendListHtml(getHtml(firstPage,1));
-                                firstPage = null;
-                                loadCacheData=false;
-                                setTimeout(function(){
-                                    me.resetload();
-                                },1000);
-                            }else{
-                                $(".nullcontent").removeClass("hidden");
-                            }
-                            return;
+                        if(loadCacheData){    //第一次加载跳转传递的信息
+                            loadCacheData=false;
+							if(firstPage){    //firstPage不为null
+                                if(firstPage.length>0){  //如果判断是否为空
+                                    appendListHtml(getHtml(firstPage,1));
+                                    firstPage = null;
+                                    setTimeout(function(){
+                                        me.resetload();
+                                    },1000);
+                                    return
+                                }
+							}
+                            me.noData();
+                            me.lock();
+                            hasNoData();
+							return
                         }
+                        //---------------------------非第一次  下拉翻页请求
                         beforeSubmit();
-                       // pageNum++;
                         reqParam["pageNum"] ++;        //翻页请求
                         $.ajax({
                             type: 'post',
@@ -110,12 +118,14 @@
             /**********************分页请求end****************************/
 
             canSearch();
-
-            $("input[name=searchname]").on("input",function(){canSearch();})//监听输入框是否为空
+            $("input[name=searchvalue]").on("input",function(){canSearch();});//监听输入框是否为空
+            //是否显示提示搜索框
+			$("input[name=searchvalue]").focus(function(){$(".inputDiv").removeClass("hidden")});
+            $("input[name=searchvalue]").blur(function(){ setTimeout(function(){$(".inputDiv").addClass("hidden")},0);});
+			$(".inputDiv").css("width",($(window).width()-24)*0.85);    //调整宽度
 
             //清除输入框功能
-            $(".searchform .clearInpt").click(function(){$("input[name=searchname]").val("");canSearch();});
-
+            $(".searchform .clearInpt").click(function(){$("input[name=searchvalue]").val("");canSearch();});
             //提交查询
             $(".searchform .query").click(function(){beforeSubmit();toquery();})
             $(".jyshxbottom .jydqsure").click(function(){
@@ -127,19 +137,14 @@
                 }
             })
 			//清除筛选
-			$(".jyshxbottom .jydqreset").click(function(){
-				$(".hyBody li").removeClass("active");//清除行业
-				$(".money-dialog ul li:eq(0) .btn").trigger("click");//清除金额
-				$(".jypt-dialog .jypt-pt .btn:eq(0)").trigger("click");//清除时间
-                $(".jydq-dialog .btn:eq(0)").trigger("click");  //清除地区
-				$(".jytype-dialog .btn:eq(0)").trigger("click"); //清除类别
-			})
+			$(".jyshxbottom .jydqreset").click(function(){resetSx()	});
 			//关闭搜索后订阅================================================================
 			$(".dy_close").on("click",function(){
                 $(".resbm").addClass("hidden");
                 dyDiv=false;
 			})
-			if(dyDiv&&$("#list").text()!=""){   //首次进来是否显示订阅
+
+			if(dyDiv&&firstPage&&firstPage.length>0){   //首次进来是否显示订阅
                 $(".resbm").removeClass("hidden");
 			}
 			//订阅
@@ -148,7 +153,7 @@
                 $.ajax({
                     type: "post",
                     url: "/member/swordfish/ajaxReq",
-                    data: {keys:$("[name='searchname']").val(),reqType: "subscribe"},
+                    data: {keys:$("[name='searchvalue']").val(),reqType: "subscribe"},
                     dataType: "json",
                     async: false,
                     success: function(r){
@@ -166,10 +171,32 @@
 				}
             });
 			//订阅结束==========================================================================
+            //删除历史搜索
+            $("#del_history").click(function(){
+                if($(".inputDiv .history").find("li").length >0){
+                    $.ajax({
+                        type:"post",
+                        url:"/swordfish/delWxHistorySearch",
+                        success:function(rt){
+							$(".inputDiv .history").find("li").remove();
+                        }
+                    });
+                }
+            })
+
+
 
         });
+        //js 方法
+		function resetSx(){         //清除筛选
+            $(".hyBody li").removeClass("active");//清除行业
+            $(".money-dialog ul li:eq(0) .btn").trigger("click");//清除金额
+            $(".jypt-dialog .jypt-pt .btn:eq(0)").trigger("click");//清除时间
+            $(".jydq-dialog .btn:eq(0)").trigger("click");  //清除地区
+            $(".jytype-dialog .btn:eq(0)").trigger("click"); //清除类别
+		}
         function canSearch(){  //判断是否显示搜索按钮
-            var len=$(".searchname").val().length;
+            var len=$(".searchvalue").val().length;
             if(len>0){
                 $(".clearInpt").removeClass("hidden");
                 $(".query").removeClass("hidden");
@@ -181,9 +208,8 @@
             }
         }
         function beforeSubmit(){   //提交前,更新筛选内容至提交对象
-            s_words=$("#searchform [name='searchname']").val();
-            reqParam.searchname= $("#searchform [name='searchname']").val();
-            reqParam.searchvalue=$("#searchform [name='searchname']").val();
+            s_words=$("#searchform [name='searchvalue']").val();
+            reqParam.searchvalue=$("#searchform [name='searchvalue']").val();
             //信息范围
             this.setScope = function(){
                 var scope = [];
@@ -271,17 +297,15 @@
         }
 
         function toquery(){    //提交表单,获取数据
-			if(reqParam.searchname=="") return
-			reqParam.pageNum=1
+			if(reqParam.searchvalue=="") return;
+			reqParam.pageNum=1;
             $.post("/swordfish/searchlist/paging",reqParam,function(data){
-                var history=data.history;
-				var msgset=data.msgset;
-
-
+                //历史记录和我的订阅
+                loadTipMsg(data["history"],data["msgset"]);
 				//铺查询信息
                 if(data["list"] == null || data["list"].length == 0){
                     noMoreData(scrollDownObj);
-                    $("#list").text("")
+                    $("#list").text("");
                     hasNoData();
 					show();
                     return
@@ -503,31 +527,59 @@
             me.noData();
             me.resetload();
         }
-        function initDroploadNoMoreData(){
-            setTimeout(function(){
-                $('#wrapper').dropload({
-                    scrollArea : window.top.isIOS?window.top:window,
-                    loadDownFn : function(me){
-                        noMoreData(me);
+       	function loadTipMsg(myhistory,msgset){
+		//历史信息
+			if(myhistory!=null){
+                historyHtml ="";
+                for(var i=0;i<myhistory.length;i++){
+                    historyHtml+="<li>"+myhistory[i]+"</li>"
+                }
+                $(".inputDiv .history").html(historyHtml);
+			}
+
+		//订阅信息
+			if(msgset!=null){
+                msgsetHtml="";
+                for(var n=0;n<msgset.length;n++){
+                    var  mymsgset="";
+                    for(var m=0;m<msgset[n].length;m++){
+                        mymsgset+=msgset[n][m]+" "
                     }
-                });
-            },0);
-        }
+                    msgsetHtml+="<li>"+mymsgset+"</li>";
+                }
+                $(".inputDiv .myMsgset").html(msgsetHtml);
+			}
+
+		//点击提示框内容 进行搜索
+            $(".inputDiv li").click(function () {
+                $("input[name=searchvalue]").val($(this).text());
+                resetSx();                //重置筛选
+                beforeSubmit();				//填充数据
+                toquery();				 //查询
+            })
+		}
 	</script>
 </head>
 <body>
 <div style="background-color:#fff;" id="mainDiv">
 	<div class="wxhead">
 		<form class="searchform" id="searchform" method="post" action="/jylab/superSearch" >
-			<input class="form-control searchname slistbkc" name="searchname" maxlength ="50" value="{{if .T.keywords}}{{.T.keywords}}{{end}}" placeholder="示例:税务局 软件"/>
-			<!--<input type="hidden" name="searchvalue" value="{{.T.searchvalue}}">
-			<input type="hidden" name="toptype" value="{{.T.toptype}}">
-			<input type="hidden" name="subtype" value="{{.T.subtype}}">
-			<input type="hidden" name="scope" value="{{.T.scope}}">
-			<input type="hidden" name="publishtime" value="{{.T.publishtime}}">
-			<input type="hidden" name="industry" value="">
-			<input type="hidden" name="money" value="">
-			<input type="hidden" name="selectType" value="all">-->
+			<input class="form-control searchvalue slistbkc" name="searchvalue" maxlength ="50" value="{{if .T.searchvalue}}{{.T.searchvalue}}{{end}}" placeholder="示例:税务局 软件"/>
+			<div class="inputDiv hidden">
+				<div class="inpTitle"><img src="/images/search/history.png"><span>历史搜索</span><img id="del_history" src="/images/search/history_clean.png"></div>
+					<div>
+						<ul class="history">
+						</ul>
+					</div>
+					<div style="clear: both"></div>
+				<div class="inpTitle"><img src="/images/search/msgset.png"><span>我的订阅的关键词</span></div>
+					<div>
+						<ul class="myMsgset">
+						</ul>
+					</div>
+
+				</div>
+
 			<span class="query hidden"><img src="/images/wx/jywxjs.png"></span>
 			<span class="clearInpt hidden"><img src="/images/wx/jyqingchu.png"></span>
 			<span class="screen text-center" >筛选</span>
@@ -536,7 +588,7 @@
 	<div>
 		<div class="selLable" id="selLable" >
 			<div class="com-title"><!--height:30px; margin-top:20px;-->
-				<span onclick="allSearch()" id="search_all">全文搜索</span><span id="search_title" class="on" onclick="titleSearch()">标题搜索</span>
+				<span onclick="allSearch()" id="search_all" class="on" >全文搜索</span><span id="search_title" onclick="titleSearch()">标题搜索</span>
 			</div>
 			<div class="line-vertical">
 			</div>

+ 0 - 1
src/web/templates/weixin/wxsearchlist.html

@@ -408,7 +408,6 @@ function getHtml(list,pageNum){
 				}
 				detail = keyWordHighlight(detail,wordsArray.join("|"),'<font class="keyword">$1</font>');
 			}
-			console.log(title)
 		}
 		if(detail != ""){
 			detail = "<div class='detail'"+thisStyle+">"+detail+"...</div>";