Jelajahi Sumber

添加删除年级和保存评价数接口调用

lm 1 bulan lalu
induk
melakukan
89d10f9717

+ 7 - 2
src/api/step1Component.ts

@@ -114,8 +114,13 @@ export const editGradeApi = (data:any)=>{
 }
 
 
-// 删除年级  ??? 
-
+// 删除年级
+export const deleteGradeApi = (evaluationGradeId:any)=>{
+    return request({
+        url: `${teacherPrefix}/api/v1/evaluationData/deleteGradeData/${evaluationGradeId}`,
+        method: 'get',
+    })
+}
 
 
 

+ 52 - 9
src/views/reviewManagement/stepComponent/step1Component/Step1Component.vue

@@ -8,7 +8,7 @@
           </div>
           <div class="content_right">
             <el-button  class="button_border"  @click="OpenAddGradeForm">新增年级</el-button>
-            <el-button  class="button_background">完成</el-button>
+            <el-button  class="button_background" @click="SaveEvaluationData">完成</el-button>
           </div>
         </div>
       </div>
@@ -27,13 +27,13 @@
                   <div class="grade_title">
                     {{ gradeOpt.gradeName }} (共{{ gradeOpt.subjectCount }}科)
                   </div>
+
                   <el-checkbox v-model="gradeOpt.selectionStatus" >选科</el-checkbox>
-                
                   <div class="selection_params" v-if="gradeOpt.selectionStatus">
                     <span class="param_text">一共 </span>
-                    <el-input type="number"  v-model="gradeOpt.selectionStatus"></el-input>
+                    <el-input type="number" :max="5" :min="1" v-model="gradeOpt.selectionCount"></el-input>
                     <span class="param_text"> 科,需要选择 </span>
-                    <el-input type="number"  v-model="gradeOpt.needCount"></el-input>
+                    <el-input type="number" :max="5" :min="1"  v-model="gradeOpt.needCount"></el-input>
                     <span class="param_text"> 科</span>
                 </div>
                   
@@ -78,6 +78,7 @@
           
               <!-- 选科 -->
               <el-form-item 
+                v-if="gradeOpt.selectionStatus"
                 label="选科:"
                 prop="selectSubjectData"
                 :rules="[]"
@@ -221,6 +222,7 @@ import {
     addGradeSubjectApi,addGradeSelectedSubjectApi,
     deleteGradeSubjectApi,deleteGradeSelectedSubjectApi,
     addCustomSubjectApi,editCustomSubjectApi,editGradeApi,
+    deleteGradeApi,
     getGradeListApi,getSubjectDataApi,getSubjectSelectedDataApi,
     saveEvaluationDataDetailApi
 } from '@/api/step1Component.ts'
@@ -268,7 +270,15 @@ const GetEvaluationDataDetail = async () => {
   let evaluationId = route.query.id; 
   let res = await getEvaluationDataDetailApi(evaluationId);
   if(res?.code === 200){
-    gradeOptions.value = res.data; 
+    gradeOptions.value = res.data.map(item=>{
+      return {
+        ...item,
+        // 寻找默认选中的班级  selectStatus 1 选中  0 未选中
+        selectedClassData:item.classData?.filter(classItm=>{
+          return Number(classItm?.selectStatus) === 1
+        }).map(aim=>aim.id)
+      }
+    }) 
     defaultGradeFormData.value.grade = res?.data?.map(item=>{
       return item.id
     }) || []
@@ -439,7 +449,7 @@ const UpdataCheckedSubject = async (params)=>{
   let addOrUpdateParams = {
       evaluationId:route.query.id,
       evaluationGradeId: currentOperationRow.value.id,
-      selectionStatus: currentOperationRow.value.selectionStatus,
+      selectionStatus: currentOperationRow.value.selectionStatus ? 1 : 0,
       selectionCount:currentOperationRow.value.selectionCount,
       needCount:currentOperationRow.value.needCount,
       subjectIds: selectedSubjectIds
@@ -498,7 +508,6 @@ const handleSelectAllClassOrNot = (selectedValue: any[], gradeOption: any) => {
 
   if(selectedValue){
     // 全选
-    // 这个没起作用
     selectedClassData = gradeOption.classData.map(item => item.id);
   }else{
     // 取消全选
@@ -510,7 +519,8 @@ const handleSelectAllClassOrNot = (selectedValue: any[], gradeOption: any) => {
     if(item.id === gradeOption.id){
       return {
         ...item,
-        selectedClassData
+        selectedClassData,
+
       }
     }
     return item;
@@ -532,7 +542,7 @@ const HandleDeleteConfirm = async () => {
   let res = undefined
   switch(currentOpenType.value){
     case 'grade':  // 年级删除
-      //暂无接口
+      res = await deleteGradeApi(currentDeleteRow.value?.id)
       break
     case 'subject':  // 科目删除
       res = await deleteGradeSubjectApi(currentDeleteRow.value?.id)
@@ -570,6 +580,39 @@ const HandleDeleteOpen = (row: any,type) => {
 };
 
 
+// 7. 保存评价数据
+const SaveEvaluationData = async ()=>{
+  let params = {
+    evaluationId: route.query.id,
+    classMasterStatus: isHeadTeacherInvolved.value ? 1 : 0,
+    gradeData: gradeOptions.value.map(item=>{
+      if(item.selectionStatus){
+        return {
+          id: item.id,
+          gradeName:item.gradeName,
+          selectionStatus: item.selectionStatus ? 1 : 0,
+          selectionCount: item.selectionCount,
+          needCount:item.needCount,
+          classIds: item.selectedClassData
+        }
+      }else{
+        return {
+          id: item.id,
+          gradeName:item.gradeName,
+          selectionStatus: item.selectionStatus ? 1 : 0,
+          classIds: item.selectedClassData
+        }
+      }
+    })
+  }
+
+  let res = await saveEvaluationDataDetailApi(params)
+  if(res?.code == 200){
+    ElMessage.success(res?.msg)
+    await GetEvaluationDataDetail()
+  }
+
+}
 
 onMounted(async() => {
   console.log('组件挂载完成');