feat(数据溯源报表): 添加数据溯源报表

This commit is contained in:
关博 2025-04-01 17:20:24 +08:00
parent 9bf22d4e90
commit 6f94d4c200
2 changed files with 381 additions and 0 deletions

View File

@ -0,0 +1,28 @@
import request from '@/router/axios'
// 分页查询 数据溯源一级 报表数据
export function pageDataTracingOneReport(query) {
return request({
url: '/iep-qms/qms-report/pageDataTracingOneReport',
method: 'get',
params: query
})
}
// 查询 数据溯源二级 报表数据
export function pageDataTracingTwoReport(query) {
return request({
url: '/iep-qms/qms-report/pageDataTracingTwoReport',
method: 'get',
params: query
})
}
// 查询 数据溯源三级 报表数据
export function pageDataTracingThreeReport(query) {
return request({
url: '/iep-qms/qms-report/pageDataTracingThreeReport',
method: 'get',
params: query
})
}

View File

@ -0,0 +1,353 @@
<template>
<div class="execution">
<!-- 三级弹出框 -->
<el-dialog title="详细信息" :visible.sync="threeFormObj.threeDialogVisible" width="70%">
<!-- 按钮 -->
<c-top-bar :offset="50">
<el-button type="text" icon="el-icon-document" disabled>修复涂料型号:{{threeFormObj.repairCode}}</el-button>
<el-divider direction="vertical"></el-divider>
<el-button type="text" icon="el-icon-document" disabled>修复层厚度:{{threeFormObj.repairThickness}}</el-button>
<el-divider direction="vertical"></el-divider>
<el-button type="text" icon="el-icon-document" disabled>修复涂料批号:{{threeFormObj.repairBatch}}</el-button>
<el-divider direction="vertical"></el-divider>
<el-button type="text" icon="el-icon-document" disabled>保护膜型号:{{threeFormObj.protectCode}}</el-button>
<el-divider direction="vertical"></el-divider>
<el-button type="text" icon="el-icon-document" disabled>保护膜批号:{{threeFormObj.protectBatch}}</el-button>
<el-divider direction="vertical"></el-divider>
<el-button type="text" icon="el-icon-document" disabled>胶水型号:{{threeFormObj.jlueCode}}</el-button>
<el-divider direction="vertical"></el-divider>
<el-button type="text" icon="el-icon-document" disabled>胶水批号:{{threeFormObj.jlueBatch}}</el-button>
<el-divider direction="vertical"></el-divider>
<el-button type="text" icon="el-icon-document" disabled>胶层厚度:{{threeFormObj.jlueThickness}}</el-button>
<el-divider direction="vertical"></el-divider>
<el-button type="text" icon="el-icon-document" disabled>底膜型号:{{threeFormObj.dimoCode}}</el-button>
<el-divider direction="vertical"></el-divider>
<el-button type="text" icon="el-icon-document" disabled>底膜批号:{{threeFormObj.dimoBatch}}</el-button>
<el-divider direction="vertical"></el-divider>
<el-button type="text" icon="el-icon-document" disabled>原膜批号:{{threeFormObj.yuanCode}}</el-button>
<el-divider direction="vertical"></el-divider>
<el-button type="text" icon="el-icon-document" disabled>原膜批号:{{threeFormObj.yuanBatch}}</el-button>
<el-divider direction="vertical"></el-divider>
<el-button type="text" icon="el-icon-document" @click="doThreeExport">导出</el-button>
<el-divider style="margin-top: 0;"></el-divider>
</c-top-bar>
<!-- 表单 -->
<el-form ref="threeFormObj" :model="threeFormObj" label-width="120px">
<el-row :gutter="24">
<el-col :span="24">
<el-table size="mini" :data="threeFormObj.threeTableList" border style="width: 100%" height="550px" highlight-current-row>
<el-table-column align="center" prop="lxmCode" label="离型膜型号" show-overflow-tooltip/>
<el-table-column align="center" prop="lxmBatch" label="离型膜批号" show-overflow-tooltip/>
<el-table-column align="center" prop="tpuCode" label="TPU粒子型号" show-overflow-tooltip/>
<el-table-column align="center" prop="tpuBatch" label="TPU粒子批号" show-overflow-tooltip/>
<el-table-column align="center" prop="tpumCode" label="TPU功能母粒型号" show-overflow-tooltip/>
<el-table-column align="center" prop="tpumBatch" label="TPU功能母粒批号" show-overflow-tooltip/>
</el-table>
</el-col>
</el-row>
</el-form>
</el-dialog>
<!-- 二级弹出框 -->
<el-dialog title="详细信息" :visible.sync="twoFormObj.twoDialogVisible" width="70%">
<!-- 按钮 -->
<c-top-bar :offset="50">
<el-button type="text" icon="el-icon-document" disabled>小卷产品型号:{{twoFormObj.itemDescSmall}}</el-button>
<el-divider direction="vertical"/>
<el-button type="text" icon="el-icon-document" disabled>小卷产品批号:{{twoFormObj.inventoryId}}</el-button>
<el-divider direction="vertical"/>
<el-button type="text" icon="el-icon-document" disabled>大卷产品型号:{{twoFormObj.itemDescBig}}</el-button>
<el-divider direction="vertical"/>
<el-button type="text" icon="el-icon-document" disabled>大卷产品批号:{{twoFormObj.materialLot}}</el-button>
</c-top-bar>
<c-top-bar :offset="50">
<el-button type="text" icon="el-icon-export" @click="doTwoExport">导出</el-button>
</c-top-bar>
<!-- 表单 -->
<el-form ref="twoFormObj" :model="twoFormObj" label-width="80px">
<el-row :gutter="24">
<el-col :span="24">
<el-table size="mini" :data="twoFormObj.twoTableList" border style="width: 100%" height="550px" @row-click="handleTwoRowClick" highlight-current-row>
<el-table-column align="center" prop="repairCode" label="修复涂料型号" show-overflow-tooltip/>
<el-table-column align="center" prop="repairThickness" label="修复层厚度" show-overflow-tooltip/>
<el-table-column align="center" prop="repairBatch" label="修复涂料批号" show-overflow-tooltip/>
<el-table-column align="center" prop="protectCode" label="保护膜型号" show-overflow-tooltip/>
<el-table-column align="center" prop="protectBatch" label="保护膜批号" show-overflow-tooltip/>
<el-table-column align="center" prop="jlueCode" label="胶水型号" show-overflow-tooltip/>
<el-table-column align="center" prop="jlueBatch" label="胶层批号" show-overflow-tooltip/>
<el-table-column align="center" prop="jlueThickness" label="胶层厚度" show-overflow-tooltip/>
<el-table-column align="center" prop="dimoCode" label="底膜型号" show-overflow-tooltip/>
<el-table-column align="center" prop="dimoBatch" label="底膜批号" show-overflow-tooltip/>
<el-table-column align="center" prop="yuanCode" label="原膜型号" show-overflow-tooltip/>
<el-table-column align="center" prop="yuanBatch" label="原膜批号" show-overflow-tooltip/>
</el-table>
</el-col>
</el-row>
</el-form>
</el-dialog>
<!-- 一级界面 -->
<basic-container style="margin-top: -20px">
<!-- 按钮 -->
<c-top-bar :offset="50">
<el-button type="text" icon="el-icon-search" @click="doRetrieve(true)">检索</el-button>
<el-divider direction="vertical"/>
<el-button type="text" icon="el-icon-circle-close" @click="doClear()">清除</el-button>
<el-divider direction="vertical"/>
<el-button type="text" icon="el-icon-document" @click="doExport">导出</el-button>
</c-top-bar>
<!-- 搜索框 -->
<el-form ref="mainFormObj" :model="mainFormObj" label-width="120px">
<el-row :gutter="24">
<!-- 站点 -->
<el-col :span="6">
<el-form-item label="站点:" prop="site">
<el-input placeHolder="站点" v-model="site" :disabled="true"/>
</el-form-item>
</el-col>
<!-- 批次 -->
<el-col :span="6">
<el-form-item label="批次:" prop="lotNo" >
<el-input placeHolder="请输入批次" v-model="mainFormObj.lotNo"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- 表格 -->
<el-tabs v-model="tabActiveName">
<el-tab-pane label="查询结果" name="main">
<el-table size="mini" :data="mainFormObj.mainTableList" border style="width: 100%" height="550" @row-click="handleMainRowClick" highlight-current-row>
<el-table-column align="center" prop="itemDescSmall" label="小卷产品型号" show-overflow-tooltip/>
<el-table-column align="center" prop="inventoryId" label="小卷产品批号" show-overflow-tooltip/>
<el-table-column align="center" prop="materialLot" label="大卷产品型号" show-overflow-tooltip/>
<el-table-column align="center" prop="itemDescBig" label="大卷产品批号" show-overflow-tooltip/>
</el-table>
<div style="width: 100%;display: flex;flex-direction: column;align-items: center;justify-content: center;">
<el-pagination @current-change="handleCurrentChange"
@size-change="handleSizeChange"
:current-page.sync="mainFormObj.mainPage.current"
:page-sizes="[10, 20, 50, 100, 200]"
:page-size="mainFormObj.mainPage.size"
layout="total, sizes, prev, pager, next, jumper"
:total="mainFormObj.mainPage.total">
</el-pagination>
</div>
</el-tab-pane>
</el-tabs>
</basic-container>
</div>
</template>
<script>
import {hideLoading, showLoading} from '@/const/loading';
import {mapGetters} from 'vuex';
import {getStore} from "@/util/store";
import {
pageDataTracingOneReport,
pageDataTracingThreeReport,
pageDataTracingTwoReport
} from "@/api/qms/data-tracing-report";
export default {
data() {
return {
tabActiveName: "main",
site: getStore({name: 'tenantId'}),
// 一级界面 搜索框和表格定义
mainFormObj: {
lotNo: '',
mainTableList: [],
mainPage: {
total: 0,
current: 1,
size: 20
},
},
// 二级界面 搜索框和表格定义
twoFormObj: {
itemDescSmall : '',
inventoryId: '',
materialLot: '',
itemDescBig: '',
twoTableList: [],
twoDialogVisible: false,
},
// 三级界面 搜索框和表格定义
threeFormObj: {
repairCode:'',
repairThickness: '',
repairBatch: '',
protectCode: '',
protectBatch: '',
jlueCode: '',
jlueBatch: '',
jlueThickness: '',
dimoCode: '',
dimoBatch: '',
yuanCode: '',
yuanBatch: '',
threeTableList: [],
threeDialogVisible: false,
},
};
},
created() {},
computed: {
...mapGetters(['permissions']),
permissionList() {
return {};
}
},
methods: {
// 三级界面-检索
doThreeRetrieve() {
let me = this;
let obj = {
lotNo: me.threeFormObj.yuanBatch,
};
showLoading();
pageDataTracingThreeReport(obj).then(response => {
if (!response.data.data || response.data.data.length === 0) {
this.$message.error(`当前原膜${me.threeFormObj.yuanBatch}无产出及消耗记录!`);
this.doClear();
} else {
me.threeFormObj.threeTableList = response.data.data;
}
}).finally(() => {
hideLoading();
});
},
// 三级界面-导出
doThreeExport() {
let me = this;
let search = {
site: me.site,
lotNo: me.threeFormObj.yuanBatch,
};
this.downBlobFile("/iep-qms/qms-report/dataTracingThreeReport/tablePageThreeExport", search, "数据溯源报表3.xlsx");
},
// 二级界面-检索
doTwoRetrieve() {
let me = this;
let obj = {
lotNo: me.twoFormObj.materialLot,
};
showLoading();
pageDataTracingTwoReport(obj).then(response => {
if (!response.data.data || response.data.data.length === 0) {
this.$message.error(`当前涂布大卷${me.twoFormObj.materialLot}无产出及消耗记录!`);
this.twoFormObj.twoDialogVisible = false;
this.doClear();
} else {
me.twoFormObj.twoTableList = response.data.data;
}
}).finally(() => {
hideLoading();
});
},
// 二级界面-单击事件
handleTwoRowClick(row) {
this.threeFormObj.repairCode = row.repairCode
this.threeFormObj.repairThickness = row.repairThickness;
this.threeFormObj.repairBatch = row.repairBatch;
this.threeFormObj.protectCode = row.protectCode;
this.threeFormObj.protectBatch = row.protectBatch;
this.threeFormObj.jlueCode = row.jlueCode;
this.threeFormObj.jlueBatch = row.jlueBatch;
this.threeFormObj.jlueThickness = row.jlueThickness;
this.threeFormObj.dimoCode = row.dimoCode;
this.threeFormObj.dimoBatch = row.dimoBatch;
this.threeFormObj.dimoCode = row.dimoCode;
this.threeFormObj.yuanCode = row.yuanCode;
this.threeFormObj.yuanBatch = row.yuanBatch;
this.threeFormObj.threeTableList = [];
this.threeFormObj.threeDialogVisible = true;
this.doThreeRetrieve();
},
// 二级界面-导出
doTwoExport() {
let me = this;
let search = {
site: me.site,
lotNo: me.twoFormObj.materialLot,
};
this.downBlobFile("/iep-qms/qms-report/dataTracingTwoReport/tablePageTwoExport", search, "数据溯源报表2.xlsx");
},
// 主界面-检索
doRetrieve(flag) {
let me = this;
if (flag) {
me.mainFormObj.mainPage.current = 1;
}
let obj = {
lotNo: this.mainFormObj.lotNo,
};
showLoading();
pageDataTracingOneReport(Object.assign({
current: me.mainFormObj.mainPage.current,
size: me.mainFormObj.mainPage.size,
},obj)).then(response => {
if (!response.data.data || response.data.data.length === 0) {
this.$message.error('检索无数据');
this.doClear();
} else {
let data = response.data.data;
me.mainFormObj.mainTableList = data.records;
me.mainFormObj.mainPage.total = data.total;
me.mainFormObj.mainPage.current = data.current;
}
}).finally(() => {
hideLoading();
});
},
// 主界面-页面大小改变
handleSizeChange(val) {
this.mainFormObj.mainPage.size = val;
this.mainFormObj.mainPage.current = 1;
this.doRetrieve();
},
// 主界面-页面切换
handleCurrentChange(val) {
this.mainFormObj.mainPage.current = val;
this.doRetrieve();
},
// 主界面-单击事件
handleMainRowClick(row) {
this.twoFormObj.itemDescSmall = row.itemDescSmall;
this.twoFormObj.inventoryId = row.inventoryId;
this.twoFormObj.materialLot = row.materialLot;
this.twoFormObj.itemDescBig = row.itemDescBig;
this.twoFormObj.twoTableList = [];
this.twoFormObj.twoDialogVisible = true;
this.doTwoRetrieve();
},
// 主界面-清除
doClear() {
let me = this;
me.mainFormObj.lotNo = ''
me.mainFormObj.mainTableList = []
this.mainFormObj.mainPage = {
total: 0,
current: 1,
size: 20
}
// 初始化界面
this.doRetrieve();
},
// 主界面-导出
doExport() {
let me = this;
let search = {
site: me.site,
lotNo: this.mainFormObj.lotNo,
};
this.downBlobFile("/iep-qms/qms-report/dataTracingOneReport/tablePageOneExport", search, "数据溯源报表1.xlsx");
},
}
};
</script>
<style>
</style>