index.blade.php 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. @extends('layouts.app')
  2. @section('title')承运商时效表@endsection
  3. @section('content')
  4. <div class="d-none" id="list">
  5. <!--查询 -->
  6. <div class="row m-3" style="background-color: #fff;">
  7. <div class="form-group m-2" data-toggle="tooltip" data-placement="top" title="承运商">
  8. <input v-model="search.logisticName" class="form-control" type="text" step="01">
  9. </div>
  10. <div class="form-group m-2" data-toggle="tooltip" data-placement="top" title="起始日期">
  11. <input v-model="search.startTime" class="form-control" type="date" step="01">
  12. </div>
  13. <div class="form-group m-2" data-toggle="tooltip" data-placement="top" title="截止日期">
  14. <input v-model="search.endTime" class="form-control" type="date" step="01">
  15. </div>
  16. <div class="form-group m-2">
  17. <button class="form-control btn btn-sm btn-info" @click="searchData()">查询</button>
  18. </div>
  19. <div class="form-group m-2">
  20. <button class="form-control btn btn-sm btn-success" @click="resetSearch()">重置</button>
  21. </div>
  22. <div class="form-group m-2">
  23. <button class="form-control btn btn-sm btn-success" @click="downExcel()">导出EXCEL</button>
  24. </div>
  25. </div>
  26. <!-- 导出-->
  27. <span class="dropdown"></span>
  28. <!-- 表格-->
  29. <table class="table table-striped table-bordered table-hover text-nowrap waybill-table td-min-width-80"
  30. style="background: #fff;" id="table">
  31. <tr v-for="(item,i) in details.data" :key="i">
  32. <td class="td-warm text-muted"><span>@{{ i+1 }}</span></td>
  33. <td class="td-warm text-muted"><span>@{{ item.logisticName }}</span></td>
  34. <td class="td-warm text-muted"><span>@{{ item.province }}</span></td>
  35. <td class="td-warm text-muted"><span>@{{ item.t1 }}</span></td>
  36. <td class="td-warm text-muted"><span>@{{ item.t2 }}</span></td>
  37. <td class="td-warm text-muted"><span>@{{ item.t3 }}</span></td>
  38. <td class="td-warm text-muted"><span>@{{ item.t4 }}</span></td>
  39. <td class="td-warm text-muted"><span>@{{ item.t5 }}</span></td>
  40. <td class="td-warm text-muted"><span>@{{ item.orderTotalAmount }}</span></td>
  41. <td class="td-warm text-muted"><span>@{{ item.orderHaveRouteAmount }}</span></td>
  42. </tr>
  43. </table>
  44. </div>
  45. @endsection
  46. @section('lastScript')
  47. <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>{{--新版2--}}
  48. <script>
  49. let vue = new Vue({
  50. el: "#list",
  51. data: {
  52. selectTr: null,
  53. details: {
  54. data: [],
  55. },
  56. search: {
  57. startTime: null,
  58. endTime: null,
  59. logisticName: null,
  60. },
  61. },
  62. created() {
  63. let url = this.getBaseUrl();
  64. url += '/api/report/logisticsPunctuality/list';
  65. var day1 = new Date();
  66. day1.setTime(day1.getTime() - 24 * 60 * 60 * 1000);
  67. var s1 = day1.getFullYear() + "-" + ((day1.getMonth() + 1) >= 10 ? (day1.getMonth() + 1) : ('0' + (day1.getMonth() + 1))) + "-" + (day1.getDate() >= 10 ? day1.getDate() : ('0' + day1.getDate()));
  68. //今天的时间
  69. var day2 = new Date();
  70. day2.setTime(day2.getTime());
  71. var s2 = day2.getFullYear() + "-" + ((day2.getMonth() + 1) >= 10 ? (day2.getMonth() + 1) : ('0' + (day2.getMonth() + 1))) + "-" + (day2.getDate() >= 10 ? day2.getDate() : ('0' + day2.getDate()));
  72. this.search.startTime = s1;
  73. this.search.endTime = s2;
  74. let search = Object.assign({}, this.search);
  75. search.startTime += ' 00:00:00';
  76. search.endTime += ' 23:59:59';
  77. axios.post(url, search).then(res => {
  78. this.details.data = res.data.data;
  79. });
  80. },
  81. mounted: function () {
  82. $('#list').removeClass('d-none');
  83. let column = [
  84. {name: 'logisticName', value: '承运商'},
  85. {name: 'province', value: '省份'},
  86. {name: 't1', value: '推单-出库(库内)'},
  87. {name: 't2', value: '出库-揽收(月台)'},
  88. {name: 't3', value: '揽收-中转(站点)'},
  89. {name: 't4', value: '中转-签收(途中)'},
  90. {name: 't5', value: ' 推单-签收(全部)'},
  91. {name: 'case6Amount', value: '总单量'},
  92. {name: 'case7Amount', value: '总有路由信息单量'},
  93. ];
  94. new Header({
  95. el: "table",
  96. name: "details",
  97. column: column,
  98. data: this.details.data,
  99. restorationColumn: 'addtime',
  100. fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
  101. }).init();
  102. },
  103. methods: {
  104. resetSearch() {
  105. this.search = {
  106. startTime: null,
  107. endTime: null,
  108. customerName: null,
  109. };
  110. },
  111. searchData() {
  112. this.pagination();
  113. },
  114. //根据环境获取不同的url
  115. getBaseUrl() {
  116. let url = null;
  117. let env = "{{ config('app.env') }}";
  118. if (env === 'local') {
  119. url = 'http://127.0.0.1:8111'
  120. } else if (env === 'production') {
  121. url = 'https://stat.baoshi56.com'
  122. }
  123. return url;
  124. },
  125. pagination(flag) {
  126. let url = this.getBaseUrl();
  127. url += '/api/report/logisticsPunctuality/list';
  128. let search = Object.assign({}, this.search);
  129. search.startTime += ' 00:00:00';
  130. search.endTime += ' 23:59:59';
  131. axios.post(url, search).then(res => {
  132. if (res.data.data === undefined) {
  133. this.details.data = [];
  134. } else {
  135. this.details.data = res.data.data;
  136. }
  137. });
  138. },
  139. downExcel() {
  140. let url = this.getBaseUrl();
  141. url += '/api/report/scanInfo/export';
  142. let search = this.getSearch();
  143. axios.post(url, search).then(res => {
  144. if (res.data.code === 200) {
  145. let filename = res.data.data;
  146. let downUrl = this.getBaseUrl() + '/api/report/scanInfo/export/' + filename;
  147. let link = document.createElement('a');
  148. link.style.display = 'none';
  149. link.href = downUrl;
  150. link.download = `${filename}.xlsx`;
  151. document.body.appendChild(link);
  152. link.click();
  153. document.body.removeChild(link);
  154. tempTip.showSuccess('导出成功!');
  155. } else {
  156. tempTip.setDuration(3000);
  157. tempTip.show(res.data.data);
  158. }
  159. })
  160. }
  161. },
  162. });
  163. </script>
  164. @endsection