From a02473e11943579fa3ef4c2392624609d1475c0e Mon Sep 17 00:00:00 2001 From: ZhangXianQiang <1135831638@qq.com> Date: 星期二, 25 六月 2024 15:23:07 +0800 Subject: [PATCH] feat:对接登录、会议接口 --- src/api/modules/meet.js | 6 ++ src/api/modules/user.js | 1 src/views/login/index.vue | 6 - src/background.js | 12 ++- src/views/exam-list/index.vue | 6 +- src/views/meet/index.vue | 14 +++- dist-electron/background.js | 11 ++- src/api/index.js | 2 src/views/train/data-list/index.vue | 50 +++------------- src/views/train/index.vue | 18 +++++ package.json | 2 vite.config.js | 8 ++ src/api/modules/exam.js | 4 + 13 files changed, 79 insertions(+), 61 deletions(-) diff --git a/dist-electron/background.js b/dist-electron/background.js index a903300..fcbd4bf 100644 --- a/dist-electron/background.js +++ b/dist-electron/background.js @@ -27,7 +27,8 @@ if (BrowserWindow.getAllWindows().length === 0) createWindow(); }); - ipcMain.on("open-new-window", () => { + ipcMain.on("open-new-window", (event, meet) => { + const { meetName, id } = JSON.parse(meet); const childWin = new BrowserWindow({ width, height, @@ -39,10 +40,14 @@ }); childWin.maximize(); if (process.env.VITE_DEV_SERVER_URL) { - childWin.loadURL(process.env.VITE_DEV_SERVER_URL + "#/meet"); + childWin.loadURL(process.env.VITE_DEV_SERVER_URL + `#/meet?meetName=${meetName}&id=${id}`); } else { childWin.loadFile(join(__dirname, "../dist/index.html"), { - hash: "/meet" + hash: "/meet", + query: { + meetName, + id + } }); } }); diff --git a/package.json b/package.json index 74e62e3..2af6aae 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "version": "0.0.0", "main": "./src/background.js", "scripts": { - "dev": "vite", + "dev": "chcp 65001 && vite", "build": "vite build", "preview": "vite preview", "electron:dev": "vite && electron" diff --git a/src/api/index.js b/src/api/index.js index 4e76d1a..6f72f12 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -65,7 +65,7 @@ // response鎷︽埅鍣� service.interceptors.response.use( (response) => { - if (response.status === 200 && response.data.code === 200) return Promise.resolve(response.data); + if (response.status === 200 && response.data.code === 1) return Promise.resolve(response.data); else return Promise.reject(response.data); }, (error) => { diff --git a/src/api/modules/exam.js b/src/api/modules/exam.js index 2d4d7e4..1df7671 100644 --- a/src/api/modules/exam.js +++ b/src/api/modules/exam.js @@ -7,4 +7,8 @@ export const getExamInfo = () => { return service.get('/api/v1/getExamInfo'); +} + +export const getExamListV2 = (postData = {examName: ''}) => { + return service.post('/api/student/exam/page',postData); } \ No newline at end of file diff --git a/src/api/modules/meet.js b/src/api/modules/meet.js new file mode 100644 index 0000000..0db1540 --- /dev/null +++ b/src/api/modules/meet.js @@ -0,0 +1,6 @@ +import service from "@/api"; + + +export const getMeetList = (getData = {meetName: '', status: ''}) => { + return service.get('/api/student/meet/page', {params: getData}); +}; \ No newline at end of file diff --git a/src/api/modules/user.js b/src/api/modules/user.js index 4d8fcb3..decce4b 100644 --- a/src/api/modules/user.js +++ b/src/api/modules/user.js @@ -2,5 +2,6 @@ export const login = (postData = {}) => { + console.log(postData); return service.post('/api/user/login', postData); } diff --git a/src/background.js b/src/background.js index 1cc5e7a..823bb8d 100644 --- a/src/background.js +++ b/src/background.js @@ -1,4 +1,3 @@ -// src-electron/main.js const { app, BrowserWindow, screen, globalShortcut, ipcMain } = require('electron'); const { join } = require('path'); @@ -38,7 +37,8 @@ }); // 鐩戝惉鎵撳紑鏂扮獥鍙� - ipcMain.on('open-new-window', () => { + ipcMain.on('open-new-window', (event, meet) => { + const { meetName, id } = JSON.parse(meet); const childWin = new BrowserWindow({ width: width, height: height, @@ -51,10 +51,14 @@ childWin.maximize(); // development妯″紡 if (process.env.VITE_DEV_SERVER_URL) { - childWin.loadURL(process.env.VITE_DEV_SERVER_URL + '#/meet'); + childWin.loadURL(process.env.VITE_DEV_SERVER_URL + '#/meet?' + `meetName=${meetName}&id=${id}`); } else { childWin.loadFile(join(__dirname, '../dist/index.html'), { - hash: '/meet' + hash: '/meet', + query: { + meetName, + id + } }); } }); diff --git a/src/views/exam-list/index.vue b/src/views/exam-list/index.vue index 289ae0f..b7a0e42 100644 --- a/src/views/exam-list/index.vue +++ b/src/views/exam-list/index.vue @@ -48,7 +48,7 @@ import { Search } from '@element-plus/icons-vue'; -import { getExamList } from '@/api/modules/exam.js'; +import { getExamList,getExamListV2 } from '@/api/modules/exam.js'; const activeName = ref('1'); @@ -60,8 +60,8 @@ const getData = () => { loading.value = true; - getExamList().then(res => { - dataList.value = res.data; + getExamListV2().then(res => { + // dataList.value = res.data; loading.value = false; }).catch(err => { loading.value = false; diff --git a/src/views/login/index.vue b/src/views/login/index.vue index c11c07c..9b4d3a0 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -107,12 +107,10 @@ const handleLogin = () => { loginFormRef.value.validate((valid) => { if (valid) { - router.push('/index'); - return; loading.value = true; - login({}).then(res => { - console.log(res); + login(loginForm).then(res => { loading.value = false; + router.push('/index'); }).catch(err => { console.log(err); loading.value = false; diff --git a/src/views/meet/index.vue b/src/views/meet/index.vue index cc2941d..bb0bb57 100644 --- a/src/views/meet/index.vue +++ b/src/views/meet/index.vue @@ -1,19 +1,25 @@ <template> <div class="meet-container w-screen h-screen"> + <div>{{ JSON.stringify(route) }}</div> <div id="meet" ref="meet"></div> </div> </template> <script setup> import { ref, onMounted } from 'vue'; +import {useRoute} from 'vue-router'; +const route = useRoute(); const meet = ref(null); + +const {meetName, id} = route.query; + let jitsiApi = null; onMounted(() => { const width = window.innerWidth; const height = window.innerHeight; - const domain = 'ycl.easyblog.vip:8443'; + const domain = 'ycl.easyblog.vip:8443/' + id; const options = { - roomName: 'test', + roomName: meetName, width: width, height: height, parentNode: meet.value, @@ -26,7 +32,9 @@ enabled: true } }, - toolbarButtons: ['whiteboard'] + userInfo: { + displayName: '娴嬭瘯娴嬭瘯' + } }; jitsiApi = new JitsiMeetExternalAPI(domain, options); jitsiInit(); diff --git a/src/views/train/data-list/index.vue b/src/views/train/data-list/index.vue index 5adeca2..4c75fa9 100644 --- a/src/views/train/data-list/index.vue +++ b/src/views/train/data-list/index.vue @@ -3,17 +3,17 @@ <el-scrollbar> <div class="list-content w-full overflow-x-hidden"> <el-row :gutter="20"> - <el-col :span="6" v-for="item in dataList" class="mb-5"> + <el-col :span="6" v-for="item in props.dataList" class="mb-5"> <el-card shadow="hover" class="list-card cursor-pointer" :body-style="{ padding: 0 }" @click="itemClick(item)"> <div class="img-container w-full"> <img src="@/assets/image/list-card-bg.jpg" class="w-full"> </div> <div class="item-info p-3"> - <div class="info-title font-bold">{{ item.title }}</div> + <div class="info-title font-bold">{{ item.meetName }}</div> <div class="info-teacher flex text-sm text-gray-500"> <div class="info-label">涓昏:</div> - <div class="info-text">{{ item.teacher }}</div> + <div class="info-text">{{ item.teacherName }}</div> </div> <div class="info-time flex text-sm text-gray-500"> <div class="info-label">寮�濮嬫椂闂�:</div> @@ -38,49 +38,17 @@ import { Timer } from '@element-plus/icons-vue'; import { useRouter } from 'vue-router'; const router = useRouter(); - -const dataList = ref([ - { - title: '娴嬭瘯1', - startTime: '2024-6-13 8:00', - endTime: '2024-6-13 8:00', - teacher: '娴嬭瘯娴嬭瘯', - roomName: 'test' - }, - { - title: '娴嬭瘯1', - startTime: '2024-6-13 8:00', - endTime: '2024-6-13 8:00', - teacher: '娴嬭瘯娴嬭瘯', - roomName: 'test' - }, - { - title: '娴嬭瘯1', - startTime: '2024-6-13 8:00', - endTime: '2024-6-13 8:00', - teacher: '娴嬭瘯娴嬭瘯', - roomName: 'test' - }, - { - title: '娴嬭瘯1', - startTime: '2024-6-13 8:00', - endTime: '2024-6-13 8:00', - teacher: '娴嬭瘯娴嬭瘯', - roomName: 'test' - }, - { - title: '娴嬭瘯1', - startTime: '2024-6-13 8:00', - endTime: '2024-6-13 8:00', - teacher: '娴嬭瘯娴嬭瘯', - roomName: 'test' +const props = defineProps({ + dataList: { + type: Array, + default: () => [] } -]); +}); const itemClick = (item) => { if (window.electron) { - window.electron.openNewWindow(); + window.electron.openNewWindow(JSON.stringify(item)); } } diff --git a/src/views/train/index.vue b/src/views/train/index.vue index 0a34f0f..b4465cb 100644 --- a/src/views/train/index.vue +++ b/src/views/train/index.vue @@ -24,7 +24,7 @@ <div class="card-main flex-1 my-5 relative"> <div class="main-content absolute top-0 bottom-0 left-0 right-0"> - <DataList></DataList> + <DataList :dataList="dataList"></DataList> </div> </div> @@ -44,8 +44,24 @@ import NormalHeader from '@/components/NormalHeader/index.vue'; import DataList from './data-list/index.vue'; import { Search } from '@element-plus/icons-vue'; +import {getMeetList} from '@/api/modules/meet.js'; const activeName = ref('1'); const searchText = ref(''); +const dataList = ref([]); + +const loading = ref(false); + +const getData = () => { + loading.value = true; + getMeetList().then(res => { + dataList.value = res.data; + loading.value = false; + }).catch(err => { + loading.value = false; + }); +}; + +getData(); const handleClick = (tab, event) => { }; diff --git a/vite.config.js b/vite.config.js index 1386e32..84001a6 100644 --- a/vite.config.js +++ b/vite.config.js @@ -32,7 +32,15 @@ server: { // 绔彛 port: 3000, + proxy: { + '/api': { + // target: 'http://192.168.3.88:8000', + target: 'http://192.168.3.64:8000', + changeOrigin: true, + } + } }, + resolve: { alias: { '@': resolve(__dirname, './src') -- Gitblit v1.8.0