Pārlūkot izejas kodu

班主任分班完善

shilipojs 2 gadi atpakaļ
vecāks
revīzija
09dd08e9b6

+ 17 - 8
src/views/elective/master/components/choose-class.vue

@@ -23,7 +23,7 @@ export default{
   props: {
     year:'',
     roundId: '',
-    headteacherSettings: {} // 已经被选择的
+    headTeacherSettings: {} // 已经被选择的
   },
   mixins: [MxClassTreeTranslateMixin],
   data() {
@@ -44,16 +44,25 @@ export default{
   methods: {
     confirm() {
       // 判断是否重复?
-      const headTeacherSettings = Object.values(this.headTeacherSettings)
-      if(this.headteacherSettings.keys())
+      // const headTeacherSettings = Object.values(this.headTeacherSettings)
+      // if(this.headteacherSettings.keys())
       // this.saveTeacherSettings()
       // this.onClose()
-      console.log(this.activeClass)
-      console.log(this.value)
-      console.log(this.headteacherSettings)
+      if(this.isRepeat()) {
+        this.$message.warning(`${this.activeClass.headteacherName}已分配给新班级`)
+        return
+      }
+      this.saveTeacherSettings()
+      this.onClose()
+      console.log(this.isRepeat())
     },
     isRepeat() {
       // 判断是否重复?
+      const headTeacherSettings = this.headTeacherSettings
+      const format = Object.values(headTeacherSettings)
+      const activeClass =this.activeClass
+      const flag = format.some(item => { return item.customerCode == activeClass.headteacherCode})
+      return flag
     },
     onClose() {
       this.dialogVisible = false
@@ -69,9 +78,9 @@ export default{
       })
     },
     enable(row){
-      const headteacherSettings = this.headteacherSettings
+      const headTeacherSettings = this.headTeacherSettings
       const activeClass  = this.activeClass
-      return Object.keys(headteacherSettings).findIndex(item => item == row.classId) != -1 && activeClass.classId != row.classId
+      return Object.keys(headTeacherSettings).findIndex(item => item == row.classId) != -1 && activeClass.classId != row.classId
     },
     init(row){
       this.dialogVisible = true

+ 32 - 3
src/views/elective/master/components/choose-master-teacher.vue

@@ -3,14 +3,15 @@
     :visible.sync="dialogVisible"
     width="80%"
   >
-    <teacher-manage :selectMode="true" v-model="selectedCode" :headteacherSettings="headteacherSettings"></teacher-manage>
+    <teacher-manage :selectMode="true" v-model="selectedCode" :headTeacherSettings="headTeacherSettings"></teacher-manage>
     <span slot="footer" class="dialog-footer">
       <el-button @click="dialogVisible = false">取 消</el-button>
-      <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
+      <el-button type="primary" @click="onConfirm">确 定</el-button>
     </span>
   </el-dialog>
 </template>
 <script>
+import { saveTeacherSettings } from '@/api/webApi/elective/dispatch'
 import TeacherManage from '@/views/permission/teacher-manage'
 export default  {
   name: 'ChooseMasterTeacher',
@@ -18,19 +19,47 @@ export default  {
     TeacherManage
   },
   props: {
-    headteacherSettings: {}
+    roundId: '',
+    headTeacherSettings: {}
   },
   data() {
     return {
       dialogVisible: false,
       selectedCode: '',
+      activeModels: ''
     }
   },
   methods: {
     init(row) {
       this.dialogVisible = true
+      this.activeModels = row
       this.selectedCode =  row.headteacherCode || row.newHeadteacherCode
     },
+    isRepeat() {
+      // 判断是否重复?
+      const headTeacherSettings = this.headTeacherSettings
+      const format = Object.values(headTeacherSettings)
+      const flag = format.some(item => { return item.customerCode == this.selectedCode})
+      return flag
+    },
+    onConfirm(){
+      if(this.isRepeat()) {
+        this.$message.warning(`该老师已分配给新班级`)
+        return
+      }
+      console.log(this.isRepeat())
+      this.saveTeacherSettings()
+    },
+    saveTeacherSettings() {
+      saveTeacherSettings({
+        roundId: this.roundId,
+        classId: this.activeModels.newClassId || this.activeModels.classId,
+        customerCode:this.selectedCode || ''
+      }).then(res => {
+        this.$parent.handleQuery()
+        this.dialogVisible =false
+      })
+    },
   }
 }
 </script>

+ 3 - 2
src/views/elective/master/index.vue

@@ -29,8 +29,8 @@
       </div>
       <evaluation-empty v-else-if="!queryParams.roundId" shadow title="当前学年没有班主任选班数据"></evaluation-empty>
     </el-card>
-    <choose-master-teacher ref="chooseMasterTeacher" :headteacherSettings="headteacherSettings"></choose-master-teacher>
-    <choose-class :roundId="queryParams.roundId" ref="chooseClass" :year="queryParams.year" :headteacherSettings="headteacherSettings"></choose-class>
+    <choose-master-teacher ref="chooseMasterTeacher" :roundId="queryParams.roundId" :headTeacherSettings="headteacherSettings"></choose-master-teacher>
+    <choose-class :roundId="queryParams.roundId" ref="chooseClass" :year="queryParams.year" :headTeacherSettings="headteacherSettings"></choose-class>
   </div>
 </template>
 <script>
@@ -113,6 +113,7 @@ export default  {
     async keepAll() {
       if(Object.keys(this.headteacherSettings).length > 0) {
         await this.$confirm(`一键维持原班级会覆盖您之前的设置,是否继续?`)
+        this.keepAllOfTeacher()
       }else {
         await this.$confirm(`是否一键维持原班级?`)
         this.keepAllOfTeacher()

+ 5 - 5
src/views/permission/teacher-manage.vue

@@ -66,7 +66,7 @@ export default {
       type: Boolean,
       default: false
     },
-    headteacherSettings: {
+    headTeacherSettings: {
       type: Object,
       default: {}
     },
@@ -103,10 +103,10 @@ export default {
   },
   methods: {
     isSelecedClassName(row) {
-      const settingsValue = Object.values(this.headteacherSettings)
-      const headteacherSettings = this.headteacherSettings
-      for (const key in headteacherSettings) {
-        if(headteacherSettings[key].headteacherCode ==  row.customerCode) {
+      const settingsValue = Object.values(this.headTeacherSettings)
+      const headTeacherSettings = this.headTeacherSettings
+      for (const key in headTeacherSettings) {
+        if(headTeacherSettings[key].headteacherCode ==  row.customerCode) {
           return this.getClassName(key)
         }
       }