fengweiqiang 5 lat temu
rodzic
commit
83c84fc533

+ 40 - 16
src/jy/admin/rule.go

@@ -62,9 +62,9 @@ func init() {
 		_id, _ := c.GetPostForm("_id")
 		//b := Mgo.Del("rule_logic", `{"_id":"`+_id+`"}`)
 		b := Mgo.UpdateById("rule_logic", _id, `{"$set":{"delete":true}}`)
-		go DelLogicPre(_id)
-		go DelLogicCore(_id)
-		go DelLogicBack(_id)
+		go DelLogicPre(_id,false)
+		go DelLogicCore(_id,false)
+		go DelLogicBack(_id,false)
 		c.JSON(200, gin.H{"rep": b})
 	})
 	Admin.POST("/rulelogic/use", RuleLogicUse)
@@ -481,7 +481,7 @@ func DelVersionInfo(vid string) { //刪除属性配置
 	vInfo, _ := Mgo.Find("versioninfo", `{"vid":"`+vid+`","delete":false}`, nil, `{"_id":1}`, false, -1, -1)
 	Mgo.Update("versioninfo", `{"vid":"`+vid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
 	for _, v := range *vInfo {
-		DelLogic(vid, qu.BsonIdToSId((v)["_id"]))
+		DelLogic(vid, qu.BsonIdToSId((v)["_id"]), false)
 	}
 }
 
@@ -493,13 +493,19 @@ func DelPkgInfo(vid string) { //刪除分包配置
 	}
 }
 
-func DelLogic(vid, pid string) { //删除逻辑
-	logic, _ := Mgo.Find("rule_logic", `{"vid":"`+vid+`","pid":"`+pid+`","delete":false}`, nil, `{"_id":1}`, false, -1, -1)
-	Mgo.Update("rule_logic", `{"vid":"`+vid+`","pid":"`+pid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
+func DelLogic(vid, pid string, isSite bool) { //删除逻辑
+	var rule_logic string
+	if isSite {
+		rule_logic = "site_rule_logic"
+	} else {
+		rule_logic = "rule_logic"
+	}
+	logic, _ := Mgo.Find(rule_logic, `{"vid":"`+vid+`","pid":"`+pid+`","delete":false}`, nil, `{"_id":1}`, false, -1, -1)
+	Mgo.Update(rule_logic, `{"vid":"`+vid+`","pid":"`+pid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
 	for _, l := range *logic {
-		DelLogicPre(qu.BsonIdToSId(l["_id"]))
-		DelLogicCore(qu.BsonIdToSId(l["_id"]))
-		DelLogicBack(qu.BsonIdToSId(l["_id"]))
+		DelLogicPre(qu.BsonIdToSId(l["_id"]), isSite)
+		DelLogicCore(qu.BsonIdToSId(l["_id"]), isSite)
+		DelLogicBack(qu.BsonIdToSId(l["_id"]), isSite)
 	}
 }
 
@@ -511,14 +517,32 @@ func DelPkgLogic(vid, pid string) { //删除分包逻辑
 	}
 }
 
-func DelLogicPre(sid string) { //删除属性配置中的前置规则
-	Mgo.Update("rule_logicpre", `{"sid":"`+sid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
+func DelLogicPre(sid string, isSite bool) { //删除属性配置中的前置规则
+	var rule_logicpre string
+	if isSite {
+		rule_logicpre = "site_rule_logicpre"
+	} else {
+		rule_logicpre = "rule_logicpre"
+	}
+	Mgo.Update(rule_logicpre, `{"sid":"`+sid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
 }
-func DelLogicCore(sid string) { //删除属性配置中的抽取规则
-	Mgo.Update("rule_logicore", `{"sid":"`+sid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
+func DelLogicCore(sid string, isSite bool) { //删除属性配置中的抽取规则
+	var rule_logicore string
+	if isSite {
+		rule_logicore = "site_rule_logicore"
+	} else {
+		rule_logicore = "rule_logicore"
+	}
+	Mgo.Update(rule_logicore, `{"sid":"`+sid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
 }
-func DelLogicBack(sid string) { //删除属性配置中的后置规则
-	Mgo.Update("rule_logicback", `{"sid":"`+sid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
+func DelLogicBack(sid string, isSite bool) { //删除属性配置中的后置规则
+	var rule_logicback string
+	if isSite {
+		rule_logicback = "site_rule_logicback"
+	} else {
+		rule_logicback = "rule_logicback"
+	}
+	Mgo.Update(rule_logicback, `{"sid":"`+sid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
 }
 func DelPkgLogicBack(sid string) { //删除分包属性配置中的后置规则
 	Mgo.Update("pkg_logicback", `{"sid":"`+sid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)

+ 113 - 11
src/jy/admin/site_management.go

@@ -2,30 +2,33 @@
 package admin
 
 import (
+	"github.com/gin-contrib/sessions"
 	"github.com/gin-gonic/gin"
 	"gopkg.in/mgo.v2/bson"
 	. "jy/mongodbutil"
 	"net/http"
 	"net/url"
+	"qfw/util"
 	"strings"
+	"time"
 )
 
 func init() {
 	Admin.GET("/site_management", func(c *gin.Context) {
-		site_vid, _ := c.GetQuery("site_vid")
+		vid, _ := c.GetQuery("vid")
 		c.HTML(
 			http.StatusOK, "site_management.html",
-			gin.H{"site_vid": site_vid},
+			gin.H{"vid": vid},
 		)
 	})
 	//初始化版本站点列表
 	Admin.POST("/site_management/dataForVid", func(c *gin.Context) {
-		site_vid, _ := c.GetQuery("site_vid")
-		if site_vid == "" {
+		vid, _ := c.GetQuery("vid")
+		if vid == "" {
 			data, _ := Mgo.Find("site_management", nil, `{"_id":-1}`, nil, false, -1, -1)
 			c.JSON(200, gin.H{"data": data})
 		} else {
-			data, _ := Mgo.Find("site_management", bson.M{"site_vid": site_vid}, `{"_id":-1}`, nil, false, -1, -1)
+			data, _ := Mgo.Find("site_management", bson.M{"vid": vid}, `{"_id":-1}`, nil, false, -1, -1)
 			c.JSON(200, gin.H{"data": data})
 		}
 	}) //版本站点列表
@@ -62,7 +65,7 @@ func init() {
 				return
 			}
 			Mgo.Save("site_management", data)
-			c.JSON(200, gin.H{"rep": true, "site_vid": data["site_vid"]})
+			c.JSON(200, gin.H{"rep": true, "vid": data["vid"]})
 		}
 	})
 	//站点信息删除
@@ -82,14 +85,113 @@ func init() {
 		b := Mgo.UpdateById("site_management", _id, `{"$set":{"isuse":`+isuse+`}}`)
 		c.JSON(200, gin.H{"rep": b})
 	})
-
+	//属性
 	Admin.GET("/site_management/info", func(c *gin.Context) {
-		site_id := c.Query("site_id")
-		p_id := c.Query("p_id")
-		v, _ := Mgo.Find("site_version", `{"site_id"":"`+site_id+`","p_id":"`+p_id+`"}`, `{"_id":-1}`, `{"version":1}`, false, -1, -1)
+		vid := c.Query("vid")
+		pid := c.Query("pid")
 		c.HTML(
 			http.StatusOK, "site_versioninfo.html",
-			gin.H{"site_id": site_id, "p_id":p_id,"versions": v},
+			gin.H{"vid": vid, "pid":pid},
 		)
 	})
+	//属性配置
+	Admin.POST("/site_management/infodata", func(c *gin.Context) {
+		vid := c.PostForm("vid")
+		pid := c.PostForm("pid")
+		list, _ := Mgo.Find("site_versioninfo", `{"vid":"`+vid+`","pid":"`+pid+`","delete":false}`, `{"_id":-1}`, nil, false, -1, -1)
+		c.JSON(200, gin.H{"data": list, "vid": vid,"pid":pid})
+	})
+	//属性保存
+	Admin.POST("/site_management/infosave", func(c *gin.Context) {
+		_id, _ := c.GetPostForm("_id")
+		data := GetPostForm(c)
+		if _id != "" {
+			Mgo.UpdateById("site_versioninfo", _id, map[string]interface{}{"$set": data})
+			c.JSON(200, gin.H{"rep": true})
+		} else {
+			s_field, _ := c.GetPostForm("s_field")
+			vid, _ := c.GetPostForm("vid")
+			tmp, _ := Mgo.FindOne("site_versioninfo", `{"s_field":"`+s_field+`","vid":"`+vid+`","delete":false}`)
+			if len(*tmp) > 0 {
+				c.JSON(200, gin.H{"rep": false})
+			} else {
+				data["l_createtime"] = time.Now().Unix()
+				data["s_username"] = sessions.Default(c).Get("username")
+				data["l_lasttime"] = time.Now().Unix()
+				data["delete"] = false
+				pid := Mgo.Save("site_versioninfo", data)
+				fromvid, _ := data["s_pversionid"].(string)
+				if fromvid != "" {
+					copyFieldRules(vid, pid, s_field, fromvid, sessions.Default(c).Get("username").(string),true)
+				}
+				c.JSON(200, gin.H{"rep": true})
+			}
+		}
+	})
+	//属性use按钮
+	Admin.POST("/site_management/infouse", func(c *gin.Context) {
+		_id, _ := c.GetPostForm("_id")
+		isuse, _ := c.GetPostForm("isuse")
+		b := Mgo.UpdateById("site_versioninfo", _id, `{"$set":{"isuse":`+isuse+`}}`)
+		c.JSON(200, gin.H{"rep": b})
+	})
+	//属性删除按钮
+	Admin.POST("/site_management/infodel", func(c *gin.Context) {
+		_id, _ := c.GetPostForm("_id")
+		b := Mgo.UpdateById("site_versioninfo", _id, `{"$set":{"delete":true}}`)
+		v, _ := Mgo.FindById("site_versioninfo", _id, `{"vid":1}`)
+		go DelLogic(util.ObjToString((*v)["vid"]), _id,true)
+		//b := Mgo.Del("site_versioninfo", `{"_id":"`+_id+`"}`)
+		c.JSON(200, gin.H{"rep": b})
+	})
+
+	//逻辑页面
+	Admin.GET("/site_management/rulelogic", func(c *gin.Context) {
+		vid := c.Query("vid")
+		p_pid := c.Query("p_pid")
+		pid := c.Query("pid")
+		c.HTML(200, "site_rule_logiclist.html", gin.H{"vid": vid, "pid": pid,"p_pid":p_pid})
+	})
+	//逻辑页面数据展示
+	Admin.POST("/site_management/rulelogic/data", func(c *gin.Context) {
+		vid, _ := c.GetPostForm("vid")
+		pid, _ := c.GetPostForm("pid")
+		data, _ := Mgo.Find("site_rule_logic", `{"vid":"`+vid+`","pid":"`+pid+`","delete":false}`, `{"_id":-1}`, nil, false, -1, -1)
+		c.JSON(200, gin.H{"data": data, "vid": vid, "pid": pid})
+	})
+	//逻辑页面数据保存
+	Admin.POST("/site_management/rulelogic/save", func(c *gin.Context) {
+		data := GetPostForm(c)
+		_id, _ := c.GetPostForm("_id")
+		b := false
+		if _id == "" {
+			data["l_createtime"] = time.Now().Unix()
+			data["s_username"] = sessions.Default(c).Get("username")
+			data["delete"] = false
+			b = Mgo.Save("site_rule_logic", data) != ""
+		} else {
+			data["l_lasttime"] = time.Now().Unix()
+			b = Mgo.Update("site_rule_logic", `{"_id":"`+_id+`"}`, map[string]interface{}{
+				"$set": data,
+			}, true, false)
+		}
+		c.JSON(200, gin.H{"rep": b})
+	})
+	//逻辑页面删除按钮
+	Admin.POST("/site_management/rulelogic/del", func(c *gin.Context) {
+		_id, _ := c.GetPostForm("_id")
+		//b := Mgo.Del("rule_logic", `{"_id":"`+_id+`"}`)
+		b := Mgo.UpdateById("site_rule_logic", _id, `{"$set":{"delete":true}}`)
+		go DelLogicPre(_id,true)
+		go DelLogicCore(_id,true)
+		go DelLogicBack(_id,true)
+		c.JSON(200, gin.H{"rep": b})
+	})
+
+	Admin.POST("/site_management/rulelogic/use", func(c *gin.Context) {
+		_id, _ := c.GetPostForm("_id")
+		isuse, _ := c.GetPostForm("isuse")
+		b := Mgo.UpdateById("site_rule_logic", _id, `{"$set":{"isuse":`+isuse+`}}`)
+		c.JSON(200, gin.H{"rep": b})
+	})
 }

+ 27 - 13
src/jy/admin/version.go

@@ -79,7 +79,7 @@ func init() {
 						pid := Mgo.Save("versioninfo", v)
 						s_field := qu.ObjToString(v["s_field"])
 						//克隆属性配置
-						copyFieldRules(vid, pid, s_field, s_pversionid, s_username)
+						copyFieldRules(vid, pid, s_field, s_pversionid, s_username,false)
 					}
 					//克隆分包属性
 					list2, _ := Mgo.Find("pkg_info", `{"vid":"`+s_pversionid+`","delete":false}`, nil, nil, false, -1, -1)
@@ -182,7 +182,7 @@ func init() {
 				pid := Mgo.Save("versioninfo", data)
 				fromvid, _ := data["s_pversionid"].(string)
 				if fromvid != "" {
-					copyFieldRules(vid, pid, s_field, fromvid, sessions.Default(c).Get("username").(string))
+					copyFieldRules(vid, pid, s_field, fromvid, sessions.Default(c).Get("username").(string),false)
 				}
 				c.JSON(200, gin.H{"rep": true})
 			}
@@ -198,7 +198,7 @@ func init() {
 		_id, _ := c.GetPostForm("_id")
 		b := Mgo.UpdateById("versioninfo", _id, `{"$set":{"delete":true}}`)
 		v, _ := Mgo.FindById("versioninfo", _id, `{"vid":1}`)
-		go DelLogic(qu.ObjToString((*v)["vid"]), _id)
+		go DelLogic(qu.ObjToString((*v)["vid"]), _id,false)
 		//b := Mgo.Del("versioninfo", `{"_id":"`+_id+`"}`)
 		c.JSON(200, gin.H{"rep": b})
 	})
@@ -583,11 +583,25 @@ func copyPkgRules(vid, pid, s_field, oldvid, s_username string) {
 }
 
 //克隆版本Field
-func copyFieldRules(vid, pid, s_field, oldvid, s_username string) {
-	tmp, _ := Mgo.FindOne("versioninfo", `{"vid":"`+oldvid+`","s_field":"`+s_field+`","delete":false}`)
+func copyFieldRules(vid, pid, s_field, oldvid, s_username string,isSite bool) {
+	var versioninfo,rule_logic,rule_logicpre,rule_logicore,rule_logicback string
+	if isSite{
+		versioninfo = "site_versioninfo"
+		rule_logic = "site_rule_logic"
+		rule_logicpre = "site_rule_logicpre"
+		rule_logicore = "site_rule_logicore"
+		rule_logicback = "site_rule_logicback"
+	}else {
+		versioninfo = "versioninfo"
+		rule_logic = "rule_logic"
+		rule_logicpre = "rule_logicpre"
+		rule_logicore = "rule_logicore"
+		rule_logicback = "rule_logicback"
+	}
+	tmp, _ := Mgo.FindOne(versioninfo, `{"vid":"`+oldvid+`","s_field":"`+s_field+`","delete":false}`)
 	oldpid := qu.BsonIdToSId((*tmp)["_id"])
 	//克隆逻辑列表
-	logicList, _ := Mgo.Find("rule_logic", `{"vid":"`+oldvid+`","pid":"`+oldpid+`","delete":false}`, `{"_id":1}`, nil, false, -1, -1)
+	logicList, _ := Mgo.Find(rule_logic, `{"vid":"`+oldvid+`","pid":"`+oldpid+`","delete":false}`, `{"_id":1}`, nil, false, -1, -1)
 	for _, logic := range *logicList {
 		if len(logic) > 0 {
 			oldsid := qu.BsonIdToSId(logic["_id"])
@@ -597,9 +611,9 @@ func copyFieldRules(vid, pid, s_field, oldvid, s_username string) {
 			logic["l_createtime"] = time.Now().Unix()
 			logic["l_lasttime"] = time.Now().Unix()
 			logic["s_username"] = s_username
-			sid := Mgo.Save("rule_logic", logic)
+			sid := Mgo.Save(rule_logic, logic)
 			//克隆前置规则
-			plist, _ := Mgo.Find("rule_logicpre", `{"sid":"`+oldsid+`","delete":false}`, nil, nil, false, -1, -1)
+			plist, _ := Mgo.Find(rule_logicpre, `{"sid":"`+oldsid+`","delete":false}`, nil, nil, false, -1, -1)
 			for _, v := range *plist {
 				delete(v, "_id")
 				v["vid"] = vid
@@ -609,10 +623,10 @@ func copyFieldRules(vid, pid, s_field, oldvid, s_username string) {
 				v["s_username"] = s_username
 				v["l_createtime"] = time.Now().Unix()
 				v["l_lasttime"] = time.Now().Unix()
-				Mgo.Save("rule_logicpre", v)
+				Mgo.Save(rule_logicpre, v)
 			}
 			//克隆抽取规则
-			elist, _ := Mgo.Find("rule_logicore", `{"sid":"`+oldsid+`","delete":false}`, nil, nil, false, -1, -1)
+			elist, _ := Mgo.Find(rule_logicore, `{"sid":"`+oldsid+`","delete":false}`, nil, nil, false, -1, -1)
 			for _, v := range *elist {
 				delete(v, "_id")
 				v["vid"] = vid
@@ -622,10 +636,10 @@ func copyFieldRules(vid, pid, s_field, oldvid, s_username string) {
 				v["s_username"] = s_username
 				v["l_createtime"] = time.Now().Unix()
 				v["l_lasttime"] = time.Now().Unix()
-				Mgo.Save("rule_logicore", v)
+				Mgo.Save(rule_logicore, v)
 			}
 			//克隆过滤规则
-			blist, _ := Mgo.Find("rule_logicback", `{"sid":"`+oldsid+`","delete":false}`, nil, nil, false, -1, -1)
+			blist, _ := Mgo.Find(rule_logicback, `{"sid":"`+oldsid+`","delete":false}`, nil, nil, false, -1, -1)
 			for _, v := range *blist {
 				delete(v, "_id")
 				v["vid"] = vid
@@ -635,7 +649,7 @@ func copyFieldRules(vid, pid, s_field, oldvid, s_username string) {
 				v["s_username"] = s_username
 				v["l_createtime"] = time.Now().Unix()
 				v["l_lasttime"] = time.Now().Unix()
-				Mgo.Save("rule_logicback", v)
+				Mgo.Save(rule_logicback, v)
 			}
 		}
 	}

+ 3 - 3
src/web/templates/admin/rule_logiclist.html

@@ -79,9 +79,9 @@ $(function () {
 			}},
 			{"data":"_id","width":"25%",render:function(val,a,row){
 				tmp = '<div class="btn-group">'+
-					'<a class="btn btn-sm btn-primary" href="/admin/logicpre?vid='+{{.vid}}+'&pid='+{{.pid}}+'&sid='+row._id+'">前置规则</a>'+
-					'<a class="btn btn-sm btn-success" href="/admin/logicore?vid='+{{.vid}}+'&pid='+{{.pid}}+'&sid='+row._id+'">抽取规则</a>'+
-					'<a class="btn btn-sm btn-info" href="/admin/logicback?vid='+{{.vid}}+'&pid='+{{.pid}}+'&sid='+row._id+'">后置规则</a>'+
+					'<a class="btn btn-sm btn-primary" href="/admin/logicpre?vid={{.vid}}&pid={{.pid}}&sid='+row._id+'">前置规则</a>'+
+					'<a class="btn btn-sm btn-success" href="/admin/logicore?vid={{.vid}}&pid={{.pid}}&sid='+row._id+'">抽取规则</a>'+
+					'<a class="btn btn-sm btn-info" href="/admin/logicback?vid={{.vid}}&pid={{.pid}}&sid='+row._id+'">后置规则</a>'+
 					'</div>';
 				return  tmp
 			}},

+ 18 - 18
src/web/templates/admin/site_management.html

@@ -22,7 +22,7 @@
         </h1>
         <ol class="breadcrumb">
             <li><a href="/admin/version"><i class="fa fa-dashboard"></i>抽取版本</a></li>
-            <li class="active"><a href="/admin/site_management?site_vid={{.site_vid}}">站点列表</a></li>
+            <li class="active"><a href="/admin/site_management?vid={{.vid}}">站点列表</a></li>
         </ol>
     </section>
     <!-- Main content -->
@@ -64,7 +64,7 @@
                     <h4 class="modal-title" id="version_title">新增站点</h4>
                 </div>
                 <div class="modal-body">
-                    <input name="name" id="site_vid" type="hidden" value={{.site_vid}}>
+                    <input name="name" id="vid" type="hidden" value={{.vid}}>
                     <div class="form-group">
                         <label for="code" class="col-sm-2 control-label myred">站点名称:</label>
                         <div class="col-sm-10">
@@ -108,7 +108,7 @@
                 </div>
             </div>
             <!-- /.modal-content -->
-            <input type="hidden" id="site_id" value="">
+            <input type="hidden" id="_id" value="">
         </form>
     </div>
     <!-- /.modal-dialog -->
@@ -119,7 +119,7 @@
 
 <script>
     menuActive("version")
-    var site_vid = $("#site_vid").val();//版本id
+    var vid = $("#vid").val();//版本id
     $(function () {
         ttable = $('#dataTable').DataTable({
             "paging": false,
@@ -129,7 +129,7 @@
             "info": true,
             "autoWidth": false,
             "ajax": {
-                "url": "/admin/site_management/dataForVid?site_vid=" + site_vid,
+                "url": "/admin/site_management/dataForVid?vid=" + vid,
                 "type": "post",
                 "data": {}
             },
@@ -159,10 +159,10 @@
                 {
                     "data": "_id", render: function (val, a, row) {
                         tmp = '<div class="btn-group">' +
-                            '<a class="btn btn-sm btn-success" href="/admin/site_management/info?site_id=' + row.site_vid + '&p_id='+row._id+'" >属性</a>' +
-                            '<a class="btn btn-sm btn-info" href="/admin/site_management/ruleback?version=' + row.site_vid + '&p_id='+row._id+'">后置规则</a>' +
-                            '<a class="btn btn-sm btn-warning" href="/admin/site_management/tag?version=' + row.site_vid + '&p_id='+row._id+'">标签库</a>' +
-                            '<a class="btn btn-sm btn-danger" href="/admin/site_management/clear?version=' + row.site_vid + '&p_id='+row._id+'">函数清理</a>' +
+                            '<a class="btn btn-sm btn-success" href="/admin/site_management/info?vid=' + row.vid + '&pid='+row._id+'" >属性</a>' +
+                            '<a class="btn btn-sm btn-info" href="/admin/site_management/ruleback?version=' + row.vid + '&pid='+row._id+'">后置规则</a>' +
+                            '<a class="btn btn-sm btn-warning" href="/admin/site_management/tag?version=' + row.vid + '&pid='+row._id+'">标签库</a>' +
+                            '<a class="btn btn-sm btn-danger" href="/admin/site_management/clear?version=' + row.vid + '&pid='+row._id+'">函数清理</a>' +
                             '</div>';
                         return tmp
                     }
@@ -186,7 +186,7 @@
     function createOneVersion() {
         _id = "";
         $("#version_title").html("新增站点");
-        $("#site_id").val("");
+        $("#_id").val("");
         $("#site_name").val("");
         $("#site_descript").val("");
         $("#site_href").val("");
@@ -196,8 +196,8 @@
 
     //保存
     function save() {
-        var _id = $("#site_id").val();//版本id
-        var site_vid = $("#site_vid").val();//版本id
+        var _id = $("#_id").val();//版本id
+        var vid = $("#vid").val();//版本id
         var site_name = $("#site_name").val();//站点名称
         var site_descript = $("#site_descript").val();//站点描述
         var site_href = $("#site_href").val()//站点网址
@@ -214,7 +214,7 @@
             "site_descript": site_descript,
             "site_href": site_href,
             "site_script": site_script,
-            "site_vid": site_vid,
+            "vid": vid,
             "isuse":isuse
         })
 */
@@ -228,12 +228,12 @@
                 "site_descript": site_descript,
                 "site_href": site_href,
                 "site_script": site_script,
-                "site_vid": site_vid,
+                "vid": vid,
                 "isuse":isuse
             },
             success: function (r) {
                 if (r.rep) {
-                    window.location.href = "/admin/site_management?site_vid=" + site_vid
+                    window.location.href = "/admin/site_management?vid=" + vid
                 } else {
                     showTip("已存在!", 1000)
                 }
@@ -255,7 +255,7 @@
                 data:{"_id":_id,"isuse":isuse},
                 success:function(r){
                     if(r.rep){
-                        window.location.href = "/admin/site_management?site_vid=" + site_vid
+                        window.location.href = "/admin/site_management?vid=" + vid
                     }else{
                         showTip("启用失败", 1000, function() {});
                     }
@@ -280,7 +280,7 @@
                 console.log(r.data.isuse)
                 if (r.rep) {
                     $("#version_title").html("修改站点");
-                    $("#site_id").val(r.data._id);
+                    $("#_id").val(r.data._id);
                     $("#site_name").val(r.data.site_name);
                     $("#site_descript").val(r.data.site_descript);
                     $("#site_href").val(r.data.site_href);
@@ -311,7 +311,7 @@
             },
             success: function (r) {
                 if (r.rep) {
-                    window.location.href = "/admin/site_management?site_vid=" + site_vid
+                    window.location.href = "/admin/site_management?vid=" + vid
                 } else {
                     showTip("删除失败", 1000, function () {
                     });

+ 201 - 0
src/web/templates/admin/site_rule_logiclist.html

@@ -0,0 +1,201 @@
+{{template "inc"}}
+<!-- Main Header -->
+{{template "header"}}
+<!-- Left side column. 权限菜单 -->
+{{template "memu"}}
+
+<!-- Content Wrapper. Contains page content -->
+<div class="content-wrapper">
+	<section class="content-header">
+		<h1>
+			<small><a class="btn btn-primary opr" opr="new">新增逻辑</a></small>
+		</h1>
+		<ol class="breadcrumb">
+			<li><a href="/admin/version"><i class="fa fa-dashboard"></i>抽取版本</a></li>
+			<li><a href="/admin/site_management?vid={{.vid}}">站点列表</a></li>
+			<li ><a href="javascript:window.history.back()"> 属性配置</a></li>
+		  	<li>抽取逻辑</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>
+		              </tr>
+		              </thead>
+		            </table>
+		        </div>
+	          <!-- /.box-body -->
+	        </div>
+        <!-- /.box -->
+		</div>
+	</div>
+  </section>
+</div>
+{{template "luares"}}
+{{template "dialog"}}
+{{template "footer"}}
+
+<script>
+menuActive("version")
+$(function () {
+	ttable=$('#dataTable').DataTable({
+		"paging"      : false,
+		"lengthChange": false,
+		"searching"   : true,
+		"ordering"    : false,
+		"info"        : true,
+		"autoWidth"   : false,
+		"ajax": {
+			"url": "/admin/site_management/rulelogic/data",
+			"type": "post",
+			"data":{"vid":{{ .vid}} ,"pid":{{ .pid}} }
+		 },
+		"language": {
+            "url": "/res/dist/js/dataTables.chinese.lang"
+        },
+		"columns": [
+			{ "data": "s_name"},
+			{ "data": "s_username"},
+			{ "data": "s_descript"},
+			{ "data": "isuse",render:function(val,a,row){
+				tmp=""
+				if(val){
+					tmp="<a href='#' title='停用' onclick='use(\""+row._id+"\",false)'><i class='fa fa-fw fa-circle text-green'></i></a>已启用"
+				}else{
+					tmp="<a href='#' title='启用' onclick='use(\""+row._id+"\",true)'><i class='fa fa-fw fa-circle text-red'></i></a>未启用"
+				}
+				return tmp
+			}},
+			{"data":"_id","width":"25%",render:function(val,a,row){
+				tmp = '<div class="btn-group">'+
+						'<a class="btn btn-sm btn-primary" href="/admin/site_management/logicpre?vid={{.vid}}&pid={{.pid}}&sid='+row._id+'">前置规则</a>'+
+						'<a class="btn btn-sm btn-success" href="/admin/site_management/logicore?vid={{.vid}}&pid={{.pid}}&sid='+row._id+'">抽取规则</a>'+
+						'<a class="btn btn-sm btn-info" href="/admin/site_management/logicback?vid={{.vid}}&pid={{.pid}}&sid='+row._id+'">后置规则</a>'+
+						'</div>';
+				return  tmp
+			}},
+			{"data":"s_version","width":"15%",render:function(val,a,row,pos){
+				return '<a class="btn btn-sm btn-primary opr" opr="edit" row="'+pos.row+'" >编辑</a>'+
+					'&nbsp;&nbsp;<a class="btn btn-sm btn-warning" onclick="del(\''+row._id+'\')">删除</a>';
+			}}
+       	]
+	});
+	ttable.on('init.dt', function () {
+		$(".opr").click(function(){
+			var n=$(this).attr("opr")
+			var htmlObj={},obj,tag=[]
+			var _tit="" 
+			switch(n){
+			case "edit":			
+				obj=ttable.row($(this).closest("tr")).data()
+			case "editlua":
+				obj=ttable.row($(this).closest("tr")).data()
+			case "new":
+				tag=[{label:"名称",s_label:"s_name",placeholder:"",must:true},
+					{label:"描述",s_label:"s_descript",type:"tpl_text"},
+					{label:"启用",s_label:"isuse",type:"tpl_list_local",list:[{"s_name":"是","_id":true},{"s_name":"否","_id":false}],default:true},
+					{label:"标题抽取",s_label:"extfrom",type:"tpl_list_local",list:[{"s_name":"是","_id":true},{"s_name":"否","_id":false}],default:false},
+					{label:"是否适用",s_label:"s_luascript",type:"tpl_text",must:true},
+					{s_label:"_id",type:"tpl_hidden"},
+					{s_label:"vid",type:"tpl_hidden"},{s_label:"pid",type:"tpl_hidden"}]
+				if(n=="edit"){
+					_tit="编辑-"+obj.s_name
+				}else{
+					_tit="新增逻辑"
+					obj={"s_luascript":"function logic(doc)\n\treturn true\nend","vid":"{{.vid}}","pid":"{{.pid}}","s_type":"0"}
+				}
+				
+				htmlObj={
+					title:_tit,
+					tag:tag,
+					lua:true,
+					bts:[
+						{label:"保存",class:"btn-primary",
+							fun:function(){
+								var obj={}
+								var bcon=true
+								$("#_con").find("input[id!=s_show],textarea").each(function(i,el){
+									var val=$(el).val();
+									if(el.id=="s_luascript"){
+										val=editor_1.getValue()
+										obj[el.id]=val
+									}else{
+										obj[el.id]=$(el).val()
+									}
+									if(el.id!="_id"&&$(el).attr("must")&&!val){
+										bcon=false
+										return false
+									}
+								})
+								if (bcon){
+									$.post("/admin/site_management/rulelogic/save",obj,function(data){
+										if(data&&data.rep){
+											window.location.href="/admin/site_management/rulelogic?vid={{.vid}}&pid={{.pid}}"
+										}else{
+											showTip(data.msg,1000)
+										}
+									},'json')
+								}else{
+									alert("红色标签的表单不能为空!")
+								}
+							}
+						}
+					]
+				}
+			OpenDialog(htmlObj,obj)
+			break;
+			}
+		});
+	})
+})
+function del(_id){
+	showConfirm("确定删除?", function() {
+		$.ajax({
+			url:"/admin/site_management/rulelogic/del",
+			type:"post",
+			data:{"_id":_id},
+			success:function(r){
+				if(r.rep){				
+					window.location.href="/admin/site_management/rulelogic?vid={{.vid}}&pid={{.pid}}";
+				}else{
+					showTip("删除失败", 1000);
+				}
+			}
+		})
+	});
+}
+function use(_id,utype){
+	smg=""
+	if(utype){
+		smg="确定启用?"
+	}else{
+		smg="确定停用?"
+	}
+	showConfirm(smg, function() {
+		$.ajax({
+			url:"/admin/site_management/rulelogic/use",
+			type:"post",
+			data:{"_id":_id,"isuse":utype},
+			success:function(r){
+				if(r.rep){				
+					window.location.href="/admin/site_management/rulelogic?vid={{.vid}}&pid={{.pid}}"
+				}else{
+					showTip("启用失败", 1000, function() {});
+				}
+			}
+		})
+	});
+}
+</script>

+ 13 - 12
src/web/templates/admin/site_versioninfo.html

@@ -12,8 +12,8 @@
 		</h1>
 		<ol class="breadcrumb">
 			<li><a href="/admin/version"><i class="fa fa-dashboard"></i>抽取版本</a></li>
-			<li><a href="/admin/site_management?site_vid={{.site_id}}"><i class="fa fa-dashboard"></i>站点列表</a></li>
-		  <li class="active"><a href="/admin/site_management/info?sid={{.p_id}}">属性配置</a></li>
+			<li><a href="/admin/site_management?vid={{.vid}}">站点列表</a></li>
+		  	<li><a href="/admin/site_management/info?vid={{.vid}}&pid={{.pid}}">属性配置</a></li>
 		</ol>
     </section>
   <!-- Main content -->
@@ -43,7 +43,7 @@
 	</div>
   </section>
 </div>
-	
+
 <!-- footer -->
 {{template "dialog"}}
 {{template "footer"}}
@@ -64,7 +64,7 @@ $(function () {
 		"ajax": {
 			"url": "/admin/site_management/infodata",
 			"type": "post",
-			"data":{"vid":{{ .vid}} }
+			"data":{"pid":{{ .pid}},"vid":{{.vid}} }
 		 },
 		"columns": [
 			{ "data": "s_field"},
@@ -87,7 +87,7 @@ $(function () {
 				return tmp
 			}},
 			{"data":"_id",render:function(val,a,row){
-				return '<a class="btn btn-sm btn-success" href="/admin/rulelogic?vid={{.vid}}&pid='+val+'">配置逻辑</a>'
+				return '<a class="btn btn-sm btn-success" href="/admin/site_management/rulelogic?vid={{.vid}}&pid='+val+'">配置逻辑</a>'
 			}},
 			{"data":"_id",render:function(val,a,row){
 				return '<a class="btn btn-sm btn-primary opr" opr="edit">编辑</a>&nbsp;<a class="btn btn-sm btn-danger" href="#" onclick="del(\''+val+'\')">删除</a>'
@@ -99,8 +99,8 @@ $(function () {
 			var n=$(this).attr("opr")
 			var _tit="",htmlObj={},obj,tag=[]
 			switch(n){
-			case "edit":	
-                obj=ttable.row($(this).closest("tr")).data()		
+			case "edit":
+                obj=ttable.row($(this).closest("tr")).data()
 			case "new":
                 tag=[
 						{label:"属性名称",s_label:"s_field",type:"tpl_list_local",url:"/admin/getfields",must:true},
@@ -135,11 +135,12 @@ $(function () {
 										return false
 									}
 								})
-								if (bcon){	
-                                    //console.log(obj)							
+								if (bcon){
+									obj["pid"]={{.pid}}
+									//console.log(obj)
 									$.post("/admin/site_management/infosave",obj,function(data){
 										if(data&&data.rep){
-											window.location.href="/admin/site_management/info?vid={{.vid}}"
+											window.location.href="/admin/site_management/info?vid={{.vid}}&pid={{.pid}}"
 										}else{
 											showTip("已存在!",1000)
 										}
@@ -170,8 +171,8 @@ function use(_id,isuse){
 			type:"post",
 			data:{"_id":_id,"isuse":isuse},
 			success:function(r){
-				if(r.rep){				
-					window.location.href="/admin/site_management/info?vid={{.vid}}"
+				if(r.rep){
+					window.location.href="/admin/site_management/info?vid={{.vid}}&pid={{.pid}}"
 				}else{
 					showTip("启用失败", 1000, function() {});
 				}

+ 1 - 1
src/web/templates/admin/version.html

@@ -178,7 +178,7 @@ $(function () {
 						'<a class="btn btn-sm btn-warning" href="/admin/version/blockinfo?vid='+val+'" >分块</a>'+
 						'<a class="btn btn-sm btn-info" href="/admin/version/pkginfo?vid='+val+'" >分包</a>'+
 						/*'<a class="btn btn-sm btn-primary opr" opr="edit">编&nbsp;&nbsp;辑1</a>'+*/
-                        '<a class="btn btn-sm btn-default" href="/admin/site_management?site_vid='+val+'" >站点管理</a>'+
+                        '<a class="btn btn-sm btn-default" href="/admin/site_management?vid='+val+'" >站点管理</a>'+
 						"<a class=\"btn btn-sm btn-primary opr\" href='#' onclick=\"edit('"+val+"')\">编&nbsp;&nbsp;辑</a> &nbsp;"+
 						'<a class="btn btn-sm btn-danger" href="#" onclick="del(\''+val+'\',\''+row["version"]+'\')">删&nbsp;&nbsp;除</a>'
 					'</div>';