Просмотр исходного кода

Merge branch 'master' of http://121.4.203.192:9000/mingxue/front

hare8999@163.com 2 лет назад
Родитель
Сommit
53210a9ab5

+ 5 - 0
src/components/MxDialog/DispatchMaster.vue

@@ -9,6 +9,7 @@
       <el-date-picker
         v-model="settings.activeDate"
         type="date"
+        value-format="yyyy-MM-dd"
         placeholder="选择日期">
       </el-date-picker>
     </div>
@@ -34,6 +35,10 @@
         console.log('dialog---init', this)
       },
       onConfirm() {
+        if(!this.settings.activeDate){
+          this.$message.warning('生效日期不能为空')
+          return
+        }
         this.lock()
       },
       lock() {

+ 11 - 0
src/components/MxDialog/DispatchStudent.vue

@@ -9,6 +9,7 @@
       <el-date-picker
         v-model="settings.activeDate"
         type="date"
+        value-format="yyyy-MM-dd"
         placeholder="选择日期">
       </el-date-picker>
     </div>
@@ -29,13 +30,23 @@ export default {
     }
   },
   methods: {
+    pickerOptions: {
+      disabledDate(time) {
+        return time.getTime() < Date.now() - 8.64e7;
+      }
+    },
     init() {
       console.log('dialog---init', this)
     },
     onConfirm() {
+     if(!this.settings.activeDate){
+       this.$message.warning('生效日期不能为空')
+       return
+     }
       this.lock()
     },
     lock() {
+      console.log(this.settings)
       lockPublish({
         ...this.settings
       }).then(res => {

+ 5 - 0
src/views/career/bigdataSelectCourse/personalDivideClass.vue

@@ -27,8 +27,13 @@
     </el-card>
   </div>
 </template>
+
 <script>
+import store from '@/store/getters'
  export default {
+    mixins:[
+      store
+    ],
    data(){
      return{
        isSign:false,

+ 7 - 1
src/views/elective/dispatch/components/class-table.vue

@@ -22,7 +22,13 @@
       >
       </el-table-column>
       <el-table-column
-        label="班级"
+        label="原班级"
+        prop="originalClassName"
+        v-if="type != '1'"
+      >
+      </el-table-column>
+      <el-table-column
+        :label="type == 1 ? '班级' : '新班级'"
         prop="className"
       >
       </el-table-column>

+ 6 - 6
src/views/elective/dispatch/index.vue

@@ -5,14 +5,17 @@
                     @invalid="handleInvalidQuery"
       ></mx-condition>
     </el-card>
-    <p v-if="round.allowDispatch" class="text-right mb10"><el-button @click="lockDispatch" type="primary">发布分班</el-button></p>
+    <div>
+      <p v-if="round.allowDispatch && !round.dispatchCompleted" class="text-right mb10"><el-button @click="lockDispatch" type="primary">发布分班</el-button></p>
+      <p class="text-right mt5 mb5 f14 mr5" v-if="round.dispatchCompleted">学生分班完成,在 {{publishSettings.activeDate}} 生效</p>
+    </div>
     <dispatch-table v-if="round.allowDispatch" :loading="loading" :round="round" :settings="settings"></dispatch-table>
     <evaluation-empty v-else-if="!round.allowDispatch" shadow :title="emptyTitle"></evaluation-empty>
   </div>
 </template>
 <script>
 import DispatchTable from "./components/dispatch-table.vue";
-import { getRound,getSettings,lockDispatch,getPublish,lockPublish} from '@/api/webApi/elective/dispatch'
+import { getRound,getSettings,getPublish} from '@/api/webApi/elective/dispatch'
 import MxCondition from '@/components/MxCondition/mx-condition'
 
 export default {
@@ -69,6 +72,7 @@ export default {
         this.$message.warning('还有组合未分班')
         return
       }
+
       // 分班锁定
       this.$Dialog('DispatchStudent',{
         settings: this.publishSettings
@@ -87,15 +91,11 @@ export default {
     },
     // 获取批次的组合
     getRound() {
-      this.loading = true
       getRound({
         year:this.queryParams.year,
         round:this.queryParams.roundId,
       }).then(res => {
         this.round = res.data
-        console.log(res)
-      }).finally((res) => {
-        this.loading= false
       })
     },
     handleInvalidQuery() {

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

@@ -48,10 +48,10 @@ export default{
       // if(this.headteacherSettings.keys())
       // this.saveTeacherSettings()
       // this.onClose()
-      if(this.isRepeat()) {
-        this.$message.warning(`${this.activeClass.headteacherName}已分配给新班级`)
-        return
-      }
+      // if(this.isRepeat()) {
+      //   this.$message.warning(`${this.activeClass.headteacherName}已分配给新班级`)
+      //   return
+      // }
       this.saveTeacherSettings()
       this.onClose()
       console.log(this.isRepeat())

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

@@ -47,10 +47,10 @@ export default {
       return flag
     },
     onConfirm() {
-      if (this.isRepeat()) {
-        this.$message.warning(`该老师已分配给新班级`)
-        return
-      }
+      // if (this.isRepeat()) {
+      //   this.$message.warning(`该老师已分配给新班级`)
+      //   return
+      // }
       if (!this.selectedCode) {
         this.dialogVisible = false
         return

+ 53 - 24
src/views/elective/master/index.vue

@@ -7,11 +7,14 @@
 
     <el-card v-if="queryParams.roundId">
       <div>
-        <div class="fx-row jc-between mb10">
-          <el-button type="primary" @click="keepAll">一键维持原班级</el-button>
-          <el-button type="primary" @click="send">发送名单</el-button>
+        <div>
+          <div  v-if="round.allowDispatch && !round.dispatchCompleted" class="fx-row jc-between mb10">
+            <el-button type="primary" @click="keepAll">一键维持原班级</el-button>
+            <el-button type="primary" @click="send">发送名单</el-button>
+          </div>
+          <p class="text-right mt5 mb5 f14 mr5" v-if="round.dispatchCompleted">班主任分班完成,在 {{settings.activeDate}} 生效</p>
         </div>
-        <mx-table :propDefines="propDefines" :rows="formatRows">
+        <mx-table :propDefines="propDefines" :rows="formatRows" >
           <template #temp="{row}">
             <el-popover
               placement="bottom"
@@ -19,7 +22,7 @@
               <span class="btn-green mr5" @click="changeMaster(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-button  type="primary" slot="reference" size="mini">更换</el-button>
             </el-popover>
           </template>
           <template #cancel="{row}">
@@ -41,7 +44,7 @@ import {
   keepAllOfTeacher,
   getPublish,
   saveTeacherSettings,
-  lockPublishTeachers
+  getRound
 } from '@/api/webApi/elective/dispatch'
 import ChooseMasterTeacher from './components/choose-master-teacher'
 import classTreeMixin from '@/components/Cache/modules/mx-classTree-translate-mixin'
@@ -57,7 +60,24 @@ export default {
   mixins: [classTreeMixin],
   data() {
     return {
-      propDefines: {
+
+      round: {},
+      requireFields: ['year', 'roundId'],
+      queryParams: {
+        pageNum: 1,
+        pageSize: 20,
+        total: '',
+        year: '',
+        roundId: ''
+      },
+      settings: {}, // 分班时间配置
+      headteacherSettings: null
+    }
+  },
+  computed: {
+    propDefines() {
+      if(!this.round) return {}
+      return  {
         year: {
           label: '学年'
         },
@@ -69,7 +89,8 @@ export default {
         },
         temp: {
           label: '确认班主任',
-          slot: 'temp'
+          slot: 'temp',
+          hidden:this.round.dispatchCompleted
         },
         newClassName: {
           label: '新班级号'
@@ -79,22 +100,11 @@ export default {
         },
         cancel: {
           label: '操作',
-          slot: 'cancel'
+          slot: 'cancel',
+          hidden:this.round.dispatchCompleted
         }
-      },
-      requireFields: ['year', 'roundId'],
-      queryParams: {
-        pageNum: 1,
-        pageSize: 20,
-        total: '',
-        year: '',
-        roundId: ''
-      },
-      settings: {}, // 分班时间配置
-      headteacherSettings: null
-    }
-  },
-  computed: {
+      }
+    },
     formatRows() {
       if (!this.classTree.length) return []
       if (!this.headteacherSettings) return []
@@ -149,11 +159,20 @@ export default {
       })
     },
     send() {
-      const headteacherSettings = Object.values(this.headteacherSettings)
+      const headteacherSettings = Object.values(this.headteacherSettings).map(item => {
+        return item.customerCode
+      })
       if (headteacherSettings.length < this.classList.length) {
         this.$message.warning('还有班级未分配新班主任和新班级号')
         return
       }
+      console.log(headteacherSettings)
+      // 验证重复
+      if((new Set(headteacherSettings)).size != headteacherSettings.length) {
+        this.$message.warning('有重复的班主任,请先校验好再发布')
+        return
+      }
+
       this.$Dialog('DispatchMaster',{
         settings: this.settings
       },(val) => {
@@ -178,12 +197,22 @@ export default {
     },
     handleQuery() {
       // 获取班主任 settings
+      this.getRound()
       this.getHeadteacherSettings()
       this.getPublish()
     },
     changeMaster(row) {
       this.$refs.chooseMasterTeacher.init(row)
     },
+    // 获取批次的组合
+    getRound() {
+      getRound({
+        year:this.queryParams.year,
+        round:this.queryParams.roundId,
+      }).then(res => {
+        this.round = res.data
+      })
+    },
     changeClass(row) {
       this.$refs.chooseClass.init(row)
     },