课程科目新建的时候部分字段改为下拉选择
This commit is contained in:
@@ -123,7 +123,14 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
<el-form-item label="教研室代号" prop="jysdh">
|
<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-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
@@ -138,17 +145,23 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
<el-form-item label="培训层次" prop="pxcc">
|
<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-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
<el-form-item label="培训类型" prop="pxlx">
|
<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-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
<el-form-item label="课程类型" prop="kclx">
|
<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-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
@@ -158,7 +171,9 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
<el-form-item label="成绩分制" prop="cjfz">
|
<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-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
@@ -186,7 +201,9 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
<el-form-item label="课类型" prop="klx">
|
<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-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
@@ -219,17 +236,23 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
<el-form-item label="节次优选级" prop="jcyxj">
|
<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-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
<el-form-item label="课程支持方式" prop="kczcfs">
|
<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-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
<el-form-item label="课程建设方式" prop="kcjsfs">
|
<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-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
@@ -242,7 +265,9 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
<el-form-item label="考核方式" prop="khfs">
|
<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-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
@@ -257,7 +282,9 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
<el-form-item label="密级" prop="mj">
|
<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-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="8">
|
<el-col :xs="24" :sm="12" :md="8">
|
||||||
@@ -311,6 +338,8 @@
|
|||||||
<script>
|
<script>
|
||||||
import { saveAs } from 'file-saver'
|
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 { 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 {
|
export default {
|
||||||
name: 'SubjectIndex',
|
name: 'SubjectIndex',
|
||||||
@@ -347,31 +376,43 @@ export default {
|
|||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
addLoading: false,
|
addLoading: false,
|
||||||
isEdit: false,
|
isEdit: false,
|
||||||
|
optionsLoading: false,
|
||||||
|
optionsLoaded: false,
|
||||||
|
officeOptions: [],
|
||||||
|
trainLevelOptions: [],
|
||||||
|
trainTypeOptions: [],
|
||||||
|
courseTypeOptions: [],
|
||||||
|
sessionPriorityOptions: [],
|
||||||
|
courseSupportTypeOptions: [],
|
||||||
|
courseBuildTypeOptions: [],
|
||||||
|
examMethodOptions: [],
|
||||||
|
secretLevelOptions: [],
|
||||||
|
scoreScaleOptions: [],
|
||||||
addForm: this.createEmptyForm(),
|
addForm: this.createEmptyForm(),
|
||||||
rules: {
|
rules: {
|
||||||
kmc: [{ required: true, message: '请输入课名称', trigger: 'blur' }],
|
kmc: [{ required: true, message: '请输入课名称', trigger: 'blur' }],
|
||||||
jysdh: [{ required: true, message: '请输入教研室代号', trigger: 'blur' }],
|
jysdh: [{ required: true, message: '请选择教研室代号', trigger: 'change' }],
|
||||||
xf: [{ required: true, message: '请输入学分', trigger: 'blur' }],
|
xf: [{ required: true, message: '请输入学分', trigger: 'blur' }],
|
||||||
pxcc: [{ required: true, message: '请输入培训层次', trigger: 'blur' }],
|
pxcc: [{ required: true, message: '请选择培训层次', trigger: 'change' }],
|
||||||
pxlx: [{ required: true, message: '请输入培训类型', trigger: 'blur' }],
|
pxlx: [{ required: true, message: '请选择培训类型', trigger: 'change' }],
|
||||||
kclx: [{ required: true, message: '请输入课程类型', trigger: 'blur' }],
|
kclx: [{ required: true, message: '请选择课程类型', trigger: 'change' }],
|
||||||
ksks: [{ required: true, message: '请输入考试课时', trigger: 'blur' }],
|
ksks: [{ required: true, message: '请输入考试课时', trigger: 'blur' }],
|
||||||
cjfz: [{ required: true, message: '请输入成绩分制', trigger: 'blur' }],
|
cjfz: [{ required: true, message: '请选择成绩分制', trigger: 'change' }],
|
||||||
llxs: [{ required: true, message: '请输入理论学时', trigger: 'blur' }],
|
llxs: [{ required: true, message: '请输入理论学时', trigger: 'blur' }],
|
||||||
sjxs: [{ required: true, message: '请输入实践学时', trigger: 'blur' }],
|
sjxs: [{ required: true, message: '请输入实践学时', trigger: 'blur' }],
|
||||||
zks: [{ 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' }],
|
kctybh: [{ required: true, message: '请输入课程统一编号', trigger: 'blur' }],
|
||||||
fddyks: [{ required: true, message: '请输入辅导答疑课时', trigger: 'blur' }],
|
fddyks: [{ required: true, message: '请输入辅导答疑课时', trigger: 'blur' }],
|
||||||
zxks: [{ required: true, message: '请输入自修课时', trigger: 'blur' }],
|
zxks: [{ required: true, message: '请输入自修课时', trigger: 'blur' }],
|
||||||
xdrq: [{ required: true, message: '请输入修订日期', trigger: 'blur' }],
|
xdrq: [{ required: true, message: '请输入修订日期', trigger: 'blur' }],
|
||||||
jcyxj: [{ required: true, message: '请输入节次优选级', trigger: 'blur' }],
|
jcyxj: [{ required: true, message: '请选择节次优选级', trigger: 'change' }],
|
||||||
kczcfs: [{ required: true, message: '请输入课程支持方式', trigger: 'blur' }],
|
kczcfs: [{ required: true, message: '请选择课程支持方式', trigger: 'change' }],
|
||||||
kcjsfs: [{ required: true, message: '请输入课程建设方式', trigger: 'blur' }],
|
kcjsfs: [{ required: true, message: '请选择课程建设方式', trigger: 'change' }],
|
||||||
khfs: [{ required: true, message: '请输入考核方式', trigger: 'blur' }],
|
khfs: [{ required: true, message: '请选择考核方式', trigger: 'change' }],
|
||||||
xcxcjfz: [{ required: true, message: '请输入形成性成绩分值', trigger: 'blur' }],
|
xcxcjfz: [{ required: true, message: '请输入形成性成绩分值', trigger: 'blur' }],
|
||||||
zjxcjfz: [{ 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' }]
|
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() {
|
handleOpenDialog() {
|
||||||
this.isEdit = false
|
this.isEdit = false
|
||||||
this.resetForm()
|
this.resetForm()
|
||||||
|
this.loadFormOptions()
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -554,6 +629,7 @@ export default {
|
|||||||
const data = (res && res.data) || row
|
const data = (res && res.data) || row
|
||||||
this.isEdit = true
|
this.isEdit = true
|
||||||
this.addForm = Object.assign(this.createEmptyForm(), data)
|
this.addForm = Object.assign(this.createEmptyForm(), data)
|
||||||
|
this.loadFormOptions()
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user