export.blade.php 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. @extends('admin.layouts')
  2. @section('css')
  3. <link rel="stylesheet" href="/assets/global/vendor/bootstrap-table/bootstrap-table.min.css">
  4. <link rel="stylesheet" href="/assets/global/fonts/font-awesome/font-awesome.css">
  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-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 class="table-striped">
  25. @foreach($nodeList as $node)
  26. <tr>
  27. <td>{{$loop->iteration}}</td>
  28. <td>
  29. <a href="/admin/editNode?id={{$node->id}}" target="_blank"> {{$node->name}} </a>
  30. </td>
  31. <td>
  32. @if($node->compatible) <span class="label label-info">兼</span> @endif
  33. @if($node->single) <span class="label label-danger">单</span> @endif
  34. @if($node->ipv6) <span class="label label-danger">IPv6</span> @endif
  35. </td>
  36. <td>{{$node->server}}</td>
  37. <td>{{$node->ip}}</td>
  38. <td>
  39. <div class="btn-group">
  40. <button class="btn btn-info" data-toggle="modal" href="#txt_{{$node->id}}"><i class="icon fa-file-text"></i></button>
  41. <button class="btn btn-info" data-toggle="modal" href="#link_{{$node->id}}"><i class="icon fa-code"></i></button>
  42. <button class="btn btn-info" data-toggle="modal" href="#qrcode_{{$node->id}}"><i class="icon fa-qrcode"></i></button>
  43. </div>
  44. </td>
  45. </tr>
  46. @endforeach
  47. </tbody>
  48. </table>
  49. </div>
  50. <div class="panel-footer">
  51. <div class="row">
  52. <div class="col-sm-4">
  53. 共 {{$nodeList->total()}} 个账号
  54. </div>
  55. <div class="col-sm-8">
  56. <div class="Page navigation float-right">
  57. {{ $nodeList->links() }}
  58. </div>
  59. </div>
  60. </div>
  61. </div>
  62. </div>
  63. </div>
  64. @foreach ($nodeList as $node)
  65. <div class="modal fade draggable-modal" id="txt_{{$node->id}}" tabindex="-1" role="basic" aria-hidden="true">
  66. <div class="modal-dialog">
  67. <div class="modal-content">
  68. <div class="modal-header">
  69. <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
  70. <h4 class="modal-title">{{trans('home.setting_info')}}</h4>
  71. </div>
  72. <div class="modal-body">
  73. <textarea class="form-control" rows="12" readonly="readonly">{{$node->txt}}</textarea>
  74. </div>
  75. </div>
  76. </div>
  77. </div>
  78. <!-- 配置链接 -->
  79. <div class="modal fade draggable-modal" id="link_{{$node->id}}" tabindex="-1" role="basic" aria-hidden="true">
  80. <div class="modal-dialog">
  81. <div class="modal-content">
  82. <div class="modal-header">
  83. <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
  84. <h4 class="modal-title">{{$node->name}}</h4>
  85. </div>
  86. <div class="modal-body">
  87. @if($node->type == 1)
  88. @if($node->ss_scheme)
  89. <textarea class="form-control" rows="3" readonly="readonly">{{$node->ss_scheme}}</textarea>
  90. <a href="{{$node->ss_scheme}}" class="btn btn-danger btn-block mt-10">打开SS</a>
  91. @else
  92. <textarea class="form-control" rows="5" readonly="readonly">{{$node->ssr_scheme}}</textarea>
  93. <a href="{{$node->ssr_scheme}}" class="btn btn-danger btn-block mt-10">打开SSR</a>
  94. @endif
  95. @else
  96. @if($node->v2_scheme)
  97. <textarea class="form-control" rows="3" readonly="readonly">{{$node->v2_scheme}}</textarea>
  98. <a href="{{$node->v2_scheme}}" class="btn btn-danger btn-block mt-10">打开V2ray</a>
  99. @endif
  100. @endif
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. <!-- 配置二维码 -->
  106. <div class="modal fade" id="qrcode_{{$node->id}}" tabindex="-1" role="dialog" aria-hidden="true">
  107. <div class="modal-dialog @if($node->type == 2 || !$node->compatible) modal-sm @endif">
  108. <div class="modal-content">
  109. <div class="modal-header">
  110. <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
  111. <h4 class="modal-title">{{trans('home.scan_qrcode')}}</h4>
  112. </div>
  113. <div class="modal-body">
  114. <div class="row">
  115. @if ($node->type == 1)
  116. @if ($node->compatible)
  117. <div class="col-md-6">
  118. <div id="qrcode_ssr_img_{{$node->id}}" style="text-align: center;"></div>
  119. </div>
  120. <div class="col-md-6">
  121. <div id="qrcode_ss_img_{{$node->id}}" style="text-align: center;"></div>
  122. </div>
  123. @else
  124. <div class="col-md-12">
  125. <div id="qrcode_ssr_img_{{$node->id}}" style="text-align: center;"></div>
  126. </div>
  127. @endif
  128. @else
  129. <div class="col-md-12">
  130. <div id="qrcode_v2_img_{{$node->id}}" style="text-align: center;"></div>
  131. </div>
  132. @endif
  133. </div>
  134. </div>
  135. </div>
  136. </div>
  137. </div>
  138. @endforeach
  139. @endsection
  140. @section('script')
  141. <script src="/assets/global/vendor/bootstrap-table/bootstrap-table.min.js"></script>
  142. <script src="/assets/global/vendor/bootstrap-table/extensions/mobile/bootstrap-table-mobile.min.js"></script>
  143. <script src="/assets/custom/Plugin/jquery-qrcode/jquery.qrcode.min.js" type="text/javascript"></script>
  144. <script src="/assets/global/js/Plugin/webui-popover.js"></script>
  145. <script type="text/javascript">
  146. const UIModals = function () {
  147. const n = function () {
  148. @foreach($nodeList as $node)
  149. $("#txt_{{$node->id}}").draggable({handle: ".modal-header"});
  150. $("#link_{{$node->id}}").draggable({handle: ".modal-header"});
  151. $("#qrcode_{{$node->id}}").draggable({handle: ".modal-header"});
  152. @endforeach
  153. };
  154. return {
  155. init: function () {
  156. n()
  157. }
  158. }
  159. }();
  160. jQuery(document).ready(function () {
  161. UIModals.init()
  162. });
  163. // 循环输出节点scheme用于生成二维码
  164. @foreach ($nodeList as $node)
  165. @if($node->type == 1)
  166. $('#qrcode_ssr_img_{{$node->id}}').qrcode("{{$node->ssr_scheme}}");
  167. $('#download_qrcode_ssr_img_{{$node->id}}').attr({
  168. 'download': 'code',
  169. 'href': $('#qrcode_ssr_img_{{$node->id}} canvas')[0].toDataURL("image/png")
  170. });
  171. @if($node->compatible)
  172. $('#qrcode_ss_img_{{$node->id}}').qrcode("{{$node->ss_scheme}}");
  173. $('#download_qrcode_ss_img_{{$node->id}}').attr({
  174. 'download': 'code',
  175. 'href': $('#qrcode_ss_img_{{$node->id}} canvas')[0].toDataURL("image/png")
  176. });
  177. @endif
  178. @else
  179. $('#qrcode_v2_img_{{$node->id}}').qrcode("{{$node->v2_scheme}}");
  180. $('#download_qrcode_v2_img_{{$node->id}}').attr({
  181. 'download': 'code',
  182. 'href': $('#qrcode_v2_img_{{$node->id}} canvas')[0].toDataURL("image/png")
  183. });
  184. @endif
  185. @endforeach
  186. </script>
  187. @endsection