浏览代码

通用平台相关修改

mxs 9 月之前
父节点
当前提交
74de801967

+ 2 - 2
src/front/claim.go

@@ -61,7 +61,7 @@ func (f *Front) ClaimCode() {
 			"$in": []int{0, 2}, //待完成、未通过
 		},
 		"platform": map[string]interface{}{
-			"$nin": []string{"通用爬虫", "python"},
+			"$nin": []string{"通用平台", "python"},
 		},
 	}
 	num := MgoEB.Count("luaconfig", q)
@@ -73,7 +73,7 @@ func (f *Front) ClaimCode() {
 	q = map[string]interface{}{
 		"claimtype": CLAIMTYPEUNCLAIMED, //待认领
 		"platform": map[string]interface{}{
-			"$nin": []string{"通用爬虫", "python"},
+			"$nin": []string{"通用平台", "python"},
 		},
 	}
 

+ 38 - 0
src/front/datastatistics.go

@@ -0,0 +1,38 @@
+package front
+
+import (
+	qu "qfw/util"
+	"strings"
+	u "util"
+)
+
+func (f *Front) YesterdayCount() {
+	auth := qu.IntAll(f.GetSession("auth"))
+	if auth != u.Role_Admin {
+		f.ServeJson("没有权限!")
+		return
+	}
+	if f.Method() == "POST" {
+		start, _ := f.GetInteger("start")
+		limit, _ := f.GetInteger("length")
+		draw, _ := f.GetInteger("draw")
+		searchStr := f.GetString("search[value]")
+		//search := strings.Replace(searchStr, " ", "", -1)
+		search := strings.TrimSpace(searchStr)
+		query := map[string]interface{}{}
+		//搜索条件
+		if search != "" {
+			query["$or"] = []interface{}{
+				map[string]interface{}{"code": map[string]interface{}{"$regex": search}},
+				map[string]interface{}{"createuser": map[string]interface{}{"$regex": search}},
+				map[string]interface{}{"param_common.1": map[string]interface{}{"$regex": search}},
+			}
+		}
+		qu.Debug("query:", query)
+		list, _ := u.MgoS.Find("spider_yesterdaycount", query, nil, nil, false, start, limit)
+		count := u.MgoS.Count("spider_yesterdaycount", query)
+		f.ServeJson(map[string]interface{}{"draw": draw, "data": list, "recordsFiltered": count, "recordsTotal": count})
+	} else {
+		f.Render("yesterdaycount.html", &f.T)
+	}
+}

+ 4 - 1
src/front/front.go

@@ -60,7 +60,7 @@ type Front struct {
 	oldedit         xweb.Mapper `xweb:"/center/oldedit"`          //老文件编辑
 	findName        xweb.Mapper `xweb:"/center/findname"`         //即时查询名称
 	checkrepeat     xweb.Mapper `xweb:"/center/spider/isrepeat"`  //脚本代码判重
-	heart           xweb.Mapper `xweb:"/center/heart"`            //心跳监控
+	heart           xweb.Mapper `xweb:"/center/data/heart"`       //心跳监控
 	spiderCopy      xweb.Mapper `xweb:"/center/spider/copy"`      //补采复制爬虫
 	spiderSplitCopy xweb.Mapper `xweb:"/center/spider/splitcopy"` //拆分复制爬虫
 	spiderCloseErr  xweb.Mapper `xweb:"/center/spider/closeerr"`  //删除错误爬虫
@@ -87,6 +87,9 @@ type Front struct {
 	supplementDayList  xweb.Mapper `xweb:"/center/supplement/daylist"`  //日补采列表
 	supplementWeekList xweb.Mapper `xweb:"/center/supplement/weeklist"` //周补采列表
 
+	//数据统计
+	yesterdayCount xweb.Mapper `xweb:"/center/data/yesterdaycount"` //日补采列表
+
 	//爬虫认领
 	claimCode  xweb.Mapper `xweb:"/center/claim/claimcode"`  //爬虫认领
 	returnCode xweb.Mapper `xweb:"/center/claim/returncode"` //爬虫归还

+ 2 - 2
src/luaerrdata/errlua.go

@@ -13,8 +13,8 @@ import (
 
 type ErrorLua struct {
 	*xweb.Action
-	errorLuaIndex xweb.Mapper `xweb:"/center/errorLua"`          //加载错误爬虫信息
-	reUpSpider    xweb.Mapper `xweb:"/center/errorLua/upSpider"` //重新上架
+	errorLuaIndex xweb.Mapper `xweb:"/center/data/errorlua"`     //加载错误爬虫信息
+	reUpSpider    xweb.Mapper `xweb:"/center/errorlua/upspider"` //重新上架
 }
 
 func (el *ErrorLua) ErrorLuaIndex() {

+ 1 - 0
src/timetask/timetask.go

@@ -42,6 +42,7 @@ func RecoverCodes() {
 		"recovertime": map[string]interface{}{
 			"$lt": time.Now().Unix(),
 		},
+		"platform": "golua平台",
 	}
 	luas, _ := util.MgoEB.Find("luaconfig", q, nil, ClaimQueryFields, false, -1, -1)
 	if len(*luas) > 0 {

+ 3 - 3
src/web/templates/errlualist.html

@@ -46,13 +46,13 @@
 		</section>
 <script>
 	$(function(){
-    common.setActive("index_errlua");
+    	common.menuActive("errorlua");
 	  errluatable = $('#errdata').DataTable({
 			"language": {
         "url": "/js/dataTables.chinese.lang"
       },
 			"ajax": {
-      	"url": "/center/errorLua",
+      	"url": "/center/data/errorlua",
      		"type": "POST", 
  		  },
       "columnDefs": [
@@ -116,7 +116,7 @@
   function upspider(code,id){
     showConfirm("确定重新上架", function() {
       $.ajax({
-				url:"/center/errorLua/upSpider",
+				url:"/center/errorlua/upspider",
         data:{"code":code,"id":id},
 				type:"post",
 				success:function(r){

+ 20 - 75
src/web/templates/head.html

@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/css/bootstrap.min.css">
   <link rel="stylesheet" href="/css/bootstrap-datetimepicker.min.css">
   <!-- Font Awesome -->
-  <link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/4.2.0/css/font-awesome.min.css">
+<!--  <link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/4.2.0/css/font-awesome.min.css">-->
   <!-- Ionicons -->
   <link rel="stylesheet" href="https://cdn.staticfile.org/ionicons/2.0.1/css/ionicons.css">
   <!-- Theme style -->
@@ -613,103 +613,48 @@
 			  </ul>
 		  </li>
 		{{else if eq (session "auth") 3}}
-<!--		  <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}}-->
-<!--				  &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/managerTask"><i class="glyphicon glyphicon-tasks"></i> <span>日常任务</span></a></li>
-		  {{if eq (session "identity") 1}}
-		  <li data="index"><a href="/center/sitetask"><i class="glyphicon glyphicon-align-justify"></i> <span>重点任务</span></a></li>
-		  {{end}}
+		  	<li data="index"><a href="/center"><i class="glyphicon glyphicon-eye-open"></i> <span>脚本列表</span></a></li>
+		  	<li data="index"><a href="/center/managerTask"><i class="glyphicon glyphicon-tasks"></i> <span>日常任务</span></a></li>
+		  	{{if eq (session "identity") 1}}
+		  	<li data="index"><a href="/center/sitetask"><i class="glyphicon glyphicon-align-justify"></i> <span>重点任务</span></a></li>
+		  	{{end}}
 			<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>
-<!--		    <li data="index_newrwgl"><a href="/center/newtask/tasklist"><i class="glyphicon glyphicon glyphicon-tasks"></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>
 			{{if eq (session "identity") 1}}
 			  <li class="treeview" data="index_bcgl">
 				  <a href="#"><i class="glyphicon glyphicon-list-alt"></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/supplement/daylist"><i class="fa fa-circle-o"></i>日补采</a></li>
 					  <li><a href="/center/supplement/weeklist"><i class="fa fa-circle-o"></i>周补采</a></li>
 				  </ul>
 			  </li>
-<!--			<li data="index_bcgl"><a href="/center/supplement/daylist"><i class="glyphicon glyphicon-list-alt"></i> <span>补采管理</span></a></li>-->
 			{{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-tasks"></i> <span>任务审核</span></a></li>
 		{{else if eq (session "auth") 1}}
-<!--		  <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}}-->
-<!--				  &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/mytask"><i class="glyphicon glyphicon-tasks"></i> <span>日常任务</span></a></li>
 		  {{if eq (session "identity") 1}}
 		  <li data="index"><a href="/center/sitetask"><i class="glyphicon glyphicon-align-justify"></i> <span>重点任务</span></a></li>
 		  {{end}}
 		{{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>
-		  {{end}}
-		  <li data="index_errlua"><a href="/center/errorLua"><i class="fa fa-warning"></i> <span>错误爬虫管理</span></a></li>
-<!--    	<li data="index_errdata"><a href="/center/errorData"><i class="glyphicon glyphicon-exclamation-sign"></i> <span>错误信息管理</span></a></li>-->
-<!--		<li data="index_wtgl"><a href="/center/managerQues"><i class="glyphicon glyphicon-question-sign"></i> <span>问题管理</span></a></li>-->
-		{{end}}
 		{{if eq (session "identity") 1}}
-		<li data="index_site"><a href="/center/site/sitelist"><i class="glyphicon glyphicon-home"></i> <span>站点列表</span></a></li>
+		  <li class="treeview" data="index_cjgl">
+			  <a href="#"><i class="glyphicon glyphicon-stats"></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/data/yesterdaycount"><i class="fa fa-calendar-minus-o"></i>昨日发布量</a></li>
+				  <li><a href="/center/data/heart"><i class="fa fa-heart-o"></i>心跳监控</a></li>
+				  <li><a href="/center/data/errorlua"><i class="fa fa-warning"></i> <span>错误爬虫管理</span></a></li>
+			  </ul>
+		  </li>
+		  <li data="index_site"><a href="/center/site/sitelist"><i class="glyphicon glyphicon-home"></i> <span>站点列表</span></a></li>
 		{{end}}
 		<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">

+ 2 - 2
src/web/templates/heart.html

@@ -60,7 +60,7 @@
         "iDisplayLength": 50, //每页初始显示5条记录
 
 		"ajax": {
-			"url": "/center/heart",
+			"url": "/center/data/heart",
 			"type": "POST"
 		 },
 		"columns": [
@@ -104,7 +104,7 @@
 				}
       }
 	});
-		common.setActive("index_heart");
+		common.menuActive("heart");
 		heartable.on( 'init.dt', function () {
 			var opt="<option value='-1'>全部</option>"
 			var events={{.T.events}}

+ 11 - 10
src/web/templates/index.html

@@ -314,7 +314,7 @@
 				{"targets":[7], createdCell: function (cell, cellData, rowData, rowIndex, colIndex) {
 					{{if gt (session "auth") 2}}
 					  $(cell).click(function () {
-						if(cellData!=4&&cellData!=7&&cellData!=8&&cellData!=9&&cellData!=10){
+						if(cellData!=4&&cellData!=7&&cellData!=8&&cellData!=9&&cellData!=10&&cellData!=12){
 						  return;
 						}
 						$(this).html(createComboxState(rowData._id,rowData.code));
@@ -343,6 +343,8 @@
 						  text = 10;
 						}else if (text=="已上线"){
 						  text = 11;
+						}else if (test == "无法标注"){
+							text = 12;
 						}
 						ttable.cell(cell).data(text);
 						  cellData = text;
@@ -414,11 +416,6 @@
 					}
 					return  vals;
 				}},
-				// { "data": "_id","width":"200px",render:function(val,a,row){
-				// 	var text = row["channels"].join("</br>")
-				// 	var channels = '<div align="left" style="color: #fff;">'+text+'</div>'
-				// 	return "<a href='#' data-toggle='tooltip' data-placement='right' data-html='true'  title='"+channels+"'>"+row["channel"]+"</a>"
-				// }},
 				{ "data": "channel",render:function(val,a,row){
 					var param_common = row["param_common"];
 					var href = "#";
@@ -472,6 +469,8 @@
 						val="<span class='text-danger text-bold'>已删除</span>";
 					}else if(state==11){
 						val="<span class='text-danger text-bold'>已上线</span>";
+					}else if(state==12){
+						val="<span class='text-danger text-bold'>无法标注</span>";
 					}
 					return val;
 				}},
@@ -652,7 +651,8 @@
 				"<option value='8'>需登录</option>"+
 				"<option value='9'>转python</option>"+
 				"<option value='10'>已删除</option>"+
-		  "<option value='11'>已上线</option>";
+		  		"<option value='11'>已上线</option>"+
+				"<option value='12'>无法标注</option>";
 			{{if eq (session "auth") 3}}
 				opt=opt+opt1+opt2+opt3+opt4;
 			{{else if eq (session "auth") 2}}
@@ -696,7 +696,7 @@
 				"<option value='golua平台'>golua平台</option>"+
 					"<option value='chrome'>chrome</option>"+
 				"<option value='python'>python</option>"+
-					"<option value='通用爬虫'>通用爬虫</option>"+
+					"<option value='通用平台'>通用平台</option>"+
 				"</select></div>";
 			$("#spider_filter").prepend("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
 			$("#spider_filter").prepend(platform);
@@ -1007,7 +1007,7 @@
 				"<option value='golua平台'>golua平台</option>"+
 				"<option value='chrome'>chrome</option>"+
 				"<option value='python'>python</option>"+
-				"<option value='通用爬虫'>通用爬虫</option>"+
+				"<option value='通用平台'>通用平台</option>"+
 				"</select>";
 	};
 	function updateesp(val,w,s,c,id){
@@ -1240,7 +1240,8 @@
       		"<option disabled value='8'>需登录</option>"+
       		"<option disabled value='9'>转python</option>"+
       		"<option disabled value='10'>已删除</option>"+
-            "<option disabled value='10'>已上线</option>"+
+            "<option disabled value='11'>已上线</option>"+
+			 "<option disabled value='12'>无法标注</option>"+
           +"</select>";
   	};
 	{{end}}

+ 2 - 2
src/web/templates/lualist.html

@@ -196,7 +196,7 @@
                     $('#dataTable-btn').click(function(e) {
                         var redirectpage=0
                         if($("#changePage").val() && $("#changePage").val() > 0) {
-                            var redirectpage = $("#changePage").val() - 1;
+                            redirectpage = $("#changePage").val() - 1;
                         }
                         ttable.page(redirectpage).draw(false);
                     });
@@ -255,7 +255,7 @@
                     "<option value='golua平台'>golua平台</option>"+
                     "<option value='chrome'>chrome</option>"+
                     "<option value='python'>python</option>"+
-                    "<option value='通用爬虫'>通用爬虫</option>"+
+                    "<option value='通用平台'>通用平台</option>"+
                     "</select></div>"
                 $("#spider_filter").prepend("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
                 $("#spider_filter").prepend(platform);

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

@@ -713,7 +713,7 @@ $(function(){
             "<option value='chrome'>chrome</option>"+
             "<option value='python'>python</option>"+
             "<option value='golua平台,python'>golua平台,python</option>"+
-            "<option value='通用爬虫'>通用爬虫</option>"+
+            "<option value='通用平台'>通用平台</option>"+
             "</select></div>"
 		$("#sitelist_filter").prepend("&nbsp;&nbsp;");
 		$("#sitelist_filter").prepend(platform);

+ 4 - 1
src/web/templates/sitetask.html

@@ -114,6 +114,8 @@
 							val="<span class='text-danger text-bold'>已删除</span>";
 						}else if(state==11){
 							val="<span class='text-danger text-bold'>已上线</span>";
+						}else if(state==12){
+							val="<span class='text-danger text-bold'>无法标注</span>";
 						}
 						return val;
 					}},
@@ -218,7 +220,8 @@
 					"<option value='8'>需登录</option>"+
 					"<option value='9'>转python</option>"+
 					"<option value='10'>已删除</option>"+
-					"<option value='11'>已上线</option>";
+					"<option value='11'>已上线</option>"+
+					"<option value='12'>无法标注</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'>"+

+ 4 - 2
src/web/templates/spideredit.html

@@ -49,7 +49,8 @@
   						<option value=8>需登录</option> 
   						<option value=9>转python</option>
   						<option value=10>需删除</option>
-              <option value=11>已上线</option> 
+              			<option value=11>已上线</option>
+						<option value=11>无法标注</option>
   					</select> 
   					<button id="ok" class="btn btn-success btn-sm">确定</button>
   				</div>
@@ -70,7 +71,8 @@
   						<option value=8>需登录</option> 
   						<option value=9>转python</option>
   						<option value=10>需删除</option>
-              <option value=11>已上线</option> 
+              			<option value=11>已上线</option>
+						<option value=11>无法标注</option>
   					</select> 
   					<button id="ok" class="btn btn-success btn-sm">确定</button>
   				</div>

+ 198 - 0
src/web/templates/yesterdaycount.html

@@ -0,0 +1,198 @@
+{{include "head.html"}}
+<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
+<div class="modal fade" id="modal-showinfo" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
+    <div class="modal-dialog">
+        <div class="modal-content">
+            <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>
+                    <div class="edit-info">
+                        <span class="fa fa-bar-chart-o" id="code-assign" aria-hidden="true"></span>
+                        <span class="info">采集详情<span>
+                    </div>
+                    <div class="modal-body">
+                        <canvas id="myChart"></canvas>
+                    </div>
+                </div>
+            </div>
+        </div><!-- /.modal-content -->
+    </div><!-- /.modal -->
+</div>
+<div class="content-wrapper">
+    <section class="content-header">
+        <h1>
+            信息列表
+            <small>
+            </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">
+            <!-- /.box-header -->
+            <div class="box-body">
+                <table id="spider" class="table table-bordered table-striped">
+                    <thead>
+                    <tr>
+                        <th>网站</th>
+                        <th>栏目名称</th>
+                        <th>爬虫代码</th>
+                        <th>维护人</th>
+                        <th>昨日发布量</th>
+                        <th>昨日采集量</th>
+                        <th class="hidden-xs">操作</th>
+                    </tr>
+                    </thead>
+                </table>
+            </div>
+            <!-- /.box-body -->
+        </div>
+    </section>
+
+    <script>
+        $(function(){
+            ttable=$('#spider').DataTable({
+                "language": {
+                    "url": "/js/dataTables.chinese.lang"
+                },
+                "paging": true,
+                "serverSide": true,
+                "searching": true,
+                "ordering": false,
+                "info": true,
+                "autoWidth": true,
+                "ajax": {
+                    "url": "/center/data/yesterdaycount",
+                    "type": "POST"
+                },
+                "columns": [
+                    { "data": "site"},
+                    { "data": "channel"},
+                    { "data": "code"},
+                    { "data": "modifyuser"},
+                    { "data": "collectnum"},
+                    { "data": "publishnum"},
+                    { "data": "_id",render:function(val,a,row){
+                            var div=$("<div><div class=\"btn-group\"></div></div>")
+                            var buttonInfo=$('<a type="button" target="_blank" class="btn btn-sm btn-primary">查看详情</a>');
+                            buttonInfo.attr("dailydata", JSON.stringify(row.dailydata))
+                            buttonInfo.attr("onclick","showInfo(this)");
+                            div.find(".btn-group").append(buttonInfo);
+                            return div.html();
+                        }}
+                ]
+            });
+            common.menuActive("yesterdaycount");
+        })
+        let myChart;
+        function showInfo(me) {
+            const dailydata = JSON.parse(me.getAttribute("dailydata"));
+            let max = 0;
+            let min = 0;
+            for (i in dailydata){
+                const num = dailydata[i];
+                if (num > max){
+                    max = num;
+                }
+                if (num < min){
+                    min = num;
+                }
+            }
+            let stepSize = Math.ceil(max / 10);
+            if (max <= 100){
+                stepSize = 10
+            }else if (max <= 1000) {
+                stepSize = 100
+            }
+            // 如果图表已存在,先销毁
+            if (myChart) {
+                myChart.destroy();
+            }
+            const labels = Object.keys(dailydata);
+            const values = Object.values(dailydata);
+            const ctx = document.getElementById('myChart').getContext('2d');
+             myChart = new Chart(ctx, {
+                type: 'bar',
+                data: {
+                    labels: labels,
+                    datasets: [{
+                        label: '数据量',
+                        data: values,
+                        backgroundColor: 'rgba(75, 192, 192, 0.2)',
+                        borderColor: 'rgba(75, 192, 192, 1)',
+                        borderWidth: 1,
+                        barThickness: 10 // 设置条形柱的宽度
+                    }]
+                },
+                options: {
+                    responsive: true,
+                    scales: {
+                        y: {
+                            beginAtZero: true,
+                            min: 0, // 设置 Y 轴最小值
+                            max: max, // 设置 Y 轴最大值
+                            ticks: {
+                                stepSize: stepSize // 设置 Y 轴刻度间隔
+                            },
+                            title: {
+                                display: true,
+                                text: '数据量'
+                            },
+                            grid: {
+                                display: false // 关闭 y 轴网格线
+                            }
+                        },
+                        x: {
+                            title: {
+                                display: true,
+                                text: '日期'
+                            },
+                            grid: {
+                                display: false // 关闭 x 轴网格线
+                            },
+                            // 设置柱子之间的间隔
+                            barPercentage: 0.1, // 设置柱子占可用宽度的50%
+                            categoryPercentage: 0.1 // 设置类别占可用宽度的80%
+                        }
+                    },
+                    plugins: {
+                        tooltip: {
+                            callbacks: {
+                                label: function(context) {
+                                    return `${context.dataset.label}: ${context.raw}`;
+                                }
+                            }
+                        },
+                        datalabels: {
+                            anchor: 'end',
+                            align: 'end',
+                            formatter: (value) => {
+                                return value; // 显示具体数据量
+                            }
+                        }
+                    }
+                },
+                plugins: [{
+                    id: 'datalabels',
+                    afterDatasetsDraw: function(chart) {
+                        const ctx = chart.ctx;
+                        chart.data.datasets.forEach((dataset, i) => {
+                            const meta = chart.getDatasetMeta(i);
+                            meta.data.forEach((bar, index) => {
+                                const dataValue = dataset.data[index];
+                                ctx.fillStyle = 'black'; // 数据量文本颜色
+                                ctx.textAlign = 'center'; // 文本居中对齐
+                                ctx.fillText(dataValue, bar.x, bar.y - 5); // 在柱子上方绘制文本
+                            });
+                        });
+                    }
+                }]
+            });
+            $("#modal-showinfo").modal("show");
+        }
+    </script>
+</div>
+{{include "bottom.html"}}