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 @@
-
- - - 发送 -
diff --git a/src/views/host_new.vue b/src/views/host_new.vue new file mode 100644 index 0000000..de1e8f5 --- /dev/null +++ b/src/views/host_new.vue @@ -0,0 +1,555 @@ + + + diff --git a/src/views/meeting.vue b/src/views/meeting.vue index f60828a..03baab8 100644 --- a/src/views/meeting.vue +++ b/src/views/meeting.vue @@ -4,7 +4,6 @@
- 全屏
@@ -166,25 +165,24 @@ const meetingConfig = reactive({ // This Sample App has been updated to use SDK App type credentials https://marketplace.zoom.us/docs/guides/build/sdk-app sdkKey: "99Spa64AWHYVZD95imUpVyMD0KF9CpEIrIb1", // meetingNumber: store.getters.meetingNumber, - // meetingNumber: store.getters.meetingNumber, - // passWord: store.state.password, + meetingNumber: store.getters.meetingNumber, + passWord: store.state.password, // sdkKey: "99Spa64AWHYVZD95imUpVyMD0KF9CpEIrIb1", - meetingNumber: "97097842319", - passWord: "111916", + // meetingNumber: "97097842319", + // passWord: "111916", // role: route.name === "Host" ? 1 : 0, role: 0, // signatureEndpoint: "http://120.26.107.74:4000", - // userEmail: - // Number(Math.random().toString().substr(3, 8) + Date.now()).toString(36) + - // "@163.com", - userEmail: "934510341@qq.com", - // userName: joinName.value, - userName: "afasde1", + userEmail: store.getters.email, + // userEmail: "934510341@qq.com", + userName: joinName.value, + // userName: "afasde1", // pass in the registrant's token if your meeting or webinar requires registration. More info here: // Meetings: https://marketplace.zoom.us/docs/sdk/native-sdks/web/component-view/meetings#join-registered // Webinars: https://marketplace.zoom.us/docs/sdk/native-sdks/web/component-view/webinars#join-registered - registrantToken: - "Xhi0bKUzyNBnJwe2EJWZ0JZ3IYqtPgyyWE1CXW3z2X4.DQMAAAAWm3t-jxZqSS14R0dCSFRDNkFibVQwakpHbFd3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + // registrantToken: + // "Xhi0bKUzyNBnJwe2EJWZ0JZ3IYqtPgyyWE1CXW3z2X4.DQMAAAAWm3t-jxZqSS14R0dCSFRDNkFibVQwakpHbFd3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + registrantToken: store.getters.token, }); console.log(meetingConfig); @@ -402,9 +400,9 @@ const initWebSocket = () => { } // 收到聊天消息时 else if (data.type === "isChat") { - console.log(JSON.parse(data.content)); + console.log(JSON.parse(JSON.parse(JSON.parse(data.content).msg))); messages.value.push({ - ...JSON.parse(data.content), + ...JSON.parse(JSON.parse(JSON.parse(data.content).msg)), id: _.uniqueId(), time: dayjs().format("YYYY-MM-DD HH:mm:ss"), }); @@ -451,8 +449,23 @@ const messages = ref([]); // 消息列表 const editingMessage = ref(""); // 正在编辑的内容 // 发送消息 const sendMessage = () => { - console.log(socket); - socket.send(editingMessage.value); + console.log( + JSON.stringify( + JSON.stringify({ + account: joinName.value, + msg: editingMessage.value, + }) + ) + ); + socket.send( + JSON.stringify( + JSON.stringify({ + account: joinName.value, + msg: editingMessage.value, + }) + ) + ); + // socket.send(editingMessage.value); messages.value.push({ id: _.uniqueId(), account: joinName.value, diff --git a/src/views/panelist-verify.vue b/src/views/panelist-verify.vue new file mode 100644 index 0000000..b41d074 --- /dev/null +++ b/src/views/panelist-verify.vue @@ -0,0 +1,98 @@ + + + + +