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

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

vue-gridmultiselectとは

vue-gridmultiselectは、テーブルに項目が表示されるシンプルな複数選択コンポーネントライブラリです。

選択項目の検索機能やリストのグループ化することも可能です。

 

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

 

環境

Vue 2.6.10
vue-gridmultiselect 1.2.1

インストール

以下のnpmCDNを使ってインストールします。

npm

npm install vue-gridmultiselect --save

CDN

<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">

 

gitリポジトリは以下から取得できます。

https://github.com/ProticM/vue-gridmultiselect

 

導入手順

1. ライブラリの取り込み

(1)ES6等の場合 [注意]モジュール版は未検証です。

import GridMultiSelect from 'vue-gridmultiselect';
import 'vue-gridmultiselect/dist/vue-gridmultiselect.css';

(2)CDNの場合

const GridMultiSelect = window['VueGridMultiselect'];

2.メソッドを設定

上記で取得したGridMultiSelectcomponents に取り込みます。

選択リスト用のデータをitems、選択中リストをselectedItemsに格納します。

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" }
    ]
  }
});
 

3. テンプレートを準備

<grid-multi-select> を設置します。

group-by を設定することで、選択リストをグループ化することが可能です。

split-by を設定することで、選択中リストをグループ化することが可能です。

[注意] サンプルはケバブケースで記載しています。

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

 

サンプル

>>専用ページで確認する

 

さいごに

テーブルに項目が表示されるシンプルな複数選択コンポーネントライブラリでした。

 

今日はこの辺でー

 

  • この記事を書いた人

カバノキ

印刷会社のWEB部隊に所属してます。 WEB制作に携わってから、もう時期10年になります。 普段の業務では、PHPをメインにサーバーサイドの言語を扱っています。 最近のお気に入りはJavascriptです。 Vue.jsを狂喜乱舞しながら、社内に布教中です。

-Form, Select, UI Components, vue.js, ライブラリ
-,