数通互联化工云平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

78 lines
1.6 KiB

<!--
@ 作者: han2015
@ 时间: 2025-10-23 15:39:13
@ 备注: upload log组件
-->
<script lang="ts" setup>
import {logUploadError} from "@/api/doc/type"
const props = withDefaults(defineProps<{
content:string,
}>(),{})
const moduleDrawer =ref(true)
const logState=ref(false)
const onClosePopup=(done: (cancel?: boolean) => void) => {
if (logState.value) {
moduleDrawer.value=false
return
}
ElMessageBox.confirm("请确保错误日志安全保存!", "提示", {
confirmButtonText: "确定",
type: "warning",
}).then(()=>{
handleUploadErrors(props.content)
})
}
async function handleUploadErrors(result:string){
await logUploadError({content:result}).then(data=>{
logState.value=true;
ElMessage({
message: '保存成功!',
type: 'success',
plain: true,
})
}).catch(err=>{
//重传
ElMessage({
message: '日志保存失败,开始重传!',
type: 'error',
plain: true,
})
setTimeout(()=>handleUploadErrors(props.content),2000)
})
}
//渲染完页面再执行
onMounted(() => {
handleUploadErrors(props.content)
});
</script>
<template>
<el-drawer
:model-value="moduleDrawer"
title="上传错误记录:"
direction="rtl"
size="30%"
:close-on-click-modal="false"
destroy-on-close
:close-on-press-escape="false"
:before-close="onClosePopup"
:style="{padding:'17px',backgroundColor:'#f3f3f3'}">
<div v-html="content"></div>
</el-drawer>
</template>
<style lang="scss" scoped>
.app_container {
padding: 10px 30px 0px 30px;
height: 100%;
width: 100%;
}
</style>