81 lines
1.5 KiB
Vue
81 lines
1.5 KiB
Vue
<template>
|
|
<v-expansion-panel v-if="linked_decks">
|
|
<Deck
|
|
v-for="deck in linked_decks"
|
|
:deck="deck"
|
|
:key="deck.id"
|
|
@change="refresh_decks"
|
|
/>
|
|
</v-expansion-panel>
|
|
</template>
|
|
|
|
<script>
|
|
import * as Cookies from 'js-cookie'
|
|
import axios from '@/plugins/axios'
|
|
import CardsDB from '@/plugins/ffdecks'
|
|
|
|
import Deck from './Deck.vue'
|
|
|
|
export default {
|
|
name: 'DeckList',
|
|
|
|
components: {
|
|
Deck
|
|
},
|
|
|
|
asyncComputed: {
|
|
decks: {
|
|
get() {
|
|
return axios
|
|
.post('/decks/list', {
|
|
session: this.session
|
|
})
|
|
.then(response => {
|
|
if (response.data.success) {
|
|
return response.data.decks
|
|
}
|
|
})
|
|
},
|
|
default: []
|
|
}
|
|
},
|
|
|
|
computed: {
|
|
session: () => Cookies.get('session'),
|
|
|
|
linked_decks() {
|
|
let result = []
|
|
|
|
for (let i = 0; i < this.decks.length; i++) {
|
|
let elem = this.decks[i]
|
|
let cards = []
|
|
|
|
for (let j = 0; j < elem.content.cards.length; j++) {
|
|
let card = elem.content.cards[j]
|
|
|
|
cards.push({
|
|
count: card.count,
|
|
serial: card.serial,
|
|
dbentry: CardsDB[card.serial]
|
|
})
|
|
}
|
|
|
|
result.push({
|
|
id: elem.id,
|
|
name: elem.content.name,
|
|
note: elem.content.note,
|
|
cards: cards
|
|
})
|
|
}
|
|
|
|
return result
|
|
}
|
|
},
|
|
|
|
methods: {
|
|
refresh_decks() {
|
|
this.$asyncComputed.decks.update()
|
|
}
|
|
}
|
|
}
|
|
</script>
|