【新增】试卷参数,【修改】监控管理
This commit is contained in:
@@ -45,4 +45,15 @@ export const MonitorApi = {
|
||||
exportMonitor: async (params) => {
|
||||
return await request.download({ url: `/exam/monitor/export-excel`, params })
|
||||
},
|
||||
|
||||
|
||||
getPaperTaskList: async (id: string) => {
|
||||
return await request.get({ url: `/exam/monitor/getPaperTaskList?id=` + id })
|
||||
},
|
||||
|
||||
|
||||
updateMonitorStatus:async( data)=>{
|
||||
return await request.post({ url: `/exam/monitor/updateMonitorStatus` , data })
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,24 @@
|
||||
<template>
|
||||
<!-- 状态选择弹窗 -->
|
||||
<el-dialog v-model="dialogVisible" title="请选择考试状态" width="400px">
|
||||
|
||||
<el-form label-width="80px" class="px-4 pt-2">
|
||||
<el-form-item label="考试状态">
|
||||
<el-radio-group v-model="selectedStatus">
|
||||
<el-radio :label="'0'">代考</el-radio>
|
||||
<el-radio :label="'1'">考试中</el-radio>
|
||||
<el-radio :label="'2'">考试完成</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<template #footer>
|
||||
<el-button @click="dialogVisible = false">取消</el-button>
|
||||
<el-button type="primary" @click="confirmChange">确认</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
<ContentWrap>
|
||||
<!-- 搜索工作栏 -->
|
||||
<el-form
|
||||
@@ -26,28 +46,6 @@
|
||||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="班级" prop="className">
|
||||
<el-input
|
||||
v-model="queryParams.className"
|
||||
placeholder="请输入班级"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="考试状态" prop="examStatus">
|
||||
<el-select
|
||||
v-model="queryParams.examStatus"
|
||||
placeholder="请选择考试状态"
|
||||
clearable
|
||||
class="!w-240px"
|
||||
>
|
||||
<el-option label="代考" :value="0" />
|
||||
<el-option label="考试中" :value="1" />
|
||||
<el-option label="考试结束" :value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="试卷编号" prop="paperNum">
|
||||
<el-input
|
||||
v-model="queryParams.paperNum"
|
||||
@@ -57,15 +55,7 @@
|
||||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="试卷任务" prop="taskName">
|
||||
<el-input
|
||||
v-model="queryParams.taskName"
|
||||
placeholder="请输入试卷任务"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="机器ip" prop="ip">
|
||||
<el-input
|
||||
v-model="queryParams.ip"
|
||||
@@ -77,9 +67,68 @@
|
||||
</el-form-item>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<el-form-item label="考试状态" prop="examStatus">
|
||||
<el-select
|
||||
v-model="queryParams.examStatus"
|
||||
placeholder="请选择考试状态"
|
||||
clearable
|
||||
class="!w-240px"
|
||||
>
|
||||
<el-option label="待考" :value="0" />
|
||||
<el-option label="考试中" :value="1" />
|
||||
<el-option label="考试结束" :value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="任务类别" prop="taskType">
|
||||
<el-select v-model="queryParams.taskType" placeholder="任务类别" class="!w-240px" @change="fetchTaskList">
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TASK_TYPE)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="试卷任务" prop="taskName">
|
||||
<el-select v-model="queryParams.taskName" placeholder="请选择试卷任务" class="!w-240px">
|
||||
<el-option
|
||||
v-for="item in taskList"
|
||||
:key="item.taskName"
|
||||
:label="item.taskName"
|
||||
:value="item.taskName"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="班级" prop="className">
|
||||
<el-select
|
||||
v-model="queryParams.className"
|
||||
filterable
|
||||
allow-create
|
||||
default-first-option
|
||||
placeholder="请选择或输入"
|
||||
class="!w-240px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in classNameList"
|
||||
:key="item.className"
|
||||
:label="item.className"
|
||||
:value="item.className"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
|
||||
<el-form-item>
|
||||
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
|
||||
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
|
||||
<el-button type="primary" @click="openDialog"><Icon icon="ep:edit" class="mr-5px" />考试状态改变</el-button>
|
||||
<!-- <el-button
|
||||
type="primary"
|
||||
plain
|
||||
@@ -98,12 +147,15 @@
|
||||
<Icon icon="ep:download" class="mr-5px" /> 导出
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
</el-form>
|
||||
</ContentWrap>
|
||||
|
||||
<!-- 列表 -->
|
||||
<ContentWrap>
|
||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
|
||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="用户账号" align="center" prop="username" />
|
||||
<el-table-column label="用户姓名" align="center" prop="nickname" />
|
||||
<el-table-column label="班级" align="center" prop="className" />
|
||||
@@ -115,6 +167,11 @@
|
||||
|
||||
<el-table-column label="成绩" align="center" prop="score" />
|
||||
<el-table-column label="试卷编号" align="center" prop="paperNum" />
|
||||
<el-table-column label="任务模式" align="center" prop="taskType">
|
||||
<template #default="scope">
|
||||
<dict-tag :type="DICT_TYPE.TASK_TYPE" :value="scope.row.taskType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="试卷任务" align="center" prop="taskName" />
|
||||
<el-table-column label="机器ip" align="center" prop="ip" />
|
||||
<el-table-column
|
||||
@@ -169,20 +226,26 @@ import download from '@/utils/download'
|
||||
import { MonitorApi, MonitorVO } from '@/api/monitor'
|
||||
import MonitorForm from './MonitorForm.vue'
|
||||
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
||||
import * as ClassApi from '@/api/exam/class'
|
||||
/** 监控管理 列表 */
|
||||
defineOptions({ name: 'Monitor' })
|
||||
|
||||
// 弹窗开关
|
||||
const dialogVisible = ref(false)
|
||||
const message = useMessage() // 消息弹窗
|
||||
const { t } = useI18n() // 国际化
|
||||
|
||||
const selectedStatus = ref<string | null>(null);
|
||||
const loading = ref(true) // 列表的加载中
|
||||
const list = ref<MonitorVO[]>([]) // 列表的数据
|
||||
const total = ref(0) // 列表的总页数
|
||||
const classNameList = ref();
|
||||
const queryParams = reactive({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
monitorId:'',
|
||||
username: undefined,
|
||||
nickname: undefined,
|
||||
taskType:undefined,
|
||||
className: undefined,
|
||||
examStatus: undefined,
|
||||
score: undefined,
|
||||
@@ -194,10 +257,11 @@ const queryParams = reactive({
|
||||
})
|
||||
const queryFormRef = ref() // 搜索的表单
|
||||
const exportLoading = ref(false) // 导出的加载中
|
||||
|
||||
const taskTypeyOptions = ref<string[]>([])
|
||||
/** 查询列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true
|
||||
classNameList.value = await ClassApi.ClassApi.getClassName()
|
||||
try {
|
||||
const data = await MonitorApi.getMonitorPage(queryParams)
|
||||
list.value = data.list
|
||||
@@ -206,6 +270,27 @@ const getList = async () => {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
// 打开弹窗
|
||||
|
||||
const openDialog = async () => {
|
||||
const rows = selections.value;
|
||||
if (!rows.length) {
|
||||
message.error('请至少选择一条数据');
|
||||
return;
|
||||
}
|
||||
|
||||
dialogVisible.value = true
|
||||
selections.value = rows;
|
||||
|
||||
}
|
||||
|
||||
/** 表格选中数据 */
|
||||
const selections = ref([]);
|
||||
const taskList = ref([]);
|
||||
const handleSelectionChange = (rows) => {
|
||||
selections.value = rows;
|
||||
}
|
||||
const dateFormatterMin = (row, column, cellValue) => {
|
||||
if (cellValue == null || isNaN(cellValue)) return '-';
|
||||
|
||||
@@ -236,7 +321,28 @@ const formRef = ref()
|
||||
const openForm = (type: string, id?: number) => {
|
||||
formRef.value.open(type, id)
|
||||
}
|
||||
// 提交状态变更
|
||||
const confirmChange = async () => {
|
||||
|
||||
if (selectedStatus.value === null) {
|
||||
ElMessage.error('请选择考试状态');
|
||||
return;
|
||||
}
|
||||
|
||||
const rows = selections.value;
|
||||
|
||||
const monitorIds = rows.map((row: any) => row.monitorId);
|
||||
|
||||
|
||||
await MonitorApi.updateMonitorStatus({
|
||||
monitorIds, // 这是数组
|
||||
status: selectedStatus.value // 这是 0,1,2
|
||||
});
|
||||
|
||||
|
||||
ElMessage.success('考试状态更新成功')
|
||||
dialogVisible.value = false
|
||||
}
|
||||
/** 删除按钮操作 */
|
||||
const handleDelete = async (id: number) => {
|
||||
try {
|
||||
@@ -250,18 +356,43 @@ const handleDelete = async (id: number) => {
|
||||
} catch {}
|
||||
}
|
||||
|
||||
const selectedRows = ref<string[]>([]);
|
||||
/** 导出按钮操作 */
|
||||
const handleExport = async () => {
|
||||
const rows = selections.value;
|
||||
if (!rows.length) {
|
||||
message.error('请至少选择一条数据');
|
||||
return;
|
||||
}
|
||||
console.log(rows.length)
|
||||
try {
|
||||
// 导出的二次确认
|
||||
await message.exportConfirm()
|
||||
// 发起导出
|
||||
exportLoading.value = true
|
||||
const data = await MonitorApi.exportMonitor(queryParams)
|
||||
download.excel(data, '监控管理.xls')
|
||||
await message.exportConfirm();
|
||||
|
||||
// 将选中的 monitorId 填入 queryParams
|
||||
queryParams.monitorId = rows.map((row: any) => row.monitorId).join(',');
|
||||
|
||||
exportLoading.value = true;
|
||||
|
||||
const data = await MonitorApi.exportMonitor(queryParams);
|
||||
download.excel(data, '监控管理.xls');
|
||||
} catch {
|
||||
// 可选:错误处理
|
||||
} finally {
|
||||
exportLoading.value = false
|
||||
exportLoading.value = false;
|
||||
|
||||
// 导出后重置 monitorId,避免影响后续查询
|
||||
queryParams.monitorId = '';
|
||||
}
|
||||
}
|
||||
const fetchTaskList = async (taskType: string) => {
|
||||
|
||||
try {
|
||||
const res = await MonitorApi.getPaperTaskList( taskType )
|
||||
taskList.value = res
|
||||
} catch (error) {
|
||||
taskList.value = []
|
||||
console.error('获取试卷任务失败', error)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
<!-- 第一个 tab - 通用参数 -->
|
||||
<el-tab-pane label="通用参数" name="tab1">
|
||||
<el-form :model="form" label-width="200px" style="margin-top: 20px;">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
|
||||
|
||||
<!-- 是否使用监考密码验证 -->
|
||||
<el-form-item label="是否使用监考密码验证">
|
||||
<el-switch
|
||||
@@ -16,7 +20,51 @@
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
|
||||
<!-- 是否启用考场设置 -->
|
||||
<!-- 监考密码 -->
|
||||
<el-form-item label="监考密码" v-if="form.isExamPassword === '0'">
|
||||
<el-input v-model="form.examPassword" placeholder="请输入监考密码" @input="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否显示试卷编号">
|
||||
<el-switch
|
||||
v-model="form.isNumber"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否在查看时显示试卷内容">
|
||||
<el-switch
|
||||
v-model="form.isContent"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="考生答题时是否显示试题编号">
|
||||
<el-switch
|
||||
v-model="form.isAnswerId"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否启用考场设置">
|
||||
<el-switch
|
||||
v-model="form.isSession"
|
||||
@@ -26,11 +74,11 @@
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
<!-- 监考密码 -->
|
||||
<el-form-item label="监考密码" v-if="form.isExamPassword === '0'">
|
||||
<el-input v-model="form.examPassword" placeholder="请输入监考密码" @input="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<!-- 禁止学生使用U盘 -->
|
||||
<el-form-item label="禁止学生使用U盘">
|
||||
<el-switch
|
||||
@@ -41,6 +89,10 @@
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
|
||||
<!-- 练习成绩保存 -->
|
||||
<el-form-item label="练习成绩保存">
|
||||
@@ -49,8 +101,9 @@
|
||||
<el-radio label="1">最新成绩</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否显示重答按钮">
|
||||
<el-switch
|
||||
v-model="form.isRepeat"
|
||||
@@ -61,7 +114,8 @@
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="是否显示答案按钮">
|
||||
<el-switch
|
||||
v-model="form.isAnswer"
|
||||
@@ -141,6 +195,9 @@ const props = defineProps({
|
||||
|
||||
// 字段初始值设置为空或空字符串
|
||||
const form = ref({
|
||||
isAnswerId:'',
|
||||
isContent:'',
|
||||
isNumber:'',
|
||||
isExamPassword: '', // 是否使用监考密码验证
|
||||
examPassword: '', // 监考密码
|
||||
usb: '', // 是否禁止U盘
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
<!-- 第一个 tab - 通用参数 -->
|
||||
<el-tab-pane label="通用参数" name="tab1">
|
||||
<el-form :model="form" label-width="200px" style="margin-top: 20px;">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
|
||||
|
||||
<!-- 是否使用监考密码验证 -->
|
||||
<el-form-item label="是否使用监考密码验证">
|
||||
<el-switch
|
||||
@@ -16,7 +20,51 @@
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
|
||||
<!-- 是否使用监考密码验证 -->
|
||||
<!-- 监考密码 -->
|
||||
<el-form-item label="监考密码" v-if="form.isExamPassword === '0'">
|
||||
<el-input v-model="form.examPassword" placeholder="请输入监考密码" @input="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否显示试卷编号">
|
||||
<el-switch
|
||||
v-model="form.isNumber"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否在查看时显示试卷内容">
|
||||
<el-switch
|
||||
v-model="form.isContent"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="考生答题时是否显示试题编号">
|
||||
<el-switch
|
||||
v-model="form.isAnswerId"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否启用考场设置">
|
||||
<el-switch
|
||||
v-model="form.isSession"
|
||||
@@ -26,11 +74,11 @@
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
<!-- 监考密码 -->
|
||||
<el-form-item label="监考密码" v-if="form.isExamPassword === '0'">
|
||||
<el-input v-model="form.examPassword" placeholder="请输入监考密码" @input="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<!-- 禁止学生使用U盘 -->
|
||||
<el-form-item label="禁止学生使用U盘">
|
||||
<el-switch
|
||||
@@ -41,6 +89,10 @@
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
|
||||
<!-- 练习成绩保存 -->
|
||||
<el-form-item label="练习成绩保存">
|
||||
@@ -49,8 +101,9 @@
|
||||
<el-radio label="1">最新成绩</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否显示重答按钮">
|
||||
<el-switch
|
||||
v-model="form.isRepeat"
|
||||
@@ -61,7 +114,8 @@
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="是否显示答案按钮">
|
||||
<el-switch
|
||||
v-model="form.isAnswer"
|
||||
@@ -141,6 +195,9 @@ const props = defineProps({
|
||||
|
||||
// 字段初始值设置为空或空字符串
|
||||
const form = ref({
|
||||
isAnswerId:'',
|
||||
isContent:'',
|
||||
isNumber:'',
|
||||
isExamPassword: '', // 是否使用监考密码验证
|
||||
examPassword: '', // 监考密码
|
||||
usb: '', // 是否禁止U盘
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
<!-- 第一个 tab - 通用参数 -->
|
||||
<el-tab-pane label="通用参数" name="tab1">
|
||||
<el-form :model="form" label-width="200px" style="margin-top: 20px;">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
|
||||
|
||||
<!-- 是否使用监考密码验证 -->
|
||||
<el-form-item label="是否使用监考密码验证">
|
||||
<el-switch
|
||||
@@ -16,7 +20,51 @@
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
|
||||
<!-- 是否使用监考密码验证 -->
|
||||
<!-- 监考密码 -->
|
||||
<el-form-item label="监考密码" v-if="form.isExamPassword === '0'">
|
||||
<el-input v-model="form.examPassword" placeholder="请输入监考密码" @input="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否显示试卷编号">
|
||||
<el-switch
|
||||
v-model="form.isNumber"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否在查看时显示试卷内容">
|
||||
<el-switch
|
||||
v-model="form.isContent"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="考生答题时是否显示试题编号">
|
||||
<el-switch
|
||||
v-model="form.isAnswerId"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否启用考场设置">
|
||||
<el-switch
|
||||
v-model="form.isSession"
|
||||
@@ -26,11 +74,11 @@
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
<!-- 监考密码 -->
|
||||
<el-form-item label="监考密码" v-if="form.isExamPassword === '0'">
|
||||
<el-input v-model="form.examPassword" placeholder="请输入监考密码" @input="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<!-- 禁止学生使用U盘 -->
|
||||
<el-form-item label="禁止学生使用U盘">
|
||||
<el-switch
|
||||
@@ -41,6 +89,10 @@
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
|
||||
<!-- 练习成绩保存 -->
|
||||
<el-form-item label="练习成绩保存">
|
||||
@@ -49,8 +101,9 @@
|
||||
<el-radio label="1">最新成绩</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否显示重答按钮">
|
||||
<el-switch
|
||||
v-model="form.isRepeat"
|
||||
@@ -61,7 +114,8 @@
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="是否显示答案按钮">
|
||||
<el-switch
|
||||
v-model="form.isAnswer"
|
||||
@@ -141,6 +195,9 @@ const props = defineProps({
|
||||
|
||||
// 字段初始值设置为空或空字符串
|
||||
const form = ref({
|
||||
isAnswerId:'',
|
||||
isContent:'',
|
||||
isNumber:'',
|
||||
isExamPassword: '', // 是否使用监考密码验证
|
||||
examPassword: '', // 监考密码
|
||||
usb: '', // 是否禁止U盘
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
<!-- 第一个 tab - 通用参数 -->
|
||||
<el-tab-pane label="通用参数" name="tab1">
|
||||
<el-form :model="form" label-width="200px" style="margin-top: 20px;">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
|
||||
|
||||
<!-- 是否使用监考密码验证 -->
|
||||
<el-form-item label="是否使用监考密码验证">
|
||||
<el-switch
|
||||
@@ -16,7 +20,51 @@
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
|
||||
<!-- 是否使用监考密码验证 -->
|
||||
<!-- 监考密码 -->
|
||||
<el-form-item label="监考密码" v-if="form.isExamPassword === '0'">
|
||||
<el-input v-model="form.examPassword" placeholder="请输入监考密码" @input="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否显示试卷编号">
|
||||
<el-switch
|
||||
v-model="form.isNumber"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否在查看时显示试卷内容">
|
||||
<el-switch
|
||||
v-model="form.isContent"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="考生答题时是否显示试题编号">
|
||||
<el-switch
|
||||
v-model="form.isAnswerId"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否启用考场设置">
|
||||
<el-switch
|
||||
v-model="form.isSession"
|
||||
@@ -26,11 +74,11 @@
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
<!-- 监考密码 -->
|
||||
<el-form-item label="监考密码" v-if="form.isExamPassword === '0'">
|
||||
<el-input v-model="form.examPassword" placeholder="请输入监考密码" @input="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<!-- 禁止学生使用U盘 -->
|
||||
<el-form-item label="禁止学生使用U盘">
|
||||
<el-switch
|
||||
@@ -41,6 +89,10 @@
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
|
||||
<!-- 练习成绩保存 -->
|
||||
<el-form-item label="练习成绩保存">
|
||||
@@ -49,8 +101,9 @@
|
||||
<el-radio label="1">最新成绩</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否显示重答按钮">
|
||||
<el-switch
|
||||
v-model="form.isRepeat"
|
||||
@@ -61,7 +114,8 @@
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="是否显示答案按钮">
|
||||
<el-switch
|
||||
v-model="form.isAnswer"
|
||||
@@ -141,6 +195,9 @@ const props = defineProps({
|
||||
|
||||
// 字段初始值设置为空或空字符串
|
||||
const form = ref({
|
||||
isAnswerId:'',
|
||||
isContent:'',
|
||||
isNumber:'',
|
||||
isExamPassword: '', // 是否使用监考密码验证
|
||||
examPassword: '', // 监考密码
|
||||
usb: '', // 是否禁止U盘
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
<!-- 第一个 tab - 通用参数 -->
|
||||
<el-tab-pane label="通用参数" name="tab1">
|
||||
<el-form :model="form" label-width="200px" style="margin-top: 20px;">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
|
||||
|
||||
<!-- 是否使用监考密码验证 -->
|
||||
<el-form-item label="是否使用监考密码验证">
|
||||
<el-switch
|
||||
@@ -16,7 +20,51 @@
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
|
||||
<!-- 是否使用监考密码验证 -->
|
||||
<!-- 监考密码 -->
|
||||
<el-form-item label="监考密码" v-if="form.isExamPassword === '0'">
|
||||
<el-input v-model="form.examPassword" placeholder="请输入监考密码" @input="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否显示试卷编号">
|
||||
<el-switch
|
||||
v-model="form.isNumber"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否在查看时显示试卷内容">
|
||||
<el-switch
|
||||
v-model="form.isContent"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="考生答题时是否显示试题编号">
|
||||
<el-switch
|
||||
v-model="form.isAnswerId"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否启用考场设置">
|
||||
<el-switch
|
||||
v-model="form.isSession"
|
||||
@@ -26,11 +74,11 @@
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
<!-- 监考密码 -->
|
||||
<el-form-item label="监考密码" v-if="form.isExamPassword === '0'">
|
||||
<el-input v-model="form.examPassword" placeholder="请输入监考密码" @input="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<!-- 禁止学生使用U盘 -->
|
||||
<el-form-item label="禁止学生使用U盘">
|
||||
<el-switch
|
||||
@@ -41,6 +89,10 @@
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
|
||||
<!-- 练习成绩保存 -->
|
||||
<el-form-item label="练习成绩保存">
|
||||
@@ -49,8 +101,9 @@
|
||||
<el-radio label="1">最新成绩</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否显示重答按钮">
|
||||
<el-switch
|
||||
v-model="form.isRepeat"
|
||||
@@ -61,7 +114,8 @@
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="是否显示答案按钮">
|
||||
<el-switch
|
||||
v-model="form.isAnswer"
|
||||
@@ -141,6 +195,9 @@ const props = defineProps({
|
||||
|
||||
// 字段初始值设置为空或空字符串
|
||||
const form = ref({
|
||||
isAnswerId:'',
|
||||
isContent:'',
|
||||
isNumber:'',
|
||||
isExamPassword: '', // 是否使用监考密码验证
|
||||
examPassword: '', // 监考密码
|
||||
usb: '', // 是否禁止U盘
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
<!-- 第一个 tab - 通用参数 -->
|
||||
<el-tab-pane label="通用参数" name="tab1">
|
||||
<el-form :model="form" label-width="200px" style="margin-top: 20px;">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
|
||||
|
||||
<!-- 是否使用监考密码验证 -->
|
||||
<el-form-item label="是否使用监考密码验证">
|
||||
<el-switch
|
||||
@@ -16,7 +20,51 @@
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
|
||||
<!-- 是否启用考场设置 -->
|
||||
<!-- 监考密码 -->
|
||||
<el-form-item label="监考密码" v-if="form.isExamPassword === '0'">
|
||||
<el-input v-model="form.examPassword" placeholder="请输入监考密码" @input="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否显示试卷编号">
|
||||
<el-switch
|
||||
v-model="form.isNumber"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否在查看时显示试卷内容">
|
||||
<el-switch
|
||||
v-model="form.isContent"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="考生答题时是否显示试题编号">
|
||||
<el-switch
|
||||
v-model="form.isAnswerId"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否启用考场设置">
|
||||
<el-switch
|
||||
v-model="form.isSession"
|
||||
@@ -26,11 +74,11 @@
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
<!-- 监考密码 -->
|
||||
<el-form-item label="监考密码" v-if="form.isExamPassword === '0'">
|
||||
<el-input v-model="form.examPassword" placeholder="请输入监考密码" @input="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<!-- 禁止学生使用U盘 -->
|
||||
<el-form-item label="禁止学生使用U盘">
|
||||
<el-switch
|
||||
@@ -41,6 +89,10 @@
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
|
||||
<!-- 练习成绩保存 -->
|
||||
<el-form-item label="练习成绩保存">
|
||||
@@ -49,8 +101,9 @@
|
||||
<el-radio label="1">最新成绩</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否显示重答按钮">
|
||||
<el-switch
|
||||
v-model="form.isRepeat"
|
||||
@@ -61,7 +114,8 @@
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="是否显示答案按钮">
|
||||
<el-switch
|
||||
v-model="form.isAnswer"
|
||||
@@ -141,6 +195,9 @@ const props = defineProps({
|
||||
|
||||
// 字段初始值设置为空或空字符串
|
||||
const form = ref({
|
||||
isAnswerId:'',
|
||||
isContent:'',
|
||||
isNumber:'',
|
||||
isExamPassword: '', // 是否使用监考密码验证
|
||||
examPassword: '', // 监考密码
|
||||
usb: '', // 是否禁止U盘
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
<!-- 第一个 tab - 通用参数 -->
|
||||
<el-tab-pane label="通用参数" name="tab1">
|
||||
<el-form :model="form" label-width="200px" style="margin-top: 20px;">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
|
||||
|
||||
<!-- 是否使用监考密码验证 -->
|
||||
<el-form-item label="是否使用监考密码验证">
|
||||
@@ -17,6 +20,51 @@
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
|
||||
<!-- 监考密码 -->
|
||||
<el-form-item label="监考密码" v-if="form.isExamPassword === '0'">
|
||||
<el-input v-model="form.examPassword" placeholder="请输入监考密码" @input="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否显示试卷编号">
|
||||
<el-switch
|
||||
v-model="form.isNumber"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否在查看时显示试卷内容">
|
||||
<el-switch
|
||||
v-model="form.isContent"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="考生答题时是否显示试题编号">
|
||||
<el-switch
|
||||
v-model="form.isAnswerId"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否启用考场设置">
|
||||
<el-switch
|
||||
v-model="form.isSession"
|
||||
@@ -26,11 +74,11 @@
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
<!-- 监考密码 -->
|
||||
<el-form-item label="监考密码" v-if="form.isExamPassword === '0'">
|
||||
<el-input v-model="form.examPassword" placeholder="请输入监考密码" @input="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<!-- 禁止学生使用U盘 -->
|
||||
<el-form-item label="禁止学生使用U盘">
|
||||
<el-switch
|
||||
@@ -41,6 +89,10 @@
|
||||
inactive-text="否"
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
|
||||
<!-- 练习成绩保存 -->
|
||||
<el-form-item label="练习成绩保存">
|
||||
@@ -49,8 +101,9 @@
|
||||
<el-radio label="1">最新成绩</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否显示重答按钮">
|
||||
<el-switch
|
||||
v-model="form.isRepeat"
|
||||
@@ -61,7 +114,8 @@
|
||||
@change="handleFormChange" />
|
||||
</el-form-item>
|
||||
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="是否显示答案按钮">
|
||||
<el-switch
|
||||
v-model="form.isAnswer"
|
||||
@@ -141,6 +195,9 @@ const props = defineProps({
|
||||
|
||||
// 字段初始值设置为空或空字符串
|
||||
const form = ref({
|
||||
isAnswerId:'',
|
||||
isContent:'',
|
||||
isNumber:'',
|
||||
isExamPassword: '', // 是否使用监考密码验证
|
||||
examPassword: '', // 监考密码
|
||||
usb: '', // 是否禁止U盘
|
||||
|
||||
@@ -129,9 +129,18 @@ const rules = reactive({
|
||||
batch: [{ required: true, message: '请输入批次', trigger: 'blur' }],
|
||||
startTime: [{ required: true, message: '请选择开始时间', trigger: 'change' }],
|
||||
endTime: [{ required: true, message: '请选择结束时间', trigger: 'change' }],
|
||||
allowEntry: [{ required: true, message: '请输入允许入场时间', trigger: 'blur' }],
|
||||
endAllowEntry: [{ required: true, message: '请输入禁止入场时间', trigger: 'blur' }],
|
||||
allowSubmission: [{ required: true, message: '请输入允许交卷时间', trigger: 'blur' }],
|
||||
allowEntry: [
|
||||
{ required: true, message: '请输入允许提前入场的分钟数', trigger: 'blur' },
|
||||
{ pattern: /^\d+$/, message: '只能输入非负整数', trigger: 'blur' }
|
||||
],
|
||||
endAllowEntry: [
|
||||
{ required: true, message: '请输入禁止入场的分钟数', trigger: 'blur' },
|
||||
{ pattern: /^\d+$/, message: '只能输入非负整数', trigger: 'blur' }
|
||||
],
|
||||
allowSubmission: [
|
||||
{ required: true, message: '请输入允许交卷的分钟数', trigger: 'blur' },
|
||||
{ pattern: /^\d+$/, message: '只能输入非负整数', trigger: 'blur' }
|
||||
],
|
||||
status: [{ required: true, message: '请选择状态', trigger: 'change' }],
|
||||
})
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
<dict-tag :type="DICT_TYPE.TASK_TYPE" :value="scope.row.taskType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="次数" align="center" prop="count" />
|
||||
<el-table-column label="是否为模板" align="center" prop="isTemplate" >
|
||||
<template #default="scope">
|
||||
<dict-tag :type="DICT_TYPE.SYS_YES_NO" :value="scope.row.isTemplate" />
|
||||
|
||||
Reference in New Issue
Block a user