テーブルに項目が表示されるシンプルな複数選択コンポーネント「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" }
]
}
});