Auto Commit

上级 6bbaf1fe
...@@ -8,7 +8,8 @@ ...@@ -8,7 +8,8 @@
import { defineProps, reactive, watch } from 'vue'; import { defineProps, reactive, watch } from 'vue';
import { exportExcelFunc } from './exportExcel'; import { exportExcelFunc } from './exportExcel';
const props = defineProps({ const props = defineProps({
tableData: [] tableData: [],
userId:''
}) })
const state = reactive({ const state = reactive({
...@@ -23,7 +24,7 @@ const onExport = () => { ...@@ -23,7 +24,7 @@ const onExport = () => {
return return
} }
state.exportLoading = true state.exportLoading = true
exportExcelFunc(state.dataSource, '用户质量分').then(res => { exportExcelFunc(state.dataSource, props.userId).then(res => {
state.exportLoading = false state.exportLoading = false
console.log('res', res) console.log('res', res)
}).catch(r => { }).catch(r => {
......
...@@ -117,7 +117,7 @@ onUnmounted(() => { ...@@ -117,7 +117,7 @@ onUnmounted(() => {
</div> </div>
<div> <div>
<ExportBtn :table-data="state.dataSource" /> <ExportBtn :table-data="state.dataSource" :userId="state.searchValue" />
<a-table :scroll="{ x: 800, y: 600 }" :columns="state.columns" :data-source="state.dataSource" <a-table :scroll="{ x: 800, y: 600 }" :columns="state.columns" :data-source="state.dataSource"
:loading="state.loading" :pagination="state.pagination" bordered style="border-bottom:1px solid #f0f0f0;"> :loading="state.loading" :pagination="state.pagination" bordered style="border-bottom:1px solid #f0f0f0;">
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
......
// 输出base64编码 // 输出base64编码
const base64 = s => window.btoa(unescape(encodeURIComponent(s))); const base64 = s => window.btoa(unescape(encodeURIComponent(s)));
const tableToExcel = async (jsonData) => { const tableToExcel = async (jsonData, fileName) => {
return new Promise(resolve => { return new Promise(resolve => {
try { try {
let str = '<tr>' let str = '<tr>'
Object.keys(jsonData[0]).forEach(name => { Object.keys(jsonData[0]).forEach(name => {
const tdStr = `<td>${name}</td>` const tdStr = `<td>${name}</td>`
str += tdStr str += tdStr;
}) })
str += '</tr>' str += '</tr>'
for (let i = 0; i < jsonData.length; i++) { for (let i = 0; i < jsonData.length; i++) {
...@@ -19,8 +19,9 @@ const tableToExcel = async (jsonData) => { ...@@ -19,8 +19,9 @@ const tableToExcel = async (jsonData) => {
} }
const currentTime = new Date() const currentTime = new Date()
const fileSuffix = currentTime.valueOf() const fileSuffix = currentTime.valueOf()
const name = fileName + '质量分' + fileSuffix
// Worksheet名 // Worksheet名
const worksheet = '用户质量分' + fileSuffix const worksheet = '用户质量分';
const uri = 'data:application/vnd.ms-excel;base64,'; const uri = 'data:application/vnd.ms-excel;base64,';
// 下载的表格模板数据 // 下载的表格模板数据
const template = `<html xmlns:o="urn:schemas-microsoft-com:office:office" const template = `<html xmlns:o="urn:schemas-microsoft-com:office:office"
...@@ -33,7 +34,13 @@ const tableToExcel = async (jsonData) => { ...@@ -33,7 +34,13 @@ const tableToExcel = async (jsonData) => {
<meta charset='utf-8' /> <meta charset='utf-8' />
</head><body><table>${str}</table></body></html>`; </head><body><table>${str}</table></body></html>`;
// 下载模板 // 下载模板
window.location.href = uri + base64(template); // window.location.href = uri + base64(template);
downloadLink.href = uri + base64(template);
downloadLink.download = name + '.xls';
downloadLink.target = '_blank';
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
resolve(true) resolve(true)
} }
catch (r) { catch (r) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册