1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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
123
124
125
126
127
128
129
130
131
132
133
134
/**
* @Description: 召回出库添加明细
* @author xioln
* @date 2023-08-01
* @FilePath: applications/dee-mes/src/privateComponents/components/AddOutStorageCallbackDetailDialog/index.vue
*/
<template>
<div class="addOutStorageCallbackDetail-dialog">
<dee-as-com
ref="materielSearch"
:lay-config="{ typeName: 'Inventory', layKey: 'search_sanqichukuwuliaomingxi' }"
:basic-data="defaultData"
@searchEvent="searchEvent"
/>
<dee-as-com
ref="materielTable"
class="list-table"
:lay-config="{ typeName: 'Inventory', layKey: 'table_sanqichukuwuliaomingxi' }"
@selectionChange="selectionChange"
/>
<div slot="footer" class="foot-btn-box">
<el-button type="primary" @click="submitEvent">确认</el-button>
<el-button @click="cancelEvent">取消</el-button>
</div>
</div>
</template>
<script>
export default {
componentName: '添加召回出库物料明细弹框',
name: 'AddOutStorageCallbackDetailDialog',
props: {
basicData: {
type: Object,
default: () => { }
}
},
data() {
return {
selection: [],
defaultData: {}
}
},
computed: {},
created() {
// 初始化数据
console.log('this.basicData', this.basicData)
},
methods: {
searchEvent(val) {
// const materialType = this.findByNameVnode(this, 'DeeAsForm').form.materialType
val.items.push({ fieldName: 'subTypeName', operator: 'EQ', value: 'Inventory' }/*, { fieldName: 'inventory.materialType', operator: 'EQ', value: materialType }*/)
val.items.push({ fieldName: 'status', operator: 'EQ', value: 'disposed' })
val.items.push({ fieldName: 'usableAmount', operator: 'GT', value: 0 })
val.items.push({ fieldName: 'disposeDes', operator: 'LIKE', value: '返厂' })
const extWorkCenterName = this.basicData.extWorkCenteName || (this.basicData.extWorkCeter && this.basicData.extWorkCeter.extname)
if (extWorkCenterName) {
val.items.push({ fieldName: 'workcenter', operator: 'EQ', value: extWorkCenterName })
}
const el = this.$refs['materielTable']
el.$refs.asCom.getData(val.items, val.items)
},
selectionChange(val) {
this.selection = val
},
submitEvent() {
console.log('this.basicData', this.basicData)
const selection = this.selection.filter(r => {
if (!this.basicData.inStorageRequestItems) {
return true
}
return !this.basicData.inStorageRequestItems.find(item => r.id === item.inventoryId)
})
if (selection.length) {
const data = selection.map(r => {
return {
'subTypeName': 'OutStorageRecallItem',
'reqStatus': 'Apply',
'outStorageId': r.jobResponseId,
'outStorageIdType': r.jobResponseIdType,
inventory: r,
'inventoryId': r.id,
'inventoryIdType': this.$utils.getModelName4dxClassName(r),
'purchaseUnitId': r.jobResponse.jobOrder.extMaterial.extUnitId,
'purchaseUnitIdType': r.jobResponse.jobOrder.extMaterial.extUnitIdType,
'extDxSipplierId': r.jobResponse.jobOrder.extDxSipplierId,
'extDxSipplierIdType': r.jobResponse.jobOrder.extDxSipplierIdType,
extDxSipplier: r.jobResponse.jobOrder.extDxSipplier,
extMaterial: r.jobResponse.jobOrder.extMaterial,
storageZone: r.jobResponse.jobOrder.storageZone,
storageCondition: r.jobResponse.jobOrder.storageCondition,
'extMaterialId': r.jobResponse.jobOrder.extMaterialId,
'extMaterialIdType': r.jobResponse.jobOrder.extMaterialIdType,
'arrivalDate': r.jobResponse.jobOrder.arrivalDate,
'reqAmount': r.usableAmount,
'airModel': r.jobResponse.jobOrder.airModel,
'sorties': r.jobResponse.jobOrder.sorties,
'manufacturer': r.jobResponse.jobOrder.manufacturer,
'contractNo': r.jobResponse.jobOrder.contractNo,
'stockPrice': r.jobResponse.jobOrder.stockPrice,
'lotNo': r.jobResponse.jobOrder.lotNo,
'taxRate': r.jobResponse.jobOrder.taxRate,
'taxUnitPrice': r.jobResponse.jobOrder.taxUnitPrice,
'taxPrice': r.jobResponse.jobOrder.taxPrice,
'stockUnitPrice': r.jobResponse.jobOrder.stockUnitPrice,
'purchaseOrderNo': r.jobResponse.jobOrder.purchaseOrderNo,
'operator': 'ADD',
remark: r.jobResponse.jobOrder.remark,
'isRoot': r.jobResponse.jobOrder.isRoot
}
})
this.$emit('submitEvent', { formData: data })
}
},
cancelEvent() {
this.$emit('cancel')
}
}
}
</script>
<style lang='scss'>
.addOutStorageCallbackDetail-dialog {
.list-table {
height: 510px !important;
}
.foot-btn-box {
display: flex;
margin-top: 10px;
justify-content: center;
align-content: center;
}
}
</style>