计算:预览界面添加下载

This commit is contained in:
高云鹏 2024-11-19 10:25:00 +08:00
parent 13807f850b
commit 847584037e

View File

@ -105,7 +105,13 @@
</el-scrollbar>
</div>
</div>
<el-dialog v-model="previewVisible" title="脚本预览" width="800">
<el-dialog v-model="previewVisible" title="脚本预览" width="800" @close="closePreview">
<template #header>
<div class="previewDialogHeader">
<p>脚本预览</p>
<el-button type="primary" @click="downloadScript">下载</el-button>
</div>
</template>
<el-scrollbar height="500">
<p v-html="previewContent"></p>
</el-scrollbar>
@ -200,13 +206,16 @@ const deactive = (name: string) => {
const previewVisible = ref(false)
const previewContent = ref('')
let previewBlob: any = null
let previewName: any = ''
const getScript = (name: string) => {
previewName = name
getScriptCalcReq({ moduleName: name }).then((res) => {
if (res.success) {
//
const txt = 'data:text/plain;charset=utf-8;base64,' + res.data
const blob = base64ToBlob(txt)
previewBlob = blob
blob.text().then((text) => {
let showText = ''
for (let i = 0; i < text.length; i++) {
@ -233,6 +242,21 @@ const base64ToBlob = (dataurl: string) => {
}
return new Blob([u8arr], { type: 'text/plain' })
}
const closePreview = () => {
previewBlob = null
previewName = null
}
const downloadScript = () => {
const a = document.createElement('a')
const url = URL.createObjectURL(previewBlob)
a.href = url
a.download = previewName + '.av'
document.body.appendChild(a)
a.click()
document.body.removeChild(a)
URL.revokeObjectURL(url)
}
getList()
</script>
@ -363,4 +387,15 @@ getList()
}
}
}
.previewDialogHeader {
display: flex;
align-items: center;
p {
color: #303133;
font-size: 18px;
}
.el-button {
margin-left: 20px;
}
}
</style>