choose-master-teacher.vue 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <template>
  2. <el-dialog
  3. :visible.sync="dialogVisible"
  4. width="80%"
  5. >
  6. <teacher-manage v-if="dialogVisible" :selectMode="true" v-model="selectedCode"
  7. :headTeacherSettings="headTeacherSettings"></teacher-manage>
  8. <span slot="footer" class="dialog-footer">
  9. <el-button @click="dialogVisible = false">取 消</el-button>
  10. <el-button type="primary" @click="onConfirm">确 定</el-button>
  11. </span>
  12. </el-dialog>
  13. </template>
  14. <script>
  15. import { saveTeacherSettings } from '@/api/webApi/elective/dispatch'
  16. import TeacherManage from '@/views/permission/teacher-manage'
  17. export default {
  18. // name: 'ChooseMasterTeacher',
  19. components: {
  20. TeacherManage
  21. },
  22. props: {
  23. roundId: '',
  24. headTeacherSettings: {}
  25. },
  26. data() {
  27. return {
  28. dialogVisible: false,
  29. selectedCode: '',
  30. activeModels: ''
  31. }
  32. },
  33. methods: {
  34. init(row) {
  35. this.dialogVisible = true
  36. this.activeModels = row
  37. this.selectedCode = row.newHeadteacherCode || row.headteacherCode
  38. },
  39. isRepeat() {
  40. // 判断是否重复?
  41. const headTeacherSettings = this.headTeacherSettings
  42. const format = Object.values(headTeacherSettings)
  43. const flag = format.some(item => {
  44. return item.customerCode == this.selectedCode
  45. })
  46. return flag
  47. },
  48. onConfirm() {
  49. // if (this.isRepeat()) {
  50. // this.$message.warning(`该老师已分配给新班级`)
  51. // return
  52. // }
  53. if (!this.selectedCode) {
  54. this.dialogVisible = false
  55. return
  56. }
  57. this.saveTeacherSettings()
  58. },
  59. saveTeacherSettings() {
  60. saveTeacherSettings({
  61. roundId: this.roundId,
  62. classId: this.activeModels.newClassId || this.activeModels.classId,
  63. customerCode: this.selectedCode || ''
  64. }).then(res => {
  65. this.$emit('completed')
  66. this.dialogVisible = false
  67. })
  68. }
  69. }
  70. }
  71. </script>
  72. <style scoped>
  73. ::v-deep .el-dialog__body {
  74. padding: 0;
  75. }
  76. </style>