I am using Vuetify in my Vue project and populating a list of object which I am reading from the API.
I get the following JSON which I am using to generate a data:
users = [
{
"id": "1234",
"name": "John Doe",
"description": "Male, 25years old",
"moods": [
{
"key": "1",
"value": "Happy"
},
{
"key": "2",
"value": "Sad"
},
{
"key": "3",
"value": "Anger"
}
]
},
{
"id": "5678",
"name": "Jane Doe",
"description": "Female, 20 years old",
"moods": [
{
"key": "1",
"value": "Happy"
},
{
"key": "2",
"value": "Sad"
},
{
"key": "3",
"value": "Anger"
}
]
}
]
I am rendering the above data as follows:
<template>
<v-form>
<v-container>
<v-row>
<v-col cols="12">
<v-list
subheader
two-line
flat
>
<template v-for="user in users">
<v-list-item v-bind:key="user.id">
<template v-slot:default="{ active, }">
<v-list-item-action>
<v-checkbox
:input-value="active"
color="primary"
v-model="checkedusers"
:value="user"
></v-checkbox>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title v-text="user.name"></v-list-item-title>
<v-list-item-subtitle v-text="user.description"></v-list-item-subtitle>
</v-list-item-content>
<v-row v-if="user.moods.length > 0" align="center">
<v-col
class="d-flex"
cols="4"
sm="4"
>
<v-select
:items="user.moods"
label="Previous Condition"
item-text="value"
item-value="key"
outlined
></v-select>
</v-col>
<v-col
class="d-flex"
cols="4"
sm="4"
>
<v-select
:items="user.moods"
label="New Condition"
item-text="value"
item-value="key"
outlined
></v-select>
</v-col>
</v-row>
</template>
</v-list-item>
</template>
</v-list>
<div class="text-center">
<v-btn rounded color="primary" dark @click="registerConditions">Submit</v-btn>
</div>
</v-col>
</v-row>
</v-container>
</v-form>
</template>
When I click the submit button I want to read both the selected values in both previous condition select and new condition select for each user.
So ideally I want to generate something like the following:
{
"id": "1234",
"name": "John Doe",
"description": "Male, 25years old",
"previousConditionKey": "2",
"newConditionKey": "2"
}
However all I could find online was how to read selected value of a v-select for a single dropdown. In my case the number of select elements are dynamic depending upon the user JSON list.
Any idea how this can be handled in my situation?