按钮绑定方法click_download_PlanFile
<el-table-column label="方案文件" align="center" width="180">
<template #default="{ row }">
<div>
<el-button text type="primary">
<template #icon>
<span
v-if="row.planFile && row.planFile.length != 0"
class="ti-download"
/>
</template>
<span
v-if="row.planFile && row.planFile.length != 0"
@click="click_download_PlanFile(row)"
>
下载附件
</span>
<span v-else> 未上传 </span>
</el-button>
</div>
</template>
</el-table-column>
调用接口获取文件流 下载附件
const click_download_PlanFile = (row: any) => {
return new Promise((resolve, reject) => {
appAxios(`/coal-storage-info/download-file?fileName=${row.planFile}`, {
method: "get",
responseType: "blob",
})
.then((res) => {
const blob = new Blob([res.data]);
const a = document.createElement("a");
//下载文件名
a.download = row.planFile;
a.href = URL.createObjectURL(blob);
a.click();
URL.revokeObjectURL(a.href);
a.remove();
resolve();
})
.catch((err) => {
reject(err);
});
});
};