Browse Source

生产出入库修改

master
shenzhouyu 4 months ago
parent
commit
883e861c53
  1. 2
      src/api/production/production-return.js
  2. 8
      src/views/modules/production-issue/directIssueDetail.vue
  3. 2
      src/views/modules/production-issue/production.vue
  4. 467
      src/views/modules/production-return/productionReturnPDAIssueList.vue
  5. 2
      src/views/modules/production-return/productionReturnPDAList.vue
  6. 4
      src/views/modules/production-return/productionReturnPickingDetail.vue

2
src/api/production/production-return.js

@ -23,3 +23,5 @@ export const getUnissueNotifyHeaderOrderMaterialList = data => createAPI(`/pda/
export const getUnissueMatericalForShopOrder = data => createAPI(`/pda/production/return/getUnissueMatericalForShopOrder`,'post',data)
export const scanMaterialLabel = data => createAPI(`/pda/production/return/scanMaterialLabel`,'post',data)
export const productionReturnUnissueConfirm = data => createAPI(`/pda/production/return/productionReturnUnissueConfirm`,'post',data)
export const printLabelInfo = data => createAPI('/label/setting/printLabel','post',data)

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

@ -85,9 +85,9 @@
<!-- 底部操作按钮 -->
<div class="bottom-actions">
<button class="action-btn secondary" @click="confirmIssue" :disabled="scannedLabels.length === 0">
<el-button class="action-btn secondary" :loading="loading" @click="confirmIssue" :disabled="scannedLabels.length === 0">
确定
</button>
</el-button>
<!-- <button class="action-btn secondary" style="margin-left: 10px;">
打印
</button> -->
@ -118,6 +118,7 @@ export default {
requiredQty: 0,
issuedQty: 0,
itemNo: '',
loading: false,
}
},
computed: {
@ -227,6 +228,7 @@ export default {
materialCode: l.materialCode,
})),
}
this.loading = true
confirmDirectIssue(params)
.then(({ data }) => {
if (data && data.code === 0) {
@ -238,6 +240,8 @@ export default {
})
.catch(() => {
this.$message.error('发料失败')
}).finally(()=>{
this.loading = false
})
},
initFromRoute() {

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

@ -43,7 +43,7 @@ export default {
label: "申请单领料",
iconClass: "qualified",
to: "productionPicking",
disabled: false,
disabled: true,
},
{
icon: "records",

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

@ -11,22 +11,10 @@
<!-- 搜索框 -->
<div class="search-container">
<el-input
clearable
class="compact-input"
v-model="scanCode"
placeholder="请扫描物料标签"
prefix-icon="el-icon-search"
@keyup.enter.native="handleScan"
ref="scanInput"
/>
<el-input clearable class="compact-input" v-model="scanCode" placeholder="请扫描物料标签" prefix-icon="el-icon-search"
@keyup.enter.native="handleScan" ref="scanInput" />
<div class="mode-switch">
<el-switch
class="custom-switch"
v-model="isRemoveMode"
active-color="#ff4949"
inactive-color="#13ce66"
>
<el-switch class="custom-switch" v-model="isRemoveMode" active-color="#ff4949" inactive-color="#13ce66">
</el-switch>
<span v-if="isRemoveMode" class="switch-text">{{ "移除" }}</span>
<span v-else class="switch-text2">{{ "添加" }}</span>
@ -37,19 +25,16 @@
<div class="work-order-list" v-if="orderInfo.orderNo">
<div class="work-order-card">
<div class="card-title">
<span class="title-label"
>{{
<span class="title-label">{{
orderInfo.type === "workOrder" ? "工单号" : "退料申请单号"
}}{{ orderInfo.orderNo }}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;批次号{{ batchNo }}</span>
</div>
<!-- 关联信息单独一行 -->
<div class="part-desc-row">
<span class="desc-text"
>{{ orderInfo.type === "workOrder" ? "关联单号" : "关联工单" }}{{
<span class="desc-text">{{ orderInfo.type === "workOrder" ? "关联单号" : "关联工单" }}{{
orderInfo.transactionId
}}</span
>
}}&nbsp;&nbsp;申请单退量{{unissureQty}}</span>
</div>
<div class="part-desc-row">
<span class="desc-text">{{ orderInfo.partNo }}</span>
@ -60,8 +45,8 @@
<div class="card-details">
<div class="detail-item">
<div class="detail-label">所需退</div>
<div class="detail-value">{{ unissureQty }}</div>
<div class="detail-label">已退数</div>
<div class="detail-value">{{ qtyReversed }}</div>
</div>
<div class="detail-item">
<div class="detail-label">领料数量</div>
@ -81,11 +66,11 @@
<i class="el-icon-circle-check"></i>
<span>退料信息确认</span>
</div>
<div class="title-right">
<!-- <div class="title-right">
<span class="material-list-link" @click="showMaterialListDialog"
>物料清单</span
>
</div>
</div> -->
</div>
<!-- 退料标签列表 -->
@ -98,11 +83,7 @@
<div class="col-qty">退料数量</div>
</div>
<div
v-for="(label, index) in labelList"
:key="label.id"
class="list-item"
>
<div v-for="(label, index) in labelList" :key="label.id" class="list-item">
<div class="col-no">{{ index+1 }}</div>
<div class="col-label">{{ label.labelCode }}</div>
<!-- <div class="col-batch">{{ label.batchNo }}</div> -->
@ -138,19 +119,11 @@
<!-- 底部操作按钮 -->
<div class="bottom-actions">
<!-- <button class="action-btn primary" @click="printLabels">打印</button> -->
<button
class="action-btn primary"
style="margin-left: 10px"
@click="confirmReturn"
>
<el-button class="action-btn primary" style="margin-left: 10px" @click="confirmReturn" :loading="loading">
确定退料
</button>
</el-button>
<button
class="action-btn secondary"
style="margin-left: 10px"
@click="cancelReturn"
>
<button class="action-btn secondary" style="margin-left: 10px" @click="cancelReturn">
取消
</button>
</div>
@ -158,10 +131,10 @@
<!-- 物料清单弹窗 -->
<div v-if="showMaterialDialog" class="material-overlay">
<div class="material-modal">
<div class="modal-header">
<!-- <div class="modal-header">
<span class="modal-title">物料清单</span>
<i class="el-icon-close close-btn" @click="closeMaterialDialog"></i>
</div>
</div> -->
<div class="modal-body">
<!-- 加载状态 -->
@ -180,11 +153,7 @@
</div>
<div class="table-body">
<div
v-for="(item, index) in materialList"
:key="index"
class="table-row"
>
<div v-for="(item, index) in materialList" :key="index" class="table-row">
<div class="col-no">{{ index + 1 }}</div>
<div class="col-material-code">
{{ item.materialCode || item.partNo }}
@ -218,21 +187,12 @@
<div class="form-row">
<div class="form-group">
<label class="form-label">物料编码</label>
<el-input
v-model="printData.materialCode1"
placeholder="请输入物料编码"
@input="handleMaterialCodeInput"
disabled
class="form-input"
/>
<el-input v-model="printData.materialCode1" placeholder="请输入物料编码" @input="handleMaterialCodeInput"
disabled class="form-input" />
</div>
<div class="form-group">
<label class="form-label">物料数量</label>
<el-input
v-model="printData.materialCode2"
placeholder="物料数量"
class="form-input"
/>
<el-input v-model="printData.materialCode2" placeholder="物料数量" class="form-input" />
</div>
<div class="add-btn">
<i class="el-icon-plus" @click="addWmsLabel"></i>
@ -243,12 +203,8 @@
<div class="form-row">
<div class="form-group">
<label class="form-label">物料名称</label>
<el-input
v-model="printData.materialName"
placeholder="物料名称自动带出"
disabled
class="form-input disabled-input"
/>
<el-input v-model="printData.materialName" placeholder="物料名称自动带出" disabled
class="form-input disabled-input" />
</div>
<!-- <div class="form-group">
<label class="form-label">单位</label>
@ -276,11 +232,7 @@
</div>
<div class="print-list-body">
<div
v-for="(item, index) in printLabelList"
:key="index"
class="print-list-item"
>
<div v-for="(item, index) in printLabelList" :key="index" class="print-list-item">
<div class="print-col-no">{{ index+1 }}</div>
<div class="print-col-label">{{ item.labelCode }}</div>
<div class="print-col-material">{{ item.partNo }}</div>
@ -313,40 +265,22 @@
<div class="modal-body">
<div class="form-group">
<label class="form-label">物料标签</label>
<el-input
v-model="editForm.labelCode"
disabled
class="form-input"
/>
<el-input v-model="editForm.labelCode" disabled class="form-input" />
</div>
<div class="form-group">
<label class="form-label">批次号</label>
<el-input
v-model="editForm.batchNo"
disabled
class="form-input"
/>
<el-input v-model="editForm.batchNo" disabled class="form-input" />
</div>
<div class="form-group">
<label class="form-label">库位 <span class="required">*</span></label>
<el-input
v-model="editForm.locationId"
placeholder="请输入库位"
class="form-input"
/>
<el-input v-model="editForm.locationId" placeholder="请输入库位" class="form-input" />
</div>
<div class="form-group">
<label class="form-label">退料数量 <span class="required">*</span></label>
<el-input
v-model="editForm.quantity"
type="number"
:min="0"
placeholder="请输入退料数量"
class="form-input"
/>
<el-input v-model="editForm.quantity" type="number" :min="0" placeholder="请输入退料数量" class="form-input" />
</div>
</div>
@ -367,30 +301,31 @@ import {
getInventoryPart,
scanMaterialLabel,
productionReturnUnissueConfirm,
} from "@/api/production/production-return";
import moment from "moment";
printLabelInfo,
} from '@/api/production/production-return'
import moment from 'moment'
export default {
data() {
return {
scanCode: "",
scanCode: '',
orderInfo: {},
labelList: [],
orderNo: "",
orderType: "",
orderNo: '',
orderType: '',
showMaterialDialog: false,
materialList: [],
materialListLoading: false,
isRemoveMode: false, //
returnReason: "",
returnReason: '',
showPrintDialog: false,
printData: {},
partNo:"", //
transactionId:"", //
accountingId:"", //
quantity:"", // 退
partNo: '', //
transactionId: '', //
accountingId: '', //
quantity: '', // 退
qtyReversed: 0, // 退
batchNo:"", //
batchNo: '', //
printLabelList: [],
//
showEditDialog: false,
@ -398,37 +333,38 @@ export default {
labelCode: '',
batchNo: '',
locationId: '',
quantity: 0
quantity: 0,
},
editIndex: -1, //
unissureQty: 0, //
itemNo: '', // ID
};
loading: false,
}
},
computed: {
totalScannedQty() {
return this.labelList.reduce(
(sum, l) => sum + (Number(l.quantity) || 0),
0
);
)
},
},
methods: {
formatDate(date) {
return date ? moment(date).format("YYYY-MM-DD") : "";
return date ? moment(date).format('YYYY-MM-DD') : ''
},
//
handleScan() {
if (!this.scanCode.trim()) {
return;
return
}
if (this.isRemoveMode) {
this.removeLabelByCode(this.scanCode.trim());
this.removeLabelByCode(this.scanCode.trim())
} else {
this.validateAndAddLabel(this.scanCode.trim());
this.validateAndAddLabel(this.scanCode.trim())
}
this.scanCode = "";
this.scanCode = ''
},
// 退
@ -440,18 +376,19 @@ export default {
site: this.$store.state.user.site,
batchNo: this.batchNo,
componentPartNo: this.partNo,
};
}
// 退
scanMaterialLabel(params).then(({data}) => {
scanMaterialLabel(params)
.then(({ data }) => {
if (data.code === 0 && data) {
//
const exists = this.labelList.find(
(item) => item.labelCode === labelCode
);
)
if (exists) {
this.$message.warning("该标签已扫描,请勿重复扫描");
return;
this.$message.warning('该标签已扫描,请勿重复扫描')
return
}
//
@ -464,18 +401,16 @@ export default {
returnReason: data.labelInfo.returnReason,
locationId: data.labelInfo.locationId,
warehouseId: data.labelInfo.warehouseId,
});
})
this.$message.success("操作成功");
this.$message.success('操作成功')
} else {
this.$message.error(
result.message || "该标签不符合退料要求,请检查"
);
this.$message.error(data.msg || '该标签不符合退料要求,请检查')
}
})
.catch(() => {
this.$message.error("操作失败");
});
this.$message.error('操作失败')
})
},
// 退API
@ -486,26 +421,26 @@ export default {
resolve({
success: true,
data: {
partNo: "MAT" + Math.floor(Math.random() * 1000),
partNo: 'MAT' + Math.floor(Math.random() * 1000),
quantity: Math.floor(Math.random() * 50) + 1,
batchNo: "BATCH" + Math.floor(Math.random() * 100),
returnReason: "QUALITY_ISSUE",
batchNo: 'BATCH' + Math.floor(Math.random() * 100),
returnReason: 'QUALITY_ISSUE',
},
});
}, 500);
});
})
}, 500)
})
},
//
removeLabelByCode(labelCode) {
const index = this.labelList.findIndex(
(item) => item.labelCode === labelCode
);
)
if (index !== -1) {
this.labelList.splice(index, 1);
this.$message.success("操作成功");
this.labelList.splice(index, 1)
this.$message.success('操作成功')
} else {
this.$message.warning("未找到该标签");
this.$message.warning('未找到该标签')
}
},
@ -515,58 +450,62 @@ export default {
labelCode: label.labelCode,
batchNo: label.batchNo,
locationId: label.locationId || '',
quantity: label.quantity
};
this.editIndex = index;
this.showEditDialog = true;
quantity: label.quantity,
}
this.editIndex = index
this.showEditDialog = true
},
//
closeEditDialog() {
this.showEditDialog = false;
this.showEditDialog = false
this.editForm = {
labelCode: '',
batchNo: '',
locationId: '',
quantity: 0
};
this.editIndex = -1;
quantity: 0,
}
this.editIndex = -1
},
//
confirmEdit() {
//
if (!this.editForm.locationId.trim()) {
this.$message.warning('请输入库位');
return;
this.$message.warning('请输入库位')
return
}
if (!this.editForm.quantity || this.editForm.quantity <= 0) {
this.$message.warning('请输入有效的退料数量');
return;
this.$message.warning('请输入有效的退料数量')
return
}
//
if (this.editIndex >= 0 && this.editIndex < this.labelList.length) {
this.labelList[this.editIndex].locationId = this.editForm.locationId;
this.labelList[this.editIndex].quantity = Number(this.editForm.quantity);
this.$message.success('修改成功');
this.labelList[this.editIndex].locationId = this.editForm.locationId
this.labelList[this.editIndex].quantity = Number(this.editForm.quantity)
this.$message.success('修改成功')
}
this.closeEditDialog();
this.closeEditDialog()
},
// 退
confirmReturn() {
if (this.labelList.length === 0) {
this.$message.warning("请先扫描退料标签");
return;
this.$message.warning('请先扫描退料标签')
return
}
/* if (!this.returnReason) {
this.$message.warning("请选择退料原因");
return;
} */
if (this.totalScannedQty > this.orderInfo.quantity - this.qtyReversed) {
this.$message.warning('扫描数量不能大于总领料数量和已退数量的差!')
return
}
const returnParams = {
site: this.$store.state.user.site,
@ -574,7 +513,6 @@ export default {
orderType: this.orderType,
batchNo: this.batchNo,
componentPartNo: this.partNo,
warehouseId: '1',
transactionId: this.transactionId,
accountingId: this.accountingId,
itemNo: this.itemNo,
@ -587,28 +525,61 @@ export default {
batchNo: label.batchNo,
partNo: label.partNo,
locationId: label.locationId,
warehouseId: label.warehouseId,
wdrNo: label.wdrNo || '*',
})),
};
// 退API
productionReturnUnissueConfirm(returnParams).then(({data}) => {
}
this.loading = true
// 退API
productionReturnUnissueConfirm(returnParams)
.then(({ data }) => {
if (data.code === 0 && data) {
this.$message.success("生产退料成功");
this.$router.back();
this.$message.success('生产退料成功')
this.printViaServer()
this.$router.push({
name: 'productionReturnPDA',
})
this.loading = false
} else {
this.$message.error(data.message || "操作失败");
this.$message.error(data.message || '操作失败')
}
})
.catch(() => {
this.$message.error('操作失败')
})
.finally(() => {
this.loading = false
})
},
async printViaServer(unitId) {
try {
const printRequest = {
reportId: this.reportId,
zplCode: this.zplCode,
paperSize: this.paperSize,
orientation: this.orientation,
dpi: this.dpi,
userId: localStorage.getItem('userName'),
username: localStorage.getItem('userName'),
site: localStorage.getItem('site'),
unitId: unitId,
}
const { data } = await printLabelInfo(printRequest)
if (data.code === 200) {
return Promise.resolve()
} else {
return Promise.reject(new Error(data.msg || '打印失败'))
}
} catch (error) {
return Promise.reject(error)
}
}).catch(() => {
this.$message.error("操作失败");
});
},
//
printLabels() {
this.showPrintDialog = true;
this.initPrintData();
this.showPrintDialog = true
this.initPrintData()
},
//
@ -617,104 +588,104 @@ export default {
materialCode1: this.partNo,
materialCode2: 0,
materialName: this.orderInfo.description,
unit: "",
inboundQty: "",
};
this.printLabelList = [];
unit: '',
inboundQty: '',
}
this.printLabelList = []
},
//
closePrintDialog() {
this.showPrintDialog = false;
this.printData = {};
this.showPrintDialog = false
this.printData = {}
},
//
confirmPrint() {
if (!this.printData.materialCode1.trim()) {
this.$message.warning("请输入物料编码");
return;
this.$message.warning('请输入物料编码')
return
}
if (!this.printData.inboundQty || this.printData.inboundQty <= 0) {
this.$message.warning("请输入有效的入库数量");
return;
this.$message.warning('请输入有效的入库数量')
return
}
//
this.$message.success("打印成功");
this.closePrintDialog();
this.$message.success('打印成功')
this.closePrintDialog()
},
//
handleMaterialCodeInput() {
if (this.printData.materialCode1.trim()) {
//
this.printData.materialName = "物料名称自动带出";
this.printData.unit = "PCS";
this.printData.materialName = '物料名称自动带出'
this.printData.unit = 'PCS'
} else {
this.printData.materialName = "";
this.printData.unit = "";
this.printData.materialName = ''
this.printData.unit = ''
}
},
// 退
cancelReturn() {
if (this.labelList.length > 0) {
this.$confirm("取消后将清空已扫描的标签,确定取消吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "继续操作",
type: "warning",
this.$confirm('取消后将清空已扫描的标签,确定取消吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '继续操作',
type: 'warning',
})
.then(() => {
this.$router.back();
this.$router.back()
})
.catch(() => {
//
});
})
} else {
this.$router.back();
this.$router.back()
}
},
//
showMaterialListDialog() {
this.showMaterialDialog = true;
this.loadMaterialList();
this.showMaterialDialog = true
this.loadMaterialList()
},
//
loadMaterialList() {
console.log("加载退料物料清单", this.orderInfo, this.orderNo);
console.log('加载退料物料清单', this.orderInfo, this.orderNo)
if (!this.$store.state.user.site || !this.orderNo) {
this.$message.error("缺少必要参数,无法获取物料清单");
return;
this.$message.error('缺少必要参数,无法获取物料清单')
return
}
this.materialListLoading = true;
this.materialListLoading = true
const params = {
site: this.$store.state.user.site,
orderNo: this.orderNo,
orderType: this.orderType,
};
}
//
this.simulateMaterialList(params)
.then((data) => {
this.materialListLoading = false;
this.materialListLoading = false
if (data && data.code === 0) {
this.materialList = data.materials || [];
this.materialList = data.materials || []
} else {
this.$message.error(data.msg || "获取物料清单失败");
this.materialList = [];
this.$message.error(data.msg || '获取物料清单失败')
this.materialList = []
}
})
.catch(() => {
this.materialListLoading = false;
this.$message.error("获取物料清单失败");
this.materialList = [];
});
this.materialListLoading = false
this.$message.error('获取物料清单失败')
this.materialList = []
})
},
// API
@ -723,36 +694,36 @@ export default {
setTimeout(() => {
const mockMaterials = [
{
materialCode: "MAT001",
partNo: "MAT001",
materialCode: 'MAT001',
partNo: 'MAT001',
returnableQty: 100,
returnedQty: 20,
},
{
materialCode: "MAT002",
partNo: "MAT002",
materialCode: 'MAT002',
partNo: 'MAT002',
returnableQty: 200,
returnedQty: 50,
},
{
materialCode: "MAT003",
partNo: "MAT003",
materialCode: 'MAT003',
partNo: 'MAT003',
returnableQty: 150,
returnedQty: 0,
},
];
]
resolve({
code: 0,
materials: mockMaterials,
});
}, 500);
});
})
}, 500)
})
},
//
closeMaterialDialog() {
this.showMaterialDialog = false;
this.showMaterialDialog = false
},
//
@ -761,12 +732,13 @@ export default {
orderNo: this.orderNo,
orderType: this.orderType,
site: this.$store.state.user.site,
partNo:this.partNo
};
console.log("加载订单详情参数:", params);
partNo: this.partNo,
}
console.log('加载订单详情参数:', params)
//
getInventoryPart(params).then(({data}) => {
getInventoryPart(params)
.then(({ data }) => {
if (data && data.code === 0) {
this.orderInfo = data.inventoryPart[0]
this.orderInfo.type = this.orderType
@ -774,46 +746,47 @@ export default {
this.orderInfo.transactionId = this.transactionId
this.orderInfo.quantity = this.quantity
} else {
this.$message.error(data.msg || "获取订单详情失败");
this.$message.error(data.msg || '获取订单详情失败')
}
}).catch(() => {
this.$message.error("获取订单详情失败");
});
})
.catch(() => {
this.$message.error('获取订单详情失败')
})
},
addWmsLabel() {
if (!this.printData.materialCode1.trim()) {
this.$message.warning("请输入物料编码");
return;
this.$message.warning('请输入物料编码')
return
}
if (!this.printData.materialCode2 || this.printData.materialCode2 <= 0) {
this.$message.warning("请输入有效的物料数量");
return;
this.$message.warning('请输入有效的物料数量')
return
}
let newLabel = {
site: this.$store.state.user.site,
partNo: this.printData.materialCode1,
quantity: this.printData.materialCode2,
batchNo: this.batchNo,
warehouseId:"",
locationId:"",
warehouseId: '',
locationId: '',
}
console.log("添加标签:",newLabel);
console.log('添加标签:', newLabel)
//
this.printLabelList.push(newLabel);
this.$message.success("操作成功");
this.printLabelList.push(newLabel)
this.$message.success('操作成功')
//
this.printData.materialCode2 = 0;
this.printData.unit = "";
}
this.printData.materialCode2 = 0
this.printData.unit = ''
},
},
mounted() {
//
console.log("路由参数:", this.$route.params.material);
console.log('路由参数:', this.$route.params.material)
this.orderNo = this.$route.params.workOrderNo;
this.orderType = this.$route.params.material.orderType || "workOrder";
this.orderNo = this.$route.params.workOrderNo
this.orderType = this.$route.params.material.orderType || 'workOrder'
this.partNo = this.$route.params.material.partNo
this.transactionId = this.$route.params.material.ifsTransactionID
this.accountingId = this.$route.params.material.ifsAccountingID
@ -821,25 +794,25 @@ export default {
this.batchNo = this.$route.params.material.batchNo
this.unissureQty = this.$route.params.material.unissureQty
this.itemNo = this.$route.params.material.itemNo
this.qtyReversed= this.$route.params.material.qtyReversedBy || 0
this.qtyReversed = this.$route.params.material.qtyReversed || 0
if (!this.orderNo) {
this.$message.error("参数错误");
this.$router.back();
return;
this.$message.error('参数错误')
this.$router.back()
return
}
//
this.$nextTick(() => {
if (this.$refs.scanInput) {
this.$refs.scanInput.focus();
this.$refs.scanInput.focus()
}
});
})
//
this.loadOrderDetails();
this.loadOrderDetails()
},
};
}
</script>
<style scoped>
@ -1044,7 +1017,7 @@ export default {
}
.detail-value .total::before {
content: "/";
content: '/';
color: #333;
}

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

@ -41,7 +41,7 @@
<div class="detail-value">{{ item.QUANTITY }}</div>
</div>
<div class="detail-item">
<div class="detail-label">撤销数量</div>
<div class="detail-label">已退数量</div>
<div class="detail-value">{{ item.QTY_REVERSED || 0 }}</div>
</div>
<div class="detail-item">

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

@ -82,11 +82,11 @@
<i class="el-icon-circle-check"></i>
<span>退料信息确认</span>
</div>
<div class="title-right">
<!-- <div class="title-right">
<span class="material-list-link" @click="showMaterialListDialog"
>物料清单</span
>
</div>
</div> -->
</div>
<!-- 退料标签列表 -->

Loading…
Cancel
Save