index.blade.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. @extends('layouts.app')
  2. @section('title')入库管理@endsection
  3. @section('content')
  4. <span id="nav2">
  5. @component('store.menu')@endcomponent
  6. @component('store.fast.menu')@endcomponent
  7. </span>
  8. <div class="d-none" id="fast">
  9. <div class="container-fluid">
  10. <label for="all" class="d-none" id="cloneCheckAll">
  11. <input id="all" type="checkbox" @click="checkAll($event)">全选
  12. </label>
  13. <table class="table table-sm text-nowrap table-bordered d-none" id="headerRoll"></table>
  14. <table class="table table-striped table-sm text-nowrap table-hover" id="headerParent">
  15. <tr id="header"></tr>
  16. <tr v-for="(store,i) in stores">
  17. <td>
  18. <input class="checkItem" type="checkbox" :value="store.id" v-model="checkData">
  19. </td>
  20. <td>@{{ i+1 }}</td>
  21. <td class="text-muted">@{{store.asn_code}}</td>
  22. <td>@{{store.warehouse.name}}</td>
  23. <td class="text-muted">@{{store.owner.name}}</td>
  24. <td class="text-muted">@{{store.stored_method}}</td>
  25. <td class="text-muted">@{{store.status}}</td>
  26. <td>@{{store.remark}}</td>
  27. <td class="text-muted">@{{store.created_at}}</td>
  28. </tr>
  29. </table>
  30. <div class="text-info h5 btn btn">{{$stores->count()}}/{{$stores->total()}}</div>
  31. {{$stores->links()}}
  32. </div>
  33. </div>
  34. @endsection
  35. @section('lastScript')
  36. <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
  37. <script>
  38. let vue = new Vue({
  39. el:'#fast',
  40. data:{
  41. stores:[
  42. @foreach($stores as $store)
  43. {!! $store !!},
  44. @endforeach
  45. ],
  46. checkData:[]
  47. },
  48. mounted:function(){
  49. $('#fast').removeClass('d-none');
  50. let _this = this;
  51. let column = [
  52. {name:'cloneCheckAll',customization:true,type:'checkAll',column:'id',
  53. dom:$('#cloneCheckAll').removeClass('d-none'), neglect: true},
  54. {name:'index',value: '序号', neglect: true},
  55. {name:'asn_code',value: 'ASN编号'},
  56. {name:'warehouse_name',value: '仓库'},
  57. {name:'owner_name',value: '货主'},
  58. {name:'stored_method',value: '入库类型'},
  59. {name:'status',value: '状态'},
  60. {name:'remark',value: '备注'},
  61. {name:'created_at',value: '生成时间'},
  62. ];
  63. setTimeout(function () {
  64. let header = new Header({
  65. el: "#header",
  66. column: column,
  67. data: _this.stores,
  68. restorationColumn: 'id',
  69. vue:vue,
  70. });
  71. header.init();
  72. },0);
  73. },
  74. watch:{
  75. checkData:{
  76. handler(){
  77. if (this.checkData.length === this.stores.length){
  78. document.querySelector('#all').checked = true;
  79. document.querySelector('#all_temp').checked = true;
  80. }else {
  81. document.querySelector('#all').checked = false;
  82. document.querySelector('#all_temp').checked = false;
  83. }
  84. },
  85. deep:true
  86. }
  87. },
  88. methods:{
  89. checkAll(e){
  90. if (e.target.checked){
  91. this.stores.forEach((el,i)=>{
  92. if (this.checkData.indexOf(el.id) == '-1'){
  93. this.checkData.push(el.id);
  94. }
  95. });
  96. }else {
  97. this.checkData = [];
  98. }
  99. },
  100. }
  101. });
  102. </script>
  103. @endsection