Study/web/src/components/exportExcel/exportExcel.vue

37 lines
824 B
Vue

<template>
<el-button
type="primary"
icon="download"
@click="exportExcelFunc"
>导出</el-button>
</template>
<script setup>
const props = defineProps({
templateId: {
type: String,
required: true
},
condition: {
type: Object,
default: () => ({})
}
})
import { ElMessage } from 'element-plus'
const exportExcelFunc = async() => {
if (props.templateId === '') {
ElMessage.error('组件未设置模板ID')
return
}
const baseUrl = import.meta.env.VITE_BASE_API
const params = Object.entries(props.condition)
.map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)
.join('&')
const url = `${baseUrl}/sysExportTemplate/exportExcel?templateID=${props.templateId}${params ? '&' + params : ''}`
window.open(url, '_blank')
}
</script>