Browse Source

发料退料修改

master
shenzhouyu 2 months ago
parent
commit
38839c327f
  1. 2
      src/views/modules/production-issue/directIssueDetail.vue
  2. 2
      src/views/modules/production-issue/productionPickingDetail.vue
  3. 1
      src/views/modules/production-return/productionReturnIssueList.vue
  4. 149
      src/views/modules/production-return/productionReturnPDAIssueList.vue
  5. 2
      src/views/modules/production-return/productionReturnPDAList.vue
  6. 174
      src/views/modules/production-return/productionReturnPickingDetail.vue

2
src/views/modules/production-issue/directIssueDetail.vue

@ -168,7 +168,7 @@ export default {
return { return {
scanCode: '', scanCode: '',
isRemoveMode: false, isRemoveMode: false,
isPartial: false,
isPartial: true,
scannedLabels: [], scannedLabels: [],
workOrderNo: '', workOrderNo: '',
componentPartNo: '', componentPartNo: '',

2
src/views/modules/production-issue/productionPickingDetail.vue

@ -177,7 +177,7 @@ export default {
materialListLoading: false, materialListLoading: false,
isRemoveMode: false, // isRemoveMode: false, //
pickingLoading: false, pickingLoading: false,
isPartial: false,
isPartial: true,
quantityDialogVisible: false, quantityDialogVisible: false,
currentEditLabel: {}, currentEditLabel: {},
currentEditIndex: -1, currentEditIndex: -1,

1
src/views/modules/production-return/productionReturnIssueList.vue

@ -136,6 +136,7 @@ export default {
releaseNo: this.releaseNo, releaseNo: this.releaseNo,
sequenceNo: this.sequenceNo, sequenceNo: this.sequenceNo,
wdrNo: item.WAIV_DEV_REJ_NO , wdrNo: item.WAIV_DEV_REJ_NO ,
engChgLevel: item.ENG_CHG_LEVEL || '1',
}, },
}); });
}, },

149
src/views/modules/production-return/productionReturnPDAIssueList.vue

@ -19,6 +19,7 @@
<span v-if="isRemoveMode" class="switch-text">{{ "移除" }}</span> <span v-if="isRemoveMode" class="switch-text">{{ "移除" }}</span>
<span v-else class="switch-text2">{{ "添加" }}</span> <span v-else class="switch-text2">{{ "添加" }}</span>
</div> </div>
<el-button class="new-label-btn" @click="openNewLabelDialog">新标签</el-button>
</div> </div>
<!-- 订单信息卡片对齐直接领料明细样式 --> <!-- 订单信息卡片对齐直接领料明细样式 -->
@ -297,6 +298,54 @@
</div> </div>
</div> </div>
</div> </div>
<!-- 新标签弹框 -->
<div v-if="showNewLabelDialog" class="edit-overlay">
<div class="edit-modal">
<div class="modal-header">
<span class="modal-title">新标签</span>
<i class="el-icon-close close-btn" @click="closeNewLabelDialog"></i>
</div>
<div class="modal-body">
<div class="form-group">
<label class="form-label">物料编号</label>
<el-input v-model="newLabelForm.partNo" placeholder="请输入物料编码" class="form-input" clearable disabled />
</div>
<div class="form-group">
<label class="form-label">物料名称</label>
<el-input v-model="newLabelForm.partDesc" placeholder="请输入物料名称" class="form-input" clearable disabled />
</div>
<div class="form-group">
<label class="form-label">WDR<span class="required">*</span></label>
<el-input v-model="newLabelForm.wdrNo" placeholder="请输入WDR" class="form-input" clearable />
</div>
<div class="form-group">
<label class="form-label">库位<span class="required">*</span></label>
<el-input v-model="newLabelForm.locationId" placeholder="请输入库位" class="form-input" clearable />
</div>
<div class="form-group">
<label class="form-label">高度(单位毫米)<span class="required">*</span></label>
<el-input-number v-model="newLabelForm.height" :min="0" :controls="false" placeholder="请输入高度" class="form-input"
style="width: 100%;" />
</div>
<div class="form-group">
<label class="form-label">数量 <span class="required">*</span></label>
<el-input-number v-model="newLabelForm.quantity" :min="0" :controls="false" placeholder="请输入数量"
class="form-input" style="width: 100%;" />
</div>
</div>
<div class="modal-footer">
<button class="btn-cancel" @click="closeNewLabelDialog">取消</button>
<button class="btn-confirm" @click="confirmNewLabel">确认</button>
</div>
</div>
</div>
</div> </div>
</template> </template>
@ -342,6 +391,16 @@ export default {
locationId: '', locationId: '',
quantity: 0, quantity: 0,
}, },
//
showNewLabelDialog: false,
newLabelForm: {
partNo: '',
partDesc: '',
wdrNo: '',
locationId: '',
height: 0,
quantity: 0,
},
editIndex: -1, // editIndex: -1, //
unissureQty: 0, // unissureQty: 0, //
itemNo: '', // ID itemNo: '', // ID
@ -491,6 +550,72 @@ export default {
this.editIndex = -1 this.editIndex = -1
}, },
//
openNewLabelDialog() {
this.newLabelForm = {
partNo: this.partNo || this.orderInfo.partNo || '',
partDesc: this.orderInfo.description || '',
wdrNo: this.wdrNo || '*',
locationId: '',
height: 0,
quantity: 0,
}
this.showNewLabelDialog = true
},
//
closeNewLabelDialog() {
this.showNewLabelDialog = false
this.newLabelForm = {
partNo: '',
partDesc: '',
wdrNo: '',
locationId: '',
height: 0,
quantity: 0,
}
},
//
confirmNewLabel() {
if (!this.newLabelForm.wdrNo || !this.newLabelForm.wdrNo.trim()) {
this.$message.warning('请输入物料wdr')
return
}
if (!this.newLabelForm.locationId || !this.newLabelForm.locationId.trim()) {
this.$message.warning('请输入库位')
return
}
if (!this.newLabelForm.height || this.newLabelForm.height < 0) {
this.$message.warning('请输入有效的高度')
return
}
if (!this.newLabelForm.quantity || this.newLabelForm.quantity <= 0) {
this.$message.warning('请输入有效的数量')
return
}
const labelCode = `NEW-${Date.now()}`
const partNo = (this.newLabelForm.partNo || '').trim()
this.labelList.push({
id: Date.now(),
labelCode,
partNo,
quantity: Number(this.newLabelForm.quantity),
batchNo: this.batchNo || '',
locationId: this.newLabelForm.locationId || '',
warehouseId: '',
wdrNo: this.newLabelForm.wdrNo || '*',
engChgLevel: '1',
height: Number(this.newLabelForm.height) || 0,
newPrint: 'NEW',
})
this.$message.success('添加成功')
this.closeNewLabelDialog()
},
// //
confirmEdit() { confirmEdit() {
// //
@ -555,6 +680,7 @@ export default {
wdrNo: label.wdrNo || '*', wdrNo: label.wdrNo || '*',
engChgLevel: label.engChgLevel || '1', engChgLevel: label.engChgLevel || '1',
height: label.height, height: label.height,
newPrint: label.newPrint || 'OLD',
})), })),
} }
this.loading = true this.loading = true
@ -857,6 +983,8 @@ export default {
this.lineItemNo = this.$route.query.material.lineItemNo this.lineItemNo = this.$route.query.material.lineItemNo
this.releaseNo = this.$route.query.material.releaseNo this.releaseNo = this.$route.query.material.releaseNo
this.sequenceNo = this.$route.query.material.sequenceNo this.sequenceNo = this.$route.query.material.sequenceNo
this.wdrNo = this.$route.query.material.wdrNo
this.engChgLevel = this.$route.query.material.engChgLevel
if (!this.orderNo) { if (!this.orderNo) {
this.$message.error('参数错误') this.$message.error('参数错误')
@ -932,6 +1060,27 @@ export default {
margin-right: 12px; margin-right: 12px;
} }
.new-label-btn {
border: 1px solid #17b3a3;
background: #17b3a3;
color: white;
border-radius: 6px;
padding: 8px 16px;
font-size: 14px;
cursor: pointer;
transition: all 0.2s ease;
margin-left: auto;
}
.new-label-btn:hover {
background: #13998c;
border-color: #13998c;
}
.new-label-btn:active {
transform: scale(0.98);
}
/* 紧凑型输入框样式 */ /* 紧凑型输入框样式 */
.compact-input ::v-deep .el-input__inner { .compact-input ::v-deep .el-input__inner {
height: 36px; height: 36px;

2
src/views/modules/production-return/productionReturnPDAList.vue

@ -135,6 +135,8 @@ export default {
lineItemNo:this.lineItemNo, lineItemNo:this.lineItemNo,
releaseNo:this.releaseNo, releaseNo:this.releaseNo,
sequenceNo:this.sequenceNo, sequenceNo:this.sequenceNo,
wdrNo: item.WAIV_DEV_REJ_NO ,
engChgLevel: item.ENG_CHG_LEVEL || '1',
} }
}, },
}); });

174
src/views/modules/production-return/productionReturnPickingDetail.vue

@ -19,6 +19,7 @@
<span v-if="isRemoveMode" class="switch-text">{{ "移除" }}</span> <span v-if="isRemoveMode" class="switch-text">{{ "移除" }}</span>
<span v-else class="switch-text2">{{ "添加" }}</span> <span v-else class="switch-text2">{{ "添加" }}</span>
</div> </div>
<el-button class="new-label-btn" @click="openNewLabelDialog">新标签</el-button>
</div> </div>
<div class="scrollable-content"> <div class="scrollable-content">
@ -144,6 +145,66 @@
</div> </div>
</div> </div>
<!-- 新标签弹框 -->
<div v-if="showNewLabelDialog" class="edit-overlay">
<div class="edit-modal">
<div class="modal-header">
<span class="modal-title">新标签</span>
<i class="el-icon-close close-btn" @click="closeNewLabelDialog"></i>
</div>
<div class="modal-body">
<div class="form-group">
<label class="form-label">物料编号</label>
<el-input v-model="newLabelForm.partNo" placeholder="请输入物料编码" class="form-input" clearable disabled/>
</div>
<div class="form-group">
<label class="form-label">物料名称 </label>
<el-input v-model="newLabelForm.partDesc" placeholder="请输入物料名称" class="form-input" clearable disabled/>
</div>
<div class="form-group">
<label class="form-label">WDR<span class="required">*</span></label>
<el-input v-model="newLabelForm.wdrNo" placeholder="请输入WDR" class="form-input" disabled/>
</div>
<div class="form-group">
<label class="form-label">库位<span class="required">*</span></label>
<el-input v-model="newLabelForm.locationId" placeholder="请输入库位" class="form-input" clearable/>
</div>
<div class="form-group">
<label class="form-label">高度(单位毫米)<span class="required">*</span></label>
<el-input-number
v-model="newLabelForm.height"
:min="0"
:controls="false"
placeholder="请输入高度"
class="form-input"
style="width: 100%;"
/>
</div>
<div class="form-group">
<label class="form-label">数量 <span class="required">*</span></label>
<el-input-number
v-model="newLabelForm.quantity"
:min="0"
:controls="false"
placeholder="请输入数量"
class="form-input"
style="width: 100%;"
/>
</div>
</div>
<div class="modal-footer">
<button class="btn-cancel" @click="closeNewLabelDialog">取消</button>
<button class="btn-confirm" @click="confirmNewLabel">确认</button>
</div>
</div>
</div>
<!-- 物料清单弹窗 --> <!-- 物料清单弹窗 -->
<div v-if="showMaterialDialog" class="material-overlay"> <div v-if="showMaterialDialog" class="material-overlay">
<div class="material-modal"> <div class="material-modal">
@ -244,10 +305,20 @@ export default {
height: 0, height: 0,
}, },
editIndex: -1, // editIndex: -1, //
//
showNewLabelDialog: false,
newLabelForm: {
partNo: '',
wdrNo: '',
locationId: '',
height: 0,
quantity: 0,
},
loading: false, loading: false,
releaseNo: '', releaseNo: '',
sequenceNo: '', sequenceNo: '',
wdrNo: '', wdrNo: '',
engChgLevel: '',
} }
}, },
computed: { computed: {
@ -470,6 +541,75 @@ export default {
this.editIndex = -1 this.editIndex = -1
}, },
//
openNewLabelDialog() {
this.newLabelForm = {
partNo: this.componentPartNo,
partDesc: this.componentPartDesc,
wdrNo: this.wdrNo|| '*',
locationId: '',
height: 0,
quantity: 0,
}
this.showNewLabelDialog = true
},
//
closeNewLabelDialog() {
this.showNewLabelDialog = false
this.newLabelForm = {
partNo: '',
partDesc: '',
wdrNo: '',
locationId: '',
height: 0,
quantity: 0,
}
},
//
confirmNewLabel() {
//
if (!this.newLabelForm.wdrNo || !this.newLabelForm.wdrNo.trim()) {
this.$message.warning('请输入物料wdr')
return
}
if (!this.newLabelForm.locationId || !this.newLabelForm.locationId.trim()) {
this.$message.warning('请输入库位')
return
}
if (!this.newLabelForm.height || this.newLabelForm.height < 0) {
this.$message.warning('请输入有效的高度')
return
}
if (!this.newLabelForm.quantity || this.newLabelForm.quantity <= 0) {
this.$message.warning('请输入有效的数量')
return
}
// 使
const labelCode = `NEW-${Date.now()}`
//
this.labelList.push({
id: Date.now(),
labelCode: labelCode,
partNo: this.newLabelForm.partNo.trim(),
quantity: Number(this.newLabelForm.quantity),
batchNo: this.batchNo || '',
locationId: this.newLabelForm.locationId || '',
warehouseId: '',
wdrNo: this.newLabelForm.wdrNo || '*',
engChgLevel: this.engChgLevel || '1',
height: Number(this.newLabelForm.height) || 0,
newPrint: 'NEW',
})
this.$message.success('添加成功')
this.closeNewLabelDialog()
},
// //
confirmEdit() { confirmEdit() {
// //
@ -531,6 +671,7 @@ export default {
wdrNo: label.wdrNo || '*', wdrNo: label.wdrNo || '*',
engChgLevel: label.engChgLevel || '1', engChgLevel: label.engChgLevel || '1',
height: label.height, height: label.height,
newPrint: label.newPrint || 'OLD',
})), })),
} }
this.loading = true this.loading = true
@ -698,13 +839,16 @@ export default {
this.releaseNo = this.$route.query.releaseNo this.releaseNo = this.$route.query.releaseNo
this.sequenceNo = this.$route.query.sequenceNo this.sequenceNo = this.$route.query.sequenceNo
this.wdrNo = this.$route.query.wdrNo this.wdrNo = this.$route.query.wdrNo
this.engChgLevel = this.$route.query.engChgLevel
console.log( console.log(
'订单号:', '订单号:',
this.orderNo, this.orderNo,
'订单类型:', '订单类型:',
this.orderType, this.orderType,
'物料编码:', '物料编码:',
this.partNo
this.partNo,
'关联单号:',
this.engChgLevel,
) )
if (!this.orderNo) { if (!this.orderNo) {
@ -778,10 +922,30 @@ export default {
} }
.search-container .el-input { .search-container .el-input {
width: 240px;
width: 250px;
}
.new-label-btn {
border: 1px solid #17b3a3;
background: #17b3a3;
color: white;
border-radius: 6px;
padding: 8px 16px;
font-size: 14px;
cursor: pointer;
transition: all 0.2s ease;
margin-right: 12px; margin-right: 12px;
} }
.new-label-btn:hover {
background: #13998c;
border-color: #13998c;
}
.new-label-btn:active {
transform: scale(0.98);
}
.manual-btn { .manual-btn {
border: 1px solid #1abc4a; border: 1px solid #1abc4a;
@ -1426,6 +1590,7 @@ export default {
border-radius: 12px; border-radius: 12px;
width: 100%; width: 100%;
max-width: 400px; max-width: 400px;
max-height: 90vh;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
overflow: hidden; overflow: hidden;
display: flex; display: flex;
@ -1439,6 +1604,7 @@ export default {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
flex-shrink: 0;
} }
.edit-modal .modal-title { .edit-modal .modal-title {
@ -1464,6 +1630,9 @@ export default {
.edit-modal .modal-body { .edit-modal .modal-body {
padding: 20px; padding: 20px;
overflow-y: auto;
flex: 1;
min-height: 0;
} }
.edit-modal .form-group { .edit-modal .form-group {
@ -1511,6 +1680,7 @@ export default {
gap: 12px; gap: 12px;
justify-content: flex-end; justify-content: flex-end;
border-top: 1px solid #f0f0f0; border-top: 1px solid #f0f0f0;
flex-shrink: 0;
} }
.edit-modal .btn-cancel { .edit-modal .btn-cancel {

Loading…
Cancel
Save