From 50c328b3594885da4d97d87b301bce9e565ef330 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期五, 09 八月 2024 16:10:56 +0800
Subject: [PATCH] feat:通过WebSokcet根据教师会议命令执行操作
---
src/views/exam-list/data-list/index.vue | 79 +++++++++++++++++++++++++++++++--------
1 files changed, 62 insertions(+), 17 deletions(-)
diff --git a/src/views/exam-list/data-list/index.vue b/src/views/exam-list/data-list/index.vue
index 2d4d5d0..8f1c21c 100644
--- a/src/views/exam-list/data-list/index.vue
+++ b/src/views/exam-list/data-list/index.vue
@@ -1,38 +1,41 @@
<template>
<div class="list-container w-full h-full">
<el-scrollbar>
- <el-card shadow="hover" class="mb-3">
+ <el-card shadow="hover" class="mb-3" v-for="item in props.dataList">
<div class="item flex justify-between items-center">
<div class="left-container flex flex-col justify-between">
<div class="top-container flex items-center">
- <div class="title mr-5 text-xl font-bold">娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯</div>
+ <div class="title mr-5 text-xl font-bold">{{ item.examName }}</div>
<div class="tag">
- <el-tag type="primary" effect="light" round>
- 鏈紑濮�
+ <el-tag :type="stateList[item.status].type" effect="light" round>
+ {{ stateList[item.status].text }}
</el-tag>
</div>
</div>
<div class="mid-container flex items-center my-4 text-gray-700">
- <el-icon class="mr-1"><Timer /></el-icon>
+ <el-icon class="mr-1">
+ <Timer />
+ </el-icon>
<div class="time">
- 鑰冭瘯鏃堕棿: 2024-6-5 08:00 ~ 2024-6-5 10:00
+ 鑰冭瘯鏃堕棿: {{ item.startTime }} ~ {{ item.endTime }}
</div>
</div>
- <div class="bottom-container flex text-sm text-gray-400">
+ <!-- <div class="bottom-container flex text-sm text-gray-400">
<div class="bottom-item">
- 鎬诲垎: 100
+ 鎬诲垎: {{ item.examScore }}
</div>
<div class="bottom-item">
- 棰樻暟: 20
+ 棰樻暟: {{ item.examTotal }}
</div>
<div class="bottom-item">
- 绛旈鏃堕棿: 20鍒嗛挓
+ 绛旈鏃堕棿: {{ item.examTime }}鍒嗛挓
</div>
- </div>
+ </div> -->
</div>
<div class="right-container">
<div class="button-container">
- <el-button type="primary" size="large" @click="examClick">寮�濮嬭�冭瘯</el-button>
+ <el-button type="primary" size="large" @click="examClick(item)"
+ :disabled="stateList[item.status].disabled">寮�濮嬭�冭瘯</el-button>
</div>
</div>
</div>
@@ -42,13 +45,54 @@
</template>
<script setup>
-import {ref} from 'vue';
+import { ref } from 'vue';
import { Timer } from '@element-plus/icons-vue';
-import {useRouter} from 'vue-router';
+import { useRouter } from 'vue-router';
+import { useExamStore } from '@/store/index.js';
+import { getExamInfo } from '@/api/modules/exam.js';
+const examStore = useExamStore();
+
const router = useRouter();
-const examClick = () => {
- router.push('/exam');
+const props = defineProps({
+ dataList: {
+ type: Array,
+ default: () => []
+ }
+});
+
+const stateList = {
+ 1: {
+ text: '鏈紑濮�',
+ type: 'primary',
+ disabled: true
+ },
+ 'ing': {
+ text: '杩涜涓�',
+ type: 'success',
+ disabled: false
+ },
+ 'finished': {
+ text: '宸茬粨鏉�',
+ type: 'info',
+ disabled: true
+ }
+};
+
+const examClick = (exam) => {
+ console.log(exam);
+ getExamInfo(exam.id).then((res) => {
+ examStore.setExamInfo({
+ id: res.data.id,
+ examName: res.data.examName,
+ suggestTime: res.data.suggestTime,
+ });
+ examStore.setExamDetail(res.data.titleList);
+ examStore.initExam(res.data.titleList[0].questionType);
+ router.push('/exam');
+ }).catch(err => {
+
+ });
}
</script>
@@ -58,7 +102,8 @@
width: 100%;
min-height: 120px;
}
+
.bottom-item {
margin-right: 30px;
}
-</style>
\ No newline at end of file
+</style>
--
Gitblit v1.8.0