feat(质量报表): 添加涂布实验物性报表

This commit is contained in:
关博 2025-03-28 09:34:49 +08:00
parent e97d17877b
commit 15622a85ec
2 changed files with 350 additions and 0 deletions

View File

@ -0,0 +1,10 @@
import request from '@/router/axios'
// 分页查询涂布实验物性报表数据
export function pageCoatPhysicalPropReport(query) {
return request({
url: '/iep-qms/qms-report/pageCoatPhysicalPropReport',
method: 'get',
params: query
})
}

View File

@ -0,0 +1,340 @@
<template>
<div class="execution">
<!-- 物料出框 -->
<input-select-dialog
:modal-obj="itemDialog"
:modal-show.sync="itemDialog.visible"
:modal-fetch-fun="itemDialog.fetchFun"
@inputDialogSelected="(row) => {dialogSelected(row, 'item')}"
></input-select-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="formObj" :model="formObj" label-width="120px">
<el-row :gutter="24">
<el-col :span="5">
<el-form-item label="站点:" prop="site">
<el-input placeHolder="站点" v-model="site" :disabled="true"/>
</el-form-item>
</el-col>
<!-- 物料 -->
<el-col :span="5">
<el-form-item label="物料:" prop="item">
<el-input placeHolder="请选择物料" v-model="formObj.item">
<i slot="suffix" class="el-input__icon el-icon-copy-document" @click.stop="openDialog('item')"/>
</el-input>
</el-form-item>
</el-col>
<el-col :span="5.5">
<el-form-item label="开始时间:" prop="startTime">
<el-date-picker
style="width: 100%"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
v-model="formObj.startTime"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="5.5">
<el-form-item label="总体判定结果:" prop="judgeResult">
<el-select v-model="formObj.judgeResult" clearable>
<el-option v-for="item in inspectLevelList" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="5">
<el-form-item label="卷号:" prop="judgeResult">
<el-input v-model="formObj.lotNo" clearable/>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="检验员:" prop="judgeUser">
<el-input v-model="formObj.judgeUser" clearable/>
</el-form-item>
</el-col>
<el-col :span="5.5">
<el-form-item label="结束时间:" prop="endTime">
<el-date-picker
style="width: 100%"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
v-model="formObj.endTime"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="5.5">
<el-form-item label="状态:" prop="status">
<el-select v-model="formObj.status" clearable>
<el-option v-for="item in inspectJobStatusList" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
</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="tableList" border style="width: 100%" height="550" highlight-current-row>
<el-table-column align="center" prop="judgeDateTime" label="日期" fixed="left" min-width="160" show-overflow-tooltip/>
<el-table-column align="center" prop="item" label="编码" fixed="left" show-overflow-tooltip/>
<el-table-column align="center" prop="itemDesc" label="品名" fixed="left" min-width="180" show-overflow-tooltip/>
<el-table-column align="center" prop="lotNo" label="卷号" fixed="left" min-width="140" show-overflow-tooltip/>
<el-table-column align="center" prop="judgeUser" label="检验员" fixed="left" show-overflow-tooltip/>
<el-table-column align="center" prop="status" label="状态" fixed="left" show-overflow-tooltip/>
<el-table-column align="center" prop="judgeResult" label="总体判定结果" min-width="100" fixed="left" show-overflow-tooltip/>
<el-table-column align="center" prop="p20008" label="颜色比对" show-overflow-tooltip>
<template slot-scope="scope">
<span v-html="scope.row.p20008"/>
</template>
</el-table-column>
<el-table-column align="center" prop="p20009" label="L" show-overflow-tooltip>
<template slot-scope="scope">
<span v-html="scope.row.p20009"/>
</template>
</el-table-column>
<el-table-column align="center" prop="p20010" label="a" show-overflow-tooltip>
<template slot-scope="scope">
<span v-html="scope.row.p20010"/>
</template>
</el-table-column>
<el-table-column align="center" prop="p20011" label="b" show-overflow-tooltip>
<template slot-scope="scope">
<span v-html="scope.row.p20011"/>
</template>
</el-table-column>
<el-table-column align="center" prop="p20012" label="ΔE" show-overflow-tooltip>
<template slot-scope="scope">
<span v-html="scope.row.p20012"/>
</template>
</el-table-column>
<el-table-column align="center" prop="p20013" label="VLT" show-overflow-tooltip>
<template slot-scope="scope">
<span v-html="scope.row.p20013"/>
</template>
</el-table-column>
<el-table-column align="center" prop="p20014" label="UVR" show-overflow-tooltip>
<template slot-scope="scope">
<span v-html="scope.row.p20014"/>
</template>
</el-table-column>
<el-table-column align="center" prop="p20015" label="IRR(940)" show-overflow-tooltip>
<template slot-scope="scope">
<span v-html="scope.row.p20015"/>
</template>
</el-table-column>
<el-table-column align="center" prop="p20016" label="IRR(1400)" min-width="90" show-overflow-tooltip>
<template slot-scope="scope">
<span v-html="scope.row.p20016"/>
</template>
</el-table-column>
<el-table-column align="center" prop="p20017" label="雾度H" show-overflow-tooltip>
<template slot-scope="scope">
<span v-html="scope.row.p20017"/>
</template>
</el-table-column>
<el-table-column align="center" prop="p20019" label="热收缩率MD" min-width="100" show-overflow-tooltip>
<template slot-scope="scope">
<span v-html="scope.row.p20019"/>
</template>
</el-table-column>
<el-table-column align="center" prop="p20020" label="热收缩率TD" min-width="100" show-overflow-tooltip>
<template slot-scope="scope">
<span v-html="scope.row.p20020"/>
</template>
</el-table-column>
<el-table-column align="center" prop="p20072" label="附着力强度" min-width="90" show-overflow-tooltip>
<template slot-scope="scope">
<span v-html="scope.row.p20072"/>
</template>
</el-table-column>
<el-table-column align="center" prop="p20073" label="层间剥离力" min-width="90" show-overflow-tooltip>
<template slot-scope="scope">
<span v-html="scope.row.p20073"/>
</template>
</el-table-column>
<el-table-column align="center" prop="p20074" label="安装胶剥离力" min-width="100" show-overflow-tooltip>
<template slot-scope="scope">
<span v-html="scope.row.p20074"/>
</template>
</el-table-column>
<el-table-column align="center" prop="p20075" label="外反射率" show-overflow-tooltip>
<template slot-scope="scope">
<span v-html="scope.row.p20075"/>
</template>
</el-table-column>
<el-table-column align="center" prop="p20076" label="内反射率" show-overflow-tooltip>
<template slot-scope="scope">
<span v-html="scope.row.p20076"/>
</template>
</el-table-column>
<el-table-column align="center" prop="p20079" 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="page.current"
:page-sizes="[10, 20, 50, 100, 200]"
:page-size="page.size"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total">
</el-pagination>
</div>
</el-tab-pane>
</el-tabs>
</basic-container>
</div>
</template>
<script>
import {fetchList as fetchItemList} from '@/api/mes/prd/item';
import {hideLoading, showLoading} from '@/const/loading';
import {fetchItemList as fetchDictList} from "@/api/admin/dict";
import {mapGetters} from 'vuex';
import {getStore} from "@/util/store";
import {pageCoatPhysicalPropReport} from "@/api/pms/physical-coat-exper-report";
export default {
data() {
return {
tabActiveName: "main",
formObj: {
item: "",
startTime: "",
endTime: "",
lotNo: "",
judgeUser: "",
judgeResult: "",
status: ""
},
tableList: [],
site: getStore({name: 'tenantId'}),
itemDialog: {
callBackKey: "item",
regex: " ",
condition: "item",
tableColumn: [
{prop: "item", label: "物料"},
{prop: "description", label: "描述"},
],
visible: false,
fetchFun: fetchItemList,
},
page: {
total: 0,
current: 1,
size: 20
},
inspectLevelList:[],
inspectJobStatusList:[],
};
},
created() {
this.getDataDictionary("INSPEC_LEVEL", "inspectLevelList"); // 总体判定结果
this.getDataDictionary("inspec_job_status", "inspectJobStatusList"); // 状态
},
computed: {
...mapGetters(['permissions']),
permissionList() {
return {};
}
},
methods: {
// 获取数据字典
getDataDictionary(dictType, list) {
fetchDictList({
current: "1",
size: "1000",
dictType: dictType,
}).then((response) => {
this[list] = response.data.data.records
});
},
// 弹出框通用选择
dialogSelected(row, type) {
switch (type) {
case 'item':
this.formObj.item = row.item;
break;
}
},
// 弹出框通用打开
openDialog(type) {
switch (type) {
case 'item':
this.itemDialog.visible = true;
break;
}
},
// 页面大小改变
handleSizeChange(val) {
this.page.size = val;
this.page.current = 1;
this.doRetrieve();
},
//页面切换
handleCurrentChange(val) {
this.page.current = val;
this.doRetrieve();
},
// 【检索】按钮
doRetrieve(flag) {
let me = this;
if (flag) {
me.page.current = 1;
}
showLoading();
// 列表查询
pageCoatPhysicalPropReport(Object.assign({
current: me.page.currentPage,
size: me.page.pageSize,
site: this.site,
}, this.formObj)).then(response => {
if (!response.data.data || response.data.data.length === 0) {
this.$message.error('检索无数据');
this.doClear();
} else {
let data = response.data.data;
me.tableList =data .records;
me.page.total = data.total;
me.page.current = data.current;
}
}).finally(() => {
hideLoading();
});
},
// 【清除】按钮
doClear() {
let me = this;
me.formObj = {};
},
// 【导出】按钮
doExport() {
let me = this;
this.downBlobFile("/iep-qms/qms-report/tablePageExport", me.formObj, "涂布实验物性报表.xlsx");
},
}
};
</script>
<style>
</style>