| | |
| | | VITE_BASE_API_URL = ''; |
| | | VITE_BASE_API_URL = |
| | |
| | | ElSlider: typeof import('element-plus/es')['ElSlider'] |
| | | ElTable: typeof import('element-plus/es')['ElTable'] |
| | | ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] |
| | | ElTabPane: typeof import('element-plus/es')['ElTabPane'] |
| | | ElTabs: typeof import('element-plus/es')['ElTabs'] |
| | | ElTag: typeof import('element-plus/es')['ElTag'] |
| | | ExamAudio: typeof import('./src/components/ExamAudio/index.vue')['default'] |
| | | ExamInfo: typeof import('./src/components/ExamInfo/index.vue')['default'] |
| | | ExamInfoDialog: typeof import('./src/components/ExamInfoDialog/index.vue')['default'] |
| | | NormalHeader: typeof import('./src/components/NormalHeader/index.vue')['default'] |
| | | PDFViewer: typeof import('./src/components/PDFViewer/index.vue')['default'] |
| | | PDFVIewer: typeof import('./src/components/PDFVIewer/index.vue')['default'] |
| | | RouterLink: typeof import('vue-router')['RouterLink'] |
| | | RouterView: typeof import('vue-router')['RouterView'] |
| | | VideoViewer: typeof import('./src/components/VideoViewer/index.vue')['default'] |
| | |
| | | </div> |
| | | |
| | | <div class="audio-container" v-if="activeQuestion.audioFile"> |
| | | <ExamAudio :audioSrc="activeQuestion.audioFile"></ExamAudio> |
| | | <ExamAudio :audioSrc="'/api/files/' +activeQuestion.audioFile"></ExamAudio> |
| | | </div> |
| | | |
| | | <div class="img-container flex" v-if="activeQuestion.img"> |
| | |
| | | answerProgress.value = progress; |
| | | }; |
| | | |
| | | const initExam = () => { |
| | | const initExam = (questionType) => { |
| | | answerProgress.value = 0; |
| | | currentIndex.value = 0; |
| | | currentType.value = 1; |
| | | currentType.value = questionType; |
| | | } |
| | | |
| | | |
| | |
| | | suggestTime: res.data.suggestTime, |
| | | }); |
| | | examStore.setExamDetail(res.data.titleList); |
| | | examStore.initExam(); |
| | | examStore.initExam(res.data.titleList[0].questionType); |
| | | router.push('/exam'); |
| | | }).catch(err => { |
| | | |
| | |
| | | const timeDialog = ref(false); |
| | | |
| | | const { status, message, error, connect, disconnect, sendMessage } = useWebScoket({ |
| | | url: 'ws://192.168.3.64:8000/websocket/' + userInfo.value.id, |
| | | url: 'wss://42.193.1.25:8000/websocket/' + userInfo.value.id, |
| | | heartBeatData: 'ping' |
| | | }); |
| | | |
| | |
| | | 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, |
| | | url: 'wss://42.193.1.25:8000/websocket/' + userInfo.value.id, |
| | | heartBeatData: 'ping' |
| | | }); |
| | | |
| | |
| | | handle: (item) => { |
| | | console.log(item); |
| | | imageViewer.value = true; |
| | | imageList.value = [item.contentUrl.url]; |
| | | imageList.value = ['/api/files/'+item.contentUrl.url]; |
| | | resendMessage(); |
| | | } |
| | | }, |
| | |
| | | handle: (item) => { |
| | | console.log(item); |
| | | videoViewer.value = true; |
| | | videoUrl.value = [item.contentUrl.url]; |
| | | videoUrl.value = ['/api/files/'+item.contentUrl.url]; |
| | | resendMessage(); |
| | | } |
| | | }, |
| | |
| | | handle: (item) => { |
| | | console.log(item); |
| | | pdfViewer.value = true; |
| | | pdfFile.value = item.contentUrl.url; |
| | | pdfFile.value = '/api/files/'+item.contentUrl.url; |
| | | resendMessage(); |
| | | } |
| | | }, |
| | |
| | | enabled: false |
| | | }, |
| | | whiteboard: { |
| | | enabled: true |
| | | enabled: false |
| | | } |
| | | }, |
| | | userInfo: { |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { ref } from 'vue'; |
| | | import { Timer } from '@element-plus/icons-vue'; |
| | | import { storeToRefs } from 'pinia'; |
| | | import { useRouter } from 'vue-router'; |
| | | import { useUserStore } from '@/store/index.js'; |
| | |
| | | proxy: { |
| | | '/api': { |
| | | // target: 'http://192.168.3.88:8000', |
| | | target: 'http://192.168.3.64:8000', |
| | | target: 'localhost:8000', |
| | | changeOrigin: true, |
| | | } |
| | | } |
| | |
| | | proxy: { |
| | | '/api': { |
| | | // target: 'http://192.168.3.88:8000', |
| | | target: 'http://192.168.3.64:8000', |
| | | target: 'http://localhost:8000', |
| | | changeOrigin: true, |
| | | } |
| | | } |