要件: データをリスト形式で表示する場合、表示すべき情報項目が多く、表が横に長くなってしまいます。表示が明確でなく、使用時に要点が掴めないと感じる場合があります。 次のような実装を想像してください。ユーザーはテーブルの列を非表示にするか表示するかを手動で選択し、ユーザーの選択ステータスが記録され、ユーザーが次にテーブルに入ったときに選択ステータスが保持されます。 効果図は以下のとおりです。 オリジナル: 必要ない場合はデフォルトのチェックを外します。 実装コード: <el-popover placement="right" title="列フィルター" trigger="click" width="420"> <el-checkbox-group v-model="checkedColumns" size="mini"> <el-checkbox v-for="checkBoxGroup 内の項目" :key="項目" :label="項目" :value="項目"></el-checkbox> </el-チェックボックスグループ> <el-button slot="reference" type="primary" size="small" plain><i class="el-icon-arrow-down el-icon-menu" />リスト項目表示フィルター</el-button> </el-popover> <el-table :data="attendanceList" @sort-change="sort" highlight-current-row :row-class-name="holidayRow" @selection-change="editAll" ref="multipleTable"> <el-table-column type="selection" width="55" align="center"></el-table-column> <el-table-column label="従業員の基本情報"> <el-table-column v-if="colData[0].istrue" align="center" prop="user_id" label="作品番号。" width="80" 固定></el-table-column> <el-table-column v-if="colData[1].istrue" align="center" prop="name" label="姓名" width="80" fixed></el-table-column> <el-table-column v-if="colData[2].istrue" align="center" prop="age" label="age" width="60"></el-table-column> <el-table-column v-if="colData[3].istrue" align="center" prop="gender" label="性別" width="80"></el-table-column> <el-table-column v-if="colData[4].istrue" align="center" prop="department" label="部署名" width="100"></el-table-column> </el-table-column> ...... jsデータが保存されるデータ部分 // リストの動的非表示 colData: [ { title: "作品番号", istrue: true }, { title: "名前", istrue: true }, { title: "年齢", istrue: true }, { title: "性別", istrue: true }, { title: "部門名", istrue: true }, ]、 チェックボックスグループ: [], チェックされた列: [], jsメソッド実装部分 作成された() { // 列フィルタリング this.colData.forEach((item, index) => { this.checkBoxGroup.push(item.title); this.checkedColumns.push(item.title); }) this.checkedColumns = this.checkedColumns UnData = localStorage.getItem(this.colTable) とします。 UnData = JSON.parse(UnData) もし(UnData!= null){ this.checkedColumns = this.checkedColumns.filter((item) => { !UnData.includes(item) を返します }) } }, // 監視列の非表示ウォッチ: { チェックされた列(val,value) { let arr = this.checkBoxGroup.filter(i => !val.includes(i)); // チェックなし localStorage.setItem(this.colTable, JSON.stringify(arr)) this.colData.filter(i => { (arr.indexOf(i.title) != -1) の場合 { i.istrue = false; } それ以外 { i.istrue = 真; } }); } }, これで可能になり、ページを更新すると選択状態が記録されるようになります。 当初は全選択の選択ボックスを追加したかったのですが、結局実装されませんでした。 まずはこの方法で使ってみましょう。でも、もっと良い方法があるはずなので、最適化してから更新します〜 これで、vue+element テーブルで動的な列フィルタリングを実装するためのサンプルコードに関するこの記事は終了です。element テーブルでの動的な列フィルタリングに関する詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: Vue で SVG アイコンを導入する 2 つの方法
目次アプリ.vueサブ1.vueサブ2.vue要約する vue2 における非親子コンポーネントの値の...
<br />このタイトルを見ると、見覚えがあるかもしれません。多くのウェブサイトが同様の...
この記事では、例を使用して MySQL ビューの原理と使用方法を説明します。ご参考までに、詳細は以下...
1. レンダリング2. 操作手順1. テンセントマップキーを申請する - 住所2. ミニプログラムの...
ツリーマップは主にツリーのようなデータ構造を視覚化するために使用され、特殊なタイプの階層です。これを...
目次1. 実装2. 問題点3. より良い実装方法があるかどうか検討する要約する背景は日付のタイトルで...
目次JSBridgeの起源JSBridgeの双方向通信原理JSはネイティブを呼び出すネイティブコール...
目次序文: 1.DEFINERの簡単な紹介2. いくつかの注意点要約:序文: MySQL データベー...
Nginx Rewriteの使用シナリオ1. URL アドレスジャンプ。たとえば、ユーザーが pm....
1. 組み込みソフトウェアレベル 1) ブートローダ -> ブートローダ組み込みシステム全体の...
1. 監視アーキテクチャ図 2. 実装のアイデアJenkins に Metrics プラグインをイン...
1. 問題の紹介ユーザー テーブルに 3 つのフィールドが含まれているシナリオを想定します。 id、...
序文MySQL では、server-id を使用してデータベース インスタンスを一意に識別し、それを...
序文: Linux システムでの rm は元に戻せません。コマンドの設計自体に問題はありません。問題...
目次1. クロージャを使用する2. ES6クラスを使用する3. ES2020提案を使用する4. We...