【修改】试卷任务参数,【新增】试题数据交互
This commit is contained in:
@@ -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>
|
||||
|
@@ -19,7 +19,14 @@
|
||||
<el-form-item label="批次" prop="batch">
|
||||
<el-input clearable v-model="form.batch" placeholder="请输入批次" disabled/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="考试时长" prop="answerTime">
|
||||
<el-time-picker
|
||||
v-model="form.answerTime"
|
||||
value-format="HH:mm:ss"
|
||||
placeholder="请选择考试时长"
|
||||
class="ele-fluid"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="考试开始时间" prop="startTime">
|
||||
<el-date-picker
|
||||
v-model="form.startTime"
|
||||
@@ -37,6 +44,7 @@
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
placeholder="请选择考试结束时间"
|
||||
class="ele-fluid"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
@@ -97,7 +105,7 @@
|
||||
|
||||
<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'
|
||||
const emit = defineEmits(['done'])
|
||||
const props = defineProps({
|
||||
@@ -109,7 +117,7 @@ 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,
|
||||
@@ -117,10 +125,11 @@ const form = ref({
|
||||
batch: '',
|
||||
startTime: '',
|
||||
endTime: '',
|
||||
answerTime:'',
|
||||
allowEntry: '',
|
||||
endAllowEntry: '',
|
||||
allowSubmission: '',
|
||||
status: '', // 状态(0禁用,1启用)
|
||||
status: '0', // 状态(0启用,1禁用)
|
||||
})
|
||||
|
||||
// 表单校验规则
|
||||
@@ -159,12 +168,16 @@ const open = async (type: 'create' | 'update', data?: any) => {
|
||||
batch: '',
|
||||
startTime: '',
|
||||
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');
|
||||
@@ -187,7 +200,20 @@ const open = async (type: 'create' | 'update', data?: any) => {
|
||||
await nextTick()
|
||||
formRef.value?.clearValidate?.()
|
||||
}
|
||||
|
||||
// 监听考试开始时间和考试时长,自动计算考试结束时间
|
||||
watch(() => [form.value.startTime, form.value.answerTime], ([startTime, answerTime]) => {
|
||||
if (startTime && answerTime) {
|
||||
const [hours, minutes, seconds] = answerTime.split(':').map(Number)
|
||||
const end = dayjs(startTime)
|
||||
.add(hours, 'hour')
|
||||
.add(minutes, 'minute')
|
||||
.add(seconds, 'second')
|
||||
.format('YYYY-MM-DD HH:mm:ss')
|
||||
form.value.endTime = end
|
||||
} else {
|
||||
form.value.endTime = ''
|
||||
}
|
||||
})
|
||||
// 保存按钮
|
||||
const save = async () => {
|
||||
await formRef.value.validate()
|
||||
|
Reference in New Issue
Block a user