JSFiddle - React, Tailwind, and code Playground

by leopoldthecuber

HTML

<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/[email protected]/lib/index.js"></script>
<div id="app">
<template>
  <el-select v-model="value" multiple placeholder="Select" collapse-tags>
    <el-button @click="toggleAll" size="mini">{{ value.length ? 'Deselect' : 'Select' }} all</el-button>
    <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
    </el-option>
  </el-select>
</template>
</div>

SCSS

@import url("//unpkg.com/[email protected]/lib/theme-chalk/index.css");

.el-button {
  margin: 0 0 6px 6px;
}

Babel + JSX

var Main = {
    data() {
      return {
        options: [{
          value: 'Option1',
          label: 'Option1'
        }, {
          value: 'Option2',
          label: 'Option2'
        }, {
          value: 'Option3',
          label: 'Option3'
        }, {
          value: 'Option4',
          label: 'Option4'
        }, {
          value: 'Option5',
          label: 'Option5'
        }],
        value: []
      }
    },
    methods: {
      toggleAll() {
        this.value = this.value.length
          ? []
          : this.options.map(option => option.value)
      }
    }
  }
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')