Compare commits

...

3 Commits

Author SHA1 Message Date
6fe1f668d3 Merge branch '0.8.X' of http://49.232.154.205:10100/DeXun/klp-oa into 0.8.X 2026-06-03 14:53:14 +08:00
53b991242c feat(mes/roll/report): 优化磨辊人员统计报表,按辊型拆分统计数据
该提交重构了磨辊报表的操作人员统计模块,将原有的总统计拆分为中间辊(CR)、支撑辊(BR)、工作辊(WR)的分项统计,并增加了合计栏,同时完善了辊型识别逻辑,新增了对应的数据计算和表格展示。
2026-06-03 14:07:46 +08:00
91017f7c84 refactor(wms/report): 重构镀锌、酸轧线报表页面,统一使用通用模板组件
1.  新增了zinc_old和zha_old旧版报表备份目录,保留原有实现
2.  将所有报表页面替换为通用的ActionTemplate组件
3.  为镀锌线、酸轧线的各类报表配置了固定的生产线、仓库选项和操作类型
4.  移除了动态加载报表配置的逻辑,改为硬编码固定配置
2026-06-03 14:07:35 +08:00
29 changed files with 850 additions and 369 deletions

View File

@@ -81,14 +81,43 @@
</div>
<el-table :data="operatorStats" size="small" border stripe style="width:100%"
v-if="operatorStats.length" :default-sort="{ prop: 'totalGrindAmount', order: 'descending' }">
<el-table-column label="序号" type="index" width="50" align="center" />
<el-table-column label="磨辊人" prop="operator" min-width="120" sortable />
<el-table-column label="磨削次数" prop="grindCount" width="110" align="center" sortable />
<el-table-column label="磨削总量(mm)" prop="totalGrindAmount" width="130" align="right" sortable>
<template slot-scope="{row}">{{ row.totalGrindAmount.toFixed(2) }}</template>
<el-table-column label="序号" type="index" align="center" />
<el-table-column label="磨辊人" prop="operator" sortable />
<el-table-column label="CR(中间辊)" align="center">
<el-table-column label="磨削次数" prop="crGrindCount" align="center" sortable />
<el-table-column label="磨削总量(mm)" align="right" sortable>
<template slot-scope="{row}">{{ row.crTotalGrindAmount.toFixed(2) }}</template>
</el-table-column>
<el-table-column label="平均磨削量(mm)" align="right" sortable>
<template slot-scope="{row}">{{ row.crAvgGrindAmount.toFixed(2) }}</template>
</el-table-column>
</el-table-column>
<el-table-column label="平均磨削量(mm)" prop="avgGrindAmount" width="140" align="right" sortable>
<template slot-scope="{row}">{{ row.avgGrindAmount.toFixed(2) }}</template>
<el-table-column label="BR(支撑辊)" align="center">
<el-table-column label="磨削次数" prop="brGrindCount" align="center" sortable />
<el-table-column label="磨削总量(mm)" align="right" sortable>
<template slot-scope="{row}">{{ row.brTotalGrindAmount.toFixed(2) }}</template>
</el-table-column>
<el-table-column label="平均磨削量(mm)" align="right" sortable>
<template slot-scope="{row}">{{ row.brAvgGrindAmount.toFixed(2) }}</template>
</el-table-column>
</el-table-column>
<el-table-column label="WR(工作辊)" align="center">
<el-table-column label="磨削次数" prop="wrGrindCount" align="center" sortable />
<el-table-column label="磨削总量(mm)" align="right" sortable>
<template slot-scope="{row}">{{ row.wrTotalGrindAmount.toFixed(2) }}</template>
</el-table-column>
<el-table-column label="平均磨削量(mm)" align="right" sortable>
<template slot-scope="{row}">{{ row.wrAvgGrindAmount.toFixed(2) }}</template>
</el-table-column>
</el-table-column>
<el-table-column label="合计" align="center">
<el-table-column label="磨削次数" prop="grindCount" align="center" sortable />
<el-table-column label="磨削总量(mm)" align="right" sortable>
<template slot-scope="{row}">{{ row.totalGrindAmount.toFixed(2) }}</template>
</el-table-column>
<el-table-column label="平均磨削量(mm)" align="right" sortable>
<template slot-scope="{row}">{{ row.avgGrindAmount.toFixed(2) }}</template>
</el-table-column>
</el-table-column>
</el-table>
<el-empty v-else description="暂无磨削记录" />
@@ -175,7 +204,7 @@ export default {
this.computeSummary(allRecords, rollMap)
this.computeDailyTrend(allRecords)
this.computeRollTypeDist(allRecords, rollMap)
this.computeOperatorStats(allRecords)
this.computeOperatorStats(allRecords, rollMap)
this.updateCharts()
} catch (e) {
console.error('加载报表数据失败', e)
@@ -214,25 +243,50 @@ export default {
const typeMap = {}
records.forEach(r => {
const roll = rollMap[r.rollId]
const type = roll ? (roll.rollType === 'WR' ? '工作辊' : roll.rollType === 'BR' ? '支撑辊' : roll.rollType || '未知') : '未知'
const type = roll ? (roll.rollType === 'WR' ? '工作辊' : roll.rollType === 'BR' ? '支撑辊' : roll.rollType === 'CR' ? '中间辊' : roll.rollType || '未知') : '未知'
if (!typeMap[type]) typeMap[type] = { name: type, value: 0, grindCount: 0 }
typeMap[type].value += Number(r.grindAmount || 0)
typeMap[type].grindCount++
})
this.rollTypeDist = Object.values(typeMap)
},
computeOperatorStats(records) {
computeOperatorStats(records, rollMap) {
const opMap = {}
records.forEach(r => {
const name = r.operator || '未知'
if (!opMap[name]) opMap[name] = { operator: name, grindCount: 0, totalGrindAmount: 0 }
if (!opMap[name]) opMap[name] = {
operator: name,
grindCount: 0, totalGrindAmount: 0,
crGrindCount: 0, crTotalGrindAmount: 0,
brGrindCount: 0, brTotalGrindAmount: 0,
wrGrindCount: 0, wrTotalGrindAmount: 0
}
opMap[name].grindCount++
opMap[name].totalGrindAmount += Number(r.grindAmount || 0)
const roll = rollMap[r.rollId]
const rollType = roll ? (roll.rollType || '') : ''
const amount = Number(r.grindAmount || 0)
if (rollType === 'CR') {
opMap[name].crGrindCount++
opMap[name].crTotalGrindAmount += amount
} else if (rollType === 'BR') {
opMap[name].brGrindCount++
opMap[name].brTotalGrindAmount += amount
} else if (rollType === 'WR') {
opMap[name].wrGrindCount++
opMap[name].wrTotalGrindAmount += amount
}
})
this.operatorStats = Object.values(opMap).map(item => ({
...item,
totalGrindAmount: Number(item.totalGrindAmount.toFixed(2)),
avgGrindAmount: item.grindCount > 0 ? Number((item.totalGrindAmount / item.grindCount).toFixed(2)) : 0
avgGrindAmount: item.grindCount > 0 ? Number((item.totalGrindAmount / item.grindCount).toFixed(2)) : 0,
crTotalGrindAmount: Number(item.crTotalGrindAmount.toFixed(2)),
crAvgGrindAmount: item.crGrindCount > 0 ? Number((item.crTotalGrindAmount / item.crGrindCount).toFixed(2)) : 0,
brTotalGrindAmount: Number(item.brTotalGrindAmount.toFixed(2)),
brAvgGrindAmount: item.brGrindCount > 0 ? Number((item.brTotalGrindAmount / item.brGrindCount).toFixed(2)) : 0,
wrTotalGrindAmount: Number(item.wrTotalGrindAmount.toFixed(2)),
wrAvgGrindAmount: item.wrGrindCount > 0 ? Number((item.wrTotalGrindAmount / item.wrGrindCount).toFixed(2)) : 0
})).sort((a, b) => b.totalGrindAmount - a.totalGrindAmount)
},
initCharts() {
@@ -272,7 +326,7 @@ export default {
data: [],
emphasis: { itemStyle: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0,0,0,0.5)' } }
}],
color: ['#409eff', '#e6a23c', '#909399']
color: ['#409eff', '#e6a23c', '#67c23a', '#909399']
})
},
updateCharts() {

View File

@@ -1,51 +1,31 @@
<template>
<div>
<ComprehensiveTemplate v-if="!loading" :actionTypes="actionTypes" :actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams" :warehouseOptions="warehouseOptions" :productionLine="productionLine" />
<el-empty v-else description="正在加载报表配置..." />
</div>
<ActionTemplate :actionType="actionType" :reportType="reportType" :productionLine="productionLine" :warehouseOptions="warehouseOptions" />
</template>
<script>
import ComprehensiveTemplate from '@/views/wms/report/template/comprehensive.vue'
import { listReportConfig } from '@/api/wms/reportConfig.js'
import ActionTemplate from '@/views/wms/report/template/action.vue'
export default {
name: 'ComprehensiveReport',
components: {
ComprehensiveTemplate,
ActionTemplate,
},
data() {
return {
loading: true,
actionTypes: [],
actionQueryParams: {},
baseQueryParams: {},
warehouseOptions: [],
productionLine: '',
}
},
mounted() {
this.getReportConfig()
},
methods: {
getReportConfig() {
this.loading = true
listReportConfig({
reportCode: 'acid'
}).then(res => {
console.log(res)
if (res.rows.length == 1) {
const config = JSON.parse(res.rows[0].configJson)
this.actionTypes = config.actionTypes
this.actionQueryParams = config.actionQueryParams
this.baseQueryParams = config.baseQueryParams
this.warehouseOptions = config.warehouseOptions
this.productionLine = config.productionLine
this.loading = false
}
})
actionType: '11,120',
reportType: 'all',
productionLine: '酸轧线',
warehouseOptions: [
{ label: '酸连轧成品库', value: '1988150099140866050' },
{ label: '镀锌原料库', value: '1988150263284953089' },
{ label: '脱脂原料库', value: '1988150545175736322' },
{ label: '酸连轧纵剪分条原料库', value: '1988150150521090049' },
{ label: '技术部', value: '2019583656787259393' },
{ label: '小钢卷库', value: '2019583325311414274' },
{ label: '废品库', value: '2019583429955104769' },
{ label: '退货库', value: '2019583137616310273' },
],
}
}
}
</script>
</script>

View File

@@ -1,51 +1,31 @@
<template>
<div>
<DayTemplate v-if="!loading" :actionTypes="actionTypes" :actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams" :warehouseOptions="warehouseOptions" :productionLine="productionLine" />
<el-empty v-else description="正在加载报表配置..." />
</div>
<ActionTemplate :actionType="actionType" :reportType="reportType" :productionLine="productionLine" :warehouseOptions="warehouseOptions" />
</template>
<script>
import DayTemplate from '@/views/wms/report/template/day.vue'
import { listReportConfig } from '@/api/wms/reportConfig.js'
import ActionTemplate from '@/views/wms/report/template/action.vue'
export default {
name: 'DayReport',
name: 'ComprehensiveReport',
components: {
DayTemplate,
ActionTemplate,
},
data() {
return {
loading: true,
actionTypes: [],
actionQueryParams: {},
baseQueryParams: {},
warehouseOptions: [],
productionLine: '',
}
},
mounted() {
this.getReportConfig()
},
methods: {
getReportConfig() {
this.loading = true
listReportConfig({
reportCode: 'acid'
}).then(res => {
console.log(res)
if (res.rows.length == 1) {
const config = JSON.parse(res.rows[0].configJson)
this.actionTypes = config.actionTypes
this.actionQueryParams = config.actionQueryParams
this.baseQueryParams = config.baseQueryParams
this.warehouseOptions = config.warehouseOptions
this.productionLine = config.productionLine
this.loading = false
}
})
actionType: '11,120',
reportType: 'day',
productionLine: '酸轧线',
warehouseOptions: [
{ label: '酸连轧成品库', value: '1988150099140866050' },
{ label: '镀锌原料库', value: '1988150263284953089' },
{ label: '脱脂原料库', value: '1988150545175736322' },
{ label: '酸连轧纵剪分条原料库', value: '1988150150521090049' },
{ label: '技术部', value: '2019583656787259393' },
{ label: '小钢卷库', value: '2019583325311414274' },
{ label: '废品库', value: '2019583429955104769' },
{ label: '退货库', value: '2019583137616310273' },
],
}
}
}
</script>
</script>

View File

@@ -1,51 +1,31 @@
<template>
<div>
<LossTemplate v-if="!loading" :actionTypes="actionTypes" :actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams" :warehouseOptions="warehouseOptions" :productionLine="productionLine" />
<el-empty v-else description="正在加载报表配置..." />
</div>
<ActionTemplate :actionType="actionType" :reportType="reportType" :productionLine="productionLine" :warehouseOptions="warehouseOptions" />
</template>
<script>
import LossTemplate from '@/views/wms/report/template/loss.vue'
import { listReportConfig } from '@/api/wms/reportConfig.js'
import ActionTemplate from '@/views/wms/report/template/action.vue'
export default {
name: 'LossReport',
name: 'ComprehensiveReport',
components: {
LossTemplate,
ActionTemplate,
},
data() {
return {
loading: true,
actionTypes: [],
actionQueryParams: {},
baseQueryParams: {},
warehouseOptions: [],
productionLine: '',
}
},
mounted() {
this.getReportConfig()
},
methods: {
getReportConfig() {
this.loading = true
listReportConfig({
reportCode: 'acid'
}).then(res => {
console.log(res)
if (res.rows.length == 1) {
const config = JSON.parse(res.rows[0].configJson)
this.actionTypes = config.actionTypes
this.actionQueryParams = config.actionQueryParams
this.baseQueryParams = config.baseQueryParams
this.warehouseOptions = config.warehouseOptions
this.productionLine = config.productionLine
this.loading = false
}
})
actionType: '11,120',
reportType: 'loss',
productionLine: '酸轧线',
warehouseOptions: [
{ label: '酸连轧成品库', value: '1988150099140866050' },
{ label: '镀锌原料库', value: '1988150263284953089' },
{ label: '脱脂原料库', value: '1988150545175736322' },
{ label: '酸连轧纵剪分条原料库', value: '1988150150521090049' },
{ label: '技术部', value: '2019583656787259393' },
{ label: '小钢卷库', value: '2019583325311414274' },
{ label: '废品库', value: '2019583429955104769' },
{ label: '退货库', value: '2019583137616310273' },
],
}
}
}
</script>
</script>

View File

@@ -1,51 +1,31 @@
<template>
<div>
<MonthTemplate v-if="!loading" :actionTypes="actionTypes" :actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams" :warehouseOptions="warehouseOptions" :productionLine="productionLine" />
<el-empty v-else description="正在加载报表配置..." />
</div>
<ActionTemplate :actionType="actionType" :reportType="reportType" :productionLine="productionLine" :warehouseOptions="warehouseOptions" />
</template>
<script>
import MonthTemplate from '@/views/wms/report/template/month.vue'
import { listReportConfig } from '@/api/wms/reportConfig.js'
import ActionTemplate from '@/views/wms/report/template/action.vue'
export default {
name: 'MonthReport',
name: 'ComprehensiveReport',
components: {
MonthTemplate,
ActionTemplate,
},
data() {
return {
loading: true,
actionTypes: [],
actionQueryParams: {},
baseQueryParams: {},
warehouseOptions: [],
productionLine: '',
}
},
mounted() {
this.getReportConfig()
},
methods: {
getReportConfig() {
this.loading = true
listReportConfig({
reportCode: 'acid'
}).then(res => {
console.log(res)
if (res.rows.length == 1) {
const config = JSON.parse(res.rows[0].configJson)
this.actionTypes = config.actionTypes
this.actionQueryParams = config.actionQueryParams
this.baseQueryParams = config.baseQueryParams
this.warehouseOptions = config.warehouseOptions
this.productionLine = config.productionLine
this.loading = false
}
})
actionType: '11,120',
reportType: 'month',
productionLine: '酸轧线',
warehouseOptions: [
{ label: '酸连轧成品库', value: '1988150099140866050' },
{ label: '镀锌原料库', value: '1988150263284953089' },
{ label: '脱脂原料库', value: '1988150545175736322' },
{ label: '酸连轧纵剪分条原料库', value: '1988150150521090049' },
{ label: '技术部', value: '2019583656787259393' },
{ label: '小钢卷库', value: '2019583325311414274' },
{ label: '废品库', value: '2019583429955104769' },
{ label: '退货库', value: '2019583137616310273' },
],
}
}
}
</script>
</script>

View File

@@ -1,47 +1,31 @@
<template>
<div>
<OutTemplate v-if="!loading" :baseQueryParams="baseQueryParams"
:warehouseOptions="warehouseOptions" :productionLine="productionLine" />
<el-empty v-else description="正在加载报表配置..." />
</div>
<ActionTemplate :actionType="actionType" :reportType="reportType" :productionLine="productionLine" :warehouseOptions="warehouseOptions" />
</template>
<script>
import OutTemplate from "@/views/wms/report/template/out.vue";
import { listReportConfig } from '@/api/wms/reportConfig.js'
import ActionTemplate from '@/views/wms/report/template/action.vue'
export default {
name: 'OutReport',
name: 'ComprehensiveReport',
components: {
OutTemplate,
ActionTemplate,
},
data() {
return {
loading: true,
baseQueryParams: {},
warehouseOptions: [],
productionLine: '',
}
},
mounted() {
this.getReportConfig()
},
methods: {
getReportConfig() {
this.loading = true
listReportConfig({
reportCode: 'acid'
}).then(res => {
console.log(res)
if (res.rows.length == 1) {
const config = JSON.parse(res.rows[0].configJson)
this.baseQueryParams = config.baseQueryParams
this.warehouseOptions = config.warehouseOptions
this.productionLine = config.productionLine
this.loading = false
}
})
actionType: '11,120',
reportType: 'out',
productionLine: '酸轧线',
warehouseOptions: [
{ label: '酸连轧成品库', value: '1988150099140866050' },
{ label: '镀锌原料库', value: '1988150263284953089' },
{ label: '脱脂原料库', value: '1988150545175736322' },
{ label: '酸连轧纵剪分条原料库', value: '1988150150521090049' },
{ label: '技术部', value: '2019583656787259393' },
{ label: '小钢卷库', value: '2019583325311414274' },
{ label: '废品库', value: '2019583429955104769' },
{ label: '退货库', value: '2019583137616310273' },
],
}
}
}
</script>
</script>

View File

@@ -1,51 +1,31 @@
<template>
<div>
<TeamTemplate v-if="!loading" :actionTypes="actionTypes" :actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams" :warehouseOptions="warehouseOptions" :productionLine="productionLine" />
<el-empty v-else description="正在加载报表配置..." />
</div>
<ActionTemplate :actionType="actionType" :reportType="reportType" :productionLine="productionLine" :warehouseOptions="warehouseOptions" />
</template>
<script>
import TeamTemplate from '@/views/wms/report/template/team.vue'
import { listReportConfig } from '@/api/wms/reportConfig.js'
import ActionTemplate from '@/views/wms/report/template/action.vue'
export default {
name: 'TeamReport',
name: 'ComprehensiveReport',
components: {
TeamTemplate,
ActionTemplate,
},
data() {
return {
loading: true,
actionTypes: [],
actionQueryParams: {},
baseQueryParams: {},
warehouseOptions: [],
productionLine: '',
}
},
mounted() {
this.getReportConfig()
},
methods: {
getReportConfig() {
this.loading = true
listReportConfig({
reportCode: 'acid'
}).then(res => {
console.log(res)
if (res.rows.length == 1) {
const config = JSON.parse(res.rows[0].configJson)
this.actionTypes = config.actionTypes
this.actionQueryParams = config.actionQueryParams
this.baseQueryParams = config.baseQueryParams
this.warehouseOptions = config.warehouseOptions
this.productionLine = config.productionLine
this.loading = false
}
})
actionType: '11,120',
reportType: 'team',
productionLine: '酸轧线',
warehouseOptions: [
{ label: '酸连轧成品库', value: '1988150099140866050' },
{ label: '镀锌原料库', value: '1988150263284953089' },
{ label: '脱脂原料库', value: '1988150545175736322' },
{ label: '酸连轧纵剪分条原料库', value: '1988150150521090049' },
{ label: '技术部', value: '2019583656787259393' },
{ label: '小钢卷库', value: '2019583325311414274' },
{ label: '废品库', value: '2019583429955104769' },
{ label: '退货库', value: '2019583137616310273' },
],
}
}
}
</script>
</script>

View File

@@ -1,51 +1,31 @@
<template>
<div>
<YearTemplate v-if="!loading" :actionTypes="actionTypes" :actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams" :warehouseOptions="warehouseOptions" :productionLine="productionLine" />
<el-empty v-else description="正在加载报表配置..." />
</div>
<ActionTemplate :actionType="actionType" :reportType="reportType" :productionLine="productionLine" :warehouseOptions="warehouseOptions" />
</template>
<script>
import YearTemplate from '@/views/wms/report/template/year.vue'
import { listReportConfig } from '@/api/wms/reportConfig.js'
import ActionTemplate from '@/views/wms/report/template/action.vue'
export default {
name: 'YearReport',
name: 'ComprehensiveReport',
components: {
YearTemplate,
ActionTemplate,
},
data() {
return {
loading: true,
actionTypes: [],
actionQueryParams: {},
baseQueryParams: {},
warehouseOptions: [],
productionLine: '',
}
},
mounted() {
this.getReportConfig()
},
methods: {
getReportConfig() {
this.loading = true
listReportConfig({
reportCode: 'acid'
}).then(res => {
console.log(res)
if (res.rows.length == 1) {
const config = JSON.parse(res.rows[0].configJson)
this.actionTypes = config.actionTypes
this.actionQueryParams = config.actionQueryParams
this.baseQueryParams = config.baseQueryParams
this.warehouseOptions = config.warehouseOptions
this.productionLine = config.productionLine
this.loading = false
}
})
actionType: '11,120',
reportType: 'year',
productionLine: '酸轧线',
warehouseOptions: [
{ label: '酸连轧成品库', value: '1988150099140866050' },
{ label: '镀锌原料库', value: '1988150263284953089' },
{ label: '脱脂原料库', value: '1988150545175736322' },
{ label: '酸连轧纵剪分条原料库', value: '1988150150521090049' },
{ label: '技术部', value: '2019583656787259393' },
{ label: '小钢卷库', value: '2019583325311414274' },
{ label: '废品库', value: '2019583429955104769' },
{ label: '退货库', value: '2019583137616310273' },
],
}
}
}
</script>
</script>

View File

@@ -0,0 +1,51 @@
<template>
<div>
<ComprehensiveTemplate v-if="!loading" :actionTypes="actionTypes" :actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams" :warehouseOptions="warehouseOptions" :productionLine="productionLine" />
<el-empty v-else description="正在加载报表配置..." />
</div>
</template>
<script>
import ComprehensiveTemplate from '@/views/wms/report/template/comprehensive.vue'
import { listReportConfig } from '@/api/wms/reportConfig.js'
export default {
name: 'ComprehensiveReport',
components: {
ComprehensiveTemplate,
},
data() {
return {
loading: true,
actionTypes: [],
actionQueryParams: {},
baseQueryParams: {},
warehouseOptions: [],
productionLine: '',
}
},
mounted() {
this.getReportConfig()
},
methods: {
getReportConfig() {
this.loading = true
listReportConfig({
reportCode: 'acid'
}).then(res => {
console.log(res)
if (res.rows.length == 1) {
const config = JSON.parse(res.rows[0].configJson)
this.actionTypes = config.actionTypes
this.actionQueryParams = config.actionQueryParams
this.baseQueryParams = config.baseQueryParams
this.warehouseOptions = config.warehouseOptions
this.productionLine = config.productionLine
this.loading = false
}
})
}
}
}
</script>

View File

@@ -0,0 +1,51 @@
<template>
<div>
<DayTemplate v-if="!loading" :actionTypes="actionTypes" :actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams" :warehouseOptions="warehouseOptions" :productionLine="productionLine" />
<el-empty v-else description="正在加载报表配置..." />
</div>
</template>
<script>
import DayTemplate from '@/views/wms/report/template/day.vue'
import { listReportConfig } from '@/api/wms/reportConfig.js'
export default {
name: 'DayReport',
components: {
DayTemplate,
},
data() {
return {
loading: true,
actionTypes: [],
actionQueryParams: {},
baseQueryParams: {},
warehouseOptions: [],
productionLine: '',
}
},
mounted() {
this.getReportConfig()
},
methods: {
getReportConfig() {
this.loading = true
listReportConfig({
reportCode: 'acid'
}).then(res => {
console.log(res)
if (res.rows.length == 1) {
const config = JSON.parse(res.rows[0].configJson)
this.actionTypes = config.actionTypes
this.actionQueryParams = config.actionQueryParams
this.baseQueryParams = config.baseQueryParams
this.warehouseOptions = config.warehouseOptions
this.productionLine = config.productionLine
this.loading = false
}
})
}
}
}
</script>

View File

@@ -0,0 +1,51 @@
<template>
<div>
<LossTemplate v-if="!loading" :actionTypes="actionTypes" :actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams" :warehouseOptions="warehouseOptions" :productionLine="productionLine" />
<el-empty v-else description="正在加载报表配置..." />
</div>
</template>
<script>
import LossTemplate from '@/views/wms/report/template/loss.vue'
import { listReportConfig } from '@/api/wms/reportConfig.js'
export default {
name: 'LossReport',
components: {
LossTemplate,
},
data() {
return {
loading: true,
actionTypes: [],
actionQueryParams: {},
baseQueryParams: {},
warehouseOptions: [],
productionLine: '',
}
},
mounted() {
this.getReportConfig()
},
methods: {
getReportConfig() {
this.loading = true
listReportConfig({
reportCode: 'acid'
}).then(res => {
console.log(res)
if (res.rows.length == 1) {
const config = JSON.parse(res.rows[0].configJson)
this.actionTypes = config.actionTypes
this.actionQueryParams = config.actionQueryParams
this.baseQueryParams = config.baseQueryParams
this.warehouseOptions = config.warehouseOptions
this.productionLine = config.productionLine
this.loading = false
}
})
}
}
}
</script>

View File

@@ -0,0 +1,51 @@
<template>
<div>
<MonthTemplate v-if="!loading" :actionTypes="actionTypes" :actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams" :warehouseOptions="warehouseOptions" :productionLine="productionLine" />
<el-empty v-else description="正在加载报表配置..." />
</div>
</template>
<script>
import MonthTemplate from '@/views/wms/report/template/month.vue'
import { listReportConfig } from '@/api/wms/reportConfig.js'
export default {
name: 'MonthReport',
components: {
MonthTemplate,
},
data() {
return {
loading: true,
actionTypes: [],
actionQueryParams: {},
baseQueryParams: {},
warehouseOptions: [],
productionLine: '',
}
},
mounted() {
this.getReportConfig()
},
methods: {
getReportConfig() {
this.loading = true
listReportConfig({
reportCode: 'acid'
}).then(res => {
console.log(res)
if (res.rows.length == 1) {
const config = JSON.parse(res.rows[0].configJson)
this.actionTypes = config.actionTypes
this.actionQueryParams = config.actionQueryParams
this.baseQueryParams = config.baseQueryParams
this.warehouseOptions = config.warehouseOptions
this.productionLine = config.productionLine
this.loading = false
}
})
}
}
}
</script>

View File

@@ -0,0 +1,47 @@
<template>
<div>
<OutTemplate v-if="!loading" :baseQueryParams="baseQueryParams"
:warehouseOptions="warehouseOptions" :productionLine="productionLine" />
<el-empty v-else description="正在加载报表配置..." />
</div>
</template>
<script>
import OutTemplate from "@/views/wms/report/template/out.vue";
import { listReportConfig } from '@/api/wms/reportConfig.js'
export default {
name: 'OutReport',
components: {
OutTemplate,
},
data() {
return {
loading: true,
baseQueryParams: {},
warehouseOptions: [],
productionLine: '',
}
},
mounted() {
this.getReportConfig()
},
methods: {
getReportConfig() {
this.loading = true
listReportConfig({
reportCode: 'acid'
}).then(res => {
console.log(res)
if (res.rows.length == 1) {
const config = JSON.parse(res.rows[0].configJson)
this.baseQueryParams = config.baseQueryParams
this.warehouseOptions = config.warehouseOptions
this.productionLine = config.productionLine
this.loading = false
}
})
}
}
}
</script>

View File

@@ -0,0 +1,51 @@
<template>
<div>
<TeamTemplate v-if="!loading" :actionTypes="actionTypes" :actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams" :warehouseOptions="warehouseOptions" :productionLine="productionLine" />
<el-empty v-else description="正在加载报表配置..." />
</div>
</template>
<script>
import TeamTemplate from '@/views/wms/report/template/team.vue'
import { listReportConfig } from '@/api/wms/reportConfig.js'
export default {
name: 'TeamReport',
components: {
TeamTemplate,
},
data() {
return {
loading: true,
actionTypes: [],
actionQueryParams: {},
baseQueryParams: {},
warehouseOptions: [],
productionLine: '',
}
},
mounted() {
this.getReportConfig()
},
methods: {
getReportConfig() {
this.loading = true
listReportConfig({
reportCode: 'acid'
}).then(res => {
console.log(res)
if (res.rows.length == 1) {
const config = JSON.parse(res.rows[0].configJson)
this.actionTypes = config.actionTypes
this.actionQueryParams = config.actionQueryParams
this.baseQueryParams = config.baseQueryParams
this.warehouseOptions = config.warehouseOptions
this.productionLine = config.productionLine
this.loading = false
}
})
}
}
}
</script>

View File

@@ -0,0 +1,51 @@
<template>
<div>
<YearTemplate v-if="!loading" :actionTypes="actionTypes" :actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams" :warehouseOptions="warehouseOptions" :productionLine="productionLine" />
<el-empty v-else description="正在加载报表配置..." />
</div>
</template>
<script>
import YearTemplate from '@/views/wms/report/template/year.vue'
import { listReportConfig } from '@/api/wms/reportConfig.js'
export default {
name: 'YearReport',
components: {
YearTemplate,
},
data() {
return {
loading: true,
actionTypes: [],
actionQueryParams: {},
baseQueryParams: {},
warehouseOptions: [],
productionLine: '',
}
},
mounted() {
this.getReportConfig()
},
methods: {
getReportConfig() {
this.loading = true
listReportConfig({
reportCode: 'acid'
}).then(res => {
console.log(res)
if (res.rows.length == 1) {
const config = JSON.parse(res.rows[0].configJson)
this.actionTypes = config.actionTypes
this.actionQueryParams = config.actionQueryParams
this.baseQueryParams = config.baseQueryParams
this.warehouseOptions = config.warehouseOptions
this.productionLine = config.productionLine
this.loading = false
}
})
}
}
}
</script>

View File

@@ -1,26 +1,30 @@
<template>
<ComprehensiveTemplate
:actionTypes="actionTypes"
:actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams"
:warehouseOptions="warehouseOptions"
:productionLine="productionLine"
/>
<ActionTemplate :actionType="actionType" :reportType="reportType" :productionLine="productionLine" :warehouseOptions="warehouseOptions" />
</template>
<script>
import ComprehensiveTemplate from '@/views/wms/report/template/comprehensive.vue'
import { zincConfig } from '@/views/wms/report/js/config.js'
import ActionTemplate from '@/views/wms/report/template/action.vue'
export default {
name: 'ComprehensiveReport',
components: {
ComprehensiveTemplate,
ActionTemplate,
},
data() {
return {
...zincConfig,
actionType: 501,
reportType: 'all',
productionLine: '镀锌线',
warehouseOptions: [
{ value: '1988150323162836993', label: '镀锌成品库' },
{ value: '1988150487185289217', label: '镀锌纵剪分条原料库' },
{ value: '2056545127927787522', label: '镀锌待打包' },
{ value: '2019583656787259393', label: '技术部' },
{ value: '2019583325311414274', label: '小钢卷库' },
{ value: '2019583429955104769', label: '废品库' },
{ value: '2019583137616310273', label: '退货库' },
],
}
}
}
</script>
</script>

View File

@@ -1,26 +1,30 @@
<template>
<DayTemplate
:actionTypes="actionTypes"
:actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams"
:warehouseOptions="warehouseOptions"
:productionLine="productionLine"
/>
<ActionTemplate :actionType="actionType" :reportType="reportType" :productionLine="productionLine" :warehouseOptions="warehouseOptions" />
</template>
<script>
import DayTemplate from '@/views/wms/report/template/day.vue'
import { zincConfig } from '@/views/wms/report/js/config.js'
import ActionTemplate from '@/views/wms/report/template/action.vue'
export default {
name: 'DayReport',
name: 'ComprehensiveReport',
components: {
DayTemplate,
ActionTemplate,
},
data() {
return {
...zincConfig,
actionType: 501,
reportType: 'day',
productionLine: '镀锌线',
warehouseOptions: [
{ value: '1988150323162836993', label: '镀锌成品库' },
{ value: '1988150487185289217', label: '镀锌纵剪分条原料库' },
{ value: '2056545127927787522', label: '镀锌待打包' },
{ value: '2019583656787259393', label: '技术部' },
{ value: '2019583325311414274', label: '小钢卷库' },
{ value: '2019583429955104769', label: '废品库' },
{ value: '2019583137616310273', label: '退货库' },
],
}
}
}
</script>
</script>

View File

@@ -1,26 +1,30 @@
<template>
<LossTemplate
:actionTypes="actionTypes"
:actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams"
:warehouseOptions="warehouseOptions"
:productionLine="productionLine"
></LossTemplate>
<ActionTemplate :actionType="actionType" :reportType="reportType" :productionLine="productionLine" :warehouseOptions="warehouseOptions" />
</template>
<script>
import LossTemplate from '@/views/wms/report/template/loss.vue'
import { zincConfig } from '@/views/wms/report/js/config.js'
import ActionTemplate from '@/views/wms/report/template/action.vue'
export default {
name: 'LossReport',
components: {
LossTemplate,
},
data() {
return {
...zincConfig,
}
export default {
name: 'ComprehensiveReport',
components: {
ActionTemplate,
},
data() {
return {
actionType: 501,
reportType: 'loss',
productionLine: '镀锌线',
warehouseOptions: [
{ value: '1988150323162836993', label: '镀锌成品库' },
{ value: '1988150487185289217', label: '镀锌纵剪分条原料库' },
{ value: '2056545127927787522', label: '镀锌待打包' },
{ value: '2019583656787259393', label: '技术部' },
{ value: '2019583325311414274', label: '小钢卷库' },
{ value: '2019583429955104769', label: '废品库' },
{ value: '2019583137616310273', label: '退货库' },
],
}
}
</script>
}
</script>

View File

@@ -1,26 +1,30 @@
<template>
<MonthTemplate
:actionTypes="actionTypes"
:actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams"
:warehouseOptions="warehouseOptions"
:productionLine="productionLine"
/>
<ActionTemplate :actionType="actionType" :reportType="reportType" :productionLine="productionLine" :warehouseOptions="warehouseOptions" />
</template>
<script>
import MonthTemplate from '@/views/wms/report/template/month.vue'
import { zincConfig } from '@/views/wms/report/js/config.js'
import ActionTemplate from '@/views/wms/report/template/action.vue'
export default {
name: 'MonthReport',
name: 'ComprehensiveReport',
components: {
MonthTemplate,
ActionTemplate,
},
data() {
return {
...zincConfig,
actionType: 501,
reportType: 'month',
productionLine: '镀锌线',
warehouseOptions: [
{ value: '1988150323162836993', label: '镀锌成品库' },
{ value: '1988150487185289217', label: '镀锌纵剪分条原料库' },
{ value: '2056545127927787522', label: '镀锌待打包' },
{ value: '2019583656787259393', label: '技术部' },
{ value: '2019583325311414274', label: '小钢卷库' },
{ value: '2019583429955104769', label: '废品库' },
{ value: '2019583137616310273', label: '退货库' },
],
}
}
}
</script>
</script>

View File

@@ -1,24 +1,30 @@
<template>
<OutTemplate
:baseQueryParams="baseQueryParams"
:warehouseOptions="warehouseOptions"
:productionLine="productionLine"
/>
<ActionTemplate :actionType="actionType" :reportType="reportType" :productionLine="productionLine" :warehouseOptions="warehouseOptions" />
</template>
<script>
import OutTemplate from "@/views/wms/report/template/out.vue";
import { zincConfig } from '@/views/wms/report/js/config.js'
import ActionTemplate from '@/views/wms/report/template/action.vue'
export default {
name: 'ZhaTemplate',
name: 'ComprehensiveReport',
components: {
OutTemplate,
ActionTemplate,
},
data() {
return {
...zincConfig,
actionType: 501,
reportType: 'out',
productionLine: '镀锌线',
warehouseOptions: [
{ value: '1988150323162836993', label: '镀锌成品库' },
{ value: '1988150487185289217', label: '镀锌纵剪分条原料库' },
{ value: '2056545127927787522', label: '镀锌待打包' },
{ value: '2019583656787259393', label: '技术部' },
{ value: '2019583325311414274', label: '小钢卷库' },
{ value: '2019583429955104769', label: '废品库' },
{ value: '2019583137616310273', label: '退货库' },
],
}
}
}
</script>
</script>

View File

@@ -1,26 +1,30 @@
<template>
<TeamTemplate
:actionTypes="actionTypes"
:actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams"
:warehouseOptions="warehouseOptions"
:productionLine="productionLine"
/>
<ActionTemplate :actionType="actionType" :reportType="reportType" :productionLine="productionLine" :warehouseOptions="warehouseOptions" />
</template>
<script>
import TeamTemplate from '@/views/wms/report/template/team.vue'
import { zincConfig } from '@/views/wms/report/js/config.js'
import ActionTemplate from '@/views/wms/report/template/action.vue'
export default {
name: 'TeamReport',
name: 'ComprehensiveReport',
components: {
TeamTemplate,
ActionTemplate,
},
data() {
return {
...zincConfig,
actionType: 501,
reportType: 'team',
productionLine: '镀锌线',
warehouseOptions: [
{ value: '1988150323162836993', label: '镀锌成品库' },
{ value: '1988150487185289217', label: '镀锌纵剪分条原料库' },
{ value: '2056545127927787522', label: '镀锌待打包' },
{ value: '2019583656787259393', label: '技术部' },
{ value: '2019583325311414274', label: '小钢卷库' },
{ value: '2019583429955104769', label: '废品库' },
{ value: '2019583137616310273', label: '退货库' },
],
}
}
}
</script>
</script>

View File

@@ -1,27 +1,30 @@
<template>
<YearTemplate
:actionTypes="actionTypes"
:actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams"
:warehouseOptions="warehouseOptions"
:productionLine="productionLine"
/>
<ActionTemplate :actionType="actionType" :reportType="reportType" :productionLine="productionLine" :warehouseOptions="warehouseOptions" />
</template>
<script>
import YearTemplate from '@/views/wms/report/template/year.vue'
import { zincConfig } from '@/views/wms/report/js/config.js'
import ActionTemplate from '@/views/wms/report/template/action.vue'
export default {
name: 'YearReport',
name: 'ComprehensiveReport',
components: {
YearTemplate,
ActionTemplate,
},
data() {
return {
...zincConfig,
actionType: 501,
reportType: 'year',
productionLine: '镀锌线',
warehouseOptions: [
{ value: '1988150323162836993', label: '镀锌成品库' },
{ value: '1988150487185289217', label: '镀锌纵剪分条原料库' },
{ value: '2056545127927787522', label: '镀锌待打包' },
{ value: '2019583656787259393', label: '技术部' },
{ value: '2019583325311414274', label: '小钢卷库' },
{ value: '2019583429955104769', label: '废品库' },
{ value: '2019583137616310273', label: '退货库' },
],
}
}
}
</script>
</script>

View File

@@ -0,0 +1,26 @@
<template>
<ComprehensiveTemplate
:actionTypes="actionTypes"
:actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams"
:warehouseOptions="warehouseOptions"
:productionLine="productionLine"
/>
</template>
<script>
import ComprehensiveTemplate from '@/views/wms/report/template/comprehensive.vue'
import { zincConfig } from '@/views/wms/report/js/config.js'
export default {
name: 'ComprehensiveReport',
components: {
ComprehensiveTemplate,
},
data() {
return {
...zincConfig,
}
}
}
</script>

View File

@@ -0,0 +1,26 @@
<template>
<DayTemplate
:actionTypes="actionTypes"
:actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams"
:warehouseOptions="warehouseOptions"
:productionLine="productionLine"
/>
</template>
<script>
import DayTemplate from '@/views/wms/report/template/day.vue'
import { zincConfig } from '@/views/wms/report/js/config.js'
export default {
name: 'DayReport',
components: {
DayTemplate,
},
data() {
return {
...zincConfig,
}
}
}
</script>

View File

@@ -0,0 +1,26 @@
<template>
<LossTemplate
:actionTypes="actionTypes"
:actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams"
:warehouseOptions="warehouseOptions"
:productionLine="productionLine"
></LossTemplate>
</template>
<script>
import LossTemplate from '@/views/wms/report/template/loss.vue'
import { zincConfig } from '@/views/wms/report/js/config.js'
export default {
name: 'LossReport',
components: {
LossTemplate,
},
data() {
return {
...zincConfig,
}
}
}
</script>

View File

@@ -0,0 +1,26 @@
<template>
<MonthTemplate
:actionTypes="actionTypes"
:actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams"
:warehouseOptions="warehouseOptions"
:productionLine="productionLine"
/>
</template>
<script>
import MonthTemplate from '@/views/wms/report/template/month.vue'
import { zincConfig } from '@/views/wms/report/js/config.js'
export default {
name: 'MonthReport',
components: {
MonthTemplate,
},
data() {
return {
...zincConfig,
}
}
}
</script>

View File

@@ -0,0 +1,24 @@
<template>
<OutTemplate
:baseQueryParams="baseQueryParams"
:warehouseOptions="warehouseOptions"
:productionLine="productionLine"
/>
</template>
<script>
import OutTemplate from "@/views/wms/report/template/out.vue";
import { zincConfig } from '@/views/wms/report/js/config.js'
export default {
name: 'ZhaTemplate',
components: {
OutTemplate,
},
data() {
return {
...zincConfig,
}
}
}
</script>

View File

@@ -0,0 +1,26 @@
<template>
<TeamTemplate
:actionTypes="actionTypes"
:actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams"
:warehouseOptions="warehouseOptions"
:productionLine="productionLine"
/>
</template>
<script>
import TeamTemplate from '@/views/wms/report/template/team.vue'
import { zincConfig } from '@/views/wms/report/js/config.js'
export default {
name: 'TeamReport',
components: {
TeamTemplate,
},
data() {
return {
...zincConfig,
}
}
}
</script>

View File

@@ -0,0 +1,27 @@
<template>
<YearTemplate
:actionTypes="actionTypes"
:actionQueryParams="actionQueryParams"
:baseQueryParams="baseQueryParams"
:warehouseOptions="warehouseOptions"
:productionLine="productionLine"
/>
</template>
<script>
import YearTemplate from '@/views/wms/report/template/year.vue'
import { zincConfig } from '@/views/wms/report/js/config.js'
export default {
name: 'YearReport',
components: {
YearTemplate,
},
data() {
return {
...zincConfig,
}
}
}
</script>