Procházet zdrojové kódy

站点表重构相关调整

maxiaoshan před 2 roky
rodič
revize
e048a91c8b

+ 16 - 5
src/config.json

@@ -17,11 +17,11 @@
     "redisservers": "title_repeat_judgement=192.168.3.18:2379",
     "msgservers": {
         "comm": {
-            "addr": "spdata.jianyu360.com:805",
+            "addr": "spdata.jianyu360.com:801",
             "name": "编辑器_队列节点"
         },
         "bid": {
-            "addr": "spdata.jianyu360.com:805",
+            "addr": "spdata.jianyu360.com:803",
             "name": "编辑器_并发节点"
         },
         "test": {
@@ -52,9 +52,20 @@
     	"keyword":"(抽签|中标|招标|成交|合同|中标候选人|资格预审|拟建|邀请|询价|比选|议价|竞价|磋商|采购|招投标|答疑|变更公告|更正公告|竞争性谈判|竞谈|意见征询|澄清|单一来源|流标|废标|验收公告|中止|终止|违规|处罚|征集公告|开标结果|评审结果|监理|招租|租赁|评判结果|项目|遴选|补遗|竞标|征求意见|标段|定点结果|项目评审公示|采购项目违规|采购活动中违规|项目行政处罚|采购行政处罚|项目审批公示)",
     	"notkeyword":"(招聘|拍卖|出租|出让|使用权|资产)"
     },
-    "sitetype": [
-        "政府采购","公共资源","人民政府网","政府门户","学校","银行","保险","证券","医疗机构","代理机构","企业门户/平台","工程建设类","社会采购类","在线审批平台","军队","其他"
-    ],
+    "sitetype": {
+        "政府网站": ["政府采购","人民政府网","政府门户","政府电子商城"],
+        "公共资源网站": ["省级","市级","区县级"],
+        "在线审批平台": [],
+        "军队": [],
+        "企业": ["央企","国企","合资","民营"],
+        "学校": ["小学","中学","大学"],
+        "医疗机构": ["一级甲等","二级甲等","三级甲等","一级乙等","二级乙等","三级乙等","一级丙等","二级丙等","三级丙等"],
+        "代理机构": ["甲级","乙级","暂定级"],
+        "金融": ["银行","保险","信托","证券","基金","期货"],
+        "竞品": [],
+        "社会采购": [],
+        "其他": []
+    },
     "model": {
         "bid": {
             "type": "公告类型",

+ 40 - 18
src/front/front.go

@@ -722,6 +722,13 @@ func saveLua(o map[string]interface{}) (bool, string) {
 	param["platform"] = o["platform"]
 	param["weight"] = o["weight"]
 	param["infoformat"] = o["infoformat"]
+	infoformat := qu.IntAll(o["infoformat"])
+	infotype := "招标"
+	if infoformat == 2 {
+		infotype = "拟建/审批"
+	} else if infoformat == 3 {
+		infotype = "产权"
+	}
 	//默认字段
 	param["spidercompete"] = true     //2021-11-20后爬虫加此字段(表示新爬虫,剑鱼网站不展示原文)
 	param["spiderhistorymaxpage"] = 1 //历史最大页
@@ -737,24 +744,39 @@ func saveLua(o map[string]interface{}) (bool, string) {
 				domain = u.ReplaceReg.ReplaceAllString(domain, "")
 			}
 			siteInfo := map[string]interface{}{
-				"site":          o["name"],
-				"domain":        domain, //
-				"another_name":  "",
-				"area":          qu.ObjToString(model["area"]),
-				"city":          qu.ObjToString(model["city"]),
-				"district":      qu.ObjToString(model["district"]),
-				"site_type":     "",
-				"industry":      "",
-				"p_site":        "",
-				"s_site":        "",
-				"remarktime":    time.Now().Unix(),
-				"event":         incrementevent,
-				"platform":      o["platform"],
-				"spider_status": "0/1",
-				"updatetime":    time.Now().Unix(),
-				"delete":        false,
-				"comeintime":    time.Now().Unix(),
-				"important":     0,
+				"site":           o["name"],
+				"domain":         domain, //
+				"another_name":   "",
+				"area":           qu.ObjToString(model["area"]),
+				"city":           qu.ObjToString(model["city"]),
+				"district":       qu.ObjToString(model["district"]),
+				"site_type":      "",
+				"second_type":    "",
+				"industry":       "",
+				"p_site":         "",
+				"s_site":         "",
+				"remarktime":     time.Now().Unix(),
+				"event":          incrementevent,
+				"platform":       o["platform"],
+				"spider_status":  "0/1",
+				"updatetime":     time.Now().Unix(),
+				"delete":         false,
+				"comeintime":     time.Now().Unix(),
+				"important":      0,
+				"site_status":    1,
+				"lasttime":       int64(0),
+				"site_datanum":   0,
+				"period":         float32(0),
+				"infotype":       infotype,
+				"sponsor":        "",
+				"isneedregister": 0,
+				"isregistered":   0,
+				"special_type":   "",
+				"account":        "",
+				"password":       "",
+				"f_area":         "",
+				"f_city":         "",
+				"f_district":     "",
 			}
 			u.MgoEB.Save("site", siteInfo)
 		}

+ 62 - 29
src/front/site.go

@@ -32,20 +32,28 @@ func (s *Site) SiteList() {
 		platform := s.GetString("platform")
 		event := s.GetString("event")
 		sitestype := s.GetString("sitestype")
+		secondstype := s.GetString("secondstype")
 		area := s.GetString("area")
+		needregister, _ := s.GetInteger("needregister")
 		query := map[string]interface{}{"delete": false}
-		if platform != "-1" && platform != "" {
-			query["platform"] = map[string]interface{}{"$regex": platform}
+		if platform != "-1" {
+			query["platform"] = platform
 		}
-		if event != "-1" && event != "" {
+		if event != "-1" {
 			query["event"] = map[string]interface{}{"$regex": event}
 		}
 		if sitestype != "-1" {
 			query["site_type"] = sitestype
 		}
-		if area != "-1" && area != "" {
+		if secondstype != "-1" {
+			query["second_type"] = secondstype
+		}
+		if area != "-1" {
 			query["area"] = area
 		}
+		if needregister > -1 {
+			query["isneedregister"] = needregister
+		}
 		start, _ := s.GetInteger("start")
 		limit, _ := s.GetInteger("length")
 		draw, _ := s.GetInteger("draw")
@@ -54,9 +62,10 @@ func (s *Site) SiteList() {
 		if search != "" {
 			query["$or"] = []interface{}{
 				map[string]interface{}{"site": map[string]interface{}{"$regex": search}},
-				map[string]interface{}{"industry": map[string]interface{}{"$regex": search}},
-				map[string]interface{}{"city": map[string]interface{}{"$regex": search}},
-				map[string]interface{}{"district": map[string]interface{}{"$regex": search}},
+				map[string]interface{}{"domain": map[string]interface{}{"$regex": search}},
+				//map[string]interface{}{"industry": map[string]interface{}{"$regex": search}},
+				//map[string]interface{}{"city": map[string]interface{}{"$regex": search}},
+				//map[string]interface{}{"district": map[string]interface{}{"$regex": search}},
 			}
 		}
 		sort := `{"%s":%d}`
@@ -73,6 +82,7 @@ func (s *Site) SiteList() {
 		for k, s := range *sites {
 			s["num"] = k + 1 + start
 			remarktime := qu.Int64All(s["remarktime"])
+			s["important"] = qu.IntAll(s["important"])
 			s["remarktime"] = qu.FormatDateByInt64(&remarktime, qu.Date_Full_Layout)
 		}
 		s.ServeJson(map[string]interface{}{"draw": draw, "data": sites, "recordsFiltered": count, "recordsTotal": count})
@@ -97,25 +107,36 @@ func (s *Site) SiteList() {
 func (s *Site) SaveSite() {
 	defer qu.Catch()
 	id := s.GetString("id")
-	site := s.GetString("site")
-	if id == "" { //新增
+	site := s.GetString("site") //站点名称
+	if id == "" {               //新增
 		data, _ := util.MgoEB.FindOne(sp.Config.SiteColl, `{"site":"`+site+`"}`)
 		if len(*data) > 0 {
 			s.ServeJson(map[string]interface{}{"ok": false})
 			return
 		}
 	}
-	othername := s.GetString("othername")
-	domain := s.GetString("domain")
-	area := s.GetString("area")
-	qy_area := s.GetString("qy_area")
-	city := s.GetString("city")
-	district := s.GetString("district")
-	industry := s.GetString("industry")
-	sitetype := s.GetString("sitetype")
-	psite := s.GetString("psite")
-	ssite := s.GetString("ssite")
-	tmpdomain, status, event, platform, remarktime := util.GetLuasInfoBySite(site, area, city, district)
+	othername := s.GetString("othername")               //别名
+	domain := s.GetString("domain")                     //域名
+	sponsor := s.GetString("sponsor")                   //主办方
+	site_type := s.GetString("site_type")               //一级类型
+	second_type := s.GetString("second_type")           //二级类型
+	special_type := s.GetString("special_type")         //特殊类型
+	isneedregister, _ := s.GetInteger("isneedregister") //是否需要注册
+	isregistered, _ := s.GetInteger("isregistered")     //是否已注册
+	account := s.GetString("account")                   //账号
+	password := s.GetString("password")                 //密码
+	area := s.GetString("area")                         //省份
+	//qy_area := s.GetString("qy_area")                   //辅助省份
+	city := s.GetString("city")             //城市
+	district := s.GetString("district")     //区县
+	industry := s.GetString("industry")     //行业
+	p_site := s.GetString("p_site")         //父站
+	s_site := s.GetString("s_site")         //子站
+	f_area := s.GetString("f_area")         //发布省份
+	f_city := s.GetString("f_city")         //发布城市
+	f_district := s.GetString("f_district") //发布区县
+
+	tmpdomain, status, event, platform, infotype, remarktime := util.GetLuasInfoBySite(site, area, city, district)
 	if domain == "" {
 		domain = tmpdomain
 	}
@@ -129,13 +150,24 @@ func (s *Site) SaveSite() {
 		"another_name": othername,
 		"domain":       domain,
 		"area":         area,
-		"qy_area":      qy_area,
-		"city":         city,
-		"district":     district,
-		"industry":     industry,
-		"site_type":    sitetype,
-		"p_site":       psite,
-		"s_site":       ssite,
+		//"qy_area":        qy_area,
+		"city":           city,
+		"district":       district,
+		"industry":       industry,
+		"site_type":      site_type,
+		"p_site":         p_site,
+		"s_site":         s_site,
+		"sponsor":        sponsor,
+		"second_type":    second_type,
+		"special_type":   special_type,
+		"isneedregister": isneedregister,
+		"isregistered":   isregistered,
+		"account":        account,
+		"password":       password,
+		"f_area":         f_area,
+		"f_city":         f_city,
+		"f_district":     f_district,
+		"infotype":       infotype,
 	}
 	b := false
 	if id == "" { //新增
@@ -188,7 +220,7 @@ func (s *Site) ImportSite() {
 				site_type := r.Cells[7].Value
 				p_site := r.Cells[8].Value
 				s_site := r.Cells[9].Value
-				tmpdomain, status, event, platform, remarktime := util.GetLuasInfoBySite(site, area, city, district)
+				tmpdomain, status, event, platform, infotype, remarktime := util.GetLuasInfoBySite(site, area, city, district)
 				if domain == "" {
 					domain = tmpdomain
 				}
@@ -212,6 +244,7 @@ func (s *Site) ImportSite() {
 					"event":         event,
 					"remarktime":    remarktime,
 					"platform":      platform,
+					"infotype":      infotype,
 					"delete":        false,
 					"comeintime":    time.Now().Unix(),
 				}
@@ -259,7 +292,7 @@ func (s *Site) GetLuasBySite() {
 	site := s.GetString("site")
 	qu.Debug(site)
 	//luas, _ := util.MgoE.Find("luaconfig", `{"param_common.1":"`+site+`"}`, ``, ``, false, -1, -1)
-	luas, _ := util.MgoEB.Find("luaconfig", `{"param_common.1":"`+site+`"}`, ``, ``, false, -1, -1)
+	luas, _ := util.MgoEB.Find("luaconfig", `{"site":"`+site+`"}`, ``, ``, false, -1, -1)
 	for _, l := range *luas {
 		modifytime := qu.Int64All(l["modifytime"])
 		l["modifytime"] = qu.FormatDateByInt64(&modifytime, qu.Date_Full_Layout)

+ 2 - 2
src/front/spider.go

@@ -536,11 +536,11 @@ func LuaTextCheck(list, detail string, type_list int) (b bool, msg string) {
 		b = true
 		msg = `三级页缺少data["delete"]="true"`
 	}
-	sln_reg := regexp.MustCompile(`sendListNum\(k,list\)`)
+	sln_reg := regexp.MustCompile(`sendListNum\(pageno,list\)`)
 	slnIndexArr := sln_reg.FindAllStringIndex(list, -1)
 	if type_list != 0 && len(slnIndexArr) == 0 { //列表页专家模式且不含sendListNum
 		b = true
-		msg = "代码中缺少sendListNum(k,list)方法;" + msg
+		msg = "代码中缺少sendListNum(pageno,list)方法;" + msg
 	} else if type_list == 1 && len(slnIndexArr) > 0 { //判断sendListNum方法的位置
 		trim_reg := regexp.MustCompile("trim")
 		insert_reg := regexp.MustCompile("insert")

+ 9 - 0
src/spider/script.go

@@ -516,6 +516,15 @@ func (s *Script) LoadScript(downloadnode, script string, isfile ...string) {
 		S.Push(lua.LString(result))
 		return 1
 	}))
+	//des ecb模式解密
+	s.L.SetGlobal("desDecryptECB", s.L.NewFunction(func(S *lua.LState) int {
+		origData := S.ToString(-2)
+		key := S.ToString(-1)
+		b, _ := base64.StdEncoding.DecodeString(origData)
+		result := util.DesECBDecrypter(b, []byte(key))
+		S.Push(lua.LString(result))
+		return 1
+	}))
 	//根据正文获取发布时间
 	s.L.SetGlobal("getPublishtime", s.L.NewFunction(func(S *lua.LState) int {
 		detail := S.ToString(-2)

+ 2 - 1
src/timetask/timetask.go

@@ -73,13 +73,14 @@ func UpdateSiteInfo() {
 	sites, _ := util.MgoEB.Find(sp.Config.SiteColl, ``, ``, `{"site":1}`, false, -1, -1)
 	for _, s := range *sites {
 		site := qu.ObjToString(s["site"])
-		domain, status, event, platform, _ := util.GetLuasInfoBySite(site, "", "", "")
+		domain, status, event, platform, infotype, _ := util.GetLuasInfoBySite(site, "", "", "")
 		set := map[string]interface{}{
 			"$set": map[string]interface{}{
 				"platform":      platform,
 				"event":         event,
 				"spider_status": status,
 				"domain":        domain,
+				"infotype":      infotype,
 				//"area":          area,
 				//"city":          city,
 				//"district":      district,

+ 21 - 4
src/util/util.go

@@ -299,17 +299,18 @@ func SpiderPassCheckListAndDetail_back(list []map[string]interface{}, data map[s
 	return
 }
 
-func GetLuasInfoBySite(site, area, city, district string) (domain, status, event, platform string, remarktime int64) {
+func GetLuasInfoBySite(site, area, city, district string) (domain, status, event, platform, infotype string, remarktime int64) {
 	shelveUp := 0
 	eventMap, platformMap := map[int]interface{}{}, map[string]interface{}{}
-	eventArr, platformArr := []string{}, []string{}
+	infoformatMap := map[int]bool{}
+	eventArr, platformArr, infoformatArr := []string{}, []string{}, []string{}
 	//areaMap := map[string]int{}
 	//areaCityMap := map[string]map[string]int{}
 	//cityDistrictMap := map[string]map[string]int{}
 	domainMap := map[string]int{}
 	remarktime = time.Now().Unix()
 	//luas, _ := MgoE.Find("luaconfig", `{"param_common.1":"`+site+`"}`, ``, `{"model":1,"event":1,"state":1,"platform":1,"param_common":1,"comeintime":1}`, false, -1, -1)
-	luas, _ := MgoEB.Find("luaconfig", `{"site":"`+site+`"}`, ``, `{"model":1,"event":1,"state":1,"platform":1,"param_common":1,"comeintime":1}`, false, -1, -1)
+	luas, _ := MgoEB.Find("luaconfig", `{"site":"`+site+`"}`, ``, `{"model":1,"event":1,"state":1,"platform":1,"param_common":1,"comeintime":1,"infoformat":1}`, false, -1, -1)
 	arr := [][]map[string]interface{}{}
 	for _, l := range *luas {
 		update := []map[string]interface{}{}
@@ -352,11 +353,14 @@ func GetLuasInfoBySite(site, area, city, district string) (domain, status, event
 		state := qu.IntAll(l["state"])
 		event := qu.IntAll(l["event"])
 		platform := qu.ObjToString(l["platform"])
-		if state == 5 {
+		if state == 5 || state == 11 { //5:lua已上架;11:python已上线
 			shelveUp++
 		}
 		eventMap[event] = true
 		platformMap[platform] = true
+		//infoformat
+		infoformat := qu.IntAll(l["infoformat"])
+		infoformatMap[infoformat] = true
 		//area、city、district
 		//if model, ok := l["model"].(map[string]interface{}); ok && model != nil {
 		//	a := qu.ObjToString(model["area"])
@@ -390,7 +394,20 @@ func GetLuasInfoBySite(site, area, city, district string) (domain, status, event
 	for p, _ := range platformMap {
 		platformArr = append(platformArr, p)
 	}
+	sort.Strings(platformArr)
 	platform = strings.Join(platformArr, ",")
+
+	for infoformat, _ := range infoformatMap {
+		text := "招标"
+		if infoformat == 2 {
+			text = "拟建/审批"
+		} else if infoformat == 3 {
+			text = "产权"
+		}
+		infoformatArr = append(infoformatArr, text)
+	}
+	sort.Strings(infoformatArr)
+	infotype = strings.Join(infoformatArr, ",")
 	//
 	n := 0
 	for tmpDomain, num := range domainMap {

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
src/web/staticres/plugins/datatables/css/jquery.dataTables.min.css


+ 1 - 0
src/web/templates/head.html

@@ -18,6 +18,7 @@
    <link rel="stylesheet" href="/css/font-awesome.min.css">
   <link rel="stylesheet" href="/dist/css/skins/skin-blue.min.css">
 	<link rel="stylesheet" href="/plugins/datatables/css/dataTables.bootstrap.css">
+	<link rel="stylesheet" href="/plugins/datatables/css/jquery.dataTables.min.css">
 	<link rel="stylesheet" href="/css/style.css">
 	<link rel="stylesheet" href="/codemirror/codemirror.css">
 	<link rel="stylesheet"  href="/codemirror/theme/solarized.css">

+ 0 - 2
src/web/templates/index.html

@@ -628,7 +628,6 @@ $(function(){
 			"<option value='golua平台'>golua平台</option>"+
 			"<option value='python'>python</option>"+
 				"<option value='通用爬虫'>通用爬虫</option>"+
-				"<option value='chrome插件'>chrome插件</option>"+
 			"</select></div>"
 		$("#spider_filter").prepend("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
 		$("#spider_filter").prepend(platform);
@@ -953,7 +952,6 @@ $(function(){
     			  "<option value='golua平台'>golua平台</option>"+
     			  "<option value='python'>python</option>"+
     				"<option value='通用爬虫'>通用爬虫</option>"+
-    				"<option value='chrome插件'>chrome插件</option>"+
           "</select>"
   };
     function updateesp(val,w,s,c,id){

+ 0 - 1
src/web/templates/lualist.html

@@ -250,7 +250,6 @@
                     "<option value='golua平台'>golua平台</option>"+
                     "<option value='python'>python</option>"+
                     "<option value='通用爬虫'>通用爬虫</option>"+
-                    "<option value='chrome插件'>chrome插件</option>"+
                     "</select></div>"
                 $("#spider_filter").prepend("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
                 $("#spider_filter").prepend(platform);

+ 530 - 191
src/web/templates/sitelist.html

@@ -1,7 +1,14 @@
 {{include "head.html"}}
+
+<style>
+    #nestable th,td{
+        padding: 0 10px;
+        text-align: center;
+    }
+</style>
 <div class="modal fade" id="editsite" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
     <div class="modal-dialog">
-        <div class="modal-content">
+        <div class="modal-content" style="max-height: 90vh;overflow-y: scroll;overflow-x: hidden;">
             <div class="modal-header">
                 <div class="modal-header">
                     <button type="button" class="close" data-dismiss="modal" aria-hidden="true" style="margin-top: -19px">&times;</button>
@@ -10,71 +17,139 @@
                             <span class="glyphicon glyphicon-edit" aria-hidden="true" style="margin-left: 20px;"></span>
                             <span class="info">编辑站点</span>
                         </div>
-                        <form class="form-horizontal" role="form">
+                        <form class="form-horizontal" role="form" id="edit-form">
+                            <div class="form-group">
+                                <label for="edit-site" class="col-sm-2 control-label">网站名称:</label>
+                                <div class="col-sm-10">
+                                    <input type="text" name="site" class="form-control" id="edit-site" value="{{.T.site}}" placeholder="请输入网站名称">
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="edit-othername" class="col-sm-2 control-label">网站别名:</label>
+                                <div class="col-sm-10">
+                                    <input type="text" name="othername" class="form-control" id="edit-othername" placeholder="请输入网站别名">
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="edit-domain" class="col-sm-2 control-label">网站域名:</label>
+                                <div class="col-sm-10">
+                                    <input type="text" name="domain" class="form-control" id="edit-domain" placeholder="请输入网站域名">
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="edit-sponsor" class="col-sm-2 control-label">主办方:</label>
+                                <div class="col-sm-10">
+                                    <input type="text" name="sponsor" class="form-control" id="edit-sponsor" placeholder="请输入主办方">
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="edit-site_type" class="col-sm-2 control-label">一级类型:</label>
+                                <div class="col-sm-10">
+                                    <select class="form-control" name="site_type" onchange="siteTypeChange(this.value)", id="edit-site_type"></select>
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="edit-second_type" class="col-sm-2 control-label">二级类型:</label>
+                                <div class="col-sm-10">
+                                    <select class="form-control" name="second_type" id="edit-second_type"></select>
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="edit-special_type" class="col-sm-2 control-label">特殊类型:</label>
+                                <div class="col-sm-10">
+                                    <input type="text" name="special_type" class="form-control" id="edit-special_type" placeholder="请输入特殊类型">
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="edit-isneedregister" class="col-sm-2 control-label">需注册:</label>
+                                <div class="col-sm-10">
+                                    <select class="form-control" name="isneedregister" id="edit-isneedregister">
+                                        <option value="-1">--请选择--</option>
+                                        <option value="1">是</option>
+                                        <option value="0">否</option>
+                                    </select>
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="edit-isregistered" class="col-sm-2 control-label">已注册:</label>
+                                <div class="col-sm-10">
+                                    <select class="form-control" name="isregistered" id="edit-isregistered">
+                                        <option value="-1">--请选择--</option>
+                                        <option value="1">是</option>
+                                        <option value="0">否</option>
+                                    </select>
+                                </div>
+                            </div>
                             <div class="form-group">
-                                <label for="site" class="col-sm-2 control-label">网站名称:</label>
+                                <label for="edit-account" class="col-sm-2 control-label">账号:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="edit-site" placeholder="请输入网站名称">
+                                    <input type="text" name="account" class="form-control" id="edit-account" placeholder="请输入账号">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="othername" class="col-sm-2 control-label">网站别名:</label>
+                                <label for="edit-password" class="col-sm-2 control-label">密码:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="edit-othername" placeholder="请输入网站别名">
+                                    <input type="text" name="password" class="form-control" id="edit-password" placeholder="请输入密码">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="domain" class="col-sm-2 control-label">网站域名:</label>
+                                <label for="edit-area" class="col-sm-2 control-label">省份:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="edit-domain" placeholder="请输入网站域名">
+                                    <input type="text" name="area" class="form-control" id="edit-area" placeholder="请输入省份">
                                 </div>
                             </div>
+<!--                            <div class="form-group">-->
+<!--                                <label for="edit-qy_area" class="col-sm-2 control-label">辅助省份:</label>-->
+<!--                                <div class="col-sm-10">-->
+<!--                                    <input type="text" name="qy_area" class="form-control" id="edit-qy_area" placeholder="请输入辅助省份">-->
+<!--                                </div>-->
+<!--                            </div>-->
                             <div class="form-group">
-                                <label for="area" class="col-sm-2 control-label">省份:</label>
+                                <label for="edit-city" class="col-sm-2 control-label">城市:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="edit-area" placeholder="请输入省份">
+                                    <input type="text" name="city" class="form-control" id="edit-city" placeholder="请输入城市">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="qy_area" class="col-sm-2 control-label">辅助省份:</label>
+                                <label for="edit-district" class="col-sm-2 control-label">区县:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="edit-qy_area" placeholder="请输入辅助省份">
+                                    <input type="text" name="district" class="form-control" id="edit-district" placeholder="请输入区县">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="city" class="col-sm-2 control-label">城市:</label>
+                                <label for="edit-f_area" class="col-sm-2 control-label">发布省份:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="edit-city" placeholder="请输入城市">
+                                    <input type="text" name="f_area" class="form-control" id="edit-f_area" placeholder="请输入发布省份">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="district" class="col-sm-2 control-label">区/县:</label>
+                                <label for="edit-f_city" class="col-sm-2 control-label">发布城市:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="edit-district" placeholder="请输入区/县">
+                                    <input type="text" name="f_city" class="form-control" id="edit-f_city" placeholder="请输入发布城市">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="industry" class="col-sm-2 control-label">行业:</label>
+                                <label for="edit-f_district" class="col-sm-2 control-label">发布区县:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="edit-industry" placeholder="请输入行业">
+                                    <input type="text" name="f_district" class="form-control" id="edit-f_district" placeholder="请输入发布区县">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="sitetype" class="col-sm-2 control-label">网站类型:</label>
+                                <label for="edit-industry" class="col-sm-2 control-label">行业:</label>
                                 <div class="col-sm-10">
-                                    <select class="form-control" id="edit-sitetype"></select>
+                                    <input type="text" name="industry" class="form-control" id="edit-industry" placeholder="请输入行业">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="psite" class="col-sm-2 control-label">父站:</label>
+                                <label for="edit-p_site" class="col-sm-2 control-label">父站:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="edit-psite" placeholder="请输入父站">
+                                    <input type="text" name="p_site" class="form-control" id="edit-p_site" placeholder="请输入父站">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="ssite" class="col-sm-2 control-label">子站:</label>
+                                <label for="edit-s_site" class="col-sm-2 control-label">子站:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="edit-ssite" placeholder="请输入子站">
+                                    <input type="text" name="s_site" class="form-control" id="edit-s_site" placeholder="请输入子站">
                                 </div>
                             </div>
                             <div class="form-group">
@@ -92,7 +167,7 @@
 </div>
 <div class="modal fade" id="addsite" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
     <div class="modal-dialog">
-        <div class="modal-content">
+        <div class="modal-content"  style="max-height: 90vh;overflow-y: scroll;overflow-x: hidden;">
             <div class="modal-header">
                 <div class="modal-header">
                     <button type="button" class="close" data-dismiss="modal" aria-hidden="true" style="margin-top: -19px">&times;</button>
@@ -101,76 +176,144 @@
                             <span class="glyphicon glyphicon-save" aria-hidden="true" style="margin-left: 20px;"></span>
                             <span class="info">新增站点</span>
                         </div>
-                        <form class="form-horizontal" role="form">
+                        <form class="form-horizontal" role="form" id="add-form">
+                            <div class="form-group">
+                                <label for="add-site" class="col-sm-2 control-label">网站名称:</label>
+                                <div class="col-sm-10">
+                                    <input type="text" class="form-control" name="site" id="add-site" placeholder="请输入网站名称">
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="add-othername" class="col-sm-2 control-label">网站别名:</label>
+                                <div class="col-sm-10">
+                                    <input type="text" class="form-control" name="othername" id="add-othername" placeholder="请输入网站别名">
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="add-domain" class="col-sm-2 control-label">网站域名:</label>
+                                <div class="col-sm-10">
+                                    <input type="text" class="form-control" name="domain" id="add-domain" placeholder="请输入网站域名">
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="add-sponsor" class="col-sm-2 control-label">主办方:</label>
+                                <div class="col-sm-10">
+                                    <input type="text" class="form-control" name="sponsor" id="add-sponsor" placeholder="请输入主办方">
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="add-site_type" class="col-sm-2 control-label">一级类型:</label>
+                                <div class="col-sm-10">
+                                    <select class="form-control" name="site_type" onchange="siteTypeChange(this.value)" id="add-site_type"></select>
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="add-second_type" class="col-sm-2 control-label">二级类型:</label>
+                                <div class="col-sm-10">
+                                    <select class="form-control" name="second_type" id="add-second_type"></select>
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="add-special_type" class="col-sm-2 control-label">特殊类型:</label>
+                                <div class="col-sm-10">
+                                    <input type="text" class="form-control" name="special_type" id="add-special_type" placeholder="请输入特殊类型">
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="add-isneedregister" class="col-sm-2 control-label">需注册:</label>
+                                <div class="col-sm-10">
+                                    <select class="form-control" name="isneedregister" id="add-isneedregister">
+                                        <option value="-1">--请选择--</option>
+                                        <option value="1">是</option>
+                                        <option value="0">否</option>
+                                    </select>
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="add-isregistered" class="col-sm-2 control-label">已注册:</label>
+                                <div class="col-sm-10">
+                                    <select class="form-control" name="isregistered" id="add-isregistered">
+                                        <option value="-1">--请选择--</option>
+                                        <option value="1">是</option>
+                                        <option value="0">否</option>
+                                    </select>
+                                </div>
+                            </div>
                             <div class="form-group">
-                                <label for="site" class="col-sm-2 control-label">网站名称:</label>
+                                <label for="add-account" class="col-sm-2 control-label">账号:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="save-site" placeholder="请输入网站名称">
+                                    <input type="text" name="account" class="form-control" id="add-account" placeholder="请输入账号">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="othername" class="col-sm-2 control-label">网站别名:</label>
+                                <label for="add-password" class="col-sm-2 control-label">密码:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="othername" placeholder="请输入网站别名">
+                                    <input type="text" name="password" class="form-control" id="add-password" placeholder="请输入密码">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="domain" class="col-sm-2 control-label">网站域名:</label>
+                                <label for="add-area" class="col-sm-2 control-label">省份:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="domain" placeholder="请输入网站域名">
+                                    <input type="text" name="area" class="form-control" id="add-area" placeholder="请输入省份">
                                 </div>
                             </div>
+<!--                            <div class="form-group">-->
+<!--                                <label for="add-qy_area" class="col-sm-2 control-label">辅助省份:</label>-->
+<!--                                <div class="col-sm-10">-->
+<!--                                    <input type="text" name="qy_area" class="form-control" id="add-qy_area" placeholder="请输入辅助省份">-->
+<!--                                </div>-->
+<!--                            </div>-->
                             <div class="form-group">
-                                <label for="area" class="col-sm-2 control-label">省份:</label>
+                                <label for="add-city" class="col-sm-2 control-label">城市:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="area" placeholder="请输入省份">
+                                    <input type="text" name="city" class="form-control" id="add-city" placeholder="请输入城市">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="qy_area" class="col-sm-2 control-label">辅助省份:</label>
+                                <label for="add-district" class="col-sm-2 control-label">区县:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="qy_area" placeholder="请输入辅助省份">
+                                    <input type="text" name="district" class="form-control" id="add-district" placeholder="请输入区县">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="city" class="col-sm-2 control-label">城市:</label>
+                                <label for="add-f_area" class="col-sm-2 control-label">发布省份:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="city" placeholder="请输入城市">
+                                    <input type="text" name="f_area" class="form-control" id="add-f_area" placeholder="请输入发布省份">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="district" class="col-sm-2 control-label">区/县:</label>
+                                <label for="add-f_city" class="col-sm-2 control-label">发布城市:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="district" placeholder="请输入区/县">
+                                    <input type="text" name="f_city" class="form-control" id="add-f_city" placeholder="请输入发布城市">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="industry" class="col-sm-2 control-label">行业:</label>
+                                <label for="add-f_district" class="col-sm-2 control-label">发布区县:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="industry" placeholder="请输入行业">
+                                    <input type="text" name="f_district" class="form-control" id="add-f_district" placeholder="请输入发布区县">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="sitetype" class="col-sm-2 control-label">网站类型:</label>
+                                <label for="add-industry" class="col-sm-2 control-label">行业:</label>
                                 <div class="col-sm-10">
-                                    <select class="form-control" id="sitetype"></select>
+                                    <input type="text" name="industry" class="form-control" id="add-industry" placeholder="请输入行业">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="psite" class="col-sm-2 control-label">父站:</label>
+                                <label for="add-p_site" class="col-sm-2 control-label">父站:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="psite" placeholder="请输入父站">
+                                    <input type="text" name="p_site" class="form-control" id="add-p_site" placeholder="请输入父站">
                                 </div>
                             </div>
                             <div class="form-group">
-                                <label for="ssite" class="col-sm-2 control-label">子站:</label>
+                                <label for="add-s_site" class="col-sm-2 control-label">子站:</label>
                                 <div class="col-sm-10">
-                                    <input type="text" class="form-control" id="ssite" placeholder="请输入子站">
+                                    <input type="text" name="s_site" class="form-control" id="add-s_site" placeholder="请输入子站">
                                 </div>
                             </div>
                             <div class="form-group">
                                 <div class="col-sm-offset-2 col-sm-10 operateStyle">
-                                    <input type="button" onclick="saveSite('')" class="btn btn-primary" value="保存">
+                                    <input type="button" onclick="saveSite()" class="btn btn-primary" value="保存">
                                     <input type="button" onclick="cancelAdd()" class="btn btn-default" value="取消">
                                 </div>
                             </div>
@@ -209,23 +352,25 @@
                 <thead>
                 <tr>
                     <th><input type="checkbox" id="selrow" onclick="selectrow(this)"/></th>
-          				  <th>编号</th>
+          			<th>编号</th>
+                    <th>详情</th>
                     <th>站点</th>
-                    <th>重点</th>
-                    <th>别名</th>
                     <th>域名</th>
+                    <th>重点</th>
+<!--                    <th>别名</th>-->
                     <th>省份</th>
-                    <th>辅助省份</th>
                     <th>城市</th>
                     <th>区县</th>
-                    <th>行业</th>
-                    <th>类型</th>
+                    <th>一级类型</th>
+                    <th>二级类型</th>
+<!--                    <th>行业</th>-->
                     <th>父站</th>
                     <th>子站</th>
                     <th>状态</th>
                     <th>节点</th>
-                    <th>时间</th>
+                    <th>信息类型</th>
                     <th>平台</th>
+                    <th>时间</th>
                     <th class="hidden-xs">操作</th>
                 </tr>
                 </thead>
@@ -236,22 +381,22 @@
 </section>
 
 <script>
+var siteTypesMap = {};
 $(function(){
-    var sitetypes={{.T.sitetypes}};
-    $("#sitetype").append("<option value=''>--请选择网站类型--</option>");
-    $("#edit-sitetype").append("<option value=''>--请选择网站类型--</option>");
-    for(var i in sitetypes){
-        $("#sitetype").append("<option value='"+sitetypes[i]+"'>"+sitetypes[i]+"</option>")
-        $("#edit-sitetype").append("<option value='"+sitetypes[i]+"'>"+sitetypes[i]+"</option>")
-    }
-	  ttable=$('#sitelist').DataTable({
+    siteTypesMap = {{.T.sitetypes}};
+    // $("#edit-site_type").append("<option value=''>--请选择网站一级类型--</option>");
+    // $("#edit-second_type").append("<option value=''>--请选择网站二级类型--</option>");
+    // for(var k in siteTypesMap){
+    //     $("#add-site_type").append("<option value='"+k+"'>"+k+"</option>")
+    //     $("#edit-site_type").append("<option value='"+k+"'>"+k+"</option>")
+    // }
+	ttable=$('#sitelist').DataTable({
 		"language": {
               "url": "/js/dataTables.chinese.lang"
           },
 		"columnDefs": [
-		     { "orderable": false, "targets": [0,1,3,4,5,6,7,8,9,10,11,12,14,15] },
-            //爬虫挂起
-            {"targets":[3], createdCell: function (cell, cellData, rowData, rowIndex, colIndex) {
+		     { "orderable": false, "targets": [0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16] },
+             {"targets":[5], createdCell: function (cell, cellData, rowData, rowIndex, colIndex) {
                 var aInput;
                 $(cell).click(function () {
                     $(this).html(selectImportant(rowData._id));
@@ -276,75 +421,82 @@ $(function(){
                 });
             }}
 		],
-		"order": [[13,"desc"]],
+		"order": [[3,"desc"]],
         "lengthChange":false,
 		"processing":true,
 		"serverSide": true,
 		"searching": true,
 		"ordering": true,
-		"info": false,
+		"info": true,
 		"autoWidth": false,
 		"ajax": {
 			"url": "/center/site/sitelist",
 			"type": "POST"
 		 },
 		"columns": [
-      { "data": "_id",render:function(val,a,row){
-				return "<input type='checkbox' value='"+val+"'/>"
-			}},
-      { "data": "_id",render:function(val,a,row){
-				return row.num
-			}},
-	  { "data": "site"},
-      { "data": "important",render:function(val,a,row){
-          if(val == 1){
-              return "是"
-          }else{
-              return "否"
-          }
-      }},
-      { "data": "another_name"},
-      { "data": "domain",render:function(val,a,row){
-          return "<a href='http://"+val+"' target='_blank' style='color: #333'>"+val+"</a>"
-      }},
-      { "data": "area"},
-      { "data": "qy_area",render:function (val,a,row) {
-          if(val){
-              return val;
-          }else{
-              return "";
-          }
+          { "data": "_id",render:function(val,a,row){
+                    return "<input type='checkbox' value='"+val+"'/>"
+                }},
+          { "data": "_id",render:function(val,a,row){
+                    return row.num
+                }},
+            {
+                className: 'dt-control',
+                orderable: false,
+                data: null,
+                defaultContent: '',
+            },
+          { "data": "site"},
+          // { "data": "another_name"},
+          { "data": "domain",render:function(val,a,row){
+              return "<a href='http://"+val+"' target='_blank' style='color: #333'>"+val+"</a>"
           }},
-      { "data": "city"},
-      { "data": "district"},
-      { "data": "industry"},
-      { "data": "site_type"},
-      { "data": "p_site"},
-      { "data": "s_site"},
-      { "data": "spider_status",width:"28px",render:function (val,a,row) {
-            return  "<a href='/center/site/getluas/"+row.site+"' style='color: #333 !important;' target='_blank'>"+val+"</a>"
-            //return  '<a onclick="goToCenter(\''+row.site+'\')" style="color: #333 !important;" target="_blank">'+val+'</a>'
-          }},
-      { "data": "event",render:function (val,a,row){
-             var tmpval =val
-             if(val.length >9){
-                 val = val.substring(0,9)+"..."
-             }
-             return "<span title='"+tmpval+"'>"+val+"</span>"
-          }},
-      { "data": "remarktime",width:"50px"},
-      { "data": "platform"},
-      { "data": "_id",render:function (val,a,row){
-                var div=$("<div><div class=\"btn-group\"></div></div>")
-                var buttonEdit=$('<a type="button" target="_blank" class="btn btn-sm btn-default">编辑</a>');
-                var buttonDelete=$('<a type="button" class="btn btn-sm btn-default">删除</a>');
-                buttonEdit.attr("onclick","siteEdit('"+JSON.stringify(row)+"',)");
-                buttonDelete.attr("onclick","siteDelete('"+val+"')");
-                div.find(".btn-group").append(buttonEdit);
-                div.find(".btn-group").append(buttonDelete);
-                return div.html();
-            }}
-    ],
+            { "data": "important",render:function(val,a,row){
+                    if(val == 1){
+                        return "是"
+                    }else{
+                        return "否"
+                    }
+                }},
+          { "data": "area"},
+          { "data": "city"},
+          { "data": "district"},
+          // { "data": "industry"},
+          { "data": "site_type"},
+          { "data": "second_type"},
+          { "data": "p_site"},
+          { "data": "s_site"},
+          { "data": "spider_status",width:"28px",render:function (val,a,row) {
+                return  "<a href='/center/site/getluas/"+row.site+"' style='color: #333 !important;' target='_blank'>"+val+"</a>"
+                //return  '<a onclick="goToCenter(\''+row.site+'\')" style="color: #333 !important;" target="_blank">'+val+'</a>'
+              }},
+          { "data": "event",render:function (val,a,row){
+                 var tmpval =val
+                 if(val.length >9){
+                     val = val.substring(0,9)+"..."
+                 }
+                 return "<span title='"+tmpval+"'>"+val+"</span>"
+              }},
+            { "data": "infotype",render:function (val,a,row) {
+                    if(val){
+                        return val;
+                    }else{
+                        return "";
+                    }
+                }},
+          { "data": "platform"},
+          { "data": "remarktime",width:"50px"},
+          { "data": "_id",render:function (val,a,row){
+                    var div=$("<div><div class=\"btn-group\"></div></div>")
+                    var buttonEdit=$('<a type="button" target="_blank" class="btn btn-sm btn-default">编辑</a>');
+                    var buttonDelete=$('<a type="button" class="btn btn-sm btn-default">删除</a>');
+                    buttonEdit.attr("onclick","siteEdit('"+JSON.stringify(row)+"',)");
+                    buttonDelete.attr("onclick","siteDelete('"+val+"')");
+                    div.find(".btn-group").append(buttonEdit);
+                    div.find(".btn-group").append(buttonDelete);
+                    return div.html();
+                }}
+        ],
 		"fnDrawCallback": function(table) {
 		 	$("ul.pagination").prepend("&nbsp;&nbsp;&nbsp;转到第 <input type='text' id='changePage'   style='width:20px;'> 页    <a type='text' href='javascript:void(0);' id='dataTable-btn' style='text-align:center'>GO</a>");
 		 	$('#dataTable-btn').click(function(e) {    
@@ -359,7 +511,9 @@ $(function(){
 		    var platform=$("#platform").val()
             var event = $("#event").val();
             var sitestype = $("#sitestype").val();
+            var secondstype = $("#secondstype").val();
             var area = $("#areas").val();
+            var needregister = $("#needregister").val();
             if(platform){
               e.platform=platform
             }else{
@@ -370,35 +524,40 @@ $(function(){
             }else{
                 e.event="-1"
             }
-            console.log("sitestype",sitestype)
-            if(sitestype){
-                if (sitestype == "空"){
-                    sitestype = "";
-                }
+            if (sitestype == undefined){
+                e.sitestype="-1";
+            }else{
                 e.sitestype = sitestype;
+            }
+            if (secondstype == undefined){
+                e.secondstype="-1";
             }else{
-                e.sitestype="-1";
+                e.secondstype = secondstype;
             }
-
             if(area){
                 e.area = area;
             }else{
                 e.area="-1";
             }
+            if(needregister){
+                e.needregister = needregister;
+            }else{
+                e.needregister="-1";
+            }
         }
 	});
 	common.setActive("index_site");
 	ttable.on('init.dt', function () {
-	    //平台
+        //平台
         var urgency="<div class='form-group'><label for='name'>平台:</label>"+
-            "<select id='platform' onchange='checkclick(this.value)' class='form-control input-sm'>"+
+            "<select id='platform' onchange='checkclick(this.value,\"platform\")' class='form-control input-sm'>"+
             "<option value='-1'>全部</option>"+
             "<option value='golua平台'>golua平台</option>"+
             "<option value='python'>python</option>"+
+            "<option value='golua平台,python'>golua平台,python</option>"+
             "<option value='通用爬虫'>通用爬虫</option>"+
-            "<option value='chrome插件'>chrome插件</option>"+
             "</select></div>"
-		$("#sitelist_filter").prepend("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
+		$("#sitelist_filter").prepend("&nbsp;&nbsp;");
 		$("#sitelist_filter").prepend(urgency);
 		//节点
         var event="<option value='-1'>全部</option>"
@@ -407,23 +566,11 @@ $(function(){
             event+="<option value='"+events[k]+"'>"+events[k]+"</option>"
         }
         var selectEvent="<div class='form-group'><label for='name'>节点:</label>"+
-            "<select id='event' onchange='checkclick(this.value)' class='form-control input-sm'>"+
+            "<select id='event' onchange='checkclick(this.value,\"event\")' class='form-control input-sm'>"+
             event+
             "</select></div>"
-        $("#sitelist_filter").prepend("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
+        $("#sitelist_filter").prepend("&nbsp;&nbsp;");
         $("#sitelist_filter").prepend(selectEvent);
-		//网站类型
-        var sitestype ="<option value='-1'>全部</option>";
-        for(k in sitetypes){
-            sitestype+="<option value='"+sitetypes[k]+"'>"+sitetypes[k]+"</option>";
-        }
-        sitestype+="<option value='空'>空</option>";
-        var selectStype="<div class='form-group'><label for='name'>网站类型:</label>"+
-            "<select id='sitestype' onchange='checkclick(this.value)' class='form-control input-sm'>"+
-            sitestype+
-            "</select></div>"
-        $("#sitelist_filter").prepend("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
-        $("#sitelist_filter").prepend(selectStype);
         //省份
         var area ="<option value='-1'>全部</option>";
         var areas={{.T.areas}};
@@ -431,41 +578,177 @@ $(function(){
             area+="<option value='"+areas[k]+"'>"+areas[k]+"</option>";
         }
         var selectArea="<div class='form-group'><label for='name'>省份:</label>"+
-            "<select id='areas' onchange='checkclick(this.value)' class='form-control input-sm'>"+
+            "<select id='areas' onchange='checkclick(this.value,\"area\")' class='form-control input-sm'>"+
             area+
             "</select></div>"
-        $("#sitelist_filter").prepend("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
+        $("#sitelist_filter").prepend("&nbsp;&nbsp;");
         $("#sitelist_filter").prepend(selectArea);
+        //是否需要注册
+        var selectNeedregister="<div class='form-group'><label for='name'>需注册:</label>"+
+            "<select id='needregister' onchange='checkclick(this.value,\"register\")' class='form-control input-sm'>"+
+                "<option value='-1'>全部</option>"+
+                "<option value='1'>是</option>"+
+                "<option value='0'>否</option>"+
+            "</select></div>"
+        $("#sitelist_filter").prepend("&nbsp;&nbsp;");
+        $("#sitelist_filter").prepend(selectNeedregister);
+        //网站二级类型
+        var secondtype ="<option value='-1'>全部</option>";
+        for(i in siteTypesMap){
+            for(j in siteTypesMap[i]){
+                secondtype+="<option value='"+siteTypesMap[i][j]+"'>"+siteTypesMap[i][j]+"</option>";
+            }
+        }
+        secondtype+="<option value=''>空</option>";
+        var selectSecondStype="<div class='form-group'><label for='name'>二级类型:</label>"+
+            "<select id='secondstype' onchange='checkclick(this.value,\"secondstype\")' class='form-control input-sm'>"+
+            secondtype+
+            "</select></div>"
+        $("#sitelist_filter").prepend("&nbsp;&nbsp;");
+        $("#sitelist_filter").prepend(selectSecondStype);
+		//网站一级类型
+        var sitestype ="<option value='-1'>全部</option>";
+        for(k in siteTypesMap){
+            sitestype+="<option value='"+k+"'>"+k+"</option>";
+        }
+        sitestype+="<option value=''>空</option>";
+        var selectStype="<div class='form-group'><label for='name'>一级类型:</label>"+
+            "<select id='sitestype' onchange='checkclick(this.value,\"sitestype\")' class='form-control input-sm'>"+
+            sitestype+
+            "</select></div>"
+        $("#sitelist_filter").prepend("&nbsp;&nbsp");
+        $("#sitelist_filter").prepend(selectStype);
         //
         $("#sitelist_wrapper .col-sm-6").css({width:"100%"})//样式
 	});
+    $('#sitelist tbody').on('click', 'td.dt-control', function () {
+        var tr = $(this).closest('tr');
+        var row = ttable.row(tr);
+
+        if (row.child.isShown()) {
+            // This row is already open - close it
+            row.child.hide();
+            tr.removeClass('shown');
+        } else {
+            // Open this row
+            row.child(format_X(row.data())).show();
+            tr.addClass('shown');
+        }
+    });
 })
+function format_X(d) {
+    if (d.isneedregister == 1){
+        d.isneedregister = "是"
+    }else{
+        d.isneedregister = "否"
+    }
+    if (d.isregistered == 1){
+        d.isregistered = "是"
+    }else{
+        d.isregistered = "否"
+    }
+    if (d.site_status == 1){
+        d.site_status = "正常"
+    }else{
+        d.site_status = "异常"
+    }
+    if (d.lasttime != 0){
+        var dt = new Date()
+        dt.setTime(parseInt(d.lasttime) * 1000);
+        d.lasttime = dt.format("yyyy-MM-dd");
+        // d.lasttime = dt.format("yyyy-MM-dd hh:mm:ss");
+    }
+    return (
+        '<table id="nestable" style="border-spacing: 9px;border-collapse: separate;background: aliceblue;">' +
+        '<tr>' +
+            '<th>网站情况</th>' +
+            '<th>发布省份</th>' +
+            '<th>发布城市</th>' +
+            '<th>发布县区</th>' +
+            '<th>主办方</th>' +
+            '<th>数据量</th>' +
+            // '<th>平均发布周期</th>' +
+            '<th>最近更新时间</th>' +
+            '<th>需注册</th>' +
+            '<th>已注册</th>' +
+            '<th>网站账号</th>' +
+            '<th>网站密码</th>' +
+
+        '</tr>' +
+        '<tr>' +
+            '<td>' +
+            d.site_status +
+            '</td>' +
+
+            '<td>' +
+            d.f_area +
+            '</td>' +
+
+            '<td>' +
+            d.f_city +
+            '</td>' +
+
+            '<td>' +
+            d.f_district +
+            '</td>' +
+
+            '<td>' +
+            d.sponsor +
+            '</td>' +
+
+            '<td>' +
+            d.site_datanum +
+            '</td>' +
+
+            // '<td>' +
+            // d.period +
+            // '</td>' +
+
+            '<td>' +
+            d.lasttime +
+            '</td>' +
+
+            '<td>' +
+            d.isneedregister +
+            '</td>' +
+
+            '<td>' +
+            d.isregistered +
+            '</td>' +
+
+            '<td>' +
+            d.account +
+            '</td>' +
+
+            '<td>' +
+            d.password +
+            '</td>' +
+        '</tr>' +
+        '</table>'
+    );
+}
 
 function addSite() {
+    $("#add-site_type").empty();
+    $("#add-second_type").empty();
+    $("#add-site_type").append("<option value=''>--请选择网站一级类型--</option>");
+    $("#add-second_type").append("<option value=''>--请选择网站二级类型--</option>");
+    for(var k in siteTypesMap){
+        $("#add-site_type").append("<option value='"+k+"'>"+k+"</option>")
+    }
     $("#addsite").modal("show");
 }
 function updateSite(){
-    id = $("#saveSiteId").attr("saveid");
-    var site = $("#edit-site").val();
-    var sitetype = $("#edit-sitetype").val();
-    if(site==""||sitetype==""){
+    var formdataMap = common.form.serializeArray("edit-form");
+    if(formdataMap.site=="" || formdataMap.isneedregister == "-1" || formdataMap.isregistered == "-1"){
         alert("表单填写不完整!");
         return
     }
-    var domain = $("#edit-domain").val();
-    var othername = $("#edit-othername").val();
-    var area = $("#edit-area").val();
-    var qy_area = $("#edit-qy_area").val();
-    var city = $("#edit-city").val();
-    var district = $("#edit-district").val();
-    var industry = $("#edit-industry").val();
-    var sitetype = $("#edit-sitetype").val();
-    var psite = $("#edit-psite").val();
-    var ssite = $("#edit-ssite").val();
+    formdataMap["id"] = $("#saveSiteId").attr("saveid");
     $.ajax({
         url:"/center/site/savesite",
         type:"post",
-        data:{"id":id,"site":site,"sitetype":sitetype,"othername":othername,"domain":domain,"area":area,"qy_area":qy_area,"city":city,"district":district,"industry":industry,"psite":psite,"ssite":ssite},
+        data:formdataMap,
         success:function (r){
             if(r&&r.ok){
                 showTip("保存成功", 1000);
@@ -485,24 +768,62 @@ function siteEdit(rowjson){
     $("#edit-site").val(row.site);
     $("#edit-domain").val(row.domain);
     $("#edit-othername").val(row.another_name);
+    $("#edit-sponsor").val(row.sponsor);
+    $("#edit-special_type").val(row.special_type);
+    $("#edit-account").val(row.account);
+    $("#edit-password").val(row.password);
     $("#edit-area").val(row.area);
-    $("#edit-qy_area").val(row.qy_area);
+    // $("#edit-qy_area").val(row.qy_area);
     $("#edit-city").val(row.city);
     $("#edit-district").val(row.district);
+    $("#edit-f_area").val(row.f_area);
+    $("#edit-f_city").val(row.f_city);
+    $("#edit-f_district").val(row.f_district);
     $("#edit-industry").val(row.industry);
-    if(row.site_type!=""){
-        $("#edit-sitetype option").each(function (){
-            var text = $(this).val()
-            if(text == row.site_type){
-                $(this).attr("selected",true);
+    $("#edit-p_site").val(row.p_site);
+    $("#edit-s_site").val(row.s_site);
+    //一级类型
+    $("#edit-site_type").empty();
+    $("#edit-site_type").append("<option value=''>--请选择网站一级类型--</option>");
+    //二级类型
+    $("#edit-second_type").empty();
+    $("#edit-second_type").append("<option value=''>--请选择网站二级类型--</option>");
+    if(row.site_type != ""){
+        for(var k in siteTypesMap){
+            if (row.site_type == k){
+                //一级类型
+                $("#edit-site_type").append("<option selected value='"+k+"'>"+k+"</option>")
+                //二级类型
+                for(i in siteTypesMap[k]){
+                    if ( row.second_type!="" && row.second_type == siteTypesMap[k][i]){
+                        $("#edit-second_type").append("<option selected value='"+siteTypesMap[k][i]+"'>"+siteTypesMap[k][i]+"</option>");
+                    }else{
+                        $("#edit-second_type").append("<option value='"+siteTypesMap[k][i]+"'>"+siteTypesMap[k][i]+"</option>");
+                    }
+                }
+            }else {
+                $("#edit-site_type").append("<option value='"+k+"'>"+k+"</option>")
             }
-        })
+        }
     }
-    $("#psite").val(row.p_site);
-    $("#ssite").val(row.s_site);
+    //需注册
+    $("#edit-isneedregister option").each(function (){
+        var text = $(this).val()
+        if(text == row.isneedregister){
+            $(this).attr("selected",true);
+        }
+    })
+    //已注册
+    $("#edit-isregistered option").each(function (){
+        var text = $(this).val()
+        if(text == row.isregistered){
+            $(this).attr("selected",true);
+        }
+    })
     $("#saveSiteId").attr("saveid",row._id);
     $("#editsite").modal("show");
 }
+//删除
 function del(){
   var ids=[];
   $("#sitelist td input[type=checkbox]").each(function(){
@@ -535,27 +856,16 @@ function siteDelete(id){
     });
 }
 //保存站点
-function saveSite(id){
-    var site = $("#save-site").val();
-    var sitetype = $("#sitetype").val();
-    if(site==""||sitetype==""){
+function saveSite(){
+    var formdataMap = common.form.serializeArray("add-form");
+    if(formdataMap.site=="" || formdataMap.isneedregister == "-1" || formdataMap.isregistered == "-1"){
         alert("表单填写不完整!");
         return
     }
-    var domain = $("#domain").val();
-    var othername = $("#othername").val();
-    var area = $("#area").val();
-    var qy_area = $("#qy_area").val();
-    var city = $("#city").val();
-    var district = $("#district").val();
-    var industry = $("#industry").val();
-    var sitetype = $("#sitetype").val();
-    var psite = $("#psite").val();
-    var ssite = $("#ssite").val();
     $.ajax({
         url:"/center/site/savesite",
         type:"post",
-        data:{"id":id,"site":site,"sitetype":sitetype,"othername":othername,"domain":domain,"area":area,"qy_area":qy_area,"city":city,"district":district,"industry":industry,"psite":psite,"ssite":ssite},
+        data:formdataMap,
         success:function (r){
             if(r&&r.ok){
                 showTip("保存成功", 1000000);
@@ -600,7 +910,36 @@ function importSite(){
         }
     })
 }
-function checkclick(me){
+
+function siteTypeChange(value) {
+    $("#add-second_type").empty();
+    $("#add-second_type").append("<option value=''>--请选择网站二级类型--</option>");
+    $("#edit-second_type").empty();
+    $("#edit-second_type").append("<option value=''>--请选择网站二级类型--</option>");
+    for(i in siteTypesMap[value]){
+        $("#add-second_type").append("<option value='"+siteTypesMap[value][i]+"'>"+siteTypesMap[value][i]+"</option>");
+        $("#edit-second_type").append("<option value='"+siteTypesMap[value][i]+"'>"+siteTypesMap[value][i]+"</option>");
+    }
+}
+
+function checkclick(value,stype){
+    if(stype == "sitestype"){
+        $("#secondstype").empty();
+        var secondtype ="<option value='-1'>全部</option>";
+        $("#secondstype").append(secondtype);
+        if (value != "-1"){
+            for(i in siteTypesMap[value]){
+                $("#secondstype").append("<option value='"+siteTypesMap[value][i]+"'>"+siteTypesMap[value][i]+"</option>");
+            }
+        }else{
+            for(i in siteTypesMap){
+                for(j in siteTypesMap[i]){
+                    $("#secondstype").append("<option value='"+siteTypesMap[i][j]+"'>"+siteTypesMap[i][j]+"</option>");
+                }
+            }
+            $("#secondstype").append("<option value=''>空</option>");
+        }
+    }
     ttable.ajax.reload();
 }
 function cancelAdd(){

+ 10 - 0
src/web/templates/sitelualist.html

@@ -18,6 +18,7 @@
           <tr>
             <th>栏目名称</th>
             <th>爬虫代码</th>
+            <th>信息类型</th>
             <th>紧急度</th>
             <th>节点</th>
             <th>作者</th>
@@ -64,6 +65,15 @@
               return val
             }},
           { "data": "code"},
+          { "data": "infoformat",render:function(val,a,row){
+              if(val == 1){
+                return "招标"
+              }else if (val == 2){
+                return "拟建/审批"
+              }else if (val == 3){
+                return "产权"
+              }
+            }},
           { "data": "urgency",render:function(val){
               if(val==1){
                 return "紧急"

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