1、承担任务:
我承担的任务主要是【加入会议】这个模块的前端,需求如下:
这一部分的功能已经全部完成。
输入会议号后
(1)会议不存在,提示会议不存在
(2)会议正在进行,进入会议室
(3)需要密码
输入密码后进入会议室
- 会议未开始,可以选择直接进入或者加入到我的会议中
2、部分代码:
<script>
import { getM } from "@/services/getmeetingstate";
import { ConfirmMpwd, AddMeeting } from "@/services/confirm_mpwd";
import { mapGetters } from 'vuex'
export default {
computed: {
...mapGetters("account", [
"username",
"userId"
]),
},
methods: {
handleOk() {//提前进入会议
if (this.needpassword) {
//调用判断密码是否正确的接口,正确则进入会议,错误则提示密码错误
ConfirmMpwd(this.form.Mnumber, this.form.Massword).then(res => {
let meetingNumber = this.form.Mnumber;
if (res.data.data.confirmResult == false) {
this.form.Mpassword = ''
this.$message.error('密码错误,请重新输入!')
} else if (res.data.data.confirmResult == true) {
this.$message.success('密码正确,成功加入会议:' + meetingNumber + '!')
this.resetForm()
this.attention_visible = false
this.needpassword = false
this.enterMeeting()
}
})
} else {
this.enterMeeting()
}
},
handleAdd() {
//将会议加入【我的会议】
if (this.needpassword) {
//以会议号和密码调用添加会议的接口,正确则将该会议加入到我的会议,错误则提示密码错误
console.log('ok')
AddMeeting(this.form.Mnumber, this.needpassword, this.form.Mpassword).then(res => {
if (res.data.data.confirmResult == true) {
this.attention_visible = false;
this.needpassword_visible = false;
this.resetForm();
this.$message.success('已添加会议,可前往【我的会议】查看!')
} else {
this.form.Mpassword = ''
this.$message.error('会议密码错误,请重新输入!')
}
})
} else {
AddMeeting(this.form.Mnumber, this.needpassword, this.form.Mpassword).then(res => {
if (res.data.data.confirmResult == true) {
let meetingNumber=this.form.Mnumber
this.attention_visible = false;
this.needpassword_visible = false;
this.resetForm();
this.$message.success('已添加会议 '+meetingNumber+' ,可前往【我的会议】查看!')
}
})
}
},
handleOk2() {
//调用判断密码是否正确的接口,正确则进入会议,错误则提示密码错误
ConfirmMpwd(this.form.Mnumber, this.form.Mpassword).then(res => {
let meetingNumber = this.form.Mnumber;
if (res.data.data.confirmResult == false) {
this.form.Mpassword = ''
this.$message.error('密码错误,请重新输入!')
} else if (res.data.data.confirmResult == true) {
this.$message.success('密码正确,成功加入会议:' + meetingNumber + '!')
this.resetForm()
this.attention_visible = false
this.needpassword_visible = false
this.needpassword = false
this.enterMeeting()
}
})
},
onSubmit(e) {
//提交会议号
e.preventDefault()
this.$refs.ruleForm.validate((valid) => {
if (valid) {
this.enterloading = true;
let meetingNumber = this.form.Mnumber;
getM(meetingNumber, this.userId).then(this.confirmMeetingState)
this.enterloading = false;
} else {
console.log("输入错误");
this.enterloading = false;
return false;
}
});
},
confirmMeetingState(res) {
// 判断会议状态
if (res.data.code === 501) {//会议不存在
this.$message.error('会议不存在,请核对会议号!')
this.enterloading = false;
} else {
if (res.data.data.status === 100) {//会议未开始
this.enterloading = false;
this.needpassword = res.data.data.needpassword;
this.showModal1();
} else if (res.data.data.status === 200) {
//调用判断是否需要密码的接口,如果需要密码则显示密码框
this.needpassword = res.data.data.needpassword
if (this.needpassword == true) {
this.showModal2();
} else if (this.needpassword == false) {
this.enterMeeting()
}
} else if (res.data.data.status === 300) {
this.enterloading = false;
this.$message.error('会议已经结束,无法加入!')
} else if (res.data.data.status === 400) {
this.enterloading = false;
this.$message.error('没有权限,无法加入会议')
}
}
},
enterMeeting() {
//跳转到会议页面
let meetingNumber = this.form.Mnumber;
let routerurl = this.$router.resolve({
path: '/meetingOn', query: { meetingNumber: meetingNumber }
});
window.open(routerurl.href, '_blank');
this.$message.success('成功加入会议,会议号为:' + meetingNumber + '!')
},
resetForm() {
this.$refs.ruleForm.resetFields();
},
},
};
</script>
获取会议状态接口
import {request,METHOD} from "@/utils/request";
//import qs from 'qs'
import {GET_MEETINGSTATE} from "@/services/api"
/**
* 获取会议状态服务
* @returns {Promise<AxiosResponse<T>>}
*/
export async function getM(meetingNumber,user_id){
return request(GET_MEETINGSTATE,METHOD.GET,{
meetingNumber: meetingNumber,
user_id:user_id
}
)
}
export default {
getM,
}
判断密码接口
import {request,METHOD} from "@/utils/request";
import {CONFIRM_MEETINGPASSWORD,ADD_MEETING} from "@/services/api"
import qs from 'qs'
/**
* 判断密码是否正确
* @returns {Promise<AxiosResponse<T>>}
*/
export async function ConfirmMpwd(meetingNumber,meetingPassword){
return request(CONFIRM_MEETINGPASSWORD,METHOD.GET,{
meetingNumber:meetingNumber,
meetingPassword:meetingPassword,
})
}
/**
* 判断密码是否正确,以加入会议
* @returns {Promise<AxiosResponse<T>>}
*/
export async function AddMeeting(meetingNumber,requirePassword,meetingPassword){