export.blade.php 7.0 KB

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