JSFiddle - React, Tailwind, and code Playground
by chanonroy
HTML
<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui/lib/index.js"></script>
<div id="app">
<el-dropdown :hide-on-click="false" trigger="click">
<span class="el-dropdown-link">
Languages <span v-if="lang_count > 0"> {{ lang_count }} </span> <i class="el-icon-caret-bottom el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<div v-for="option in options" @click="lang_check(option)">
<el-dropdown-item>
<el-checkbox v-model="option.value"></el-checkbox>
<span> {{ option.label }} </span>
</el-dropdown-item>
</div>
</el-dropdown-menu>
</el-dropdown>
</div>
SCSS
@import url("//unpkg.com/element-ui/lib/theme-default/index.css");
Babel + JSX
var Main = {
data() {
return {
options: [{
value: false,
label: 'English'
},
{
value: false,
label: 'French'
}
]
}
},
methods: {
lang_check(option) {
option.value = !option.value;
}
},
computed: {
lang_count() {
var count = 0;
this.options.forEach(function(item) {
if (item.value == true) { count += 1; }
});
return count;
}
}
}
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')