|
1
2
3
4
5
6
7
8
9
|
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
:confirmLoading="confirmLoading"
switchFullscreen
@ok="handleOk"
@cancel="handleCancel"
|
|
10
11
|
cancelText="关闭"
>
|
|
12
13
14
15
16
|
<a-spin :spinning="confirmLoading">
<a-form-model ref="form" :model="model" :rules="validatorRules">
<a-row>
<a-col :span="24">
<a-form-model-item label="物料编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialCode">
|
|
17
|
<a-input v-model="model.materialCode" placeholder="请输入物料编码" style="width: 100%" />
|
|
18
19
20
21
|
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="物料名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialName">
|
|
22
|
<a-input v-model="model.materialName" placeholder="请输入物料名称" style="width: 100%" />
|
|
23
24
25
26
|
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="可出数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qty">
|
|
27
|
<a-input-number v-model="model.qty" placeholder="请输入可出数量" style="width: 100%" />
|
|
28
29
30
31
|
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="出库数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="taskQty">
|
|
32
|
<a-input-number v-model="model.taskQty" placeholder="请输入出库数量" style="width: 100%" />
|
|
33
34
35
36
37
|
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</a-spin>
|
|
38
39
40
41
42
43
|
<!-- table区域-begin -->
<div>
<a-table
ref="table"
rowKey="id"
size="middle"
|
|
44
45
46
|
bordered
class="j-table-force-nowrap"
:scroll="{x:true}"
|
|
47
48
|
:columns="columns"
:dataSource="dataSource"
|
|
49
50
51
52
53
|
:pagination="false"
:loading="loading"
>
<span slot="action" slot-scope="text, record">
<a-button @click="combine(record)" type="primary">配盘</a-button>
|
|
54
55
56
|
</span>
</a-table>
</div>
|
|
57
58
59
60
|
</j-modal>
</template>
<script>
|
|
61
62
63
64
65
66
67
|
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { httpAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
import { searchMaterialByCode, getInventoryFromShipmentDetail } from '@/api/api'
import { listShipmentByShipmentDetailId, combination } from '@/api/api'
import { filterObj } from '@/utils/util'
import { deleteAction, getAction, downFile, getFileAccessHttpUrl } from '@/api/manage'
|
|
68
|
|
|
69
|
export default {
|
|
70
|
name: 'ShipmentDetailCombineModal',
|
|
71
|
components: {
|
|
72
|
JeecgListMixin
|
|
73
74
75
76
77
78
79
80
81
82
|
},
props: {
mainId: {
type: String,
required: false,
default: ''
}
},
data() {
return {
|
|
83
|
title: '操作',
|
|
84
85
86
87
|
width: 1000,
/* 分页参数 */
ipagination: {
current: 1,
|
|
88
|
pageSize: 100,
|
|
89
90
|
pageSizeOptions: ['10', '20', '30'],
showTotal: (total, range) => {
|
|
91
|
return range[0] + '-' + range[1] + ' 共' + total + '条'
|
|
92
|
},
|
|
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
showQuickJumper: true,
showSizeChanger: true,
total: 0
},
/* 数据源 */
dataSource: [],
queryParam: {},
combineParam: {},
shipmentParam: {},
visible: false,
materialList: {},
querySource: {},
/* 筛选参数 */
filters: {},
/* table加载状态 */
loading: false,
/* table选中keys*/
selectedRowKeys: [],
/* table选中records*/
selectionRows: [],
/* 查询折叠 */
toggleSearchStatus: false,
/* 高级查询条件生效状态 */
superQueryFlag: false,
/* 高级查询条件 */
superQueryParams: '',
/** 高级查询拼接方式 */
superQueryMatchType: 'and',
model: {},
labelCol: {
|
|
123
124
|
xs: { span: 24 },
sm: { span: 5 }
|
|
125
126
|
},
wrapperCol: {
|
|
127
128
|
xs: { span: 24 },
sm: { span: 16 }
|
|
129
130
131
132
133
|
},
// 表头
columns: [
{
title: '容器编码',
|
|
134
|
align: 'center',
|
|
135
|
dataIndex: 'containerCode'
|
|
136
|
},
|
|
137
138
|
{
title: '库位编码',
|
|
139
|
align: 'center',
|
|
140
|
dataIndex: 'locationCode'
|
|
141
|
},
|
|
142
143
|
{
title: '物料编码',
|
|
144
|
align: 'center',
|
|
145
|
dataIndex: 'materialCode'
|
|
146
|
},
|
|
147
148
|
{
title: '物料名称',
|
|
149
|
align: 'center',
|
|
150
151
152
153
|
dataIndex: 'materialName'
},
{
title: '库存数量',
|
|
154
|
align: 'center',
|
|
155
156
157
158
|
dataIndex: 'qty'
},
{
title: '锁定数量',
|
|
159
|
align: 'center',
|
|
160
161
162
163
|
dataIndex: 'taskQty'
},
{
title: '库存状态',
|
|
164
165
|
align: 'center',
dataIndex: 'inventoryStatus'
|
|
166
167
168
|
},
{
title: '批次',
|
|
169
|
align: 'center',
|
|
170
171
172
173
|
dataIndex: 'batch'
},
{
title: '创建人',
|
|
174
|
align: 'center',
|
|
175
|
dataIndex: 'createBy'
|
|
176
|
},
|
|
177
178
|
{
title: '创建日期',
|
|
179
|
align: 'center',
|
|
180
181
182
183
184
|
dataIndex: 'createTime'
},
{
title: '操作',
dataIndex: 'action',
|
|
185
186
|
align: 'center',
fixed: 'right',
|
|
187
|
width: 147,
|
|
188
|
scopedSlots: { customRender: 'action' }
|
|
189
|
}
|
|
190
191
192
193
|
],
confirmLoading: false,
validatorRules: {},
url: {
|
|
194
195
196
|
add: '/shipment/shipmentHeader/addShipmentDetail',
edit: '/shipment/shipmentHeader/editShipmentDetail',
list: '/shipment/shipmentCombination/getInventoryFromShipmentDetail'
|
|
197
|
}
|
|
198
199
200
|
}
},
created() {
|
|
201
|
//备份model原始值
|
|
202
203
|
this.modelDefault = JSON.parse(JSON.stringify(this.model))
this.searchMaterial()
|
|
204
205
|
},
methods: {
|
|
206
207
208
209
210
|
getSuperFieldList() {
let fieldList = []
fieldList.push({ type: 'string', value: 'inventoryStatus', text: '库存状态', dictCode: 'inventory_status' })
this.superFieldList = fieldList
},
|
|
211
|
add() {
|
|
212
213
|
this.edit(this.modelDefault)
this.model.inventoryStatus = 'good'
|
|
214
|
},
|
|
215
216
|
edit(record) {
// this.model = Object.assign({}, record);
|
|
217
218
|
this.shipmentParam = record
this.searchShipment()
|
|
219
220
|
},
close() {
|
|
221
222
223
|
this.$emit('close')
this.visible = false
this.$refs.form.clearValidate()
|
|
224
225
|
},
combine(record) {
|
|
226
227
228
229
230
231
|
const that = this
that.querySource = record
this.combineParam.shipmentDetailID = this.model.id
this.combineParam.inventoryDetailID = record.id
this.combineParam.shipQty = this.model.taskQty
combination(this.combineParam).then(res => {
|
|
232
233
|
if (res.success) {
// this.model = res.result;
|
|
234
235
|
this.$message.success(res.message)
this.searchShipment()
|
|
236
237
|
} else {
this.$message.warning(res.message)
|
|
238
|
}
|
|
239
|
})
|
|
240
241
|
},
searchShipment() {
|
|
242
243
244
|
const that = this
that.querySource = this.shipmentParam
listShipmentByShipmentDetailId(that.querySource).then(res => {
|
|
245
|
if (res.success) {
|
|
246
247
248
|
this.model = res.result
this.visible = true
this.searchInventory(that.querySource)
|
|
249
250
|
} else {
this.$message.warning(res.message)
|
|
251
|
}
|
|
252
|
})
|
|
253
254
|
},
searchInventory(record) {
|
|
255
256
257
|
const that = this
that.querySource = record
console.log('searchInventory')
|
|
258
259
260
|
// getInventoryFromShipmentDetail(that.querySource).then((res) => {
// this.dataSource = res.result;
// });
|
|
261
|
this.searchQuery()
|
|
262
263
|
},
searchQuery() {
|
|
264
|
this.loadData(1)
|
|
265
266
267
268
269
270
271
|
// 点击查询清空列表选中行
// https://gitee.com/jeecg/jeecg-boot/issues/I4KTU1
// this.selectedRowKeys = []
// this.selectionRows = []
},
loadData(arg) {
if (!this.url.list) {
|
|
272
|
this.$message.error('请设置url.list属性!')
|
|
273
274
275
276
|
return
}
//加载数据 若传入参数1则加载第一页的内容
if (arg === 1) {
|
|
277
|
this.ipagination.current = 1
|
|
278
|
}
|
|
279
280
281
282
283
284
285
286
287
288
289
290
291
|
var params = this.getQueryParams() //查询条件
this.loading = true
getAction(this.url.list, params)
.then(res => {
if (res.success) {
//update-begin---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
this.dataSource = res.result.records || res.result
if (res.result.total) {
this.ipagination.total = res.result.total
} else {
this.ipagination.total = 0
}
//update-end---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
|
292
|
} else {
|
|
293
|
this.$message.warning(res.message)
|
|
294
|
}
|
|
295
296
297
298
|
})
.finally(() => {
this.loading = false
})
|
|
299
300
301
|
},
getQueryField() {
//TODO 字段权限控制
|
|
302
303
304
305
306
|
var str = 'id,'
this.columns.forEach(function(value) {
str += ',' + value.dataIndex
})
return str
|
|
307
308
309
310
311
312
313
314
|
},
getQueryParams() {
//获取查询条件
let sqp = {}
if (this.superQueryParams) {
sqp['superQueryParams'] = encodeURI(this.superQueryParams)
sqp['superQueryMatchType'] = this.superQueryMatchType
}
|
|
315
316
317
318
319
320
|
this.queryParam.id = this.model.id
var param = Object.assign(sqp, this.queryParam, this.isorter, this.filters)
param.field = this.getQueryField()
param.pageNo = this.ipagination.current
param.pageSize = this.ipagination.pageSize
return filterObj(param)
|
|
321
322
|
},
handleOk() {
|
|
323
324
|
const that = this
that.close()
|
|
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
|
// 触发表单验证
// this.$refs.form.validate(valid => {
// if (valid) {
// that.confirmLoading = true;
// let httpurl = '';
// let method = '';
// if(!this.model.id){
// httpurl+=this.url.add;
// method = 'post';
// }else{
// httpurl+=this.url.edit;
// method = 'put';
// }
// this.model['shipmentId'] = this.mainId
// httpAction(httpurl,this.model,method).then((res)=>{
// if(res.success){
// that.$message.success(res.message);
// that.$emit('ok');
// }else{
// that.$message.warning(res.message);
// }
// }).finally(() => {
// that.confirmLoading = false;
// that.close();
// })
// }else{
// return false
// }
// })
},
handleCancel() {
this.close()
},
searchMaterial() {
|
|
359
360
361
362
363
|
const that = this
that.querySource.materialCode = that.model.materialCode
console.log('model.materialCode:' + that.model.materialCode)
searchMaterialByCode(that.querySource).then(res => {
that.materialList = res.result
|
|
364
|
})
|
|
365
|
}
|
|
366
|
}
|
|
367
|
}
|
|
368
|
</script>
|