-
+
+
+
+ 日视图
+ 月视图
+ 年视图
+ 自定义
+
+
+
+
+
+
+
+
+
+
+ 至
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
查询
{{ lossSummary.avgWeight }}t
-
+
+
+
+ {{ summary.outCount }}(昨日: {{ yesterdaySummary.outCount }})
+ {{ summary.outTotalWeight }}t(昨日: {{ yesterdaySummary.outTotalWeight }}t)
+ {{ summary.outAvgWeight }}t(昨日: {{ yesterdaySummary.outAvgWeight }}t)
+
+ {{ summary.lossCount }}(昨日: {{ yesterdaySummary.lossCount }})
+ {{ summary.lossTotalWeight }}t(昨日: {{ yesterdaySummary.lossTotalWeight }}t)
+ {{ summary.lossAvgWeight }}t(昨日: {{ yesterdaySummary.lossAvgWeight }}t)
+
+ {{ summary.countDiff }}(昨日: {{ yesterdaySummary.countDiff }})
+ {{ summary.weightDiff }}(昨日: {{ yesterdaySummary.weightDiff }})
+ {{ summary.avgWeightDiff }}t(昨日: {{ yesterdaySummary.avgWeightDiff }}t)
+
+ {{ summary.passRate }}(昨日: {{ yesterdaySummary.passRate }})
+ {{ summary.lossRate }}(昨日: {{ yesterdaySummary.lossRate }})
+ {{ summary.abRate }}(昨日: {{ yesterdaySummary.abRate }})
+ {{ summary.passRate2 }}(昨日: {{ yesterdaySummary.passRate2 }})
+
+
+
+ {{ mSummary.outCount }}
+ {{ mSummary.outTotalWeight }}t
+ {{ mSummary.outAvgWeight }}t
+
+ {{ mSummary.lossCount }}
+ {{ mSummary.lossTotalWeight }}t
+ {{ mSummary.lossAvgWeight }}t
+
+ {{ mSummary.countDiff }}
+ {{ mSummary.weightDiff }}
+ {{ mSummary.avgWeightDiff }}t
+ {{ mSummary.passRate }}
+ {{ mSummary.lossRate }}
+ {{ mSummary.abRate }}
+ {{ mSummary.passRate2 }}
+
+
+
+ {{ item.value
+ }}
+
+
+
+
+
+
+
+
+
+
{{ summary.outCount }}
@@ -129,16 +240,12 @@
{{ summary.weightDiff }}
{{ summary.avgWeightDiff }}t
-
{{ summary.passRate }}
{{ summary.lossRate }}
-
{{ summary.abRate }}
-
{{ summary.passRate2 }}
-
{{ mSummary.outCount }}
{{ mSummary.outTotalWeight }}t
@@ -151,22 +258,17 @@
{{ mSummary.countDiff }}
{{ mSummary.weightDiff }}
{{ mSummary.avgWeightDiff }}t
-
{{ mSummary.passRate }}
{{ mSummary.lossRate }}
-
{{ mSummary.abRate }}
-
{{ mSummary.passRate2 }}
-
{{ item.value
}}
-
@@ -179,16 +281,31 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -208,6 +325,7 @@
import { listCoilWithIds } from "@/api/wms/coil";
import {
listLightPendingAction,
+ listPendingAction,
} from '@/api/wms/pendingAction';
import MemoInput from "@/components/MemoInput";
import MutiSelect from "@/components/MutiSelect";
@@ -219,8 +337,10 @@ import { calcSummary, calcAbSummary, calcTeamSummary, calcMSummary } from "@/vie
import CoilTable from "@/views/wms/report/components/coilTable";
import ColumnsSetting from "@/views/wms/report/components/setting/columns";
import TimeRangePicker from "@/views/wms/report/components/timeRangePicker.vue";
+import SplitSummary from "@/views/wms/report/components/summary/splitSummary.vue";
import { saveReportFile } from "@/views/wms/report/js/reportFile";
+import * as echarts from 'echarts';
export default {
name: 'MergeTemplate',
@@ -251,20 +371,18 @@ export default {
WarehouseSelect,
CoilTable,
ColumnsSetting,
- TimeRangePicker
+ TimeRangePicker,
+ SplitSummary,
},
dicts: ['product_coil_status', 'coil_material', 'coil_itemname', 'coil_manufacturer', 'coil_quality_status'],
data() {
- // 工具函数:个位数补零
const addZero = (num) => num.toString().padStart(2, '0')
- // 获取当前日期
const now = new Date()
const currentYear = `${now.getFullYear()}`
const currentMonth = `${now.getFullYear()}-${addZero(now.getMonth() + 1)}`
const currentDay = `${now.getFullYear()}-${addZero(now.getMonth() + 1)}-${addZero(now.getDate())}`
- // 获取昨天的日期(用于 out 和 loss 类型的默认时间)
const yesterday = new Date(now)
yesterday.setDate(yesterday.getDate() - 1)
const yesYear = yesterday.getFullYear()
@@ -273,40 +391,28 @@ export default {
const defaultStartTime = `${yesYear}-${yesMonth}-${yesDay} 07:00:00`
const defaultEndTime = `${now.getFullYear()}-${addZero(now.getMonth() + 1)}-${addZero(now.getDate())} 07:00:00`
- /**
- * 生成指定日期/月份/年份的时间范围字符串
- * @param {string} dateStr - 支持格式:yyyy(年份)、yyyy-MM(月份)或 yyyy-MM-dd(具体日期)
- * @returns {object} 包含start(开始时间)和end(结束时间)的对象
- */
const getDayTimeRange = (dateStr) => {
- // 先校验输入格式是否合法
- const yearPattern = /^\d{4}$/; // yyyy 正则
- const monthPattern = /^\d{4}-\d{2}$/; // yyyy-MM 正则
- const dayPattern = /^\d{4}-\d{2}-\d{2}$/; // yyyy-MM-dd 正则
+ const yearPattern = /^\d{4}$/;
+ const monthPattern = /^\d{4}-\d{2}$/;
+ const dayPattern = /^\d{4}-\d{2}-\d{2}$/;
let startDate, endDate;
if (yearPattern.test(dateStr)) {
- // 处理 yyyy 格式:获取本年第一天和最后一天
startDate = `${dateStr}-01-01`;
endDate = `${dateStr}-12-31`;
} else if (monthPattern.test(dateStr)) {
- // 处理 yyyy-MM 格式:获取本月第一天和最后一天
const [year, month] = dateStr.split('-').map(Number);
- // 第一天:yyyy-MM-01
startDate = `${dateStr}-01`;
- // 最后一天:通过 new Date(year, month, 0) 计算(month是原始月份,比如2代表2月,传2则取3月0日=2月最后一天)
const lastDayOfMonth = new Date(year, month, 0).getDate();
endDate = `${dateStr}-${lastDayOfMonth.toString().padStart(2, '0')}`;
} else if (dayPattern.test(dateStr)) {
- // 处理 yyyy-MM-dd 格式:直接使用传入的日期
startDate = dateStr;
endDate = dateStr;
} else {
throw new Error('输入格式错误,请传入 yyyy、yyyy-MM 或 yyyy-MM-dd 格式的字符串');
}
- // 拼接时间部分
return {
start: `${startDate} 00:00:00`,
end: `${endDate} 23:59:59`
@@ -328,11 +434,13 @@ export default {
defaultStartTime,
defaultEndTime,
getDayTimeRange,
+ // all 类型专用
+ viewType: 'custom',
+ yesterdaySummary: {},
+ monthChart: null,
queryParams: {
startTime: start,
endTime: end,
- // byCreateTimeStart: start,
- // byCreateTimeEnd: end,
enterCoilNo: '',
currentCoilNo: '',
warehouseId: '',
@@ -382,7 +490,6 @@ export default {
};
});
},
- // out 类型的统计
outSummary() {
const totalCount = this.outList.length;
const totalWeight = this.outList.reduce((acc, cur) => acc + parseFloat(cur.netWeight), 0);
@@ -393,7 +500,6 @@ export default {
avgWeight,
};
},
- // loss 类型的统计
lossSummary() {
const totalCount = this.lossList.length;
const totalWeight = this.lossList.reduce((acc, cur) => acc + parseFloat(cur.netWeight), 0);
@@ -403,7 +509,21 @@ export default {
totalWeight: totalWeight.toFixed(2),
avgWeight,
};
- }
+ },
+ commonCoilIds() {
+ if (this.productionLine !== '分条线') {
+ return []
+ }
+ const outputCoilIds = new Set(this.outList.map(item => item.coilId))
+ const lossCoilIds = new Set(this.lossList.map(item => item.coilId))
+ const commonIds = []
+ outputCoilIds.forEach(id => {
+ if (lossCoilIds.has(id)) {
+ commonIds.push(id)
+ }
+ })
+ return commonIds
+ },
},
watch: {
warehouseOptions: {
@@ -421,17 +541,20 @@ export default {
this.loadColumns()
},
methods: {
- // 根据 reportType 初始化日期
initDateByReportType() {
if (this.reportType === 'out' || this.reportType === 'loss') {
- // out 和 loss 类型使用默认时间
this.queryParams.startTime = this.defaultStartTime;
this.queryParams.endTime = this.defaultEndTime;
} else if (this.reportType === 'team') {
- // team 类型初始化 byCreateTimeStart 和 byCreateTimeEnd
const { start, end } = this.getDayTimeRange(this.dayDate);
this.queryParams.byCreateTimeStart = start;
this.queryParams.byCreateTimeEnd = end;
+ } else if (this.reportType === 'all') {
+ // all 类型默认使用当前月份作为自定义时间范围
+ this.viewType = 'custom';
+ const { start, end } = this.getDayTimeRange(this.monthDate);
+ this.queryParams.startTime = start;
+ this.queryParams.endTime = end;
} else {
let dateStr;
if (this.reportType === 'year') {
@@ -440,16 +563,12 @@ export default {
dateStr = this.monthDate;
} else if (this.reportType === 'day') {
dateStr = this.dayDate;
- } else {
- // all 类型,默认使用当前月份
- dateStr = this.monthDate;
}
const { start, end } = this.getDayTimeRange(dateStr);
this.queryParams.startTime = start;
this.queryParams.endTime = end;
}
},
- // 日期变更处理
handleDateChange() {
let dateStr;
if (this.reportType === 'year') {
@@ -466,26 +585,108 @@ export default {
this.handleQuery();
}
},
+ // all 类型:视图类型切换
+ handleViewTypeChange() {
+ switch (this.viewType) {
+ case 'day': {
+ const today = new Date();
+ const year = today.getFullYear();
+ const month = String(today.getMonth() + 1).padStart(2, '0');
+ const day = String(today.getDate()).padStart(2, '0');
+ this.dayDate = `${year}-${month}-${day}`;
+ this.handleDayDateChange();
+ break;
+ }
+ case 'month':
+ this.handleMonthDateChange();
+ break;
+ case 'year':
+ this.handleYearDateChange();
+ break;
+ case 'custom':
+ break;
+ }
+ },
+ // all 类型:日视图日期变更
+ handleDayDateChange() {
+ if (this.dayDate) {
+ const { start, end } = this.getDayTimeRange(this.dayDate);
+ this.queryParams.startTime = start;
+ this.queryParams.endTime = end;
+ this.handleQuery();
+ }
+ },
+ // all 类型:月视图日期变更
+ handleMonthDateChange() {
+ if (this.monthDate) {
+ const { start, end } = this.getDayTimeRange(this.monthDate);
+ this.queryParams.startTime = start;
+ this.queryParams.endTime = end;
+ this.handleQuery();
+ }
+ },
+ // all 类型:年视图日期变更
+ handleYearDateChange() {
+ if (this.yearDate) {
+ this.queryParams.startTime = `${this.yearDate}-01-01 00:00:00`;
+ this.queryParams.endTime = `${this.yearDate}-12-31 23:59:59`;
+ this.handleQuery();
+ }
+ },
handleQuery() {
this.getList()
},
async getList() {
this.loading = true;
- // 所有报表类型都使用原始的 listLightPendingAction 方式获取数据
+ if (this.reportType === 'all') {
+ // all 类型使用 comprehensive 方式查询
+ const res = await listLightPendingAction({ ...this.queryParams, actionTypes: this.actionType, actionStatus: 2 });
+ const lossIds = res.data.filter(item => item.coilId).map(item => item.coilId);
+ const lossActionIds = res.data.filter(item => item.actionId).map(item => item.actionId);
+ this.actionIds = lossActionIds.join(',')
+ const outIds = [...new Set(res.data.filter(item => item.processedCoilIds).map(item => item.processedCoilIds))];
+
+ if (lossIds.length === 0 || outIds.length === 0) {
+ this.$message({ message: '查询结果为空', type: 'warning' })
+ this.loading = false;
+ return
+ }
+
+ const [lossRes, outRes] = await Promise.all([
+ listCoilWithIds({ ...this.queryParams, actionIds: lossActionIds.join(',') || '', startTime: '', endTime: '', selectType: 'raw_material' }),
+ listCoilWithIds({ ...this.queryParams, coilIds: outIds.join(',') || '', startTime: '', endTime: '', selectType: 'product' }),
+ ]);
+
+ this.lossList = lossRes.rows.map(item => {
+ const [thickness, width] = item.specification?.split('*') || []
+ return { ...item, computedThickness: parseFloat(thickness), computedWidth: parseFloat(width) }
+ });
+ this.outList = outRes.rows.map(item => {
+ const [thickness, width] = item.specification?.split('*') || []
+ return { ...item, computedThickness: parseFloat(thickness), computedWidth: parseFloat(width) }
+ });
+
+ if (this.viewType === 'day') {
+ this.getYesterdayData()
+ }
+ if (this.viewType === 'month') {
+ this.$nextTick(() => {
+ this.initMonthChart()
+ })
+ }
+ this.loading = false;
+ return
+ }
+
const res = await listLightPendingAction({ ...this.queryParams, actionTypes: this.actionType, actionStatus: 2 });
- // 获取两层数据
const lossIds = res.data.filter(item => item.coilId).map(item => item.coilId);
const lossActionIds = res.data.filter(item => item.actionId).map(item => item.actionId);
this.actionIds = lossActionIds.join(',')
- // 使用new Set去重
const outIds = [...new Set(res.data.filter(item => item.processedCoilIds).map(item => item.processedCoilIds))];
if (lossIds.length === 0 || outIds.length === 0) {
- this.$message({
- message: '查询结果为空',
- type: 'warning'
- })
+ this.$message({ message: '查询结果为空', type: 'warning' })
this.loading = false;
return
}
@@ -495,60 +696,170 @@ export default {
listCoilWithIds({ ...this.queryParams, coilIds: outIds.join(',') || '', startTime: '', endTime: '', selectType: 'product' }),
]);
- // 根据 reportType 决定填充哪些数据
if (this.reportType === 'out') {
- // 产出报表模式:只填充产出数据
this.outList = outRes.rows.map(item => {
const [thickness, width] = item.specification?.split('*') || []
- return {
- ...item,
- computedThickness: parseFloat(thickness),
- computedWidth: parseFloat(width),
- }
+ return { ...item, computedThickness: parseFloat(thickness), computedWidth: parseFloat(width) }
});
- this.lossList = []; // 清空消耗数据
+ this.lossList = [];
} else if (this.reportType === 'loss') {
- // 消耗报表模式:只填充消耗数据
this.lossList = lossRes.rows.map(item => {
const [thickness, width] = item.specification?.split('*') || []
- return {
- ...item,
- computedThickness: parseFloat(thickness),
- computedWidth: parseFloat(width),
- }
+ return { ...item, computedThickness: parseFloat(thickness), computedWidth: parseFloat(width) }
});
- this.outList = []; // 清空产出数据
+ this.outList = [];
} else {
- // team/day/month/year/all 类型:填充两者数据
this.lossList = lossRes.rows.map(item => {
const [thickness, width] = item.specification?.split('*') || []
- return {
- ...item,
- computedThickness: parseFloat(thickness),
- computedWidth: parseFloat(width),
- }
+ return { ...item, computedThickness: parseFloat(thickness), computedWidth: parseFloat(width) }
});
this.outList = outRes.rows.map(item => {
const [thickness, width] = item.specification?.split('*') || []
- return {
- ...item,
- computedThickness: parseFloat(thickness),
- computedWidth: parseFloat(width),
- }
+ return { ...item, computedThickness: parseFloat(thickness), computedWidth: parseFloat(width) }
});
}
this.loading = false;
},
- // 导出
+ // all 类型:获取昨日数据
+ getYesterdayData() {
+ const yesterday = new Date(this.dayDate)
+ yesterday.setDate(yesterday.getDate() - 1)
+ const year = yesterday.getFullYear()
+ const month = String(yesterday.getMonth() + 1).padStart(2, '0')
+ const day = String(yesterday.getDate()).padStart(2, '0')
+ const yesterdayDate = `${year}-${month}-${day}`
+ const { start, end } = this.getDayTimeRange(yesterdayDate)
+
+ Promise.all([
+ listCoilWithIds({
+ selectType: 'raw_material',
+ itemType: 'raw_material',
+ warehouseIds: this.warehouseIds.join(','),
+ ...this.queryParams,
+ startTime: start,
+ endTime: end,
+ pageSize: 99999,
+ pageNum: 1,
+ }),
+ listCoilWithIds({
+ selectType: 'product',
+ itemType: 'product',
+ warehouseIds: this.warehouseIds.join(','),
+ ...this.queryParams,
+ startTime: start,
+ endTime: end,
+ pageSize: 99999,
+ pageNum: 1,
+ }),
+ ]).then((resList) => {
+ const list = resList.flatMap(res => res.rows)
+ const yesterdayList = list.sort(
+ (a, b) => new Date(b.createTime) - new Date(a.createTime)
+ ).map(item => {
+ if (!item.selectType) {
+ item.selectType = item.itemType === 'product' ? 'product' : 'raw_material'
+ }
+ return item
+ })
+
+ listPendingAction({
+ actionStatus: 2,
+ actionType: this.actionType,
+ pageSize: 99999,
+ pageNum: 1,
+ startTime: start,
+ endTime: end,
+ }).then((lossRes) => {
+ const lossActions = lossRes.rows
+ const lossCoilIds = lossActions.map(item => item.coilId).join(',')
+
+ if (lossCoilIds) {
+ listCoilWithIds({
+ ...this.queryParams,
+ startTime: undefined,
+ endTime: undefined,
+ coilIds: lossCoilIds,
+ pageSize: 99999,
+ pageNum: 1,
+ }).then(res => {
+ const yesterdayLossList = res.rows
+ this.yesterdaySummary = calcSummary(yesterdayList, yesterdayLossList)
+ })
+ } else {
+ this.yesterdaySummary = calcSummary(yesterdayList, [])
+ }
+ })
+ })
+ },
+ // all 类型:初始化月视图折线图
+ initMonthChart() {
+ if (!this.$refs.monthChart) return
+
+ if (this.monthChart) {
+ this.monthChart.dispose()
+ }
+
+ this.monthChart = echarts.init(this.$refs.monthChart)
+
+ const dailyData = {}
+ this.outList.forEach(item => {
+ const date = item.createTime.split(' ')[0]
+ if (!dailyData[date]) {
+ dailyData[date] = { outCount: 0, outTotalWeight: 0, lossCount: 0, lossTotalWeight: 0 }
+ }
+ dailyData[date].outCount++
+ dailyData[date].outTotalWeight += parseFloat(item.netWeight) || 0
+ })
+
+ this.lossList.forEach(item => {
+ const date = item.actionCompleteTime?.split(' ')[0]
+ if (!dailyData[date]) {
+ dailyData[date] = { outCount: 0, outTotalWeight: 0, lossCount: 0, lossTotalWeight: 0 }
+ }
+ dailyData[date].lossCount++
+ dailyData[date].lossTotalWeight += parseFloat(item.netWeight) || 0
+ })
+
+ const dates = Object.keys(dailyData).sort()
+ const outCountData = dates.map(date => dailyData[date].outCount)
+ const outTotalWeightData = dates.map(date => dailyData[date].outTotalWeight.toFixed(2))
+ const lossCountData = dates.map(date => dailyData[date].lossCount)
+ const lossTotalWeightData = dates.map(date => dailyData[date].lossTotalWeight.toFixed(2))
+
+ const option = {
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: { type: 'cross', label: { backgroundColor: '#6a7985' } }
+ },
+ legend: { data: ['产出数量', '产出总重', '消耗数量', '消耗总重'] },
+ grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true },
+ xAxis: [{ type: 'category', boundaryGap: false, data: dates }],
+ yAxis: [
+ { type: 'value', name: '数量', position: 'left' },
+ { type: 'value', name: '重量(t)', position: 'right' }
+ ],
+ series: [
+ { name: '产出数量', type: 'line', data: outCountData, yAxisIndex: 0 },
+ { name: '产出总重', type: 'line', data: outTotalWeightData, yAxisIndex: 1 },
+ { name: '消耗数量', type: 'line', data: lossCountData, yAxisIndex: 0 },
+ { name: '消耗总重', type: 'line', data: lossTotalWeightData, yAxisIndex: 1 }
+ ]
+ }
+
+ this.monthChart.setOption(option)
+
+ window.addEventListener('resize', () => {
+ this.monthChart.resize()
+ })
+ },
exportData() {
if (this.outList.length === 0) {
this.$message.warning('暂无数据可导出')
return
}
- // 根据 reportType 调整文件名
let fileName = `materialCoil_${new Date().getTime()}.xlsx`;
- if (['day', 'month', 'year'].includes(this.reportType)) {
+ if (['day', 'month', 'year', 'all'].includes(this.reportType)) {
fileName = `materialCoil_${this.queryParams.date || ''}_${new Date().getTime()}.xlsx`;
}
this.download('wms/materialCoil/export', {
@@ -560,20 +871,16 @@ export default {
this.$message.warning('暂无数据可导出')
return
}
- // 根据 reportType 调整文件名
let fileName = `materialCoil_${new Date().getTime()}.xlsx`;
- if (['day', 'month', 'year'].includes(this.reportType)) {
+ if (['day', 'month', 'year', 'all'].includes(this.reportType)) {
fileName = `materialCoil_${this.queryParams.date || ''}_${new Date().getTime()}.xlsx`;
}
-
this.download('wms/materialCoil/export', {
actionIds: this.actionIds
}, fileName)
},
- // 保存产出报表
saveOutputReport() {
this.loading = true
- // 根据 reportType 调整报表类型
let reportTypeStr = '产出报表';
if (this.reportType === 'day') {
reportTypeStr = '产出报表,日报表';
@@ -583,29 +890,23 @@ export default {
reportTypeStr = '产出报表,年报表';
} else if (this.reportType === 'team') {
reportTypeStr = '产出报表,班报表';
+ } else if (this.reportType === 'all') {
+ reportTypeStr = '产出报表,综合报表';
}
saveReportFile(this.outList.map(item => item.coilId).join(','), {
reportParams: this.queryParams,
reportType: reportTypeStr,
productionLine: this.productionLine,
}).then(res => {
- this.$message({
- message: '保存成功',
- type: 'success',
- })
+ this.$message({ message: '保存成功', type: 'success' })
}).catch(err => {
- this.$message({
- message: '保存失败',
- type: 'error',
- })
+ this.$message({ message: '保存失败', type: 'error' })
}).finally(() => {
this.loading = false
})
},
- // 保存消耗报表
saveLossReport() {
this.loading = true
- // 根据 reportType 调整报表类型
let reportTypeStr = '消耗报表';
if (this.reportType === 'day') {
reportTypeStr = '消耗报表,日报表';
@@ -615,26 +916,21 @@ export default {
reportTypeStr = '消耗报表,年报表';
} else if (this.reportType === 'team') {
reportTypeStr = '消耗报表,班报表';
+ } else if (this.reportType === 'all') {
+ reportTypeStr = '消耗报表,综合报表';
}
saveReportFile(this.lossList.map(item => item.coilId).join(','), {
reportParams: this.queryParams,
reportType: reportTypeStr,
productionLine: this.productionLine,
}).then(res => {
- this.$message({
- message: '保存成功',
- type: 'success',
- })
+ this.$message({ message: '保存成功', type: 'success' })
}).catch(err => {
- this.$message({
- message: '保存失败',
- type: 'error',
- })
+ this.$message({ message: '保存失败', type: 'error' })
}).finally(() => {
this.loading = false
})
},
- // 加载列设置
loadColumns() {
this.lossColumns = JSON.parse(localStorage.getItem('preference-tableColumns-coil-report-loss') || '[]') || []
this.outputColumns = JSON.parse(localStorage.getItem('preference-tableColumns-coil-report-output') || '[]') || []
@@ -643,4 +939,4 @@ export default {
}
-
\ No newline at end of file
+
diff --git a/klp-ui/src/views/wms/report/tuozhi/comprehensive.vue b/klp-ui/src/views/wms/report/tuozhi/comprehensive.vue
index 5a9a118a..565d0242 100644
--- a/klp-ui/src/views/wms/report/tuozhi/comprehensive.vue
+++ b/klp-ui/src/views/wms/report/tuozhi/comprehensive.vue
@@ -1,26 +1,29 @@
-
+
\ No newline at end of file
+
diff --git a/klp-ui/src/views/wms/report/tuozhi/day.vue b/klp-ui/src/views/wms/report/tuozhi/day.vue
index f2d7dff8..e851d8d2 100644
--- a/klp-ui/src/views/wms/report/tuozhi/day.vue
+++ b/klp-ui/src/views/wms/report/tuozhi/day.vue
@@ -1,27 +1,34 @@
-
\ No newline at end of file
+
diff --git a/klp-ui/src/views/wms/report/tuozhi/loss.vue b/klp-ui/src/views/wms/report/tuozhi/loss.vue
index 21c33287..12dfaff8 100644
--- a/klp-ui/src/views/wms/report/tuozhi/loss.vue
+++ b/klp-ui/src/views/wms/report/tuozhi/loss.vue
@@ -1,26 +1,29 @@
-
+
\ No newline at end of file
+}
+
diff --git a/klp-ui/src/views/wms/report/tuozhi/month.vue b/klp-ui/src/views/wms/report/tuozhi/month.vue
index 9a0bcf43..e5146834 100644
--- a/klp-ui/src/views/wms/report/tuozhi/month.vue
+++ b/klp-ui/src/views/wms/report/tuozhi/month.vue
@@ -1,26 +1,29 @@
-
+
\ No newline at end of file
+
diff --git a/klp-ui/src/views/wms/report/tuozhi/out.vue b/klp-ui/src/views/wms/report/tuozhi/out.vue
index e1c42d3b..d95a4b40 100644
--- a/klp-ui/src/views/wms/report/tuozhi/out.vue
+++ b/klp-ui/src/views/wms/report/tuozhi/out.vue
@@ -1,24 +1,29 @@
-
+
\ No newline at end of file
+
diff --git a/klp-ui/src/views/wms/report/tuozhi/team.vue b/klp-ui/src/views/wms/report/tuozhi/team.vue
index 7156a537..71276d2f 100644
--- a/klp-ui/src/views/wms/report/tuozhi/team.vue
+++ b/klp-ui/src/views/wms/report/tuozhi/team.vue
@@ -1,26 +1,29 @@
-
+
\ No newline at end of file
+
diff --git a/klp-ui/src/views/wms/report/tuozhi/year.vue b/klp-ui/src/views/wms/report/tuozhi/year.vue
index 244cc8fa..549d19bb 100644
--- a/klp-ui/src/views/wms/report/tuozhi/year.vue
+++ b/klp-ui/src/views/wms/report/tuozhi/year.vue
@@ -1,26 +1,29 @@
-
+
\ No newline at end of file
+