userList.blade.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  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 red btn-outline" onclick="delUser('{{$user->id}}')">删除</button>-->
  136. <button type="button" class="btn btn-sm green btn-outline" onclick="do_export('{{$user->id}}')">配置信息</button>
  137. <button type="button" class="btn btn-sm purple btn-outline" onclick="do_monitor('{{$user->id}}')">流量监控</button>
  138. </td>
  139. </tr>
  140. @endforeach
  141. @endif
  142. </tbody>
  143. </table>
  144. </div>
  145. <div class="row">
  146. <div class="col-md-4 col-sm-4">
  147. <div class="dataTables_info" role="status" aria-live="polite">共 {{$userList->total()}} 个账号</div>
  148. </div>
  149. <div class="col-md-8 col-sm-8">
  150. <div class="dataTables_paginate paging_bootstrap_full_number pull-right">
  151. {{ $userList->links() }}
  152. </div>
  153. </div>
  154. </div>
  155. </div>
  156. </div>
  157. <!-- END EXAMPLE TABLE PORTLET-->
  158. </div>
  159. </div>
  160. <!-- END PAGE BASE CONTENT -->
  161. </div>
  162. <!-- END CONTENT BODY -->
  163. @endsection
  164. @section('script')
  165. <script src="/assets/global/plugins/bootbox/bootbox.min.js" type="text/javascript"></script>
  166. <script type="text/javascript">
  167. // 添加账号
  168. function addUser() {
  169. window.location.href = '{{url('admin/addUser')}}';
  170. }
  171. // 编辑账号
  172. function editUser(id) {
  173. window.location.href = '{{url('admin/editUser?id=')}}' + id + '&page=' + '{{Request::get('page', 1)}}';
  174. }
  175. // 删除账号
  176. function delUser(id) {
  177. var _token = '{{csrf_token()}}';
  178. bootbox.confirm({
  179. message: "确定删除账号?",
  180. buttons: {
  181. confirm: {
  182. label: '确定',
  183. className: 'btn-success'
  184. },
  185. cancel: {
  186. label: '取消',
  187. className: 'btn-danger'
  188. }
  189. },
  190. callback: function (result) {
  191. if (result) {
  192. $.post("{{url('admin/delUser')}}", {id:id, _token:_token}, function(ret){
  193. if (ret.status == 'success') {
  194. bootbox.alert(ret.message, function(){
  195. window.location.reload();
  196. });
  197. } else {
  198. bootbox.alert(ret.message);
  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. </script>
  229. @endsection