changeInventory.blade.php 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. @extends('layouts.app')
  2. @section('title')库存管理@endsection
  3. @section('content')
  4. @component('inventory.statement.menu')@endcomponent
  5. <div id="list" class="d-none card container-fluid" style="min-width: 1500px">
  6. <div id="form_div"></div>
  7. <span class="dropdown">
  8. <button class="btn btn-outline-dark btn-sm form-control-sm dropdown-toggle tooltipTarget" :class="[checkData.length>0?'btn-dark text-light':'']"
  9. data-toggle="dropdown" title="导出所有页将会以搜索条件得到的过滤结果,将其全部记录(每一页)导出">
  10. 导出Excel
  11. </button>
  12. <div class="dropdown-menu">
  13. <a class="dropdown-item" @click="processExport(false)" href="javascript:">导出勾选内容</a>
  14. <a class="dropdown-item" @click="processExport(true)" href="javascript:">导出所有页</a>
  15. </div>
  16. </span>
  17. <table class="table table-sm table-striped table-bordered table-hover text-nowrap card-body mt-2">
  18. <tr>
  19. <th>
  20. <label for="all">
  21. <input id="all" type="checkbox" @click="checkAll($event)">全选
  22. </label>
  23. </th>
  24. <th>序号</th>
  25. <th>货主</th>
  26. <th>库位</th>
  27. <th>产品编码</th>
  28. <th>产品条码</th>
  29. <th>商品名称</th>
  30. <th>属性仓</th>
  31. <th>质量状态</th>
  32. <th>失效日期</th>
  33. <th>批号</th>
  34. <th>移出数量</th>
  35. <th>移入数量</th>
  36. <th>在库数量</th>
  37. <th>占用数量</th>
  38. </tr>
  39. <tr v-for="(oracleActTransactingLog,i) in oracleActTransactingLogs">
  40. <td>
  41. <input class="checkItem" type="checkbox" :value="oracleActTransactingLog" v-model="checkData">
  42. </td>
  43. <td>@{{ i+1 }}</td>
  44. <td class="text-primary">@{{ oracleActTransactingLog.货主 }}</td>
  45. <td class="text-muted">@{{ oracleActTransactingLog.库位 }}</td>
  46. <td class="text-muted">@{{ oracleActTransactingLog.产品编码 }}</td>
  47. <td class="text-muted">@{{ oracleActTransactingLog.产品条码 }}</td>
  48. <td :title="oracleActTransactingLog.商品名称" class="tooltipTarget" style="max-width: 200px;overflow:hidden">@{{ oracleActTransactingLog.商品名称 }}</td>
  49. <td class="text-muted">@{{ oracleActTransactingLog.属性仓 }}</td>
  50. <td class="text-muted">@{{ oracleActTransactingLog.质量状态 }}</td>
  51. <td class="text-muted">@{{ oracleActTransactingLog.失效日期 }}</td>
  52. <td class="text-muted">@{{ oracleActTransactingLog.批号 }}</td>
  53. <td>@{{ oracleActTransactingLog.移出数量 }}</td>
  54. <td>@{{ oracleActTransactingLog.移入数量 }}</td>
  55. <td><span v-if="oracleActTransactingLog.在库数量">@{{ oracleActTransactingLog.在库数量 }}</span><span v-else>0</span></td>
  56. <td><span v-if="oracleActTransactingLog.占用数量">@{{ oracleActTransactingLog.占用数量 }}</span><span v-else>0</span></td>
  57. </tr>
  58. </table>
  59. <div >
  60. <button type="button" @click="pageUp()" :readonly="page>1?false:true" class="btn btn-sm " :class="page>1?'btn-outline-info':''">上一页</button>
  61. <button type="button" @click="pageDown()" :readonly="page<maxPage?false:true" class="btn btn-sm m-3" :class="page<maxPage?'btn-outline-info':''">下一页</button>
  62. <input @keyup.enter="pageSkip($event)" class="form-control-sm ml-3 tooltipTarget" :placeholder="'当前页数:'+page+'/'+maxPage" title="去往指定页">
  63. <span class="text-muted m-1">共 @{{ sum }} 条</span>
  64. </div>
  65. </div>
  66. @endsection
  67. @section('lastScript')
  68. <script type="text/javascript" src="{{asset('js/queryForm/export.js')}}"></script>
  69. <script type="text/javascript" src="{{asset('js/queryForm/queryForm200803a.js')}}"></script>
  70. <script>
  71. new Vue({
  72. el:"#list",
  73. data:{
  74. oracleActTransactingLogs:{!! $oracleActTransactingLogs !!},
  75. page:Number('{{$page}}'),
  76. owners:[
  77. @foreach($owners as $owner)
  78. {name:'{{$owner->descr_c}}',value:'{{$owner->descr_c}}'},
  79. @endforeach
  80. ],
  81. checkData:[],
  82. maxPage:1,
  83. sum:0,
  84. date:[{name:'1',value:'近一天'},{name:'3',value:'近三天'},{name:'7',value:'近一周'},{name:'30',value:'近一月'},],
  85. },
  86. mounted:function () {
  87. $(".tooltipTarget").tooltip({'trigger':'hover'});
  88. $("#list").removeClass('d-none');
  89. if (this.oracleActTransactingLogs.length>0){
  90. this.maxPage=Math.ceil(this.oracleActTransactingLogs[0].sum/50);
  91. this.sum=this.oracleActTransactingLogs[0].sum;
  92. }
  93. let data=[
  94. [
  95. {name:['date_start','range'],type:'dataTime_select',tip:['选择创建日期的起始时间','查询内容的日期范围'],placeholder:['','查询内容的日期范围'],data: this.date},
  96. {name:'TOLocation',type:'input',tip:'库位:糊模查找需要在左边打上%符号',placeholder: '库位'},
  97. {name:'LotAtt05',type:'input',tip:'属性仓:糊模查找需要在左边打上%符号',placeholder: '属性仓'},
  98. {name:'LotAtt02_start',type:'dataTime',tip:'选择显示失效日期的起始时间'},
  99. {name:'descr_c',type:'select_multiple_select',tip:['输入关键词快速定位下拉列表,回车确定','选择要显示的客户'],
  100. placeholder:['货主','定位或多选货主'],data:this.owners},
  101. ],
  102. [
  103. {name:'date_end',type:'dataTime',tip:'选择创建日期的结束时间'},
  104. {name:'SKU',type:'input',tip:'产品编码:糊模查找需要在左边打上%符号',placeholder: '产品编码'},
  105. {name:'ALTERNATE_SKU1',type:'input',tip:'产品条码:糊模查找需要在左边打上%符号',placeholder: '产品条码'},
  106. {name:'LotAtt02_end',type:'dataTime',tip:'选择显示失效日期的结束时间'},
  107. ],
  108. ];
  109. this.form = new query({
  110. el:'#form_div',
  111. condition:data
  112. });
  113. this.form.init();
  114. },
  115. watch:{
  116. checkData:{
  117. handler(){
  118. if (this.checkData.length === this.oracleActTransactingLogs.length){
  119. document.querySelector('#all').checked = true;
  120. }else {
  121. document.querySelector('#all').checked = false;
  122. }
  123. },
  124. deep:true
  125. }
  126. },
  127. methods:{
  128. pageUp(){
  129. if (this.page<=1)return;
  130. this.href(this.page-1);
  131. },
  132. pageDown(){
  133. if (this.page>=this.maxPage)return;
  134. this.href(this.page+1);
  135. },
  136. pageSkip(e){
  137. if (Number(e.target.value)<=0 || Number(e.target.value)>this.maxPage){
  138. tempTip.setDuration(2000);
  139. tempTip.show('页数不存在! ');
  140. return
  141. }
  142. this.href(e.target.value);
  143. },
  144. href(page){
  145. let url = document.URL;
  146. if (url.indexOf('page='+this.page) != -1){
  147. url = url.replace("page="+this.page,"page="+page);
  148. }else{
  149. if (url.indexOf('?') == -1) url += "?page="+page;
  150. else url += "&page="+page;
  151. }
  152. window.location.href=url;
  153. },
  154. //全选事件
  155. checkAll(e){
  156. if (e.target.checked){
  157. this.oracleActTransactingLogs.forEach((el,i)=>{
  158. if (this.checkData.indexOf(el) == '-1'){
  159. this.checkData.push(el);
  160. }
  161. });
  162. }else {
  163. this.checkData = [];
  164. }
  165. },
  166. processExport(checkAllSign){
  167. let url = '{{url('inventory/statement/changeInventory/export')}}';
  168. let token='{{ csrf_token() }}';
  169. let data= JSON.stringify( this.checkData );
  170. excelExport(checkAllSign,data,url,this.sum,token);
  171. },
  172. },
  173. filters:{
  174. json(value) {
  175. return JSON.stringify(value);
  176. }
  177. },
  178. });
  179. </script>
  180. @endsection