classGroup.vue 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <template>
  2. <div id="classGroup">
  3. <el-row>
  4. <el-col :span="24" class="button_class">
  5. <van-button type="info" v-if="this.user.job === '班长'" @click="createGroup()">创建小组</van-button>
  6. <van-button type="info" v-if="this.user.job === '班长'" @click="affirm()">确认小组</van-button>
  7. </el-col>
  8. <el-col :span="24">
  9. <groupList :columns="columns" :groupList="groupList" :form="form" :show="show" v-on="$listeners" :stuIdAndGroupId="stuIdAndGroupId"></groupList>
  10. </el-col>
  11. <el-col :span="24" class="foot">
  12. <noGroup v-if="this.user.job === '班长'" :noGroupStudentNames="noGroupStudentNames"></noGroup>
  13. </el-col>
  14. </el-row>
  15. <el-dialog class="createGroup" title="创建小组" :visible.sync="createGroupDialog" width="90%">
  16. <el-form :model="groupForm">
  17. <el-form-item label="名称" :label-width="formLabelWidth">
  18. <el-input v-model="groupForm.name" placeholder="请输入小组名称"></el-input>
  19. </el-form-item>
  20. </el-form>
  21. <div slot="footer" class="dialog-footer">
  22. <el-button @click="saveGroup()" type="primary">提 交</el-button>
  23. </div>
  24. </el-dialog>
  25. </div>
  26. </template>
  27. <script>
  28. import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
  29. import groupList from '@/layout/class/groupList.vue';
  30. import noGroup from '@/layout/class/noGroup.vue';
  31. export default {
  32. name: 'classGroup',
  33. props: {
  34. groupList: null,
  35. createGroupDialog: null,
  36. groupForm: null,
  37. stuIdAndGroupId: null, //登陆者id和小组id
  38. noGroupStudentNames: null, //没有小组的学生
  39. show: null,
  40. form: null,
  41. columns: null,
  42. },
  43. components: {
  44. groupList,
  45. noGroup,
  46. },
  47. data: () => ({
  48. formLabelWidth: '50px',
  49. }),
  50. created() {},
  51. computed: {
  52. ...mapState(['user']),
  53. },
  54. methods: {
  55. //确认小组
  56. affirm() {
  57. this.$emit('affirm');
  58. },
  59. // 创建分组
  60. createGroup() {
  61. this.$emit('createGroup');
  62. },
  63. saveGroup() {
  64. this.$emit('saveGroup', { data: this.groupForm });
  65. },
  66. },
  67. };
  68. </script>
  69. <style lang="less" scoped>
  70. .button_class {
  71. padding: 20px 0px;
  72. }
  73. /deep/.el-dialog__body {
  74. padding: 15px 20px;
  75. }
  76. /deep/.el-dialog__footer {
  77. padding: 10px 20px 20px;
  78. text-align: center;
  79. }
  80. /deep/ .van-dialog {
  81. position: fixed;
  82. top: 70%;
  83. left: 50%;
  84. width: 373px;
  85. overflow: hidden;
  86. font-size: 16px;
  87. }
  88. /deep/.van-button {
  89. width: 186px;
  90. height: 44px;
  91. }
  92. </style>