敏感词提示

This commit is contained in:
cxc
2022-06-14 17:35:36 +08:00
parent 7a09fb7ea7
commit 98e07f152f
6 changed files with 58 additions and 23 deletions

View File

@ -118,7 +118,7 @@ const openRichMessageEditor = () => {
const sendMessage = () => {
const msgObj = {
id: uniqueId(),
account,
account: account.value,
msg: editingMessage.value,
isMe: true,
time: dayjs().format("YYYY-MM-DD HH:mm:ss"),

View File

@ -67,12 +67,24 @@ router.beforeEach(async (to) => {
if (!store.state.meeting.id && to.params.meetingId) {
await store.dispatch("getMeetingInfo", to.params.meetingId);
}
// 当路由类型host,panelist,meeting,supervisor改变时,清空用户信息、消息列表
// if (store.state.routeType !== to.name) {
// store.commit("setMessagesList", []);
// store.commit("setJoinUser", {});
// }
// store.commit("setRouteType", to.name);
// 如果前往页面的会议id于之前的不同就清除用户信息、消息列表
if (to.params.meetingId !== store.state.joinUser.meetingId) {
store.commit("setJoinUser", {});
store.commit("setMessagesList", []);
}
// 前往主持人页面
if (to.name === "Host") {
console.log("host");
if (to.params.meetingId !== store.state.joinUser.meetingId) {
store.commit("setMessagesList", []);
}
// console.log("host");
// if (to.params.meetingId !== store.state.joinUser.meetingId) {
// store.commit("setMessagesList", []);
// }
store.commit("setJoinUser", {
meetingId: to.params.meetingId,
nickname: to.params.nickname,
@ -85,10 +97,10 @@ router.beforeEach(async (to) => {
// 如果要前往参会页面
else if (to.name === "Meeting") {
// 如果要去的页面会议号于 vuex中的不一样则清除数据
if (to.params.meetingId !== store.state.joinUser.meetingId) {
store.commit("setJoinUser", {});
store.commit("setMessagesList", []);
}
// if (to.params.meetingId !== store.state.joinUser.meetingId) {
// store.commit("setJoinUser", {});
// store.commit("setMessagesList", []);
// }
// 如果参会方式发生更改,则清除数据
if (
store.state.joinType &&
@ -153,10 +165,10 @@ router.beforeEach(async (to) => {
}
} else if (to.name === "Panelist") {
// 如果要去的页面会议号于 vuex中的不一样则清除数据
if (to.params.meetingId !== store.state.joinUser.meetingId) {
store.commit("setJoinUser", {});
store.commit("setMessagesList", []);
}
// if (to.params.meetingId !== store.state.joinUser.meetingId) {
// store.commit("setJoinUser", {});
// store.commit("setMessagesList", []);
// }
if (store.state.joinUser.icCard) {
try {
const { meetingPassword, email } = await panelistJoinMeeting({

View File

@ -15,6 +15,9 @@ const store = createStore({
joinType: localStorage.getItem("JOINTYPE")
? JSON.parse(localStorage.getItem("JOINTYPE"))
: "",
routeType: localStorage.getItem("ROUTETYPE")
? localStorage.getItem("ROUTETYPE")
: "",
},
mutations: {
// 设置参会人员信息
@ -43,6 +46,10 @@ const store = createStore({
state.messagesList = data;
localStorage.setItem("MESSAGES", JSON.stringify(data));
},
setRouteType(state, data) {
state.routeType = data;
localStorage.setItem("ROUTETYPE", data);
},
},
actions: {
// 请求会议信息

View File

@ -29,7 +29,7 @@
</div>
<div class="joinuser-item" v-if="fieldConfig.phone">
<el-form-item label="手机号" prop="phone">
<el-input v-model="appointForm.phone" placeholder="请输入手机号" />
<el-input v-model="appointForm.phone" maxlength="11" placeholder="请输入手机号" />
</el-form-item>
</div>
<div class="joinuser-item" v-if="fieldConfig.unit">

View File

@ -64,6 +64,12 @@
@send="sendMessage"
/>
</el-tab-pane>
<!-- <el-tab-pane label="其他"> -->
<!-- // 签到、考试、问卷弹窗 -->
<!-- <el-row :gutter="10"> -->
<!-- <el-col :xs="24" :sm="24" :md="8" :lg="3" :xl="1"></el-col> -->
<!-- </el-row> -->
<!-- </el-tab-pane> -->
</el-tabs>
<el-dialog
@ -121,12 +127,7 @@ import { uniqueId } from "lodash";
import ZoomMtgEmbedded from "@zoomus/websdk/embedded";
import ReconnectingWebSocket from "reconnecting-websocket";
import { ElMessage, ElMessageBox } from "element-plus";
import {
FullScreen,
CloseBold,
Microphone,
Mute,
} from "@element-plus/icons-vue";
import { FullScreen, CloseBold } from "@element-plus/icons-vue";
import { signMeeting, generateSignature } from "@/api/meeting";
import Chat from "@/components/chat";
import mediaCheck from "@/components/mediaCheck.vue";
@ -148,7 +149,10 @@ screenWidth.value = window.screen.width;
const joinName = ref(""); // 显示昵称
const joinAccount = ref(""); // 用于连接 websocket提交考试
joinAccount.value =
store.getters.icCard || store.getters.phone || store.getters.nickname;
store.getters.username ||
store.getters.icCard ||
store.getters.phone ||
store.getters.nickname;
joinName.value =
store.getters.nickname || store.getters.phone || store.getters.icCard;
@ -547,7 +551,14 @@ const initWebSocket = () => {
// 监听websocket消息
socket.addEventListener("message", async (event) => {
const data = JSON.parse(JSON.parse(event.data));
// console.log(JSON.parse(event.data));
let data;
try {
data = JSON.parse(JSON.parse(event.data));
} catch (error) {
console.log(error);
data = JSON.parse(event.data);
}
console.log(data);
// 会议信息更新时
if (data.type === "isRefreshMeeting") {
@ -574,6 +585,11 @@ const initWebSocket = () => {
});
store.commit("setMessagesList", messages.value);
}
// 当检测到敏感词时
else if (data.type === "isSensitive") {
console.log("敏感词");
ElMessage.error(`消息未发送成功,因为包含违禁词:${data.content}`);
}
// 开始签到时
else if (data.type === "isStartSign" && route.name === "Meeting") {
showSignDialog.value = true;

View File

@ -44,7 +44,7 @@
<el-input
v-model.number="newJoinUser.phone"
placeholder="请输入手机号"
max="11"
maxlength="11"
/>
</el-form-item>
</div>