refactor(wms/report): 重构报表模块数据获取逻辑,提取公共方法到fetch.js

feat(wms/report): 新增报表结果存储页面,支持JSON数据横向对比

style(wms/coil/do): 调整钢卷修正页面样式和代码格式

fix(wms/coil/do): 修复操作记录查询参数传递问题,优化钢卷选择逻辑
This commit is contained in:
砂糖
2026-03-27 16:37:59 +08:00
parent c294149274
commit cd00b9562d
7 changed files with 448 additions and 313 deletions

View File

@@ -135,6 +135,7 @@ import WarehouseSelect from "@/components/KLPService/WarehouseSelect";
import { calcSummary, calcAbSummary, calcTeamSummary, calcMSummary } from "@/views/wms/report/js/calc";
import ColumnsSetting from "@/views/wms/report/components/setting/columns.vue";
import CoilTable from "@/views/wms/report/components/coilTable/index.vue";
import { fetchLossList, fetchOutputList } from "@/views/wms/report/js/fetch";
export default {
name: 'TeamTemplate',
@@ -263,94 +264,24 @@ export default {
this.lossColumns = JSON.parse(localStorage.getItem('preference-tableColumns-coil-report-loss') || '[]') || []
this.outputColumns = JSON.parse(localStorage.getItem('preference-tableColumns-coil-report-output') || '[]') || []
},
// 统一查询入口(兼容回车和按钮点击)
handleQuery() {
this.getList();
// this.getLossList();
},
getList() {
this.loading = true;
this.loading = true
Promise.all([
listCoilWithIds({
selectType: 'raw_material',
itemType: 'raw_material',
warehouseIds: this.warehouseIds.join(','),
fetchLossList(this.actionTypes, {
...this.queryParams,
...this.baseQueryParams
...this.actionQueryParams
}),
listCoilWithIds({
selectType: 'product',
itemType: 'product',
fetchOutputList({
...this.queryParams,
...this.baseQueryParams,
warehouseIds: this.warehouseIds.join(','),
...this.queryParams,
...this.baseQueryParams
})
]).then(resList => {
const list = resList.flatMap(res => res.rows);
this.list = list.sort((a, b) => new Date(b.createTime) - new Date(a.createTime)).map(item => {
// 计算宽度和厚度,将规格按照*分割,*前的是厚度,*后的是宽度
const [thickness, width] = item.specification.split('*')
return {
...item,
computedThickness: parseFloat(thickness),
computedWidth: parseFloat(width),
}
});
// this.loading = false;
this.getLossList()
// this.loading = false;
}).catch(err => {
console.error('查询失败:', err);
this.loading = false;
});
},
async getLossList() {
this.loading = true;
try {
const resultList = await Promise.all(this.actionTypes.map(actionType => {
return listPendingAction({
actionStatus: 2,
warehouseId: this.queryParams.planId,
actionType,
pageSize: 9999,
pageNum: 1,
startTime: this.queryParams.byCreateTimeStart,
endTime: this.queryParams.byCreateTimeEnd,
...this.actionQueryParams
});
}));
const actions = resultList.flatMap(item => item.rows);
const coilIds = actions.map(item => item.coilId).join(',');
if (!coilIds) {
this.$message({
message: '暂无数据',
type: 'warning'
});
this.lossList = [];
this.loading = false;
return;
}
const res = await listCoilWithIds({
...this.queryParams,
byCreateTimeStart: undefined,
byCreateTimeEnd: undefined,
coilIds: coilIds
});
this.lossList = res.rows.map(item => {
// 计算宽度和厚度,将规格按照*分割,*前的是厚度,*后的是宽度
const [thickness, width] = item.specification.split('*')
return {
...item,
computedThickness: parseFloat(thickness),
computedWidth: parseFloat(width),
}
});
this.loading = false;
} catch (err) {
console.error('查询失败:', err);
this.loading = false;
}
}),
]).then(([lossList, outputList]) => {
this.lossList = lossList
this.list = outputList
this.loading = false
})
},
exportData() {
if (this.list.length === 0) {
@@ -372,8 +303,7 @@ export default {
}
},
mounted() {
this.getList();
// this.getLossList();
this.handleQuery()
this.loadColumns();
}
};