Commit d768dde7545dbf2999b598e4c896013312e166bf

Authored by xqs
1 parent dbe0e856

库存页搜索

src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html
... ... @@ -19,9 +19,6 @@
19 19 存货编码:<input type="text" name="materialCode"/>
20 20 </li>
21 21 <li>
22   - 存货代码:<input type="text" name="materialOldCode"/>
23   - </li>
24   - <li>
25 22 物料名称:<input type="text" name="materialName"/>
26 23 </li>
27 24 <li>
... ... @@ -59,6 +56,12 @@
59 56 </div>
60 57 </form>
61 58 </div>
  59 + <div class="btn-group hidden-xs" id="toolbar" role="group">
  60 + <a class="btn btn-outline btn-primary btn-rounded" onclick="checkOut()"
  61 + shiro:hasPermission="inventory:inventory:seeOut">
  62 + <i class="fa fa-eye"></i> 出库查看
  63 + </a>
  64 + </div>
62 65 <div class="col-sm-12 select-info">
63 66 <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
64 67 </div>
... ... @@ -66,11 +69,15 @@
66 69 </div>
67 70 <div th:include="include :: footer"></div>
68 71 <script th:inline="javascript">
69   - var prefix = ctx + "inventory/inventoryDetail"
  72 + var prefix = ctx + "inventory/inventoryDetail";
70 73 var inventoryStatus = [[${@dict.getType('inventoryStatus')}]];
71 74 $(function () {
72   - var options = {
73   - // url: prefix + "/inventoryDetailLook",
  75 + update();
  76 + });
  77 +
  78 +
  79 + function update() {
  80 + let options = {
74 81 createUrl: prefix + "/add",
75 82 updateUrl: prefix + "/edit/{id}",
76 83 removeUrl: prefix + "/remove",
... ... @@ -269,34 +276,41 @@
269 276 }
270 277 ]
271 278 };
272   - $.table.init(options);
273   - update();
274   - });
275   -
276   -
277   - function update() {
278 279 let url = location.search; //获取url中"?"符后的字串
279 280 let str = url.substr(1); //从第一个字符开始 因为第0个是?号 获取所有除问号的所有符串
280 281 let strs = str.split("="); //用等号进行分隔 (因为知道只有一个参数 所以直接用等号进分隔 如果有多个参数 要用&号分隔 再用等号进行分隔)
281   - // if (url.indexOf("?") != -1) { //判断是否有参数
282   - $.ajax({
283   - url: prefix + "/inventoryDetailLook",
284   - type:"post",
285   - data:{
286   - inventoryHeaderId:strs[1]||null
287   - },
288   - success:function (res) {
289   - $("#bootstrap-table").bootstrapTable('removeAll');
290   - // $("#bootstrap-table").bootstrapTable('append', res.data);
291   - for (let i = 0; i < res.data.length; i++) {
292   - $("#bootstrap-table").bootstrapTable('insertRow', {index:i,row:res.data[i]});
  282 + if (url.indexOf("?") === -1) {options.url=prefix + "/inventoryDetailLook"} //判断是否有参数
  283 + $.table.init(options);
  284 + $.ajax({
  285 + url: prefix + "/inventoryDetailLook",
  286 + type: "post",
  287 + data: {
  288 + inventoryHeaderId: strs[1] || null
  289 + },
  290 + success: function (res) {
  291 + $("#bootstrap-table").bootstrapTable('removeAll');
  292 + for (let i = 0; i < res.data.length; i++) {
  293 + $("#bootstrap-table").bootstrapTable('insertRow', {index: i, row: res.data[i]});
293 294  
294   - }
295 295 }
296   - })
297   - // }
  296 + }
  297 + })
298 298 }
299 299  
  300 + function checkOut() {
  301 + var rows = $("#bootstrap-table").bootstrapTable('getSelections');
  302 + if (rows.length == 0) {
  303 + $.modal.alertWarning("请至少选择一条记录");
  304 + return;
  305 + }
  306 + var url = prefix + "/createCheckOutTask";
  307 + var data = {
  308 + "ids": rows.map(function (v) {
  309 + return v.id;
  310 + }).join(',')
  311 + };
  312 + localSubmit(url, "post", "json", data);
  313 + }
300 314  
301 315 function localSubmit(url, type, dataType, data) {
302 316 $.modal.loading("正在处理中,请稍后...");
... ... @@ -313,6 +327,7 @@
313 327 $.ajax(config)
314 328 }
315 329  
  330 +
316 331 </script>
317 332 </body>
318 333 </html>
319 334 \ No newline at end of file
... ...
src/main/resources/templates/inventory/inventoryHeader/inventoryHeader.html
1 1 <!DOCTYPE HTML>
2   -<html lang="zh" xmlns:th="http://www.thymeleaf.org">
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
3 3 <meta charset="utf-8">
4 4 <head th:include="include :: header"></head>
5 5 <style>
6   - #toolbar1{
  6 + #toolbar1 {
7 7 display: inline-block;
8 8 /*position: absolute;
9 9 margin: 10px auto;*/
... ... @@ -11,225 +11,259 @@
11 11 }
12 12 </style>
13 13 <body class="gray-bg">
14   - <div class="container-div">
15   - <div class="row">
16   - <div class="col-sm-12 select-info">
17   - <ul id="myTab" class="nav nav-tabs">
18   - <li class="active"><a href="#tabHeader" data-toggle="tab">主表</a></li>
19   - <li><a href="#tabDetail" data-toggle="tab">明细</a></li>
20   - </ul>
21   - <div id="myTabContent" class="tab-content">
22   - <div class="tab-pane fade in active" id="tabHeader">
23   - <div class="col-sm-12 select-info">
24   - <form id="inventoryHeader-form">
25   - <div class="select-list">
26   - <ul>
27   - <li>
28   - 差异单编号:<input type="text" name="code"/>
29   - </li>
30   - <li>
31   - 源盘点单号:<input type="text" name="sourceCode"/>
32   - </li>
33   - <!--<li>
34   - 差异单状态:<select name="status"
35   - th:with="lastStatus=${@dict.getType('adjustType')}">
36   - <option value="">所有</option>
37   - <option th:each="e : ${lastStatus}" th:text="${e['dictLabel']}"
38   - th:value="${e['dictValue']}"></option>
39   - </select>
40   - </li>-->
41   - <li class="time">
42   - <label>创建时间: </label>
43   - <input type="text" class="time-input" id="startTime" placeholder="开始时间"
44   - name="params[createdBegin]"/>
45   - <span>-</span>
46   - <input type="text" class="time-input" id="endTime" placeholder="结束时间"
47   - name="params[createdEnd]"/>
48   - </li>
49   - <li>
50   - 货主编码:<input type="text" name="companyCode"/>
51   - </li>
52   - <li>
53   - 创建人:<input type="text" name="createdBy"/>
54   - </li>
55   - <li>
56   - 更新人:<input type="text" name="lastUpdatedBy"/>
57   - </li>
58   - <li>
59   - <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
60   - class="fa fa-search"></i>&nbsp;搜索</a>
61   - </li>
62   - </ul>
63   - </div>
64   - </form>
65   - </div>
66   - <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
67   - </div>
68   - <div class="tab-pane fade" id="tabDetail"></div>
69   - </div>
70   - </div>
71   -
72   - </div>
  14 +<div class="container-div">
  15 + <div class="row">
  16 + <div class="col-sm-12 select-info">
  17 + <ul id="myTab" class="nav nav-tabs">
  18 + <li class="active"><a href="#tabHeader" data-toggle="tab">主表</a></li>
  19 + <li><a href="#tabDetail" data-toggle="tab">明细</a></li>
  20 + </ul>
  21 + <div id="myTabContent" class="tab-content">
  22 + <div class="tab-pane fade in active" id="tabHeader">
  23 + <div class="col-sm-12 select-info">
  24 + <form id="inventoryHeader-form">
  25 + <div class="select-list">
  26 + <ul>
  27 + <li>
  28 + 库位编号:<input type="text" name="locationCode"/>
  29 + </li>
  30 + <li>
  31 + 容器编号:<input type="text" name="containerCode"/>
  32 + </li>
  33 + <li class="time">
  34 + <label>创建时间: </label>
  35 + <input type="text" class="time-input" id="startTime" placeholder="开始时间"
  36 + name="params[createdBegin]"/>
  37 + <span>-</span>
  38 + <input type="text" class="time-input" id="endTime" placeholder="结束时间"
  39 + name="params[createdEnd]"/>
  40 + </li>
  41 + <li>
  42 + 创建用户:<input type="text" name="createdBy"/>
  43 + </li>
  44 + <li>
  45 + 更新用户:<input type="text" name="lastUpdatedBy"/>
  46 + </li>
  47 + <li>
  48 + <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
  49 + class="fa fa-search"></i>&nbsp;搜索</a>
  50 + </li>
  51 + </ul>
  52 + </div>
  53 + </form>
  54 + </div>
  55 + <div class="btn-group hidden-xs" id="toolbar" role="group">
  56 + <a class="btn btn-outline btn-danger btn-rounded" onclick="transfer()">
  57 + <i class="fa fa-exchange"></i> 立库移库
  58 + </a>
  59 + <a class="btn btn-outline btn-primary btn-rounded" onclick="checkOut()">
  60 + <i class="fa fa-eye"></i> 出库查看
  61 + </a>
  62 + </div>
  63 + <div class="col-sm-12 select-info">
  64 + <table id="bootstrap-table" data-mobile-responsive="true"
  65 + class="table table-bordered table-hover"></table>
  66 + </div>
  67 + </div>
  68 + <div class="tab-pane fade in active" id="tabDetail"></div>
  69 + </div>
  70 + </div>
73 71 </div>
74   - <div th:include="include :: footer"></div>
75   - <script th:inline="javascript">
76   - var prefix = ctx + "inventory/inventoryHeader";
77   - //var upload = [[${@permission.hasPermi('inventoryHeader:cyclecountAdjust:upload')}]];
78   - var report =[[${@permission.hasPermi('inventoryHeader:cyclecountAdjust:report')}]];
79   - var datas = [[${@dict.getType('sys_normal_disable')}]];
80   - var status2 = [[${@dict.getType('adjustType')}]];
  72 +</div>
  73 +<div th:include="include :: footer"></div>
  74 +<script th:inline="javascript">
  75 + var prefix = ctx + "inventory/inventoryHeader";
  76 + //var upload = [[${@permission.hasPermi('inventoryHeader:cyclecountAdjust:upload')}]];
  77 + var report = [[${@permission.hasPermi('inventoryHeader:cyclecountAdjust:report')}]];
  78 + var datas = [[${@dict.getType('sys_normal_disable')}]];
  79 + var status2 = [[${@dict.getType('adjustType')}]];
81 80  
82   - $(function() {
83   - var options = {
84   - url: prefix + "/inventoryLook",
85   - createUrl: prefix + "/add",
86   - updateUrl: prefix + "/edit/{id}",
87   - modalName: "库存头",
88   - sortName: "id",
89   - sortOrder: "desc",
90   - search: false,
91   - // onDblClickRow: function (row) {
92   - // showDetail(row.id,row.code);
93   - // },
94   - columns: [
95   - {
96   - checkbox: true
97   - },
98   - {
99   - field : 'id',
100   - title : '头ID',
101   - sortable:true
102   - },
103   - {
104   - field : 'warehouseCode',
105   - title : '仓库 ',
106   - visible: false
107   - },
108   - {
109   - field : 'companyCode',
110   - title : ' 货主',
111   - visible: false
112   - },
113   - {
114   - field : 'locationCode',
115   - title : '库位 '
116   - },
117   - {
118   - field : 'containerCode',
119   - title : ' 容器'
120   - },
121   - {
122   - field : 'containerStatus',
123   - title : ' 容器状态'
124   - },
125   - {
126   - field : 'totalWeight',
127   - title : ' 总重量'
128   - },
129   - {
130   - field : 'materialSkuQty',
131   - title : ' 商品种类的数量'
132   - },
133   - {
134   - field : 'totalQty',
135   - title : ' 总数量'
136   - },
137   - {
138   - field : 'totalLines',
139   - title : '总行量 '
140   - },
141   - {
142   - field : 'projectNos',
143   - title : ' 项目号列表',
144   - visible: false
145   - },
146   - {
147   - field : 'batchs',
148   - title : ' 批次列表',
149   - visible: false
150   - },
151   - {
152   - field : 'lots',
153   - title : ' 批号列表',
154   - visible: false
155   - },
156   - {
157   - field : 'lock',
158   - title : ' 锁定'
159   - },
160   - {
161   - field : 'lockRemark',
162   - title : ' 锁定备注'
163   - },
164   - {
165   - field : 'created',
166   - title : ' 创建时间'
167   - },
168   - {
169   - field : 'createdBy',
170   - title : ' 创建用户'
171   - },
172   - {
173   - field : 'lastUpdated',
174   - title : ' 更新时间'
175   - },
176   - {
177   - field : 'lastUpdatedBy',
178   - title : ' 更新用户'
179   - },
180   - {
181   - field : 'version',
182   - title : ' 数据版本'
183   - },
184   - {
185   - field : 'userDef1',
186   - title : ' 自定义字段1'
187   - },
188   - {
189   - field : 'userDef2',
190   - title : ' 自定义字段2'
191   - },
  81 + $(function () {
  82 + var options = {
  83 + url: prefix + "/inventoryLook",
  84 + createUrl: prefix + "/add",
  85 + updateUrl: prefix + "/edit/{id}",
  86 + modalName: "库存头",
  87 + sortName: "id",
  88 + sortOrder: "desc",
  89 + search: false,
  90 + // onDblClickRow: function (row) {
  91 + // showDetail(row.id,row.code);
  92 + // },
  93 + columns: [
  94 + {
  95 + checkbox: true
  96 + },
  97 + {
  98 + field: 'id',
  99 + title: '头ID',
  100 + sortable: true
  101 + },
  102 + {
  103 + field: 'warehouseCode',
  104 + title: '仓库 ',
  105 + visible: false
  106 + },
  107 + {
  108 + field: 'companyCode',
  109 + title: ' 货主',
  110 + visible: false
  111 + },
  112 + {
  113 + field: 'locationCode',
  114 + title: '库位 '
  115 + },
  116 + {
  117 + field: 'containerCode',
  118 + title: ' 容器'
  119 + },
  120 + {
  121 + field: 'containerStatus',
  122 + title: ' 容器状态'
  123 + },
  124 + {
  125 + field: 'totalWeight',
  126 + title: ' 总重量'
  127 + },
  128 + {
  129 + field: 'materialSkuQty',
  130 + title: ' 商品种类的数量'
  131 + },
  132 + {
  133 + field: 'totalQty',
  134 + title: ' 总数量'
  135 + },
  136 + {
  137 + field: 'totalLines',
  138 + title: '总行量 '
  139 + },
  140 + {
  141 + field: 'projectNos',
  142 + title: ' 项目号列表',
  143 + visible: false
  144 + },
  145 + {
  146 + field: 'batchs',
  147 + title: ' 批次列表',
  148 + visible: false
  149 + },
  150 + {
  151 + field: 'lots',
  152 + title: ' 批号列表',
  153 + visible: false
  154 + },
  155 + {
  156 + field: 'lock',
  157 + title: ' 锁定'
  158 + },
  159 + {
  160 + field: 'lockRemark',
  161 + title: ' 锁定备注'
  162 + },
  163 + {
  164 + field: 'created',
  165 + title: ' 创建时间'
  166 + },
  167 + {
  168 + field: 'createdBy',
  169 + title: ' 创建用户'
  170 + },
  171 + {
  172 + field: 'lastUpdated',
  173 + title: ' 更新时间'
  174 + },
  175 + {
  176 + field: 'lastUpdatedBy',
  177 + title: ' 更新用户'
  178 + },
  179 + {
  180 + field: 'version',
  181 + title: ' 数据版本'
  182 + },
  183 + {
  184 + field: 'userDef1',
  185 + title: ' 自定义字段1'
  186 + },
  187 + {
  188 + field: 'userDef2',
  189 + title: ' 自定义字段2'
  190 + },
192 191  
193   - {
194   - field: 'enable',
195   - title: '状态',
196   - align: 'center',
197   - formatter: function (value, row, index) {
198   - return $.table.selectDictLabel(datas, value);
199   - }
200   - },
201   - ]
202   - };
203   - $.table.init(options);
  192 + {
  193 + field: 'enable',
  194 + title: '状态',
  195 + align: 'center',
  196 + formatter: function (value, row, index) {
  197 + return $.table.selectDictLabel(datas, value);
  198 + }
  199 + },
  200 + ]
  201 + };
  202 + $.table.init(options);
204 203  
205   - });
  204 + });
206 205  
207   - function detail(id) {
208   - let url= ctx + "inventory/inventoryDetail"; //明细网页地址
209   - if (id){
210   - url = ctx +"inventory/inventoryDetail?inventoryHeaderId()="+id;
211   - }
212   - $("#tabDetail").children().remove();
213   - $("#myTab li").removeClass("active");
214   - var height = $(document).height()-100 + 'px';
215   - var str = '<iframe class="huaheng_iframe" name="iframe" width="100%" height="' + height + '" src="' + url + '" frameborder="0" data-id="' + url + '" seamless></iframe>';
216   - $("#tabDetail").empty();
217   - $("#tabDetail").append(str);
218   - $(".tab-pane").removeClass("in active");
219   - $("#myTab li:eq(1)").addClass("active");
220   - $("#tabDetail").addClass("in active");
  206 + function detail(id) {
  207 + let url = ctx + "inventory/inventoryDetail"; //明细网页地址
  208 + if (id) {
  209 + url = ctx + "inventory/inventoryDetail?inventoryHeaderId=" + id;
221 210 }
  211 + $("#tabDetail").children().remove();
  212 + $("#myTab li").removeClass("active");
  213 + var height = $(document).height() - 100 + 'px';
  214 + var str = '<iframe class="huaheng_iframe" name="iframe" width="100%" height="' + height + '" src="' + url + '" frameborder="0" data-id="' + url + '" seamless></iframe>';
  215 + $("#tabDetail").empty();
  216 + $("#tabDetail").append(str);
  217 + $(".tab-pane").removeClass("in active");
  218 + $("#myTab li:eq(1)").addClass("active");
  219 + $("#tabDetail").addClass("in active");
  220 + }
  221 +
  222 + function cyclecountPrint(id) {
  223 + var url = prefix + "/report/" + id;
  224 + $.modal.open("打印", url);
  225 + }
  226 +
  227 + $("#myTab li:eq(1)").click(function () {
  228 + detail();
  229 + });
222 230  
223   - function cyclecountPrint(id) {
224   - var url = prefix + "/report/" + id;
225   - $.modal.open("打印" , url);
  231 + function checkOut() {
  232 + var rows = $("#bootstrap-table").bootstrapTable('getSelections');
  233 + if (rows.length == 0) {
  234 + $.modal.alertWarning("请至少选择一条记录");
  235 + return;
226 236 }
  237 + var url = prefix + "/createCheckOutTask";
  238 + var data = {
  239 + "ids": rows.map(function (v) {
  240 + return v.id;
  241 + }).join(',')
  242 + };
  243 + localSubmit(url, "post", "json", data);
  244 + }
227 245  
228   - $("#myTab li:eq(1)").click(function () {
229   - detail();
230   - });
  246 + function localSubmit(url, type, dataType, data) {
  247 + $.modal.loading("正在处理中,请稍后...");
  248 + var config = {
  249 + url: url, type: type, dataType: dataType, data: data, success: function (result) {
  250 + if (result.code == web_status.SUCCESS) {
  251 + $.modal.msgSuccess(result.msg);
  252 + } else {
  253 + $.modal.alertError(result.msg)
  254 + }
  255 + $.modal.closeLoading()
  256 + }
  257 + };
  258 + $.ajax(config)
  259 + }
  260 +
  261 + function transfer() {
  262 + var url = prefix + "/transfer";
  263 + $.modal.open("立库移库", url);
  264 + }
231 265  
232 266  
233   - </script>
  267 +</script>
234 268 </body>
235 269 </html>
236 270 \ No newline at end of file
... ...
src/main/resources/templates/inventory/inventoryHeader/transfer.html
... ... @@ -5,8 +5,7 @@
5 5 <body class="white-bg">
6 6 <!--<div class="wrapper wrapper-content animated fadeInRight ibox-content">-->
7 7 <!--<ul id="myTab" class="nav nav-tabs">-->
8   - <!--<li class="active"><a href="#tab1" data-toggle="tab">立库区移库</a></li>-->
9   - <!--<li><a href="#tab2" data-toggle="tab">平库区移库</a></li>-->
  8 +<!--<li><a href="#tab2" data-toggle="tab">平库区移库</a></li>-->
10 9 <!--</ul>-->
11 10 <!--<div id="myTabContent" class="tab-content">-->
12 11 <!--<div class="tab-pane fade in active" id="tab1">-->
... ... @@ -35,7 +34,7 @@
35 34 </div>
36 35 <div th:include="include::footer"></div>
37 36 <script type="text/javascript">
38   - var prefix = ctx + "inventory/inventory"
  37 + var prefix = ctx + "inventory/inventorytransfer"
39 38 $("#form-inventory-transfer").validate({
40 39 rules:{
41 40 sourceLocation:{
... ...