feat(property-marketing): 优化投放指南下载功能并重构PDF生成逻辑

This commit is contained in:
林志军
2025-07-09 14:24:09 +08:00
parent ae8aa083de
commit 5c73fdea86
4 changed files with 123 additions and 63 deletions

View File

@ -21,7 +21,7 @@
</a-popconfirm>
</a-space>
<a-space>
<a-button type="outline" @click="downloadDetailAsImage(record.id)" class="operation-btn">下载</a-button>
<a-button type="outline" @click="downLoad(record.file_url)" class="operation-btn">下载</a-button>
<a-button type="outline" @click="goDetail(record.id)" class="operation-btn">详情</a-button>
</a-space>
</a-space>
@ -82,32 +82,24 @@ const goDetail = async (id) => {
router.push(`/put-account/detail/${id}`);
};
const downloadDetailAsImage = (id) => {
const url = `/put-account/detail/${id}`;
const win = window.open(url, '_blank');
win.onload = () => {
setTimeout(() => {
html2canvas(win.document.body, {
useCORS: true,
scale: 2,
}).then((canvas) => {
const imgData = canvas.toDataURL('image/png');
const link = document.createElement('a');
link.href = imgData;
link.download = `详情页面_${Date.now()}.png`;
link.click();
win.close(); // 关闭新窗口
});
}, 2000); // 等待页面加载
};
const downLoad = (fileUrl) => {
if (isEmpty(fileUrl)) {
Message.error('下载失败,文件不存在');
return;
}
const link = document.createElement('a');
link.href = fileUrl;
link.download = '投放指南.pdf';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
};
const deleteData = async (id) => {
const { code, message } = await deleteHistorylog(id);
if (code == 200) {
Message.success(message);
emits('onSearch');
console.log('onsearch')
console.log('onsearch');
}
};

View File

@ -50,7 +50,7 @@
</div>
<div class="filter-row-item flex items-center">
<a-button class="w-84px search-btn mr-12px" size="medium" @click="handleSearch">
<a-button class="w-84px search-btn mr-12px" :disabled="disabled" size="medium" @click="handleSearch">
<template #icon>
<icon-search />
</template>

View File

@ -54,8 +54,7 @@
<template #platform="{ record }">
<a-space size="medium" v-if="record.platform">
<img :src="PLATFORM_LIST[record.platform]?.icon" width="19" class="mr-4px" />
<span>{{ PLATFORM_LIST[record.platform].label }}</span>
</a-space>
</template>