Browse Source

2025-10-31

pda调整扫描、查询、确认逻辑(销售退货)
master
fengyuan_yang 2 months ago
parent
commit
d349ff6ee5
  1. 6
      src/api/salesReturn.js
  2. 94
      src/views/modules/sales-return/salesReturnStorage.vue

6
src/api/salesReturn.js

@ -29,3 +29,9 @@ export const confirmSalesReturnStorage = data => createAPI(`salesReturn/confirmS
* @param {Object} data - 查询参数 {site, buNo, returnNo} * @param {Object} data - 查询参数 {site, buNo, returnNo}
*/ */
export const getSalesReturnMaterialList = data => createAPI(`salesReturn/getSalesReturnMaterialList`, 'post', data) export const getSalesReturnMaterialList = data => createAPI(`salesReturn/getSalesReturnMaterialList`, 'post', data)
/**
* 获取已扫描标签列表从缓存表
* @param {Object} data - 查询参数 {site, buNo, returnNo}
*/
export const getScannedLabelList = data => createAPI(`salesReturn/getScannedLabelList`, 'post', data)

94
src/views/modules/sales-return/salesReturnStorage.vue

@ -198,7 +198,7 @@
</template> </template>
<script> <script>
import { getSalesReturnDetails, validateLabelWithSalesReturn, confirmSalesReturnStorage, getSalesReturnMaterialList } from "@/api/salesReturn.js";
import { getSalesReturnDetails, validateLabelWithSalesReturn, confirmSalesReturnStorage, getSalesReturnMaterialList, getScannedLabelList } from "@/api/salesReturn.js";
import { getCurrentWarehouse } from '@/utils' import { getCurrentWarehouse } from '@/utils'
import moment from 'moment'; import moment from 'moment';
export default { export default {
@ -235,33 +235,20 @@ export default {
this.scanCode = ''; this.scanCode = '';
}, },
//
//
validateAndAddLabel(labelCode) { validateAndAddLabel(labelCode) {
const params = { const params = {
labelCode: labelCode, labelCode: labelCode,
returnNo: this.returnNo,
site: localStorage.getItem('site'), site: localStorage.getItem('site'),
buNo: this.materialInfo.buNo
buNo: this.materialInfo.buNo,
operationType: 'I' //
}; };
validateLabelWithSalesReturn(params).then(({ data }) => { validateLabelWithSalesReturn(params).then(({ data }) => {
if (data && data.code === 0) { if (data && data.code === 0) {
const resultList = data.data;
//
const exists = this.labelList.find(item => item.labelCode === labelCode);
if (exists) {
this.$message.warning('该标签已扫描,请勿重复扫描');
return;
}
//
resultList.forEach(result => {
this.labelList.push({
id: Date.now() + Math.random(), // ID
labelCode: result.labelCode,
partNo: result.partNo,
quantity: result.quantity,
batchNo: result.batchNo
});
});
this.$message.success(`标签验证成功,共添加 ${resultList.length} 条记录`);
this.$message.success('标签添加成功');
//
this.loadScannedLabelList();
} else { } else {
this.$message.error(data.msg || '该标签不符合退货条件,请检查'); this.$message.error(data.msg || '该标签不符合退货条件,请检查');
} }
@ -271,15 +258,27 @@ export default {
}); });
}, },
//
//
removeLabelByCode(labelCode) { removeLabelByCode(labelCode) {
const index = this.labelList.findIndex(item => item.labelCode === labelCode);
if (index !== -1) {
this.labelList.splice(index, 1);
this.$message.success('标签移除成功');
} else {
this.$message.warning('未找到该标签');
}
const params = {
labelCode: labelCode,
returnNo: this.returnNo,
site: localStorage.getItem('site'),
buNo: this.materialInfo.buNo,
operationType: 'D' //
};
validateLabelWithSalesReturn(params).then(({ data }) => {
if (data && data.code === 0) {
this.$message.success('标签移除成功');
//
this.loadScannedLabelList();
} else {
this.$message.error(data.msg || '移除失败');
}
}).catch(error => {
console.error('标签移除失败:', error);
this.$message.error('移除失败');
});
}, },
// 退 // 退
@ -307,7 +306,7 @@ export default {
this.locationCode = ''; this.locationCode = '';
}, },
// 退
// 退
submitReturn() { submitReturn() {
if (!this.locationCode.trim()) { if (!this.locationCode.trim()) {
this.$message.warning('请输入库位号'); this.$message.warning('请输入库位号');
@ -317,13 +316,7 @@ export default {
site:this.materialInfo.site, site:this.materialInfo.site,
buNo: this.materialInfo.buNo, buNo: this.materialInfo.buNo,
returnNo: this.returnNo, returnNo: this.returnNo,
locationCode: this.locationCode.trim(),
labels: this.labelList.map(label => ({
labelCode: label.labelCode,
quantity: label.quantity,
batchNo: label.batchNo,
partNo: label.partNo,
}))
locationCode: this.locationCode.trim()
}; };
confirmSalesReturnStorage(params).then(({ data }) => { confirmSalesReturnStorage(params).then(({ data }) => {
if (data && data.code === 0) { if (data && data.code === 0) {
@ -339,6 +332,31 @@ export default {
}); });
}, },
//
loadScannedLabelList() {
const params = {
site: localStorage.getItem('site'),
buNo: this.materialInfo.buNo,
returnNo: this.returnNo
};
getScannedLabelList(params).then(({ data }) => {
if (data && data.code === 0) {
const labelData = data.data || [];
this.labelList = labelData.map((item, index) => ({
id: Date.now() + index,
labelCode: item.labelCode,
partNo: item.partNo,
quantity: item.quantity,
batchNo: item.batchNo || ''
}));
} else {
console.error('加载已扫描标签列表失败:', data.msg);
}
}).catch(error => {
console.error('加载已扫描标签列表失败:', error);
});
},
// //
printLabels() { printLabels() {
if (this.labelList.length === 0) { if (this.labelList.length === 0) {
@ -418,6 +436,8 @@ export default {
getSalesReturnDetails(params).then(({ data }) => { getSalesReturnDetails(params).then(({ data }) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.materialInfo = data.data; this.materialInfo = data.data;
//
this.loadScannedLabelList();
} else { } else {
this.$message.error(data.msg || '获取退货单详情失败'); this.$message.error(data.msg || '获取退货单详情失败');
} }

Loading…
Cancel
Save