teaStudentList.vue 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <template>
  2. <div id="teaStudentList">
  3. <el-row>
  4. <el-col :span="24" class="list" v-for="(item, index) in studentList" :key="index">
  5. <el-col :span="18" class="name">
  6. <p>{{ item.name }}</p>
  7. <p>{{ item.faculty }}&nbsp;{{ item.major }}</p>
  8. </el-col>
  9. <el-col :span="3" class="gender">
  10. <p>{{ item.gender }}</p>
  11. <p v-if="item.job">{{ item.job }}</p>
  12. </el-col>
  13. <el-col :span="3" class="btn">
  14. <el-link :underline="false" @click="onClick()">指派</el-link>
  15. </el-col>
  16. </el-col>
  17. <van-dialog v-model="show" title="指派学生职务" :showConfirmButton="false">
  18. <van-form @submit="onSubmit">
  19. <van-field v-model="form.name" name="学生名称" disabled />
  20. <van-field name="radio" label="学生职务">
  21. <van-radio-group v-model="form.job" direction="horizontal" slot="input">
  22. <van-radio name="班长">班长</van-radio>
  23. <van-radio name="学委">学委</van-radio>
  24. </van-radio-group>
  25. </van-field>
  26. <div style="margin: 16px;">
  27. <van-button round block type="info" native-type="submit">
  28. 提交
  29. </van-button>
  30. </div>
  31. </van-form>
  32. </van-dialog>
  33. </el-row>
  34. </div>
  35. </template>
  36. <script>
  37. export default {
  38. name: 'teaStudentList',
  39. props: {
  40. studentList: null,
  41. show: null,
  42. form: null,
  43. },
  44. components: {},
  45. data: () => ({}),
  46. created() {},
  47. computed: {},
  48. methods: {
  49. onClick() {
  50. this.$emit('clickUpdate');
  51. },
  52. onSubmit() {
  53. this.$emit('submit', { data: this.form });
  54. },
  55. },
  56. };
  57. </script>
  58. <style lang="less" scoped>
  59. p {
  60. padding: 0;
  61. margin: 0;
  62. }
  63. .list {
  64. background: #fff;
  65. margin: 0 5px 5px 5px;
  66. width: 97%;
  67. padding: 0 10px;
  68. border-radius: 15px;
  69. }
  70. .name {
  71. padding: 10px 0 0 0;
  72. }
  73. .name p {
  74. padding: 0 0 10px 0;
  75. }
  76. .gender {
  77. padding: 10px 0 0 0;
  78. }
  79. .gender p {
  80. padding: 0 0 10px 0;
  81. }
  82. .btn {
  83. padding: 22px 0;
  84. text-align: center;
  85. }
  86. /deep/.btn .el-link {
  87. color: #1e90ff;
  88. font-size: 18px;
  89. }
  90. </style>