unknown 6 gadi atpakaļ
vecāks
revīzija
33f7ded570

+ 1 - 1
src/github.com/dlclark/regexp2

@@ -1 +1 @@
-Subproject commit 902a5ce7a7812e2ba9f73b9d96c09d5136df39cd
+Subproject commit 7632a260cbaf5e7594fc1544a503456ecd0827f1

+ 58 - 0
src/jy/admin/resulttrack.go

@@ -0,0 +1,58 @@
+//结果追踪
+package admin
+
+import (
+	"jy/admin/track"
+	"jy/extract"
+	. "jy/mongodbutil"
+	"strconv"
+	"strings"
+
+	"github.com/gin-gonic/gin"
+	"gopkg.in/mgo.v2/bson"
+)
+
+func init() {
+	//首页
+	Admin.GET("/resulttrack", func(c *gin.Context) {
+		c.HTML(200, "result_list.html", nil)
+	})
+	//查找追踪数据
+	Admin.GET("/resulttrack/trackData", func(c *gin.Context) {
+		_id := c.Query("trackId")
+		field := c.Query("field")
+		//tracks := track.GetTrackPath("5b8dd276a5cb26b9b7faaa7c", "projectname", "v3_track")
+		tracks := track.GetTrackPath(_id, field, "v3_track")
+		c.HTML(200, "track.html", map[string]interface{}{"tracks": tracks})
+	})
+	//查询所有的抽取结果
+	Admin.POST("/resulttrack/list", ResultData)
+
+}
+
+//查询所有的抽取结果
+func ResultData(c *gin.Context) {
+	search, _ := c.GetPostForm("search[value]")
+	startstr, _ := c.GetPostForm("start")
+	limitstr, _ := c.GetPostForm("length")
+	start, _ := strconv.Atoi(startstr)
+	limit, _ := strconv.Atoi(limitstr)
+	id := strings.TrimSpace(search)
+	query := bson.M{}
+	if id != "" {
+		_id := extract.IdTrans(search)
+		if _id.Valid() {
+			query["$or"] = []interface{}{
+				bson.M{"_id": _id},
+			}
+		}
+	}
+	data, _ := Mgo.Find("extract_result", query, `{"_id":-1}`, nil, false, start, limit)
+	count := Mgo.Count("extract_result", query)
+	for _, d := range *data {
+		if d["budget"] == nil {
+			d["budget"] = 0
+		}
+	}
+	c.JSON(200, gin.H{"data": data, "recordsFiltered": count, "recordsTotal": count})
+}

+ 12 - 0
src/web/res/other/css/other.css

@@ -0,0 +1,12 @@
+#modal-info-resulttrack .styleclass{
+	display: flex;
+    flex-direction: row;
+}
+
+#modal-info-resulttrack .styleclass input{
+	width:85%;
+}
+#modal-info-resulttrack .styleclass button{
+	margin-left:10px;
+}
+

+ 1 - 0
src/web/templates/admin/com_memu.html

@@ -36,6 +36,7 @@
 	            <li><a href="/admin/rule/pre"><i class="fa fa-circle-o"></i>菜单</a></li>
 			</ul>
         </li>
+		 <li><a href="/admin/resulttrack"><i class="fa fa-laptop"></i>结果追踪</a></li>
 		<li><a href="/admin/user"><i class="fa fa-link"></i> <span>人员管理</span></a></li>
       </ul>
     </section>

+ 172 - 0
src/web/templates/admin/result_list.html

@@ -0,0 +1,172 @@
+{{template "inc"}}
+<!-- Main Header -->
+{{template "header"}}
+<!-- Left side column. 权限菜单 -->
+{{template "memu"}}
+<link href="../res/other/css/other.css" rel="stylesheet" type="text/css">
+<div class="content-wrapper">
+	<section class="content-header" style="padding: 49px 15px 0 15px;">
+		<h1>
+			
+		</h1>
+		<ol class="breadcrumb">
+		  <li><a href="#"><i class="fa fa-dashboard"></i> 结果追踪</a></li>		  
+		</ol>
+    </section>
+  <!-- Main content -->
+  <section class="content">
+      <div class="row">
+	      <div class="col-xs-12">
+	        <div class="box">
+		        <div class="box-body">
+		            <table id="dataTable" class="table table-bordered table-hover">
+		              <thead>
+		              <tr>
+		                <th>项目名称</th> 
+						<th>预算金额</th> 
+						<th>中标金额</th>
+						<th>采购单位</th>
+						<th>中标单位</th>
+						<th>招标机构</th>
+						<th>类型</th>
+						<th>操作</th> 
+		              </tr>
+		              </thead>
+		            </table>
+		        </div>
+	          <!-- /.box-body -->
+	        </div>
+        <!-- /.box -->
+		</div>
+	</div>
+  </section>
+
+</div>
+<!--新增标签--> 
+<div class="modal fade" id="modal-info-resulttrack">
+  	<div class="modal-dialog">
+	    <form id="resulttrack-dataform" class="form-horizontal" role="form">
+		<div class="modal-content">
+		    <div class="modal-header">
+		        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+		          <span aria-hidden="true">&times;</span></button>
+		        <h4 class="modal-title">信息</h4>
+		    </div>
+		    <div class="modal-body">
+				<div class="form-group">
+				    <label for="code" class="col-sm-2 control-label">项目名称:</label>
+				    <div class="col-sm-10 styleclass">
+					   	<input type="text" class="form-control" id="projectname">
+						<button type="button" class="btn btn-primary track">追踪</button>
+					</div>
+				</div>
+				<div class="form-group">
+				    <label for="code" class="col-sm-2 control-label">预算金额:</label>
+				    <div class="col-sm-10 styleclass">
+					   	<input type="text" class="form-control" id="budget">
+						<button type="button" class="btn btn-primary track">追踪</button>
+					</div>
+				</div>
+				<div class="form-group">
+				    <label for="code" class="col-sm-2 control-label">中标单位:</label>
+				    <div class="col-sm-10 styleclass">
+					   	<input type="text" class="form-control" id="winner">
+						<button type="button" class="btn btn-primary track">追踪</button>
+					</div>
+				</div>
+				<div class="form-group">
+				    <label for="code" class="col-sm-2 control-label">采购单位:</label>
+				    <div class="col-sm-10 styleclass">
+					   	<input type="text" class="form-control" id="buyer">
+						<button type="button" class="btn btn-primary track" >追踪</button>
+					</div>
+				</div>
+				<div class="form-group">
+				    <label for="code" class="col-sm-2 control-label">招标机构:</label>
+				    <div class="col-sm-10 styleclass">
+					   	<input type="text" class="form-control" id="agency">
+						<button type="button" class="btn btn-primary track">追踪</button>
+					</div>
+				</div>
+		    </div>
+		</div>
+	    <!-- /.modal-content -->
+	    </form>
+  	</div>
+  <!-- /.modal-dialog -->
+</div>
+{{template "dialog"}}
+{{template "footer"}}
+<script>
+var rowdata ={};
+var trackId = "";
+$(function () {
+	ttable=$('#dataTable').DataTable({
+		"paging"      : true,
+		"lengthChange": false,
+		"searching"   : true,
+		"ordering"    : true,
+		"info"        : true,
+		"autoWidth"   : false,
+		"serverSide"  : true,
+		"ajax": {
+			"url": "/admin/resulttrack/list",
+			"type": "post",
+			"data":{}
+		 },
+		"language": {
+            "url": "/res/dist/js/dataTables.chinese.lang"
+        },
+		"columns": [
+            { "data": "projectname","width":"16%",render:function(val,a,row){
+				var tmpval = val;
+				if(tmpval == undefined){
+					tmpval = "";
+				} 
+				if(tmpval.length>10){
+					tmpval = tmpval.substr(0,10)+"...";
+				}
+				return"<a style='color:#333' target='_blank' title='"+val+"'>"+tmpval+"</a>"
+			}},
+			{ "data": "budget"},
+			{ "data": "_id",render:function(val,a,row){
+				return "测试"
+			}},
+			{ "data": "_id",render:function(val,a,row){
+				return "测试"
+			}},
+			{ "data": "_id",render:function(val,a,row){
+				return "测试"
+			}},
+			{ "data": "_id",render:function(val,a,row){
+				return "测试"
+			}},
+			{ "data": "toptype"},
+			{ "data": "_id",render:function(val,a,row){
+				rowdata[val]= row;
+				return  "<a class='btn btn-primary' onclick='trackShow(\""+val+"\")'>详细</a>"
+			}}			
+       	]
+	});
+})
+
+//追踪
+function trackShow(_id){
+	trackId = _id;	
+	var data = rowdata[_id];
+	$("#modal-info-resulttrack #projectname").val(data["projectname"]);
+	$("#modal-info-resulttrack #budget").val(data["budget"]);
+	$("#modal-info-resulttrack #winner").val();
+	$("#modal-info-resulttrack #buyer").val();
+	$("#modal-info-resulttrack #agency").val();
+	$("#modal-info-resulttrack").modal("show");
+}
+
+$("#modal-info-resulttrack .track").click(function(){
+	var field = $(this).prev().attr("id");
+	window.open("/admin/resulttrack/trackData/?trackId="+trackId+"&field="+field);
+});
+
+
+
+</script>

+ 146 - 0
src/web/templates/admin/track.html

@@ -0,0 +1,146 @@
+{{template "inc"}}
+<!-- Main Header -->
+{{template "header"}}
+<!-- Left side column. 权限菜单 -->
+{{template "memu"}}
+<style type="text/css">
+ .resultshowstyle{
+	display: inline-block;
+    border: 1px solid #e0e0e0;
+    background: #fff;
+    cursor: pointer;
+    border-radius: 4px;
+    -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
+    -moz-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
+    box-shadow: 0 0 20px rgba(0, 0, 0, .2);
+    z-index: 999;
+	width:680px;
+	height: 484px;
+}
+.first{
+	margin-bottom:0px; 
+}
+.first thead tr th{
+	padding-left: 4px;
+	width:132px;
+}
+.second{
+	overflow-y: scroll;
+    height: 376px;
+    display: block;
+	overflow-x: hidden;
+}
+#resultdata{
+    white-space: nowrap;
+    overflow-x: scroll;
+}
+.table>tbody>tr>td{
+	padding-left: 0px;
+    padding-right: 0px;
+}
+.table>tbody>tr>td div{
+	width: 132px;
+    padding-left: 4px;
+	white-space: normal;
+	word-break: break-all;
+    word-wrap: break-word;
+}
+.codestyle{
+	font-size: 18px;
+    border-bottom: 2px solid #f4f4f4;
+    padding: 9px 5px;
+    color: #335;
+}
+.datanull{
+	padding-Left:20px;
+}
+</style>
+<div class="content-wrapper">
+	<section class="content-header" style="padding: 49px 15px 0 15px;">
+		<h1>
+			
+		</h1>
+		<ol class="breadcrumb">
+		  <li><a href="/admin/resulttrack"><i class="fa fa-dashboard"></i> 结果追踪</a></li>		  
+		</ol>
+    </section>
+	<section class="content">
+		<div id="resultdata">
+		</div>
+	</section>
+</div>
+
+{{template "dialog"}}
+{{template "footer"}}
+<script>
+	$(function(){
+		var tracks = {{.tracks}};
+		var n = 0;
+		var oneboxhtml = "";
+		var finishhtml = "";
+		var flag1 = false;
+		var flag3 = false;
+		for(var key in tracks){
+			flag1 = true;
+			oneboxhtml = createnewbox(key,tracks[key])
+			if(oneboxhtml != ""){
+				finishhtml = finishhtml + oneboxhtml;
+			}
+		}
+		if(!flag1 || finishhtml == ""){//没有数据
+			flag3 = true;
+			finishhtml = '<div class="datanull">无追踪数据</div>'
+		}
+		$("#resultdata").html(finishhtml)
+		if(flag3){
+			$("#resultdata").css("overflow-x","hidden");
+		}
+	})
+	
+	function createnewbox(key,arr){
+		var tablehtml = "";
+		var flag2 = false;
+		for(var i in arr){
+			flag2 = true;
+			tablehtml = tablehtml + createtable(arr[i])
+		}
+		if(flag2){
+			var boxhtml = '<div class="resultshowstyle">'
+							+'<div class="box box-primary">'
+								+'<div class="codestyle">Code : '+key+'</div>'
+								+'<table class="table first">'
+									+'<thead>'
+			    						+'<tr>'
+			      							+'<th>匹配代码</th>'
+			      							+'<th>抽取来源</th>'
+											+'<th>抽取类型</th>'
+											+'<th>抽取结果</th>'
+											+'<th>抽取描述</th>'
+											+'<th style="width:20px;"></th>'
+			    						+'</tr>'
+			  						+'</thead>'
+								+'</table>'
+								+'<table class="table table-striped second">'
+			 						+'<tbody>'
+									+tablehtml
+									+'</tbody>'
+								+'</table>'
+							+'</div>'
+						+'</div>'
+			return 	boxhtml	
+		}
+		return "";		
+	}
+	function createtable(map){
+		var trhtml = '<tr>'
+						+'<td><div>'+map["code"]+'</div></td>'
+						+'<td><div>'+map["extfrom"]+'</div></td>'
+						+'<td><div>'+map["matchtype"]+'</div></td>'
+						+'<td><div>'+map["value"]+'</div></td>'
+						+'<td><div>'+map["name"]+'</div></td>'
+						+'<td><div style="width:20px;"></div></td>'
+						
+					+'</tr>'
+		return trhtml
+	}
+</script>