Browse Source

领料申请发料修改

master
shenzhouyu 3 months ago
parent
commit
ad9494a932
  1. 4
      src/views/modules/production-issue/production.vue
  2. 18
      src/views/modules/production-issue/productionPicking.vue
  3. 27
      src/views/modules/production-issue/productionPickingDetail.vue

4
src/views/modules/production-issue/production.vue

@ -45,12 +45,12 @@ export default {
to: "productionPicking", to: "productionPicking",
disabled: false, disabled: false,
}, },
{
/* {
icon: "records", icon: "records",
label: "分拣", label: "分拣",
iconClass: "qualified", iconClass: "qualified",
disabled: true, disabled: true,
},
}, */
], ],
}; };
}, },

18
src/views/modules/production-issue/productionPicking.vue

@ -15,7 +15,7 @@
<div class="search-container"> <div class="search-container">
<el-input clearable <el-input clearable
v-model="searchCode" v-model="searchCode"
placeholder="请扫描领料申请单号"
placeholder="请输入工单号"
prefix-icon="el-icon-search" prefix-icon="el-icon-search"
@keyup.enter.native="handleSearch" @keyup.enter.native="handleSearch"
ref="searchInput" ref="searchInput"
@ -25,17 +25,17 @@
<div class="work-order-list" v-if="displayOutboundList.length > 0 "> <div class="work-order-list" v-if="displayOutboundList.length > 0 ">
<div <div
v-for="workOrder in displayOutboundList" v-for="workOrder in displayOutboundList"
:key="workOrder.orderNo || workOrder.soorderNo"
:key="workOrder.notifyNo"
:class="['work-order-card', { selected: selectedWorkOrder && isSameWorkOrder(selectedWorkOrder, workOrder) }]" :class="['work-order-card', { selected: selectedWorkOrder && isSameWorkOrder(selectedWorkOrder, workOrder) }]"
@click="selectWorkOrder(workOrder)" @click="selectWorkOrder(workOrder)"
> >
<div class="card-title"> <div class="card-title">
<span class="title-label">申请单号{{ currentNotifyNo }}</span>
<span class="title-label">申请单号{{ workOrder.notifyNo }}</span>
</div> </div>
<!-- 工单号单独一行 --> <!-- 工单号单独一行 -->
<div class="part-desc-row"> <div class="part-desc-row">
<span class="desc-text">工单号{{ workOrder.orderNo || workOrder.soorderNo }}</span>
<span class="desc-text">工单号{{ workOrder.soorderNo }}</span>
</div> </div>
<div class="part-desc-row"> <div class="part-desc-row">
<span class="desc-text">物料号{{ workOrder.fgpartNo }}</span> <span class="desc-text">物料号{{ workOrder.fgpartNo }}</span>
@ -166,7 +166,7 @@ export default {
if (data && data.code === 0) { if (data && data.code === 0) {
const list = data.notify || [] const list = data.notify || []
if (list.length === 0) { if (list.length === 0) {
this.$message.warning('未找到该申请单的工单信息');
this.$message.warning('未找到该工单的申请单');
} }
this.currentNotifyNo = searchCode this.currentNotifyNo = searchCode
this.outboundList = list; this.outboundList = list;
@ -212,9 +212,10 @@ export default {
} }
const params = { const params = {
notifyNo: this.currentNotifyNo,
notifyNo: this.selectedWorkOrder.notifyNo,
site: localStorage.getItem('site'), site: localStorage.getItem('site'),
itemNo: this.selectedWorkOrder.itemNo
itemNo: this.selectedWorkOrder.itemNo,
shopOrderNo: this.selectedWorkOrder.soorderNo
}; };
getRequestMaterials(params) getRequestMaterials(params)
@ -224,6 +225,9 @@ export default {
...item, ...item,
id: index + 1, id: index + 1,
})); }));
if(this.materialList.length === 0){
this.$message.warning('该工单无可领料物料');
}
} else { } else {
this.$message.error(data.msg || '获取材料清单失败'); this.$message.error(data.msg || '获取材料清单失败');
this.materialList = []; this.materialList = [];

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

@ -46,9 +46,9 @@
<div class="card-details"> <div class="card-details">
<div class="detail-item"> <div class="detail-item">
<div class="detail-label">需求数量</div>
<div class="detail-label">行号</div>
<div class="detail-value"> <div class="detail-value">
<span class="qualified">{{ outboundInfo.qtyToIssue }}</span>
<span class="qualified">{{ outboundInfo.lineItemNo }}</span>
</div> </div>
</div> </div>
<div class="detail-item"> <div class="detail-item">
@ -58,9 +58,9 @@
</div> </div>
</div> </div>
<div class="detail-item"> <div class="detail-item">
<div class="detail-label">需求数量</div>
<div class="detail-label">本次数量</div>
<div class="detail-value"> <div class="detail-value">
<span class="qualified">{{ outboundInfo.qtyToIssue }}</span>
<span class="qualified">{{ totalScannedQty }}</span>
</div> </div>
</div> </div>
</div> </div>
@ -105,9 +105,9 @@
<!-- 底部操作按钮 --> <!-- 底部操作按钮 -->
<div class="bottom-actions"> <div class="bottom-actions">
<button class="action-btn secondary" @click="confirmOutbound">
<el-button class="action-btn secondary" @click="confirmOutbound" :loading="pickingLoading">
确定 确定
</button>
</el-button>
<!-- <button class="action-btn secondary" style="margin-left: 10px;" @click="printLabels"> <!-- <button class="action-btn secondary" style="margin-left: 10px;" @click="printLabels">
打印 打印
</button> --> </button> -->
@ -185,9 +185,18 @@ export default {
showMaterialDialog: false, showMaterialDialog: false,
materialList: [], materialList: [],
materialListLoading: false, materialListLoading: false,
isRemoveMode: false //
isRemoveMode: false ,//
pickingLoading: false
}; };
}, },
computed: {
totalScannedQty() {
return this.labelList.reduce(
(sum, l) => sum + (Number(l.quantity) || 0),
0
);
},
},
methods: { methods: {
formatDate(date) { formatDate(date) {
return date ? moment(date).format('YYYY-MM-DD') : ''; return date ? moment(date).format('YYYY-MM-DD') : '';
@ -304,7 +313,7 @@ export default {
wdrNo: l.wdrNo wdrNo: l.wdrNo
})), })),
}; };
this.pickingLoading = true
confirmProductionPicking(params).then(({ data }) => { confirmProductionPicking(params).then(({ data }) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.$message.success('操作成功'); this.$message.success('操作成功');
@ -315,6 +324,8 @@ export default {
}).catch(error => { }).catch(error => {
console.error('出库确认失败:', error); console.error('出库确认失败:', error);
this.$message.error('操作失败'); this.$message.error('操作失败');
}).finally(() => {
this.pickingLoading = false
}); });
}, },

Loading…
Cancel
Save