index.blade.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. @extends('salesman.layouts.app')
  2. @section('panel_content')
  3. <div class="aiz-titlebar mt-2 mb-4">
  4. <div class="row align-items-center">
  5. <div class="col-md-6">
  6. <h1 class="h3">{{translate('All Sellers')}}</h1>
  7. </div>
  8. </div>
  9. <div class="col text-right">
  10. <a href="{{ route('shops.create') }}" class="btn btn-circle btn-info">
  11. <span>{{translate('Add Virtual Seller')}}</span>
  12. </a>
  13. </div>
  14. </div>
  15. <div class="card">
  16. <div class="card-header row gutters-5">
  17. <div class="col">
  18. <h5 class="mb-md-0 h6">{{ translate('Sellers') }}</h5>
  19. </div>
  20. <div class="col-md-4">
  21. <form class="" id="sort_brands" action="" method="GET">
  22. <div class="input-group input-group-sm">
  23. <input type="text" class="form-control" id="search" name="search" @isset($sort_search) value="{{ $sort_search }}" @endisset placeholder="{{ translate('Type name or email & Enter') }}">
  24. </div>
  25. </form>
  26. </div>
  27. </div>
  28. <div class="card-body">
  29. <table class="table aiz-table mb-0">
  30. <thead>
  31. <tr>
  32. <th>{{translate('Name')}}</th>
  33. <th data-breakpoints="lg">{{translate('Phone')}}</th>
  34. <th data-breakpoints="lg">{{translate('Email Address')}}</th>
  35. <th data-breakpoints="lg">{{translate('Verification Info')}}</th>
  36. <th data-breakpoints="lg">{{translate('Approval')}}</th>
  37. <th data-breakpoints="lg">{{ translate('Num. of Products') }}</th>
  38. <th data-breakpoints="lg">{{ translate('Pending Balance') }}</th>
  39. <th data-breakpoints="lg">{{ translate('Wallet Money') }}</th>
  40. <th data-breakpoints="lg">{{ translate('Views') }}</th>
  41. <th width="10%">{{translate('Options')}}</th>
  42. </tr>
  43. </thead>
  44. <tbody>
  45. @foreach($shops as $key => $shop)
  46. <tr>
  47. <td>@if($shop->user->banned == 1) <i class="fa fa-ban text-danger" aria-hidden="true"></i> @endif {{$shop->name}}@if($shop->user->is_virtual == 1) (<font color="red">{{translate('Virtual')}}</font>) @endif</td>
  48. <td>{{$shop->user->phone}}</td>
  49. <td>{{$shop->user->email}}</td>
  50. <td>
  51. @if ($shop->verification_info != null)
  52. <a href="{{ route('sellers.show_verification_request', $shop->id) }}">
  53. <span class="badge badge-inline badge-info">{{translate('Show')}}</span>
  54. </a>
  55. @endif
  56. </td>
  57. <td>
  58. <label class="aiz-switch aiz-switch-success mb-0">
  59. @if (get_setting('salesman_reviews_switch') == 1)
  60. <input onchange="update_approved(this)" value="{{ $shop->id }}" type="checkbox" <?php if($shop->verification_status == 1) echo "checked";?> >
  61. @else
  62. <input disabled readonly value="{{ $shop->id }}" type="checkbox" <?php if($shop->verification_status == 1) echo "checked";?> >
  63. @endif
  64. <span class="slider round"></span>
  65. </label>
  66. </td>
  67. <td>{{ $shop->user->products->count() }}</td>
  68. <td>
  69. @if ($shop->admin_to_pay >= 0)
  70. {{ single_price($shop->admin_to_pay) }}
  71. @else
  72. {{ single_price(abs($shop->admin_to_pay)) }} ({{ translate('Due to Admin') }})
  73. @endif
  74. </td>
  75. <td >
  76. {{single_price($shop->user->balance)}}
  77. </td>
  78. <td >
  79. {{translate('base num')}}:{{$shop->view_base_num}}
  80. <br>
  81. {{translate('inc num')}}:{{$shop->view_inc_num}}
  82. </td>
  83. <td>
  84. <div class="dropdown">
  85. <button type="button" class="btn btn-sm btn-circle btn-soft-primary btn-icon dropdown-toggle no-arrow" data-toggle="dropdown" href="javascript:void(0);" role="button" aria-haspopup="false" aria-expanded="false">
  86. <i class="las la-ellipsis-v"></i>
  87. </button>
  88. <div class="dropdown-menu dropdown-menu-right dropdown-menu-xs">
  89. <a href="#" onclick="show_seller_profile('{{$shop->id}}');" class="dropdown-item">
  90. {{translate('Profile')}}
  91. </a>
  92. <a href="{{route('sellers.login', encrypt($shop->id))}}" class="dropdown-item">
  93. {{translate('Log in as this Seller')}}
  94. </a>
  95. <span onclick="show_chat_modal({{$shop->user->id}})" class="dropdown-item" style="cursor:pointer;">
  96. {{translate('Message Seller')}}
  97. </span>
  98. <span onclick="show_view({{$shop->id}},{{$shop->view_inc_num}},{{$shop->view_base_num}})" class="dropdown-item" style="cursor:pointer;">
  99. {{translate('Views')}}
  100. </span>
  101. </div>
  102. </div>
  103. </td>
  104. </tr>
  105. @endforeach
  106. </tbody>
  107. </table>
  108. <div class="aiz-pagination">
  109. {{ $shops->appends(request()->input())->links() }}
  110. </div>
  111. </div>
  112. </div>
  113. @endsection
  114. @section('modal')
  115. <!-- Seller Profile Modal -->
  116. <div class="modal fade" id="profile_modal">
  117. <div class="modal-dialog">
  118. <div class="modal-content" id="profile-modal-content">
  119. </div>
  120. </div>
  121. </div>
  122. <div class="modal fade" id="chat_modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  123. <div class="modal-dialog modal-dialog-centered modal-dialog-zoom product-modal" id="modal-size" role="document">
  124. <div class="modal-content position-relative">
  125. <div class="modal-header">
  126. <h5 class="modal-title fw-600 h5">{{ translate('Any query about this seller') }}</h5>
  127. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  128. <span aria-hidden="true">&times;</span>
  129. </button>
  130. </div>
  131. <form action="{{ route('conversations.salesman_store') }}" method="POST" enctype="multipart/form-data">
  132. @csrf
  133. <input type="hidden" name="receiver_id" id="receiver_id" value="">
  134. <div class="modal-body gry-bg px-3 pt-3">
  135. {{--<div class="form-group">
  136. <input type="text" class="form-control mb-3" name="title"
  137. value="" placeholder="{{ translate('Title') }}"
  138. required>
  139. </div>--}}
  140. <div class="form-group">
  141. <textarea class="form-control" rows="8" name="title" required
  142. placeholder="{{ translate('Title') }}"></textarea>
  143. </div>
  144. </div>
  145. <div class="modal-footer">
  146. <button type="button" class="btn btn-outline-primary fw-600"
  147. data-dismiss="modal">{{ translate('Cancel') }}</button>
  148. <button type="submit" class="btn btn-primary fw-600">{{ translate('Send') }}</button>
  149. </div>
  150. </form>
  151. </div>
  152. </div>
  153. </div>
  154. @endsection
  155. @section('script')
  156. <script src="https://cdn.bootcdn.net/ajax/libs/layer/3.5.1/layer.min.js"></script>
  157. <script type="text/javascript">
  158. function show_view(shop_id,view_inc_num,view_base_num) {
  159. var content = ' <div class="row" style="width: 420px; margin-left:7px; margin-top:10px;">'
  160. +'<div class="col-sm-12">'
  161. +'<div class="input-group">'
  162. +'<span class="input-group-addon"> 基础访问量:</span>'
  163. +'<input id="base_num" type="text" value="'+view_base_num+'" class="form-control" placeholder="基础访问量">'
  164. +'</div>'
  165. +'</div>'
  166. +'<div class="col-sm-12" style="margin-top:3px;">'
  167. +'<div class="input-group">'
  168. +'<span class="input-group-addon"> 每日递增量:</span>'
  169. +'<input id="inc_num" type="text" value="'+view_inc_num+'" class="form-control" placeholder="每日递增">'
  170. +'</div>'
  171. +'</div>'
  172. +'</div>';
  173. layer.open({
  174. type: 1,
  175. title:'访问量',
  176. skin:'layui-layer-rim',
  177. area:['450px', 'auto'],
  178. content: content,
  179. btn:['保存','取消'],
  180. btn1: function (index,layero) {
  181. var inc_num = $("#inc_num").val();
  182. var base_num = $("#base_num").val();
  183. $.post('{{ route('sellers.setviews') }}',{_token:'{{ @csrf_token() }}', shop_id:shop_id,inc_num:inc_num,base_num:base_num}, function(data){
  184. layer.msg(data.msg,function(){
  185. location.reload();
  186. });
  187. },'json');
  188. },
  189. btn2:function (index,layero) {
  190. layer.close(index);
  191. }
  192. });
  193. }
  194. function show_seller_profile(id){
  195. $.post('{{ route('salesman.sellers_profile_modal') }}',{_token:'{{ @csrf_token() }}', id:id}, function(data){
  196. $('#profile_modal #profile-modal-content').html(data);
  197. $('#profile_modal').modal('show', {backdrop: 'static'});
  198. });
  199. }
  200. function sort_sellers(el){
  201. $('#sort_sellers').submit();
  202. }
  203. function show_chat_modal(receiver_id) {
  204. $('#receiver_id').val(receiver_id);
  205. $('#chat_modal').modal('show');
  206. }
  207. function update_approved(el){
  208. if(el.checked){
  209. var status = 1;
  210. }
  211. else{
  212. var status = 0;
  213. }
  214. $.post('{{ route('salesman.sellers.approved') }}', {_token:'{{ csrf_token() }}', id:el.value, status:status}, function(data){
  215. if(data == 1){
  216. AIZ.plugins.notify('success', '{{ translate('Approved sellers updated successfully') }}');
  217. }
  218. else{
  219. AIZ.plugins.notify('danger', '{{ translate('Something went wrong') }}');
  220. }
  221. });
  222. }
  223. </script>
  224. @endsection