statistics.blade.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. @extends('layouts.app')
  2. @section('title')称重统计-包裹管理@endsection
  3. @section('content')
  4. <span id="nav2">
  5. @component('package.menu')@endcomponent
  6. @component('package.weigh.menu')@endcomponent
  7. </span>
  8. <div class="d-none" id="statistics">
  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"
  13. data-toggle="dropdown" title="导出所有页将会以搜索条件得到的筛选结果,将其全部记录(每一页)导出">
  14. 导出Excel
  15. </button>
  16. <div class="dropdown-menu">
  17. <a class="dropdown-item" @click="statisticExport(false)" href="javascript:">导出勾选内容</a>
  18. <a class="dropdown-item" @click="statisticExport(true)" href="javascript:">导出所有页</a>
  19. </div>
  20. </span>
  21. <table class="table table-striped table-sm text-nowrap table-hover">
  22. <tr>
  23. <th>
  24. <label for="all">
  25. <input id="all" type="checkbox" @click="checkAll($event)">全选
  26. </label>
  27. </th>
  28. <th>货主</th>
  29. <th>总计</th>
  30. <th v-for="logistic in logistics">@{{ logistic.value }}</th>
  31. </tr>
  32. <tr v-for="package in packages">
  33. <td>
  34. <input class="checkItem" type="checkbox" :value="package.owner_id" v-model="checkData">
  35. </td>
  36. <th class="text-muted">@{{ package.owner_name }}</th>
  37. <td><p v-if="package.sum">@{{ package.sum }}</p><p v-else>0</p></td>
  38. <td class="text-muted" v-for="logistic in logistics"><span v-if="package[logistic.name]">@{{ package[logistic.name] }}</span><span v-else>0</span></td>
  39. </tr>
  40. </table>
  41. </div>
  42. </div>
  43. @endsection
  44. @section('lastScript')
  45. <script type="text/javascript" src="{{asset('js/queryForm/queryForm.js')}}"></script>
  46. <script type="text/javascript" src="{{asset('js/queryForm/export.js')}}"></script>
  47. <script>
  48. new Vue({
  49. el:"#statistics",
  50. data:{
  51. packages : [
  52. @foreach($packages as $package)
  53. {!! $package !!},
  54. @endforeach
  55. ],
  56. owners:[
  57. @foreach($owners as $owner)
  58. {name:'{{$owner->id}}', value: '{{$owner->name}}'},
  59. @endforeach
  60. ],
  61. logistics:[
  62. @foreach($logistics as $logistic)
  63. {name:'{{$logistic->id}}', value: '{{$logistic->name}}'},
  64. @endforeach
  65. ],
  66. checkData:[],
  67. },
  68. watch:{
  69. checkData:{
  70. handler(){
  71. if (this.checkData.length === this.packages.length){
  72. document.querySelector('#all').checked = true;
  73. }else {
  74. document.querySelector('#all').checked = false;
  75. }
  76. },
  77. deep:true
  78. }
  79. },
  80. mounted:function(){
  81. $(".tooltipTarget").tooltip({'trigger':'hover'});
  82. $('#statistics').removeClass('d-none');
  83. let data = [[
  84. {name:'logistic_id',type:'select_multiple_select',tip:['输入关键词快速定位下拉列表,回车确定','选择要显示的物流公司'],
  85. placeholder:['物流公司','定位或多选物流公司'],data:this.logistics},
  86. {name:'owner_id',type:'select_multiple_select',tip:['输入关键词快速定位下拉列表,回车确定','选择要显示的客户'],
  87. placeholder:['货主','定位或多选货主'],data:this.owners},
  88. {name:'created_at_start',type:'time',tip:['选择显示指定日期的起始时间','选择显示指定日期的起始时间']},
  89. {name:'created_at_end',type:'time',tip:['选择显示指定日期的结束时间','选择显示指定日期的结束时间']},
  90. ]];
  91. this.form = new query({
  92. el:'#form_div',
  93. condition:data,
  94. isPaginations:false,
  95. });
  96. this.form.init();
  97. },
  98. methods: {
  99. checkAll(e){
  100. if (e.target.checked){
  101. this.packages.forEach((el)=>{
  102. if (this.checkData.indexOf(el.owner_id) === '-1'){
  103. this.checkData.push(el.owner_id);
  104. }
  105. });
  106. }else {
  107. this.checkData = [];
  108. }
  109. },
  110. statisticExport:function (checkAllSign) {
  111. let url = '{{url('package/statistics/export')}}';
  112. let token='{{ csrf_token() }}';
  113. //excelExport 定义在 js/queryForm/export200918.js
  114. excelExport(checkAllSign,this.checkData,url,this.sum,token);
  115. },
  116. }
  117. });
  118. </script>
  119. @endsection