会议未开始时,禁止用户进入会议,可以暂存信息到本地
This commit is contained in:
@ -10,6 +10,8 @@ import dayjs from "dayjs";
|
|||||||
import duration from "dayjs/plugin/duration";
|
import duration from "dayjs/plugin/duration";
|
||||||
import { onMounted, onUnmounted, ref } from "vue";
|
import { onMounted, onUnmounted, ref } from "vue";
|
||||||
dayjs.extend(duration);
|
dayjs.extend(duration);
|
||||||
|
|
||||||
|
const emit = defineEmits(["timeup"]);
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
startTime: {
|
startTime: {
|
||||||
type: String,
|
type: String,
|
||||||
@ -25,6 +27,7 @@ onMounted(() => {
|
|||||||
durationTime.value =
|
durationTime.value =
|
||||||
new Date(props.startTime).getTime() - new Date().getTime();
|
new Date(props.startTime).getTime() - new Date().getTime();
|
||||||
if (durationTime.value <= 0) {
|
if (durationTime.value <= 0) {
|
||||||
|
emit("timeup");
|
||||||
clearInterval(timer);
|
clearInterval(timer);
|
||||||
}
|
}
|
||||||
const duraDayjs = dayjs.duration(durationTime.value);
|
const duraDayjs = dayjs.duration(durationTime.value);
|
||||||
|
@ -6,6 +6,9 @@ const store = createStore({
|
|||||||
joinUser: localStorage.getItem("JOIN_USER")
|
joinUser: localStorage.getItem("JOIN_USER")
|
||||||
? JSON.parse(localStorage.getItem("JOIN_USER"))
|
? JSON.parse(localStorage.getItem("JOIN_USER"))
|
||||||
: {},
|
: {},
|
||||||
|
tempUser: localStorage.getItem("TEMP_USER")
|
||||||
|
? JSON.parse(localStorage.getItem("TEMP_USER"))
|
||||||
|
: {},
|
||||||
meeting: {},
|
meeting: {},
|
||||||
meetingSetting: {},
|
meetingSetting: {},
|
||||||
messagesList: localStorage.getItem("MESSAGES")
|
messagesList: localStorage.getItem("MESSAGES")
|
||||||
@ -28,6 +31,10 @@ const store = createStore({
|
|||||||
state.joinUser = data;
|
state.joinUser = data;
|
||||||
localStorage.setItem("JOIN_USER", JSON.stringify(data));
|
localStorage.setItem("JOIN_USER", JSON.stringify(data));
|
||||||
},
|
},
|
||||||
|
setTempUser(state, data) {
|
||||||
|
state.tempUser = data
|
||||||
|
localStorage.setItem("TEMP_USER", JSON.stringify(data))
|
||||||
|
},
|
||||||
// 设置会议信息
|
// 设置会议信息
|
||||||
setMeetingInfo(state, data) {
|
setMeetingInfo(state, data) {
|
||||||
state.meeting = data;
|
state.meeting = data;
|
||||||
|
@ -930,11 +930,11 @@ $meetingComponentHeight: $meetingComponentWitdh * 9 / 16;
|
|||||||
$meetingBackgroundWidth: 80vw; //会议背景宽度
|
$meetingBackgroundWidth: 80vw; //会议背景宽度
|
||||||
$meetingBackgroundHeight: 80vw * 9 / 16;
|
$meetingBackgroundHeight: 80vw * 9 / 16;
|
||||||
|
|
||||||
@media screen and (max-width: 900px) {
|
// @media screen and (max-width: 900px) {
|
||||||
.like-row.isShare {
|
.like-row.isShare {
|
||||||
margin-top: 42px;
|
margin-top: 42px;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
// }
|
||||||
.isShare {
|
.isShare {
|
||||||
.text-label-container {
|
.text-label-container {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
@ -956,8 +956,13 @@ $meetingBackgroundHeight: 80vw * 9 / 16;
|
|||||||
> .zmwebsdk-MuiPaper-root
|
> .zmwebsdk-MuiPaper-root
|
||||||
> .zmwebsdk-MuiPaper-root:nth-child(2)) {
|
> .zmwebsdk-MuiPaper-root:nth-child(2)) {
|
||||||
// display: none !important;
|
// display: none !important;
|
||||||
|
// position: absolute;
|
||||||
|
// visibility: hidden;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
visibility: hidden;
|
visibility: visible;
|
||||||
|
bottom: 0;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, 100%);
|
||||||
}
|
}
|
||||||
// 视频组件宽度
|
// 视频组件宽度
|
||||||
:deep(#video-element
|
:deep(#video-element
|
||||||
@ -1012,16 +1017,16 @@ $meetingBackgroundHeight: 80vw * 9 / 16;
|
|||||||
height: calc(100vw * 1080 / 1920) !important;
|
height: calc(100vw * 1080 / 1920) !important;
|
||||||
}
|
}
|
||||||
// 底部操作条
|
// 底部操作条
|
||||||
:deep(#video-element
|
// :deep(#video-element
|
||||||
> div
|
// > div
|
||||||
> .zmwebsdk-MuiPaper-root
|
// > .zmwebsdk-MuiPaper-root
|
||||||
> .zmwebsdk-MuiPaper-root:nth-child(2)) {
|
// > .zmwebsdk-MuiPaper-root:nth-child(2)) {
|
||||||
position: absolute;
|
// position: absolute;
|
||||||
visibility: visible;
|
// visibility: visible;
|
||||||
bottom: 0;
|
// bottom: 0;
|
||||||
left: 50%;
|
// left: 50%;
|
||||||
transform: translate(-50%, 100%);
|
// transform: translate(-50%, 100%);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
.verticalFullScreen {
|
.verticalFullScreen {
|
||||||
// background-color: saddlebrown !important;
|
// background-color: saddlebrown !important;
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
<p class="meeting-time">
|
<p class="meeting-time">
|
||||||
<span class="title">会议开始时间</span>
|
<span class="title">会议开始时间</span>
|
||||||
<span class="time">{{ meeting.startTime }}</span>
|
<span class="time">{{ meeting.startTime }}</span>
|
||||||
<CountDown :start-time="meeting.startTime" />
|
<CountDown :start-time="meeting.startTime" @timeup="btnStatus = true" />
|
||||||
</p>
|
</p>
|
||||||
<div class="form-container">
|
<div class="form-container">
|
||||||
<el-form
|
<el-form
|
||||||
@ -53,9 +53,15 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="display: flex; justify-content: center">
|
<div style="display: flex; justify-content: center">
|
||||||
<el-button type="primary" @click="submitVerify(newJoinUserRef)"
|
<el-button
|
||||||
|
v-if="btnStatus"
|
||||||
|
type="primary"
|
||||||
|
@click="submitVerify(newJoinUserRef)"
|
||||||
>加入会议</el-button
|
>加入会议</el-button
|
||||||
>
|
>
|
||||||
|
<el-button v-else type="primary" @click="saveTempUser(newJoinUserRef)"
|
||||||
|
>保存信息</el-button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<agreement
|
<agreement
|
||||||
@ -107,6 +113,15 @@ const meetingId = ref(route.params.meetingId);
|
|||||||
meeting.value = _.cloneDeep(store.state.meeting);
|
meeting.value = _.cloneDeep(store.state.meeting);
|
||||||
newJoinUser.value.meetingId = meetingId.value;
|
newJoinUser.value.meetingId = meetingId.value;
|
||||||
|
|
||||||
|
const btnStatus = ref(false);
|
||||||
|
btnStatus.value = meeting.value.status == 1 ? true : false;
|
||||||
|
// 从本地存储中获取临时存储的信息
|
||||||
|
if (Object.keys(store.state.tempUser).length) {
|
||||||
|
if (meeting.value.id == store.state.tempUser.meetingId) {
|
||||||
|
newJoinUser.value = _.cloneDeep(store.state.tempUser);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const showUserAgreement = ref(false); // 是否显示用户协议弹窗
|
const showUserAgreement = ref(false); // 是否显示用户协议弹窗
|
||||||
const isAgreeAgreement = ref(false); // 是否同意协议
|
const isAgreeAgreement = ref(false); // 是否同意协议
|
||||||
|
|
||||||
@ -120,6 +135,12 @@ const submitVerify = async (newJoinUserRef) => {
|
|||||||
store.commit("setJoinUser", newJoinUser.value);
|
store.commit("setJoinUser", newJoinUser.value);
|
||||||
router.push(`/panelist/${meetingId.value}`);
|
router.push(`/panelist/${meetingId.value}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const saveTempUser = async (newJoinUserRef) => {
|
||||||
|
await newJoinUserRef.validate();
|
||||||
|
store.commit("setTempUser", newJoinUser.value);
|
||||||
|
ElMessage.success("已将信息存储到本地");
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
<p class="meeting-time">
|
<p class="meeting-time">
|
||||||
<span class="title">会议开始时间</span>
|
<span class="title">会议开始时间</span>
|
||||||
<span class="time">{{ meeting.startTime }}</span>
|
<span class="time">{{ meeting.startTime }}</span>
|
||||||
<CountDown :start-time="meeting.startTime" />
|
<CountDown :start-time="meeting.startTime" @timeup="btnStatus = true" />
|
||||||
</p>
|
</p>
|
||||||
<div class="form-container">
|
<div class="form-container">
|
||||||
<el-form
|
<el-form
|
||||||
@ -379,9 +379,15 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div style="display: flex; justify-content: center">
|
<div style="display: flex; justify-content: center">
|
||||||
<el-button type="primary" @click="submitVerify(newJoinUserRef)"
|
<el-button
|
||||||
|
v-if="btnStatus"
|
||||||
|
type="primary"
|
||||||
|
@click="submitVerify(newJoinUserRef)"
|
||||||
>加入会议</el-button
|
>加入会议</el-button
|
||||||
>
|
>
|
||||||
|
<el-button v-else type="primary" @click="saveTempUser(newJoinUserRef)"
|
||||||
|
>保存信息</el-button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<agreement
|
<agreement
|
||||||
@ -395,7 +401,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import CountDown from "@/components/countDown.vue";
|
import CountDown from "@/components/countDown.vue";
|
||||||
import { reactive, ref, toRefs } from "vue";
|
import { reactive, ref, toRefs } from "vue";
|
||||||
import { registerJoinUser, visitorJoinUser } from "@/api/meeting";
|
// import { registerJoinUser, visitorJoinUser } from "@/api/meeting";
|
||||||
import { ElMessage } from "element-plus";
|
import { ElMessage } from "element-plus";
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
import { useRoute, useRouter } from "vue-router";
|
import { useRoute, useRouter } from "vue-router";
|
||||||
@ -579,11 +585,19 @@ meeting.value = _.cloneDeep(store.state.meeting);
|
|||||||
|
|
||||||
const showUserAgreement = ref(false); // 是否显示用户协议弹窗
|
const showUserAgreement = ref(false); // 是否显示用户协议弹窗
|
||||||
const isAgreeAgreement = ref(false); // 是否同意协议
|
const isAgreeAgreement = ref(false); // 是否同意协议
|
||||||
|
|
||||||
if (data.fieldConfig) {
|
if (data.fieldConfig) {
|
||||||
fieldConfig.value = JSON.parse(meeting.value.fieldConfig);
|
fieldConfig.value = JSON.parse(meeting.value.fieldConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const btnStatus = ref(false);
|
||||||
|
btnStatus.value = meeting.value.status == 1 ? true : false;
|
||||||
|
// 从本地存储中获取临时存储的信息
|
||||||
|
if (Object.keys(store.state.tempUser).length) {
|
||||||
|
if (meeting.value.id == store.state.tempUser.meetingId) {
|
||||||
|
newJoinUser.value = _.cloneDeep(store.state.tempUser);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 设置gender basicLevelUnitFlag countryDoctorFlag affiliateWestFlag 默认值
|
// 设置gender basicLevelUnitFlag countryDoctorFlag affiliateWestFlag 默认值
|
||||||
const setJoinUserDefaultValue = () => {
|
const setJoinUserDefaultValue = () => {
|
||||||
[
|
[
|
||||||
@ -618,9 +632,6 @@ const submitVerify = async (newJoinUserRef) => {
|
|||||||
store.commit("setJoinUser", newJoinUser.value);
|
store.commit("setJoinUser", newJoinUser.value);
|
||||||
router.push(`/meeting/${meetingId.value}`);
|
router.push(`/meeting/${meetingId.value}`);
|
||||||
} else if (meeting.value.joinType === "2") {
|
} else if (meeting.value.joinType === "2") {
|
||||||
// const { data } = await registerJoinUser(newJoinUser.value);
|
|
||||||
// store.commit("setPassword", data);
|
|
||||||
console.log(meetingId.value);
|
|
||||||
store.commit("setJoinUser", newJoinUser.value);
|
store.commit("setJoinUser", newJoinUser.value);
|
||||||
router.push(`/meeting/${meetingId.value}`);
|
router.push(`/meeting/${meetingId.value}`);
|
||||||
} else if (meeting.value.joinType === "3") {
|
} else if (meeting.value.joinType === "3") {
|
||||||
@ -630,6 +641,12 @@ const submitVerify = async (newJoinUserRef) => {
|
|||||||
router.push(`/meeting/${meetingId.value}`);
|
router.push(`/meeting/${meetingId.value}`);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const saveTempUser = async (newJoinUserRef) => {
|
||||||
|
await newJoinUserRef.validate();
|
||||||
|
store.commit("setTempUser", newJoinUser.value);
|
||||||
|
ElMessage.success("已将信息存储到本地");
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
Reference in New Issue
Block a user