forked from liweijie/education
课程科目新建的时候部分字段改为下拉选择
This commit is contained in:
@@ -123,7 +123,14 @@
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
<el-form-item label="教研室代号" prop="jysdh">
|
||||
<el-input v-model="addForm.jysdh" placeholder="请输入教研室代号" clearable />
|
||||
<el-select v-model="addForm.jysdh" filterable clearable placeholder="请选择教研室代号" class="w-full" :loading="optionsLoading">
|
||||
<el-option
|
||||
v-for="item in officeOptions"
|
||||
:key="item.jysdh"
|
||||
:label="item.jysmc ? `${item.jysdh}(${item.jysmc})` : item.jysdh"
|
||||
:value="item.jysdh"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
@@ -138,17 +145,23 @@
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
<el-form-item label="培训层次" prop="pxcc">
|
||||
<el-input v-model="addForm.pxcc" placeholder="请输入培训层次" clearable />
|
||||
<el-select v-model="addForm.pxcc" filterable clearable placeholder="请选择培训层次" class="w-full" :loading="optionsLoading">
|
||||
<el-option v-for="item in trainLevelOptions" :key="item.dictCode || item.dictValue" :label="item.dictLabel" :value="item.dictLabel" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
<el-form-item label="培训类型" prop="pxlx">
|
||||
<el-input v-model="addForm.pxlx" placeholder="请输入培训类型" clearable />
|
||||
<el-select v-model="addForm.pxlx" filterable clearable placeholder="请选择培训类型" class="w-full" :loading="optionsLoading">
|
||||
<el-option v-for="item in trainTypeOptions" :key="item.dictCode || item.dictValue" :label="item.dictLabel" :value="item.dictLabel" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
<el-form-item label="课程类型" prop="kclx">
|
||||
<el-input v-model="addForm.kclx" placeholder="请输入课程类型" clearable />
|
||||
<el-select v-model="addForm.kclx" filterable clearable placeholder="请选择课程类型" class="w-full" :loading="optionsLoading">
|
||||
<el-option v-for="item in courseTypeOptions" :key="item.dictCode || item.dictValue" :label="item.dictLabel" :value="item.dictLabel" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
@@ -158,7 +171,9 @@
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
<el-form-item label="成绩分制" prop="cjfz">
|
||||
<el-input v-model="addForm.cjfz" placeholder="请输入成绩分制" clearable />
|
||||
<el-select v-model="addForm.cjfz" filterable clearable placeholder="请选择成绩分制" class="w-full" :loading="optionsLoading">
|
||||
<el-option v-for="item in scoreScaleOptions" :key="item.dictCode || item.dictValue" :label="item.dictLabel" :value="item.dictLabel" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
@@ -186,7 +201,9 @@
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
<el-form-item label="课类型" prop="klx">
|
||||
<el-input v-model="addForm.klx" placeholder="请输入课类型" clearable />
|
||||
<el-select v-model="addForm.klx" filterable clearable placeholder="请选择课类型" class="w-full" :loading="optionsLoading">
|
||||
<el-option v-for="item in courseTypeOptions" :key="item.dictCode || item.dictValue" :label="item.dictLabel" :value="item.dictLabel" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
@@ -219,17 +236,23 @@
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
<el-form-item label="节次优选级" prop="jcyxj">
|
||||
<el-input v-model="addForm.jcyxj" placeholder="请输入节次优选级" clearable />
|
||||
<el-select v-model="addForm.jcyxj" filterable clearable placeholder="请选择节次优选级" class="w-full" :loading="optionsLoading">
|
||||
<el-option v-for="item in sessionPriorityOptions" :key="item.dictCode || item.dictValue" :label="item.dictLabel" :value="Number(item.dictValue)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
<el-form-item label="课程支持方式" prop="kczcfs">
|
||||
<el-input v-model="addForm.kczcfs" placeholder="请输入课程支持方式" clearable />
|
||||
<el-select v-model="addForm.kczcfs" filterable clearable placeholder="请选择课程支持方式" class="w-full" :loading="optionsLoading">
|
||||
<el-option v-for="item in courseSupportTypeOptions" :key="item.dictCode || item.dictValue" :label="item.dictLabel" :value="item.dictLabel" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
<el-form-item label="课程建设方式" prop="kcjsfs">
|
||||
<el-input v-model="addForm.kcjsfs" placeholder="请输入课程建设方式" clearable />
|
||||
<el-select v-model="addForm.kcjsfs" filterable clearable placeholder="请选择课程建设方式" class="w-full" :loading="optionsLoading">
|
||||
<el-option v-for="item in courseBuildTypeOptions" :key="item.dictCode || item.dictValue" :label="item.dictLabel" :value="item.dictLabel" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
@@ -242,7 +265,9 @@
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
<el-form-item label="考核方式" prop="khfs">
|
||||
<el-input v-model="addForm.khfs" placeholder="请输入考核方式" clearable />
|
||||
<el-select v-model="addForm.khfs" filterable clearable placeholder="请选择考核方式" class="w-full" :loading="optionsLoading">
|
||||
<el-option v-for="item in examMethodOptions" :key="item.dictCode || item.dictValue" :label="item.dictLabel" :value="item.dictLabel" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
@@ -257,7 +282,9 @@
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
<el-form-item label="密级" prop="mj">
|
||||
<el-input v-model="addForm.mj" placeholder="请输入密级" clearable />
|
||||
<el-select v-model="addForm.mj" filterable clearable placeholder="请选择密级" class="w-full" :loading="optionsLoading">
|
||||
<el-option v-for="item in secretLevelOptions" :key="item.dictCode || item.dictValue" :label="item.dictLabel" :value="item.dictLabel" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="8">
|
||||
@@ -311,6 +338,8 @@
|
||||
<script>
|
||||
import { saveAs } from 'file-saver'
|
||||
import { listKb as listSubject, addKb as addSubject, updateKb as updateSubject, deleteKb as deleteSubject, getKb, downloadCourseSubjectTemplate } from '@/api/teachOffice/kb'
|
||||
import { listOffice } from '@/api/teachOffice/office'
|
||||
import { getDicts } from '@/api/system/dict/data'
|
||||
|
||||
export default {
|
||||
name: 'SubjectIndex',
|
||||
@@ -347,31 +376,43 @@ export default {
|
||||
dialogVisible: false,
|
||||
addLoading: false,
|
||||
isEdit: false,
|
||||
optionsLoading: false,
|
||||
optionsLoaded: false,
|
||||
officeOptions: [],
|
||||
trainLevelOptions: [],
|
||||
trainTypeOptions: [],
|
||||
courseTypeOptions: [],
|
||||
sessionPriorityOptions: [],
|
||||
courseSupportTypeOptions: [],
|
||||
courseBuildTypeOptions: [],
|
||||
examMethodOptions: [],
|
||||
secretLevelOptions: [],
|
||||
scoreScaleOptions: [],
|
||||
addForm: this.createEmptyForm(),
|
||||
rules: {
|
||||
kmc: [{ required: true, message: '请输入课名称', trigger: 'blur' }],
|
||||
jysdh: [{ required: true, message: '请输入教研室代号', trigger: 'blur' }],
|
||||
jysdh: [{ required: true, message: '请选择教研室代号', trigger: 'change' }],
|
||||
xf: [{ required: true, message: '请输入学分', trigger: 'blur' }],
|
||||
pxcc: [{ required: true, message: '请输入培训层次', trigger: 'blur' }],
|
||||
pxlx: [{ required: true, message: '请输入培训类型', trigger: 'blur' }],
|
||||
kclx: [{ required: true, message: '请输入课程类型', trigger: 'blur' }],
|
||||
pxcc: [{ required: true, message: '请选择培训层次', trigger: 'change' }],
|
||||
pxlx: [{ required: true, message: '请选择培训类型', trigger: 'change' }],
|
||||
kclx: [{ required: true, message: '请选择课程类型', trigger: 'change' }],
|
||||
ksks: [{ required: true, message: '请输入考试课时', trigger: 'blur' }],
|
||||
cjfz: [{ required: true, message: '请输入成绩分制', trigger: 'blur' }],
|
||||
cjfz: [{ required: true, message: '请选择成绩分制', trigger: 'change' }],
|
||||
llxs: [{ required: true, message: '请输入理论学时', trigger: 'blur' }],
|
||||
sjxs: [{ required: true, message: '请输入实践学时', trigger: 'blur' }],
|
||||
zks: [{ required: true, message: '请输入周课时', trigger: 'blur' }],
|
||||
klx: [{ required: true, message: '请输入课类型', trigger: 'blur' }],
|
||||
klx: [{ required: true, message: '请选择课类型', trigger: 'change' }],
|
||||
kctybh: [{ required: true, message: '请输入课程统一编号', trigger: 'blur' }],
|
||||
fddyks: [{ required: true, message: '请输入辅导答疑课时', trigger: 'blur' }],
|
||||
zxks: [{ required: true, message: '请输入自修课时', trigger: 'blur' }],
|
||||
xdrq: [{ required: true, message: '请输入修订日期', trigger: 'blur' }],
|
||||
jcyxj: [{ required: true, message: '请输入节次优选级', trigger: 'blur' }],
|
||||
kczcfs: [{ required: true, message: '请输入课程支持方式', trigger: 'blur' }],
|
||||
kcjsfs: [{ required: true, message: '请输入课程建设方式', trigger: 'blur' }],
|
||||
khfs: [{ required: true, message: '请输入考核方式', trigger: 'blur' }],
|
||||
jcyxj: [{ required: true, message: '请选择节次优选级', trigger: 'change' }],
|
||||
kczcfs: [{ required: true, message: '请选择课程支持方式', trigger: 'change' }],
|
||||
kcjsfs: [{ required: true, message: '请选择课程建设方式', trigger: 'change' }],
|
||||
khfs: [{ required: true, message: '请选择考核方式', trigger: 'change' }],
|
||||
xcxcjfz: [{ required: true, message: '请输入形成性成绩分值', trigger: 'blur' }],
|
||||
zjxcjfz: [{ required: true, message: '请输入终结性成绩分值', trigger: 'blur' }],
|
||||
mj: [{ required: true, message: '请输入密级', trigger: 'blur' }],
|
||||
mj: [{ required: true, message: '请选择密级', trigger: 'change' }],
|
||||
pxqk: [{ required: true, message: '请输入评选情况', trigger: 'blur' }]
|
||||
}
|
||||
}
|
||||
@@ -541,9 +582,43 @@ export default {
|
||||
},
|
||||
|
||||
// ==================== 新增/编辑弹窗 ====================
|
||||
loadFormOptions() {
|
||||
if (this.optionsLoaded) return
|
||||
this.optionsLoading = true
|
||||
const empty = { data: [] }
|
||||
Promise.all([
|
||||
listOffice({ pageNum: 1, pageSize: 500 }).catch(() => empty),
|
||||
getDicts('train_level').catch(() => empty),
|
||||
getDicts('train_type').catch(() => empty),
|
||||
getDicts('course_type').catch(() => empty),
|
||||
getDicts('session_priority').catch(() => empty),
|
||||
getDicts('course_support_type').catch(() => empty),
|
||||
getDicts('course_build_type').catch(() => empty),
|
||||
getDicts('exam_method').catch(() => empty),
|
||||
getDicts('secret_level').catch(() => empty),
|
||||
getDicts('score_scale').catch(() => empty)
|
||||
]).then(([officeRes, levelRes, typeRes, courseRes, spRes, cstRes, cbtRes, emRes, slRes, ssRes]) => {
|
||||
const officeData = (officeRes && officeRes.data) || {}
|
||||
const officeList = officeData.records || officeData || []
|
||||
this.officeOptions = officeList.filter(item => !item.ty)
|
||||
this.trainLevelOptions = (levelRes && levelRes.data) || []
|
||||
this.trainTypeOptions = (typeRes && typeRes.data) || []
|
||||
this.courseTypeOptions = (courseRes && courseRes.data) || []
|
||||
this.sessionPriorityOptions = (spRes && spRes.data) || []
|
||||
this.courseSupportTypeOptions = (cstRes && cstRes.data) || []
|
||||
this.courseBuildTypeOptions = (cbtRes && cbtRes.data) || []
|
||||
this.examMethodOptions = (emRes && emRes.data) || []
|
||||
this.secretLevelOptions = (slRes && slRes.data) || []
|
||||
this.scoreScaleOptions = (ssRes && ssRes.data) || []
|
||||
this.optionsLoaded = true
|
||||
}).finally(() => {
|
||||
this.optionsLoading = false
|
||||
})
|
||||
},
|
||||
handleOpenDialog() {
|
||||
this.isEdit = false
|
||||
this.resetForm()
|
||||
this.loadFormOptions()
|
||||
this.dialogVisible = true
|
||||
},
|
||||
|
||||
@@ -554,6 +629,7 @@ export default {
|
||||
const data = (res && res.data) || row
|
||||
this.isEdit = true
|
||||
this.addForm = Object.assign(this.createEmptyForm(), data)
|
||||
this.loadFormOptions()
|
||||
this.dialogVisible = true
|
||||
})
|
||||
.finally(() => {
|
||||
|
||||
Reference in New Issue
Block a user