export.blade.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. @extends('admin.layouts')
  2. @section('css')
  3. <link href="/assets/global/vendor/bootstrap-table/bootstrap-table.min.css" rel="stylesheet">
  4. <link href="/assets/global/fonts/font-awesome/css/all.min.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->username}}】连接配置信息</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->profile['passwd']) <span class="label label-danger">单</span> @endif
  37. @if($node->ipv6) <span class="label label-danger">IPv6</span> @endif
  38. </td>
  39. <td>{{$node->server}}</td>
  40. <td>{{$node->ip}}</td>
  41. <td>
  42. @can('admin.user.exportProxy')
  43. <div class="btn-group">
  44. <button class="btn btn-sm btn-outline-info"
  45. onclick="getInfo('{{$node->id}}','code')"><i class="fas fa-code"></i>
  46. </button>
  47. <button class="btn btn-sm btn-outline-info"
  48. onclick="getInfo('{{$node->id}}','qrcode')"><i class="fas fa-qrcode"></i>
  49. </button>
  50. <button class="btn btn-sm btn-outline-info"
  51. onclick="getInfo('{{$node->id}}','text')"><i class="fas fa-list"></i>
  52. </button>
  53. </div>
  54. @endcan
  55. </td>
  56. </tr>
  57. @endforeach
  58. </tbody>
  59. </table>
  60. </div>
  61. <div class="panel-footer">
  62. <div class="row">
  63. <div class="col-sm-4">
  64. 共 <code>{{$nodeList->total()}}</code> 个账号
  65. </div>
  66. <nav class="Page navigation float-right">
  67. {{$nodeList->links()}}
  68. </nav>
  69. </div>
  70. </div>
  71. </div>
  72. </div>>
  73. @endsection
  74. @section('javascript')
  75. <script src="/assets/global/vendor/bootstrap-table/bootstrap-table.min.js"></script>
  76. <script src="/assets/global/vendor/bootstrap-table/extensions/mobile/bootstrap-table-mobile.min.js"></script>
  77. <script src="/assets/custom/jquery-qrcode/jquery.qrcode.min.js"></script>
  78. <script src="/assets/global/js/Plugin/webui-popover.js"></script>
  79. @can('admin.user.exportProxy')
  80. <script>
  81. function getInfo(id, type) {
  82. $.post("{{route('admin.user.exportProxy', $user)}}", {_token: '{{csrf_token()}}', id: id, type: type},
  83. function(ret) {
  84. if (ret.status === 'success') {
  85. switch (type) {
  86. case 'code':
  87. swal.fire({
  88. html: '<textarea class="form-control" rows="8" readonly="readonly">' + ret.data +
  89. '</textarea>' +
  90. '<a href="' + ret.data + '" class="btn btn-danger btn-block mt-10">打开' +
  91. ret.title + '</a>',
  92. showConfirmButton: false,
  93. });
  94. break;
  95. case 'qrcode':
  96. swal.fire({
  97. title: '{{trans('user.scan_qrcode')}}',
  98. html: '<div id="qrcode"></div>',
  99. onBeforeOpen: () => {
  100. $('#qrcode').qrcode({text: ret.data});
  101. },
  102. showConfirmButton: false,
  103. });
  104. break;
  105. case 'text':
  106. swal.fire({
  107. title: '{{trans('user.node.info')}}',
  108. html: '<textarea class="form-control" rows="12" readonly="readonly">' + ret.data +
  109. '</textarea>',
  110. showConfirmButton: false,
  111. });
  112. break;
  113. default:
  114. swal.fire({title: ret.title, text: ret.data});
  115. }
  116. }
  117. });
  118. }
  119. </script>
  120. @endcan
  121. @endsection