feat:修改文件上传,白板关闭不影响其他用户等
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -419,7 +419,7 @@
|
||||
}
|
||||
|
||||
const handlePdfRendered = () => {
|
||||
console.log('PDF页面渲染完成')
|
||||
// console.log('PDF页面渲染完成')
|
||||
}
|
||||
|
||||
const handlePdfError = (error) => {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user