Parcourir la source

班主任分班分配班级

shilipojs il y a 2 ans
Parent
commit
2b06e26470

+ 29 - 10
src/api/webApi/elective/dispatch.js

@@ -83,29 +83,48 @@ export function getClass(params) {
 //   })
 // }
 
-// 班主任分班settings   mock
-export function getHeadteacherDispatchSettings(params) {
+// 获取班主任分班settings
+export function getTeacherSettings(params) {
   return request({
-    url: '/mock/front/dispatch/getHeadteacherDispatchSettings',
+    url: '/front/elective/classes/teacher/settings',
     method: 'get',
     params
   })
 }
 
-// 维持所有原班级班主任   mock
-export function keepCurrentHeadteachersAsDispatch(params) {
+// 维持所有原班级班主任
+export function keepAllOfTeacher(params) {
   return request({
-    url: '/mock/front/dispatch/keepCurrentHeadteachersAsDispatch',
-    method: 'get',
+    url: '/front/elective/classes/teacher/keep',
+    method: 'post',
+    params
+  })
+}
+
+// 保存班主任分班settings
+export function saveTeacherSettings(params) {
+  return request({
+    url: '/front/elective/classes/teacher/settings',
+    method: 'post',
     params
   })
 }
 
-// 维持所有原班级班主任   mock
-export function saveHeadteacherDispatchSetting(params) {
+// 获取当前学生分班或者班主任分班设置
+export function publish(params) {
   return request({
-    url: '/mock/front/dispatch/saveHeadteacherDispatchSetting',
+    url: '/front/elective/classes/publish',
     method: 'get',
     params
   })
 }
+
+// 分配完毕后发布,锁定分班流程,与班主任分班共享设置时间
+export function lockPublish(params) {
+  return request({
+    url: '/front/elective/classes/publish',
+    method: 'post',
+    params
+  })
+}
+// getDispatchSharedSetting

+ 26 - 5
src/views/elective/master/components/choose-class.vue

@@ -10,17 +10,19 @@
       </el-radio-group>
     </div>
     <span slot="footer" class="dialog-footer">
-      <el-button @click="dialogVisible = false">取 消</el-button>
+      <el-button @click="onClose">取 消</el-button>
       <el-button type="primary" @click="confirm">确 定</el-button>
     </span>
   </el-dialog>
 </template>
 <script>
 import MxClassTreeTranslateMixin from '@/components/Cache/modules/mx-classTree-translate-mixin'
+import { saveTeacherSettings } from '@/api/webApi/elective/dispatch'
 
 export default{
   props: {
     year:'',
+    roundId: '',
     headteacherSettings: {} // 已经被选择的
   },
   mixins: [MxClassTreeTranslateMixin],
@@ -41,12 +43,31 @@ export default{
   },
   methods: {
     confirm() {
-      this.activeClass.newClassId =  this.value
-      this.activeClass.newClassName =  this.getClassName(this.value)
-      this.activeClass.newMasterId =  this.activeClass.prevMasterId
-      this.activeClass.newMasterName =  this.activeClass.prevMasterName
+      // 判断是否重复?
+      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)
+    },
+    isRepeat() {
+      // 判断是否重复?
+    },
+    onClose() {
       this.dialogVisible = false
     },
+    saveTeacherSettings() {
+      saveTeacherSettings({
+        roundId: this.roundId,
+        classId: this.value,
+        customerCode:this.activeClass.headteacherCode || ''
+      }).then(res => {
+        this.$parent.handleQuery()
+        console.log(res)
+      })
+    },
     enable(row){
       const headteacherSettings = this.headteacherSettings
       const activeClass  = this.activeClass

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

@@ -3,7 +3,7 @@
     :visible.sync="dialogVisible"
     width="80%"
   >
-    <teacher-manage :selectMode="true" :selectedCode="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>

+ 42 - 14
src/views/elective/master/index.vue

@@ -17,7 +17,7 @@
               placement="bottom"
               trigger="click">
               <span class="btn-green mr5" @click="changeMaster(row)">班主任</span>
-              <span  class="btn-green" @click="changeClass(row)">班级</span>
+              <span  class="btn-green" v-if="!!row.headteacherName" @click="changeClass(row)">班级</span>
 
               <el-button type="primary" slot="reference" size="mini">更换</el-button>
             </el-popover>
@@ -30,11 +30,11 @@
       <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 ref="chooseClass" :year="queryParams.year" :headteacherSettings="headteacherSettings"></choose-class>
+    <choose-class :roundId="queryParams.roundId" ref="chooseClass" :year="queryParams.year" :headteacherSettings="headteacherSettings"></choose-class>
   </div>
 </template>
 <script>
-import {getHeadteacherDispatchSettings} from  '@/api/webApi/elective/dispatch'
+import {getTeacherSettings,keepAllOfTeacher,publish,saveTeacherSettings} from  '@/api/webApi/elective/dispatch'
 import ChooseMasterTeacher from './components/choose-master-teacher'
 import classTreeMixin from '@/components/Cache/modules/mx-classTree-translate-mixin'
 import ChooseClass from './components/choose-class'
@@ -94,46 +94,74 @@ export default  {
       })?.classList.map(item => {
         // console.log(headteacherSettings.hasOwnProperty(item.classId))
         item.year = this.queryParams.year
+        item.newClassId = headteacherSettings.hasOwnProperty(item.classId) ? item.classId : ''    // 新班级Id
         item.newClassName = headteacherSettings.hasOwnProperty(item.classId) ? this.getClassName(item.classId) : ''    // 新班级名称
         item.newHeadteacherName = headteacherSettings.hasOwnProperty(item.classId) ? headteacherSettings[item.classId].nickName  : ''    // 新班主任名称
-        item.newHeadteacherCode = headteacherSettings.hasOwnProperty(item.classId) ? headteacherSettings[item.classId].newHeadteacherCode  : ''    // 新班主任code
+        item.newHeadteacherCode = headteacherSettings.hasOwnProperty(item.classId) ? headteacherSettings[item.classId].customerCode  : ''    // 新班主任code
         return item
       })
     }
   },
   methods: {
+    getPublish() {
+      publish({
+        roundId:this.queryParams.roundId
+      }).then(res => {
+         console.log(res)
+      })
+    },
     async keepAll() {
       if(Object.keys(this.headteacherSettings).length > 0) {
         await this.$confirm(`一键维持原班级会覆盖您之前的设置,是否继续?`)
       }else {
         await this.$confirm(`是否一键维持原班级?`)
+        this.keepAllOfTeacher()
       }
-
       // 维持原班级
     },
     getHeadteacherSettings() {
-      getHeadteacherDispatchSettings().then(res => {
+      getTeacherSettings({
+        roundId: this.queryParams.roundId
+      }).then(res => {
         console.log(res.data)
-        this.headteacherSettings  =res.data
+        this.headteacherSettings  = res.data
+      })
+    },
+    keepAllOfTeacher() {
+      keepAllOfTeacher({
+        roundId:this.queryParams.roundId
+      }).then(res => {
+         // 维持班级后刷新
+         this.getHeadteacherSettings()
       })
     },
     send() {
-      const isSend = this.rows.filter(item => {
-         return item.newClassId != 0
-      }).length ==  this.rows.length
-      console.log(isSend)
-      if(!isSend) {
+      if(true) {
         this.$message.warning('还有班级未分配')
         return
       }
 
     },
-    cancel(row){
-
+    async cancel(row){
+      console.log(row)
+      if(!row.newHeadteacherCode) {
+        this.$message.warning('请先设定新班级')
+        return
+      }
+      await this.$confirm(`是否取消?`)
+      saveTeacherSettings({
+        roundId: this.queryParams.roundId,
+        classId: row.newClassId,
+      }).then(res => {
+        this.$message.success('取消成功')
+        this.handleQuery()
+        console.log(res)
+      })
     },
     handleQuery() {
       // 获取班主任 settings
       this.getHeadteacherSettings()
+      this.getPublish()
     },
     changeMaster(row){
       this.$refs.chooseMasterTeacher.init(row)

+ 0 - 1
src/views/permission/teacher-manage.vue

@@ -106,7 +106,6 @@ export default {
       const settingsValue = Object.values(this.headteacherSettings)
       const headteacherSettings = this.headteacherSettings
       for (const key in headteacherSettings) {
-        console.log(headteacherSettings[key])
         if(headteacherSettings[key].headteacherCode ==  row.customerCode) {
           return this.getClassName(key)
         }