テーブルに項目が表示されるシンプルな複数選択コンポーネント「vue-gridmultiselect」

by kabanoki

HTML

<script src="https://cdn.jsdelivr.net/npm/vue-gridmultiselect"></script>
<script src="https://cdn.jsdelivr.net/npm/vue-gridmultiselect"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vue-gridmultiselect/dist/vue-gridmultiselect.css">
<div id="app">
  <grid-multi-select 
    :items="items" 
    item-key="id" 
    item-label="name" 
    v-model="selectedItems" 
    group-by="state"
    split-by="state"
  ></grid-multi-select>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js"></script>

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;
}

.gridmultiselect {
  min-height: 300px;
}

Vue

const GridMultiSelect = window['VueGridMultiselect'];
new Vue({
  el: '#app',
  components: { GridMultiSelect },
  data: {
    selectedItems: null,
    items: [
      { id: 1, name: "San Francisco", state: "USA" },
      { id: 2, name: "Las Vegas", state: "USA" },
      { id: 3, name: "Washington", state: "USA" },
      { id: 4, name: "Munich", state: "Germany" },
      { id: 5, name: "Berlin", state: "Germany" },
      { id: 6, name: "Rome", state: "Italy" }
    ]
  }
});