Files
PhotonVision/photon-client/src/components/common/cv-select.vue

66 lines
1.5 KiB
Vue
Raw Normal View History

<template>
<div>
<v-row
dense
align="center"
>
<v-col :cols="12 - (selectCols || 9)">
<tooltipped-label
:tooltip="tooltip"
:text="name"
/>
</v-col>
<v-col :cols="selectCols || 9">
<v-select
v-model="localValue"
:items="indexList"
item-text="name"
item-value="index"
dark
color="accent"
item-color="secondary"
:disabled="disabled"
:rules="rules"
@change="$emit('rollback', localValue)"
/>
</v-col>
</v-row>
</div>
</template>
<script>
import TooltippedLabel from "./cv-tooltipped-label";
export default {
name: 'Select',
components: {
TooltippedLabel,
},
// eslint-disable-next-line vue/require-prop-types
props: ['list', 'name', 'value', 'disabled', 'selectCols', 'rules', 'tooltip'],
2019-10-29 23:58:06 +02:00
computed: {
localValue: {
get() {
return this.value;
},
2019-10-29 23:58:06 +02:00
set(value) {
this.$emit('input', value)
}
},
2019-10-29 23:58:06 +02:00
indexList() {
let list = [];
2019-10-29 23:58:06 +02:00
for (let i = 0; i < this.list.length; i++) {
list.push({
2019-10-29 23:58:06 +02:00
name: this.list[i],
index: i
});
}
return list;
}
}
}
</script>
<style>
</style>