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 {
scanCode: '',
isRemoveMode: false,
isPartial: false,
isPartial: true,
scannedLabels: [],
workOrderNo: '',
componentPartNo: '',

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

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

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

@ -136,6 +136,7 @@ export default {
releaseNo: this.releaseNo,
sequenceNo: this.sequenceNo,
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-else class="switch-text2">{{ "添加" }}</span>
</div>
<el-button class="new-label-btn" @click="openNewLabelDialog">新标签</el-button>
</div>
<!-- 订单信息卡片对齐直接领料明细样式 -->
@ -297,6 +298,54 @@
</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>
</template>
@ -342,6 +391,16 @@ export default {
locationId: '',
quantity: 0,
},
//
showNewLabelDialog: false,
newLabelForm: {
partNo: '',
partDesc: '',
wdrNo: '',
locationId: '',
height: 0,
quantity: 0,
},
editIndex: -1, //
unissureQty: 0, //
itemNo: '', // ID
@ -491,6 +550,72 @@ export default {
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() {
//
@ -555,6 +680,7 @@ export default {
wdrNo: label.wdrNo || '*',
engChgLevel: label.engChgLevel || '1',
height: label.height,
newPrint: label.newPrint || 'OLD',
})),
}
this.loading = true
@ -857,6 +983,8 @@ export default {
this.lineItemNo = this.$route.query.material.lineItemNo
this.releaseNo = this.$route.query.material.releaseNo
this.sequenceNo = this.$route.query.material.sequenceNo
this.wdrNo = this.$route.query.material.wdrNo
this.engChgLevel = this.$route.query.material.engChgLevel
if (!this.orderNo) {
this.$message.error('参数错误')
@ -932,6 +1060,27 @@ export default {
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 {
height: 36px;

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

@ -135,6 +135,8 @@ export default {
lineItemNo:this.lineItemNo,
releaseNo:this.releaseNo,
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-else class="switch-text2">{{ "添加" }}</span>
</div>
<el-button class="new-label-btn" @click="openNewLabelDialog">新标签</el-button>
</div>
<div class="scrollable-content">
@ -144,6 +145,66 @@
</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 class="material-modal">
@ -244,10 +305,20 @@ export default {
height: 0,
},
editIndex: -1, //
//
showNewLabelDialog: false,
newLabelForm: {
partNo: '',
wdrNo: '',
locationId: '',
height: 0,
quantity: 0,
},
loading: false,
releaseNo: '',
sequenceNo: '',
wdrNo: '',
engChgLevel: '',
}
},
computed: {
@ -470,6 +541,75 @@ export default {
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() {
//
@ -531,6 +671,7 @@ export default {
wdrNo: label.wdrNo || '*',
engChgLevel: label.engChgLevel || '1',
height: label.height,
newPrint: label.newPrint || 'OLD',
})),
}
this.loading = true
@ -698,13 +839,16 @@ export default {
this.releaseNo = this.$route.query.releaseNo
this.sequenceNo = this.$route.query.sequenceNo
this.wdrNo = this.$route.query.wdrNo
this.engChgLevel = this.$route.query.engChgLevel
console.log(
'订单号:',
this.orderNo,
'订单类型:',
this.orderType,
'物料编码:',
this.partNo
this.partNo,
'关联单号:',
this.engChgLevel,
)
if (!this.orderNo) {
@ -778,10 +922,30 @@ export default {
}
.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;
}
.new-label-btn:hover {
background: #13998c;
border-color: #13998c;
}
.new-label-btn:active {
transform: scale(0.98);
}
.manual-btn {
border: 1px solid #1abc4a;
@ -1426,6 +1590,7 @@ export default {
border-radius: 12px;
width: 100%;
max-width: 400px;
max-height: 90vh;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
overflow: hidden;
display: flex;
@ -1439,6 +1604,7 @@ export default {
display: flex;
justify-content: space-between;
align-items: center;
flex-shrink: 0;
}
.edit-modal .modal-title {
@ -1464,6 +1630,9 @@ export default {
.edit-modal .modal-body {
padding: 20px;
overflow-y: auto;
flex: 1;
min-height: 0;
}
.edit-modal .form-group {
@ -1511,6 +1680,7 @@ export default {
gap: 12px;
justify-content: flex-end;
border-top: 1px solid #f0f0f0;
flex-shrink: 0;
}
.edit-modal .btn-cancel {

Loading…
Cancel
Save