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')