index.html 9.1 KB

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