|
@@ -12,13 +12,15 @@
|
|
<a-form-item label="考试名称" name="title">
|
|
<a-form-item label="考试名称" name="title">
|
|
<a-input v-model:value="form.title" placeholder="请输入考试标题" />
|
|
<a-input v-model:value="form.title" placeholder="请输入考试标题" />
|
|
</a-form-item>
|
|
</a-form-item>
|
|
- <a-form-item label="选择试卷" name="paperId">
|
|
|
|
- <a-input-search
|
|
|
|
- v-model:value="form.paper.title"
|
|
|
|
- placeholder="请选择试卷"
|
|
|
|
- enter-button
|
|
|
|
- @search="selectPaper"
|
|
|
|
- />
|
|
|
|
|
|
+ <a-form-item label="选择试卷" name="examPapers">
|
|
|
|
+ <a-button
|
|
|
|
+style="display: block"
|
|
|
|
+ @click="selectPaper"
|
|
|
|
+ >选择试卷</a-button>
|
|
|
|
+ <div style="background-color: #fffaf0;text-align: left;padding: 13px 15px 15px 10px;border: solid #a19d96 1px;border-radius: 5px; height: 50px;margin-top: 1%;margin-right: 1%;width: 25%;display: inline-block" v-for="o in form.examPapers" :key="o">
|
|
|
|
+ <strong style="color: #000000;font-family: '黑体',serif">{{o.title}}</strong>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
</a-form-item>
|
|
</a-form-item>
|
|
<a-form-item label="试卷id" name="paperId" hidden>
|
|
<a-form-item label="试卷id" name="paperId" hidden>
|
|
<a-input v-model:value="form.paperId" />
|
|
<a-input v-model:value="form.paperId" />
|
|
@@ -40,9 +42,10 @@
|
|
<a-input-number v-model:value="form.limitCount" />
|
|
<a-input-number v-model:value="form.limitCount" />
|
|
次
|
|
次
|
|
</a-form-item>
|
|
</a-form-item>
|
|
- <a-form-item label="封面图片" name="image">
|
|
|
|
- <JImageUpload :fileMax="1" v-model:value="form.image"></JImageUpload>
|
|
|
|
- </a-form-item>
|
|
|
|
|
|
+ <a-form-item label="考试须知">
|
|
|
|
+ <Tinymce v-model="form.message" :height="250"/>
|
|
|
|
+ </a-form-item>
|
|
|
|
+
|
|
</a-card>
|
|
</a-card>
|
|
<br />
|
|
<br />
|
|
<a-card size="small" title="考试权限" id="exam_privilege">
|
|
<a-card size="small" title="考试权限" id="exam_privilege">
|
|
@@ -89,7 +92,6 @@
|
|
</a-card>
|
|
</a-card>
|
|
<br />
|
|
<br />
|
|
<a-card size="small" title="阅卷人" id="exam_reviewer">
|
|
<a-card size="small" title="阅卷人" id="exam_reviewer">
|
|
- <template v-if="form.paper.hasSubjective">
|
|
|
|
<a-form-item label="阅卷类型" name="reviewerType">
|
|
<a-form-item label="阅卷类型" name="reviewerType">
|
|
<a-select placeholder="请选择阅卷类型" v-model:value="form.reviewerType"
|
|
<a-select placeholder="请选择阅卷类型" v-model:value="form.reviewerType"
|
|
@change="reviewerTypeChange">
|
|
@change="reviewerTypeChange">
|
|
@@ -109,7 +111,6 @@
|
|
:multi="true" />
|
|
:multi="true" />
|
|
</a-form-item>
|
|
</a-form-item>
|
|
</template>
|
|
</template>
|
|
- </template>
|
|
|
|
<template v-else>
|
|
<template v-else>
|
|
<a-form-item>
|
|
<a-form-item>
|
|
本次考试无需阅卷。
|
|
本次考试无需阅卷。
|
|
@@ -118,10 +119,9 @@
|
|
</a-card>
|
|
</a-card>
|
|
<br />
|
|
<br />
|
|
<a-card size="small" title="防作弊选项" id="exam_nocheat">
|
|
<a-card size="small" title="防作弊选项" id="exam_nocheat">
|
|
- <a-form-item label="是否题目乱序"
|
|
|
|
- v-if="form.paper.joinType == 1 || form.paper.joinType == 3">
|
|
|
|
- <a-switch v-model:checked="form.questionDisorder" />
|
|
|
|
- </a-form-item>
|
|
|
|
|
|
+ <a-form-item label="是否题目乱序">
|
|
|
|
+ <a-switch v-model:checked="form.questionDisorder" />
|
|
|
|
+ </a-form-item>
|
|
<a-form-item label="是否答案乱序">
|
|
<a-form-item label="是否答案乱序">
|
|
<a-switch v-model:checked="form.answerDisorder" />
|
|
<a-switch v-model:checked="form.answerDisorder" />
|
|
</a-form-item>
|
|
</a-form-item>
|
|
@@ -141,40 +141,48 @@
|
|
</a-form>
|
|
</a-form>
|
|
</a-col>
|
|
</a-col>
|
|
<a-col :span="6">
|
|
<a-col :span="6">
|
|
- <a-card size="small" style="min-height:calc(100vh - 180px);position:fixed;width: 20%"
|
|
|
|
|
|
+ <a-card size="small" style="height: 75vh;position:fixed;width: 21%"
|
|
title="已选试卷">
|
|
title="已选试卷">
|
|
- <div class="groupCard">
|
|
|
|
|
|
+<div style="overflow-y: scroll; height: 69vh;">
|
|
|
|
+ <div class="groupCard" v-for="(o,i) in form.examPapers" :key="o">
|
|
|
|
+ <a-divider v-if="i!==0" style="height: 1px; background-color: #b2b2b2"></a-divider>
|
|
<a-row>
|
|
<a-row>
|
|
<a-col :span="24">
|
|
<a-col :span="24">
|
|
- 试卷名称:{{ form.paper.title }}
|
|
|
|
|
|
+ 试卷名称:{{ o.title }}
|
|
</a-col>
|
|
</a-col>
|
|
</a-row>
|
|
</a-row>
|
|
<a-row>
|
|
<a-row>
|
|
<a-col :span="24">
|
|
<a-col :span="24">
|
|
- 试卷总分:<span class="groupCardFont">{{ form.paper.totalScore }}</span>
|
|
|
|
|
|
+ 试卷总分:<span class="groupCardFont">{{ o.totalScore }}</span>
|
|
</a-col>
|
|
</a-col>
|
|
</a-row>
|
|
</a-row>
|
|
<a-row>
|
|
<a-row>
|
|
<a-col :span="24">
|
|
<a-col :span="24">
|
|
- 试题总数: <span class="groupCardFont">{{ form.paper.questionCount }}</span>
|
|
|
|
|
|
+ 试题总数: <span class="groupCardFont">{{ o.questionCount }}</span>
|
|
</a-col>
|
|
</a-col>
|
|
</a-row>
|
|
</a-row>
|
|
<a-row>
|
|
<a-row>
|
|
<a-col :span="24">
|
|
<a-col :span="24">
|
|
- 组卷方式:{{ form.paper.joinType_dictText }}
|
|
|
|
|
|
+ 组卷方式:{{ o.joinType_dictText }}
|
|
</a-col>
|
|
</a-col>
|
|
</a-row>
|
|
</a-row>
|
|
<a-row>
|
|
<a-row>
|
|
<a-col :span="24">
|
|
<a-col :span="24">
|
|
- 出卷人员:{{ form.paper.createBy }}
|
|
|
|
|
|
+ 考试顺序: <a-input v-model:value="o.paperOrder" />
|
|
</a-col>
|
|
</a-col>
|
|
</a-row>
|
|
</a-row>
|
|
<a-row>
|
|
<a-row>
|
|
<a-col :span="24">
|
|
<a-col :span="24">
|
|
- 创建时间:{{ form.paper.createTime }}
|
|
|
|
|
|
+ 考试时长: <a-input v-model:value="o.paperTime"/>
|
|
|
|
+ </a-col>
|
|
|
|
+ </a-row>
|
|
|
|
+ <a-row>
|
|
|
|
+ <a-col :span="24">
|
|
|
|
+ 及 格 分 : <a-input v-model:value="o.qualifyScore"/>
|
|
</a-col>
|
|
</a-col>
|
|
</a-row>
|
|
</a-row>
|
|
</div>
|
|
</div>
|
|
|
|
+</div>
|
|
</a-card>
|
|
</a-card>
|
|
</a-col>
|
|
</a-col>
|
|
</a-row>
|
|
</a-row>
|
|
@@ -196,6 +204,7 @@ import JDictSelectTag from "/@/components/Form/src/jeecg/components/JDictSelectT
|
|
import JImageUpload from "/@/components/Form/src/jeecg/components/JImageUpload.vue";
|
|
import JImageUpload from "/@/components/Form/src/jeecg/components/JImageUpload.vue";
|
|
import SegmentAnchor from "@/views/buss/components/SegmentAnchor.vue";
|
|
import SegmentAnchor from "@/views/buss/components/SegmentAnchor.vue";
|
|
import { castArray2String } from "/@/utils";
|
|
import { castArray2String } from "/@/utils";
|
|
|
|
+import {Tinymce} from "/@/components/Tinymce";
|
|
|
|
|
|
const { createMessage } = useMessage();
|
|
const { createMessage } = useMessage();
|
|
const options = [
|
|
const options = [
|
|
@@ -253,7 +262,7 @@ const rangeConfig = {
|
|
|
|
|
|
const validatorRules = {
|
|
const validatorRules = {
|
|
title: [{ required: true, message: "试卷名称不能为空", trigger: "blur" }],
|
|
title: [{ required: true, message: "试卷名称不能为空", trigger: "blur" }],
|
|
- paperId: [{ required: true, message: "请选择试卷", trigger: "blur" }],
|
|
|
|
|
|
+ examPapers: [{ required: true, message: "请选择试卷", trigger: "blur" }],
|
|
totalTime: [{ required: true, message: "请输入考试时长", trigger: "blur" }],
|
|
totalTime: [{ required: true, message: "请输入考试时长", trigger: "blur" }],
|
|
qualifyScore: [{ required: true, message: "请输入及格分", trigger: "blur" }],
|
|
qualifyScore: [{ required: true, message: "请输入及格分", trigger: "blur" }],
|
|
openType: [{ required: true, message: "请选择开放类型", trigger: "blur" }],
|
|
openType: [{ required: true, message: "请选择开放类型", trigger: "blur" }],
|
|
@@ -263,6 +272,7 @@ const validatorRules = {
|
|
};
|
|
};
|
|
const form: any = ref<any>({
|
|
const form: any = ref<any>({
|
|
paper: {},
|
|
paper: {},
|
|
|
|
+ examPapers: [],
|
|
rangeDate: []
|
|
rangeDate: []
|
|
});
|
|
});
|
|
|
|
|
|
@@ -288,8 +298,8 @@ async function initFormData() {
|
|
}
|
|
}
|
|
form.value.rangeDate = [data.startTime, data.endTime];
|
|
form.value.rangeDate = [data.startTime, data.endTime];
|
|
|
|
|
|
- if (data && !data.paper) {
|
|
|
|
- form.value.paper = {};
|
|
|
|
|
|
+ if (data && !data.examPapers) {
|
|
|
|
+ form.value.examPapers = [];
|
|
createMessage.error("未找到对应试卷");
|
|
createMessage.error("未找到对应试卷");
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -323,12 +333,27 @@ let paper = ref({});
|
|
*/
|
|
*/
|
|
function handleSuccess(data) {
|
|
function handleSuccess(data) {
|
|
const paperDatas = toRaw(data);
|
|
const paperDatas = toRaw(data);
|
|
- if (paperDatas && paperDatas.length > 0) {
|
|
|
|
- const paperData = paperDatas[0];
|
|
|
|
- form.value.paperId = paperData.id;
|
|
|
|
- form.value.paper = paperData;
|
|
|
|
- form.value.totalScore = paperData.totalScore;
|
|
|
|
|
|
+ console.log(paperDatas)
|
|
|
|
+ let arr=ref([])
|
|
|
|
+ for (let i = 0; i < paperDatas.length; i++) {
|
|
|
|
+ arr.value.push({
|
|
|
|
+ paperId:paperDatas[i].id,
|
|
|
|
+ createBy: paperDatas[i].createBy,
|
|
|
|
+ hasSubjective : paperDatas[i].hasSubjective,
|
|
|
|
+ joinType : paperDatas[i].joinType,
|
|
|
|
+ joinType_dictText : paperDatas[i].joinType_dictText,
|
|
|
|
+ paperOrder : paperDatas[i].paperOrder,
|
|
|
|
+ paperTime : paperDatas[i].paperTime,
|
|
|
|
+ qualifyScore : paperDatas[i].qualifyScore,
|
|
|
|
+ questionCount : paperDatas[i].questionCount,
|
|
|
|
+ title : paperDatas[i].title,
|
|
|
|
+ totalScore : paperDatas[i].totalScore,
|
|
|
|
+ updateBy: paperDatas[i].updateBy,
|
|
|
|
+ })
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ form.value.examPapers = arr.value;
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
function openTypeChange() {
|
|
function openTypeChange() {
|