feat:修改文件上传,白板关闭不影响其他用户等

This commit is contained in:
leilei
2025-11-10 17:55:52 +08:00
parent df359d01cc
commit 6fbe53009c
23 changed files with 17128 additions and 1623 deletions

View File

@@ -156,7 +156,23 @@
</div>
</template>
</el-dialog>
</div>
<el-dialog
v-model="dialogFileVisible"
title="文件转换"
width="50%"
class="file-preview-dialog"
>
<div class="preview-container">
<div class="loading-container">
<el-icon class="is-loading" size="48">
<Loading />
</el-icon>
<p>正在下载文件请稍候...</p>
</div>
</div>
</el-dialog>
</div>
</template>
<script setup>
@@ -208,6 +224,8 @@ const fileName = ref('')
const textContent = ref('')
const currentFileData = ref(null)
const convertTaskId = ref('')
const dialogFileVisible = ref(false)
// PDF相关状态
const pdfSource = ref('')
@@ -261,7 +279,12 @@ onMounted(async () => {
emitter.on('subscribeToFileConversionStatusTopic',subscribeToFileConversionStatusTopic)
emitter.on('fileUploadStatus',fileUploadStatus)
emitter.on('subscribeToFilePreviewTopic',subscribeToFilePreviewTopic)
emitter.on('fileSuccess',fileSuccess)
function fileSuccess(){
dialogFileVisible.value = true
}
//
function subscribeToFileConversionStatusTopic(data){
try {
const userId = JSON.parse(sessionStorage.getItem('userData'))?.uid
@@ -286,12 +309,9 @@ function subscribeToFilePreviewTopic(data){
}
}
//提交转换任务,但文件暂未转换完成
function fileUploadStatus(data){
if(!dialogFormVisible.value){
}
// console.log('文件上传成功mqtt消息')
}
// 初始化MQTT连接 pdf转换成功
@@ -327,9 +347,14 @@ function subscribeToPdfConversionTopic() {
function handleFileUploadMessage(payload, topic){
try {
const messageStr = payload.toString()
const data = JSON.parse(messageStr)
emitter.emit('fileUploadStatus')
if(dialogFormVisible.value){
const data = JSON.parse(messageStr)
// emitter.emit('fileUploadStatus')
console.log(data,'data文件转换完成预览通知')
const userId = JSON.parse(sessionStorage.getItem('userData'))?.uid
if(dialogFileVisible.value){
dialogFileVisible.value = false
}
if(dialogFormVisible.value && userId != data.user_uid){
// 显示确认对话框
ElMessageBox.confirm(
`用户${data.user_uid}上传了${data.file_name}文件,是否立即预览?`,
@@ -364,7 +389,7 @@ function handleFileUploadMessage(payload, topic){
message: `用户${data.user_uid}上传了${data.file_name}文件`,
type: 'info',
})
showEdit(data)
showEdit(data)
}
} catch (error) {
console.error('处理转换状态消息失败:', error)

View File

@@ -77,8 +77,7 @@ const props = defineProps({
});
emitter.on('fileUploadStatus',async ()=>{
if(drawerVisible.value){
console.log('更新啦')
if(drawerVisible.value){
await getFileList()
}
})
@@ -161,7 +160,7 @@ async function getFileList(){
}
fileList.value = res.data.files || [];
} catch (error) {
console.error('获取文件列表失败:', error);
// console.error('获取文件列表失败:', error);
ElMessage.error('获取文件列表失败');
} finally {
loading.value = false;

View File

@@ -419,7 +419,7 @@
}
const handlePdfRendered = () => {
console.log('PDF页面渲染完成')
// console.log('PDF页面渲染完成')
}
const handlePdfError = (error) => {

View File

@@ -203,6 +203,8 @@ const handleHttpRequest = async (file) => {
// 上传成功取消loading
uploadLoading.value = false
dialogFormVisible.value = false
emitter.emit('fileSuccess')
return true
} catch (error) {
console.error('上传文件失败:', error)
@@ -234,7 +236,7 @@ function publishFileUploadData(fileData) {
};
mqttClient.publish(`xSynergy/File/Upload/${roomId.value}`, message);
} catch (error) {
console.error('发布激光笔数据失败:', error);
console.error('发布文件数据失败:', error);
}
}