Jelajahi Sumber

新增重点爬虫列表

mxs 1 tahun lalu
induk
melakukan
5a6e548c51

+ 21 - 10
src/front/spider.go

@@ -5,14 +5,13 @@ import (
 	"errors"
 	"fmt"
 	"log"
+	mu "mfw/util"
 	"mongodb"
+	qu "qfw/util"
 	"sort"
 	"spider"
-	"strconv"
-
-	mu "mfw/util"
-	qu "qfw/util"
 	sp "spiderutil"
+	"strconv"
 	"strings"
 	"time"
 	u "util"
@@ -556,6 +555,18 @@ func LuaCheckSaveLog(lua *map[string]interface{}) {
 	})
 }
 
+func UpdateSiteTask(code string) {
+	query := map[string]interface{}{
+		"b_repair":     false,
+		"s_spidercode": code,
+	}
+	set := map[string]interface{}{
+		"b_repair":      true,
+		"l_update_time": time.Now().Unix(),
+	}
+	u.MgoEB.Update("spider_important_warning", query, map[string]interface{}{"$set": set}, false, true)
+}
+
 func LuaSaveLog(code, user string, data *map[string]interface{}, stype int) {
 	saveOne, _ := u.MgoEB.FindOne("luasavelog", map[string]interface{}{"state": 0, "code": code})
 	if stype == 0 { //保存记录
@@ -1407,21 +1418,20 @@ func (f *Front) UpState() error {
 		b, err := UpStateAndUpSpider(code, "", reason, username, int(state)) //更新爬虫状态
 		if b && state == Sp_state_1 {                                        //提交审核
 			//有对应任务跳转提交记录页
-			taskid = checkTask(codeArr, 1)
-
+			taskid = CheckTask(codeArr, 1)
 			if len(taskid) > 0 {
 				res["istotask"] = true
 				res["taskid"] = taskid[0]
 			}
 		} else if b && state == Sp_state_2 { //打回
-			taskid = checkTask(codeArr, 2)
+			taskid = CheckTask(codeArr, 2)
 			if len(taskid) > 0 {
 				//UpTaskState([]string{taskid}, 2)     //修改状态
 				UpTaskState(taskid, 2, "", int64(0)) //修改任务状态
 				SaveRemark(taskid, reason, username) //保存记录信息
 			}
 		} else if b && state == Sp_state_3 { //审核通过
-			taskid = checkTask(codeArr, 3)
+			taskid = CheckTask(codeArr, 3)
 			if len(taskid) > 0 {
 				//UpTaskState([]string{taskid}, 3)
 				UpTaskState(taskid, 3, "", int64(0))
@@ -1432,7 +1442,7 @@ func (f *Front) UpState() error {
 			flag := DelSpiderHeart(code)
 			log.Println(code, "---下架删除download数据:", flag)
 		} else if b && state == Sp_state_7 { //反馈
-			taskid = checkTask(codeArr, 7)
+			taskid = CheckTask(codeArr, 7)
 			if len(taskid) > 0 {
 				UpTaskState(taskid, 7, reason, xgTime)
 			}
@@ -1585,6 +1595,7 @@ func UpStateAndUpSpider(code, id, reason, username string, state int) (bool, err
 				if state == Sp_state_1 { //提交审核
 					upset["l_complete"] = time.Now().Unix()
 					upset["report"] = ""
+					UpdateSiteTask(code) //更新重点站点任务
 				} else if state == Sp_state_7 { //反馈问题
 					upset["report"] = reason
 					upset["state"] = 1 //反馈后爬虫改为待审核
@@ -1939,7 +1950,7 @@ func (f *Front) LuaList() {
 }
 
 // 查看是否有该任务
-func checkTask(codes []string, num int) []string {
+func CheckTask(codes []string, num int) []string {
 	//	var id string = ""
 	query := map[string]interface{}{}
 	var idArr []string

+ 131 - 0
src/taskManager/sitetask.go

@@ -0,0 +1,131 @@
+package taskManager
+
+import (
+	"fmt"
+	. "front"
+	"mongodb"
+	qu "qfw/util"
+	util "spiderutil"
+	"strings"
+	"time"
+	u "util"
+)
+
+func (t *TaskM) SiteTask() {
+	modifyuser := t.GetString("modifyuser")
+	repair := t.GetString("repair")
+	overdue := t.GetString("overdue")
+	latestdata := t.GetString("latestdata")
+	codestate := t.GetString("codestate")
+	searchStr := t.GetString("search[value]")
+	search := strings.TrimSpace(searchStr)
+	draw, _ := t.GetInteger("draw")
+	start, _ := t.GetInteger("start")
+	limit, _ := t.GetInteger("length")
+	if t.Method() == "GET" {
+		t.T["modifyusers"] = u.GetModifyUsers()
+		t.Render("sitetask.html", &t.T)
+	} else {
+		query := map[string]interface{}{
+			"b_delete": false,
+		}
+		auth := qu.IntAll(t.GetSession("auth"))
+		if auth == u.Role_Dev {
+			user := qu.ObjToString(t.GetSession("loginuser"))
+			query["s_modifyuser"] = user
+		}
+		if search != "" {
+			query["$or"] = []interface{}{
+				map[string]interface{}{"s_spidercode": map[string]interface{}{"$regex": search}},
+				map[string]interface{}{"s_site": map[string]interface{}{"$regex": search}},
+				map[string]interface{}{"s_channel": map[string]interface{}{"$regex": search}},
+			}
+		}
+		if modifyuser != "-1" && auth > u.Role_Dev {
+			query["s_modifyuser"] = modifyuser
+		}
+		if repair != "-1" {
+			query["b_repair"] = repair == "1"
+		}
+		if overdue != "-1" {
+			if overdue == "1" { //查询超期
+				query["l_max_repair_time"] = map[string]interface{}{
+					"$lt": time.Now().Unix(),
+				}
+			} else { //未超期
+				query["l_max_repair_time"] = map[string]interface{}{
+					"$gte": time.Now().Unix(),
+				}
+			}
+		}
+		if latestdata != "-1" {
+			query["b_latestdata"] = latestdata == "1"
+		}
+		if codestate != "-1" {
+			query["i_state"] = qu.IntAll(codestate)
+		}
+		sort := `{"%s":%d}`
+		orderIndex := t.GetString("order[0][column]")
+		orderName := t.GetString(fmt.Sprintf("columns[%s][data]", orderIndex))
+		orderType := 1
+		if t.GetString("order[0][dir]") != "asc" {
+			orderType = -1
+		}
+		sort = fmt.Sprintf(sort, orderName, orderType)
+		qu.Debug("query:", query, sort)
+		task, _ := u.MgoEB.Find("spider_important_warning", query, sort, nil, false, start, limit)
+		count := u.MgoEB.Count("spider_important_warning", query)
+		for _, t := range *task {
+			l_max_repair_time := qu.Int64All(t["l_max_repair_time"])
+			t["b_overdue"] = l_max_repair_time < time.Now().Unix()
+			t["encode"] = util.Se.Encode2Hex(fmt.Sprint(t["s_spidercode"]))
+		}
+		t.ServeJson(map[string]interface{}{"draw": draw, "data": task, "recordsFiltered": count, "recordsTotal": count})
+	}
+}
+
+func (t *TaskM) SiteTaskClose() {
+	if qu.IntAll(t.GetSession("auth")) > u.Role_Dev {
+		id := t.GetString("id")
+		query := map[string]interface{}{
+			"_id": mongodb.StringTOBsonId(id),
+		}
+		set := map[string]interface{}{
+			"b_delete":      true,
+			"l_update_time": time.Now().Unix(),
+		}
+		ok := siteTaskUpdate(query, set)
+		if ok {
+			t.ServeJson("y")
+		} else {
+			t.ServeJson("n")
+		}
+	}
+	t.ServeJson("没有权限")
+}
+
+func (t *TaskM) SiteTaskEdit() {
+	spidercode := t.GetString("spidercode")
+	//查询关联爬虫
+	relatecode := ""
+	lua, _ := u.MgoEB.FindOneByField("luaconfig", map[string]interface{}{"code": spidercode + u.Bu, "state": 5}, map[string]interface{}{"relatecode": 1})
+	if len(*lua) > 0 {
+		relatecode = spidercode + u.Bu
+	}
+	taskIds := CheckTask([]string{spidercode}, 1) //是否有常规任务
+	taskid := ""
+	if len(taskIds) == 1 {
+		taskid = taskIds[0]
+	} else if len(taskIds) > 1 {
+		qu.Debug("任务量异常:", spidercode, len(taskIds))
+	}
+	result := map[string]string{
+		"taskid":     taskid,
+		"relatecode": relatecode,
+	}
+	t.ServeJson(result)
+}
+
+func siteTaskUpdate(query, set map[string]interface{}) bool {
+	return u.MgoEB.Update("spider_important_warning", query, map[string]interface{}{"$set": set}, false, false)
+}

+ 19 - 4
src/taskManager/taskManager.go

@@ -20,6 +20,7 @@ import (
 
 type TaskM struct {
 	*xweb.Action
+	//日常任务
 	managerTask           xweb.Mapper `xweb:"/center/managerTask"`                //任务管理
 	taskfile              xweb.Mapper `xweb:"/center/taskfile"`                   //任务导入
 	mytask                xweb.Mapper `xweb:"/center/mytask"`                     //我的任务
@@ -43,6 +44,10 @@ type TaskM struct {
 	//del                 xweb.Mapper `xweb:"/center/task/del"`                   //删除任务
 	//searchTask      	  xweb.Mapper `xweb:"/center/task/searchTask"`      	  //查询任务
 
+	//重点网站任务
+	siteTask      xweb.Mapper `xweb:"/center/sitetask"`       //重点网站任务列表
+	siteTaskClose xweb.Mapper `xweb:"/center/sitetask/close"` //关闭重点网站任务
+	siteTaskEdit  xweb.Mapper `xweb:"/center/sitetask/edit"`  //编辑重点网站任务
 }
 
 // session是否失效
@@ -711,11 +716,12 @@ func (t *TaskM) Audit() {
 		}
 		identity := qu.IntAll(t.GetSession("identity"))
 		if identity == 0 { //外包审核员
+			ids := []string{}
 			if tmpIds := t.GetSession("ids"); tmpIds != nil {
-				ids := qu.ObjArrToStringArr(tmpIds.([]interface{}))
-				query["s_modifyid"] = map[string]interface{}{
-					"$in": ids,
-				}
+				ids = qu.ObjArrToStringArr(tmpIds.([]interface{}))
+			}
+			query["s_modifyid"] = map[string]interface{}{
+				"$in": ids,
 			}
 		}
 		if search != "" {
@@ -1072,6 +1078,15 @@ func (t *TaskM) CreateRelateTask() {
 	relatecode := t.GetString("relatecode")
 	task, _ := u.MgoEB.FindById("task", taskid, nil)
 	(*task)["s_code"] = relatecode
+	//关闭原有关联爬虫任务
+	u.MgoEB.Update("task",
+		map[string]interface{}{
+			"s_code": relatecode,
+			"i_state": map[string]interface{}{
+				"$nin": []int{4, 6},
+			},
+		},
+		map[string]interface{}{"$set": map[string]interface{}{"i_state": 6}}, false, true)
 	id := u.MgoEB.Save("task", task)
 	t.ServeJson(map[string]interface{}{"ok": id != ""})
 }

File diff ditekan karena terlalu besar
+ 0 - 6
src/web/staticres/css/AdminLTE.min.css


+ 20 - 1
src/web/staticres/js/common.js

@@ -28,6 +28,25 @@ common.setActive=function(name){
 	$("ul.sidebar-menu li.active").removeClass("active");
 	$("ul.sidebar-menu li[data="+name+"]").addClass("active");
 }
+common.menuActive=function(name){
+	// $("ul.sidebar-menu").tree();
+	$("ul.sidebar-menu").filter(".menu-open").removeClass("menu-open");
+	$("ul.sidebar-menu").filter(".active").removeClass("active");
+	var a;
+	$("ul.sidebar-menu a").each(function(i){
+		if($(this).attr("href").endsWith(name)){
+			a=$(this)
+		}
+	});
+	if (!a) {
+		return common.menuActive(name)
+	}
+	a.parent().addClass("active");
+	a.parent().parent().parent().addClass("active");
+	// a.parent().parent().parent().addClass("menu-open");
+}
+
+
 common.form.isCheck=function(id,func){
 	var ischeck=true;
 	$("#"+id+" [name]").each(function(){
@@ -547,7 +566,7 @@ common.spider.upstate=function(code){
 	}
 	var id=$("#spiderCode").val();
 	showConfirm("是否提交?\n完成后将不能更改", function() {
-		common.spider.save_unnew();
+		// common.spider.save_unnew();
 		$.get("/center/spider/upstate?state=1&code="+id,function(r){
 			if (r["istotask"]){
 				window.location.href = "/center/task/edit/"+r["taskid"]+"__2";

+ 63 - 15
src/web/templates/head.html

@@ -596,14 +596,9 @@
   </header>
   <!-- Left side column. contains the logo and sidebar -->
   <aside class="main-sidebar">
-
-    <!-- sidebar: style can be found in sidebar.less -->
     <section class="sidebar">
-      <!-- Sidebar Menu -->
-      <ul class="sidebar-menu">
+      <ul class="sidebar-menu" data-widget="tree">
         <li class="header">HEADER</li>
-        <!-- Optionally, you can add icons to the links -->
-
         {{if eq (session "auth") 4}}
 		  <li data="index_yhgl"><a href="/center/user.html"><i class="glyphicon glyphicon-user"></i> <span>用户管理</span></a></li>
 		  <li class="treeview" data="index_vps">
@@ -618,8 +613,38 @@
 			  </ul>
 		  </li>
 		{{else if eq (session "auth") 3}}
-			<li data="index"><a href="/center"><i class="glyphicon glyphicon-eye-open"></i> <span>脚本列表</span></a></li>
-			<li data="index_rwgl"><a href="/center/managerTask"><i class="glyphicon glyphicon glyphicon-tasks"></i> <span>任务管理</span></a></li>
+<!--		  <li class="treeview">-->
+<!--			  <a href="#"><i class="glyphicon glyphicon-eye-open"></i> <span>脚本管理</span>-->
+<!--				  <span class="pull-right-container">-->
+<!--					  <i class="fa fa-angle-left pull-right"></i>-->
+<!--				  </span>-->
+<!--			  </a>-->
+<!--			  <ul class="treeview-menu">-->
+<!--				  <li><a href="/center"><i class="fa fa-circle-o"></i>脚本列表</a></li>-->
+<!--				  <li><a href="/center/sitetask"><i class="fa fa-circle-o"></i>角色管理</a></li>-->
+<!--			  </ul>-->
+<!--		  </li>-->
+		  <li data="index"><a href="/center"><i class="glyphicon glyphicon-eye-open"></i> <span>脚本列表</span></a></li>
+<!--		  <li data="index_rwgl"><a href="/center/managerTask"><i class="glyphicon glyphicon-tasks"></i> <span>任务管理</span></a></li>-->
+<!--		  {{if eq (session "identity") 1}}-->
+<!--		  	  <li data="index_sitetask"><a href="/center/sitetask"><i class="glyphicon glyphicon-modal-window"></i> <span>网站任务管理</span></a></li>-->
+<!--		  {{end}}-->
+
+		  <li class="treeview">
+			  <a href="#"><i class="glyphicon glyphicon-tasks"></i> <span>任务管理</span>
+				  <span class="pull-right-container">
+					  <i class="fa fa-angle-left pull-right"></i>
+				  </span>
+			  </a>
+			  <ul class="treeview-menu">
+				  <li><a href="/center/managerTask"><i class="fa fa-circle-o"></i>日常任务</a></li>
+				  {{if eq (session "identity") 1}}
+				  <li><a href="/center/sitetask"><i class="fa fa-circle-o"></i>重点任务</a></li>
+				  {{end}}
+				  <!--				  <li><a href="/center/sitetask"><i class="fa fa-circle-o"></i>角色管理</a></li>-->
+			  </ul>
+		  </li>
+
 			<li data="index_fbgl"><a href="/center/lualist.html"><i class="glyphicon glyphicon-credit-card"></i> <span>运行监控中心</span></a></li>
 		    <li data="index_pcdr"><a href="/center/importdata"><i class="glyphicon glyphicon-import"></i> <span>爬虫导入</span></a></li>
 		    <li data="index_pcqy"><a href="/center/luamove"><i class="glyphicon glyphicon-move"></i> <span>爬虫迁移管理</span></a></li>
@@ -638,11 +663,36 @@
 			{{end}}
 		{{else if eq (session "auth") 2}}
 			<li data="index"><a href="/center"><i class="glyphicon glyphicon-eye-open"></i> <span>爬虫审核</span></a></li>
-			<li data="index_rwsh"><a href="/center/task/audit"><i class="glyphicon glyphicon glyphicon-tasks"></i> <span>任务审核</span></a></li>
+			<li data="index_rwsh"><a href="/center/task/audit"><i class="glyphicon glyphicon-tasks"></i> <span>任务审核</span></a></li>
 		{{else if eq (session "auth") 1}}
-			<li data="index"><a href="/center"><i class="glyphicon glyphicon-eye-open"></i> <span>爬虫列表</span></a></li>
-			<li data="index_rwlb"><a href="/center/mytask"><i class="glyphicon glyphicon-tasks"></i> <span>任务列表</span></a></li>
+<!--		  <li class="treeview">-->
+<!--			  <a href="#"><i class="glyphicon glyphicon-eye-open"></i> <span>脚本管理</span>-->
+<!--				  <span class="pull-right-container">-->
+<!--					  <i class="fa fa-angle-left pull-right"></i>-->
+<!--				  </span>-->
+<!--			  </a>-->
+<!--			  <ul class="treeview-menu">-->
+<!--				  <li><a href="/center"><i class="fa fa-circle-o"></i>脚本列表</a></li>-->
+<!--				  &lt;!&ndash;				  <li><a href="/center/sitetask"><i class="fa fa-circle-o"></i>角色管理</a></li>&ndash;&gt;-->
+<!--			  </ul>-->
+<!--		  </li>-->
+		  <li data="index"><a href="/center"><i class="glyphicon glyphicon-eye-open"></i> <span>脚本列表</span></a></li>
+		  <li class="treeview">
+			  <a href="#"><i class="glyphicon glyphicon-tasks"></i> <span>任务管理</span>
+				  <span class="pull-right-container">
+					  <i class="fa fa-angle-left pull-right"></i>
+				  </span>
+			  </a>
+			  <ul class="treeview-menu">
+				  <li><a href="/center/mytask"><i class="fa fa-circle-o"></i>日常任务</a></li>
+				  {{if eq (session "identity") 1}}
+				  <li><a href="/center/sitetask"><i class="fa fa-circle-o"></i>重点任务</a></li>
+				  {{end}}
+				  <!--				  <li><a href="/center/sitetask"><i class="fa fa-circle-o"></i>角色管理</a></li>-->
+			  </ul>
+		  </li>
 		{{end}}
+
 		{{if eq (session "platform") "golua平台"}}
 		  {{if eq (session "identity") 1}}
 		  <li data="index_heart"><a href="/center/heart"><i class="fa fa-heartbeat"></i> <span>心跳监控</span></a></li>
@@ -657,15 +707,13 @@
 		<li ><a href="/center/logout" target="_self"><i class="fa fa-sign-out"></i> <span>退出</span></a></li>
 		<li style="color:#fff;padding:35px 20px;" class="hide">
 			<div class="form-group">
-				<label>请输入新密码</label> 
+				<label>请输入新密码</label>
 				<input type="text" class="form-control" name="passwords" id="passwords"/><br/>
 				<button class="btn btn-default" onclick="common.passwords();">提交</button>
 			</div>
-		</li>  
+		</li>
 	</ul>
-      <!-- /.sidebar-menu -->
     </section>
-    <!-- /.sidebar -->
   </aside>
 <script>
 	var $site = "";

+ 1 - 1
src/web/templates/index.html

@@ -607,7 +607,7 @@ $(function(){
 			}
 		}
 	});
-	common.setActive("index");
+	common.menuActive("center");
 	ttable.on('init.dt', function () {
 		var search=getCookie("input");
 		if(search){

+ 3 - 2
src/web/templates/mytask.html

@@ -2,7 +2,7 @@
 <div class="content-wrapper">
 		<section class="content-header">
 		   <h1>
-		     我的任务
+		     日常任务列表
 		   </h1>
 		   <ol class="breadcrumb">
 		     <li><a href="#"><i class="fa fa-dashboard"></i> 任务</a></li>
@@ -35,7 +35,8 @@
 			</div>
 		</section>
 	<script>
-	common.setActive("index_rwlb");
+	// common.setActive("index_rwlb");
+	common.menuActive("mytask");
 	$(function(){
 		setCookie("mytask","");
 		mytask = $('#mytask').DataTable({

+ 326 - 0
src/web/templates/sitetask.html

@@ -0,0 +1,326 @@
+{{include "head.html"}}
+<div class="content-wrapper">
+		<section class="content-header">
+		   <h1>
+		     重点任务列表
+		     <small>
+<!--				<a class="btn btn-default btn-sm" id="batchAssign" onclick="batchAssign()">批量分发</a>-->
+<!--				<a class="btn btn-default btn-sm" id="batchClose" onclick="batchClose()">批量关闭</a>-->
+<!--				<a class="btn btn-default btn-sm" id="batchDeal" onclick="batchDeal()">批量处理</a>-->
+			 </small>
+		   </h1>
+		   <ol class="breadcrumb">
+		     <li><a href="#"><i class="fa fa-dashboard"></i> 导入</a></li>
+		     <li class="active">列表</li>
+		   </ol>
+		 </section>
+		<section class="content">
+			<div class="box">
+				<div class="box-body">
+					<table id="task" class="table table-bordered table-striped">
+						<thead>
+							<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>
+								<th>原因</th>
+								<th class="hidden-xs">操作</th>
+							</tr>
+						</thead>
+						<tbody>
+							
+						</tbody>
+					</table>
+				</div>
+			</div>
+		</section>
+<script>
+	$(function(){
+
+		ttable = $('#task').DataTable({
+			"language": {
+               "url": "/js/dataTables.chinese.lang"
+           },
+			"ajax": {
+            	"url": "/center/sitetask",
+           		"type": "POST"
+				
+       		 },
+			"columnDefs": [
+				{ "orderable": false, "targets": [0,1,2,3,4,5,6,7,10,11,12,13] } //设置列不可排序
+			],
+			"order": [[9,"desc"]], //默认排序列
+			"lengthChange":false,
+			"serverSide": true,
+			"searching": true,
+			"ordering": true,
+			"info": true,
+			"autoWidth": false,
+			"columns": [
+				{"data": "s_site"},
+				{"data": "s_channel"},
+				{"data": "s_spidercode"},
+				{"data": "s_modifyuser"},
+				{"data": "b_repair","width":"3%",render:function(val,a,row){
+					if(val){
+						return "是"
+					}
+					return "否"
+				}},
+				{"data": "b_latestdata","width":"4%",render:function(val,a,row){
+					if(val){
+						return "是"
+					}
+					return "否"
+				}},
+				{"data": "b_overdue","width":"3%",render:function(val,a,row){
+					if(val){
+						return "是"
+					}
+					return "否"
+				}},
+				{ "data": "i_state","width":"5%",render:function(val,a,row){
+						var state=row.i_state;
+						if(state==0){
+							val="<span class='text-info text-bold'>待完成</span>";
+						}else if(state==1){
+							val="<span class='text-primary text-bold'>待审核</span>";
+						}else if(state==2){
+							val="<span class='text-danger text-bold'>未通过</span>";
+						}else if(state==3){
+							val="<span class='text-success text-bold'>已通过</span>";
+						}else if(state==4){
+							val="<span class='text-danger text-bold'>已作废</span>";
+						}else if(state==5){
+							val="<span class='text-success text-bold'>已上架</span>";
+						}else if(state==6){
+							val="<span class='text-danger text-bold'>已下架</span>";
+						}else if(state==7){
+							val="<span class='text-danger text-bold'>无发布</span>";
+						}else if(state==8){
+							val="<span class='text-danger text-bold'>需登录</span>";
+						}else if(state==9){
+							val="<span class='text-danger text-bold'>转python</span>";
+						}else if(state==10){
+							val="<span class='text-danger text-bold'>已删除</span>";
+						}else if(state==11){
+							val="<span class='text-danger text-bold'>已上线</span>";
+						}
+						return val;
+					}},
+				{"data": "l_create_time","width":"6%",render:function(val,a,row){
+					var dt = new Date()
+					dt.setTime(parseInt(val) * 1000);
+					return dt.format("yyyy-MM-dd hh:mm:ss");
+				}},
+				{"data": "l_max_repair_time","width":"8%",render:function(val,a,row){
+					var dt = new Date()
+					dt.setTime(parseInt(val) * 1000);
+					return dt.format("yyyy-MM-dd hh:mm:ss");
+				}},
+				{"data": "l_update_time","width":"7%",render:function(val,a,row){
+					var dt = new Date()
+					dt.setTime(parseInt(val) * 1000);
+					return dt.format("yyyy-MM-dd hh:mm:ss");
+				}},
+				{"data": "s_source","width":"3%"},
+				{"data": "s_reason"},
+				{"data": "_id","width":"5%",render:function(val,a,row){
+					var div=$("<div><div class=\"btn-group\"></div></div>");
+					{{if eq (session "auth") 1}}
+						var buttonWatch=$('<a type="button" target="_blank" class="btn btn-sm btn-primary">编辑</a>');
+						buttonWatch.attr("onclick","editSiteTask('"+row['s_spidercode']+"','"+row['encode']+"')");
+						div.find(".btn-group").append(buttonWatch);
+					{{else}}
+						var buttonClose=$('<a type="button" class="btn btn-sm btn-danger">关闭</a>');
+						buttonClose.attr("onclick","closeSiteTask('"+row['_id']+"')");
+						div.find(".btn-group").append(buttonClose);
+					{{end}}
+					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) {
+			// 	    var redirectpage=0
+			// 		if($("#changePage").val() && $("#changePage").val() > 0) {
+			// 	         redirectpage = $("#changePage").val() - 1;
+			// 	    }
+			// 		ttable.page(redirectpage).draw(false);
+			//     });
+			// },
+			"fnServerParams": function (e) {  
+				var codestate = $("#codestate").val();
+				var latestdata = $("#latestdata").val();
+				var overdue = $("#overdue").val();
+				var repair = $("#repair").val();
+				var modifyuser = $("#modifyuser").val();
+				//爬虫状态
+				if(codestate){
+					e.codestate = codestate;
+				}else{
+					e.codestate="-1";
+				}
+				//是否有新数据
+				if(latestdata){
+					e.latestdata = latestdata;
+				}else{
+					e.latestdata="-1";
+				}
+				//是否超期
+				if(overdue){
+					e.overdue = overdue;
+				}else{
+					e.overdue="-1";
+				}
+				//是否修复
+				if(repair){
+					e.repair = repair;
+				}else{
+					e.repair="-1";
+				}
+				//维护人
+				if(modifyuser){
+					e.modifyuser = modifyuser;
+				}else{
+					e.modifyuser="-1";
+				}
+     		}
+	    });
+		// common.setActive("index_sitetask");
+		common.menuActive("sitetask");
+		ttable.on('init.dt', function () {
+			//爬虫状态
+			var opt="<option value='-1'>全部</option>";
+			var opt1="<option value='0'>待完成</option>";
+			var opt2="<option value='1'>待审核</option>"+
+					"<option value='2'>未通过</option>"+
+					"<option value='3'>已通过</option>";
+			var opt3="<option value='4'>已作废</option>"+
+					"<option value='5'>已上架</option>"+
+					"<option value='6'>已下架</option>";
+			var opt4="<option value='7'>无发布</option>"+
+					"<option value='8'>需登录</option>"+
+					"<option value='9'>转python</option>"+
+					"<option value='10'>已删除</option>"+
+					"<option value='11'>已上线</option>";
+			opt=opt+opt1+opt2+opt3+opt4;
+			var selectstate="<div class='form-group'><label for='name'>爬虫状态:</label>"+
+					"<select id='codestate' onchange='checkclick(this.value)' class='form-control input-sm'>"+
+					opt+
+					"</select></div>";
+			$("#task_filter").prepend("&nbsp;&nbsp;");
+			$("#task_filter").prepend(selectstate);
+
+
+			//栏目有新数据
+			var latestdata="<option value='-1'>全部</option>";
+			latestdata+="<option value='1'>是</option>";
+			latestdata+="<option value='0'>否</option>";
+			var selectlatestdata="<div class='form-group'><label for='name'>是否有新数据:</label>"+
+					"<select id='latestdata' onchange='checkclick(this.value)' class='form-control input-sm'>"+
+					latestdata+
+					"</select></div>";
+			$("#task_filter").prepend("&nbsp;&nbsp;");
+			$("#task_filter").prepend(selectlatestdata);
+
+			//是否超期overdue
+			var overdue="<option value='-1'>全部</option>";
+			overdue+="<option value='1'>是</option>";
+			overdue+="<option value='0'>否</option>";
+			var selectoverdue="<div class='form-group'><label for='name'>是否超期:</label>"+
+					"<select id='overdue' onchange='checkclick(this.value)' class='form-control input-sm'>"+
+					overdue+
+					"</select></div>";
+			$("#task_filter").prepend("&nbsp;&nbsp;");
+			$("#task_filter").prepend(selectoverdue);
+
+			//是否修复
+			var repair="<option value='-1'>全部</option>"
+			repair+="<option value='1'>是</option>";
+			repair+="<option value='0'>否</option>";
+			var selectrepair="<div class='form-group'><label for='name'>是否修复:</label>"+
+					"<select id='repair' onchange='checkclick(this.value)' class='form-control input-sm'>"+
+					repair+
+					"</select></div>"
+			$("#task_filter").prepend("&nbsp;&nbsp;");
+			$("#task_filter").prepend(selectrepair);
+
+			//维护人
+			var modifyuser="<option value='-1'>全部</option>";
+			{{if gt (session "auth") 1}}
+				var modifyusers = {{.T.modifyusers}};
+				for(k in modifyusers){
+					modifyuser+="<option value='"+modifyusers[k]["s_name"]+"'>"+modifyusers[k]["s_name"]+"</option>";
+				}
+			{{end}}
+			var selectModifyuser="<div class='form-group'><label for='name'>维护人:</label>"+
+					"<select id='modifyuser' onchange='checkclick(this.value)' class='form-control input-sm'>"+
+					modifyuser+
+					"</select></div>"
+			$("#task_filter").prepend("&nbsp;&nbsp;");
+			$("#task_filter").prepend(selectModifyuser);
+			//修改样式
+			$("#task_wrapper .col-sm-6").css({width:"100%"});
+		});
+		// ttable.on('preXhr.dt', function ( e, settings, data ) {
+		// 	$("[type=search]").keypress(function(){
+		// 		setCookie("task",$("[type=search]").val());
+		// 	})
+   		// })
+	})
+	function checkclick(urgency){
+		ttable.ajax.reload();
+	}
+
+	function closeSiteTask(id) {
+		showConfirm("确定关闭任务?",function(){
+			$.post("/center/sitetask/close",{"id":id},function(r){
+				if(r == "y"){
+					showTip("关闭成功", 1000);
+					$('#com-alert').on('hidden.bs.modal', function () {
+						ttable.ajax.reload();
+					})
+				}else if(r == "n"){
+					showTip("关闭失败", 1000);
+				}else{
+					showTip("没有权限", 1000);
+				}
+			})
+		})
+	}
+
+	function editSiteTask(code,encode) {
+		$.post("/center/sitetask/edit",{"spidercode":code},function(r){
+			console.log(r)
+			if(r && r.taskid != ""){//有常规任务,跳转任务编辑页
+				if(r.relatecode != ""){
+					showConfirm("请注意修改关联爬虫:"+relatecode,  function() {
+						$.get("/center/task/createrelatetask?relatecode="+relatecode+"&id="+id,function(r){
+							if (r&&r.ok){
+								window.location.href="/center/task/edit/"+r.taskid+"__1";
+							}else{
+								showTip("关联爬虫任务创建失败", 1000, function() {});
+							}
+						})
+					});
+				}else{
+					window.location.href="/center/task/edit/"+r.taskid+"__1";
+				}
+			}else{//无常规任务,直接修改爬虫
+				window.location.href="/center/spider/edit/"+encode+"__";
+			}
+		})
+	}
+</script>
+</div>
+{{include "bottom.html"}}

+ 2 - 1
src/web/templates/supplement_day.html

@@ -126,7 +126,8 @@
             //     setCookie("request",JSON.stringify(request));
             //      console.log("1",getCookie("request"))
             // })
-            common.setActive("index_bcgl");
+            // common.setActive("index_bcgl");
+            common.menuActive("daylist");
         })
     </script>
 </div>

+ 2 - 1
src/web/templates/supplement_week.html

@@ -126,7 +126,8 @@
             //     setCookie("request",JSON.stringify(request));
             //      console.log("1",getCookie("request"))
             // })
-            common.setActive("index_bcgl");
+            // common.setActive("index_bcgl");
+            common.menuActive("weeklist");
         })
     </script>
 </div>

+ 3 - 2
src/web/templates/task.html

@@ -34,7 +34,7 @@
 <div class="content-wrapper">
 		<section class="content-header">
 		   <h1>
-		     任务列表
+		     日常任务列表
 		     <small>
 				<button class="btn btn-primary" onclick='tasks()'>
 					批量导入任务
@@ -290,7 +290,8 @@
 				}
      		}
 	    });
-		common.setActive("index_rwgl");
+		// common.setActive("index_rwgl");
+		common.menuActive("managerTask");
 		ttabletask.on('init.dt', function () {
 			var taskState="<option value='-1'>全部</option>"+
 				"<option value='0'>待确认</option>"+

+ 2 - 1
src/web/templates/vps/vpslist.html

@@ -300,7 +300,8 @@
 		}
 
 		$(function(){
-			common.setActive("index_vps");
+			// common.setActive("index_vps");
+			common.menuActive("vps");
 			vpstable = $('#errdata').DataTable({
 				"language": {
 					"url": "/js/dataTables.chinese.lang"

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini