【修改】试卷任务参数,【新增】试题数据交互

This commit is contained in:
YOHO\20373
2025-05-16 15:11:47 +08:00
committed by 陆光LG
parent 47cfdee979
commit 9e969aadc1
35 changed files with 5304 additions and 117 deletions

View File

@@ -116,6 +116,8 @@
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="是否显示答案按钮">
<el-switch
v-model="form.isAnswer"
@@ -125,6 +127,8 @@
inactive-text=""
@change="handleFormChange" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学生是否可以查看试卷">
<el-switch
v-model="form.isLook"
@@ -134,7 +138,35 @@
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.isTime"
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-time-picker
v-model="form.examTime"
value-format="HH:mm:ss"
placeholder="请设置测评时长"
class="ele-fluid"
@change="handleFormChange"
/>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="定时检查与学生端联通性,每">
<el-input-number v-model="form.isConnect" label="分钟" @change="handleFormChange" />
<span>分钟传一次,断联直接交卷</span>

View File

@@ -27,8 +27,6 @@
class="ele-fluid"
/>
</el-form-item>
<el-form-item label="考试开始时间" prop="startTime">
<el-date-picker
v-model="form.startTime"
@@ -46,7 +44,7 @@
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择考试结束时间"
class="ele-fluid"
disabled
disabled
/>
</el-form-item>
@@ -107,10 +105,8 @@
<script setup lang="ts">
import { ref, reactive, nextTick } from 'vue'
import { addSession, updateSession } from '@/api/system/session'
import { addSession, updateSession,getTime} from '@/api/system/session'
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
import { watch } from 'vue'
import dayjs from 'dayjs'
const emit = defineEmits(['done'])
const props = defineProps({
data: Object,
@@ -121,19 +117,19 @@ const visible = defineModel({ type: Boolean })
const isUpdate = ref(false)
const loading = ref(false)
const formRef = ref()
import dayjs from 'dayjs'
// 表单模型
const form = ref({
sessionId: undefined,
taskId: props.taskId ?? '',
batch: '',
startTime: '',
answerTime:'',
endTime: '',
answerTime:'',
allowEntry: '',
endAllowEntry: '',
allowSubmission: '',
status: '', // 状态01用)
status: '0', // 状态01用)
})
// 表单校验规则
@@ -142,9 +138,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' }],
})
@@ -162,14 +167,17 @@ const open = async (type: 'create' | 'update', data?: any) => {
taskId: props.taskId ?? '',
batch: '',
startTime: '',
answerTime:'01:00:00',
endTime: '',
answerTime:'',
allowEntry: '',
endAllowEntry: '',
allowSubmission: '',
status: '',
}
const res = await getTime(props.taskId);
form.value.answerTime=res;
// 设置批次为 当前时间 + 5位随机数
const now = new Date();
const pad = (n) => n.toString().padStart(2, '0');
@@ -219,6 +227,6 @@ const save = async () => {
loading.value = false
}
}
defineExpose({ open })
defineExpose({ open })
</script>