main.html 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388
  1. <style type="text/css">
  2. .queryform_item{float:left;width: 20%;text-align: right;margin: 0 1rem;}
  3. .queryform_label{float:left;width: 7rem;text-align: right;}
  4. .queryform_inputblock{float:left;width:45rem;}
  5. .div1{border-bottom: 1px solid #d2c9c9;}
  6. .div1 .title{margin: 0 1rem;font-size: 1.2rem;border-bottom: 2px solid #4b4bca;display: inline-block;}
  7. .disabled{background-color: #f2eeee;}
  8. </style>
  9. <script type="text/javascript" src="/static/js/global.js"></script>
  10. <script type="text/javascript" src="/static/js/log.js"></script>
  11. <div class="children-content">
  12. <blockquote class="layui-elem-quote" style="padding:10px;line-height:25px;">
  13. 系统管理 / 日志参数配置
  14. </blockquote>
  15. <div style="position:relative;width:100%;" class="layui-form">
  16. <div class="div1"><span class="title">日志过滤规则</span></div>
  17. <div style="margin: 0.5% 10%;float: left;width: 100%;">
  18. <span class="queryform_item">时间范围规则开关</span>
  19. <span><input type="checkbox" lay-skin="switch" id="filterdate" lay-filter="switch_filterdate" lay-text="已开启|已关闭" value="0"></span>
  20. </div>
  21. <div style="margin: 0.5% 10%;float: left;width: 100%;line-height: 3rem;">
  22. <span class="queryform_item">时间范围规则(对符合规则的日志不进行记录)</span>
  23. <span class="queryform_inputblock"><input type="text" readonly="" id="text_startdate" style="text-align:center;padding:0;float: left;width: 15rem;" autocomplete="off" class="layui-input"/><span class="f_l" style="margin: 0 1rem;">到</span><input type="text" readonly="" id="text_enddate" style="text-align:center;padding:0;float: left;width: 15rem;" autocomplete="off" class="layui-input"/></span>
  24. </div>
  25. <div style="margin: 0.5% 10%;float: left;width: 100%;">
  26. <span class="queryform_item">用户规则开关</span>
  27. <span><input type="checkbox" lay-skin="switch" id="filterstaff" lay-filter="switch_filterstaff" lay-text="已开启|已关闭" value="0"></span>
  28. </div>
  29. <div style="margin: 0.5% 10%;float: left;width: 100%;line-height: 3rem;">
  30. <span class="queryform_item">用户规则(对符合规则的日志不进行记录)</span>
  31. <span class="queryform_inputblock"><input type="text" id="text_staffs" style="text-align:center;padding:0;float: left;width: 60rem;" autocomplete="off" maxlength="200" placeholder="输入需要过虑的用户名称,多个之间使用逗号分隔" class="layui-input"/></span>
  32. </div>
  33. <div style="margin: 0.5% 10%;float: left;width: 100%;">
  34. <span class="queryform_item">事件类型开关</span>
  35. <span><input type="checkbox" lay-skin="switch" id="filtereventtype" lay-filter="switch_filtereventtype" lay-text="已开启|已关闭" value="0"></span>
  36. </div>
  37. <div style="margin: 0.5% 10%;float: left;width: 100%;line-height: 3rem;">
  38. <span class="queryform_item">事件类型规则(对符合规则的日志不进行记录)</span>
  39. <span class="queryform_inputblock"><select id="combox_eventtype"><option value="">全部</option></select></span>
  40. </div>
  41. <div style="margin: 0.5% 30%;float: left;width: 100%;line-height: 3rem;">
  42. <button id="btnSearch" type="button" class="layui-btn layui-btn-normal" style="margin-left:40px;height:32px;line-height:32px;" onclick="SetDefaultLogRule();">默认</button>
  43. <button id="btnSearch" type="button" class="layui-btn layui-btn-normal" style="margin-left:40px;height:32px;line-height:32px;" onclick="SetSaveLogRule();">保存</button>
  44. </div>
  45. <div class="div1"><span class="title">日志容量配置</span></div>
  46. <div style="margin: 0.5% 10%;float: left;width: 100%;">
  47. <span class="queryform_item">容量阈值(MB)</span>
  48. <span><input type="text" id="log_size_max" class="layui-input" style="text-align:center;padding:0;float: left;width: 20rem;" placeholder="输入允许的日志容量最大值" maxlength="4" value="1024"></span>
  49. </div>
  50. <div style="margin: 0.5% 10%;float: left;width: 100%;">
  51. <span class="queryform_item">预警阈值(%)</span>
  52. <span><input type="text" id="log_size_alarm1" class="layui-input" style="text-align:center;padding:0;float: left;width: 20rem;" maxlength="2" value="70%"></span>
  53. </div>
  54. <div style="margin: 0.5% 10%;float: left;width: 100%;">
  55. <span class="queryform_item">告警阈值(%)</span>
  56. <span><input type="text" id="log_size_alarm2" class="layui-input" style="text-align:center;padding:0;float: left;width: 20rem;" maxlength="2" value="90%"></span>
  57. </div>
  58. <div style="margin: 0.5% 30%;float: left;width: 100%;line-height: 3rem;">
  59. <button id="btnSearch" type="button" class="layui-btn layui-btn-normal" style="margin-left:40px;height:32px;line-height:32px;" onclick="SetDefaultLogLimit();">默认</button>
  60. <button id="btnSearch" type="button" class="layui-btn layui-btn-normal" style="margin-left:40px;height:32px;line-height:32px;" onclick="SetSaveLogLimit();">保存</button>
  61. </div>
  62. <div class="div1"><span class="title">消息通知</span></div>
  63. <div style="margin: 0.5% 10%;float: left;width: 100%;">
  64. <span class="queryform_item">日志容量预警接收邮箱</span>
  65. <span><input type="text" id="log_alarm_email" class="layui-input" style="text-align:center;padding:0;float: left;width: 20rem;" maxlength="40" value=""></span>
  66. </div>
  67. <div style="margin: 0.5% 30%;float: left;width: 100%;line-height: 3rem;">
  68. <button id="btnSearch" type="button" class="layui-btn layui-btn-normal" style="margin-left:40px;height:32px;line-height:32px;" onclick="SetDefaultLogMail();">默认</button>
  69. <button id="btnSearch" type="button" class="layui-btn layui-btn-normal" style="margin-left:40px;height:32px;line-height:32px;" onclick="SetSaveLogMail();">保存</button>
  70. </div>
  71. </div>
  72. </div>
  73. </div>
  74. <script type="text/html" id="options_tpl">
  75. <option value="">请选择</option>
  76. {{each data}}
  77. <option value="{{$value.code}}">{{$value.name}}</option>
  78. {{/each}}
  79. </script>
  80. <script type="text/javascript">
  81. $(document).ready(function () {
  82. $.getJSON("/api/getSysParamList",{"param_name":"log_fliterrule_date_state"},function(jsondata){
  83. if(jsondata.code!=0){
  84. layui.msg(jsondata.msg);
  85. return;
  86. }
  87. if(jsondata.data==null || jsondata.data[0].param_value=='0'){
  88. $("#filterdate").removeAttr("checked");
  89. $("#text_startdate,#text_enddate").attr("disabled",true).addClass("disabled");
  90. }else{
  91. $("#filterdate").attr("checked", 'true');
  92. }
  93. layui.form.render('checkbox');
  94. })
  95. $.getJSON("/api/getSysParamList",{"param_name":"log_fliterrule_date_range"},function(jsondata){
  96. if(jsondata.code!=0){
  97. layui.msg(jsondata.msg);
  98. return;
  99. }
  100. if(jsondata.data==null || jsondata.data[0].param_value==''){
  101. $("#text_startdate,#text_enddate").val('');
  102. }else{
  103. var dts=jsondata.data[0].param_value.split(",");
  104. $("#text_startdate").val(dts[0]);
  105. $("#text_enddate").val(dts[1]);
  106. }
  107. })
  108. $.getJSON("/api/getSysParamList",{"param_name":"log_fliterrule_staff_state"},function(jsondata){
  109. if(jsondata.code!=0){
  110. layui.msg(jsondata.msg);
  111. return;
  112. }
  113. if(jsondata.data==null || jsondata.data[0].param_value=='0'){
  114. $("#filterstaff").removeAttr("checked");
  115. $("#text_staffs").attr("disabled",true).addClass("disabled");
  116. }else{
  117. $("#filterstaff").attr("checked", 'true');
  118. }
  119. layui.form.render('checkbox');
  120. })
  121. $.getJSON("/api/getSysParamList",{"param_name":"log_fliterrule_staff_list"},function(jsondata){
  122. if(jsondata.code!=0){
  123. layui.msg(jsondata.msg);
  124. return;
  125. }
  126. if(jsondata.data==null || jsondata.data[0].param_value==''){
  127. $("#text_staffs").val("");
  128. }else{
  129. $("#text_staffs").val(jsondata.data[0].param_value);
  130. }
  131. })
  132. $.getJSON("/api/getSysParamList",{"param_name":"log_fliterrule_eventtype_state"},function(jsondata){
  133. if(jsondata.code!=0){
  134. layui.msg(jsondata.msg);
  135. return;
  136. }
  137. if(jsondata.data==null || jsondata.data[0].param_value=='0'){
  138. $("#filtereventtype").removeAttr("checked");
  139. $("#combox_eventtype").attr("disabled",true).addClass("disabled");
  140. }else{
  141. $("#filtereventtype").attr("checked", 'true');
  142. }
  143. layui.form.render('select');
  144. layui.form.render('checkbox');
  145. })
  146. $.getJSON("/api/getGlobalCode",{"pcode":"log_eventtype","pagesize":1000},function(jsondata){
  147. if(jsondata.code!=0){
  148. layui.msg(jsondata.msg);
  149. return;
  150. }
  151. var optionslst=template('options_tpl',jsondata);
  152. $("#combox_eventtype").html(optionslst);
  153. layui.form.render("select");
  154. $.getJSON("/api/getSysParamList",{"param_name":"log_fliterrule_eventtype_id"},function(jsondata){
  155. if(jsondata.code!=0){
  156. layui.msg(jsondata.msg);
  157. return;
  158. }
  159. if(jsondata.data==null || jsondata.data[0].param_value==''){
  160. $("#combox_eventtype").val("");
  161. }else{
  162. $("#combox_eventtype").val(jsondata.data[0].param_value);
  163. }
  164. layui.form.render('select');
  165. })
  166. });
  167. $.getJSON("/api/getSysParamList",{"param_name":"log_size_max"},function(jsondata){
  168. if(jsondata.code!=0){
  169. layui.msg(jsondata.msg);
  170. return;
  171. }
  172. if(jsondata.data==null || jsondata.data[0].param_value==''){
  173. $("#log_size_max").val("");
  174. }else{
  175. $("#log_size_max").val(jsondata.data[0].param_value);
  176. }
  177. })
  178. $.getJSON("/api/getSysParamList",{"param_name":"log_size_alarm1"},function(jsondata){
  179. if(jsondata.code!=0){
  180. layui.msg(jsondata.msg);
  181. return;
  182. }
  183. if(jsondata.data==null || jsondata.data[0].param_value==''){
  184. $("#log_size_alarm1").val("");
  185. }else{
  186. $("#log_size_alarm1").val(jsondata.data[0].param_value);
  187. }
  188. })
  189. $.getJSON("/api/getSysParamList",{"param_name":"log_size_alarm2"},function(jsondata){
  190. if(jsondata.code!=0){
  191. layui.msg(jsondata.msg);
  192. return;
  193. }
  194. if(jsondata.data==null || jsondata.data[0].param_value==''){
  195. $("#log_size_alarm2").val("");
  196. }else{
  197. $("#log_size_alarm2").val(jsondata.data[0].param_value);
  198. }
  199. })
  200. $.getJSON("/api/getSysParamList",{"param_name":"log_alarm_email"},function(jsondata){
  201. if(jsondata.code!=0){
  202. layui.msg(jsondata.msg);
  203. return;
  204. }
  205. if(jsondata.data==null || jsondata.data[0].param_value==''){
  206. $("#log_alarm_email").val("");
  207. }else{
  208. $("#log_alarm_email").val(jsondata.data[0].param_value);
  209. }
  210. })
  211. layui.use(['form', 'layedit', 'laydate'], function () {
  212. var laydate = layui.laydate;
  213. var startdate=laydate.render({
  214. elem: '#text_startdate',
  215. min:new Date().Format("yyyy-MM-dd"),
  216. done:function(v,d,date){
  217. //根据起始选择日期动态设置结束日期的最小日期
  218. enddate.config.min={year:d.year,month:d.month-1,date:d.date}
  219. }
  220. });
  221. var enddate=laydate.render({
  222. elem: '#text_enddate',
  223. min:$("#text_startdate").val()
  224. });
  225. layui.form.on('switch(switch_filterdate)', function (data) {
  226. var v= !data.elem.checked?"0":"1";
  227. $.post("/api/saveSysParam",{"param_name":"log_fliterrule_date_state","param_value":v,"param_memo":"日志时间过滤规则开关"},function(jsondata){
  228. if(jsondata.code!=0){
  229. layer.msg("状态更新失败:"+jsondata.msg);
  230. $("#filterdate").attr("checked", data.elem.checked);
  231. return;
  232. }
  233. layer.msg("状态更新成功!");
  234. if(v=="0"){
  235. $("#text_startdate,#text_enddate").attr("disabled",true).addClass("disabled");
  236. }else{
  237. $("#text_startdate,#text_enddate").removeAttr("disabled").removeClass("disabled");
  238. }
  239. })
  240. });
  241. layui.form.on('switch(switch_filterstaff)', function (data) {
  242. var v= !data.elem.checked?"0":"1";
  243. $.post("/api/saveSysParam",{"param_name":"log_fliterrule_staff_state","param_value":v,"param_memo":"日志用户过滤规则开关"},function(jsondata){
  244. if(jsondata.code!=0){
  245. layer.msg("状态更新失败:"+jsondata.msg);
  246. $("#filterstaff").attr("checked", data.elem.checked);
  247. return;
  248. }
  249. layer.msg("状态更新成功!");
  250. if(v=="0"){
  251. $("#text_staffs").attr("disabled",true).addClass("disabled");
  252. }else{
  253. $("#text_staffs").removeAttr("disabled").removeClass("disabled");
  254. }
  255. })
  256. });
  257. layui.form.on('switch(switch_filtereventtype)', function (data) {
  258. var v= !data.elem.checked?"0":"1";
  259. $.post("/api/saveSysParam",{"param_name":"log_fliterrule_eventtype_state","param_value":v,"param_memo":"日志事件类型过滤规则开关"},function(jsondata){
  260. if(jsondata.code!=0){
  261. layer.msg("状态更新失败:"+jsondata.msg);
  262. $("#filtereventtype").attr("checked", data.elem.checked);
  263. return;
  264. }
  265. layer.msg("状态更新成功!");
  266. if(v=="0"){
  267. $("#combox_eventtype").attr("disabled",true).addClass("disabled");
  268. }else{
  269. $("#combox_eventtype").removeAttr("disabled").removeClass("disabled");
  270. }
  271. layui.form.render('select');
  272. })
  273. });
  274. });
  275. });
  276. function SetDefaultLogMail(){
  277. $("#log_alarm_email").val('');
  278. SetSaveLogMail();
  279. }
  280. function SetSaveLogMail(){
  281. var v=$.trim($("#log_alarm_email").val());
  282. $.post("/api/saveSysParam",{"param_name":"log_alarm_email","param_value":v,"param_memo":"日志告警接收邮箱"},function(jsondata){
  283. if(jsondata.code!=0){
  284. layer.msg("设置保存失败:"+jsondata.msg);
  285. return;
  286. }
  287. layer.msg("设置保存成功!");
  288. })
  289. }
  290. function SetDefaultLogLimit(){
  291. $("#log_size_max").val('1024');
  292. $("#log_size_alarm1").val('70');
  293. $("#log_size_alarm2").val('90');
  294. SetSaveLogLimit();
  295. }
  296. function SetSaveLogLimit(){
  297. var v1=$.trim($("#log_size_max").val());
  298. var v2=$.trim($("#log_size_alarm1").val());
  299. var v3=$.trim($("#log_size_alarm2").val());
  300. $.post("/api/saveSysParam",{"param_name":"log_size_max","param_value":v1,"param_memo":"日志容量最大值"},function(jsondata){
  301. if(jsondata.code!=0){
  302. layer.msg("日志容量最大值设置保存失败:"+jsondata.msg);
  303. return;
  304. }
  305. layer.msg("设置保存成功!");
  306. })
  307. $.post("/api/saveSysParam",{"param_name":"log_size_alarm1","param_value":v2,"param_memo":"日志预警阀值"},function(jsondata){
  308. if(jsondata.code!=0){
  309. layer.msg("日志预警阀值设置保存失败:"+jsondata.msg);
  310. return;
  311. }
  312. })
  313. $.post("/api/saveSysParam",{"param_name":"log_size_alarm2","param_value":v3,"param_memo":"日志告警阀值"},function(jsondata){
  314. if(jsondata.code!=0){
  315. layer.msg("日志告警阀值设置保存失败:"+jsondata.msg);
  316. return;
  317. }
  318. })
  319. }
  320. function SetDefaultLogRule(){
  321. $("#combox_eventtype").val("");
  322. $("#text_staffs").val("");
  323. $("#text_startdate,#text_enddate").val("");
  324. $("#filterdate").removeAttr("checked");
  325. $("#text_startdate,#text_enddate").attr("disabled",true).addClass("disabled");
  326. $("#filterstaff").removeAttr("checked");
  327. $("#text_staffs").attr("disabled",true).addClass("disabled");
  328. $("#filtereventtype").removeAttr("checked");
  329. $("#combox_eventtype").attr("disabled",true).addClass("disabled");
  330. layui.form.render('select');
  331. layui.form.render('checkbox');
  332. $.post("/api/saveSysParam",{"param_name":"log_fliterrule_date_state","param_value":"0"},function(jsondata){
  333. if(jsondata.code!=0){
  334. layer.msg("设置保存失败:"+jsondata.msg);
  335. return;
  336. }
  337. })
  338. $.post("/api/saveSysParam",{"param_name":"log_fliterrule_eventtype_state","param_value":"0"},function(jsondata){
  339. if(jsondata.code!=0){
  340. layer.msg("设置保存失败:"+jsondata.msg);
  341. return;
  342. }
  343. })
  344. $.post("/api/saveSysParam",{"param_name":"log_fliterrule_staff_state","param_value":"0"},function(jsondata){
  345. if(jsondata.code!=0){
  346. layer.msg("设置保存失败:"+jsondata.msg);
  347. return;
  348. }
  349. })
  350. SetSaveLogRule();
  351. }
  352. function SetSaveLogRule(){
  353. var v=$.trim($("#text_staffs").val());
  354. $.post("/api/saveSysParam",{"param_name":"log_fliterrule_staff_list","param_value":v,"param_memo":"日志用户过滤规则列表"},function(jsondata){
  355. if(jsondata.code!=0){
  356. layer.msg("设置保存失败:"+jsondata.msg);
  357. return;
  358. }
  359. })
  360. v=$.trim($("#combox_eventtype").val());
  361. $.post("/api/saveSysParam",{"param_name":"log_fliterrule_eventtype_id","param_value":v,"param_memo":"日志事件类型过滤规则列表"},function(jsondata){
  362. if(jsondata.code!=0){
  363. layer.msg("设置保存失败:"+jsondata.msg);
  364. return;
  365. }
  366. })
  367. v=$.trim($("#text_startdate").val())+","+$.trim($("#text_enddate").val());
  368. if(v==",") v="";
  369. $.post("/api/saveSysParam",{"param_name":"log_fliterrule_date_range","param_value":v,"param_memo":"日志日期过滤规则设置"},function(jsondata){
  370. if(jsondata.code!=0){
  371. layer.msg("设置保存失败:"+jsondata.msg);
  372. return;
  373. }
  374. layer.msg("设置保存成功");
  375. })
  376. }
  377. </script>