计算:预览界面添加下载
This commit is contained in:
parent
13807f850b
commit
847584037e
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user