storeItem.blade.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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="item">
  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="(storeItem,i) in storeItems">
  17. <td>
  18. <input class="checkItem" type="checkbox" :value="storeItem.id" v-model="checkData">
  19. </td>
  20. <td>@{{ i+1 }}</td>
  21. <td>@{{storeItem.store_asn_code}}</td>
  22. <td>@{{storeItem.asn_line_code}}</td>
  23. <td class="text-muted">@{{storeItem.name}}</td>
  24. <td class="text-muted">@{{storeItem.sku}}</td>
  25. <td class="text-muted">@{{storeItem.barcode}}</td>
  26. <td>@{{storeItem.depository_name}}</td>
  27. <td class="text-muted">@{{storeItem.amount}}</td>
  28. <td class="text-muted">@{{storeItem.quality}}</td>
  29. <td class="text-muted">@{{storeItem.status}}</td>
  30. <td class="text-muted">@{{storeItem.created_at}}</td>
  31. </tr>
  32. </table>
  33. <div class="text-info h5 btn btn">{{$storeItems->count()}}/{{$storeItems->total()}}</div>
  34. {{$storeItems->links()}}
  35. </div>
  36. </div>
  37. @endsection
  38. @section('lastScript')
  39. <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
  40. <script>
  41. let vue = new Vue({
  42. el:'#item',
  43. data:{
  44. storeItems:[
  45. @foreach($storeItems as $storeItem)
  46. {!! $storeItem !!},
  47. @endforeach
  48. ],
  49. checkData:[]
  50. },
  51. mounted:function(){
  52. $('#item').removeClass('d-none');
  53. let _this=this;
  54. let column = [
  55. {name:'cloneCheckAll',customization:true,type:'checkAll',column:'id',
  56. dom:$('#cloneCheckAll').removeClass('d-none'), neglect: true},
  57. {name:'index',value: '序号', neglect: true},
  58. {name:'store_asn_code',value: 'ASN编号'},
  59. {name:'asn_line_code',value: 'ASN行号'},
  60. {name:'name',value: '产品名', class:'text-muted'},
  61. {name:'sku',value: 'SKU', class:'text-muted'},
  62. {name:'barcode',value: '条码', class:'text-muted'},
  63. {name:'depository_name',value: '属性仓'},
  64. {name:'amount',value: '总计', class:'text-muted'},
  65. {name:'quality',value: '质量', class:'text-muted'},
  66. {name:'status',value: '状态', class:'text-muted'},
  67. {name:'created_at',value: '创建时间', class:'text-muted'},
  68. ];
  69. setTimeout(function () {
  70. let header = new Header({
  71. el: "#header",
  72. column: column,
  73. data: _this.storeItems,
  74. restorationColumn: 'id',
  75. vue:vue,
  76. });
  77. header.init();
  78. },0);
  79. },
  80. watch:{
  81. checkData:{
  82. handler(){
  83. if (this.checkData.length === this.storeItems.length){
  84. document.querySelector('#all').checked = true;
  85. document.querySelector('#all_temp').checked = true;
  86. }else {
  87. document.querySelector('#all').checked = false;
  88. document.querySelector('#all_temp').checked = false;
  89. }
  90. },
  91. deep:true
  92. }
  93. },
  94. methods:{
  95. checkAll(e){
  96. if (e.target.checked){
  97. this.storeItems.forEach((el,i)=>{
  98. if (this.checkData.indexOf(el.id) == '-1'){
  99. this.checkData.push(el.id);
  100. }
  101. });
  102. }else {
  103. this.checkData = [];
  104. }
  105. },
  106. }
  107. });
  108. </script>
  109. @endsection