月度报表导出

Signed-off-by: Yangwl <1726150332@qq.com>
master
Yangwl 4 weeks ago
parent 7ee24d379c
commit 4f63402e8e

@ -43,7 +43,7 @@
"echarts": "5.4.0", "echarts": "5.4.0",
"echarts-gl": "^2.0.9", "echarts-gl": "^2.0.9",
"element-ui": "2.15.12", "element-ui": "2.15.12",
"file-saver": "2.0.5", "file-saver": "^2.0.5",
"fuse.js": "6.4.3", "fuse.js": "6.4.3",
"highlight.js": "9.18.5", "highlight.js": "9.18.5",
"js-beautify": "1.13.0", "js-beautify": "1.13.0",
@ -69,7 +69,7 @@
"vue-seamless-scroll": "^1.1.23", "vue-seamless-scroll": "^1.1.23",
"vuedraggable": "2.24.3", "vuedraggable": "2.24.3",
"vuex": "3.6.0", "vuex": "3.6.0",
"xlsx": "^0.17.0" "xlsx": "^0.17.5"
}, },
"devDependencies": { "devDependencies": {
"@vue/cli-plugin-babel": "4.4.6", "@vue/cli-plugin-babel": "4.4.6",

@ -13,22 +13,23 @@
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <!-- <el-row :gutter="10" class="mb8">-->
<el-col :span="1.5"> <!-- <el-col :span="1.5">-->
<el-button <!-- <el-button-->
type="warning" <!-- type="warning"-->
plain <!-- plain-->
icon="el-icon-download" <!-- icon="el-icon-download"-->
size="mini" <!-- size="mini"-->
@click="handleExport" <!-- @click="handleExport"-->
v-hasPermi="['mes:scrap:export']" <!-- v-hasPermi="['mes:scrap:export']"-->
>导出</el-button> <!-- >导出</el-button>-->
</el-col> <!-- </el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
</el-row> <!-- </el-row>-->
<el-tabs type="border-card" @tab-click="handleTabClick"> <el-tabs type="border-card" @tab-click="handleTabClick">
<el-tab-pane label="当月产线产量汇总" > <el-tab-pane label="当月产线产量汇总" >
<el-table :data="tableData" border style="width: 100%" :header-cell-style="getHeaderCellStyle" :summary-method="getSummaries" show-summary> <el-button @click="exportExcel1"></el-button>
<el-table :data="tableData" id="exportTable1" border style="width: 100%" :header-cell-style="getHeaderCellStyle" :summary-method="getSummaries" show-summary>
<el-table-column prop="equipment_name" label="产线" fixed="left" width="150"></el-table-column> <el-table-column prop="equipment_name" label="产线" fixed="left" width="150"></el-table-column>
<el-table-column prop="category" label="类别" fixed="left" width="150"></el-table-column> <el-table-column prop="category" label="类别" fixed="left" width="150"></el-table-column>
<el-table-column prop="total_monthly_summary" label="当月汇总" fixed="left" width="150"></el-table-column> <el-table-column prop="total_monthly_summary" label="当月汇总" fixed="left" width="150"></el-table-column>
@ -39,7 +40,8 @@
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="当月产线品类汇总" > <el-tab-pane label="当月产线品类汇总" >
<el-table :data="tableDatas" border style="width: 100%" :header-cell-style="getHeaderCellStyle" :summary-method="getSummaries" show-summary> <el-button @click="exportExcel2"></el-button>
<el-table :data="tableDatas" id="exportTable2" border style="width: 100%" :header-cell-style="getHeaderCellStyle" :summary-method="getSummaries" show-summary>
<el-table-column prop="category" label="类别" fixed="left" width="150"></el-table-column> <el-table-column prop="category" label="类别" fixed="left" width="150"></el-table-column>
<el-table-column prop="total_monthly_summarys" label="当月汇总" fixed="left" width="150"></el-table-column> <el-table-column prop="total_monthly_summarys" label="当月汇总" fixed="left" width="150"></el-table-column>
<el-table-column v-for="day in days" :key="day" :prop="day" :label="`${day.replace('day', '')}`" :width="150" align="center" :formatter="formatNullToZero"> <el-table-column v-for="day in days" :key="day" :prop="day" :label="`${day.replace('day', '')}`" :width="150" align="center" :formatter="formatNullToZero">
@ -54,6 +56,8 @@
<script> <script>
import { getmonthProductionSut } from "@/api/mes/reportWork"; import { getmonthProductionSut } from "@/api/mes/reportWork";
import * as echarts from 'echarts'; import * as echarts from 'echarts';
import FileSaver from 'file-saver'
import * as XLSX from 'xlsx'
export default { export default {
name: "Index", name: "Index",
@ -92,7 +96,28 @@ export default {
pad(number) { pad(number) {
return number.toString().padStart(2, '0'); return number.toString().padStart(2, '0');
}, },
async exportExcel1() {
const table = document.querySelector('#exportTable1').cloneNode(true)
// fixed
if (table.querySelector('.el-table__fixed')) {
table.removeChild(table.querySelector('.el-table__fixed')) // :ml-citation{ref="3,8" data="citationList"}
}
const wb = XLSX.utils.table_to_book(table, { raw: true })
const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'array' })
FileSaver.saveAs(new Blob([wbout]), '当月产线产量汇总.xlsx') // :ml-citation{ref="4,7" data="citationList"}
},
exportExcel2() {
const table = document.querySelector('#exportTable2').cloneNode(true)
// fixed
if (table.querySelector('.el-table__fixed')) {
table.removeChild(table.querySelector('.el-table__fixed')) // :ml-citation{ref="3,8" data="citationList"}
}
const wb = XLSX.utils.table_to_book(table, { raw: true })
const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'array' })
FileSaver.saveAs(new Blob([wbout]), '当月产线品类汇总.xlsx') // :ml-citation{ref="4,7" data="citationList"}
},
getHeaderCellStyle({rowIndex, columnIndex}) { getHeaderCellStyle({rowIndex, columnIndex}) {
if (rowIndex === 0 && columnIndex === 0) { if (rowIndex === 0 && columnIndex === 0) {
return 'background-color: #afccfd; color: #000000;'; // return 'background-color: #afccfd; color: #000000;'; //

@ -723,11 +723,14 @@ export default {
printJS({ printJS({
printable: params.printable, // 'printFrom', // id printable: params.printable, // 'printFrom', // id
type: params.type || 'html', type: params.type || 'html',
dpi: 360, // // dpi: 360, //
dpi: 600,
//font_size: "",// //font_size: "",//
header: params.header, // '', header: params.header, // '',
targetStyles: ['*'], targetStyles: ['*'],
style: `
body { font-family: "黑体"; font-weight: bold; }
table { border-collapse: separate; border-width: 1.5pt; }`, // 加粗字体和边框线:ml-citation{ref="9" data="citationList"}
////style:'body {margin: 2mm;padding: 0;}.fy{page-break-after: always;} table { width:100%;height:800px;border-collapse: collapse;} table, th, td { border: 2px solid black; white-space: pre-wrap; word-break: break-all;} .el-table .cell{padding-left:1px;padding-right:1px;border: 2px solid black;}', ////style:'body {margin: 2mm;padding: 0;}.fy{page-break-after: always;} table { width:100%;height:800px;border-collapse: collapse;} table, th, td { border: 2px solid black; white-space: pre-wrap; word-break: break-all;} .el-table .cell{padding-left:1px;padding-right:1px;border: 2px solid black;}',
ignoreElements: params.ignore || [], // ['no-print'] ignoreElements: params.ignore || [], // ['no-print']
properties: params.properties || null properties: params.properties || null

Loading…
Cancel
Save