userList.blade.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. @extends('admin.layouts')
  2. @section('css')
  3. <link href="/assets/global/plugins/datatables/datatables.min.css" rel="stylesheet" type="text/css" />
  4. <link href="/assets/global/plugins/datatables/plugins/bootstrap/datatables.bootstrap.css" rel="stylesheet" type="text/css" />
  5. @endsection
  6. @section('title', '控制面板')
  7. @section('content')
  8. <!-- BEGIN CONTENT BODY -->
  9. <div class="page-content">
  10. <!-- BEGIN PAGE BREADCRUMB -->
  11. <ul class="page-breadcrumb breadcrumb">
  12. <li>
  13. <a href="{{url('admin/userList')}}">账号管理</a>
  14. <i class="fa fa-circle"></i>
  15. </li>
  16. </ul>
  17. <!-- END PAGE BREADCRUMB -->
  18. <!-- BEGIN PAGE BASE CONTENT -->
  19. <div class="row">
  20. <div class="col-md-12">
  21. <!-- BEGIN EXAMPLE TABLE PORTLET-->
  22. <div class="portlet light bordered">
  23. <div class="portlet-title">
  24. <div class="caption font-dark">
  25. <i class="icon-users font-dark"></i>
  26. <span class="caption-subject bold uppercase"> 账号列表 </span>
  27. </div>
  28. <div class="actions">
  29. <div class="btn-group">
  30. <button class="btn sbold blue" onclick="addUser()"> 新增
  31. <i class="fa fa-plus"></i>
  32. </button>
  33. </div>
  34. </div>
  35. </div>
  36. <div class="portlet-body">
  37. <div class="row" style="padding-bottom:5px;">
  38. <div class="col-md-2 col-sm-2">
  39. <input type="text" class="col-md-4 form-control input-sm" name="username" value="{{Request::get('username')}}" id="username" placeholder="用户名" onkeydown="if(event.keyCode==13){do_search();}">
  40. </div>
  41. <div class="col-md-2 col-sm-2">
  42. <input type="text" class="col-md-4 form-control input-sm" name="wechat" value="{{Request::get('wechat')}}" id="wechat" placeholder="微信" onkeydown="if(event.keyCode==13){do_search();}">
  43. </div>
  44. <div class="col-md-2 col-sm-2">
  45. <input type="text" class="col-md-4 form-control input-sm" name="qq" value="{{Request::get('qq')}}" id="qq" placeholder="QQ" onkeydown="if(event.keyCode==13){do_search();}">
  46. </div>
  47. </div>
  48. <div class="row">
  49. <div class="col-md-2 col-sm-2">
  50. <input type="text" class="col-md-4 form-control input-sm" name="port" value="{{Request::get('port')}}" id="port" placeholder="端口" onkeydown="if(event.keyCode==13){do_search();}">
  51. </div>
  52. <div class="col-md-2 col-sm-2">
  53. <select class="form-control input-sm" name="pay_way" id="pay_way" onChange="do_search()">
  54. <option value="0" @if(empty(Request::get('pay_way'))) selected @endif>付费方式</option>
  55. <option value="1" @if(Request::get('pay_way') == '1') selected @endif>月付</option>
  56. <option value="2" @if(Request::get('pay_way') == '2') selected @endif>半年付</option>
  57. <option value="3" @if(Request::get('pay_way') == '3') selected @endif>年付</option>
  58. </select>
  59. </div>
  60. <div class="col-md-2 col-sm-2">
  61. <select class="form-control input-sm" name="status" id="status" onChange="do_search()">
  62. <option value="" @if(empty(Request::get('status'))) selected @endif>状态</option>
  63. <option value="-1" @if(Request::get('status') == '-1') selected @endif>禁用</option>
  64. <option value="0" @if(Request::get('status') == '0') selected @endif>未激活</option>
  65. <option value="1" @if(Request::get('status') == '1') selected @endif>正常</option>
  66. </select>
  67. </div>
  68. <div class="col-md-2 col-sm-2">
  69. <select class="form-control input-sm" name="enable" id="enable" onChange="do_search()">
  70. <option value="" @if(empty(Request::get('enable'))) selected @endif>SS(R)状态</option>
  71. <option value="1" @if(Request::get('enable') == '1') selected @endif>启用</option>
  72. <option value="0" @if(Request::get('enable') == '0') selected @endif>禁用</option>
  73. </select>
  74. </div>
  75. <div class="col-md-2 col-sm-2">
  76. <button type="button" class="btn btn-sm blue" onclick="do_search();">查询</button>
  77. <button type="button" class="btn btn-sm grey" onclick="do_reset();">重置</button>
  78. </div>
  79. </div>
  80. <div class="table-scrollable">
  81. <table class="table table-striped table-bordered table-hover table-checkable order-column">
  82. <thead>
  83. <tr>
  84. <th> ID </th>
  85. <th> 用户名 </th>
  86. <th> 端口 </th>
  87. <th> 加密方式 </th>
  88. <th> 已消耗 </th>
  89. <th> 最后使用 </th>
  90. <th> 有效期 </th>
  91. <th> 状态 </th>
  92. <th> SS(R) </th>
  93. <th> 操作 </th>
  94. </tr>
  95. </thead>
  96. <tbody>
  97. @if ($userList->isEmpty())
  98. <tr>
  99. <td colspan="10">暂无数据</td>
  100. </tr>
  101. @else
  102. @foreach ($userList as $user)
  103. <tr class="odd gradeX {{$user->trafficWarning ? 'danger' : ''}}">
  104. <td> {{$user->id}} </td>
  105. <td> {{$user->username}} </td>
  106. <td> <span class="label label-danger"> {{$user->port}} </span> </td>
  107. <td> <span class="label label-default"> {{$user->method}} </span> </td>
  108. <td class="center"> {{$user->used_flow}} / {{$user->transfer_enable}} </td>
  109. <td class="center"> {{empty($user->t) ? '未使用' : date('Y-m-d H:i:s', $user->t)}} </td>
  110. <td class="center">
  111. @if ($user->expireWarning)
  112. <span class="label label-warning"> {{$user->expire_time}} </span>
  113. @else
  114. {{$user->expire_time}}
  115. @endif
  116. </td>
  117. <td>
  118. @if ($user->status == '1')
  119. <span class="label label-info">正常</span>
  120. @elseif ($user->status == '0')
  121. <span class="label label-default">未激活</span>
  122. @else
  123. <span class="label label-danger">禁用</span>
  124. @endif
  125. </td>
  126. <td>
  127. @if ($user->enable)
  128. <span class="label label-info">启用</span>
  129. @else
  130. <span class="label label-danger">禁用</span>
  131. @endif
  132. </td>
  133. <td>
  134. <button type="button" class="btn btn-sm blue btn-outline" onclick="editUser('{{$user->id}}')">编辑</button>
  135. <button type="button" class="btn btn-sm green btn-outline" onclick="do_export('{{$user->id}}')">配置信息</button>
  136. <button type="button" class="btn btn-sm purple btn-outline" onclick="do_monitor('{{$user->id}}')">流量监控</button>
  137. <button type="button" class="btn btn-sm green-meadow btn-outline" onclick="resetTraffic('{{$user->id}}')">重置流量</button>
  138. <button type="button" class="btn btn-sm red btn-outline" onclick="delUser('{{$user->id}}')">删除</button>
  139. </td>
  140. </tr>
  141. @endforeach
  142. @endif
  143. </tbody>
  144. </table>
  145. </div>
  146. <div class="row">
  147. <div class="col-md-4 col-sm-4">
  148. <div class="dataTables_info" role="status" aria-live="polite">共 {{$userList->total()}} 个账号</div>
  149. </div>
  150. <div class="col-md-8 col-sm-8">
  151. <div class="dataTables_paginate paging_bootstrap_full_number pull-right">
  152. {{ $userList->links() }}
  153. </div>
  154. </div>
  155. </div>
  156. </div>
  157. </div>
  158. <!-- END EXAMPLE TABLE PORTLET-->
  159. </div>
  160. </div>
  161. <!-- END PAGE BASE CONTENT -->
  162. </div>
  163. <!-- END CONTENT BODY -->
  164. @endsection
  165. @section('script')
  166. <script src="/assets/global/plugins/bootbox/bootbox.min.js" type="text/javascript"></script>
  167. <script src="/js/layer/layer.js" type="text/javascript"></script>
  168. <script type="text/javascript">
  169. // 添加账号
  170. function addUser() {
  171. window.location.href = '{{url('admin/addUser')}}';
  172. }
  173. // 编辑账号
  174. function editUser(id) {
  175. window.location.href = '{{url('admin/editUser?id=')}}' + id + '&page=' + '{{Request::get('page', 1)}}';
  176. }
  177. // 删除账号
  178. function delUser(id) {
  179. var _token = '{{csrf_token()}}';
  180. bootbox.confirm({
  181. message: "确定删除账号?",
  182. buttons: {
  183. confirm: {
  184. label: '确定',
  185. className: 'btn-success'
  186. },
  187. cancel: {
  188. label: '取消',
  189. className: 'btn-danger'
  190. }
  191. },
  192. callback: function (result) {
  193. if (result) {
  194. $.post("{{url('admin/delUser')}}", {id:id, _token:_token}, function(ret) {
  195. layer.msg(ret.message, {time:1000}, function() {
  196. if (ret.status == 'success') {
  197. window.location.reload();
  198. }
  199. });
  200. });
  201. }
  202. }
  203. });
  204. }
  205. // 搜索
  206. function do_search() {
  207. var username = $("#username").val();
  208. var wechat = $("#wechat").val();
  209. var qq = $("#qq").val();
  210. var port = $("#port").val();
  211. var pay_way = $("#pay_way option:checked").val();
  212. var status = $("#status option:checked").val();
  213. var enable = $("#enable option:checked").val();
  214. window.location.href = '{{url('admin/userList')}}' + '?username=' + username + '&wechat=' + wechat + '&qq=' + qq + '&port=' + port + '&pay_way=' + pay_way + '&status=' + status + '&enable=' + enable;
  215. }
  216. // 重置
  217. function do_reset() {
  218. window.location.href = '{{url('admin/userList')}}';
  219. }
  220. // 导出配置
  221. function do_export(id) {
  222. window.location.href = '{{url('admin/export?id=')}}' + id;
  223. }
  224. // 流量监控
  225. function do_monitor(id) {
  226. window.location.href = '{{url('admin/monitor?id=')}}' + id;
  227. }
  228. // 重置流量
  229. function resetTraffic(id) {
  230. $.post("{{url('admin/resetUserTraffic')}}", {_token:'{{csrf_token()}}', id:id}, function (ret) {
  231. layer.msg(ret.message, {time:1000}, function() {
  232. window.location.reload();
  233. });
  234. });
  235. }
  236. </script>
  237. @endsection