Przeglądaj źródła

班主任分班回显

shilipojs 3 lat temu
rodzic
commit
4031d0fde4

+ 1 - 1
mock/modules/elective-dispatch.js

@@ -34,7 +34,7 @@ module.exports = [
         msg: 'success',
         data: {
           '405': {
-            headteacherCode: '72b034d5ee7642ae90af044098f524ff',  // 老师用户ID
+            headteacherCode: '01cb6829eb9e4e7d95064a5a6d6174e8',  // 老师用户ID
             nickName: '王铭传' // 老师称乎
           },
           '406': {

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

@@ -48,7 +48,6 @@ export default{
       this.dialogVisible = false
     },
     enable(row){
-      console.log(row)
       const headteacherSettings = this.headteacherSettings
       const activeClass  = this.activeClass
       return Object.keys(headteacherSettings).findIndex(item => item == row.classId) != -1 && activeClass.classId != row.classId

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

@@ -3,7 +3,7 @@
     :visible.sync="dialogVisible"
     width="80%"
   >
-    <teacher-manage></teacher-manage>
+    <teacher-manage :selectMode="true" :selectedCode="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>
@@ -17,10 +17,20 @@ export default  {
   components: {
     TeacherManage
   },
+  props: {
+    headteacherSettings: {}
+  },
   data() {
     return {
-      dialogVisible: false
+      dialogVisible: false,
+      selectedCode: '',
     }
+  },
+  methods: {
+    init(row) {
+      this.dialogVisible = true
+      this.selectedCode =  row.headteacherCode || row.newHeadteacherCode
+    },
   }
 }
 </script>

+ 6 - 5
src/views/elective/master/index.vue

@@ -16,7 +16,7 @@
             <el-popover
               placement="bottom"
               trigger="click">
-              <span class="btn-green mr5" @click="changeMaster">班主任</span>
+              <span class="btn-green mr5" @click="changeMaster(row)">班主任</span>
               <span  class="btn-green" @click="changeClass(row)">班级</span>
 
               <el-button type="primary" slot="reference" size="mini">更换</el-button>
@@ -29,7 +29,7 @@
       </div>
       <evaluation-empty v-else-if="!queryParams.roundId" shadow title="当前学年没有班主任选班数据"></evaluation-empty>
     </el-card>
-    <choose-master-teacher ref="chooseMasterTeacher"></choose-master-teacher>
+    <choose-master-teacher ref="chooseMasterTeacher" :headteacherSettings="headteacherSettings"></choose-master-teacher>
     <choose-class ref="chooseClass" :year="queryParams.year" :headteacherSettings="headteacherSettings"></choose-class>
   </div>
 </template>
@@ -92,10 +92,11 @@ export default  {
       return this.classTree.find(item => {
         return item.year == this.queryParams.year
       })?.classList.map(item => {
-        console.log(headteacherSettings.hasOwnProperty(item.classId))
+        // console.log(headteacherSettings.hasOwnProperty(item.classId))
         item.year = this.queryParams.year
         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
         return item
       })
     }
@@ -134,8 +135,8 @@ export default  {
       // 获取班主任 settings
       this.getHeadteacherSettings()
     },
-    changeMaster(){
-      this.$refs.chooseMasterTeacher.dialogVisible = true
+    changeMaster(row){
+      this.$refs.chooseMasterTeacher.init(row)
     },
     changeClass(row) {
       this.$refs.chooseClass.init(row)

+ 13 - 1
src/views/permission/components/mx-teacher-info.vue

@@ -15,6 +15,10 @@
       <i class="el-icon-success active" v-if="selected"></i>
       <!--<i class="el-icon-success" v-else></i>-->
     </div>
+    <div class="icon-wrap2 f12" >
+<!--      <i class="el-icon-warning-outline f-red"></i>-->
+      {{selecedClassName}}
+    </div>
   </el-card>
 </template>
 
@@ -22,6 +26,10 @@
 export default {
   name: 'mx-teacher-info',
   props: {
+    selecedClassName: {
+      type: String | Number,
+      default: ''
+    },
     selectMode: {
       type: Boolean,
       default: false
@@ -66,7 +74,11 @@ export default {
   cursor: pointer;
   top: 8px;
 }
-
+.icon-wrap2{
+  position: absolute;
+  left: 8px;
+  top: 8px;
+}
 .active {
   color: #42b983;
 }

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

@@ -13,6 +13,7 @@
                 <el-col :span="6" v-for="(item,index) in group.headteachers" :key="index" class="mb12">
                   <mx-teacher-info :avatar="item.avatar" :name="item.nickName" content-height="90px"
                                    :select-mode="selectMode" :selected="item.localSelected"
+                                   :selecedClassName="item.selecedClassName"
                                    :classes="intersectGradeClass(item.headteacherClassNames, group.grade).toString()"
                                    @click.native="setTeacherSelected(item)">
                   </mx-teacher-info>
@@ -25,6 +26,7 @@
                 <el-col :span="6" v-for="(item,index) in group.teachers" :key="index" class="mb12">
                   <mx-teacher-info content-height="90px" :avatar="item.avatar" :name="item.nickName"
                                    :subjects="item.subjectNames.toString()"
+                                   :selecedClassName="item.selecedClassName"
                                    :select-mode="selectMode" :selected="item.localSelected"
                                    :classes="intersectGradeClass(item.classNames, group.grade).toString()"
                                    @click.native="setTeacherSelected(item)">
@@ -64,6 +66,10 @@ export default {
       type: Boolean,
       default: false
     },
+    headteacherSettings: {
+      type: Object,
+      default: {}
+    },
     selectedCode: {
       type: String | Number,
       default: ''
@@ -88,6 +94,7 @@ export default {
       if (this.selectMode && this.dataList.length) {
         this.dataList.forEach(user => {
           // 本地字段,强制进入双向绑定
+          this.$set(user, 'selecedClassName', this.isSelecedClassName(user))
           this.$set(user, 'localSelected', user.customerCode == this.selectedCode)
         })
       }
@@ -95,6 +102,17 @@ export default {
     }
   },
   methods: {
+    isSelecedClassName(row) {
+      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)
+        }
+      }
+      return ''
+    },
     handleInvalidQuery() {
       this.dataList = []
     },