mx-teacher-info.vue 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <template>
  2. <el-card shadow="hover" class="relative">
  3. <div class="fx-row fx-bet-cen">
  4. <div class="fx-column fx-cen-cen">
  5. <el-image :src="avatar||defaultAvatar" class="icon80 rd40 mb10"></el-image>
  6. <slot name="extra"></slot>
  7. </div>
  8. <div class="fx-1 fx-column ml10" style="overflow-y: auto" :style="{height: contentHeight}">
  9. <div class="bold">{{ name }}</div>
  10. <div v-if="subjects" class="light f13 f-999 mt5" style="word-break: break-all">{{ subjects }}</div>
  11. <div v-if="classes" class="light f13 f-999 mt5" style="word-break: break-all">{{ classes }}</div>
  12. </div>
  13. </div>
  14. <div class="icon-wrap" v-if="selectMode">
  15. <i class="el-icon-success active" v-if="selected"></i>
  16. <!--<i class="el-icon-success" v-else></i>-->
  17. </div>
  18. </el-card>
  19. </template>
  20. <script>
  21. export default {
  22. name: 'mx-teacher-info',
  23. props: {
  24. selectMode: {
  25. type: Boolean,
  26. default: false
  27. },
  28. selected: {
  29. type: Boolean,
  30. default: false
  31. },
  32. avatar: {
  33. type: String,
  34. default: ''
  35. },
  36. name: {
  37. type: String,
  38. default: ''
  39. },
  40. subjects: {
  41. type: String,
  42. default: ''
  43. },
  44. classes: {
  45. type: String,
  46. default: ''
  47. },
  48. contentHeight: {
  49. type: String,
  50. default: '110px'
  51. }
  52. },
  53. data() {
  54. return {
  55. defaultAvatar: require('@/assets/images/teacher_avatar.png')
  56. }
  57. }
  58. }
  59. </script>
  60. <style scoped>
  61. .icon-wrap {
  62. position: absolute;
  63. right: 8px;
  64. cursor: pointer;
  65. top: 8px;
  66. }
  67. .active {
  68. color: #42b983;
  69. }
  70. </style>