index.blade.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. @extends('layouts.app')
  2. @section('title')KPI-月报表@endsection
  3. @section('content')
  4. <div class="d-none" id="list">
  5. <div class="container-fluid">
  6. <div id="form_div"></div>
  7. <!-- 导出-->
  8. <span class="dropdown"></span>
  9. <h3>2021</h3>
  10. <!-- 表格-->
  11. <table class="table table-striped table-bordered table-hover text-nowrap waybill-table td-min-width-80"
  12. style="background: #fff;" id="table">
  13. <tr v-for="(item,i) in details.data" :key="i">
  14. <td><input class="checkItem" type="checkbox" :value="item.id"></td>
  15. <td class="td-warm text-muted"><span>@{{item.userWorkgroupName}}</span></td>
  16. <td class="td-warm text-muted"><span>@{{item.statTime.slice(0,10)}}</span></td>
  17. <td class="td-warm text-muted"><span>@{{item.purchseEntry}}</span></td>
  18. <td class="td-warm text-muted"><span>@{{item.allocateTransferEntry}}</span></td>
  19. <td class="td-warm text-muted"><span>@{{item.b2bEntry}}</span></td>
  20. <td class="td-warm text-muted"><span>@{{item.inWarehouseEntry}}</span></td>
  21. <td class="td-warm text-muted"><span>@{{item.otherEntry}}</span></td>
  22. <td class="td-warm text-muted"><span>@{{item.returnEntry}}</span></td>
  23. <td class="td-warm text-muted"><span>@{{item.barterEntry}}</span></td>
  24. <td class="td-warm text-muted"><span>@{{item.adjustEntry}}</span></td>
  25. <td class="td-warm text-muted"><span>@{{item.virtualEntry}}</span></td>
  26. <td class="td-warm text-muted"><span>@{{item.overtimeShelve}}</span></td>
  27. <td class="td-warm text-muted"><span>@{{item.b2cDeliveryQty}}</span></td>
  28. <td class="td-warm text-muted"><span>@{{item.b2cDeliveryNum}}</span></td>
  29. <td class="td-warm text-muted"><span>@{{item.b2cDelayNum}}</span></td>
  30. <td class="td-warm text-muted"><span>@{{item.b2cErrorNum}}</span></td>
  31. <td class="td-warm text-muted"><span>@{{item.b2cComplainNum}}</span></td>
  32. <td class="td-warm text-muted"><span>@{{item.b2bDeliveryNum}}</span></td>
  33. <td class="td-warm text-muted"><span>@{{item.b2bDeliveryQty}}</span></td>
  34. <td class="td-warm text-muted"><span>@{{item.b2bComplainNum}}</span></td>
  35. <td class="td-warm text-muted"><span>@{{item.b2bDeliveryBulk}}</span></td>
  36. <td class="td-warm text-muted"><span>@{{item.b2bDeliveryWeigh}}</span></td>
  37. <td class="td-warm text-muted"><span>@{{item.inventory}}</span></td>
  38. <td class="td-warm text-muted"><span>@{{item.inventoryProfit}}</span></td>
  39. <td class="td-warm text-muted"><span>@{{item.inventoryLoss}}</span></td>
  40. </tr>
  41. </table>
  42. <nav aria-label="...">
  43. <ul class="pagination">
  44. <li class="page-item" :class="current===1?'disabled':''">
  45. <button class="page-link" @click="pagination('pre')">上一页</button>
  46. </li>
  47. <li class="page-item" :class="current===details.pages?'disabled':''">
  48. <button class="page-link" @click="pagination('next')">下一页</button>
  49. </li>
  50. </ul>
  51. </nav>
  52. </div>
  53. </div>
  54. @endsection
  55. @section('lastScript')
  56. <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
  57. <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
  58. <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>{{--新版2--}}
  59. <script>
  60. let vue = new Vue({
  61. el: "#list",
  62. data: {
  63. selectTr: '',
  64. details: {
  65. data: [],
  66. total: null,
  67. current: null,
  68. pages: null,
  69. size: null
  70. },
  71. size: 10,
  72. current: 1
  73. },
  74. created() {
  75. let url = this.getBaseUrl();
  76. url += `/api/deliver/getMonthPage?size=${this.size}&current=${this.current}`;
  77. axios.get(url).then(res => {
  78. this.details.data = res.data.data.list;
  79. this.details.total = res.data.data.page.total;
  80. this.details.current = res.data.data.page.pageNum;
  81. this.details.pages = res.data.data.page.pages
  82. this.details.size = res.data.data.page.pageSize;
  83. });
  84. },
  85. mounted: function () {
  86. $('#list').removeClass('d-none');
  87. let data = [
  88. [
  89. {name: 'date_start', type: 'dateTime', tip: '选择显示指定日期的起始时间'},
  90. ]
  91. ];
  92. this.form = new query({
  93. el: "#form_div",
  94. condition: data,
  95. });
  96. this.form.init();
  97. this.rendingHeader();
  98. },
  99. methods: {
  100. getBaseUrl() {
  101. let url = '';
  102. let env = "{{ config('app.env') }}";
  103. if (env === 'local') {
  104. url = ' http://127.0.0.1:8111'
  105. } else if (env === 'production') {
  106. url = ' http://101.133.135.193'
  107. }
  108. return url;
  109. },
  110. pagination(flag) {
  111. console.log(flag);
  112. if (flag === 'pre' && this.current > 1) {
  113. this.current--;
  114. } else if (flag === 'next' && this.current < this.details.pages) {
  115. this.current++;
  116. }
  117. console.log(this.current, this.details.pages);
  118. let url = this.getBaseUrl();
  119. url += `/api/deliver/getMonthPage?size=${this.size}&current=${this.current}`;
  120. axios.get(url).then(res => {
  121. this.details.data = res.data.data.list;
  122. this.details.total = res.data.data.page.total;
  123. this.details.current = res.data.data.page.pageNum;
  124. this.details.pages = res.data.data.page.pages
  125. this.details.size = res.data.data.page.pageSize;
  126. });
  127. },
  128. rendingHeader() {
  129. let column = [
  130. {name: 'workgroupName', value: '组名', neglect: true, class: "td-warm"},
  131. {name: 'month', value: '月份', class: "td-warm"},
  132. {name: 'purchseEntry', value: '入库采购', neglect: true, class: "td-warm"},
  133. {name: 'allocateTransferEntry', value: '调拨入库', class: "td-warm"},
  134. {name: 'b2bEntry', value: 'B2B入库', class: "td-warm"},
  135. {name: 'inWarehouseEntry', value: '进仓入库', neglect: true, class: "td-warm"},
  136. {name: 'otherEntry', value: '其他入库', class: "td-warm"},
  137. {name: 'returnEntry', value: '退货入库', class: "td-warm"},
  138. {name: 'barterEntry', value: '换货入库', class: "td-warm"},
  139. {name: 'adjustEntry', value: '调整入库', class: "td-warm"},
  140. {name: 'virtualEntry', value: '虚拟入库', class: "td-warm"},
  141. {name: 'overtimeShelve', value: '未及时上架', class: "td-warm"},
  142. {name: 'b2cDeliveryQty', value: 'B2C发货个数', class: "td-cool"},
  143. {name: 'b2cDeliveryNum', value: 'B2C发货单数', class: "td-cool"},
  144. {name: 'b2cDelayNum', value: 'B2C延误单数', neglect: true, class: "td-cool"},
  145. {name: 'b2cErrorNum', value: 'B2C错漏发单数', neglect: true, class: "td-cool"},
  146. {name: 'b2cComplainNum', value: 'B2C客诉单数', class: "td-cool"},
  147. {name: 'b2bDeliveryNum', value: 'B2B发货行数', neglect: true, class: "td-cool"},
  148. {name: 'b2bDeliveryQty', value: 'B2B发货个数', class: "td-cool"},
  149. {name: 'b2bComplainNum', value: 'B2B客诉行数', class: "td-cool"},
  150. {name: 'b2bDeliveryBulk', value: 'B2B发货体积', class: "td-cool"},
  151. {name: 'b2bDeliveryWeigh', value: 'B2B发货重量', class: "td-cool"},
  152. {name: 'inventory', value: '盘点总数量', class: "td-warm"},
  153. {name: 'inventoryProfit', value: '盘盈数量', class: "td-warm"},
  154. {name: 'inventoryLoss', value: '盘亏数量', class: "td-warm"},
  155. ];
  156. new Header({
  157. el: "table",
  158. name: "details",
  159. column: column,
  160. data: this.details.data,
  161. restorationColumn: 'id',
  162. fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 2,
  163. before: [
  164. {colspan: '13', value: '生产部-入库数据', class: "table-header-layer-1"},
  165. {
  166. colspan: '10',
  167. value: '生产部-发货数据',
  168. font: "fa fa-file-text-o",
  169. class: "table-header-layer-1"
  170. },
  171. {colspan: '4', value: '生产部-库存数据', font: "fa fa-truck", class: "table-header-layer-1"},
  172. ],
  173. }).init();
  174. },
  175. },
  176. });
  177. </script>
  178. @endsection