From 9c71d96bad37e81ece769f8eb9a4c3c766393b3c Mon Sep 17 00:00:00 2001
From: ZhangXianQiang <1135831638@qq.com>
Date: 星期三, 03 七月 2024 17:45:11 +0800
Subject: [PATCH] fix:修改socket
---
src/views/folder/index.vue | 51 +++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 45 insertions(+), 6 deletions(-)
diff --git a/src/views/folder/index.vue b/src/views/folder/index.vue
index 5e40f10..d0b4d08 100644
--- a/src/views/folder/index.vue
+++ b/src/views/folder/index.vue
@@ -50,8 +50,9 @@
</div>
</div>
+ <!-- pdf鏌ョ湅 -->
<div class="pdf-container" v-show="pdfViewer">
- <PDFViewer :pdfUrl="'/helloworld.pdf'"></PDFViewer>
+ <PDFViewer :pdfUrl="'/test.pdf'"></PDFViewer>
<div class="close-btn">
<el-button type="danger" size="large" circle @click="closeViewer">
<template #icon>
@@ -62,29 +63,54 @@
</el-button>
</div>
</div>
+
+ <!-- image鏌ョ湅 -->
+ <div class="image-container" v-show="imageViewer">
+ <el-image-viewer :url-list="imageList" @close="closeViewer"></el-image-viewer>
+ </div>
+
+ <!-- 瑙嗛鏌ョ湅 -->
+ <div class="video-container">
+
+ </div>
+
</div>
</template>
<script setup>
-import { ref } from 'vue';
+import { ref, onMounted } from 'vue';
+import { storeToRefs } from 'pinia';
import { Close } from '@element-plus/icons-vue';
import NormalHeader from '@/components/NormalHeader/index.vue';
import { Search } from '@element-plus/icons-vue';
import { getFileList } from '@/api/modules/file.js';
import PDFViewer from '@/components/PDFViewer/index.vue';
+import { useUserStore } from '@/store/index.js';
+import useWebScoket from '@/hooks/useWebScoket.js';
+
+const userStore = useUserStore();
+const { userInfo } = storeToRefs(userStore);
+const { status, message, error, connect, disconnect, sendMessage } = useWebScoket({
+ url: 'ws://192.168.3.64:8000/websocket/' + userInfo.value.id,
+ heartBeatData: 'ping'
+});
+
const fileType = {
'img': {
iconPath: '/static/icons/file_type_image.png',
handle: (item) => {
console.log(item);
+ imageViewer.value = true;
+ sendMessage({ id: userInfo.value.id, command: 'startRecordTime' });
}
},
'video': {
iconPath: '/static/icons/file_type_video.png',
handle: (item) => {
console.log(item);
+ sendMessage({ id: userInfo.value.id, command: 'startRecordTime' });
}
},
'pdf': {
@@ -92,21 +118,25 @@
handle: (item) => {
console.log(item);
pdfViewer.value = true;
+ sendMessage({ id: userInfo.value.id, command: 'startRecordTime' });
}
},
};
+const searchText = ref('');
const loading = ref(false);
-const searchText = ref('');
+
const pdfViewer = ref(false);
const imageViewer = ref(false);
const videoViewer = ref(false);
+
+const imageList = ref([]);
const fileList = ref([
{
id: 1,
name: '娴嬭瘯娴嬭瘯娴嬭瘯',
- url: '',
+ url: '/test_question.png',
date: '2024-12-12',
class: 'test',
subject: '娴嬭瘯',
@@ -124,7 +154,7 @@
{
id: 3,
name: '娴嬭瘯娴嬭瘯娴嬭瘯',
- url: '',
+ url: '/test.pdf',
date: '2024-12-12',
class: 'test',
subject: '娴嬭瘯',
@@ -135,13 +165,15 @@
const checkRow = (item) => {
fileType[item.type] && fileType[item.type].handle(item);
+
};
const closeViewer = () => {
pdfViewer.value = false;
imageViewer.value = false;
videoViewer.value = false;
-}
+ sendMessage({ id: userInfo.value.id, command: 'endRecordTime' });
+};
const getData = () => {
getFileList().then(res => {
@@ -150,6 +182,11 @@
};
getData();
+// -----------------------------------鐢熷懡鍛ㄦ湡
+onMounted(() => {
+ // 杩炴帴webscoket
+ connect();
+});
</script>
<style lang="scss" scoped>
@@ -175,11 +212,13 @@
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
+
.close-btn {
position: absolute;
top: 2px;
right: 30px;
z-index: 9999999;
+
:deep(.el-button) {
width: fit-content;
height: fit-content;
--
Gitblit v1.8.0