index.blade.php 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. @extends('layouts.app')
  2. @section('title')称重管理@endsection
  3. @section('content')
  4. <span id="nav2">
  5. @component('weight.menu')@endcomponent
  6. @component('weight.package.menu')@endcomponent
  7. </span>
  8. <div class="d-none" id="list">
  9. <div class="container-fluid">
  10. <div id="form_div"></div>
  11. <span class="dropdown">
  12. <button class="btn btn-outline-dark btn-sm form-control-sm dropdown-toggle tooltipTarget mt-1 mb-1" :class="[checkData.length>0?'btn-dark text-light':'']"
  13. data-toggle="dropdown" title="导出所有页将会以搜索条件得到的过滤结果,将其全部记录(每一页)导出">
  14. 导出Excel
  15. </button>
  16. <div class="dropdown-menu">
  17. <a class="dropdown-item" @click="packageExport(false)" href="javascript:">导出勾选内容</a>
  18. <a class="dropdown-item" @click="packageExport(true)" href="javascript:">导出所有页</a>
  19. </div>
  20. </span>
  21. <div class="">
  22. <table class="table table-striped table-sm text-nowrap table-hover">
  23. <tr>
  24. <th>
  25. <label for="all">
  26. <input id="all" type="checkbox" @click="checkAll($event)">全选
  27. </label>
  28. </th>
  29. <th>序号</th>
  30. <th>ID</th>
  31. <th>货主</th>
  32. <th>快递单号</th>
  33. <th>波次号</th>
  34. <th>订单号</th>
  35. <th>物流公司</th>
  36. <th>设备</th>
  37. <th>重(KG)</th>
  38. <th>长*宽*高(cm)</th>
  39. <th>体积(cm³)</th>
  40. <th>纸箱</th>
  41. <th>状态</th>
  42. <th>波次规则</th>
  43. <th>称重时间</th>
  44. <th>收件人</th>
  45. <th>收件人电话</th>
  46. </tr>
  47. <tr v-for="(package,i) in packages">
  48. <td>
  49. <input class="checkItem" type="checkbox" :value="package.id" v-model="checkData">
  50. </td>
  51. <td>@{{ i+1 }}</td>
  52. <td class="text-muted">@{{package.id}}</td>
  53. <td>@{{package.ownerName}}</td>
  54. <td>@{{package.logisticNumber}}</td>
  55. <td class="text-muted">@{{package.batchNumber}}</td>
  56. <td>@{{package.order_code}}</td>
  57. <td class="text-muted">@{{package.logisticName}}</td>
  58. <td class="text-muted">@{{package.measuringMachineName}}</td>
  59. <td>@{{package.weight}}</td>
  60. <td>@{{package.length}}<a v-if="package.length" class="text-primary">*</a>@{{package.width}}<a class="text-primary" v-if="package.width">*</a>@{{package.height}}</td>
  61. <td>@{{package.bulk}}</td>
  62. <td>@{{package.paperBoxName}}</td>
  63. <td :class="[package.status==='已上传'?'text-success':'']">@{{package.status}}</td>
  64. <td class="text-muted">@{{package.batchRule}}</td>
  65. <td class="text-muted">@{{package.weighed_at}}</td>
  66. <td class="text-muted">@{{package.recipient}}</td>
  67. <td class="text-muted">@{{package.recipientMobile}}</td>
  68. </tr>
  69. </table>
  70. <div class="text-info h5 btn btn">{{$packages->count()}}/{{$packages->total()}}</div>
  71. @if(isset($request))
  72. {{$packages->appends($request)->links()}}
  73. @else
  74. {{$packages->links()}}
  75. @endif
  76. </div>
  77. </div>
  78. </div>
  79. @endsection
  80. @section('lastScript')
  81. <script type="text/javascript" src="{{asset('js/queryForm/export.js')}}"></script>
  82. <script type="text/javascript" src="{{asset('js/queryForm/queryForm200724.js')}}"></script>
  83. <script>
  84. @if(isset($request))
  85. let request={!! json_encode($request) !!};
  86. @endif
  87. new Vue({
  88. el:"#list",
  89. data:{
  90. packages:[
  91. @foreach($packages as $package)
  92. {id:'{{$package->id}}',ownerName:'{{$package->owner_name}}',logisticNumber:'{{$package->logistic_number}}'
  93. ,wmsNumber:'{{$package->delivery_number}}',batchNumber:'{{$package->batch_number}}',batchRule:'{{$package->batch_rule}}'
  94. ,recipient:'{{$package->recipient}}',recipientMobile:'{{$package->recipient_mobile}}',logisticName:'{{$package->logistic_name}}'
  95. ,measuringMachineName:'{{$package->measuring_machine_name}}',
  96. weight:'{{$package->weight}}', length:'{{$package->length}}',width:'{{$package->width}}',height:'{{$package->height}}',
  97. bulk:'{{$package->bulk}}',paperBoxName:'{{$package->paperBox_name}}',
  98. status:'{{$package->status}}',created_at:'{{$package->created_at}}',weighed_at:'{{$package->weighed_at}}',order_code:'{{$package->order_code}}'},
  99. @endforeach
  100. ],
  101. i:0,
  102. owners:[
  103. @foreach($owners as $owner)
  104. {name:'{{$owner->id}}',value:'{{$owner->name}}'},
  105. @endforeach
  106. ],
  107. checkData:[],
  108. form:'',
  109. sum:{!! $packages->total() !!},
  110. },
  111. mounted:function(){
  112. $(".tooltipTarget").tooltip({'trigger':'hover'});
  113. $('#list').removeClass('d-none');
  114. let _this = this;
  115. let data = [[
  116. {name:'created_at_start',type:'dataTime',tip:'选择显示指定日期的起始时间'},
  117. {name:'owner_id',type:'search_select',tip:['',''],placeholder:['客户',''],data:_this.owners},
  118. {name:'logistic_number',type:'input',tip:'快递单号:支持15内模糊搜索与15天外精确搜索',placeholder:'快递单号'},
  119. ],[
  120. {name:'created_at_end',type:'dataTime',tip:'选择显示指定日期的结束时间'},
  121. {name:'batch_number',type:'input',tip:'波次号:支持15内模糊搜索与15天外精确搜索',placeholder:'波次号'}
  122. ]];
  123. _this.form = new query({
  124. el:'#form_div',
  125. condition:data,
  126. });
  127. _this.form.init();
  128. },
  129. watch:{
  130. checkData:{
  131. handler(){
  132. if (this.checkData.length === this.packages.length){
  133. document.querySelector('#all').checked = true;
  134. }else {
  135. document.querySelector('#all').checked = false;
  136. }
  137. },
  138. deep:true
  139. }
  140. },
  141. methods:{
  142. checkAll(e){
  143. if (e.target.checked){
  144. this.packages.forEach((el,i)=>{
  145. if (this.checkData.indexOf(el.id) == '-1'){
  146. this.checkData.push(el.id);
  147. }
  148. });
  149. }else {
  150. this.checkData = [];
  151. }
  152. },
  153. packageExport(checkAllSign){
  154. let url = '{{url('package/export')}}';
  155. let token='{{ csrf_token() }}';
  156. excelExport(checkAllSign,this.checkData,url,this.sum,token);
  157. },
  158. },
  159. });
  160. </script>
  161. @endsection