|
|
@ -3,28 +3,19 @@ |
|
|
<template #title> |
|
|
<template #title> |
|
|
<span>{{ t('common.export') }}</span> |
|
|
<span>{{ t('common.export') }}</span> |
|
|
</template> |
|
|
</template> |
|
|
<ExportOutlined @click="exportData" /> |
|
|
<DownloadOutlined @click="exportData" /> |
|
|
<ExpExcelModal @register="registerModal" @success="handleExport" /> |
|
|
<ExpExcelModal @register="registerModal" @success="handleExport" /> |
|
|
</Tooltip> |
|
|
</Tooltip> |
|
|
</template> |
|
|
</template> |
|
|
<script lang="ts"> |
|
|
<script lang="ts" setup> |
|
|
import { defineComponent } from 'vue'; |
|
|
|
|
|
import { Tooltip } from 'ant-design-vue'; |
|
|
import { Tooltip } from 'ant-design-vue'; |
|
|
import { ExportOutlined } from '@ant-design/icons-vue'; |
|
|
import { DownloadOutlined } from '@ant-design/icons-vue'; |
|
|
import { useI18n } from '/@/hooks/web/useI18n'; |
|
|
import { useI18n } from '/@/hooks/web/useI18n'; |
|
|
import { useTableContext } from '../../hooks/useTableContext'; |
|
|
import { useTableContext } from '../../hooks/useTableContext'; |
|
|
import { ExpExcelModal, jsonToSheetXlsx } from '/@/components/Excel'; |
|
|
import { ExpExcelModal, jsonToSheetXlsx } from '/@/components/Excel'; |
|
|
import { useModal } from '/@/components/Modal'; |
|
|
import { useModal } from '/@/components/Modal'; |
|
|
import { isString } from '/@/utils/is'; |
|
|
import { isString } from '/@/utils/is'; |
|
|
|
|
|
|
|
|
export default defineComponent({ |
|
|
|
|
|
name: 'TableExport', |
|
|
|
|
|
components: { |
|
|
|
|
|
ExpExcelModal, |
|
|
|
|
|
ExportOutlined, |
|
|
|
|
|
Tooltip, |
|
|
|
|
|
}, |
|
|
|
|
|
setup() { |
|
|
|
|
|
const table = useTableContext(); |
|
|
const table = useTableContext(); |
|
|
const { t } = useI18n(); |
|
|
const { t } = useI18n(); |
|
|
const [registerModal, { openModal }] = useModal(); |
|
|
const [registerModal, { openModal }] = useModal(); |
|
|
@ -34,6 +25,15 @@ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function handleExport(options) { |
|
|
function handleExport(options) { |
|
|
|
|
|
table.setLoading(true); |
|
|
|
|
|
try { |
|
|
|
|
|
exportDataToExcel(options); |
|
|
|
|
|
} finally { |
|
|
|
|
|
table.setLoading(false); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function exportDataToExcel(options) { |
|
|
const dataSource = table.getDataSource(); |
|
|
const dataSource = table.getDataSource(); |
|
|
// 列排序过滤 |
|
|
// 列排序过滤 |
|
|
const columns = table.getColumns() |
|
|
const columns = table.getColumns() |
|
|
@ -68,13 +68,4 @@ |
|
|
}, |
|
|
}, |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return { |
|
|
|
|
|
registerModal, |
|
|
|
|
|
exportData, |
|
|
|
|
|
handleExport, |
|
|
|
|
|
t, |
|
|
|
|
|
}; |
|
|
|
|
|
}, |
|
|
|
|
|
}); |
|
|
|
|
|
</script> |
|
|
</script> |
|
|
|