index.blade.php 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  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. {{$packages->appends($paginateParams)->links()}}
  72. </div>
  73. </div>
  74. </div>
  75. @endsection
  76. @section('lastScript')
  77. <script type="text/javascript" src="{{asset('js/queryForm/export200813.js')}}"></script>
  78. <script type="text/javascript" src="{{asset('js/queryForm/queryForm200813.js')}}"></script>
  79. <script>
  80. @if(isset($request))
  81. let request={!! json_encode($request) !!};
  82. @endif
  83. new Vue({
  84. el:"#list",
  85. data:{
  86. packages:[
  87. @foreach($packages as $package)
  88. {id:'{{$package->id}}',ownerName:'{{$package->owner_name}}',logisticNumber:'{{$package->logistic_number}}'
  89. ,wmsNumber:'{{$package->delivery_number}}',batchNumber:'{{$package->batch_number}}',batchRule:'{{$package->batch_rule}}'
  90. ,recipient:'{{$package->recipient}}',recipientMobile:'{{$package->recipient_mobile}}',logisticName:'{{$package->logistic_name}}'
  91. ,measuringMachineName:'{{$package->measuring_machine_name}}',
  92. weight:'{{$package->weight}}', length:'{{$package->length}}',width:'{{$package->width}}',height:'{{$package->height}}',
  93. bulk:'{{$package->bulk}}',paperBoxName:'{{$package->paperBox_name}}',
  94. status:'{{$package->status}}',created_at:'{{$package->created_at}}',weighed_at:'{{$package->weighed_at}}',order_code:'{{$package->order_code}}'},
  95. @endforeach
  96. ],
  97. i:0,
  98. owners:[
  99. @foreach($owners as $owner)
  100. {name:'{{$owner->id}}',value:'{{$owner->name}}'},
  101. @endforeach
  102. ],
  103. checkData:[],
  104. form:'',
  105. sum:{!! $packages->total() !!},
  106. },
  107. mounted:function(){
  108. $(".tooltipTarget").tooltip({'trigger':'hover'});
  109. $('#list').removeClass('d-none');
  110. let _this = this;
  111. let data = [[
  112. {name:'created_at_start',type:'dateTime',tip:'选择显示指定日期的起始时间'},
  113. {name:'owner_id',type:'search_select',tip:['',''],placeholder:['客户',''],data:_this.owners},
  114. {name:'logistic_number',type:'input',tip:'快递单号:可在两侧增加百分号(%)进行模糊搜索',placeholder:'快递单号'},
  115. ],[
  116. {name:'created_at_end',type:'dateTime',tip:'选择显示指定日期的结束时间'},
  117. {name:'batch_number',type:'input',tip:'波次号:可在两侧增加百分号(%)进行模糊搜索',placeholder:'波次号'}
  118. ]];
  119. _this.form = new query({
  120. el:'#form_div',
  121. condition:data,
  122. });
  123. _this.form.init();
  124. },
  125. watch:{
  126. checkData:{
  127. handler(){
  128. if (this.checkData.length === this.packages.length){
  129. document.querySelector('#all').checked = true;
  130. }else {
  131. document.querySelector('#all').checked = false;
  132. }
  133. },
  134. deep:true
  135. }
  136. },
  137. methods:{
  138. checkAll(e){
  139. if (e.target.checked){
  140. this.packages.forEach((el,i)=>{
  141. if (this.checkData.indexOf(el.id) == '-1'){
  142. this.checkData.push(el.id);
  143. }
  144. });
  145. }else {
  146. this.checkData = [];
  147. }
  148. },
  149. packageExport(checkAllSign){
  150. let url = '{{url('package/export')}}';
  151. let token='{{ csrf_token() }}';
  152. excelExport(checkAllSign,this.checkData,url,this.sum,token);
  153. },
  154. },
  155. });
  156. </script>
  157. @endsection