index.html 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>访客IP设置列表</title>
  7. <link rel="shortcut icon" href="favicon.ico">
  8. <link href="__CSS__/bootstrap.min.css?v=3.3.6" rel="stylesheet">
  9. <link href="__CSS__/font-awesome.min.css?v=4.4.0" rel="stylesheet">
  10. <link href="__CSS__/plugins/bootstrap-table/bootstrap-table.min.css" rel="stylesheet">
  11. <link href="__CSS__/animate.min.css" rel="stylesheet">
  12. <link href="__CSS__/style.min.css?v=4.1.0" rel="stylesheet">
  13. </head>
  14. <body class="gray-bg">
  15. <div class="wrapper wrapper-content animated fadeInRight">
  16. <!-- Panel Other -->
  17. <div class="ibox float-e-margins">
  18. <input style="display:none;" type="text" value="2" id="type">
  19. <div style="display: flex;">
  20. <div class="ibox-title" style="width: 100px; cursor:pointer;" id="current1" onclick="current(2)">
  21. <h5>客服白名单</h5>
  22. </div>
  23. <div class="ibox-title" id="current2" style="width: 100px; cursor:pointer; background: #eee" onclick="current(1)">
  24. <h5>用户黑名单</h5>
  25. </div>
  26. <div class="ibox-title" style="width: calc(100% - 200px); background: #eee;">
  27. </div>
  28. </div>
  29. <div class="ibox-content">
  30. <a id="add" href="/admin/iplimit/add.html?type=2">
  31. <button class="btn btn-primary" type="button" style="margin-top:10px"><strong>新增IP</strong>
  32. </button>
  33. </a>
  34. <form action="/admin/sensitivec/disjunctor" enctype="multipart/form-data" method="post" role="form" class="form-inline pull-right">
  35. <div class="content clearfix m-b">
  36. <div class="form-group" style="margin-left: 20px">
  37. <a href="javascript:disjunctor()" class="btn" style="margin-top:5px;" ><input type="button" id="disjunctor" class="btn {if($settings['ip_disjunctor']=='on')}btn-primary{else}btn-danger{/if} btn-sm" value="{$settings['disjunctor']}"></a>
  38. </div>
  39. </div>
  40. </form>
  41. <!--搜索框开始-->
  42. <form id='commentForm' role="form" method="post" class="form-inline pull-right">
  43. <div class="content clearfix m-b" style="margin-top: 5px;">
  44. <div class="form-group">
  45. <label>IP地址:</label>
  46. <input type="text" class="form-control" id="content" name="content" value="" placeholder="请输入IP地址">
  47. <input style="display: none">
  48. </div>
  49. <div class="form-group">
  50. <button class="btn btn-primary" type="button" style="margin-top:5px" id="search"><strong>搜 索</strong>
  51. </button>
  52. </div>
  53. </div>
  54. </form>
  55. <!--搜索框结束-->
  56. <div class="example-wrap">
  57. <div class="example">
  58. <table id="cusTable">
  59. <thead>
  60. <th data-field="id">ID</th>
  61. <th data-field="ip">IP/IP范围</th>
  62. <th data-field="utime">修改时间</th>
  63. <th data-field="admin">管理员</th>
  64. <th data-field="operate">操作</th>
  65. </thead>
  66. </table>
  67. </div>
  68. </div>
  69. <!-- End Example Pagination -->
  70. </div>
  71. </div>
  72. </div>
  73. <!-- End Panel Other -->
  74. <script src="__JS__/jquery.min.js?v=2.1.4"></script>
  75. <script src="__JS__/bootstrap.min.js?v=3.3.6"></script>
  76. <script src="__JS__/content.min.js?v=1.0.0"></script>
  77. <script src="__JS__/plugins/bootstrap-table/bootstrap-table.min.js"></script>
  78. <script src="__JS__/plugins/bootstrap-table/bootstrap-table-mobile.min.js"></script>
  79. <script src="__JS__/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
  80. <script src="__JS__/plugins/layer/layer.min.js"></script>
  81. <script type="text/javascript">
  82. function current(id) {
  83. $("#type").val(id);
  84. if (id == 1) {
  85. $("#current1").css("background","#eee");
  86. $("#current2").css("background","#fff");
  87. $("#add").attr('href','/admin/iplimit/add.html?type=1');
  88. } else if (id == 2) {
  89. $("#current2").css({"background":"#eee"});
  90. $("#current1").css({"background":"#fff"});
  91. $("#add").attr('href','/admin/iplimit/add.html?type=2');
  92. }
  93. initTable()
  94. }
  95. function initTable() {
  96. //先销毁表格
  97. $('#cusTable').bootstrapTable('destroy');
  98. let type = $('#type').val();
  99. //初始化表格,动态从服务器加载数据
  100. $("#cusTable").bootstrapTable({
  101. method: "get", //使用get请求到服务器获取数据
  102. url: "{:url('iplimit/index')}", //获取数据的地址
  103. striped: true, //表格显示条纹
  104. pagination: true, //启动分页
  105. pageSize: 50, //每页显示的记录数
  106. pageNumber:1, //当前第几页
  107. pageList: [20, 50], //记录数可选列表
  108. sidePagination: "server", //表示服务端请求
  109. paginationFirstText: "首页",
  110. paginationPreText: "上一页",
  111. paginationNextText: "下一页",
  112. paginationLastText: "尾页",
  113. queryParamsType : "undefined",
  114. queryParams: function queryParams(params) { //设置查询参数
  115. var param = {
  116. pageNumber: params.pageNumber,
  117. type: type,
  118. pageSize: params.pageSize,
  119. searchText:$('#content').val()
  120. };
  121. return param;
  122. },
  123. onLoadSuccess: function(res){ //加载成功时执行
  124. if(111 == res.code){
  125. window.location.reload();
  126. }
  127. layer.msg("加载成功", {time : 1000});
  128. },
  129. onLoadError: function(){ //加载失败时执行
  130. layer.msg("加载数据失败");
  131. }
  132. });
  133. }
  134. function showSuccess(res){
  135. layer.ready(function(){
  136. layer.close(index);
  137. if(1 == res.code){
  138. layer.alert(res.msg, {title: '友情提示', icon: 1, closeBtn: 0}, function(){
  139. window.location.href = myHost + '/admin/iplimit/index';
  140. });
  141. }else if(111 == res.code){
  142. window.location.reload();
  143. }else{
  144. layer.msg(res.msg, {anim: 6});
  145. }
  146. });
  147. }
  148. $(document).ready(function () {
  149. //调用函数,初始化表格
  150. initTable();
  151. //当点击查询按钮的时候执行
  152. $("#search").bind("click", initTable);
  153. });
  154. function Del(id){
  155. layer.confirm('确认删除此ip?', {icon: 3, title:'提示'}, function(index){
  156. //do something
  157. $.getJSON("{:url('iplimit/del')}", {'id' : id}, function(res){
  158. if(1 == res.code){
  159. layer.alert(res.msg, {title: '友情提示', icon: 1, closeBtn: 0}, function(){
  160. initTable();
  161. });
  162. }else if(111 == res.code){
  163. window.location.reload();
  164. }else{
  165. layer.alert(res.msg, {title: '友情提示', icon: 2});
  166. }
  167. });
  168. layer.close(index);
  169. })
  170. }
  171. function disjunctor(){
  172. if($('#disjunctor').val() == '开启IP限制'){
  173. var disjunctor = 'on';
  174. }else{
  175. var disjunctor = 'off';
  176. }
  177. layer.confirm('确认'+$('#disjunctor').val()+'?', {icon: 3, title:'提示'}, function(index){
  178. //do something
  179. $.getJSON("{:url('iplimit/disjunctor')}", {'disjunctor':disjunctor}, function(res){
  180. //console.log(disjunctor);
  181. console.log(res);
  182. if(1 == res.code){
  183. layer.alert(res.msg, {title: '友情提示', icon: 1, closeBtn: 0}, function(){
  184. initTable();
  185. if($('#disjunctor').val() == '开启IP限制'){
  186. $('#disjunctor').val('关闭IP限制');
  187. $("#disjunctor").addClass("btn-primary");
  188. $("#disjunctor").removeClass("btn-danger");
  189. }else{
  190. $('#disjunctor').val('开启IP限制');
  191. $("#disjunctor").addClass("btn-danger");
  192. $("#disjunctor").removeClass("btn-primary");
  193. }
  194. });
  195. }else if(111 == res.code){
  196. window.location.reload();
  197. }else{
  198. layer.alert(res.msg, {title: '友情提示', icon: 2});
  199. }
  200. });
  201. layer.close(index);
  202. })
  203. }
  204. </script>
  205. </body>
  206. </html>