maxiaoshan 5 年之前
父節點
當前提交
2212ceac1a

+ 40 - 16
src/jy/admin/audit/dataaudit.go

@@ -6,6 +6,7 @@ import (
 	"log"
 	qu "qfw/util"
 	redis "qfw/util/redis"
+	"strings"
 	"time"
 
 	"github.com/gin-gonic/gin"
@@ -15,15 +16,14 @@ func init() {
 	//列表、编辑
 	Admin.GET("/audit/dataaudit", func(c *gin.Context) {
 		name := c.Query("name")
-		//lib := c.Query("lib")
 		coll := c.Query("coll")
-		auditattr := c.Query("auditattr")
-		c.HTML(200, "audit_auditone.html", gin.H{"name": name, "coll": coll, "auditattr": auditattr})
+		c.HTML(200, "audit_auditone.html", gin.H{"name": name, "coll": coll})
 	})
 	Admin.POST("/audit/auditonefield", AuditOneField)
-	Admin.POST("/audit/buyerclass", BuyerClass) //采购单位分类
-	Admin.POST("/audit/addsave", AddSave)       //新增
-	Admin.POST("/audit/auditsave", AuditSave)   //保存
+	Admin.POST("/audit/addsave", AddSave)     //新增
+	Admin.POST("/audit/auditsave", AuditSave) //保存
+	Admin.POST("/audit/alldel", AllDel)       //批量删除
+
 }
 
 func AuditData(c *gin.Context) {
@@ -46,21 +46,45 @@ func AuditData(c *gin.Context) {
 	}
 }
 
+func AllDel(c *gin.Context) {
+	coll, _ := c.GetPostForm("coll")
+	ids, _ := c.GetPostForm("ids")
+	idsArr := strings.Split(ids, ",")
+	for _, id := range idsArr {
+		query := map[string]interface{}{
+			"_id": qu.StringTOBsonId(id),
+		}
+		Mgo.Del(coll, query)
+	}
+	c.JSON(200, gin.H{"rep": true})
+}
 func AuditOneField(c *gin.Context) {
 	field, _ := c.GetPostForm("field")
-	//lib, _ := c.GetPostForm("lib")
 	coll, _ := c.GetPostForm("coll")
+	start := c.GetInt("start")
+	limit := c.GetInt("length")
 	auditattr, _ := c.GetPostForm("auditattr")
-	query := map[string]interface{}{
-		auditattr + "_" + field: 1,
+	query := map[string]interface{}{}
+	if auditattr != "-1" {
+		query = map[string]interface{}{
+			field + "_" + auditattr: 1,
+		}
+	} else {
+		query = map[string]interface{}{
+			"$or": []interface{}{
+				map[string]interface{}{field + "_ok": 1},
+				map[string]interface{}{field + "_err": 1},
+			},
+		}
 	}
-	data, _ := Mgo.Find(coll, query, `{"_id":1}`, nil, false, -1, -1)
-	//	for _, d := range *data {
-	//		timeStr := time.Unix(d["l_createtime"].(int64), 0).Format(Date_Short_Layout)
-	//		d["l_createtime"] = timeStr
-	//	}
-	//	count := Mgo.Count("audit_err", query)
-	c.JSON(200, gin.H{"data": data})
+	data, _ := Mgo.Find(coll, query, `{"_id":1}`, `{"topscopeclass":1,"`+field+`":1}`, false, start, limit)
+	count := Mgo.Count(coll, query)
+	page := start / 10
+	for k, d := range *data {
+		d["num"] = k + 1 + page*10
+		d["topscopeclass"] = strings.Join(qu.ObjArrToStringArr(d["topscopeclass"].([]interface{})), ",")
+	}
+	c.JSON(200, gin.H{"data": data, "recordsFiltered": count, "recordsTotal": count})
 }
 
 func BuyerClass(c *gin.Context) {

+ 7 - 12
src/jy/admin/audit/rulemanager.go

@@ -67,18 +67,13 @@ func SaveRecogField(c *gin.Context) {
 		c.JSON(200, gin.H{"rep": true})
 	} else {
 		//s_class, _ := c.GetPostForm("s_class")
-		s_recogfield, _ := c.GetPostForm("s_recogfield")
-		d, _ := Mgo.FindOne("rc_field", `{"s_recogfield":"`+s_recogfield+`","delete":false}`)
-		if len(*d) > 0 {
-			c.JSON(200, gin.H{"msg": "已存在!"})
-		} else {
-			data["l_createtime"] = time.Now().Unix()
-			//data["l_date"] = time.Now().Unix()
-			data["s_user"] = session.Get("username")
-			data["delete"] = false
-			Mgo.Save("rc_field", data)
-			c.JSON(200, gin.H{"rep": true})
-		}
+		//s_recogfield, _ := c.GetPostForm("s_recogfield")
+		data["l_createtime"] = time.Now().Unix()
+		//data["l_date"] = time.Now().Unix()
+		data["s_user"] = session.Get("username")
+		data["delete"] = false
+		Mgo.Save("rc_field", data)
+		c.JSON(200, gin.H{"rep": true})
 	}
 }
 

+ 73 - 97
src/web/templates/admin/audit_auditone.html

@@ -8,9 +8,8 @@
 	<section class="content-header">
 		<h1>
 			<small>
-				<!--{{if eq .name "buyer" "winner"}}
-				<button class="btn btn-primary" onclick="addaudit()">新增{{.name}}</button>
-				{{end}}-->
+				<button class="btn btn-primary" onclick="allAudit()">批量审核</button>
+				<button class="btn btn-primary" onclick="allDel({{.coll}},'','all')">批量删除</button>
 			</small>
 		</h1>
 		<ol class="breadcrumb">
@@ -27,7 +26,10 @@
 		            <table id="dataauditTable" class="table table-bordered table-hover">
 		              <thead>
 		              <tr>
+						<th><input type="checkbox" id="selrow" onclick="selectrow(this)"/></th>
+						<th>编号</th>
 						<th>字段值</th>
+						<th>行业类型</th>
 						<!--<th>ExtractID</th>
 						<th>结果表</th>
 						<th>分包</th>
@@ -84,7 +86,7 @@
 {{template "dialog"}}
 {{template "footer"}}
 <script>
-menuActive("recogfield")
+menuActive("audit/recogfield")
 var field = {{.name}}
 $(function () {
 	ttable=$('#dataauditTable').DataTable({
@@ -94,104 +96,82 @@ $(function () {
 		"ordering"    : false,
 		"info"        : true,
 		"autoWidth"   : true,
-		"serverSide"  : false,
+		"serverSide"  : true,
 		"ajax": {
 			"url": "/admin/audit/auditonefield",
 			"type": "post",
-			"data": {"field":{{.name}},"coll":{{.coll}},"auditattr":{{.auditattr}}}
+			"data": {"field":{{.name}},"coll":{{.coll}}}
 		},
 		"language": {
             	"url": "/res/dist/js/dataTables.chinese.lang"
        	},
 		"columns": [
+			{ "data": "_id",width:"1%",render:function(val,a,row){
+				return "<input type='checkbox' value='"+val+"'/>"
+			}},
+			{ "data": "_id",width:"5%",render:function(val,a,row){
+				return row.num
+			}},
 			{ "data": {{.name}}},
+			{ "data": "topscopeclass"},
 			{ "data": "_id",render:function(val,a,row){
-					//return '<a class="btn btn-sm btn-success" href="#" onclick="audit(\''+row.val+'\',\''+val+'\',\''+row.extractid+'\',\''+row.extractcoll+'\')">审核</a>'
-				return '<a class="btn btn-sm btn-success" href="#">审核<a>';
+				return '<a class="btn btn-sm btn-success" href="#" onclick="allAudit(\''+{{.name}}+'\',\''+{{.coll}}+'\',\''+val+'\')">审核</a>'+
+					'&nbsp;&nbsp;<a class="btn btn-sm btn-danger" onclick="allDel(\''+{{.coll}}+'\',\''+val+'\',\'one\')">删除</a>'
 			}}
-       	]
+       	],
+		"fnServerParams": function (e) {  
+			var auditattr=$("#auditattr").val();
+			if(auditattr){
+				e.auditattr=auditattr;
+			}else{
+				e.auditattr="-1";
+			}
+      	}
 	});
+	ttable.on('init.dt', function () {
+		var opt="<option value='-1'>全部</option>"+
+				"<option value='ok'>正确</option>"+
+				"<option value='err'>异常</option>";
+		var select="<div class='form-group'><label for='name'>数据类型:</label>"+
+			"<select id='auditattr' onchange='checkclick(this.value)' class='form-control input-sm'>"+
+			opt+
+			"</select></div>"
+		$("#dataauditTable_filter").prepend("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
+		$("#dataauditTable_filter").prepend(select);
+		
+	})
 })
 
-function addaudit(){
-	//查询分类数据
-	bid = 1;
-	$("#audittitleinfo").html("新增");
-	if(field == "buyer"){
-		getbuyerclass();
-	}
-	$("#modal-info-auditdata").modal("show");
-	$("#auditname").val("");
-}
-//获取buyer分类
-function getbuyerclass(){
-	$("#parentclass").empty();
-	$("#childclass").empty();
-	$("#parentclass").append("<option value=''>--请选择--</option>");
-	$("#childclass").append("<option value=''>--请选择--</option>");
-	$.ajax({
-		url:"/admin/audit/buyerclass",
-		type:"post",
-		success:function(data){
-			var classify = data.data;
-			for(var i in classify){
-				var name = classify[i]["s_name"];
-				classifymap[name] = classify[i]["child"];
-				$("#parentclass").append("<option value='"+name+"'>"+name+"</option>");
-			}
-		}
-	})
+function checkclick(){
+	ttable.ajax.reload();
 }
 
-function saveaudit(){
-	var parentclass = "";
-	var childclass = "";
-	var auditname = $("#auditname").val();
-	if(field == "buyer"){
-		parentclass = $("#parentclass").val();
-		childclass = $("#childclass").val();
-	}
-	if(auditname == ""){
-		alert("表单填写不完整!");
-		return ;
-	}else if(field == "buyer" && (parentclass == "" || childclass == "")){
-		alert("表单填写不完整!");
-		return ;
-	}
-	if(bid == 1){//新增保存
-		addsave(auditname,parentclass,childclass);
-	}else{//审核保存确认
-		auditsave(parentclass,childclass);
+function allDel(coll,_id,type){
+	var ids=[];
+	if(type=="one"){//单个删除
+		ids.push(_id)
+	}else{//批量删除
+		$("#dataauditTable td input[type=checkbox]").each(function(){
+			if($(this).prop("checked")){
+				ids.push($(this).val());
+			}
+		});
 	}
-}
-
-//新增保存
-function addsave(auditname,parentclass,childclass){
-	$.ajax({
-		url:"/admin/audit/addsave",
-		type:"post",
-		data:{"field":field,"auditname":auditname,"parentclass":parentclass,"childclass":childclass},
-		success:function(r){
-			if(r.rep){
-				$("#modal-info-auditdata").modal("hide");
-				showTip("保存成功", 1000, function() {});
-			}else{
-				showTip("保存失败", 1000, function() {});
+	showConfirm("确定删除?", function() {
+		$.ajax({
+			url:"/admin/audit/alldel",
+			type:"post",
+			data:{"ids":ids.join(","),"coll":coll},
+			success:function(r){
+				if(r.rep){	
+					ttable.ajax.reload();			
+					//window.location.href="/admin/rulemanager/getrulelist?id="+fid+"&fname="+fname;
+				}else{
+					showTip("删除失败", 1000, function() {});
+				}
 			}
-		}
-	})
-}
-
-//审核
-function audit(val,_id,extractid,extractcoll){
-	bid = 2;
-	getbuyerclass();
-	id = _id;
-	eid = extractid;
-	coll = extractcoll;
-	$("#auditname").val(val);
-	$("#audittitleinfo").html("审核");
-	$("#modal-info-auditdata").modal("show");
+		})
+	});
 }
 //审核确认
 function auditsave(parentclass,childclass){
@@ -212,19 +192,15 @@ function auditsave(parentclass,childclass){
 		})
 	});
 }
-
-/*$(document).ready(function(){
-	$("#parentclass").change(function(){
-	    var parentname = $(this).val();
-		var child = classifymap[parentname];
-		$("#childclass").empty();
-		if(child == undefined || child.length == 0 ){
-			$("#childclass").append("<option value=''>--请选择--</option>");
+function selectrow(me){
+		var sel=$(me);
+		var isSelected=sel.prop('checked');
+		if(isSelected){
+			$("#dataauditTable td input[type=checkbox]").prop("checked",true);
 		}else{
-			for(var i in child){
-				$("#childclass").append("<option value='"+child[i]+"'>"+child[i]+"</option>");
-			}
+			$("#dataauditTable td input[type=checkbox]").prop("checked",false);
 		}
-	});
-});*/
+	}
+
+
 </script>

+ 15 - 7
src/web/templates/admin/audit_recogfield.html

@@ -23,10 +23,11 @@
 		              <thead>
 		              <tr>
 	                		<th>名称</th>
-					<th>审核字段</th>
-					<th>时间</th>
-					<th>创建人</th>
-					<th>操作</th>
+							<th>审核字段</th>
+							<th>审核类型</th>
+							<th>时间</th>
+							<th>创建人</th>
+							<th>操作</th>
 		              </tr>
 		              </thead>
 		            </table>
@@ -42,7 +43,7 @@
 {{template "dialog"}}
 {{template "footer"}}
 <script>
-menuActive("recogfield")
+menuActive("audit/recogfield")
 $(function () {
 	ttablerecogfield=$('#recogfieldTable').DataTable({
 		"paging"      : true,
@@ -62,11 +63,18 @@ $(function () {
 		"columns": [
             { "data": "s_name"},
 			{ "data": "s_recogfield"},
+			{ "data": "s_auditattr",render:function(val,a,row){
+				if(val=="err"){
+					return "错误";
+				}else{
+					return "正确";
+				}
+			}},
 			{ "data": "l_createtime"},
 			{ "data": "s_user"},
 			{ "data": "_id","width":"30%",render:function(val,a,row){
 				 return	 '<a class="btn btn-sm btn-info opr" opr="edit">编辑</a>'+
-					'&nbsp;&nbsp;<a class="btn btn-sm btn-success" href="/admin/audit/dataaudit?name='+row["s_recogfield"]+'&coll='+row["s_coll"]+'&auditattr='+row["s_auditattr"]+'">数据审核</a>'+
+					'&nbsp;&nbsp;<a class="btn btn-sm btn-success" href="/admin/audit/dataaudit?name='+row["s_recogfield"]+'&coll='+row["s_coll"]+'">数据审核</a>'+
 					'&nbsp;&nbsp;<a class="btn btn-sm btn-warning" href="/admin/rulemanager/getrulelist?id='+val+'&fname='+row["s_recogfield"]+'">编辑规则</a>'+
 					'&nbsp;&nbsp;<a class="btn btn-sm btn-danger" onclick="del(\''+val+'\')">删除</a>'
 			}}
@@ -86,7 +94,7 @@ $(function () {
 					{label:"审核字段",s_label:"s_recogfield",must:true},
 					//{label:"信息库",s_label:"s_lib",must:true},
 					{label:"信息表",s_label:"s_coll",must:true},
-					{label:"异常标记",s_label:"s_tagattr",must:true},
+					//{label:"异常标记",s_label:"s_tagattr",must:true},
 					{label:"审核标记",s_label:"s_auditattr",type:"tpl_list_local",must:true,list:[{"s_name":"正确","_id":"ok"},{"s_name":"异常","_id":"err"}],default:"ok"},
 					{s_label:"_id",type:"tpl_hidden"},
 				]

+ 2 - 2
src/web/templates/admin/audit_rulelist.html

@@ -45,7 +45,7 @@
 {{template "dialog"}}
 {{template "footer"}}
 <script>
-menuActive("recogfield")
+menuActive("audit/recogfield")
 var fname = {{.fname}};
 var fid = {{.fid}};
 $(function () {
@@ -228,7 +228,7 @@ $(function () {
 		var opt="<option value='-1'>全部</option>"+
 				"<option value='0'>正确</option>"+
 				"<option value='1'>异常</option>";
-		var select="<div class='form-group'><label for='name'>类型:</label>"+
+		var select="<div class='form-group'><label for='name'>正则类型:</label>"+
 			"<select id='rule_type' onchange='checkclick(this.value)' class='form-control input-sm'>"+
 			opt+
 			"</select></div>"