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