Explorar el Código

抽取规则界面

zhangjinkun hace 7 años
padre
commit
0dca94b293

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

@@ -2,6 +2,7 @@ package admin
 
 import (
 	"html/template"
+	. "jy/mongodbutil"
 	. "jy/router"
 	"strconv"
 
@@ -22,6 +23,20 @@ func init() {
 		},
 	})
 	Router.LoadHTMLGlob("web/templates/admin/*")
+	//获取字段列表
+	Admin.POST("/getfields", func(c *gin.Context) {
+		list, b := Mgo.Find("fields", `{}`, `{"_id":-1}`, nil, false, -1, -1)
+		if b && list != nil {
+			for _, v := range *list {
+				v["_id"] = v["s_field"]
+				v["s_name"] = v["s_name"]
+			}
+		}
+		data := []map[string]interface{}{}
+		data = append(data, 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{} {

+ 116 - 8
src/jy/admin/rule.go

@@ -5,7 +5,6 @@ import (
 	"fmt"
 	. "jy/mongodbutil"
 	"jy/util"
-	"log"
 	"regexp"
 	"strings"
 	"time"
@@ -17,10 +16,14 @@ import (
 var Date_Short_Layout = "2006-01-02"
 
 const (
-	FE = "FE" //前置正则
-	FL = "FL" //前置脚本
-	BE = "BE" //后置正则
-	BL = "BL" //后置脚本
+	FE  = "FE"  //前置正则
+	FL  = "FL"  //前置脚本
+	BE  = "BE"  //后置正则
+	BL  = "BL"  //后置脚本
+	EFE = "EFE" //抽取前置正则
+	EFL = "EFL" //抽取前置脚本
+	EBE = "EBE" //抽取后置正则
+	EBL = "EBL" //抽取后置脚本
 )
 
 func init() {
@@ -52,6 +55,23 @@ func init() {
 		c.HTML(200, "rule_logiclist.html", gin.H{"version": version})
 	})
 	Admin.POST("/rulelogic/data", RuleLogicData)
+	Admin.POST("/rulelogic/save", RuleLogicSave)
+	Admin.POST("/rulelogic/use", RuleLogicUse)
+	Admin.GET("/logicpre", func(c *gin.Context) {
+		version := c.Query("version")
+		sid := c.Query("sid")
+		c.HTML(200, "rule_logicprelist.html", gin.H{"version": version, "sid": sid})
+	})
+	Admin.POST("/logicpre/data", RuleLogicPreData)
+	Admin.POST("/logicpre/save", RuleLogicPreSave)
+	Admin.POST("/logicpre/del", RuleLogicPreDel)
+	Admin.GET("/logicback", func(c *gin.Context) {
+		version := c.Query("version")
+		sid := c.Query("sid")
+		c.HTML(200, "rule_logicbacklist.html", gin.H{"version": version, "sid": sid})
+	})
+	Admin.POST("/logicback/data", RuleLogicBackData)
+	Admin.POST("/logicback/save", RuleLogicBackSave)
 
 	//ruletag
 	Admin.GET("/ruletag", func(c *gin.Context) {
@@ -80,11 +100,10 @@ func RulePreSave(c *gin.Context) {
 		code := ""
 		if s_type == "0" { //前置正则
 			code = util.GetSyncIndex(FE)
-		} else { //前置lua脚本
+		} else { //前置脚本
 			code = util.GetSyncIndex(FL)
 		}
 		data["s_code"] = code
-		log.Println(code)
 		b = Mgo.Save("rule_pre", data) != ""
 	} else {
 		data["l_lasttime"] = time.Now().Unix()
@@ -139,7 +158,6 @@ func RuleBackSave(c *gin.Context) {
 			code = util.GetSyncIndex(BL)
 		}
 		data["s_code"] = code
-		log.Println(code)
 		b = Mgo.Save("rule_back", data) != ""
 	} else {
 		data["l_lasttime"] = time.Now().Unix()
@@ -179,6 +197,96 @@ func RuleLogicData(c *gin.Context) {
 	data, _ := Mgo.Find("rule_logic", `{"s_version":"`+version+`"}`, `{"_id":-1}`, nil, false, -1, -1)
 	c.JSON(200, gin.H{"data": data, "version": version})
 }
+func RuleLogicSave(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")
+		b = Mgo.Save("rule_logic", data) != ""
+	} else {
+		data["l_lasttime"] = time.Now().Unix()
+		b = Mgo.Update("rule_logic", `{"_id":"`+_id+`"}`, map[string]interface{}{
+			"$set": data,
+		}, true, false)
+	}
+	c.JSON(200, gin.H{"rep": b})
+}
+func RuleLogicUse(c *gin.Context) {
+	_id, _ := c.GetPostForm("_id")
+	isuse, _ := c.GetPostForm("isuse")
+	b := Mgo.UpdateById("rule_logic", _id, `{"$set":{"isuse":`+isuse+`}}`)
+	c.JSON(200, gin.H{"rep": b})
+}
+func RuleLogicPreData(c *gin.Context) {
+	sid, _ := c.GetPostForm("sid")
+	data, _ := Mgo.Find("rule_logicpre", `{"sid":"`+sid+`"}`, `{"_id":-1}`, nil, false, -1, -1)
+	c.JSON(200, gin.H{"data": data, "sid": sid})
+}
+func RuleLogicPreSave(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")
+		s_type := data["s_type"]
+		code := ""
+		if s_type == "0" { //抽取前置正则EFE
+			code = util.GetSyncIndex(EFE)
+		} else { //抽取前置脚本
+			code = util.GetSyncIndex(EFL)
+		}
+		data["s_code"] = code
+		b = Mgo.Save("rule_logicpre", data) != ""
+	} else {
+		data["l_lasttime"] = time.Now().Unix()
+		b = Mgo.Update("rule_logicpre", `{"_id":"`+_id+`"}`, map[string]interface{}{
+			"$set": data,
+		}, true, false)
+	}
+	c.JSON(200, gin.H{"rep": b})
+}
+func RuleLogicPreDel(c *gin.Context) {
+	_id, _ := c.GetPostForm("_id")
+	b := Mgo.Del("rule_logicpre", `{"_id":"`+_id+`"}`)
+	c.JSON(200, gin.H{"rep": b})
+}
+func RuleLogicBackData(c *gin.Context) {
+	sid, _ := c.GetPostForm("sid")
+	data, _ := Mgo.Find("rule_logicback", `{"sid":"`+sid+`"}`, `{"_id":-1}`, nil, false, -1, -1)
+	c.JSON(200, gin.H{"data": data, "sid": sid})
+}
+func RuleLogicBackSave(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")
+		s_type := data["s_type"]
+		code := ""
+		if s_type == "0" { //抽取后置正则EFE
+			code = util.GetSyncIndex(EBE)
+		} else { //抽取后置脚本
+			code = util.GetSyncIndex(EBL)
+		}
+		data["s_code"] = code
+		b = Mgo.Save("rule_logicback", data) != ""
+	} else {
+		data["l_lasttime"] = time.Now().Unix()
+		b = Mgo.Update("rule_logicback", `{"_id":"`+_id+`"}`, map[string]interface{}{
+			"$set": data,
+		}, true, false)
+	}
+	c.JSON(200, gin.H{"rep": b})
+}
+func RuleLogicBackDel(c *gin.Context) {
+	_id, _ := c.GetPostForm("_id")
+	b := Mgo.Del("rule_logicback", `{"_id":"`+_id+`"}`)
+	c.JSON(200, gin.H{"rep": b})
+}
 
 //标签库列表
 func RuleTagData(c *gin.Context) {

+ 198 - 0
src/web/templates/admin/rule_logicbacklist.html

@@ -0,0 +1,198 @@
+{{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>
+			<small><a class="btn btn-primary opr" opr="newlua">新增脚本</a></small>
+		</h1>
+		<ol class="breadcrumb">
+		  <li><a href="/admin/version"><i class="fa fa-dashboard"></i>版本管理</a></li>
+		  <li><a href="/admin/rulelogic?version={{.version}}">抽取逻辑</a></li>
+		  <li class="active"><a href="/admin/logicback?version={{.version}}&sid={{.sid}}">后置规则</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>
+		              </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/logicback/data",
+			"type": "post",
+			"data":{"sid":{{ .sid}} }
+		 },
+		"language": {
+            "url": "/res/dist/js/dataTables.chinese.lang"
+        },
+		"columns": [
+			{ "data": "s_code"},
+            { "data": "s_name"},
+			{ "data": "s_username"},
+			{ "data": "s_descript"},
+			{ "data": "s_type",render:function(val,a,row){
+				if(val=="0"){
+					return "正则"
+				}else{
+					return "lua脚本"
+				}
+			}},
+			{ "data": "_id",render:function(val,a,row,pos){
+				tmp=""
+				if(row.s_type=="0"){
+					tmp = '<div>'+
+						'<a class="btn btn-sm btn-primary opr" opr="edit" row="'+pos.row+'" >编辑</a> '+
+						'<a class="btn btn-sm btn-warning" onclick="del(\''+val+'\')">删除</a> '+
+						'</div>';
+				}else{
+					tmp = '<div>'+
+						'<a class="btn btn-sm btn-primary opr" opr="editlua" row="'+pos.row+'" >编辑</a> '+
+						'<a class="btn btn-sm btn-warning" onclick="del(\''+val+'\')">删除</a> '+
+						'</div>';
+				}
+				return tmp
+			}}
+       	]
+	});
+	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 "newlua":
+			case "new":
+				comtag=[{label:"名称",s_label:"s_name",placeholder:"",must:true},{label:"描述",s_label:"s_descript",type:"tpl_text"}]
+				regtag=[{label:"字段",s_label:"s_field"},{label:"正则",s_label:"s_rule",type:"tpl_text",must:true}]
+				luatag=[{label:"脚本",s_label:"s_luascript",type:"tpl_text",must:true}]
+				hiddentag=[{s_label:"_id",type:"tpl_hidden"},{s_label:"sid",type:"tpl_hidden"},{s_label:"s_type",type:"tpl_hidden"},{s_label:"s_version",type:"tpl_hidden"}]
+				islua=false
+				tag = com.pushArry(tag,comtag)
+				if(n=="edit"){
+					_tit="编辑-"+obj.s_name
+					tag = com.pushArry(tag,regtag)
+					tag = com.pushArry(tag,hiddentag)
+				}else if(n=="editlua"){
+					_tit="编辑-"+obj.s_name
+					islua=true
+					tag = com.pushArry(tag,luatag)
+					tag = com.pushArry(tag,hiddentag)
+				}else{
+					_tit="新增规则"
+					if(n=="newlua"){
+						_tit="新增脚本"
+						obj={"sid":"{{.sid}}","s_type":"1","s_version":"{{.version}}"}
+						tag = com.pushArry(tag,luatag)
+						tag = com.pushArry(tag,hiddentag)
+						islua=true
+					}else{
+						obj={"sid":"{{.sid}}","s_type":"0","s_version":"{{.version}}"}
+						tag = com.pushArry(tag,regtag)
+						tag = com.pushArry(tag,hiddentag)
+					}
+				}
+				htmlObj={
+					title:_tit,
+					tag:tag,
+					lua:islua,
+					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/logicback/save",obj,function(data){
+										if(data&&data.rep){
+											window.location.href="/admin/logicback?version={{.version}}&sid={{.sid}}"								
+										}else{
+											showTip(data.msg,1000)
+										}
+									},'json')
+								}else{
+									alert("红色标签的表单不能为空!")
+								}
+							}
+						}
+					]
+				}
+			OpenDialog(htmlObj,obj)
+			break;
+			}
+		});
+	})
+})
+
+function del(_id){
+	showConfirm("确定删除?", function() {
+		$.ajax({
+			url:"/admin/logicback/del",
+			type:"post",
+			data:{"_id":_id},
+			success:function(r){
+				if(r.rep){				
+					ttable.ajax.reload();
+				}else{
+					showTip("删除失败", 1000);
+				}
+			}
+		})
+	});
+}
+</script>

+ 180 - 0
src/web/templates/admin/rule_logiclist.html

@@ -0,0 +1,180 @@
+{{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 class="active"><a href="/admin/rulelogic?version={{.version}}">抽取逻辑</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>
+		              </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/rulelogic/data",
+			"type": "post",
+			"data":{"version":{{ .version}} }
+		 },
+		"language": {
+            "url": "/res/dist/js/dataTables.chinese.lang"
+        },
+		"columns": [
+			{ "data": "s_name"},
+			{ "data": "s_field"},
+			{ "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/logicpre?version='+{{.version}}+'&sid='+row._id+'">前置规则</a>'+
+					//'<a class="btn btn-sm btn-success opr" opr="editlua">抽取规则</a>'+
+					'<a class="btn btn-sm btn-success" href="/admin/logic?version='+{{.version}}+'&sid='+row._id+'">抽取规则</a>'+
+					'<a class="btn btn-sm btn-info" href="/admin/logicback?version='+{{.version}}+'&sid='+row._id+'">后置规则</a>'+
+					'</div>';
+				return  tmp
+			}},
+			{"data":"s_version","width":"15%",render:function(val,a,row,pos){
+				return '<div><a class="btn btn-sm btn-primary opr" opr="edit" row="'+pos.row+'" >编辑</a></div>';
+			}}
+       	]
+	});
+	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_field",type:"tpl_list_local",url:"/admin/getfields"},
+					{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},
+					{s_label:"_id",type:"tpl_hidden"},
+					{s_label:"s_version",type:"tpl_hidden"}]
+				islua=false
+				if(n=="edit"){
+					_tit="编辑-"+obj.s_name
+				}else{
+					_tit="新增规则"
+					obj={"s_version":"{{.version}}","s_type":"0"}
+				}
+				
+				htmlObj={
+					title:_tit,
+					tag:tag,
+					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!="_id"&&$(el).attr("must")&&!val){
+										bcon=false
+										return false
+									}
+									obj[el.id]=$(el).val()
+								})
+								if (bcon){								
+									$.post("/admin/rulelogic/save",obj,function(data){
+										if(data&&data.rep){
+											window.location.href="/admin/rulelogic?version={{.version}}"								
+										}else{
+											showTip(data.msg,1000)
+										}
+									},'json')
+								}else{
+									alert("红色标签的表单不能为空!")
+								}
+							}
+						}
+					]
+				}
+			OpenDialog(htmlObj,obj)
+			break;
+			}
+		});
+	})
+})
+
+function use(_id,utype){
+	smg=""
+	if(utype){
+		smg="确定启用?"
+	}else{
+		smg="确定停用?"
+	}
+	showConfirm(smg, function() {
+		$.ajax({
+			url:"/admin/rulelogic/use",
+			type:"post",
+			data:{"_id":_id,"isuse":utype},
+			success:function(r){
+				if(r.rep){				
+					ttable.ajax.reload();
+				}else{
+					showTip("启用失败", 1000, function() {});
+				}
+			}
+		})
+	});
+}
+</script>

+ 198 - 0
src/web/templates/admin/rule_logicprelist.html

@@ -0,0 +1,198 @@
+{{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>
+			<small><a class="btn btn-primary opr" opr="newlua">新增脚本</a></small>
+		</h1>
+		<ol class="breadcrumb">
+		  <li><a href="/admin/version"><i class="fa fa-dashboard"></i>版本管理</a></li>
+		  <li><a href="/admin/rulelogic?version={{.version}}">抽取逻辑</a></li>
+		  <li class="active"><a href="/admin/logicpre?version={{.version}}&sid={{.sid}}">前置规则</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>
+		              </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/logicpre/data",
+			"type": "post",
+			"data":{"sid":{{ .sid}} }
+		 },
+		"language": {
+            "url": "/res/dist/js/dataTables.chinese.lang"
+        },
+		"columns": [
+			{ "data": "s_code"},
+            { "data": "s_name"},
+			{ "data": "s_username"},
+			{ "data": "s_descript"},
+			{ "data": "s_type",render:function(val,a,row){
+				if(val=="0"){
+					return "正则"
+				}else{
+					return "lua脚本"
+				}
+			}},
+			{ "data": "_id",render:function(val,a,row,pos){
+				tmp=""
+				if(row.s_type=="0"){
+					tmp = '<div>'+
+						'<a class="btn btn-sm btn-primary opr" opr="edit" row="'+pos.row+'" >编辑</a> '+
+						'<a class="btn btn-sm btn-warning" onclick="del(\''+val+'\')">删除</a> '+
+						'</div>';
+				}else{
+					tmp = '<div>'+
+						'<a class="btn btn-sm btn-primary opr" opr="editlua" row="'+pos.row+'" >编辑</a> '+
+						'<a class="btn btn-sm btn-warning" onclick="del(\''+val+'\')">删除</a> '+
+						'</div>';
+				}
+				return tmp
+			}}
+       	]
+	});
+	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 "newlua":
+			case "new":
+				comtag=[{label:"名称",s_label:"s_name",placeholder:"",must:true},{label:"描述",s_label:"s_descript",type:"tpl_text"}]
+				regtag=[{label:"字段",s_label:"s_field"},{label:"正则",s_label:"s_rule",type:"tpl_text",must:true}]
+				luatag=[{label:"脚本",s_label:"s_luascript",type:"tpl_text",must:true}]
+				hiddentag=[{s_label:"_id",type:"tpl_hidden"},{s_label:"sid",type:"tpl_hidden"},{s_label:"s_type",type:"tpl_hidden"},{s_label:"s_version",type:"tpl_hidden"}]
+				islua=false
+				tag = com.pushArry(tag,comtag)
+				if(n=="edit"){
+					_tit="编辑-"+obj.s_name
+					tag = com.pushArry(tag,regtag)
+					tag = com.pushArry(tag,hiddentag)
+				}else if(n=="editlua"){
+					_tit="编辑-"+obj.s_name
+					islua=true
+					tag = com.pushArry(tag,luatag)
+					tag = com.pushArry(tag,hiddentag)
+				}else{
+					_tit="新增规则"
+					if(n=="newlua"){
+						_tit="新增脚本"
+						obj={"sid":"{{.sid}}","s_type":"1","s_version":"{{.version}}"}
+						tag = com.pushArry(tag,luatag)
+						tag = com.pushArry(tag,hiddentag)
+						islua=true
+					}else{
+						obj={"sid":"{{.sid}}","s_type":"0","s_version":"{{.version}}"}
+						tag = com.pushArry(tag,regtag)
+						tag = com.pushArry(tag,hiddentag)
+					}
+				}
+				htmlObj={
+					title:_tit,
+					tag:tag,
+					lua:islua,
+					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/logicpre/save",obj,function(data){
+										if(data&&data.rep){
+											window.location.href="/admin/logicpre?version={{.version}}&sid={{.sid}}"								
+										}else{
+											showTip(data.msg,1000)
+										}
+									},'json')
+								}else{
+									alert("红色标签的表单不能为空!")
+								}
+							}
+						}
+					]
+				}
+			OpenDialog(htmlObj,obj)
+			break;
+			}
+		});
+	})
+})
+
+function del(_id){
+	showConfirm("确定删除?", function() {
+		$.ajax({
+			url:"/admin/logicpre/del",
+			type:"post",
+			data:{"_id":_id},
+			success:function(r){
+				if(r.rep){				
+					ttable.ajax.reload();
+				}else{
+					showTip("删除失败", 1000);
+				}
+			}
+		})
+	});
+}
+</script>

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

@@ -189,7 +189,7 @@ function del(_id){
 				if(r.rep){				
 					ttable.ajax.reload();
 				}else{
-					showTip("删除失败", 1000, function() {});
+					showTip("删除失败", 1000);
 				}
 			}
 		})

+ 7 - 6
src/web/templates/admin/version.html

@@ -28,7 +28,7 @@
 						<th>创建人</th>
 						<th>描述</th>
 						<th>是否启用</th>
-						<th>操作</th>
+						<th>配置规则</th>
 		              </tr>
 		              </thead>
 		            </table>
@@ -125,18 +125,19 @@ $(function () {
 			{ "data": "isuse",render:function(val,a,row){
 				tmp=""
 				if(val=="1"){
-					tmp="<a href='#' title='停用' onclick='use(\""+row._id+"\",\"0\")'><i class='fa fa-fw fa-circle text-green'></i></a>"
+					tmp="<a href='#' title='停用' onclick='use(\""+row._id+"\",\"0\")'><i class='fa fa-fw fa-circle text-green'></i></a>已启用"
 				}else{
-					tmp="<a href='#' title='启用' onclick='use(\""+row._id+"\",\"1\")'><i class='fa fa-fw fa-circle text-red'></i></a>"
+					tmp="<a href='#' title='启用' onclick='use(\""+row._id+"\",\"1\")'><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/rulepre?version='+row.version+'">前置规则</a>'+
-					'<a class="btn btn-sm btn-success" href="/admin/ruleback?version='+row.version+'">后置规则</a>'+
-					'<a class="btn btn-sm btn-info" href="/admin/rulelogic?version='+row.version+'">抽取逻辑</a>'+
-					'<a class="btn btn-sm btn-warning" href="/admin/ruletag?version='+row.version+'">标签库</a>';
+					'<a class="btn btn-sm btn-success" href="/admin/rulelogic?version='+row.version+'">抽取逻辑</a>'+
+					'<a class="btn btn-sm btn-info" href="/admin/ruleback?version='+row.version+'">后置规则</a>'+
+					'<a class="btn btn-sm btn-warning" href="/admin/ruletag?version='+row.version+'">标签库</a>'+
+					'</div>';
 				return  tmp
 			}}
        	]