2024-04-04 02:00:55 +09:00
|
|
|
import Assignment from "./Assignment.js";
|
|
|
|
import AssignmentTags from "./AssignmentTags.js";
|
|
|
|
|
|
|
|
export default {
|
|
|
|
components: { Assignment, AssignmentTags },
|
|
|
|
template: `
|
2024-04-07 23:32:33 +09:00
|
|
|
<section id="section-1" v-show="visibleAssignments.length">
|
|
|
|
<h2 class="font-bold mb-2">{{ title }} <span>({{ visibleAssignments.length }})</span> </h2>
|
2024-04-04 02:00:55 +09:00
|
|
|
|
|
|
|
<assignment-tags
|
2024-04-07 23:32:33 +09:00
|
|
|
:initTags="assignments.map(a => a.tag)"
|
|
|
|
:currentTag="currentTag"
|
2024-04-04 02:00:55 +09:00
|
|
|
@change="currentTag = $event"
|
|
|
|
/>
|
|
|
|
|
|
|
|
<ul class="mt-6">
|
2024-04-07 23:32:33 +09:00
|
|
|
<assignment v-for="assignment in visibleAssignments" :key="assignment.id" :assignment="assignment"/>
|
2024-04-04 02:00:55 +09:00
|
|
|
</ul>
|
|
|
|
</section>
|
|
|
|
`,
|
|
|
|
|
|
|
|
props: {
|
|
|
|
assignments: Array,
|
|
|
|
title: String,
|
|
|
|
},
|
|
|
|
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
currentTag: "all",
|
|
|
|
};
|
|
|
|
},
|
|
|
|
|
|
|
|
computed: {
|
2024-04-07 23:32:33 +09:00
|
|
|
visibleAssignments() {
|
|
|
|
if (this.currentTag === "all") {
|
|
|
|
return this.assignments;
|
|
|
|
}
|
|
|
|
return this.assignments.filter((a) => a.tag === this.currentTag);
|
2024-04-04 02:00:55 +09:00
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|