This repository has been archived on 2021-09-06. You can view files and clone it, but cannot push or open issues or pull requests.
vuejs_course/2021-03-27_routing-01-start.../src/components/teams/TeamMembers.vue

73 lines
1.3 KiB
Vue

<template>
<section>
<h2>{{ teamName }}</h2>
<ul>
<user-item
v-for="member in members"
:key="member.id"
:name="member.fullName"
:role="member.role"
></user-item>
</ul>
</section>
</template>
<script>
import UserItem from '../users/UserItem.vue';
export default {
inject: ['teams', 'users'],
props: ['teamId'],
components: {
UserItem
},
data() {
return {
teamName: '',
members: []
};
},
methods: {
loadTeamMembers(teamId) {
const selectedTeam = this.teams.find(team => team.id === teamId);
const members = selectedTeam.members;
const selectedMembers = [];
for (const member of members) {
const selectedUser = this.users.find(user => user.id === member);
selectedMembers.push(selectedUser);
}
this.members = selectedMembers;
this.teamName = selectedTeam.name;
}
},
created() {
this.loadTeamMembers(this.teamId);
},
watch: {
teamId(newId) {
this.loadTeamMembers(newId);
}
}
};
</script>
<style scoped>
section {
margin: 2rem auto;
max-width: 40rem;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.26);
padding: 1rem;
border-radius: 12px;
}
h2 {
margin: 0.5rem 0;
}
ul {
list-style: none;
margin: 0;
padding: 0;
}
</style>