rule_logicore.html 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. {{template "inc"}}
  2. <!-- Main Header -->
  3. {{template "header"}}
  4. <!-- Left side column. 权限菜单 -->
  5. {{template "memu"}}
  6. <!-- Content Wrapper. Contains page content -->
  7. <div class="content-wrapper">
  8. <section class="content-header">
  9. <h1>
  10. <small><a class="btn btn-primary opr" opr="new">新增正则</a></small>
  11. <small><a class="btn btn-primary opr" opr="newlua">新增脚本</a></small>
  12. </h1>
  13. <ol class="breadcrumb">
  14. <li><a href="/admin/version"><i class="fa fa-dashboard"></i>抽取版本</a></li>
  15. <li><a href="/admin/version/info?vid={{.vid}}&pid={{.pid}}">属性配置</a></li>
  16. <li><a href="/admin/rulelogic?vid={{.vid}}&pid={{.pid}}">抽取逻辑</a></li>
  17. <li class="active"><a href="/admin/logicore?vid={{.vid}}&pid={{.pid}}&sid={{.sid}}">抽取规则</a></li>
  18. </ol>
  19. </section>
  20. <!-- Main content -->
  21. <section class="content">
  22. <div class="row">
  23. <div class="col-xs-12">
  24. <div class="box">
  25. <div class="box-body">
  26. <table id="dataTable" class="table table-bordered table-hover">
  27. <thead>
  28. <tr>
  29. <th>代码</th>
  30. <th>名称</th>
  31. <th>创建人</th>
  32. <th>描述</th>
  33. <th>类型</th>
  34. <th>是否启用</th>
  35. <th>操作</th>
  36. </tr>
  37. </thead>
  38. </table>
  39. </div>
  40. <!-- /.box-body -->
  41. </div>
  42. <!-- /.box -->
  43. </div>
  44. </div>
  45. </section>
  46. <!--
  47. <div class="form-group"><select class="form-control select2" multiple="multiple" data-placeholder="Select a State" style="width: 100%;"><option>Alabama</option><option>Alaska</option></select></div>
  48. -->
  49. </div>
  50. {{template "luares"}}
  51. {{template "dialog"}}
  52. {{template "footer"}}
  53. <script>
  54. $('.select2').select2()
  55. menuActive("version")
  56. $(function () {
  57. ttable=$('#dataTable').DataTable({
  58. "paging" : false,
  59. "lengthChange": false,
  60. "searching" : true,
  61. "ordering" : false,
  62. "info" : true,
  63. "autoWidth" : false,
  64. "ajax": {
  65. "url": "/admin/logicore/data",
  66. "type": "post",
  67. "data":{"vid":{{.vid}},"pid":{{.pid}},"sid":{{ .sid}} }
  68. },
  69. "language": {
  70. "url": "/res/dist/js/dataTables.chinese.lang"
  71. },
  72. "columns": [
  73. { "data": "s_code"},
  74. { "data": "s_name"},
  75. { "data": "s_username"},
  76. { "data": "s_descript"},
  77. { "data": "s_type",render:function(val,a,row){
  78. if(val=="0"){
  79. return "正则"
  80. }else{
  81. return "lua脚本"
  82. }
  83. }},
  84. { "data": "isuse",render:function(val,a,row){
  85. tmp=""
  86. if(val){
  87. tmp="<a href='#' title='停用' onclick='use(\""+row._id+"\",false)'><i class='fa fa-fw fa-circle text-green'></i></a>已启用"
  88. }else{
  89. tmp="<a href='#' title='启用' onclick='use(\""+row._id+"\",true)'><i class='fa fa-fw fa-circle text-red'></i></a>未启用"
  90. }
  91. return tmp
  92. }},
  93. { "data": "_id",render:function(val,a,row,pos){
  94. tmp=""
  95. if(row.s_type=="0"){
  96. tmp = '<div>'+
  97. '<a class="btn btn-sm btn-primary opr" opr="edit" row="'+pos.row+'" >编辑</a> '+
  98. '<a class="btn btn-sm btn-warning" onclick="del(\''+val+'\')">删除</a> '+
  99. '</div>';
  100. }else{
  101. tmp = '<div>'+
  102. '<a class="btn btn-sm btn-primary opr" opr="editlua" row="'+pos.row+'" >编辑</a> '+
  103. '<a class="btn btn-sm btn-warning" onclick="del(\''+val+'\')">删除</a> '+
  104. '</div>';
  105. }
  106. return tmp
  107. }}
  108. ]
  109. });
  110. ttable.on('init.dt', function () {
  111. $(".opr").click(function(){
  112. var n=$(this).attr("opr")
  113. var htmlObj={},obj,tag=[]
  114. var bts=[{label:"保存",class:"btn-primary",
  115. fun:function(){
  116. var obj={}
  117. var bcon=true
  118. $("#_con").find("input[id!=s_show],textarea").each(function(i,el){
  119. var val=$(el).val();
  120. if(el.id=="s_luascript"){
  121. val=editor_1.getValue()
  122. obj[el.id]=val
  123. }else{
  124. obj[el.id]=$(el).val()
  125. }
  126. if(el.id!="_id"&&$(el).attr("must")&&!val){
  127. bcon=false
  128. return false
  129. }
  130. })
  131. if (bcon){
  132. $.post("/admin/logicore/save",obj,function(data){
  133. if(data&&data.rep){
  134. window.location.href="/admin/logicore?vid={{.vid}}&pid={{.pid}}&sid={{.sid}}"
  135. }else{
  136. showTip(data.msg,1000)
  137. }
  138. },'json')
  139. }else{
  140. alert("红色标签的表单不能为空!")
  141. }
  142. }
  143. }
  144. ]
  145. var _tit=""
  146. switch(n){
  147. case "edit":
  148. obj=ttable.row($(this).closest("tr")).data();
  149. case "editlua":
  150. obj=ttable.row($(this).closest("tr")).data();
  151. case "newlua":
  152. case "new":
  153. comtag=[{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}]
  154. regtag=[{label:"字段",s_label:"s_field",type:"tpl_list_local",url:"/admin/getfields",default:{{.field}}},{label:"正则",s_label:"s_rule",type:"tpl_text",must:true}]
  155. luatag=[{label:"字段",s_label:"s_field",type:"tpl_list_local",url:"/admin/getfields",default:{{.field}}},{label:"脚本",s_label:"s_luascript",type:"tpl_text",must:true}]
  156. testcon=[{label:"测试内容",s_label:"s_testcon",type:"tpl_text",must:true}]
  157. hiddentag=[{s_label:"_id",type:"tpl_hidden"},{s_label:"vid",type:"tpl_hidden"},{s_label:"pid",type:"tpl_hidden"},{s_label:"sid",type:"tpl_hidden"},{s_label:"s_type",type:"tpl_hidden"}]
  158. islua=false
  159. tag = com.pushArry(tag,comtag)
  160. if(n=="edit"){
  161. _tit="编辑-"+obj.s_name
  162. tag = com.pushArry(tag,regtag)
  163. tag = com.pushArry(tag,hiddentag)
  164. tag = com.pushArry(tag,testcon)
  165. check=[{label:"测试",class:"btn-warning",
  166. fun:function(){
  167. var obj={}
  168. var bcon=true
  169. $("#_con").find("input[id!=s_show],textarea").each(function(i,el){
  170. var val=$(el).val();
  171. obj[el.id]=$(el).val()
  172. if(el.id!="_id"&&$(el).attr("must")&&!val){
  173. bcon=false
  174. return false
  175. }
  176. })
  177. if (bcon){
  178. $.post("/admin/check/extrule",obj,function(data){
  179. showMsg(JSON.stringify(data.rep))
  180. },'json')
  181. }else{
  182. alert("红色标签的表单不能为空!")
  183. }
  184. }
  185. }]
  186. bts = com.pushArry(bts,check)
  187. }else if(n=="editlua"){
  188. _tit="编辑-"+obj.s_name
  189. islua=true
  190. tag = com.pushArry(tag,luatag)
  191. tag = com.pushArry(tag,hiddentag)
  192. check=[{label:"测试",class:"btn-warning",
  193. fun:function(){
  194. window.location.href="/admin/check/lua/core?vid={{.vid}}&pid={{.pid}}&sid={{.sid}}&s_code="+obj.s_code
  195. }
  196. }]
  197. bts = com.pushArry(bts,check)
  198. }else{
  199. _tit="新增规则"
  200. if(n=="newlua"){
  201. _tit="新增脚本"
  202. obj={"s_luascript":"--code脚本代码,doc数据源,block块对象,kvs抽取kv对象,返回kvs对象,kvs结构不可改变\nfunction main(code,doc,block,kvs)\n\t--自定义抽取\n\treturn kvs\nend","vid":"{{.vid}}","pid":"{{.pid}}","sid":"{{.sid}}","s_type":"1"}
  203. tag = com.pushArry(tag,luatag)
  204. tag = com.pushArry(tag,hiddentag)
  205. islua=true
  206. }else{
  207. obj={"vid":"{{.vid}}","pid":"{{.pid}}","sid":"{{.sid}}","s_type":"0"}
  208. tag = com.pushArry(tag,regtag)
  209. tag = com.pushArry(tag,hiddentag)
  210. }
  211. }
  212. htmlObj={
  213. title:_tit,
  214. tag:tag,
  215. lua:islua,
  216. bts:bts
  217. }
  218. OpenDialog(htmlObj,obj)
  219. break;
  220. }
  221. });
  222. })
  223. })
  224. function del(_id){
  225. showConfirm("确定删除?", function() {
  226. $.ajax({
  227. url:"/admin/logicore/del",
  228. type:"post",
  229. data:{"_id":_id},
  230. success:function(r){
  231. if(r.rep){
  232. window.location.href="/admin/logicore?vid={{.vid}}&pid={{.pid}}&sid={{.sid}}";
  233. }else{
  234. showTip("删除失败", 1000);
  235. }
  236. }
  237. })
  238. });
  239. }
  240. function use(_id,utype){
  241. smg=""
  242. if(utype){
  243. smg="确定启用?"
  244. }else{
  245. smg="确定停用?"
  246. }
  247. showConfirm(smg, function() {
  248. $.ajax({
  249. url:"/admin/logicore/use",
  250. type:"post",
  251. data:{"_id":_id,"isuse":utype},
  252. success:function(r){
  253. if(r.rep){
  254. window.location.reload()
  255. }else{
  256. showTip("启用失败", 1000, function() {});
  257. }
  258. }
  259. })
  260. });
  261. }
  262. </script>