show.blade.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. @extends('layouts.app')
  2. @section('title')盘收一体-任务@endsection
  3. @section('content')
  4. <div id="container" class="d-none container-fluid">
  5. <span>
  6. @component('store.menu')@endcomponent
  7. @component('store.checkingReceive.menu')
  8. @can('入库管理-盘收一体-盘收')
  9. <li class="nav-item">
  10. <a class="nav-link" href="{{URL::current()}}" :class="{active:isActive('mission',3)}">盘收</a>
  11. </li>@endcan
  12. @endcomponent
  13. </span>
  14. <div class="row m-2 card">
  15. <div class="card-body col-12">
  16. <div class="col-12">
  17. <p class="text-muted small" v-if="inputMode=='regular'">常规:可输入效期,相同条码记录不会合并</p>
  18. <p class="text-muted small" v-if="inputMode=='increasing'">逐一扫描:处理单一重复商品,每扫一次对应隔口总数量自动递增,扫到不同条码会提示</p>
  19. <p class="text-muted small" v-if="inputMode=='multiIncreasing'">边扫边分:处理多种商品,自动将扫到的不同条码数量递增到各自隔口号</p>
  20. <ul class="nav nav-tabs mb-4 mt-n3">
  21. <li class="nav-item"><a style="cursor: pointer" class="nav-link text-primary" :class="inputMode=='regular'?'active':''"
  22. @click="switchMenu('regular')">常规</a></li>
  23. <li class="nav-item"><a style="cursor: pointer" class="nav-link text-primary" :class="inputMode=='increasing'?'active':''"
  24. @click="switchMenu('increasing')">逐一扫描</a></li>
  25. <li class="nav-item"><a style="cursor: pointer" class="nav-link text-primary" :class="inputMode=='multiIncreasing'?'active':''"
  26. @click="switchMenu('multiIncreasing')">边扫边分</a></li>
  27. </ul>
  28. </div>
  29. <div class="col-12 row">
  30. <div class="col-6">
  31. <div v-if="inputMode=='regular'">
  32. <div class="btn btn-sm btn-outline-primary" @click="status.barcodeDisable=false">手动输入</div>
  33. <div class="btn btn-sm btn-outline-danger" @click="status.barcodeDisable=true">扫描输入</div>
  34. </div>
  35. <input type="text" id="barcode" class="form-control" placeholder="扫入条码"
  36. :disabled="status.barcodeDisable" {{-- @focusin="focusOutDocument" @focusout="focusDocument" v-model="inputting.barcode"--}}>
  37. <div v-if="inputMode=='regular'">
  38. <div class="card-title">生产日期:</div>
  39. <input type="date" class="form-control mb-2"
  40. {{--v-model="inputting.produce_date" @focusin="focusOutDocument" @focusout="focusDocument" @keyup="oninputEnter"--}}>
  41. <div class="card-title">失效日期:</div>
  42. <input type="date" class="form-control mb-2"
  43. {{--v-model="inputting.valid_date" @focusin="focusOutDocument" @focusout="focusDocument" @keyup="oninputEnter"--}}>
  44. </div>
  45. </div>
  46. <div class="col-6">
  47. <div class="card-title" id="amountLabel">手动输入数量:</div>
  48. <div class="input-group mt-n2 mb-2">
  49. <input type="number" id="amount" style='height: 40px;font-size: 1.6em;color:blue;font-weight: bolder;padding: 3px;text-align: center' class="form-control" placeholder=""
  50. {{--:disabled="status.amountDisable" v-model="inputting.amount" @focusin="focusOutDocument" @focusout="focusDocument" @keyup="oninputEnter"--}}>
  51. </div>
  52. <div class="card-title">格口号:</div>
  53. <input type="number" id="bin" class="form-control mt-n2 mb-2" style='height: 80px;font-size: 5em;color:red;font-weight: bolder;padding: 3px;text-align: center'
  54. {{--v-model="inputting.bin" :disabled="status.binDisable" @focusin="focusOutDocument" @focusout="focusDocument" @keyup="oninputEnter"--}}>
  55. <div v-if="inputMode=='regular'">
  56. <div class="card-title">批次号:</div>
  57. <input type="text" class="form-control mb-2"
  58. {{--v-model="inputting.batch_number" @focusin="focusOutDocument" @focusout="focusDocument" @keyup="oninputEnter"--}}>
  59. </div>
  60. </div>
  61. <div class="col-12" v-if="status.commitButtonVisible && inputMode=='regular'" >
  62. <button class="btn btn-success btn form-control" {{--@click="commitGoods"--}}>确定</button>
  63. </div>
  64. </div>
  65. <p class="card-text text-muted mt-3 mb-n3 text-center">已完成:</p>
  66. <hr>
  67. <table class="table table-sm table-striped" {{--v-if="goodses.length>0"--}}>
  68. <tr>
  69. <th>隔口号</th>
  70. <th>数量</th>
  71. <th>条码</th>
  72. <th>生产日期</th>
  73. <th>失效日期</th>
  74. <th>批次号</th>
  75. <th>操作</th>
  76. </tr>
  77. {{--<tr v-for="goods in goodses">
  78. <td>@{{ goods.bin }}</td>
  79. <td>@{{ goods.amount }}</td>
  80. <td>@{{ goods.barcode }}</td>
  81. <td>@{{ goods.produce_date }}</td>
  82. <td>@{{ goods.valid_date }}</td>
  83. <td>@{{ goods.batch_number }}</td>
  84. <td><button class="btn btn-outline-danger btn-sm" @click="removeGoods($event,goods.barcode)">删</button></td>
  85. </tr>--}}
  86. </table>
  87. <hr>
  88. <span class="btn btn-outline-success btn form-control" style="cursor: pointer">确定生成该批盘收</span>
  89. </div>
  90. </div>
  91. <div class="ml-2 mt-2">
  92. <button class="btn btn-sm btn-outline-dark">导出</button>
  93. <button class="btn btn-sm btn-outline-danger">重新清点</button>
  94. <button class="btn btn-sm btn-outline-success">匹配ASN单据</button>
  95. </div>
  96. <div class="row text-primary ml-1 mr-2 mt-1 mb-1 w-100" style="background-color: #c3e3b5">
  97. <span class="ml-1">任务ID: <b class="text-dark">@{{ storeCheckingReceive.id }}</b></span>
  98. <span class="ml-3">货主: <b class="text-dark">@{{ storeCheckingReceive.owner_name }}</b></span>
  99. <span class="ml-3">创建时间: <b class="text-dark">@{{ storeCheckingReceive.created_at }}</b></span>
  100. <span class="ml-3">ASN号: <b class="text-dark">@{{ storeCheckingReceive.asn }}</b></span>
  101. </div>
  102. <table class="table table-sm text-nowrap table-bordered d-none" id="headerRoll"></table>
  103. <table class="table table-striped table-sm text-nowrap table-hover mt-1" id="headerParent">
  104. <tr id="header"></tr>
  105. <tr v-for="(storeCheckingReceiveItem,i) in storeCheckingReceiveItems">
  106. <td>@{{ i+1 }}</td>
  107. <td>@{{ storeCheckingReceiveItem.id }}</td>
  108. <td>@{{ storeCheckingReceiveItem.bin_number }}</td>
  109. <td>@{{ storeCheckingReceiveItem.commodity_name }}</td>
  110. <td>
  111. <span v-for="commodity_barcode in storeCheckingReceiveItem.commodity_barcodes">
  112. <small>@{{ commodity_barcode.code }}</small><br>
  113. </span>
  114. </td>
  115. <td>@{{ storeCheckingReceiveItem.imported_amount }}</td>
  116. <td>@{{ storeCheckingReceiveItem.counted_amount }}</td>
  117. <td>@{{ storeCheckingReceiveItem.asn_amount }}</td>
  118. <td>@{{ storeCheckingReceiveItem.imported_diff_amount }}</td>
  119. <td>@{{ storeCheckingReceiveItem.asn_diff_amount }}</td>
  120. <td>@{{ storeCheckingReceiveItem.produced_at }}</td>
  121. <td>@{{ storeCheckingReceiveItem.invalid_at }}</td>
  122. <td>@{{ storeCheckingReceiveItem.batch_code }}</td>
  123. <td>@{{ storeCheckingReceiveItem.unique_code }}</td>
  124. </tr>
  125. </table>
  126. </div>
  127. @stop
  128. @section('lastScript')
  129. <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
  130. <script>
  131. new Vue({
  132. el:"#container",
  133. data:{
  134. storeCheckingReceive:{id:'{{$storeCheckingReceive->id}}',owner_name:'{{$storeCheckingReceive->owner ? $storeCheckingReceive->owner->name : ''}}',
  135. created_at:'{{$storeCheckingReceive->created_at}}',asn:'{{$storeCheckingReceive->asn}}'},
  136. storeCheckingReceiveItems:[
  137. @foreach($storeCheckingReceive->storeCheckingReceiveItems as $storeCheckingReceiveItem)
  138. {id:'{{$storeCheckingReceiveItem->id}}',bin_number:'{{$storeCheckingReceiveItem->bin_number}}',
  139. commodity_name:"{{$storeCheckingReceiveItem->commodity ? $storeCheckingReceiveItem->commodity->name : ''}}",
  140. commodity_barcodes:{!! $storeCheckingReceiveItem->commodity ? ($storeCheckingReceiveItem->commodity->barcodes ? $storeCheckingReceiveItem->commodity->barcodes : []) : [] !!},
  141. imported_amount:'{{$storeCheckingReceiveItem->imported_amount}}',counted_amount:'{{$storeCheckingReceiveItem->counted_amount}}',
  142. asn_amount:'{{$storeCheckingReceiveItem->asn_amount}}',imported_diff_amount:'{{$storeCheckingReceiveItem->imported_diff_amount}}',
  143. asn_diff_amount:'{{$storeCheckingReceiveItem->asn_diff_amount}}',produced_at:'{{$storeCheckingReceiveItem->produced_at}}',
  144. invalid_at:'{{$storeCheckingReceiveItem->invalid_at}}',batch_code:'{{$storeCheckingReceiveItem->batch_code}}',
  145. unique_code:'{{$storeCheckingReceiveItem->unique_code}}'}
  146. @endforeach
  147. ],
  148. inputMode : 'regular',
  149. status:{
  150. barcodeDisable : true,
  151. commitButtonVisible:false,
  152. },
  153. },
  154. mounted(){
  155. $('#container').removeClass('d-none');
  156. $(".tooltipTarget").tooltip({'trigger':'hover'});
  157. let column = [
  158. {name:'index',value: '序号', neglect: true},
  159. {name:'id',value: 'ID', neglect: true},
  160. {name:'bin_number',value: '格口号'},
  161. {name:'commodity_name',value: '商品名'},
  162. {name:'commodity_barcode',value: '商品条码'},
  163. {name:'imported_amount',value: '导入数量', neglect: true},
  164. {name:'counted_amount',value: '实盘数量', neglect: true},
  165. {name:'asn_amount',value: 'ASN数量', neglect: true},
  166. {name:'imported_diff_amount',value: '导入差异数', neglect: true},
  167. {name:'asn_diff_amount',value: 'ASN差异数', neglect: true},
  168. {name:'produced_at',value: '生产日期'},
  169. {name:'invalid_at',value: '有效期'},
  170. {name:'batch_code',value: '批次号'},
  171. {name:'unique_code',value: '唯一码'},
  172. ];
  173. let header = new Header({
  174. el: "#header",
  175. column: column,
  176. data: this.storeCheckingReceiveItems,
  177. restorationColumn: 'id',
  178. });
  179. header.init();
  180. },
  181. methods:{
  182. switchMenu(menuName){
  183. this.inputMode = menuName;
  184. }
  185. },
  186. });
  187. </script>
  188. @stop