LeaderTeamBar.vue 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <template>
  2. <div class="leader-team-bar">
  3. <div class="leader-team-bar__decoration"></div>
  4. <div class="leader-team-bar__teams">
  5. <el-scrollbar>
  6. <el-collapse v-model="activeTeam">
  7. <LeaderTeam :teamData="leaderTeamTree" :parentId="leaderTeamTree.teamId" @expand="expandCollapse" />
  8. </el-collapse>
  9. </el-scrollbar>
  10. </div>
  11. </div>
  12. </template>
  13. <script lang="ts" setup>
  14. import { ref, onMounted } from 'vue';
  15. import { storeToRefs } from 'pinia';
  16. import { ElScrollbar, ElCollapse } from 'element-plus';
  17. import LeaderTeam from './LeaderTeam.vue';
  18. import useTeamStore from '../store/userTeam';
  19. const activeTeam = ref<number[]>([]);
  20. const { leaderTeamTree } = storeToRefs(useTeamStore());
  21. const { getLeaderTeams } = useTeamStore();
  22. function expandCollapse(collapseId: number) {
  23. activeTeam.value.push(collapseId);
  24. }
  25. onMounted(async () => {
  26. await getLeaderTeams();
  27. activeTeam.value.push(leaderTeamTree.value.teamId); // 默认展开一级队伍
  28. });
  29. </script>
  30. <style lang="scss" scoped>
  31. .leader-team-bar {
  32. height: 100%;
  33. background: #f4f7ff;
  34. .leader-team-bar__decoration {
  35. height: 5px;
  36. margin-bottom: 20px;
  37. border-radius: 8px 8px 0 0;
  38. background-color: #1777ff;
  39. }
  40. .leader-team-bar__teams {
  41. height: calc(100% - 25px);
  42. color: #333333;
  43. padding: 0px 16px;
  44. padding-right: 4px;
  45. }
  46. }
  47. :deep(.el-collapse) {
  48. border: 0px;
  49. }
  50. :deep(.el-collapse-item__arrow) {
  51. margin-right: 12px;
  52. color: #333333;
  53. }
  54. :deep(.el-collapse-item__wrap) {
  55. background: transparent;
  56. border-bottom: transparent;
  57. }
  58. :deep(.el-collapse-item__content) {
  59. padding: 0px;
  60. margin-right: 10px;
  61. }
  62. :deep(.el-collapse-item__header) {
  63. background: #f4f7ff;
  64. border: 0px;
  65. flex-direction: row-reverse;
  66. padding-left: 12px;
  67. margin-right: 10px;
  68. }
  69. </style>