|
@@ -4,7 +4,7 @@
|
|
|
<div class="section" v-if="electiveFormItm?.label">
|
|
<div class="section" v-if="electiveFormItm?.label">
|
|
|
<div class="section_title">{{electiveFormItm?.label}}:</div>
|
|
<div class="section_title">{{electiveFormItm?.label}}:</div>
|
|
|
<el-checkbox-group
|
|
<el-checkbox-group
|
|
|
- v-model="selectedSubjects"
|
|
|
|
|
|
|
+ v-model="selectedElectives"
|
|
|
class="check_group_btn_list"
|
|
class="check_group_btn_list"
|
|
|
@change="(val)=>handleSelectChange(val)">
|
|
@change="(val)=>handleSelectChange(val)">
|
|
|
<el-checkbox-button
|
|
<el-checkbox-button
|
|
@@ -20,7 +20,7 @@
|
|
|
<div class="section">
|
|
<div class="section">
|
|
|
<div class=" section_title">{{ sub.label }}:</div>
|
|
<div class=" section_title">{{ sub.label }}:</div>
|
|
|
<el-radio-group
|
|
<el-radio-group
|
|
|
- v-model="selectedSubjectClasses[sub.key]"
|
|
|
|
|
|
|
+ v-model="selectedTeachingClass[sub.key]"
|
|
|
class="radio_group_list">
|
|
class="radio_group_list">
|
|
|
<el-radio v-for="classItm in sub.selectList" :key="classItm.value" :value="classItm.value">
|
|
<el-radio v-for="classItm in sub.selectList" :key="classItm.value" :value="classItm.value">
|
|
|
{{ classItm.label }}
|
|
{{ classItm.label }}
|
|
@@ -34,7 +34,7 @@
|
|
|
<div class="section">
|
|
<div class="section">
|
|
|
<div class=" section_title">{{ sub.label }}:</div>
|
|
<div class=" section_title">{{ sub.label }}:</div>
|
|
|
<el-radio-group
|
|
<el-radio-group
|
|
|
- v-model="selectedSubjectClasses[sub.key]"
|
|
|
|
|
|
|
+ v-model="selectedTeachingClass[sub.key]"
|
|
|
class="radio_group_list">
|
|
class="radio_group_list">
|
|
|
<el-radio v-for="classItm in sub.selectList"
|
|
<el-radio v-for="classItm in sub.selectList"
|
|
|
:key="classItm.value"
|
|
:key="classItm.value"
|
|
@@ -86,51 +86,26 @@ const electiveNeedCount = ref(0) //选科的必选数量
|
|
|
const selectedElectives = ref([]) // 选中的选科项
|
|
const selectedElectives = ref([]) // 选中的选科项
|
|
|
const selectedTeachingClass = ref<Record<string,string[]>>({}) // 选中的教学班 班级项
|
|
const selectedTeachingClass = ref<Record<string,string[]>>({}) // 选中的教学班 班级项
|
|
|
|
|
|
|
|
-// 选中的信息
|
|
|
|
|
-const selectedSubjectClasses = ref<Record<string,string>>({}); // 已选科目的班级id 列表
|
|
|
|
|
-const selectedSubjects = ref<string[]>([]) // 已选中的科目列表
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
// 切换科目选中状态
|
|
// 切换科目选中状态
|
|
|
const handleSelectChange = (val)=>{
|
|
const handleSelectChange = (val)=>{
|
|
|
// 先要限制科目数量
|
|
// 先要限制科目数量
|
|
|
// if(val.length >2){
|
|
// if(val.length >2){
|
|
|
- // selectedSubjects.value.splice(0, val.length- 2)
|
|
|
|
|
|
|
+ // selectedElectives.value.splice(0, val.length- 2)
|
|
|
// }
|
|
// }
|
|
|
|
|
|
|
|
// 选中状态也需要更新
|
|
// 选中状态也需要更新
|
|
|
- let exitstSelectedKeys = Object.keys(selectedSubjectClasses.value)
|
|
|
|
|
|
|
+ let exitstSelectedKeys = Object.keys(selectedTeachingClass.value)
|
|
|
let fixedKeys= noElectiveTeachingSubjectFormItms.value?.map(item=>item.key)
|
|
let fixedKeys= noElectiveTeachingSubjectFormItms.value?.map(item=>item.key)
|
|
|
let deleteKeys = exitstSelectedKeys.filter(key=>{
|
|
let deleteKeys = exitstSelectedKeys.filter(key=>{
|
|
|
!(fixedKeys.includes(key) || val.includes(key))
|
|
!(fixedKeys.includes(key) || val.includes(key))
|
|
|
})
|
|
})
|
|
|
// 删除不在页面上展示的已选中班级项
|
|
// 删除不在页面上展示的已选中班级项
|
|
|
deleteKeys.map(item=>{
|
|
deleteKeys.map(item=>{
|
|
|
- delete selectedSubjectClasses.value[item]
|
|
|
|
|
|
|
+ delete selectedTeachingClass.value[item]
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
-
|
|
|
|
|
// 动态的 选科 科目班级 配置(展示)项列表
|
|
// 动态的 选科 科目班级 配置(展示)项列表
|
|
|
- let finalElectiveTeachingSubjectData = electiveSubjectClassData.value.filter(item=>{
|
|
|
|
|
- return val.includes(item.evaluationSubjectId)
|
|
|
|
|
- })?.map(subjectMsg=>{
|
|
|
|
|
- let classOpts = subjectMsg?.classData?.map(classItm=>{
|
|
|
|
|
- return {label:classItm.name, value:classItm.id}
|
|
|
|
|
- }) || []
|
|
|
|
|
- return {
|
|
|
|
|
- key: subjectMsg.evaluationSubjectId,
|
|
|
|
|
- label: subjectMsg.subjectName,
|
|
|
|
|
- type:'radio',
|
|
|
|
|
- rules:[
|
|
|
|
|
- {required:true,trigger:'blur',message:'请选择'}
|
|
|
|
|
- ],
|
|
|
|
|
- hidden:false,
|
|
|
|
|
- custom:false,
|
|
|
|
|
- style:{},
|
|
|
|
|
- selectList:classOpts,
|
|
|
|
|
- }
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ let finalElectiveTeachingSubjectData = LoadDynamicElectiveSubjectClass(val)
|
|
|
// // 动态变更 教学班选项的信息
|
|
// // 动态变更 教学班选项的信息
|
|
|
electiveTeachingSubjectFormItms.value = finalElectiveTeachingSubjectData
|
|
electiveTeachingSubjectFormItms.value = finalElectiveTeachingSubjectData
|
|
|
}
|
|
}
|
|
@@ -139,9 +114,9 @@ const handleSelectChange = (val)=>{
|
|
|
|
|
|
|
|
// 点击确认
|
|
// 点击确认
|
|
|
const handle_confirm = async () => {
|
|
const handle_confirm = async () => {
|
|
|
- let evaluationSubjectIds = selectedSubjects.value
|
|
|
|
|
|
|
+ let evaluationSubjectIds = selectedElectives.value
|
|
|
|
|
|
|
|
- let subjectClassObj = {...selectedSubjectClasses.value}
|
|
|
|
|
|
|
+ let subjectClassObj = {...selectedTeachingClass.value}
|
|
|
|
|
|
|
|
|
|
|
|
|
// 最终提交只保留 展示的项
|
|
// 最终提交只保留 展示的项
|
|
@@ -174,6 +149,31 @@ const handle_confirm = async () => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+// 动态加载 不定项选科数据
|
|
|
|
|
+const LoadDynamicElectiveSubjectClass = (selectedSubject:string[])=>{
|
|
|
|
|
+ // 动态的 选科 科目班级 配置(展示)项列表
|
|
|
|
|
+ return electiveSubjectClassData.value?.filter(item=>{
|
|
|
|
|
+ return selectedSubject.includes(item.evaluationSubjectId)
|
|
|
|
|
+ })?.map(subjectMsg=>{
|
|
|
|
|
+ let classOpts = subjectMsg?.classData?.map(classItm=>{
|
|
|
|
|
+ return {label:classItm.name, value:classItm.evaluationClassId}
|
|
|
|
|
+ }) || []
|
|
|
|
|
+ return {
|
|
|
|
|
+ key: subjectMsg.evaluationSubjectId,
|
|
|
|
|
+ label: subjectMsg.subjectName,
|
|
|
|
|
+ type:'radio',
|
|
|
|
|
+ rules:[
|
|
|
|
|
+ {required:true,trigger:'blur',message:'请选择'}
|
|
|
|
|
+ ],
|
|
|
|
|
+ hidden:false,
|
|
|
|
|
+ custom:false,
|
|
|
|
|
+ style:{},
|
|
|
|
|
+ selectList:classOpts,
|
|
|
|
|
+ }
|
|
|
|
|
+ }) || []
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
onMounted( async()=>{
|
|
onMounted( async()=>{
|
|
|
console.log('加载了')
|
|
console.log('加载了')
|
|
|
let res = await getEvaluationSubjectApi()
|
|
let res = await getEvaluationSubjectApi()
|
|
@@ -184,13 +184,14 @@ onMounted( async()=>{
|
|
|
let electiveSubjectOptions = subjectData?.map(item=>{
|
|
let electiveSubjectOptions = subjectData?.map(item=>{
|
|
|
return {
|
|
return {
|
|
|
label:item.name,
|
|
label:item.name,
|
|
|
- value:item.id
|
|
|
|
|
|
|
+ value:item.evaluationSubjectId
|
|
|
}
|
|
}
|
|
|
}) || []
|
|
}) || []
|
|
|
|
|
+ // 默认选中的选科数据
|
|
|
selectedElectives.value = subjectData?.filter(subject=>{
|
|
selectedElectives.value = subjectData?.filter(subject=>{
|
|
|
return subject.usedStatus // 是否选中,false-否,true-是
|
|
return subject.usedStatus // 是否选中,false-否,true-是
|
|
|
}).map(itm=>{
|
|
}).map(itm=>{
|
|
|
- return itm.id
|
|
|
|
|
|
|
+ return itm.evaluationSubjectId
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
@@ -224,7 +225,7 @@ onMounted( async()=>{
|
|
|
// 非选科的 科目教学班配置项列表
|
|
// 非选科的 科目教学班配置项列表
|
|
|
noElectiveTeachingSubjectFormItms.value = noElectiveSubjectClassData.map(subjectMsg=>{
|
|
noElectiveTeachingSubjectFormItms.value = noElectiveSubjectClassData.map(subjectMsg=>{
|
|
|
let classOpts = subjectMsg?.classData?.map(classItm=>{
|
|
let classOpts = subjectMsg?.classData?.map(classItm=>{
|
|
|
- return {label:classItm.name, value:classItm.id}
|
|
|
|
|
|
|
+ return {label:classItm.name, value:classItm.evaluationClassId}
|
|
|
}) || []
|
|
}) || []
|
|
|
|
|
|
|
|
return {
|
|
return {
|
|
@@ -250,13 +251,28 @@ onMounted( async()=>{
|
|
|
|
|
|
|
|
//(3) 每个科目的默认选中班级赋值
|
|
//(3) 每个科目的默认选中班级赋值
|
|
|
classData?.map(subjectClass=>{
|
|
classData?.map(subjectClass=>{
|
|
|
- let selectedClass = subjectClass.classData.filter(classItm=>{
|
|
|
|
|
|
|
+ let selectedClass = subjectClass.classData.find(classItm=>{
|
|
|
return classItm.usedStatus
|
|
return classItm.usedStatus
|
|
|
- }).map(itm=>{
|
|
|
|
|
- return itm.id
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ })?.evaluationClassId
|
|
|
selectedTeachingClass.value[subjectClass.evaluationSubjectId] = selectedClass
|
|
selectedTeachingClass.value[subjectClass.evaluationSubjectId] = selectedClass
|
|
|
})
|
|
})
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // 3. 最终的教学班配置项列表
|
|
|
|
|
+
|
|
|
|
|
+ let initFormItm = []
|
|
|
|
|
+
|
|
|
|
|
+ if(electiveFormItm.value){
|
|
|
|
|
+ initFormItm.push(electiveFormItm.value)
|
|
|
|
|
+ }
|
|
|
|
|
+ if(noElectiveTeachingSubjectFormItms.value.length > 0){
|
|
|
|
|
+ initFormItm.push(...noElectiveTeachingSubjectFormItms.value)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 获取需要加载的 动态数据
|
|
|
|
|
+ let finalElectiveTeachingSubjectData = LoadDynamicElectiveSubjectClass(selectedElectives.value)
|
|
|
|
|
+ electiveTeachingSubjectFormItms.value = finalElectiveTeachingSubjectData
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
|
|
|