nodeList.blade.php 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. @extends('user.layouts')
  2. @section('css')
  3. <script src="//at.alicdn.com/t/font_682457_e6aq10jsbq0yhkt9.js"></script>
  4. <link rel="stylesheet" href="/assets/global/fonts/font-awesome/font-awesome.css">
  5. <link rel="stylesheet" href="/assets/global/vendor/webui-popover/webui-popover.css">
  6. @endsection
  7. @section('content')
  8. <!-- BEGIN CONTENT BODY -->
  9. <div class="page-content container-fluid">
  10. <div class="row">
  11. @if(!$nodeList->isEmpty())
  12. @foreach($nodeList as $node)
  13. <div class="col-xxl-3 col-xl-4 col-sm-6">
  14. <div class="card card-inverse card-shadow bg-white">
  15. <div class="card-block p-30 row">
  16. <div class="col-4">
  17. <svg class="w-p100 text-center" aria-hidden="true">
  18. <use xlink:href="@if($node->country_code)#icon-{{$node->country_code}}@else #icon-un @endif"></use>
  19. </svg>
  20. </div>
  21. <div class="col-8 text-break text-right">
  22. <p class="font-size-20 blue-600">
  23. @if(!$node->online_status)
  24. <i class="red-600 icon wb-warning" data-content="线路不稳定/维护中" data-trigger="hover" data-toggle="popover" data-placement="top"></i>
  25. @endif
  26. @if($node->traffic_rate > 1)
  27. <i class="green-600 icon wb-info-circle" data-content="{{$node->traffic_rate}} 倍流量消耗" data-trigger="hover" data-toggle="popover" data-placement="top"></i>
  28. @endif
  29. <a data-toggle="modal" href="#txt_{{$node->id}}">{{$node->name}}</a>
  30. <span class="badge badge-pill font-size-10 up m-0 @if($node->labels->label_id == 1) badge-success @elseif($node->labels->label_id == 7) badge-danger @else badge-info @endif">{{$node->labels->labelInfo->name}}</span>
  31. </p>
  32. <blockquote>
  33. {{$node->desc}}
  34. </blockquote>
  35. <p class="font-size-14">
  36. <button class="btn btn-sm btn-outline-info" data-toggle="modal" href="#link_{{$node->id}}"><i class="icon fa-code"></i></button>
  37. <button class="btn btn-sm btn-outline-info" data-toggle="modal" href="#qrcode_{{$node->id}}"><i class="icon fa-qrcode"></i></button>
  38. </p>
  39. </div>
  40. </div>
  41. </div>
  42. </div>
  43. @endforeach
  44. @endif
  45. </div>
  46. </div>
  47. @foreach ($nodeList as $node)
  48. <div class="modal fade draggable-modal" id="txt_{{$node->id}}" tabindex="-1" role="basic" aria-hidden="true">
  49. <div class="modal-dialog">
  50. <div class="modal-content">
  51. <div class="modal-header">
  52. <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
  53. <h4 class="modal-title">{{trans('home.setting_info')}}</h4>
  54. </div>
  55. <div class="modal-body">
  56. <textarea class="form-control" rows="12" readonly="readonly">{{$node->txt}}</textarea>
  57. </div>
  58. </div>
  59. </div>
  60. </div>
  61. <!-- 配置链接 -->
  62. <div class="modal fade draggable-modal" id="link_{{$node->id}}" tabindex="-1" role="basic" aria-hidden="true">
  63. <div class="modal-dialog">
  64. <div class="modal-content">
  65. <div class="modal-header">
  66. <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
  67. <h4 class="modal-title">{{$node->name}}</h4>
  68. </div>
  69. <div class="modal-body">
  70. @if($node->type == 1)
  71. @if($node->ss_scheme)
  72. <textarea class="form-control" rows="3" readonly="readonly">{{$node->ss_scheme}}</textarea>
  73. <a href="{{$node->ss_scheme}}" class="btn btn-danger btn-block mt-10">打开SS</a>
  74. @else
  75. <textarea class="form-control" rows="5" readonly="readonly">{{$node->ssr_scheme}}</textarea>
  76. <a href="{{$node->ssr_scheme}}" class="btn btn-danger btn-block mt-10">打开SSR</a>
  77. @endif
  78. @else
  79. @if($node->v2_scheme)
  80. <textarea class="form-control" rows="3" readonly="readonly">{{$node->v2_scheme}}</textarea>
  81. <a href="{{$node->v2_scheme}}" class="btn btn-danger btn-block mt-10">打开V2ray</a>
  82. @endif
  83. @endif
  84. </div>
  85. </div>
  86. </div>
  87. </div>
  88. <!-- 配置二维码 -->
  89. <div class="modal fade" id="qrcode_{{$node->id}}" tabindex="-1" role="dialog" aria-hidden="true">
  90. <div class="modal-dialog @if($node->type == 2 || !$node->compatible) modal-sm @endif">
  91. <div class="modal-content">
  92. <div class="modal-header">
  93. <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
  94. <h4 class="modal-title">{{trans('home.scan_qrcode')}}</h4>
  95. </div>
  96. <div class="modal-body">
  97. <div class="row">
  98. @if ($node->type == 1)
  99. @if ($node->compatible)
  100. <div class="col-md-6">
  101. <div id="qrcode_ssr_img_{{$node->id}}" style="text-align: center;"></div>
  102. </div>
  103. <div class="col-md-6">
  104. <div id="qrcode_ss_img_{{$node->id}}" style="text-align: center;"></div>
  105. </div>
  106. @else
  107. <div class="col-md-12">
  108. <div id="qrcode_ssr_img_{{$node->id}}" style="text-align: center;"></div>
  109. </div>
  110. @endif
  111. @else
  112. <div class="col-md-12">
  113. <div id="qrcode_v2_img_{{$node->id}}" style="text-align: center;"></div>
  114. </div>
  115. @endif
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. </div>
  121. @endforeach
  122. @endsection @section('script')
  123. <script src="/assets/custom/Plugin/jquery-qrcode/jquery.qrcode.min.js" type="text/javascript"></script>
  124. <script src="/assets/global/js/Plugin/webui-popover.js"></script>
  125. <script type="text/javascript">
  126. const UIModals = function () {
  127. const n = function () {
  128. @foreach($nodeList as $node)
  129. $("#txt_{{$node->id}}").draggable({
  130. handle: ".modal-header"
  131. });
  132. $("#qrcode_{{$node->id}}").draggable({
  133. handle: ".modal-header"
  134. });
  135. @endforeach
  136. };
  137. return {
  138. init: function () {
  139. n()
  140. }
  141. }
  142. }();
  143. jQuery(document).ready(function () {
  144. UIModals.init()
  145. });
  146. // 循环输出节点scheme用于生成二维码
  147. @foreach ($nodeList as $node)
  148. @if($node->type == 1)
  149. $('#qrcode_ssr_img_{{$node->id}}').qrcode("{{$node->ssr_scheme}}");
  150. @if($node->ss_scheme)
  151. $('#qrcode_ss_img_{{$node->id}}').qrcode("{{$node->ss_scheme}}");
  152. @endif
  153. @else
  154. $('#qrcode_v2_img_{{$node->id}}').qrcode("{{$node->v2_scheme}}");
  155. @endif
  156. @endforeach
  157. </script>
  158. @endsection