计算:预览界面添加下载
This commit is contained in:
parent
13807f850b
commit
847584037e
@ -105,7 +105,13 @@
|
|||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</div>
|
</div>
|
||||||
</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">
|
<el-scrollbar height="500">
|
||||||
<p v-html="previewContent"></p>
|
<p v-html="previewContent"></p>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
@ -200,13 +206,16 @@ const deactive = (name: string) => {
|
|||||||
|
|
||||||
const previewVisible = ref(false)
|
const previewVisible = ref(false)
|
||||||
const previewContent = ref('')
|
const previewContent = ref('')
|
||||||
|
let previewBlob: any = null
|
||||||
|
let previewName: any = ''
|
||||||
const getScript = (name: string) => {
|
const getScript = (name: string) => {
|
||||||
|
previewName = name
|
||||||
getScriptCalcReq({ moduleName: name }).then((res) => {
|
getScriptCalcReq({ moduleName: name }).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
// 预览
|
// 预览
|
||||||
const txt = 'data:text/plain;charset=utf-8;base64,' + res.data
|
const txt = 'data:text/plain;charset=utf-8;base64,' + res.data
|
||||||
const blob = base64ToBlob(txt)
|
const blob = base64ToBlob(txt)
|
||||||
|
previewBlob = blob
|
||||||
blob.text().then((text) => {
|
blob.text().then((text) => {
|
||||||
let showText = ''
|
let showText = ''
|
||||||
for (let i = 0; i < text.length; i++) {
|
for (let i = 0; i < text.length; i++) {
|
||||||
@ -233,6 +242,21 @@ const base64ToBlob = (dataurl: string) => {
|
|||||||
}
|
}
|
||||||
return new Blob([u8arr], { type: 'text/plain' })
|
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()
|
getList()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -363,4 +387,15 @@ getList()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.previewDialogHeader {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
p {
|
||||||
|
color: #303133;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
.el-button {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
Loading…
Reference in New Issue
Block a user