最近、要素テーブルを使用すると、並べ替えの問題によく遭遇します。単純な並べ替えであれば、要素の公式が具体的な方法を示しています //テーブルのデフォルトのソート方法はIDの降順です。これを他の順序に変更することもできます。 <el-table :data="tableData" :default-sort="{prop: 'ID', order: '降順'}"> //sortable属性を設定すると、ソートボタンが表示されます <el-table-column prop="ID" label="座席番号" sortable> </el-table> しかし、公式の要素コンポーネントはドラッグアンドドロップによる並べ替えをサポートしていません。ここではドラッグアンドドロップによる並べ替え機能を実装するために sortablejs を紹介します。 sortablejs GitHub アドレス //sortable.js をインストール NPM でインストール: $ npm をインストール sortablejs --save //コンポーネントに導入 import Sortable from 'sortablejs' //ドラッグして並べ替える必要があるテーブルに ref 属性を追加します <el-table ref="dragTable"> //データレンダリング後にドラッグイベントを追加 created(){ this.getBanner() }, 方法:{ 非同期getBanner(val){ apiGetBanner() を待機します。その後 ((res)=>{ this.bannerTable = res.data.data; }) this.oldList = this.bannerTable.map(v => v.id); this.newList = this.oldList.slice(); this.$nextTick(() => { this.setSort() //データのレンダリング後にメソッドを実行する}) } ソートを設定する(){ 定数el = this.$refs.dragTable.$el.querySelectorAll( '.el-table__body-wrapper > テーブル > tbody' )[0]; this.sortable = Sortable.create(el, { // ドロッププレースホルダーのクラス名、 ゴーストクラス: 'ソート可能なゴースト', setData: 関数(データ転送) { dataTransfer.setData('テキスト', '') }, //ドラッグが実行を終了し、evt はドラッグパラメータ onEnd を実行します: evt => { // 再ソートするかどうかを決定します if (evt.oldIndex !== evt.newIndex) { データ = { id:this.bannerTable[evt.oldIndex].id、 バナーオーダー:evt.newIndex } //データの送信に失敗した場合は、古いソートを復元します apiPutBanner(data).catch(()=>{ 定数targetRow = this.bannerTable.splice(evt.oldIndex, 1)[0]; this.bannerTable.splice(evt.newIndex, 0, targetRow); }) } } }) } } 列をドラッグする必要がある場合は、次のコードを参照してください。これは上記と同じ原理なので、ここでは詳細には触れません。 //行ドラッグ rowDrop() { const tbody = document.querySelector('.el-table__body-wrapper tbody') const _this = これ ソート可能.create(tbody, { onEnd({ 新しいインデックス、 古いインデックス }) { const currRow = _this.tableData.splice(oldIndex, 1)[0] _this.tableData.splice(新しいインデックス、0、currRow) } }) }, //列ドラッグcolumnDrop() { const wrapperTr = document.querySelector('.el-table__header-wrapper tr') this.sortable = Sortable.create(wrapperTr, { アニメーション: 180, 遅延: 0, onEnd: イベント => { 定数 oldItem = this.dropCol[evt.oldIndex] this.dropCol.splice(evt.oldIndex, 1) this.dropCol.splice(evt.newIndex, 0, oldItem) } }) } 要素テーブルのドラッグ アンド ドロップによる並べ替えの問題に関するこの記事はこれで終わりです。要素テーブルのドラッグ アンド ドロップによる並べ替えに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL は対応するクライアント プロセスにどのように接続しますか?
>>: HTML タグ マーキーを使用してスクロール効果を実現する簡単な方法 (必読)
Unix ライクなシステムでは、コマンドまたはプロセスの実行がいつ開始されたか、またプロセスがどのく...
mysql 5.7.19 winx64のインストールチュートリアルは以下のように記録され、みんなと...
IE8.0の正式版をインストールしたので、基本的なCSS HACKをいくつかまとめてみました。We...
docker run後、ステータスは常にExitedになります解決:パラメータを追加: -it do...
目次1.コンポーネントtimelineH.vueを実装する2. コンポーネントの呼び出しこの記事では...
1. mysqlの圧縮パッケージを/usr/localフォルダに解凍し、名前をmysqlに変更します...
原因最近、プロジェクトのリファクタリングを始めたのですが、マスタースレーブと読み取り書き込み分離を使...
MySQL の MyISAM エンジンと InnoDB エンジンはどちらもデフォルトで B+ ツリー...
仮想マシンを使用する人は通常、操作と使用を容易にするために仮想マシン用の共有ディレクトリを設定します...
Web 上でフォントを使用することは、基本的なスキルであると同時に芸術でもあります。英語のフォントに...
最近、Yahoo の 34 の黄金律を読み、ウェブサイトのパフォーマンスを最適化する方法を学びました...
ワーカープロセスは、起動されると、まず自身の動作に必要な環境を初期化し、次に実行する必要があるイベン...
この記事では、例を使用して、MySQL ストアド プロシージャの原理と使用方法を説明します。ご参考ま...
目次序文🍹準備🍲vue3 の使い方🍖 実装要約する序文最近、私の最初の公式 vue3 + ts プロ...
目次起源仮想メモリページングとページテーブルメモリのアドレス指定と割り当て関数プロセスメモリ管理デー...