فهرست منبع

标签库添加问题

unknown 6 سال پیش
والد
کامیت
c0ab802c4b
3فایلهای تغییر یافته به همراه42 افزوده شده و 23 حذف شده
  1. 22 8
      src/jy/admin/tag.go
  2. 3 2
      src/web/templates/admin/onetag.html
  3. 17 13
      src/web/templates/admin/taglist.html

+ 22 - 8
src/jy/admin/tag.go

@@ -7,6 +7,7 @@ import (
 	"time"
 
 	"github.com/gin-gonic/gin"
+	"gopkg.in/mgo.v2/bson"
 )
 
 func init() {
@@ -24,7 +25,8 @@ func init() {
 		version := c.Query("version")
 		tagname := c.Query("tagname")
 		tp := c.Query("tp")
-		c.HTML(200, "onetag.html", gin.H{"version": version, "tagname": tagname, "tp": tp})
+		parentid := c.Query("parentid")
+		c.HTML(200, "onetag.html", gin.H{"version": version, "tagname": tagname, "tp": tp, "parentid": parentid})
 	})
 	Admin.POST("/onetag/data", OneTagData)
 	Admin.POST("/onetag/create", OneTagCreate)
@@ -50,7 +52,7 @@ func TagSave(c *gin.Context) {
 	version, _ := c.GetPostForm("version")
 	username, _ := c.GetPostForm("username")
 	tp, _ := c.GetPostForm("tp")
-	data, _ := Mgo.FindOne("tag", `{"tagname":"`+tagname+`"}`)
+	data, _ := Mgo.FindOne("tag", `{"s_tagname":"`+tagname+`","s_version":"`+version+`"}`)
 	if len(*data) > 0 { //判重,防止添加name相同的标签
 		c.JSON(200, gin.H{"rep": false})
 		return
@@ -74,6 +76,13 @@ func TagSave(c *gin.Context) {
 func TagDel(c *gin.Context) {
 	_id, _ := c.GetPostForm("_id")
 	b := Mgo.Del("tag", `{"_id":"`+_id+`"}`)
+	data, _ := Mgo.Find("tagdetailinfo", `{"s_parentid":"`+_id+`"}`, `{"_id":-1}`, nil, false, -1, -1)
+	if len(*data) > 0 { //删除父标签下所有详细标签
+		for _, d := range *data {
+			cid := d["_id"].(bson.ObjectId).Hex()
+			Mgo.Del("tagdetailinfo", `{"_id":"`+cid+`"}`)
+		}
+	}
 	if b {
 		c.JSON(200, gin.H{"rep": true})
 	} else {
@@ -84,8 +93,10 @@ func TagDel(c *gin.Context) {
 //查找某个tag的信息
 func OneTagData(c *gin.Context) {
 	version, _ := c.GetPostForm("version")
-	tagname, _ := c.GetPostForm("tagname")
-	data, _ := Mgo.Find("tagdetailinfo", `{"s_version":"`+version+`","s_pratagname":"`+tagname+`"}`, `{"_id":-1}`, nil, false, -1, -1)
+	//tagname, _ := c.GetPostForm("tagname")
+	parentid, _ := c.GetPostForm("parentid")
+	//data, _ := Mgo.Find("tagdetailinfo", `{"s_version":"`+version+`","s_pratagname":"`+tagname+`","s_parentid":"`+parentid+`"}`, `{"_id":-1}`, nil, false, -1, -1)
+	data, _ := Mgo.Find("tagdetailinfo", `{"s_version":"`+version+`","s_parentid":"`+parentid+`"}`, `{"_id":-1}`, nil, false, -1, -1)
 	for _, d := range *data {
 		timeStr := time.Unix(d["l_intime"].(int64), 0).Format(Date_Short_Layout)
 		d["l_intime"] = timeStr
@@ -96,17 +107,19 @@ func OneTagData(c *gin.Context) {
 //添加详细标签
 func OneTagCreate(c *gin.Context) {
 	name, _ := c.GetPostForm("name")
-	field, _ := c.GetPostForm("field")
-	pratagname, _ := c.GetPostForm("pratagname")
-	data, _ := Mgo.FindOne("tagdetailinfo", `{"s_name":"`+name+`","s_pratagname":"`+pratagname+`"}`)
+	version, _ := c.GetPostForm("version")
+	parentid, _ := c.GetPostForm("parentid")
+	//data, _ := Mgo.FindOne("tagdetailinfo", `{"s_name":"`+name+`","s_pratagname":"`+pratagname+`","s_version":"`+version+`"}`)
+	data, _ := Mgo.FindOne("tagdetailinfo", `{"s_name":"`+name+`","s_parentid":"`+parentid+`","s_version":"`+version+`"}`)
 	if len(*data) > 0 { //判重
 		c.JSON(200, gin.H{"rep": false})
 		return
 	}
-	version, _ := c.GetPostForm("version")
 	tp, _ := c.GetPostForm("tp")
+	field, _ := c.GetPostForm("field")
 	content, _ := c.GetPostForm("content")
 	username, _ := c.GetPostForm("username")
+	pratagname, _ := c.GetPostForm("pratagname")
 	var jsondata interface{}
 	err := json.Unmarshal([]byte(content), &jsondata)
 	if err != nil { //不是json格式
@@ -123,6 +136,7 @@ func OneTagCreate(c *gin.Context) {
 		"s_type":       tp,
 		"l_intime":     time.Now().Unix(),
 		"content":      jsondata,
+		"s_parentid":   parentid,
 	}
 	b := Mgo.Save("tagdetailinfo", save)
 	if b != "" {

+ 3 - 2
src/web/templates/admin/onetag.html

@@ -133,6 +133,7 @@
 menuActive("version")
 var ttableonetag
 var tp = {{.tp}};
+var parentid = {{.parentid}}
 var pratagname = {{.tagname}};
 var version = {{ .version}};
 var username = {{index (session "user") "name" }};
@@ -151,7 +152,7 @@ $(function () {
 		"ajax": {
 			"url": "/admin/onetag/data",
 			"type": "post",
-			"data":{"version":{{ .version}},"tagname":{{.tagname}} }
+			"data":{"version":{{ .version}},"tagname":{{.tagname}} ,"parentid":{{.parentid}}}
 		 },
 		"language": {
             "url": "../res/dist/js/dataTables.chinese.lang"
@@ -305,7 +306,7 @@ function saveaddone(){
 		url:"/admin/onetag/create",
 		type:"post",
 		data:{"pratagname":pratagname,"name":namearr[0],"field":namearr[1],"version":version,"tp":tp,
-		"content":content,"username":username},
+		"content":content,"username":username,"parentid":parentid},
 		success:function(r){
 			if(r.rep){
 				$("#addone-dataform")[0].reset();

+ 17 - 13
src/web/templates/admin/taglist.html

@@ -55,9 +55,13 @@
 		    <div class="modal-body">
 		     	<div class="form-group">
 				    <label for="code" class="col-sm-2 control-label">名称:</label>
-				    <div class="col-sm-10">
-				      <input id="add-name" type="text" class="form-control" placeholder="请输名称">
-				    </div>
+				      <div class="col-sm-10" id="add-name">
+				      	<input type="radio" name="name" id="add-str" value="正则类">正则类</input>&nbsp;&nbsp;&nbsp;&nbsp;
+					  	<input type="radio" name="name" id="add-reg" value="字符串类">字符串类</input>&nbsp;&nbsp;&nbsp;&nbsp;
+					   	<input type="radio" name="name" id="add-simarea" value="城市简称">城市简称</input>&nbsp;&nbsp;&nbsp;&nbsp;
+						<input type="radio" name="name" id="add-allarea" value="城市全称">城市全称</input>
+				      </div>
+					<!--<input id="add-name" type="text" class="form-control" placeholder="请输名称">-->
 				</div>
 				<div class="form-group">
 				    <label for="code" class="col-sm-2 control-label">版本:</label>
@@ -65,14 +69,14 @@
 				      <input id="add-version" type="text" value="{{.version}}" class="form-control" disabled>
 				    </div>
 				</div>
-				<div class="form-group">
+				<!--<div class="form-group">
 				   <label for="code" class="col-sm-2 control-label">类型:</label>
 				    <div class="col-sm-10" id="add-checkbox">
 				      <input type="radio" name="tp" id="add-str" value="str">字符串</input>&nbsp;&nbsp;&nbsp;&nbsp;
 					  <input type="radio" name="tp" id="add-reg" value="reg">正则</input>&nbsp;&nbsp;&nbsp;&nbsp;
 					   <input type="radio" name="tp" id="add-area" value="area">地区</input>
 				    </div>
-				</div>
+				</div>-->
 		    </div>
 		    <div class="modal-footer">
 		        <button type="button" class="btn btn-default" data-dismiss="modal" onclick="reset()">取消</button>
@@ -112,7 +116,7 @@ $(function () {
 		"columns": [
             { "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.s_version+'&tagname='+row.s_tagname+'&tp='+row.s_type+'">'+val+'</a>';
+				return '<a href="/admin/onetag?version='+row.s_version+'&tagname='+row.s_tagname+'&tp='+row.s_type+'&parentid='+row._id+'">'+val+'</a>';
 			}},
 			{ "data": "s_version"},
 			{ "data": "s_creater"},
@@ -128,21 +132,21 @@ $(function () {
 })
 //新建保存
 function addsave(){
-	name=$("#add-name").val();
-	tp = "";
-	$("#add-checkbox input[type=radio]").each(function(){
+	name = "";
+	$("#add-name input[type=radio]").each(function(){
 		if($(this).prop("checked")){
-			tp = $(this).val();
+			name = $(this).val();
 		}
 	});
 	version=$("#add-version").val();
-	if(name=="" || tp==""){
+	if(name==""){
 		alert("表单填写不完整!");
 		return false;
 	}
-	if(tp == "str"){
+	var tp = "";
+	if(name == "字符串类"){
 		tp = "字符串";
-	}else if(tp == "reg"){
+	}else if(name == "正则类"){
 		tp = "正则";
 	}else{
 		tp = "地区";