fchat-rising/components/character_select.vue

27 lines
769 B
Vue
Raw Normal View History

2018-01-06 16:14:21 +00:00
<template>
2019-09-17 17:14:14 +00:00
<select :value="value" @change="emit">
<option v-for="character in characters" :value="character.id">{{character.name}}</option>
2018-01-06 16:14:21 +00:00
<slot></slot>
</select>
</template>
<script lang="ts">
2019-01-03 17:38:17 +00:00
import {Component, Prop} from '@f-list/vue-ts';
2018-01-06 16:14:21 +00:00
import Vue from 'vue';
2019-09-17 17:14:14 +00:00
import {SimpleCharacter} from '../interfaces';
import * as Utils from '../site/utils';
2018-01-06 16:14:21 +00:00
@Component
export default class CharacterSelect extends Vue {
2018-07-20 01:12:26 +00:00
@Prop({required: true})
readonly value!: number;
2018-01-06 16:14:21 +00:00
2019-09-17 17:14:14 +00:00
get characters(): SimpleCharacter[] {
return Utils.characters;
2018-01-06 16:14:21 +00:00
}
emit(evt: Event): void {
this.$emit('input', parseInt((<HTMLSelectElement>evt.target).value, 10));
}
}
</script>