You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
4.0 KiB
172 lines
4.0 KiB
9 months ago
|
<template>
|
||
|
<el-row :gutter="20">
|
||
|
<el-col :span="6">
|
||
|
<el-card>
|
||
|
<template #header>
|
||
|
<div>
|
||
|
<span>考生信息</span>
|
||
|
</div>
|
||
|
</template>
|
||
|
<p v-for="(userItem, userIndex) in userInfo" :key="userIndex">
|
||
|
<template v-if="userItem.type === 'datetimerange'">
|
||
|
<div>
|
||
|
<span>{{ userItem.lable }}:</span>
|
||
|
<span>{{ _.join(userData[userItem.prop], "——") }}</span>
|
||
|
</div>
|
||
|
</template>
|
||
|
<template v-else-if="userItem.type === 'text'">
|
||
|
<div>
|
||
|
<span>{{ userItem.lable }}:</span>
|
||
|
<span>{{ userData[userItem.prop] }}</span>
|
||
|
</div>
|
||
|
</template>
|
||
|
</p>
|
||
|
<template #footer>
|
||
|
<el-button type="primary" @click="connectTeacher">联系老师</el-button>
|
||
|
|
||
|
</template>
|
||
|
</el-card>
|
||
|
</el-col>
|
||
|
<el-col :span="6">
|
||
|
<el-card>
|
||
|
<template #header>
|
||
|
<div>
|
||
|
<span>实时作弊信息</span>
|
||
|
</div>
|
||
|
</template>
|
||
|
<p>实时作弊信息</p>
|
||
|
|
||
|
</el-card>
|
||
|
</el-col>
|
||
|
<el-col :span="12">
|
||
|
视频
|
||
|
</el-col>
|
||
|
</el-row>
|
||
|
</template>
|
||
|
<script>
|
||
|
import _ from "lodash";
|
||
|
import { io } from "socket.io-client";
|
||
|
import {
|
||
|
getUser, //获取user信息
|
||
|
} from "@/api/student";
|
||
|
export default {
|
||
|
name: "student",
|
||
|
components: {},
|
||
|
data() {
|
||
|
return {
|
||
|
_: _,
|
||
|
userId: "",
|
||
|
// 学生姓名、学号,考试类型、考试科目、考试时间段
|
||
|
userInfo: [
|
||
|
{
|
||
|
lable: "学校名称",
|
||
|
prop: "xuexiaomingcheng",
|
||
|
type: "text"
|
||
|
},
|
||
|
{
|
||
|
lable: "学校代号",
|
||
|
prop: "xuexiaodaihao",
|
||
|
type: "text"
|
||
|
},
|
||
|
{
|
||
|
lable: "专业名称",
|
||
|
prop: "zhuanyemingcheng",
|
||
|
type: "text"
|
||
|
},
|
||
|
{
|
||
|
lable: "专业代号",
|
||
|
prop: "zhuanyedaihao",
|
||
|
type: "text"
|
||
|
},
|
||
|
{
|
||
|
lable: "年级",
|
||
|
prop: "nianji",
|
||
|
type: "text"
|
||
|
},
|
||
|
{
|
||
|
lable: "班级",
|
||
|
prop: "banji",
|
||
|
type: "text"
|
||
|
},
|
||
|
{
|
||
|
lable: "学生姓名",
|
||
|
prop: "xueshengxingming",
|
||
|
type: "text"
|
||
|
},
|
||
|
{
|
||
|
lable: "学号",
|
||
|
prop: "xuehao",
|
||
|
type: "text"
|
||
|
},
|
||
|
{
|
||
|
lable: "考试类型",
|
||
|
prop: "kaoshileixing",
|
||
|
type: "text"
|
||
|
},
|
||
|
{
|
||
|
lable: "考试科目",
|
||
|
prop: "kaoshikemu",
|
||
|
type: "text"
|
||
|
},
|
||
|
{
|
||
|
lable: "考试时间段",
|
||
|
prop: "kaoshishijianduan",
|
||
|
type: "datetimerange"
|
||
|
},
|
||
|
],
|
||
|
userData: {},
|
||
|
socketMsg: io("http://localhost:3000/msg"),
|
||
|
socketVedio: io("http://localhost:3000/vedio")
|
||
|
};
|
||
|
},
|
||
|
watch: {},
|
||
|
computed: {},
|
||
|
async mounted() {
|
||
|
this.userId = _.get(this.$route, ["params", "id"], "")
|
||
|
await this.getUser()
|
||
|
this.initMsg()
|
||
|
},
|
||
|
methods: {
|
||
|
async getUser() {
|
||
|
let res = await getUser({
|
||
|
id: this.userId
|
||
|
})
|
||
|
this.userData = res.list[0]
|
||
|
},
|
||
|
initMsg() {
|
||
|
this.socketMsg.on("connect", (data) => {
|
||
|
console.log(data);
|
||
|
});
|
||
|
this.socketMsg.on("data", (data) => {
|
||
|
console.log(data);
|
||
|
});
|
||
|
this.socketMsg.on("disconnect", (data) => {
|
||
|
console.log(data);
|
||
|
});
|
||
|
this.socketMsg.on('response', (data) => {
|
||
|
this.messages.push({ id: Date.now(), text: data.data });
|
||
|
});
|
||
|
},
|
||
|
initVedio() {
|
||
|
this.socketVedio.on("connect", (data) => {
|
||
|
console.log(data);
|
||
|
});
|
||
|
this.socketVedio.on("data", (data) => {
|
||
|
console.log(data);
|
||
|
});
|
||
|
this.socketVedio.on("disconnect", (data) => {
|
||
|
console.log(data);
|
||
|
});
|
||
|
this.socketVedio.on('response', (data) => {
|
||
|
this.messages.push({ id: Date.now(), text: data.data });
|
||
|
});
|
||
|
},
|
||
|
connectTeacher() {
|
||
|
this.socketMsg.emit('message', "this.message");
|
||
|
}
|
||
|
},
|
||
|
beforeUnmount() { },
|
||
|
};
|
||
|
</script>
|
||
|
<style scoped></style>
|