mirror of
https://github.com/vbenjs/vue-vben-admin.git
synced 2025-08-27 20:54:40 +08:00
57 lines
1.4 KiB
Vue
57 lines
1.4 KiB
Vue
<template>
|
|
<div>
|
|
<ImportExcel @success="loadDataSuccess">
|
|
<a-button class="m-3">导入Excel</a-button>
|
|
</ImportExcel>
|
|
<BasicTable
|
|
v-for="(table, index) in tableListRef"
|
|
:key="index"
|
|
:title="table.title"
|
|
:columns="table.columns"
|
|
:dataSource="table.dataSource"
|
|
></BasicTable>
|
|
</div>
|
|
</template>
|
|
<script lang="ts">
|
|
import { defineComponent, ref } from 'vue';
|
|
|
|
import { ImportExcel, ExcelData } from '/@/components/Excel';
|
|
import { BasicTable, BasicColumn } from '/@/components/Table';
|
|
|
|
export default defineComponent({
|
|
components: { BasicTable, ImportExcel },
|
|
|
|
setup() {
|
|
const tableListRef = ref<
|
|
{
|
|
title: string;
|
|
columns?: any[];
|
|
dataSource?: any[];
|
|
}[]
|
|
>([]);
|
|
|
|
function loadDataSuccess(excelDataList: ExcelData[]) {
|
|
tableListRef.value = [];
|
|
console.log(excelDataList);
|
|
for (const excelData of excelDataList) {
|
|
const {
|
|
header,
|
|
results,
|
|
meta: { sheetName },
|
|
} = excelData;
|
|
const columns: BasicColumn[] = [];
|
|
for (const title of header) {
|
|
columns.push({ title, dataIndex: title });
|
|
}
|
|
tableListRef.value.push({ title: sheetName, dataSource: results, columns });
|
|
}
|
|
}
|
|
|
|
return {
|
|
loadDataSuccess,
|
|
tableListRef,
|
|
};
|
|
},
|
|
});
|
|
</script>
|