Prechádzať zdrojové kódy

publish elective - group modifier

hare8999@163.com 3 rokov pred
rodič
commit
7200b38501

+ 25 - 14
src/views/permission/components/steps/round-setting-group.vue

@@ -41,19 +41,22 @@
     <!--  师资填写  -->
     <div class="mt20 mb5">
       <el-button-group>
-        <el-button :type="enableFacultyForm?'primary':''" size="small" @click="openFacultyForm">AI师资匹配</el-button>
-        <el-button v-if="enableFacultyForm||enableFacultyResult" size="small" :plain="!groupModel.completed"
+        <el-button v-if="groupsValid" :type="enableFacultyForm?'primary':''" size="small"
+                   @click="openFacultyForm">AI师资匹配
+        </el-button>
+        <el-button v-if="groupsValid&&(enableFacultyForm||enableFacultyResult)" size="small"
+                   :plain="!groupModel.completed"
                    :type="groupModel.completed?enableFacultyResult?'primary':'':'warning'"
                    @click="calculateFacultyResult">
           {{ groupModel.completed ? '' : '生成' }}师资匹配结果
         </el-button>
       </el-button-group>
     </div>
-    <faculty-forms ref="formFaculty" v-if="enableFacultyForm" :rows="groupModel.faculties"
+    <faculty-forms ref="formFaculty" v-if="groupsValid&&enableFacultyForm" :rows="groupModel.faculties"
                    @change="resetCalculateStatus"></faculty-forms>
 
     <!--  师资结果  -->
-    <faculty-result v-if="enableFacultyResult" :rows="groupModel.faculties"></faculty-result>
+    <faculty-result v-if="groupsValid&&enableFacultyResult" :rows="groupModel.faculties"></faculty-result>
 
     <!--  操作  -->
     <div class="fx-row mt20">
@@ -96,9 +99,10 @@ import FacultyForms from '@/views/permission/components/steps/fauclty/faculty-fo
 import RoundModelConvert from '../round-model-convert'
 import { calculateFaculties, generateFaculties } from '@/api/webApi/selection'
 import FacultyResult from '@/views/permission/components/steps/fauclty/faculty-result'
-import GroupQueryDialog from'../group-query-dialog'
+import GroupQueryDialog from '../group-query-dialog'
+
 export default {
-  components: { FacultyResult, FacultyForms, RoundScoreQuery,ChooseSubjectDialog,GroupQueryDialog },
+  components: { FacultyResult, FacultyForms, RoundScoreQuery, ChooseSubjectDialog, GroupQueryDialog },
   mixins: [selectTranslateMixin, RoundModelConvert],
   name: 'round-setting-group',
   props: {
@@ -157,6 +161,9 @@ export default {
     }
   },
   computed: {
+    groupsValid() {
+      return !!this.groupModel.groupIds.length
+    },
     roundGroups() {
       // 按选项显示顺序排序
       if (!this.groupModel?.groupIds?.length) return []
@@ -254,9 +261,15 @@ export default {
     resetCalculateStatus() {
       this.groupModel.completed = false
       const clearFields = ['levelClassCount', 'qualifiedClassCount', 'requiredClassesCount', 'actualClassesCount', 'missingClassesCount', 'missingTeacherCount']
-      this.groupModel.faculties?.forEach(faculty => {
-        clearFields.forEach(field => faculty[field] = 0)
-      })
+      if (!this.groupsValid) {
+        this.enableFacultyForm = false
+        this.enableFacultyResult = false
+        this.groupModel.faculties = []
+      } else {
+        this.groupModel.faculties?.forEach(faculty => {
+          clearFields.forEach(field => faculty[field] = 0)
+        })
+      }
       if (this.enableFacultyForm || this.enableFacultyResult) {
         this.enableFacultyForm = true
         this.enableFacultyResult = !this.enableFacultyForm
@@ -280,18 +293,16 @@ export default {
         this.scoreQueryGroupId = row.groupId
         this.scoreQueryVisible = true
       }
-      console.log(row,key)
-      if(key == 'dataQuery') {
+      if (key == 'dataQuery') {
         const year = this.settingModel.year
         this.$refs.groupQueryDialog.open(year)
       }
-      if(key == 'majorQuery') {
+      if (key == 'majorQuery') {
         // 打开选科弹窗
         const course0 = this.translateCourse0(row.groupId)
         const course1 = this.translateCourse1(row.groupId)
-        console.log(year)
         const year = this.settingModel.year
-        this.$refs.chooseDialog.open(course0, course1,year)
+        this.$refs.chooseDialog.open(course0, course1, year)
       }
     }
   }

+ 3 - 1
src/views/permission/components/steps/round-setting-score.vue

@@ -40,7 +40,9 @@ export default {
     },
     shouldGoNext() {
       if (!this.settingModel.importWeight?.length) {
-        return this.$confirm('您没有导入选科成绩,后续系统将无法使用成绩来做AI选科决策,确认继续?!')
+        const error = '请先导入选科成绩,否则系统将无法进行AI选科决策'
+        this.$alert(error, '错误提示', { type: 'error' })
+        return Promise.reject(error)
       }
       return Promise.resolve(this.settingModel)
     }

+ 7 - 10
src/views/permission/components/steps/round-setting-weight.vue

@@ -45,16 +45,13 @@ export default {
   },
   methods: {
     shouldGoNext() {
-      return new Promise((resolve, reject) => {
-        const sumWeight = this.settingModel.importWeight.sum(s => s.weight)
-        if (sumWeight != 1) {
-          const error = '全部成绩的权重和必须为1'
-          this.$alert(error)
-          reject(error)
-          return
-        }
-        resolve(this.settingModel)
-      })
+      const sumWeight = this.settingModel.importWeight.sum(s => s.weight)
+      if (sumWeight != 1) {
+        const error = '全部成绩的权重和必须为1'
+        this.$alert(error, '错误提示', { type: 'error' })
+        return Promise.reject(error)
+      }
+      return Promise.resolve(this.settingModel)
     },
     handleDelete(row) {
       this.$confirm(`确定删除[${row.scoreName}]`).then(_ => {