index.blade.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. @extends('layouts.app')
  2. @section('title','物流费')
  3. @section('content')
  4. @include('shared._messages')
  5. @include('shared._error')
  6. <div id="list" class="d-none">
  7. <div class="container-fluid">
  8. <div id="form_div"></div>
  9. <div class="ml-3 form-inline" id="btn">
  10. <span class="dropdown">
  11. <button type="button"
  12. class="btn btn-outline-dark btn-sm form-control-sm dropdown-toggle tooltipTarget"
  13. data-toggle="dropdown" title="导出所有页将会以搜索条件得到的筛选结果,将其全部记录(每一页)导出">导出Excel
  14. </button>
  15. <div class="dropdown-menu">
  16. <a class="dropdown-item" @click="detailExport(false)" href="javascript:">导出勾选内容</a>
  17. <a class="dropdown-item" @click="detailExport(true)" href="javascript:">导出所有页</a>
  18. </div>
  19. </span>
  20. </div>
  21. <div class="row">
  22. <div class="col-3">
  23. <div class="row pt-2">
  24. <span class="fa fa-user fa-4x offset-md-3" style="color: #4c2584;opacity: 0.3"></span>
  25. <span class="ml-4 mt-2"><h5 class="font-weight-bold">{{ $owner->name }}</h5><p
  26. class="text-muted">货主</p></span>
  27. </div>
  28. </div>
  29. <div v-if="(isArchived===1)" class="col-3">
  30. <div class="row pt-2">
  31. <span class="fa fa-check-circle fa-4x offset-md-3" aria-hidden="true"
  32. style="color: #4c2584;opacity: 0.3"></span>
  33. <span class="ml-4 mt-2"><h5 class="font-weight-bold">已确认</h5></span>
  34. </div>
  35. </div>
  36. <div v-else class="col-3">
  37. <div class="row pt-2">
  38. <form action="{{ 'logisticFee/confirmBill' }}" method="post" style="display: inline-block;"
  39. onsubmit="return confirm('您确定要确认金额吗?');">
  40. {{ csrf_field() }}
  41. <input type="hidden" name="owner_id" value="{{ $request['owner_id']??'' }}">
  42. <input type="hidden" name="year" value="{{ $request['year']??'' }}">
  43. <input type="hidden" name="month" value="{{ $request['month']??'' }}">
  44. <span class="ml-4 mt-2">
  45. <button type="submit" class="btn btn-success btn-lg">
  46. <i class="far fa-trash-alt"></i> 确认金额
  47. </button>
  48. </span>
  49. </form>
  50. </div>
  51. </div>
  52. </div>
  53. <table class="table table-striped table-sm text-nowrap table-hover table-bordered" id="table">
  54. <tr v-for="(detail,i) in details"
  55. @click="selectTr===i+1?selectTr=0:selectTr=i+1"
  56. :class="selectTr===i+1?'focusing' : ''">
  57. <td><input class="checkItem" type="checkbox" :value="detail.id"></td>
  58. <td>@{{ i+1 }}</td>
  59. <td>@{{ detail.logistic?detail.logistic.name:'' }}</td>
  60. <td>@{{ detail.order_id }}</td>
  61. <td>@{{ detail.recipient }}</td>
  62. <td>@{{ detail.recipient_mobile }}</td>
  63. <td>@{{ detail.warehouse_weight }}</td>
  64. <td>@{{ detail.warehouse_weight_unit.name }}</td>
  65. <td>@{{ detail.owner_way_bill_fee_detail.step }}</td>
  66. <td>@{{ detail.owner_way_bill_fee_detail.owner_fee_detail.province }}</td>
  67. <td>@{{ detail.destination_city.name }}</td>
  68. <td>@{{ detail.owner_way_bill_fee_detail.price }}</td>
  69. <td>@{{ detail.owner_way_bill_fee_detail.delivery_fee }}</td>
  70. <td>@{{ detail.pick_up_fee }}</td>
  71. <td>@{{ detail.owner_way_bill_fee_detail.fuel_fee }}</td>
  72. <td>@{{ detail.owner_way_bill_fee_detail.service_fee }}</td>
  73. <td>@{{ detail.other_fee }}</td>
  74. <td>@{{ detail.dispatch_remark }}</td>
  75. <td>@{{ detail.owner_way_bill_fee_detail.originate_fee }}</td>
  76. <td>@{{ detail.owner_way_bill_fee_detail.originate_count }}</td>
  77. <td>@{{ detail.fee }}</td>
  78. </tr>
  79. </table>
  80. <div class="text-info h5 btn btn">{{$details->count()}}/{{$details->total()}}</div>
  81. {{$details->appends($paginateParams)->links()}}
  82. </div>
  83. <textarea hidden id="clipboardDiv" style="opacity:0"></textarea>
  84. </div>
  85. @endsection
  86. @section('lastScript')
  87. <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
  88. <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
  89. <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>{{--新版2--}}
  90. <script>
  91. let vue = new Vue({
  92. el: "#list",
  93. data: {
  94. owner: {!! $owner !!},
  95. details: [@foreach($details as $detail){!! $detail !!}, @endforeach],
  96. owners: [@foreach($owners as $owner){name: '{{ $owner->id }}', value: '{{ $owner->name}}'},@endforeach],
  97. isArchived: {!! $isArchived !!},
  98. request: {!! $request !!},
  99. selectTr: 0,
  100. },
  101. created() {
  102. },
  103. mounted() {
  104. $('#list').removeClass('d-none');
  105. let _this = this;
  106. $(".up").slideUp();
  107. let data = [
  108. [
  109. {
  110. name: 'owner_id',
  111. type: 'select',
  112. tip: ['多货主权限选择查看指定货主,默认为权限下的第一个货主'],
  113. placeholder: ['货主'],
  114. data: _this.owners,
  115. },
  116. {
  117. name: 'year',
  118. type: 'select',
  119. tip: ['默认为时间上一个月所属年份'],
  120. placeholder: ['年'],
  121. data: [
  122. {name: 2021, value: 2021},
  123. {name: 2022, value: 2022},
  124. {name: 2023, value: 2023},
  125. {name: 2024, value: 2024},
  126. {name: 2025, value: 2025},
  127. {name: 2026, value: 2026},
  128. {name: 2027, value: 2027},
  129. {name: 2028, value: 2028},
  130. {name: 2029, value: 2029},
  131. {name: 2030, value: 2030},
  132. {name: 2031, value: 2031},
  133. {name: 2032, value: 2032},
  134. {name: 2033, value: 2033},
  135. {name: 2034, value: 2034},
  136. {name: 2035, value: 2035},
  137. {name: 2036, value: 2036},
  138. ],
  139. },
  140. {
  141. name: 'month',
  142. type: 'select',
  143. tip: ['默认为上一月'],
  144. placeholder: ['月'],
  145. data: [
  146. {name: 1, value: 1},
  147. {name: 2, value: 2},
  148. {name: 3, value: 3},
  149. {name: 4, value: 4},
  150. {name: 5, value: 5},
  151. {name: 6, value: 6},
  152. {name: 7, value: 7},
  153. {name: 8, value: 8},
  154. {name: 9, value: 9},
  155. {name: 10, value: 10},
  156. {name: 11, value: 11},
  157. {name: 12, value: 12},
  158. ],
  159. },
  160. ]
  161. ];
  162. _this.form = new query({
  163. el: '#form_div',
  164. condition: data,
  165. appendDom: "btn",
  166. });
  167. _this.form.init();
  168. //计数单位 计数区间 省份 市 单价 送货费 提货费 燃油附加费 信息费 其它费用 备注 起始计费 起始计数 运费合计
  169. let column = [
  170. {name: 'index', value: '序号', neglect: true},
  171. {name: 'logistic', value: '承运商'},
  172. {name: 'order_no', value: '订单号'},
  173. {name: 'receiver_name', value: '收件人姓名'},
  174. {name: 'receiver_phone', value: '收件人电话'},
  175. {name: 'weight', value: '重量/体积'},
  176. {name: 'sept_unit', value: '计数单位'},
  177. {name: 'price', value: '计数区间'},
  178. {name: 'fee', value: '省份'},
  179. {name: 'fee', value: '市'},
  180. {name: 'fee', value: '单价'},
  181. {name: 'fee', value: '送货费'},
  182. {name: 'fee', value: '提货费'},
  183. {name: 'fee', value: '燃油附加费'},
  184. {name: 'fee', value: '信息费'},
  185. {name: 'fee', value: '其它费用'},
  186. {name: 'fee', value: '备注'},
  187. {name: 'fee', value: '起始计费'},
  188. {name: 'fee', value: '起始计数'},
  189. {name: 'fee', value: '运费合计'},
  190. ];
  191. new Header({
  192. el: "table",
  193. name: "detail",
  194. column: column,
  195. data: this.details,
  196. restorationColumn: 'addtime',
  197. fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
  198. }).init();
  199. },
  200. methods: {
  201. detailExport(sign) {
  202. let url = '{{url('finance/settlementBills/logisticFee/export')}}';
  203. let token = '{{ csrf_token() }}';
  204. if (sign) {
  205. excelExport(true, checkData, url, this.total, token);
  206. } else {
  207. excelExport(false, checkData, url, null, token, {
  208. owner_id: this.owner.id,
  209. year: this.request.year,
  210. month: this.request.month,
  211. });
  212. }
  213. },
  214. },
  215. filters: {},
  216. });
  217. </script>
  218. @endsection