Explorar el Código

标签库修改

unknown hace 6 años
padre
commit
aa416391cb

+ 7 - 0
src/jy/admin/admin.go

@@ -36,6 +36,13 @@ func init() {
 		data = append(data, *list...)
 		c.JSON(200, gin.H{"data": data})
 	})
+	//获取城市列表
+	Admin.POST("/getcitys", func(c *gin.Context) {
+		list, _ := Mgo.Find("citys", `{}`, `{"_id":-1}`, nil, false, -1, -1)
+		data := []map[string]interface{}{map[string]interface{}{"_id": "", "s_name": ""}}
+		data = append(data, *list...)
+		c.JSON(200, gin.H{"data": data})
+	})
 }
 
 func GetPostForm(c *gin.Context) map[string]interface{} {

+ 46 - 46
src/jy/admin/tag.go

@@ -27,31 +27,19 @@ func init() {
 		c.HTML(200, "onetag.html", gin.H{"version": version, "tagname": tagname, "tp": tp})
 	})
 	Admin.POST("/onetag/data", OneTagData)
-	Admin.POST("/onetag/save", OneTagSave)
+	Admin.POST("/onetag/create", OneTagCreate)
 	Admin.POST("/onetag/del", OneTagDel)
-	Admin.POST("/onetag/edit", OneTagEdit)
-
-	//jsoneditor.html
-	Admin.GET("/onetag/jsonhtml", func(c *gin.Context) {
-		_id := c.Query("_id")
-		data := make(map[string]interface{})
-		if _id != "" {
-			data, _ := Mgo.FindOne("tagdetailinfo", `{"_id":"`+_id+`"}`)
-			c.HTML(200, "jsoneditor.html", gin.H{"data": data})
-		} else {
-			c.HTML(200, "jsoneditor.html", gin.H{"data": data})
-		}
-
-	})
+	Admin.POST("/onetag/editsave", OneTagEditSave)
+	Admin.POST("onetag/searchone", OneTagSearch)
 }
 
 //标签库列表
 func TagData(c *gin.Context) {
 	version, _ := c.GetPostForm("version")
-	data, _ := Mgo.Find("tag", `{"version":"`+version+`"}`, `{"_id":-1}`, nil, false, -1, -1)
+	data, _ := Mgo.Find("tag", `{"s_version":"`+version+`"}`, `{"_id":-1}`, nil, false, -1, -1)
 	for _, d := range *data {
-		timeStr := time.Unix(d["intime"].(int64), 0).Format(Date_Short_Layout)
-		d["intime"] = timeStr
+		timeStr := time.Unix(d["l_intime"].(int64), 0).Format(Date_Short_Layout)
+		d["l_intime"] = timeStr
 	}
 	c.JSON(200, gin.H{"data": data})
 }
@@ -68,11 +56,11 @@ func TagSave(c *gin.Context) {
 		return
 	}
 	save := map[string]interface{}{
-		"tagname": tagname,
-		"version": version,
-		"creater": username,
-		"type":    tp,
-		"intime":  time.Now().Unix(),
+		"s_tagname": tagname,
+		"s_version": version,
+		"s_creater": username,
+		"s_type":    tp,
+		"l_intime":  time.Now().Unix(),
 	}
 	b := Mgo.Save("tag", save)
 	if b != "" {
@@ -97,42 +85,44 @@ func TagDel(c *gin.Context) {
 func OneTagData(c *gin.Context) {
 	version, _ := c.GetPostForm("version")
 	tagname, _ := c.GetPostForm("tagname")
-	data, _ := Mgo.Find("tagdetailinfo", `{"version":"`+version+`","pratagname":"`+tagname+`"}`, `{"_id":-1}`, nil, false, -1, -1)
+	data, _ := Mgo.Find("tagdetailinfo", `{"s_version":"`+version+`","s_pratagname":"`+tagname+`"}`, `{"_id":-1}`, nil, false, -1, -1)
 	for _, d := range *data {
-		timeStr := time.Unix(d["intime"].(int64), 0).Format(Date_Short_Layout)
-		d["intime"] = timeStr
+		timeStr := time.Unix(d["l_intime"].(int64), 0).Format(Date_Short_Layout)
+		d["l_intime"] = timeStr
 	}
 	c.JSON(200, gin.H{"data": data})
 }
 
 //添加详细标签
-func OneTagSave(c *gin.Context) {
-	name, _ := c.GetPostForm("name") //name or select
+func OneTagCreate(c *gin.Context) {
+	name, _ := c.GetPostForm("name")
+	field, _ := c.GetPostForm("field")
 	pratagname, _ := c.GetPostForm("pratagname")
-	data, _ := Mgo.FindOne("tagdetailinfo", `{"name":"`+name+`","pratagname":"`+pratagname+`"}`)
+	data, _ := Mgo.FindOne("tagdetailinfo", `{"s_name":"`+name+`","s_pratagname":"`+pratagname+`"}`)
 	if len(*data) > 0 { //判重
 		c.JSON(200, gin.H{"rep": false})
 		return
 	}
 	version, _ := c.GetPostForm("version")
 	tp, _ := c.GetPostForm("tp")
-	contentStr, _ := c.GetPostForm("content")
+	content, _ := c.GetPostForm("content")
 	username, _ := c.GetPostForm("username")
 	var jsondata interface{}
-	err := json.Unmarshal([]byte(contentStr), &jsondata)
+	err := json.Unmarshal([]byte(content), &jsondata)
 	if err != nil { //不是json格式
 		c.JSON(200, gin.H{"rep": false})
 		return
 	}
 	save := make(map[string]interface{})
 	save = map[string]interface{}{
-		"pratagname": pratagname,
-		"name":       name,
-		"version":    version,
-		"creater":    username,
-		"type":       tp,
-		"intime":     time.Now().Unix(),
-		"content":    jsondata,
+		"s_pratagname": pratagname,
+		"s_name":       name,
+		"s_field":      field,
+		"s_version":    version,
+		"s_creater":    username,
+		"s_type":       tp,
+		"l_intime":     time.Now().Unix(),
+		"content":      jsondata,
 	}
 	b := Mgo.Save("tagdetailinfo", save)
 	if b != "" {
@@ -154,17 +144,18 @@ func OneTagDel(c *gin.Context) {
 }
 
 //修改某个详细标签
-func OneTagEdit(c *gin.Context) {
+func OneTagEditSave(c *gin.Context) {
 	_id, _ := c.GetPostForm("_id")
 	content, _ := c.GetPostForm("content")
-	tp, _ := c.GetPostForm("tp")
+	//tp, _ := c.GetPostForm("tp")
 	var jsondata interface{}
-	var err error
-	if tp == "地区" {
-		err = json.Unmarshal([]byte(content), &jsondata)
-	} else {
-		err = json.Unmarshal([]byte(content), &jsondata)
-	}
+	//	var err error
+	//	if tp == "地区" {
+	//		err = json.Unmarshal([]byte(content), &jsondata)
+	//	} else {
+	//		err = json.Unmarshal([]byte(content), &jsondata)
+	//	}
+	err := json.Unmarshal([]byte(content), &jsondata)
 	if err != nil { //不是json格式
 		c.JSON(200, gin.H{"rep": false})
 		return
@@ -182,3 +173,12 @@ func OneTagEdit(c *gin.Context) {
 		c.JSON(200, gin.H{"rep": false})
 	}
 }
+
+//根据id查找某个标签
+func OneTagSearch(c *gin.Context) {
+	_id, _ := c.GetPostForm("_id")
+	data, _ := Mgo.FindOne("tagdetailinfo", `{"_id":"`+_id+`"}`)
+	//b, _ := json.Marshal((*data)["content"])
+	//fmt.Println("data====", string(b))
+	c.JSON(200, gin.H{"data": data})
+}

+ 0 - 113
src/web/templates/admin/jsoneditor.html

@@ -1,113 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <title>JSONEditor | Switch mode</title>
-
-  <!-- when using the mode "code", it's important to specify charset utf-8 -->
-  <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
-  <link href="/res/jsoneditor/css/jsoneditor.css" rel="stylesheet" type="text/css">
-  <script src="/res/jsoneditor/js/jsoneditor.js"></script>
-  <script src="/res/bower_components/jquery/dist/jquery.min.js"></script>
-
-  <style type="text/css">
-    body {
-      font: 10.5pt arial;
-      color: #4d4d4d;
-      line-height: 150%;
-      width: 500px;
-    }
-    code {
-      background-color: #f5f5f5;
-    }
-
-    #jsoneditor {
-      width: 440px;
-      height:400px;
-    }
-  </style>
-</head>
-<body>
-<div id="jsoneditor"></div>
-<script>
-  	var container = document.getElementById('jsoneditor');
- 	var options = {
-    	mode: 'code',
-    	modes: ['code', 'tree'], // allowed modes
-    	onError: function (err) {
-      	alert(err.toString());
-    	}
-  	};
-	var content = {{.data.content}}
-	var editor =  new JSONEditor(container, options, content);
-	//编辑保存
-	window.parent.document.getElementById('savedata').onclick = function () {
-	   	var newcontent = editor.getText().replace(/[\\n\s]*/g,"");
-		var oldcontent=JSON.stringify(content)
-		var sy = document.getElementById('errorjson').style.display;
-		if(newcontent == "" || newcontent == oldcontent || sy == "block"){
-			alert("表单填写不完整或内容未修改!");
-				return false;
-		}
-		$.ajax({
-			url:"/admin/onetag/edit",
-			type:"post",
-			data:{"_id":{{.data._id}},"content":newcontent,"tp":{{.data.type}}},
-			success:function(r){
-				if(r.rep){
-					//调用父页面的方法刷新页面,关闭模态框
-					window.parent.modalout("edit");
-				}else{
-					alert("保存失败");
-				}
-			}
-		})
-    };
-	
-	window.parent.document.getElementById('addonesave').onclick = function () {
-		var tp = window.parent.tp;
-		var pratagname = window.parent.pratagname;
-		var username = window.parent.username;
-		var version = window.parent.version;
-		var tagname =$("#addone-name",parent.document).val(); //字符串
-		var tagareaname =$("#addone-area",parent.document).val();//区域
-		var name = "";
-		var content = ""
-		$("#ace_text-edittext .ace_line_group").each(function(i){
-			content = content + $(this).find(".ace_line").text();
-        })
-		content = content.replace(/\s+/g,"");
-		if(content == "" || content == "[]" || content == "{}"){
-			alert("表单填写不完整!");
-				return false;
-		}
-		if(tagname == undefined){//选择区域
-			if(tagareaname == ""){
-				alert("表单填写不完整!");
-				return false;
-			}
-			name = tagareaname;
-		}else{//字符串
-			if(tagname == ""){
-				alert("表单填写不完整!");
-				return false;
-			}
-			name = tagname
-		}
-		$.ajax({
-			url:"/admin/onetag/save",
-			type:"post",
-			data:{"pratagname":pratagname,"name":name,"version":version,"tp":tp,
-			"content":content,"username":username},
-			success:function(r){
-				if(r.rep){
-					window.parent.modalout("create");
-				}else{
-					alert("保存失败");
-				}
-			}
-		})
-    };
-</script>
-
-</body>
-</html>

+ 120 - 42
src/web/templates/admin/onetag.html

@@ -3,8 +3,8 @@
 {{template "header"}}
 <!-- Left side column. 权限菜单 -->
 {{template "memu"}}
-	<!--<link href="../res/jsoneditor/css/jsoneditor.css" rel="stylesheet" type="text/css">-->
- 	<!-- <script src="../res/jsoneditor/js/jsoneditor.js"></script>-->
+	<link href="../res/jsoneditor/css/jsoneditor.css" rel="stylesheet" type="text/css">
+ 	<script src="../res/jsoneditor/js/jsoneditor.js"></script>
 	<!--<script src="../res/js/jsonformat.js"></script>-->
 <!-- Content Wrapper. Contains page content -->
 <div class="content-wrapper">
@@ -57,22 +57,13 @@
 		        <h4 class="modal-title">{{.tagname}}信息</h4>
 		    </div>
 		    <div class="modal-body">
-				{{if eq .tp "字符串" "正则"}}
-		     	<div class="form-group">
-				    <label for="code" class="col-sm-2 control-label">名称:</label>
-				    <div class="col-sm-10">
-				      <input id="addone-name" type="text" class="form-control" placeholder="请输名称">
-				    </div>
-				</div>
-				{{else if eq .tp "地区"}}
 				<div class="form-group">
-				    <label for="code" class="col-sm-2 control-label">省/直辖市:</label>
+				    <label for="code" id="labelname" class="col-sm-2 control-label">名称:</label>
 				    <div class="col-sm-10">
-					   	<select class="form-control" id="addone-area"></select>
+					   	<select class="form-control" id="addone-name"></select>
 					</div>
 					<!--<span class="modifyCheck hide check">请选择</span>-->
 				</div>
-				{{end}}
 				<div class="form-group">
 				    <label for="code" class="col-sm-2 control-label">版本:</label>
 				    <div class="col-sm-10">
@@ -82,13 +73,13 @@
 				<div class="form-group">
 				    <label for="code" class="col-sm-2 control-label">内容:</label>
 				    <div class="col-sm-10">
-				     <iframe id="childframe2" src="/admin/onetag/jsonhtml" style="width: 470px;height: 400px;"></iframe>
+						<div id="jsonadd" style="height:300px"></div>
 				    </div>
 				</div>
 		    </div>
 		    <div class="modal-footer">
 		        <button type="button" class="btn btn-default" data-dismiss="modal" onclick="reset()">取消</button>
-		        <button type="button" class="btn btn-primary" id="addonesave">保存</button>
+		        <button type="button" class="btn btn-primary" onclick="saveaddone()">保存</button>
 	    	</div>
 		</div>
 	    <!-- /.modal-content -->
@@ -117,13 +108,13 @@
 				<div class="form-group">
 				    <label for="code" class="col-sm-2 control-label">内容:</label>
 				    <div class="col-sm-10">
-				     <iframe id="childframe" src="/admin/onetag/jsonhtml" style="width: 470px;height: 400px;"></iframe>
-				    </div>
+				    	<div id="jsoneditor" style="height:300px"></div>
+					</div>
 				</div>
 		    </div>
 		    <div class="modal-footer">
 		        <button type="button" class="btn btn-default" data-dismiss="modal" onclick="reset()">取消</button>
-		        <button type="button" class="btn btn-primary" id="savedata">保存</button>
+		        <button type="button" class="btn btn-primary" onclick="saveeditdata()">保存</button>
 	    	</div>
 			<!--<div class="modal-footer">
 		         <input id="editone-id" type="hidden" class="form-control" name="_id">
@@ -146,6 +137,9 @@ var tp = {{.tp}};
 var pratagname = {{.tagname}};
 var version = {{ .version}};
 var username = {{index (session "user") "name" }};
+var editor = null;
+var oldcontent = "";
+var id = "";
 $(function () {
 	ttableonetag=$('#dataTagTable').DataTable({
 		"lengthChange": false,
@@ -169,13 +163,13 @@ $(function () {
 			],
 		{{end}}
 		"columns": [
-            { "data": "name"},
-			{ "data": "creater"},
-			{ "data": "intime"},
-			{ "data": "type"},
+            { "data": "s_name"},
+			{ "data": "s_creater"},
+			{ "data": "l_intime"},
+			{ "data": "s_type"},
 			{ "data": "content"},
 			{ "data": "_id",render:function(val,a,row){
-				return  "<a href='#' onclick=\"editonetag('"+val+"','"+row["name"]+"')\"><i class='fa fa-fw fa-edit text-yellow'></i></a> &nbsp;"+
+				return  "<a href='#' onclick=\"editonetag('"+val+"','"+row["s_name"]+"')\"><i class='fa fa-fw fa-edit text-yellow'></i></a> &nbsp;"+
 						"<a href='#' onclick='delonetag(\""+val+"\")'><i class='fa fa-fw fa-trash text-red'></i></a>"
 			}}
        	]
@@ -184,25 +178,61 @@ $(function () {
 })
 
 //编辑
-var content = ""
 function editonetag(_id,name){
-	$("#childframe").attr("src","/admin/onetag/jsonhtml?_id="+_id)
+	$("#jsoneditor").html('');
+	id = _id;
+	$.ajax({
+		url:"/admin/onetag/searchone",
+		type:"post",
+		data:{"_id":_id},
+		success:function(r){
+			if(r.data != null){
+				var container = document.getElementById('jsoneditor');
+				showJson(r.data.content,container);
+			}
+		}
+	})
 	$("#editone-name").val(name);
 	$("#modal-info-editonetag").modal("show");
 }
 
-//子页面调用父页面的modalout方法关闭模态框,刷新页面
-function modalout(param){
-	if(param == "edit"){
-		$("#editone-dataform")[0].reset();
-		$("#modal-info-editonetag").modal("hide");
-	}else{
-		$("#addone-dataform")[0].reset();
-		$("#modal-info-addonetag").modal("hide");
+function showJson(content,container){
+	var options = {
+    	mode: 'code',
+    	modes: ['code', 'tree'], // allowed modes
+    	onError: function (err) {
+      	alert(err.toString());
+    	}
+  	};
+	editor =  new JSONEditor(container, options, content);
+	oldcontent = editor.getText();
+}
+
+//编辑保存
+function saveeditdata(){
+	var newcontent = editor.getText();
+	var sy = document.getElementById('errorjson').style.display;
+	if(newcontent == "" || newcontent == oldcontent || sy == "block"){
+		alert("表单填写不完整或内容未修改!");
+			return false;
 	}
-	ttableonetag.ajax.reload();
+	$.ajax({
+		url:"/admin/onetag/editsave",
+		type:"post",
+		data:{"_id":id,"content":newcontent},
+		success:function(r){
+			if(r.rep){
+				$("#editone-dataform")[0].reset();
+				$("#modal-info-editonetag").modal("hide");
+				ttableonetag.ajax.reload();
+			}else{
+				alert("保存失败");
+			}
+		}
+	});
 }
 
+
 //删除标签
 function delonetag(_id){
 	showConfirm("确定删除?", function() {
@@ -223,15 +253,63 @@ function delonetag(_id){
 
 //创建标签
 function createOneTag(){
-	{{if eq .tp "地区"}}
-	var area = ["北京市","浙江省","江西省","湖北省","山西省","吉林省","海南省","甘肃省","河北省","广东省","重庆市","陕西省","辽宁省","山东省","河南省","云南省","台湾省","天津市","福建省","贵州省","江苏省","上海市","安徽省","湖南省","四川省","青海省","黑龙江省","西藏自治区","新疆维吾尔自治区","内蒙古自治区","宁夏回族自治区","澳门特别行政区","广西壮族自治区","香港特别行政区"];
-	$("#addone-area").empty();
-	$("#addone-area").append("<option value=''>--请选择--</option>");
-	for(var i in area){
-		$("#addone-area").append("<option value='"+area[i]+"'>"+area[i]+"</option>");
+	$("#jsonadd").html('');
+	var arr = [];
+	var url = "/admin/getfields";
+	if(tp == "地区"){
+		$("#labelname").html("省/直辖市");
+		url = "/admin/getcitys";
+	}
+	$.ajax({
+		url:url,
+		type:"post",
+		async:false,
+		success:function(r){
+			if(r.data != null){
+				arr = r.data;
+			}
+		}
+	});
+	$("#addone-name").empty();
+	$("#addone-name").append("<option value=''>--请选择--</option>");
+	for(var i in arr){
+		if(arr[i]["s_name"] != ""){
+			$("#addone-name").append("<option value='"+arr[i]["s_name"]+"+"+arr[i]["s_field"]+"'>"+arr[i]["s_name"]+"</option>");
+		}
 	}
-	{{end}}
-	$("#childframe2").attr("src","/admin/onetag/jsonhtml?_id=")
+	var container = document.getElementById('jsonadd');
+	showJson("",container);
 	$("#modal-info-addonetag").modal("show");
 }
+
+//保存创建的标签
+function saveaddone(){
+	var name = $("#addone-name").val();
+	namearr = name.split("+");
+	content = editor.getText();
+	var contentrep = content.replace(/\s+/g,"");
+	if(contentrep == "" || contentrep == "[]" || contentrep == "{}" || name == "" || (tp != "地区" && content[0] == "{")){
+		alert("表单填写不完整或格式不正确!");
+			return false;
+	}
+	if(namearr.length != 2){
+		alert("名称或省/直辖市数据错误!");
+			return false;
+	}
+	$.ajax({
+		url:"/admin/onetag/create",
+		type:"post",
+		data:{"pratagname":pratagname,"name":namearr[0],"field":namearr[1],"version":version,"tp":tp,
+		"content":content,"username":username},
+		success:function(r){
+			if(r.rep){
+				$("#addone-dataform")[0].reset();
+				$("#modal-info-addonetag").modal("hide");
+				ttableonetag.ajax.reload();
+			}else{
+				alert("保存失败");
+			}
+		}
+	});
+}
 </script>

+ 6 - 15
src/web/templates/admin/taglist.html

@@ -110,14 +110,14 @@ $(function () {
             "url": "../res/dist/js/dataTables.chinese.lang"
         },
 		"columns": [
-            { "data": "tagname",render:function(val,a,row){
+            { "data": "s_tagname",render:function(val,a,row){
 				//return "<a href='#' onclick='searchOneTag(\""+val+"\",\""+row["version"]+"\")'>"+val+"</a>"
-				return '<a href="/admin/onetag?version='+row.version+'&tagname='+row.tagname+'&tp='+row.type+'">'+val+'</a>';
+				return '<a href="/admin/onetag?version='+row.s_version+'&tagname='+row.s_tagname+'&tp='+row.s_type+'">'+val+'</a>';
 			}},
-			{ "data": "version"},
-			{ "data": "creater"},
-			{ "data": "intime"},
-			{ "data": "type"},
+			{ "data": "s_version"},
+			{ "data": "s_creater"},
+			{ "data": "l_intime"},
+			{ "data": "s_type"},
 			{ "data": "_id",render:function(val,a,row){
 				return  "<a href='#' onclick='del(\""+val+"\")'><i class='fa fa-fw fa-trash text-red'></i></a>"
 				//"<a href='#' onclick='edit(\""+val+"\",\""+row["name"]+"\",\""+row["content"]+"\")'><i class='fa fa-fw fa-edit text-yellow'></i></a> &nbsp;"+
@@ -182,13 +182,4 @@ function del(_id){
 		})
 	});
 }
-
-//function searchOneTag(tagname,version,type){
-//	$.ajax({
-//			url:"/admin/onetag/searchOneTag",
-//			type:"get",
-//			data:{"tagname":tagname,"version":version,"type":type},
-//		})
-//}
- 
 </script>