diff --git a/src/api/meeting.js b/src/api/meeting.js index f8e6b72..2a4814a 100644 --- a/src/api/meeting.js +++ b/src/api/meeting.js @@ -41,6 +41,13 @@ export function registerJoinUser(data) { data, }); } +export function panelistJoinMeeting(params) { + return request({ + url: `/app/panelistJoinMeeting`, + method: "post", + params, + }); +} // /app/visitorJoinUser // 游客参会 diff --git a/src/router/index.js b/src/router/index.js index b813139..16c18a9 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -7,6 +7,7 @@ import { whitelistJoinMeeting, registerJoinUser, visitorJoinUser, + panelistJoinMeeting, } from "@/api/meeting"; const router = createRouter({ history: createWebHistory(), @@ -21,20 +22,30 @@ const router = createRouter({ name: "Verify", component: () => import("@/views/verify.vue"), }, + { + path: "/panelist-verify/:meetingId", + name: "PanelistVerify", + component: () => import("@/views/panelist-verify.vue"), + }, { path: "/meeting/:meetingId", name: "Meeting", component: () => import("@/views/meeting.vue"), }, + { + path: "/panelist/:meetingId", + name: "Panelist", + component: () => import("@/views/meeting.vue"), + }, // { // path: "/host/:meetingId/:hostinfo", // name: "Host", // component: () => import("@/views/host.vue"), // }, { - path: "/host/:meetingId/:pwd/:username/:nickname", + path: "/host/:meetingId/:createEmail/:pwd/:username/:nickname", name: "Host", - component: () => import("@/views/host.vue"), + component: () => import("@/views/host_new.vue"), }, { path: "/:pathMatch(.*)*", @@ -57,6 +68,7 @@ router.beforeEach(async (to) => { store.commit("setJoinUser", { nickname: to.params.nickname, username: to.params.username, + email: to.params.createEmail, }); store.commit("setPassword", to.params.pwd); return true; @@ -81,11 +93,11 @@ router.beforeEach(async (to) => { if (store.state.joinUser.icCard) { // 检测输入的IC卡号是否在白名单范围内,是则放行,否则返回原地址 try { - const { data } = await whitelistJoinMeeting({ + const { meetingPassword } = await whitelistJoinMeeting({ meetingId: to.params.meetingId, icCard: store.state.joinUser.icCard, }); - store.commit("setPassword", data); + store.commit("setPassword", meetingPassword); return true; } catch (error) { store.commit("setJoinUser", {}); @@ -101,16 +113,54 @@ router.beforeEach(async (to) => { return `/verify/${to.params.meetingId}`; } else { if (store.state.meeting.joinType === "2") { - const { data } = await registerJoinUser(store.state.joinUser); - store.commit("setPassword", data); + const { meetingPassword, email } = await registerJoinUser( + store.state.joinUser + ); + store.commit("setJoinUser", { + ...store.state.joinUser, + email: email.email, + token: email.token, + }); + store.commit("setPassword", meetingPassword); } else { - const { data } = await visitorJoinUser(store.state.joinUser); - store.commit("setPassword", data); + const { meetingPassword } = await visitorJoinUser( + store.state.joinUser + ); + store.commit("setPassword", meetingPassword); } return true; } } } + if (to.name === "Panelist") { + console.log("Panelist"); + // 如果要去的页面会议号于 vuex中的不一样,则清除数据 + if (to.params.meetingId !== store.state.joinUser.meetingId) { + console.log('dis'); + store.commit("setJoinUser", {}); + } + if (store.state.joinUser.icCard) { + try { + const { meetingPassword, email } = await panelistJoinMeeting({ + meetingId: to.params.meetingId, + icCard: store.state.joinUser.icCard, + }); + store.commit("setJoinUser", { + ...store.state.joinUser, + email: email.email, + token: email.token, + }); + store.commit("setPassword", meetingPassword); + return true; + } catch (error) { + store.commit("setJoinUser", {}); + return `/panelist-verify/${to.params.meetingId}`; + } + } else { + store.commit("setJoinUser", {}); + return `/panelist-verify/${to.params.meetingId}`; + } + } }); export default router; diff --git a/src/store/index.js b/src/store/index.js index 3d438eb..8b83748 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -43,7 +43,10 @@ const store = createStore({ }, getters: { nickname: (state) => state.joinUser.nickname, // 姓名 - icCard: (state) => state.joinUser.icCard, // 姓名 + username: (state) => state.joinUser.username, // 姓名 + email: (state) => state.joinUser.email, // + token: (state) => state.joinUser.token, // + icCard: (state) => state.joinUser.icCard, // meetingPic: (state) => state.meeting.meetingPic, // 会议封面 templateBackgroundPic: (state) => state.meeting.templateBackgroundPic, // 会议封面 meetingNote: (state) => state.meeting.meetingNote, // 会议信息 diff --git a/src/views/host.vue b/src/views/host.vue index 5c93c01..a1fb7fc 100644 --- a/src/views/host.vue +++ b/src/views/host.vue @@ -15,27 +15,17 @@
+ 会议时间 + {{ meeting.startTime }} +
+