Vue
by Jussia
HTML
<div id="app">
<div v-for="item in filters">
<p> {{item.title}} </p>
<ol>
<li v-for="filter in item.filterData.variants">
<label>
<input type="checkbox" :value="filter.key" v-model="selectedFilters">
{{filter.value}}
</label>
</li>
</ol>
</div>
<button @click="apply">Применить</button>
</div>
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#app {
background: #fff;
border-radius: 4px;
padding: 20px;
transition: all 0.2s;
}
li {
margin: 8px 0;
}
h2 {
font-weight: bold;
margin-bottom: 15px;
}
del {
color: rgba(0, 0, 0, 0.3);
}
Vue
new Vue({
el: "#app",
data () {
return {
"filters": [
{
"type": "checkbox",
"title": "Пол",
"filterData": {
"variants": [
{
"key": 14,
"value": "Мужской"
},
{
"key": 15,
"value": "Женский"
}
]
},
"filterId": 1
},
{
"type": "checkbox",
"title": "num",
"filterData": {
"variants": [
{
"key": 2,
"value": "345"
},
{
"key": 1,
"value": "123"
}
]
},
"filterId": 2
}
],
selectedFilters: []
}
},
methods: {
apply () {
console.log(this.selectedFilters)
}
}
})