audit_rulelist.html 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. {{template "inc"}}
  2. <!-- Main Header -->
  3. {{template "header"}}
  4. <!-- Left side column. 权限菜单 -->
  5. {{template "memu"}}
  6. <div class="content-wrapper" id="showbtn">
  7. <section class="content-header">
  8. <h1>
  9. <small><a class="btn btn-primary opr" opr="new">新增{{.cname}}规则</a></small>
  10. </h1>
  11. <ol class="breadcrumb">
  12. <li><a href="/admin/audit/recogfield"><i class="fa fa-dashboard"></i> 识别字段</a></li>
  13. <li class="active"><a href="/admin/rulemanager/getclasslist?id={{.fid}}&fname={{.cname}}">分类列表</a></li>
  14. <li class="active"><a href="/admin/rulemanager/getrulelist?id={{.cid}}&cname={{.cname}}&fid={{.fid}}">规则列表</a></li>
  15. </ol>
  16. </section>
  17. <!-- Main content -->
  18. <section class="content">
  19. <div class="row">
  20. <div class="col-xs-12">
  21. <div class="box">
  22. <div class="box-body">
  23. <table id="rulemanagerTable" class="table table-bordered table-hover">
  24. <thead>
  25. <tr>
  26. <th>名称</th>
  27. <th>时间</th>
  28. <th>创建人</th>
  29. <th>操作</th>
  30. </tr>
  31. </thead>
  32. </table>
  33. </div>
  34. <!-- /.box-body -->
  35. </div>
  36. <!-- /.box -->
  37. </div>
  38. </div>
  39. </section>
  40. </div>
  41. {{template "dialog"}}
  42. {{template "footer"}}
  43. <script>
  44. menuActive("recogfield")
  45. var cid = {{.cid}};
  46. var cname = {{.cname}};
  47. var fid = {{.fid}};
  48. $(function () {
  49. ttablerulemanager=$('#rulemanagerTable').DataTable({
  50. "paging" : true,
  51. "lengthChange": false,
  52. "searching" : true,
  53. "ordering" : false,
  54. "info" : true,
  55. "autoWidth" : false,
  56. "ajax": {
  57. "url": "/admin/rulemanager/getrule",
  58. "type": "post",
  59. "data":{"cid":cid}
  60. },
  61. "language": {
  62. "url": "/res/dist/js/dataTables.chinese.lang"
  63. },
  64. "columns": [
  65. { "data": "s_name"},
  66. { "data": "l_createtime"},
  67. { "data": "s_user"},
  68. { "data": "_id",render:function(val,a,row,meta){
  69. var udhtml = '&nbsp;&nbsp;<a class="btn btn-sm btn-success opr" opr="moveup" num="'+meta.row+'">上移</a>'+
  70. '&nbsp;&nbsp;<a class="btn btn-sm btn-success opr" opr="movedown" num="'+meta.row+'">下移</a>';
  71. if({{.data.rule}}.length ==1){//一条数据
  72. udhtml = '&nbsp;&nbsp;<a class="btn btn-sm btn-success btn-default opr" opr="moveup" num="'+meta.row+'" disabled>上移</a>'+
  73. '&nbsp;&nbsp;<a class="btn btn-sm btn-success btn-default opr" opr="movedown" num="'+meta.row+'" disabled>下移</a>';
  74. }else if(meta.row == 0){//第一行
  75. udhtml = '&nbsp;&nbsp;<a class="btn btn-sm btn-success btn-default opr" opr="moveup" num="'+meta.row+'" disabled>上移</a>'+
  76. '&nbsp;&nbsp;<a class="btn btn-sm btn-success opr" opr="movedown" num="'+meta.row+'">下移</a>';
  77. }else if(meta.row+1 == {{.data.rule}}.length){//最后一行
  78. udhtml = '&nbsp;&nbsp;<a class="btn btn-sm btn-success opr" opr="moveup" num="'+meta.row+'">上移</a>'+
  79. '&nbsp;&nbsp;<a class="btn btn-sm btn-success btn-default opr" opr="movedown" num="'+meta.row+'" disabled>下移</a>';
  80. }
  81. return '<a class="btn btn-sm btn-info opr" opr="edit" num="'+meta.row+'">编辑</a>'+
  82. '&nbsp;&nbsp;<a class="btn btn-sm btn-warning opr" opr="ruletest" num="'+meta.row+'">测试</a>'+
  83. '&nbsp;&nbsp;<a class="btn btn-sm btn-danger" onclick="del(\''+val+'\')">删除</a>'+udhtml
  84. }}
  85. ]
  86. });
  87. ttablerulemanager.on('init.dt', function () {
  88. $("#showbtn").on('click','a.opr',function(){
  89. var n=$(this).attr("opr");
  90. var rownum=parseInt($(this).attr("num"));
  91. var tobj = {{.data.rule}}[rownum];//本行数据
  92. var _tit="",htmlObj={},obj,tag=[];
  93. var delid=$(this).attr("value");
  94. switch(n){
  95. //测试规则
  96. case "ruletest":
  97. htmlObj={
  98. title:"测试_规则:"+tobj["s_name"],
  99. content:"<div>测试规则...</div>",
  100. tag:[
  101. {s_label:function(){var str="";for(var i in tobj["s_rule"]){str+="<p>"+(parseInt(i)+1)+"、"+tobj["s_rule"][i]+"</p>";}return str
  102. }(),type:"tpl_small"},
  103. {s_label:"s_con",type:"tpl_text",rows:18},
  104. {s_label:"_id",type:"tpl_hidden",val:tobj["_id"]}
  105. ],
  106. bts:[{label:"RUN",class:"btn-danger",
  107. fun:function(){
  108. var form = $('<form/>').appendTo("body");
  109. // 设置属性
  110. form.attr('action','/admin/rulemanager/runruletest').attr('method', 'post').attr('target', '_blank');
  111. // 创建Input
  112. var my_input = $('<input type="text" name="_id" />');
  113. my_input.attr('value', $("#_id").val());
  114. var mytext = $('<textarea name="s_con" />')
  115. mytext.val($("#s_con").val())
  116. // 附加到Form
  117. form.append(my_input).append(mytext);
  118. // 提交表单
  119. form.submit();
  120. form.remove();
  121. }
  122. }]
  123. }
  124. OpenDialog(htmlObj,obj);
  125. break;
  126. case "edit":
  127. obj=ttablerulemanager.row($(this).closest("tr")).data();
  128. case "new":
  129. tag=[
  130. {label:"名称",s_label:"s_name",must:true},
  131. {label:"代码",s_label:"s_code",must:true},
  132. //{label:"标识",s_label:"s_isok",must:true,type:"tpl_list_local",list:[{"s_name":"wrong","_id":"wrong"},{"s_name":"right","_id":"right"}],default:"wrong"},
  133. {label:"前置过滤",s_label:"s_rule_prerule",type:"tpl_text",placeholder:"XXX__YYY"},
  134. {label:"规则",s_label:"s_rule",type:"tpl_text",rows:8,must:true},
  135. {s_label:"_id",type:"tpl_hidden"},
  136. {s_label:"s_classid",type:"tpl_hidden",val:cid},
  137. {s_label:"s_pfield",type:"tpl_hidden",val:cname}
  138. ]
  139. if(n == "new"){
  140. _tit="新增_"+cname+"规则";
  141. }else{
  142. _tit="编辑_"+cname+"规则:"+tobj["s_name"];
  143. }
  144. htmlObj={
  145. mutilfield:"s_pid",
  146. title:_tit,
  147. tag:tag,
  148. bts:[
  149. {label:"保存",class:"btn-primary",
  150. fun:function(){
  151. var obj={}
  152. var bcon=true
  153. $("#_con").find("input[id!=s_show],textarea").each(function(i,el){
  154. var val=$(el).val();
  155. if(el.id!="_id"&&$(el).attr("must")&&!val){
  156. bcon=false
  157. return false
  158. }
  159. obj[el.id]=$(el).val();
  160. })
  161. if (bcon){
  162. $.post("/admin/rulemanager/saverule",obj,function(data){
  163. if(data&&data.rep){
  164. window.location.href="/admin/rulemanager/getrulelist?id="+cid+"&cname="+cname+"&fid="+fid;
  165. }else{
  166. showTip(data.msg,1000)
  167. }
  168. },'json')
  169. }else{
  170. alert("红色标签的表单不能为空!")
  171. }
  172. }
  173. }
  174. ]
  175. }
  176. //if({{.data.class.s_pid}}){
  177. // htmlObj.tag.push({label:"父规则",s_label:"s_pid",type:"tpl_list_ajax",url:"/admin/rulemanager/getrlist?id="+{{.data.class.s_pid}},fun:function(){
  178. // var ids=$("#s_pid").data("ids")
  179. // ids=ids||{}
  180. // var tid=$(this).attr("_id")
  181. // if(!ids[tid]){
  182. // ids[tid]=true
  183. // $("#s_pid").data("ids",ids)
  184. // var tpl1=$('<div class="alert alert-dismissible alert-success" style="min-width:50px;max-width:250px;font-size:10px;padding:3px;margin:5px;display:inline-block"><button type="button" class="close" data-dismiss="alert" style="right:0px;">&times;</button><span></span></div>')
  185. // tpl1.find("span").text($(this).text())
  186. // tpl1.attr("tid",tid)
  187. // tpl1.find("button").click(function(){
  188. // var ttid=$(this).closest(".alert").attr("tid");
  189. // var iids=$("#s_pid").data("ids")
  190. // delete iids[ttid]
  191. // $("#s_pid").val(function(){
  192. // var strid=[]
  193. // for(var k in iids){
  194. // strid.push(k)
  195. // }
  196. // return strid.join(",")
  197. // }())
  198. // })
  199. // $("#s_pid").prev().append(tpl1)
  200. // $("#s_pid").val(function(){
  201. // var strid=[]
  202. // for(var k in ids){
  203. // strid.push(k)
  204. // }
  205. // return strid.join(",")
  206. // }())
  207. // }
  208. // }})
  209. //}
  210. OpenDialog(htmlObj,obj)
  211. break;
  212. //上移下移
  213. case "moveup":
  214. case "movedown":
  215. if($(this).attr("disabled")=="disabled"){
  216. return
  217. }
  218. var poststr=""
  219. if(n == "moveup"){//上移
  220. var uobj = {{.data.rule}}[rownum-1];//上一行数据
  221. poststr=tobj["_id"]+","+tobj["i_order"]+","+uobj["_id"]+","+uobj["i_order"]
  222. }else{//下移
  223. var uobj={{.data.rule}}[rownum+1];//下一行数据
  224. poststr=uobj["_id"]+","+uobj["i_order"]+","+tobj["_id"]+","+tobj["i_order"]
  225. }
  226. $.post("/admin/rulemanager/shift",{str:poststr},function(data){
  227. if(data&&data.rep){
  228. window.location.href="/admin/rulemanager/getrulelist?id="+cid+"&cname="+cname+"&fid="+fid;
  229. }else{
  230. showTip("移动失败", 1000, function() {});
  231. }
  232. })
  233. break;
  234. }
  235. });
  236. })
  237. })
  238. function del(_id){
  239. showConfirm("确定删除?", function() {
  240. $.ajax({
  241. url:"/admin/rulemanager/delrule",
  242. type:"post",
  243. data:{"_id":_id},
  244. success:function(r){
  245. if(r.rep){
  246. window.location.href="/admin/rulemanager/getrulelist?id="+cid+"&cname="+cname+"&fid="+fid;
  247. }else{
  248. showTip("删除失败", 1000, function() {});
  249. }
  250. }
  251. })
  252. });
  253. }
  254. </script>