Browse Source

发料修改

master
shenzhouyu 2 months ago
parent
commit
f73a152243
  1. 36
      src/views/modules/production-issue/directIssue.vue
  2. 8
      src/views/modules/production-return/productionReturnIssueList.vue
  3. 49
      src/views/modules/production-return/productionReturnPicking.vue
  4. 6
      src/views/modules/production-return/productionReturnPickingDetail.vue

36
src/views/modules/production-issue/directIssue.vue

@ -20,6 +20,22 @@
ref="workOrderInput" ref="workOrderInput"
/> />
</div> </div>
<div class="search-container">
<el-input
clearable
v-model="releaseNo"
placeholder="请输入下达号(默认*)"
@keyup.enter.native="handleSearchWorkOrder"
class="narrow-input"
/>
<el-input
clearable
v-model="sequenceNo"
placeholder="请输入序列号(默认*)"
@keyup.enter.native="handleSearchWorkOrder"
class="narrow-input"
/>
</div>
<!-- 工单信息卡片列表 --> <!-- 工单信息卡片列表 -->
<div class="work-order-list" v-if="workOrderList.length > 0"> <div class="work-order-list" v-if="workOrderList.length > 0">
@ -126,6 +142,8 @@ export default {
data() { data() {
return { return {
workOrderNo: "", workOrderNo: "",
releaseNo: "*",
sequenceNo: "*",
workOrderList: [], workOrderList: [],
selectedWorkOrder: null, selectedWorkOrder: null,
materialList: [], materialList: [],
@ -151,6 +169,8 @@ export default {
savePageStateForDetail() { savePageStateForDetail() {
const state = { const state = {
workOrderNo: this.workOrderNo, workOrderNo: this.workOrderNo,
releaseNo: this.releaseNo,
sequenceNo: this.sequenceNo,
workOrderList: this.workOrderList, workOrderList: this.workOrderList,
selectedWorkOrder: this.selectedWorkOrder, selectedWorkOrder: this.selectedWorkOrder,
materialList: this.materialList, materialList: this.materialList,
@ -168,6 +188,8 @@ export default {
if (shouldRestore === 'true' && savedState) { if (shouldRestore === 'true' && savedState) {
const state = JSON.parse(savedState); const state = JSON.parse(savedState);
this.workOrderNo = state.workOrderNo || ""; this.workOrderNo = state.workOrderNo || "";
this.releaseNo = state.releaseNo || "*";
this.sequenceNo = state.sequenceNo || "*";
this.workOrderList = state.workOrderList || []; this.workOrderList = state.workOrderList || [];
this.selectedWorkOrder = state.selectedWorkOrder || null; this.selectedWorkOrder = state.selectedWorkOrder || null;
this.materialList = state.materialList || []; this.materialList = state.materialList || [];
@ -203,6 +225,8 @@ export default {
this.loading = true; this.loading = true;
const params = { const params = {
workOrderNo: this.workOrderNo.trim(), workOrderNo: this.workOrderNo.trim(),
releaseNo: (this.releaseNo || "*").trim() || "*",
sequenceNo: (this.sequenceNo || "*").trim() || "*",
site: localStorage.getItem('site'), site: localStorage.getItem('site'),
}; };
@ -274,6 +298,8 @@ export default {
const params = { const params = {
workOrderNo: this.selectedWorkOrder.orderNo, workOrderNo: this.selectedWorkOrder.orderNo,
site: localStorage.getItem('site'), site: localStorage.getItem('site'),
releaseNo: (this.releaseNo || "*").trim() || "*",
sequenceNo: (this.sequenceNo || "*").trim() || "*",
}; };
getWorkOrderMaterials(params) getWorkOrderMaterials(params)
@ -375,7 +401,7 @@ export default {
/* 搜索容器 */ /* 搜索容器 */
.search-container { .search-container {
padding: 12px 16px;
padding: 3px 16px;
background: white; background: white;
display: flex; display: flex;
align-items: center; align-items: center;
@ -386,6 +412,14 @@ export default {
flex: 1; flex: 1;
} }
.narrow-input {
width: 120px;
}
.narrow-input ::v-deep .el-input__inner {
text-align: center;
}
.search-btn { .search-btn {
padding: 8px 16px; padding: 8px 16px;
background: #17b3a3; background: #17b3a3;

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

@ -82,6 +82,8 @@ export default {
issueList: [], issueList: [],
componentPartDesc: '', componentPartDesc: '',
lineItemNo: '', lineItemNo: '',
releaseNo: '',
sequenceNo: '',
}; };
}, },
methods: { methods: {
@ -94,6 +96,8 @@ export default {
workOrderNo: this.workOrderNo, workOrderNo: this.workOrderNo,
site: localStorage.getItem('site'), site: localStorage.getItem('site'),
componentPartNo: this.componentPartNo, componentPartNo: this.componentPartNo,
releaseNo: this.releaseNo || '*',
sequenceNo: this.sequenceNo || '*',
}; };
getIssueForShopOrder(params) getIssueForShopOrder(params)
.then(({ data }) => { .then(({ data }) => {
@ -129,6 +133,8 @@ export default {
batchNo: item.LOT_BATCH_NO, batchNo: item.LOT_BATCH_NO,
lineItemNo: this.lineItemNo, lineItemNo: this.lineItemNo,
componentPartDesc: this.componentPartDesc, componentPartDesc: this.componentPartDesc,
releaseNo: this.releaseNo,
sequenceNo: this.sequenceNo,
}, },
}); });
}, },
@ -140,6 +146,8 @@ export default {
this.componentPartNo = this.$route.query.componentPartNo; this.componentPartNo = this.$route.query.componentPartNo;
this.componentPartDesc = this.$route.query.componentPartDesc; this.componentPartDesc = this.$route.query.componentPartDesc;
this.lineItemNo = this.$route.query.lineItemNo; this.lineItemNo = this.$route.query.lineItemNo;
this.releaseNo = this.$route.query.releaseNo;
this.sequenceNo = this.$route.query.sequenceNo;
this.loadIssueList(); this.loadIssueList();
}, },
}; };

49
src/views/modules/production-return/productionReturnPicking.vue

@ -22,6 +22,22 @@
ref="workOrderInput" ref="workOrderInput"
/> />
</div> </div>
<div class="search-container">
<el-input
clearable
v-model="releaseNo"
placeholder="请输入下达号(默认*)"
@keyup.enter.native="handleSearchWorkOrder"
class="narrow-input"
/>
<el-input
clearable
v-model="sequenceNo"
placeholder="请输入序列号(默认*)"
@keyup.enter.native="handleSearchWorkOrder"
class="narrow-input"
/>
</div>
<!-- 工单信息卡片列表 --> <!-- 工单信息卡片列表 -->
<!-- <div class="work-order-list" v-if="workOrderList.length > 0"> <!-- <div class="work-order-list" v-if="workOrderList.length > 0">
@ -114,7 +130,7 @@
</div> </div>
<!-- 加载状态 --> <!-- 加载状态 -->
<div v-if="loading" class="loading-state">
<div v-if="loading||detailLoading" class="loading-state">
<i class="el-icon-loading"></i> <i class="el-icon-loading"></i>
<p>加载中...</p> <p>加载中...</p>
</div> </div>
@ -130,11 +146,14 @@ export default {
data() { data() {
return { return {
workOrderNo: "", workOrderNo: "",
releaseNo: "*",
sequenceNo: "*",
workOrderList: [], workOrderList: [],
selectedWorkOrder: null, selectedWorkOrder: null,
materialList: [], materialList: [],
selectedMaterial: null, selectedMaterial: null,
loading: false, loading: false,
detailLoading: false,
}; };
}, },
methods: { methods: {
@ -145,6 +164,8 @@ export default {
savePageStateForIssueList() { savePageStateForIssueList() {
const state = { const state = {
workOrderNo: this.workOrderNo, workOrderNo: this.workOrderNo,
releaseNo: this.releaseNo,
sequenceNo: this.sequenceNo,
workOrderList: this.workOrderList, workOrderList: this.workOrderList,
selectedWorkOrder: this.selectedWorkOrder, selectedWorkOrder: this.selectedWorkOrder,
materialList: this.materialList, materialList: this.materialList,
@ -159,6 +180,8 @@ export default {
if (shouldRestore === 'true' && savedState) { if (shouldRestore === 'true' && savedState) {
const state = JSON.parse(savedState); const state = JSON.parse(savedState);
this.workOrderNo = state.workOrderNo || ""; this.workOrderNo = state.workOrderNo || "";
this.releaseNo = state.releaseNo || "*";
this.sequenceNo = state.sequenceNo || "*";
this.workOrderList = state.workOrderList || []; this.workOrderList = state.workOrderList || [];
this.selectedWorkOrder = state.selectedWorkOrder || null; this.selectedWorkOrder = state.selectedWorkOrder || null;
this.materialList = state.materialList || []; this.materialList = state.materialList || [];
@ -180,13 +203,15 @@ export default {
} }
this.loading = true; this.loading = true;
this.detailLoading = true;
const params = { const params = {
workOrderNo: this.workOrderNo.trim(), workOrderNo: this.workOrderNo.trim(),
releaseNo: (this.releaseNo || "*").trim() || "*",
sequenceNo: (this.sequenceNo || "*").trim() || "*",
site: localStorage.getItem('site'), site: localStorage.getItem('site'),
}; };
getReturnWorkOrderInfo(params).then(({ data }) => { getReturnWorkOrderInfo(params).then(({ data }) => {
this.loading = false;
console.log("工单信息", data); console.log("工单信息", data);
if ( if (
@ -208,8 +233,9 @@ export default {
} }
}) })
.catch((error) => { .catch((error) => {
this.loading = false;
this.$message.error(error.msg); this.$message.error(error.msg);
}).finally(() => {
this.loading = false;
}); });
}, },
@ -228,12 +254,15 @@ export default {
const params = { const params = {
workOrderNo: this.selectedWorkOrder.orderNo, workOrderNo: this.selectedWorkOrder.orderNo,
releaseNo: (this.releaseNo || "*").trim() || "*",
sequenceNo: (this.sequenceNo || "*").trim() || "*",
site: localStorage.getItem('site'), site: localStorage.getItem('site'),
}; };
getWorkOrderMaterials(params) getWorkOrderMaterials(params)
.then(({ data }) => { .then(({ data }) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.detailLoading = false;
this.materialList = (data.materials || []).map((item, index) => ({ this.materialList = (data.materials || []).map((item, index) => ({
...item, ...item,
id: index + 1, id: index + 1,
@ -246,6 +275,8 @@ export default {
.catch((error) => { .catch((error) => {
console.error('获取材料清单失败:', error); console.error('获取材料清单失败:', error);
this.$message.error('获取材料清单失败'); this.$message.error('获取材料清单失败');
}).finally(() => {
this.detailLoading = false;
}); });
}, },
@ -257,6 +288,8 @@ export default {
name: 'productionReturnIssueList', name: 'productionReturnIssueList',
query: { query: {
workOrderNo: this.selectedWorkOrder.orderNo, workOrderNo: this.selectedWorkOrder.orderNo,
releaseNo: (this.selectedWorkOrder.releaseNo || "*").trim() || "*",
sequenceNo: (this.selectedWorkOrder.sequenceNo || "*").trim() || "*",
componentPartNo: material.componentPartNo, componentPartNo: material.componentPartNo,
componentPartDesc: material.componentPartDesc, componentPartDesc: material.componentPartDesc,
lineItemNo: material.lineItemNo, lineItemNo: material.lineItemNo,
@ -321,7 +354,7 @@ export default {
/* 搜索容器 */ /* 搜索容器 */
.search-container { .search-container {
padding: 12px 16px;
padding: 3px 16px;
background: white; background: white;
display: flex; display: flex;
align-items: center; align-items: center;
@ -332,6 +365,14 @@ export default {
flex: 1; flex: 1;
} }
.narrow-input {
width: 120px;
}
.narrow-input ::v-deep .el-input__inner {
text-align: center;
}
/* 工单列表 */ /* 工单列表 */
.work-order-list { .work-order-list {
overflow-y: auto; overflow-y: auto;

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

@ -243,6 +243,8 @@ export default {
}, },
editIndex: -1, // editIndex: -1, //
loading: false, loading: false,
releaseNo: '',
sequenceNo: '',
} }
}, },
computed: { computed: {
@ -403,6 +405,8 @@ export default {
issueQty: this.quantity, issueQty: this.quantity,
notifyNo:this.notifyNo, notifyNo:this.notifyNo,
lineItemNo:this.lineItemNo, lineItemNo:this.lineItemNo,
releaseNo: this.releaseNo,
sequenceNo: this.sequenceNo,
// 退 // 退
selectedMaterials: this.labelList.map((label) => ({ selectedMaterials: this.labelList.map((label) => ({
labelCode: label.labelCode, labelCode: label.labelCode,
@ -577,6 +581,8 @@ export default {
this.batchNo = this.$route.query.batchNo this.batchNo = this.$route.query.batchNo
this.lineItemNo = this.$route.query.lineItemNo this.lineItemNo = this.$route.query.lineItemNo
this.componentPartDesc = this.$route.query.componentPartDesc this.componentPartDesc = this.$route.query.componentPartDesc
this.releaseNo = this.$route.query.releaseNo
this.sequenceNo = this.$route.query.sequenceNo
console.log( console.log(
'订单号:', '订单号:',
this.orderNo, this.orderNo,

Loading…
Cancel
Save