index.blade.php 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. @extends('layouts.app')
  2. @section('title')订单管理-跟踪@endsection
  3. @section('content')
  4. @component('order.tracking.menu')@endcomponent
  5. <div class="container-fluid" id="tracking_div">
  6. <div>
  7. <div class="d-none" id="list">
  8. @can('订单管理-跟踪-监听')
  9. <div class="modal fade" id="modal" tabindex="-1" role="dialog" aria-labelledby="pasteDataTitle" aria-hidden="true">
  10. <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
  11. <div class="modal-content">
  12. <div class="modal-header row form-inline">
  13. <input type="text" v-model="name" class="form-control form-control-sm col-5 offset-3" placeholder="搜索货主,点击下方块添加" />
  14. <button class="btn btn-sm btn-info col-2" @click="seekOwner()">搜索</button>
  15. <label class="col-2"></label>
  16. </div>
  17. <div class="modal-body container row" style="text-align:center">
  18. <div class="col-2 mt-2" v-for="owner in owners">
  19. <div style="border: 1px solid #aac7ea;height: 80px;text-align: center;line-height: 80px;border-radius: 4px;cursor: pointer"
  20. :style="[{'background': loggingOwners.includes(Number(owner.name)) ? '#00FF00' : ''},
  21. {'box-shadow' : seekOwners.includes(owner.name) ? '0px 0px 10px 5px rgba(0,0,0,0.9)' : ''}]"
  22. @click="addTrackingOwner( owner.id )">@{{ owner.value }}</div>
  23. </div>
  24. </div>
  25. </div>
  26. </div>
  27. </div>
  28. @endcan
  29. <div id="form_div"></div>
  30. <div class="form-inline mt-1 ">
  31. <span class="dropdown">
  32. <button type="button"
  33. class="btn btn-outline-dark btn-sm form-control-sm dropdown-toggle tooltipTarget"
  34. :class="[checkData.length>0?'btn-dark text-light':'']"
  35. data-toggle="dropdown" title="导出所有页将会以搜索条件得到的筛选结果,将其全部记录(每一页)导出">导出Excel
  36. </button>
  37. <div class="dropdown-menu">
  38. <a class="dropdown-item" @click="exportSelect()" href="javascript:">导出勾选内容</a>
  39. <a class="dropdown-item" @click="exportAll()" href="javascript:">导出所有页</a>
  40. </div>
  41. </span>
  42. @can('订单管理-跟踪-监听')
  43. <button class="btn btn-outline-info btn-sm tooltipTarget ml-2" @click="openModal()">
  44. 管理监听货主
  45. </button>
  46. @endif
  47. </div>
  48. <table class="table table-sm table-bordered table-hover card-body table-responsive-sm p-0 m-0">
  49. <tr class="text-center">
  50. <th>
  51. <input id="all" type="checkbox" @click="checkAll($event)"/>
  52. </th>
  53. <th>序号</th>
  54. <th>公司</th>
  55. <th>订单号</th>
  56. <th>WEB+订单号</th>
  57. <th>提货日期</th>
  58. <th>销售</th>
  59. <th>客户</th>
  60. <th>SKU</th>
  61. <th>物料描述</th>
  62. <th>数量</th>
  63. <th>订单备注</th>
  64. <th>重量</th>
  65. <th>体积</th>
  66. <th>托盘合计</th>
  67. <th>运输方式</th>
  68. <th>运输单号</th>
  69. <th>到达城市</th>
  70. <th>到达城市</th>
  71. <th>应送达时间</th>
  72. <th>是否赶上卡班</th>
  73. <th>到货情况</th>
  74. <th>签收日期</th>
  75. <th>签收单情况</th>
  76. <th>备注</th>
  77. </tr>
  78. <tr v-for="(orderTracking,index) in orderTrackings">
  79. <td>
  80. <input id="all" type="checkbox" @click="checkAll($event)"/>
  81. </td>
  82. <td>@{{ index }}</td>
  83. <td>公司</td>
  84. <td>订单号</td>
  85. <td>WEB+订单号</td>
  86. <td>提货日期</td>
  87. <td>销售</td>
  88. <td>客户</td>
  89. <td>SKU</td>
  90. <td>物料描述</td>
  91. <td>数量</td>
  92. <td>订单备注</td>
  93. <td>重量</td>
  94. <td>体积</td>
  95. <td>托盘合计</td>
  96. <td>运输方式</td>
  97. <td>运输单号</td>
  98. <td>到达城市</td>
  99. <td>到达城市</td>
  100. <td>应送达时间</td>
  101. <td>是否赶上卡班</td>
  102. <td>到货情况</td>
  103. <td>签收日期</td>
  104. <td>签收单情况</td>
  105. <td>备注</td>
  106. </tr>
  107. </table>
  108. </div>
  109. </div>
  110. </div>
  111. @endsection
  112. @section('lastScript')
  113. <script type="text/javascript" src="{{asset('js/queryForm/export200818a.js')}}"></script>
  114. <script type="text/javascript" src="{{asset('js/queryForm/queryForm200901.js')}}"></script>
  115. <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
  116. <script>
  117. let tracking_vue = new Vue({
  118. el:'#tracking_div',
  119. data:{
  120. orderTrackings:[],
  121. owners:[@foreach($owners as $owner){name: '{{ $owner->id }}', value: '{{ $owner->name}}'},@endforeach],
  122. from:'',
  123. checkData:'',
  124. seekOwners : [],
  125. name : "",
  126. loggingOwners : [],
  127. },
  128. mounted:function(){
  129. $('.tooltipTarget').tooltip({'trigger': 'hover'});
  130. $("#list").removeClass('d-none');
  131. let _this = this;
  132. let data = [
  133. [
  134. {name:'start_at',type:'dateTime',tip:'起始日期',placeholder:'起始日期'},
  135. {name:'owner_id',type:'select_multiple_select', tip: ['输入关键词快速定位下拉列表,回车确定', '选择要显示的客户'],
  136. placeholder: ['货主', '定位或多选货主'],
  137. data: _this.owners},
  138. {name:'client_code',type:'input',tip:'订单号',placeholder:'订单号'},
  139. {name:'client',type:'input',tip:'货主',placeholder:'货主'},
  140. ],
  141. [
  142. {name:'end_at',type:'dateTime',tip:'结束日期',placeholder: '结束日期'},
  143. {name:'logistic_number',type:'input',tip:'运输单号',placeholder:'运输单号'},
  144. {name:'sku',type:'input',tip:'SKU',placeholder: '商品编号'},
  145. ]
  146. ];
  147. this.from = new query({
  148. el: '#form_div',
  149. condition: data,
  150. }).init();
  151. },
  152. watch:{
  153. checkData: {
  154. handler() {
  155. if (this.checkData.length === this.orderTrackings.length && this.checkData.length !== 0) {
  156. document.querySelector('#all').checked = true;
  157. } else {
  158. document.querySelector('#all').checked = false;
  159. }
  160. },
  161. deep: true
  162. },
  163. },
  164. methods:{
  165. checkAll(e){
  166. if (e.target.checked) {
  167. this.orderTrackings.forEach((el, i) => {
  168. if (this.checkData.indexOf(el.id) === -1) {
  169. this.checkData.push(el.id);
  170. }
  171. });
  172. } else {
  173. this.checkData = [];
  174. }
  175. },
  176. openModal(){
  177. let url = "{{url('apiLocal/order/trackingOwner/all')}}";
  178. axios.post(url).then(res=>{
  179. this.loggingOwners = res.data;
  180. $("#modal").modal('show');
  181. });
  182. },
  183. seekOwner(){
  184. if (!this.name)return ;
  185. let name = this.name;
  186. let seekOwners = [];
  187. this.owners.forEach(function (owner) {
  188. if ((owner.value).indexOf(name) !== -1){
  189. seekOwners.push(owner.name);
  190. }
  191. });
  192. if (seekOwners.length > 0)this.seekOwners = seekOwners;
  193. },
  194. addTrackingOwner(owner_id,name){
  195. },
  196. selectedColor(id) {
  197. if (id === this.selectedStyle) {
  198. this.selectedStyle = '';
  199. return;
  200. }
  201. this.selectedStyle = id;
  202. },
  203. exportSelect:function(){
  204. },
  205. exportAll:function(){
  206. },
  207. }
  208. });
  209. </script>
  210. @endsection