|
@@ -15,6 +15,27 @@
|
|
|
</a-select-option>
|
|
</a-select-option>
|
|
|
</a-select>
|
|
</a-select>
|
|
|
</a-form-item> -->
|
|
</a-form-item> -->
|
|
|
|
|
+ <a-form-item label="学期" name="semesterId">
|
|
|
|
|
+ <a-select v-model:value="form.semesterId" placeholder="请选择学期" allowClear @change="handleSemesterChange">
|
|
|
|
|
+ <a-select-option v-for="item in semesterList" :key="item.id" :value="item.id">
|
|
|
|
|
+ {{ item.name }}
|
|
|
|
|
+ </a-select-option>
|
|
|
|
|
+ </a-select>
|
|
|
|
|
+ </a-form-item>
|
|
|
|
|
+ <!-- <a-form-item label="专业" name="majorId">
|
|
|
|
|
+ <a-select v-model:value="form.majorId" placeholder="请选择专业" allowClear @change="handleMajorChange">
|
|
|
|
|
+ <a-select-option v-for="item in majorList" :key="item.id" :value="item.id">
|
|
|
|
|
+ {{ item.majorName }}
|
|
|
|
|
+ </a-select-option>
|
|
|
|
|
+ </a-select>
|
|
|
|
|
+ </a-form-item> -->
|
|
|
|
|
+ <a-form-item label="课程" name="courseId">
|
|
|
|
|
+ <a-select v-model:value="form.courseId" placeholder="请选择课程" allowClear :disabled="!form.semesterId">
|
|
|
|
|
+ <a-select-option v-for="item in courseList" :key="item.courseId" :value="item.courseId">
|
|
|
|
|
+ {{ item.courseName }}
|
|
|
|
|
+ </a-select-option>
|
|
|
|
|
+ </a-select>
|
|
|
|
|
+ </a-form-item>
|
|
|
<a-form-item label="题库类型:" name="bankType" required>
|
|
<a-form-item label="题库类型:" name="bankType" required>
|
|
|
<a-select v-model:value="form.bankType" placeholder="题库类型">
|
|
<a-select v-model:value="form.bankType" placeholder="题库类型">
|
|
|
<a-select-option v-for="item in bankTypeEnum" :key="item.key" :value="item.key">
|
|
<a-select-option v-for="item in bankTypeEnum" :key="item.key" :value="item.key">
|
|
@@ -107,11 +128,14 @@
|
|
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
|
import { ref, reactive, computed, onMounted } from 'vue'
|
|
import { ref, reactive, computed, onMounted } from 'vue'
|
|
|
|
|
+ import { message } from 'ant-design-vue'
|
|
|
import { useExamStore } from '@/store/exam'
|
|
import { useExamStore } from '@/store/exam'
|
|
|
import tQuestionApi from '@/api/exam/question/tQuestionApi'
|
|
import tQuestionApi from '@/api/exam/question/tQuestionApi'
|
|
|
import QuestionShow from '../components/Show.vue'
|
|
import QuestionShow from '../components/Show.vue'
|
|
|
import Editor from '@/components/Editor/index.vue'
|
|
import Editor from '@/components/Editor/index.vue'
|
|
|
import '../style/common.less'
|
|
import '../style/common.less'
|
|
|
|
|
+ import resourceAuditApi from '@/api/resourceAudit.js'
|
|
|
|
|
+
|
|
|
const bankTypeEnum = computed(() => examStore.getBankTypeEnum)
|
|
const bankTypeEnum = computed(() => examStore.getBankTypeEnum)
|
|
|
const toolbar = computed(() => examStore.toolbar)
|
|
const toolbar = computed(() => examStore.toolbar)
|
|
|
const examStore = useExamStore()
|
|
const examStore = useExamStore()
|
|
@@ -121,8 +145,12 @@
|
|
|
default: 0
|
|
default: 0
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
|
|
+
|
|
|
const emit = defineEmits(['successful'])
|
|
const emit = defineEmits(['successful'])
|
|
|
const formRef = ref()
|
|
const formRef = ref()
|
|
|
|
|
+ const semesterList = ref([])
|
|
|
|
|
+ const majorList = ref([])
|
|
|
|
|
+ const courseList = ref([])
|
|
|
const form = reactive({
|
|
const form = reactive({
|
|
|
id: null,
|
|
id: null,
|
|
|
questionType: 3,
|
|
questionType: 3,
|
|
@@ -137,7 +165,10 @@
|
|
|
correct: '',
|
|
correct: '',
|
|
|
score: '',
|
|
score: '',
|
|
|
difficult: 0,
|
|
difficult: 0,
|
|
|
- bankType: null
|
|
|
|
|
|
|
+ bankType: null,
|
|
|
|
|
+ courseId: null,
|
|
|
|
|
+ semesterId: null,
|
|
|
|
|
+ majorId: null
|
|
|
})
|
|
})
|
|
|
const subjectFilter = ref([])
|
|
const subjectFilter = ref([])
|
|
|
const formLoading = ref(false)
|
|
const formLoading = ref(false)
|
|
@@ -175,9 +206,94 @@
|
|
|
tQuestionApi.select(id).then((re) => {
|
|
tQuestionApi.select(id).then((re) => {
|
|
|
Object.assign(form, re)
|
|
Object.assign(form, re)
|
|
|
formLoading.value = false
|
|
formLoading.value = false
|
|
|
|
|
+ // 如果是编辑模式,需要根据已有数据加载相应的课程列表
|
|
|
|
|
+ if (re.semesterId) {
|
|
|
|
|
+ // 直接加载课程列表
|
|
|
|
|
+ loadCourseList()
|
|
|
|
|
+ }
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
+ // 加载学期列表
|
|
|
|
|
+ const semesterLoading = message.loading('正在加载学期列表...', 0)
|
|
|
|
|
+ resourceAuditApi
|
|
|
|
|
+ .semesterDownList()
|
|
|
|
|
+ .then((res) => {
|
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
|
+ semesterList.value = res.data
|
|
|
|
|
+ } else {
|
|
|
|
|
+ message.error('加载学期列表失败:' + (res.msg || '未知错误'))
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch((err) => {
|
|
|
|
|
+ message.error('加载学期列表失败:' + (err.message || '网络错误'))
|
|
|
|
|
+ })
|
|
|
|
|
+ .finally(() => {
|
|
|
|
|
+ semesterLoading()
|
|
|
|
|
+ })
|
|
|
|
|
+ // 加载专业
|
|
|
|
|
+ // const majorLoading = message.loading('正在加载专业列表...', 0)
|
|
|
|
|
+ // resourceAuditApi
|
|
|
|
|
+ // .majordownList()
|
|
|
|
|
+ // .then((res) => {
|
|
|
|
|
+ // if (res.code === 200) {
|
|
|
|
|
+ // majorList.value = res.data
|
|
|
|
|
+ // } else {
|
|
|
|
|
+ // message.error('加载专业列表失败:' + (res.msg || '未知错误'))
|
|
|
|
|
+ // }
|
|
|
|
|
+ // })
|
|
|
|
|
+ // .catch((err) => {
|
|
|
|
|
+ // message.error('加载专业列表失败:' + (err.message || '网络错误'))
|
|
|
|
|
+ // })
|
|
|
|
|
+ // .finally(() => {
|
|
|
|
|
+ // majorLoading()
|
|
|
|
|
+ // })
|
|
|
})
|
|
})
|
|
|
|
|
+ // 学期变更处理函数
|
|
|
|
|
+ const handleSemesterChange = (value) => {
|
|
|
|
|
+ form.courseId = null
|
|
|
|
|
+ courseList.value = []
|
|
|
|
|
+
|
|
|
|
|
+ // 如果学期和专业都已选择,则查询课程列表
|
|
|
|
|
+ if (value) {
|
|
|
|
|
+ loadCourseList()
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 专业变更处理函数
|
|
|
|
|
+ // const handleMajorChange = (value) => {
|
|
|
|
|
+ // form.courseId = null
|
|
|
|
|
+ // courseList.value = []
|
|
|
|
|
+
|
|
|
|
|
+ // // 如果学期和专业都已选择,则查询课程列表
|
|
|
|
|
+ // if (value && form.semesterId) {
|
|
|
|
|
+ // loadCourseList()
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
+
|
|
|
|
|
+ // 加载课程列表
|
|
|
|
|
+ const loadCourseList = () => {
|
|
|
|
|
+ // 添加加载状态
|
|
|
|
|
+ const courseLoading = message.loading('正在加载课程列表...', 0)
|
|
|
|
|
+ // 根据选择的学期和专业加载课程列表
|
|
|
|
|
+ resourceAuditApi
|
|
|
|
|
+ .courseAllList({
|
|
|
|
|
+ semesterId: form.semesterId,
|
|
|
|
|
+ majorId: form.majorId
|
|
|
|
|
+ })
|
|
|
|
|
+ .then((res) => {
|
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
|
+ courseList.value = res.data
|
|
|
|
|
+ } else {
|
|
|
|
|
+ message.error('加载课程列表失败:' + (res.msg || '未知错误'))
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch((err) => {
|
|
|
|
|
+ message.error('加载课程列表失败:' + (err.message || '网络错误'))
|
|
|
|
|
+ })
|
|
|
|
|
+ .finally(() => {
|
|
|
|
|
+ courseLoading()
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
function inputClick(object, parameterName) {
|
|
function inputClick(object, parameterName) {
|
|
|
richEditor.object = object
|
|
richEditor.object = object
|
|
@@ -216,6 +332,9 @@
|
|
|
questionType: 3,
|
|
questionType: 3,
|
|
|
// gradeLevel: null,
|
|
// gradeLevel: null,
|
|
|
// subjectId: null,
|
|
// subjectId: null,
|
|
|
|
|
+ semesterId: null,
|
|
|
|
|
+ majorId: null,
|
|
|
|
|
+ courseId: null,
|
|
|
title: '',
|
|
title: '',
|
|
|
items: [
|
|
items: [
|
|
|
{ id: null, prefix: 'A', content: '是' },
|
|
{ id: null, prefix: 'A', content: '是' },
|
|
@@ -228,6 +347,8 @@
|
|
|
bankType: null
|
|
bankType: null
|
|
|
})
|
|
})
|
|
|
form.id = lastId
|
|
form.id = lastId
|
|
|
|
|
+ majorList.value = [] // 清空专业列表
|
|
|
|
|
+ courseList.value = [] // 清空课程列表
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function levelChange() {
|
|
function levelChange() {
|