nicer deck template

This commit is contained in:
Jörn-Michael Miehe 2019-05-15 00:27:42 +02:00
parent fc0228bd1f
commit e372ed1b7c
2 changed files with 62 additions and 35 deletions

View file

@ -1,32 +1,37 @@
<template> <template>
<v-expansion-panel-content> <v-expansion-panel-content>
<template v-slot:header> <template v-slot:header>
<div>{{ deck.name }}</div> <span class="subheading">{{ deck.name }}</span>
</template> </template>
<v-card> <v-alert :value="deck.note" type="info">
<v-card-text> {{ deck.note }}
{{ deck.note }} <br /> </v-alert>
Forwards:
<ul> <v-container grid-list-md fluid>
<li v-for="card in forwards" :key="card.ffdecks.serial_number"> <v-layout row wrap>
{{ card.ffdecks.serial_number }}: {{ card.ffdecks.name }} <v-flex v-for="part in deck_parts" :key="part.heading" xs12 sm4>
</li> <v-card>
</ul> <v-card-title>{{ part.count }} {{ part.heading }}</v-card-title>
Backups: <v-list dense subheader>
<ul> <v-list-tile v-for="card in part.cards" :key="card.serial" avatar>
<li v-for="card in backups" :key="card.ffdecks.serial_number"> <v-list-tile-avatar color="yellow">
{{ card.ffdecks.serial_number }}: {{ card.ffdecks.name }} <span>{{ card.dbentry.cost }}</span>
</li> </v-list-tile-avatar>
</ul>
Summons/Monsters: <v-list-tile-content>
<ul> <v-list-tile-title>{{ card.dbentry.name }}</v-list-tile-title>
<li v-for="card in rest" :key="card.ffdecks.serial_number"> </v-list-tile-content>
{{ card.ffdecks.serial_number }}: {{ card.ffdecks.name }}
</li> <v-list-tile-avatar>
</ul> <span>{{ card.count }}</span>
</v-card-text> </v-list-tile-avatar>
</v-card> </v-list-tile>
</v-list>
</v-card>
</v-flex>
</v-layout>
</v-container>
</v-expansion-panel-content> </v-expansion-panel-content>
</template> </template>
@ -39,16 +44,37 @@ export default {
}, },
computed: { computed: {
forwards() { deck_parts() {
return this.deck.cards.filter(card => card.ffdecks.type === 'Forward') let retval = {
}, forwards: {
backups() { heading: 'Forwards',
return this.deck.cards.filter(card => card.ffdecks.type === 'Backup') cards: this.deck.cards.filter(card => card.dbentry.type === 'Forward')
}, },
rest() { backups: {
return this.deck.cards.filter( heading: 'Backups',
card => card.ffdecks.type != 'Forward' && card.ffdecks.type != 'Backup' cards: this.deck.cards.filter(card => card.dbentry.type === 'Backup')
) },
rest: {
heading: 'Summons, Monsters & more',
cards: this.deck.cards.filter(
card =>
card.dbentry.type != 'Forward' && card.dbentry.type != 'Backup'
)
}
}
for (let i = 0; i < Object.keys(retval).length; i++) {
let key = Object.keys(retval)[i]
retval[key].count = retval[key].cards.reduce(
(result, card) => result + card.count,
0
)
retval[key].cards.sort(
(card_l, card_r) => card_l.dbentry.cost - card_r.dbentry.cost
)
}
return retval
} }
} }
} }

View file

@ -33,7 +33,8 @@ export default {
cards.push({ cards.push({
count: card.count, count: card.count,
ffdecks: CardsDB[card.serial] serial: card.serial,
dbentry: CardsDB[card.serial]
}) })
} }