要素テーブルの行と列のドラッグを実装する例

要素テーブルの行と列のドラッグを実装する例

要素 ui テーブルにはドラッグ アンド ドロップによる並べ替え機能が組み込まれておらず、サードパーティのプラグインである Sortablejs の助けを借りてのみ実装できます。まずは動的な画像を見て、効果が期待どおりかどうかを確認しましょう。


まずSortable.jsをインストールする必要があります

npm をインストール sortablejs --save

引用する

'sortablejs' から Sortable をインポートします。

要素テーブルでは、ID などの一意の行キーを指定する必要があることに注意してください。そうしないと、誤った並べ替えが発生します。

###サンプルコード

<テンプレート>
  <div スタイル="width:800px">

    <el-table :data="テーブルデータ"
      国境
      行キー="id"
      align="left">
     <el-table-column v-for="(item, index) in col"
        :key="`col_${index}`"
        :prop="dropCol[インデックス].prop"
        :label="item.label"> 
      </el-table-column>
    </el-table>
    <pre style="text-align: left">
      {{ドロップコル}}
    </pre>
    <時間>
    <pre style="text-align: left">
      {{テーブルデータ}}
    </pre>
  </div>
</テンプレート>
<スクリプト>
'sortablejs' から Sortable をインポートします。
エクスポートデフォルト{
  データ() {
    戻る {
      列: [
        {
          ラベル: '日付'、
          プロパティ: '日付'
        },
        {
          ラベル: '名前',
          プロパティ: '名前'
        },
        {
          ラベル: '住所'、
          プロパティ: 'アドレス'
        }
      ]、
      ドロップコル: [
        {
          ラベル: '日付'、
          プロパティ: '日付'
        },
        {
          ラベル: '名前',
          プロパティ: '名前'
        },
        {
          ラベル: '住所'、
          プロパティ: 'アドレス'
        }
      ]、
      テーブルデータ: [
        {
          id: '1',
          日付: '2016-05-02'、
          名前: '王小虎1',
          住所: 上海市普陀区金沙江路100号
        },
        {
          id: '2',
          日付: '2016-05-04'、
          名前: '王小虎2',
          住所: 上海市普陀区金沙江路200号
        },
        {
          id: '3',
          日付: '2016-05-01'、
          名前: '王小虎3',
          住所: 上海市普陀区金沙江路300号
        },
        {
          id: '4',
          日付: '2016-05-03'、
          名前: '王小虎4',
          住所: 上海市普陀区金沙江路400号
        }
      ]
    }
  },
  マウント() {
    this.rowDrop()
    this.columnDrop()
  },
  メソッド: {
    //行ドラッグ 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 をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue Element Sortablejs を使用してテーブル列をドラッグする詳細な説明
  • Elementui テーブル コンポーネント + sortablejs を使用して行のドラッグ アンド ドロップによる並べ替えを実装するサンプル コード
  • sortable+elementを使用してテーブル行をドラッグする方法の例

<<:  Nginx ログ出力のリクエスト後パラメータを設定する方法

>>:  MySQLのexplain型の詳細な説明

推薦する

Centos7 FFmpeg オーディオ/ビデオ ツールのインストールに関する簡単なドキュメント

ffmpeg は非常に強力なオーディオおよびビデオ処理ツールです。公式 Web サイトは http:...

MySQL で不明なフィールド名を回避する方法

序文この記事では、DDCTF の 5 番目の質問、つまり不明なフィールド名をバイパスする手法を紹介し...

HTML コード作成ガイド

共通コンベンションタグ自己終了タグ。閉じる必要はありません (例: img input br hr ...

フレックスレイアウトは左のテキストオーバーフローを実現し、右のテキストの適応を省略します

テキストの長さに応じて、左側のテキストの幅を自動調整できる状況を実現したい。1行が表示できない場合、...

Vue-Jest自動テストの基本構成の詳しい説明

目次インストール構成よくある間違い事前テスト作業依存関係の扱いインスタンスとDOMを生成する要約する...

HTML の表のフレームとルール属性の詳細な説明

テーブル タグの frame 属性と rules 属性は境界線の表示を制御できます。フレーム プロパ...

VS2022 リモート デバッグ ツールの使い方

WeChat 関連サービスをデバッグする場合など、職場のサーバー環境でリモートデバッグを行う必要があ...

CSS 複合セレクタの具体的な使用法

交差点セレクター交差セレクターは、直接接続された 2 つのセレクターで構成されます。最初のセレクター...

Docker に MySQL と Redis をインストールする方法

この記事はCentOS 7.3システム環境をベースに、MySQLとRedisのインストールと使用につ...

Vue3でelement-plusを使用する方法の詳細な説明

目次1. インストール2. main.jsにインポートする3. 使用Vue3がリリースされてからしば...

Nginx イントラネット スタンドアロン リバース プロキシの実装

目次1 Nginxのインストール2 Nginxの設定3 ホストファイルを変更する4 テストNginx...

HTML入力で値が変更されたときにリスナーイベントを追加することの簡単な分析

達成される効果多くの場合、入力ボックスの値の変化をリアルタイムで監視し、ブラウザを誘導してウェブサイ...

mysql8.0.0 winx64.zip 解凍バージョンのインストールと設定のチュートリアル

この記事はmysql8.0.0 winx64.zip解凍版のインストールチュートリアルを記録していま...

MySQL テーブルを作成するためによく使用される SQL ステートメントの概要

最近、私はプロジェクトに取り組んでおり、背景を記述するために SQL ステートメントを使用する必要が...

Ubuntu 20.04 ベスト設定ガイド (初心者向け)

1. システム構成1. sudoパスワードをオフにするsudo コマンドを使用するたびにパスワード...