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

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

要素 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型の詳細な説明

推薦する

Nginx サーバーが Systemd カスタム サービス プロセス分析を追加

1. nginxを例に挙げるyumコマンドを使用してNginxをインストールしましたSystemd ...

HTML テーブル マークアップ チュートリアル (1): テーブルの作成

<br />これは 123WORDPRESS.COM が提供する一連のチュートリアルです...

Dockerオーバーレイはホスト間のコンテナ相互通信を実現します

目次1. Dockerの設定2. レジストリとネットワークを作成する3. コンテナを起動する環境説明...

CSS でのシングル div 描画テクニックの実装

純粋な HTML + CSS を使ってドラえもんの絵を描くなど、CSS 描画に関する記事をよく見かけ...

Docker+Selenium Grid に基づく技術アプリケーションをテストするためのサンプル コード

Selenium Grid の紹介Selenium Grid のいくつかの新しい機能は、今後リリース...

React仮想リストの実装

目次1. 背景2. バーチャルリストとは何か3. 関連概念の紹介4. 仮想リストの実装4.1 ドライ...

ドラミング効果を実現するJavascript

この記事では、ドラミング効果を実現するためのJavascriptの具体的なコードを参考までに紹介しま...

Centos7 の起動プロセスと Systemd での Nginx の起動構成

Centos7 の起動プロセス: 1.post(電源投入時のセルフテスト) 電源投入時のセルフテスト...

Centos7 で crontab + シェル スクリプトによる定期的な自動ファイル削除の問題を解決する

問題の説明:最近、rsyncで毎回同期するデータ量が多いが、データベースのbakファイルを保持する必...

HTML フォームタグチュートリアル (4):

ここで、次のような項目をフォームに追加したいとします: 現在いる都市を参照します。ここで私たちが話し...

マークアップ言語 - テキストの CSS スタイルを指定する

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

iPhone デバイスの WAP ページでフォントサイズが大きい問題の解決策

JavaScriptコントロールを使用したくない場合は、次の方法を試してください。 Safariブラ...

HTML テーブルタグチュートリアル (26): セルタグ

<TD> タグの属性は、テーブル内のセルのプロパティを設定するために使用されます。表 &...

MySQL でトランザクションのコミットとロールバックを実装する方法の詳細な例

最近、データベース データのスケジュールされた移行を実行する必要があります。実行プロセス中に何らかの...

新しく作成された MySQL ユーザーの % には localhost が含まれていますか?

通常の説明%はどのクライアントでも接続できることを意味しますlocalhostはローカルコンピュータ...