export.blade.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. @extends('admin.layouts')
  2. @section('css')
  3. <link href="/assets/global/vendor/bootstrap-table/bootstrap-table.min.css" type="text/css" rel="stylesheet">
  4. <link href="/assets/global/fonts/font-awesome/font-awesome.css" type="text/css" rel="stylesheet">
  5. @endsection
  6. @section('content')
  7. <div class="page-content container-fluid">
  8. <div class="panel">
  9. <div class="panel-heading">
  10. <h2 class="panel-title">【{{$user->email}}】连接配置信息</h2>
  11. </div>
  12. <div class="panel-body">
  13. <table class="text-md-center" data-toggle="table" data-mobile-responsive="true">
  14. <thead class="thead-default">
  15. <tr>
  16. <th>#</th>
  17. <th>节点</th>
  18. <th>扩展</th>
  19. <th>域名</th>
  20. <th>IPv4</th>
  21. <th>配置信息</th>
  22. </tr>
  23. </thead>
  24. <tbody>
  25. @foreach($nodeList as $node)
  26. <tr>
  27. <td>{{$loop->iteration}}</td>
  28. <td>
  29. @can('admin.node.edit')
  30. <a href="{{route('admin.node.edit', $node)}}" target="_blank"> {{$node->name}} </a>
  31. @else
  32. {{$node->name}}
  33. @endcan
  34. </td>
  35. <td>
  36. @if($node->compatible) <span class="label label-info">兼</span> @endif
  37. @if($node->single) <span class="label label-danger">单</span> @endif
  38. @if($node->ipv6) <span class="label label-danger">IPv6</span> @endif
  39. </td>
  40. <td>{{$node->server}}</td>
  41. <td>{{$node->ip}}</td>
  42. <td>
  43. @can('admin.user.exportProxy')
  44. <div class="btn-group">
  45. <button class="btn btn-sm btn-outline-info"
  46. onclick="getInfo('{{$node->id}}','code')"><i class="icon fa-code"></i>
  47. </button>
  48. <button class="btn btn-sm btn-outline-info"
  49. onclick="getInfo('{{$node->id}}','qrcode')"><i class="icon fa-qrcode"></i>
  50. </button>
  51. <button class="btn btn-sm btn-outline-info"
  52. onclick="getInfo('{{$node->id}}','text')"><i class="icon fa-list"></i>
  53. </button>
  54. </div>
  55. @endcan
  56. </td>
  57. </tr>
  58. @endforeach
  59. </tbody>
  60. </table>
  61. </div>
  62. <div class="panel-footer">
  63. <div class="row">
  64. <div class="col-sm-4">
  65. 共 <code>{{$nodeList->total()}}</code> 个账号
  66. </div>
  67. <nav class="Page navigation float-right">
  68. {{$nodeList->links()}}
  69. </nav>
  70. </div>
  71. </div>
  72. </div>
  73. </div>>
  74. @endsection
  75. @section('javascript')
  76. <script src="/assets/global/vendor/bootstrap-table/bootstrap-table.min.js" type="text/javascript"></script>
  77. <script src="/assets/global/vendor/bootstrap-table/extensions/mobile/bootstrap-table-mobile.min.js" type="text/javascript"></script>
  78. <script src="/assets/custom/Plugin/jquery-qrcode/jquery.qrcode.min.js" type="text/javascript"></script>
  79. <script src="/assets/global/js/Plugin/webui-popover.js" type="text/javascript"></script>
  80. @can('admin.user.exportProxy')
  81. <script type="text/javascript">
  82. function getInfo(id, type) {
  83. $.post("{{route('admin.user.exportProxy', $user)}}", {_token: '{{csrf_token()}}', id: id, type: type},
  84. function(ret) {
  85. if (ret.status === 'success') {
  86. switch (type) {
  87. case 'code':
  88. swal.fire({
  89. html: '<textarea class="form-control" rows="8" readonly="readonly">' + ret.data +
  90. '</textarea>' +
  91. '<a href="' + ret.data + '" class="btn btn-danger btn-block mt-10">打开' +
  92. ret.title + '</a>',
  93. showConfirmButton: false,
  94. });
  95. break;
  96. case 'qrcode':
  97. swal.fire({
  98. title: '{{trans('home.scan_qrcode')}}',
  99. html: '<div id="qrcode"></div>',
  100. onBeforeOpen: () => {
  101. $('#qrcode').qrcode({text: ret.data});
  102. },
  103. showConfirmButton: false,
  104. });
  105. break;
  106. case 'text':
  107. swal.fire({
  108. title: '{{trans('home.setting_info')}}',
  109. html: '<textarea class="form-control" rows="12" readonly="readonly">' + ret.data +
  110. '</textarea>',
  111. showConfirmButton: false,
  112. });
  113. break;
  114. default:
  115. swal.fire({title: ret.title, text: ret.data});
  116. }
  117. }
  118. });
  119. }
  120. </script>
  121. @endcan
  122. @endsection