classList.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <template>
  2. <div class="classList">
  3. <!-- 班级名称开始 -->
  4. <div class="classListTop" @click="spread(claName.id)">
  5. <div class="claTit">
  6. <!-- <van-icon size="14px" v-if="claName.count" :name="ico ? 'arrow-left' : 'arrow-down'" /> -->
  7. <!-- <img v-if="ico" src="../../../assets/images/eva/up.png" />
  8. <img v-else src="../../../assets/images/eva/down (2).png" /> -->
  9. <!-- <van-icon size="18px" top="2px" style="margin-right:10px" name="friends" /> -->
  10. {{ claName.name }}
  11. <div style="margin-left:10px">({{ claName.count }})</div>
  12. </div>
  13. <!-- <div class="moreIcon">
  14. <van-icon size="14px" v-if="claName.count" :name="ico ? 'arrow-left' : 'arrow-down'" />
  15. </div> -->
  16. </div>
  17. <!-- 班级名称结束 -->
  18. <!-- 班级同学列表 -->
  19. <!-- <div v-if="!ico"> -->
  20. <div class="schoolmates" v-for="(i, index) in stuList" :key="index + 'a'" @click="gotoStudentDetail(i.id)">
  21. <div class="schoolmateName">{{ i.name }}</div>
  22. </div>
  23. <!-- </div> -->
  24. <!-- 班级同学列表 -->
  25. </div>
  26. </template>
  27. <script>
  28. import { selectClassStudent } from '@/api/eva'
  29. export default {
  30. props: {
  31. claName: {
  32. type: Object,
  33. default() {
  34. return {}
  35. }
  36. }
  37. },
  38. data() {
  39. return {
  40. ico: 1,
  41. stuList: [],
  42. classId: ''
  43. }
  44. },
  45. methods: {
  46. // 班级折叠与展开
  47. spread(e) {
  48. console.log(e)
  49. if (this.ico) {
  50. selectClassStudent({ cid: e }).then(res => {
  51. console.log('res', res)
  52. this.stuList = res[0]
  53. })
  54. }
  55. this.ico = !this.ico
  56. },
  57. // 跳转详情页
  58. gotoStudentDetail(e) {
  59. // return console.log(e);
  60. localStorage.setItem('userId', e)
  61. this.$router.push(`/studentDetail?uid=${e}&cid=${this.claName.id}&cName=${this.claName.name}`)
  62. }
  63. }
  64. }
  65. </script>
  66. <style lang="scss" scoped>
  67. .classList {
  68. box-sizing: border-box;
  69. // 班级名称
  70. .classListTop {
  71. width: 100%;
  72. height: 40px;
  73. display: flex;
  74. box-sizing: border-box;
  75. justify-content: space-between;
  76. padding: 0 10px;
  77. align-items: center;
  78. .claTit {
  79. font-size: 14px;
  80. display: flex;
  81. align-items: center;
  82. justify-content: flex-start;
  83. img {
  84. width: 15px;
  85. margin-right: 5px;
  86. }
  87. }
  88. .moreIcon {
  89. width: 40px;
  90. text-align: center;
  91. }
  92. }
  93. // 同学列表
  94. .schoolmates {
  95. // width: 100%;
  96. height: 45px;
  97. background-color: #f7f7f7;
  98. display: flex;
  99. // justify-content: space-between;
  100. // align-items: center;
  101. // box-sizing: border-box;
  102. // padding: 0 38px;
  103. .schoolmateName {
  104. font-size: 14px;
  105. display: flex;
  106. }
  107. }
  108. }
  109. </style>