subjectDetail.vue 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <template>
  2. <el-row :gutter="24" class="mb8">
  3. <el-col :span="24">
  4. <el-form ref="form" :model="form" :rules="rules" label-width="80px">
  5. <el-form-item label="科目" prop="subjectId">
  6. <el-checkbox-group v-model="form.subjectId">
  7. <el-checkbox v-for="(item,idx) in userSubjectList" :key="idx" :label="item.subjectid"
  8. :disabled="!isFrontTeacher">
  9. {{ item.subjectname }}
  10. </el-checkbox>
  11. </el-checkbox-group>
  12. </el-form-item>
  13. </el-form>
  14. </el-col>
  15. <div class="text-center" v-if="isFrontTeacher">
  16. <el-button type="primary" @click="onSubmit" round style="width:150px">提交</el-button>
  17. </div>
  18. </el-row>
  19. </template>
  20. <script>
  21. import subjectMixin from '@/components/Cache/modules/mx-subject-translate-mixin'
  22. import { mapActions, mapGetters } from 'vuex'
  23. import { updateUserSubjectsList } from '@/api/webApi/system'
  24. export default {
  25. mixins: [subjectMixin],
  26. data() {
  27. return {
  28. form: {
  29. subjectId: []
  30. },
  31. rules: {
  32. subjectId: [{ required: true, message: '至少选择1个科目' }]
  33. }
  34. }
  35. },
  36. computed: {
  37. ...mapGetters(['currentUser', 'isFrontTeacher'])
  38. },
  39. mounted() {
  40. this.loadBindSubjects()
  41. },
  42. methods: {
  43. ...mapActions(['GetInfo']),
  44. loadBindSubjects() {
  45. this.form.subjectId = this.currentUser.customerSubjects?.map(s => s.subjectId) || []
  46. },
  47. onSubmit() {
  48. this.$refs.form.validate().then(() => {
  49. const commit = this.form.subjectId.map(id => ({ subjectId: id }))
  50. updateUserSubjectsList({
  51. customerSubject: commit
  52. }).then((response) => {
  53. this.GetInfo()
  54. this.msgSuccess('保存成功')
  55. })
  56. })
  57. }
  58. }
  59. }
  60. </script>
  61. <style scoped>
  62. </style>