tft-fe/src/views/reportManagement/finalInspectionDataReport/thicknessReport.vue
2023-06-28 17:05:34 +08:00

427 lines
12 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="thicknessReport">
<ul class="baseMsg">
<li><span>厚度检查机报表(此表接口还未调试)</span></li>
<li :title="glassId"><span>玻璃ID:</span>{{ glassId }}</li>
<li><span>检测时间:</span>2022.12.24 14:45:34</li>
<li><span>研磨类型:</span>4ABC</li>
</ul>
<base-table
:table-props="tableProps"
:table-data="tableDD"
:max-height="tableH"
:show-header="false"
/>
<button @click="exportData">导出,开发自测用后续会删除</button>
</div>
</template>
<script>
import { tableHeight } from '@/utils'
import * as XLSX from 'xlsx/xlsx.mjs'
import FileSaver from 'file-saver'
let tableProps = []
for (let j = 0; j < 21; j++) {
let obj = {}
obj.prop = 'a' + (j + 1)
obj.label = 'a' + (j + 1)
obj.minWidth = 75
tableProps.push(obj)
}
export default {
name: 'thickReport',
data() {
return {
tableProps,
tableH: tableHeight(292),
exportDD: [],
tableDD: [],
glassId: ''
}
},
mounted() {
window.addEventListener('resize', () => {
this.tableH = tableHeight(292)
})
this.getList()
},
props: {
tableData: {
type: Array,
required: true,
default: () => {
return []
}
}
},
methods: {
getList() {
let exportD = Array(7)
.fill()
.map(() => Array(21))
let tableD = []
for (let j = 0; j < 7; j++) {
let obj = {
a1: '',
a2: '',
a3: '',
a4: '',
a5: '',
a6: '',
a7: '',
a8: '',
a9: '',
a10: '',
a11: '',
a12: '',
a13: '',
a14: '',
a15: '',
a16: '',
a17: '',
a18: '',
a19: '',
a20: '',
a21: ''
}
tableD.push(obj)
}
let mockData = [
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
},
{
glassId: '1212121212',
testTime: '2022-06-24T16:59:55',
grindType: '2AB',
thickOne: '502.457',
thickTwo: '503.226',
thickThree: '503.203',
thickFour: '502.220',
thickFive: '503.411',
thickSix: '500.904',
thickSeven: '499.810'
}
]
this.glassId = mockData[0].glassId
exportD.unshift(Array.from({ length: 21 }, () => null))
exportD[0][0] = '厚度检查机报表'
exportD[0][6] = '玻璃ID:'
exportD[0][8] = mockData[0].glassId
exportD[0][11] = '检测时间:'
exportD[0][13] = mockData[0].testTime
exportD[0][16] = '研磨类型:'
exportD[0][18] = mockData[0].grindType
for (let i = 0; i < mockData.length; i++) {
exportD[1][i] = mockData[i].thickOne
exportD[2][i] = mockData[i].thickTwo
exportD[3][i] = mockData[i].thickThree
exportD[4][i] = mockData[i].thickFour
exportD[5][i] = mockData[i].thickFive
exportD[6][i] = mockData[i].thickSix
exportD[7][i] = mockData[i].thickSeven
tableD[0]['a' + (i + 1)] = mockData[i].thickOne
tableD[1]['a' + (i + 1)] = mockData[i].thickTwo
tableD[2]['a' + (i + 1)] = mockData[i].thickThree
tableD[3]['a' + (i + 1)] = mockData[i].thickFour
tableD[4]['a' + (i + 1)] = mockData[i].thickFive
tableD[5]['a' + (i + 1)] = mockData[i].thickSix
tableD[6]['a' + (i + 1)] = mockData[i].thickSeven
}
console.log(exportD)
console.log(tableD)
this.exportDD = exportD
this.tableDD = tableD
},
exportData() {
const filename = '厚度表.xlsx'
const ws_name = 'Sheet1'
const wb = XLSX.utils.book_new()
const ws = XLSX.utils.aoa_to_sheet(this.exportDD)
XLSX.utils.book_append_sheet(wb, ws, ws_name)
ws['!merges'] = [
{ s: { r: 0, c: 0 }, e: { r: 0, c: 5 } },
{ s: { r: 0, c: 6 }, e: { r: 0, c: 7 } },
{ s: { r: 0, c: 8 }, e: { r: 0, c: 10 } },
{ s: { r: 0, c: 11 }, e: { r: 0, c: 12 } },
{ s: { r: 0, c: 13 }, e: { r: 0, c: 15 } },
{ s: { r: 0, c: 16 }, e: { r: 0, c: 17 } },
{ s: { r: 0, c: 18 }, e: { r: 0, c: 20 } }
]
let wbout = XLSX.write(wb, {
bookType: 'xlsx',
bookSST: false,
type: 'array'
})
FileSaver.saveAs(
new Blob([wbout], {
type: 'application/octet-stream'
}),
filename
)
}
}
}
</script>
<style lang="scss">
.thicknessReport {
.baseMsg {
font-size: 14px;
height: 40px;
line-height: 40px;
display: flex;
border: 1px solid #e8e8e8;
border-radius: 4px;
margin-bottom: 20px;
li {
width: 25%;
text-align: center;
padding: 0 10px;
border-right: 1px solid #e8e8e8;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
span {
font-weight: 600;
}
}
}
}
</style>