ElementUI の el-dropdown に複数のパラメータを実装する方法

ElementUI の el-dropdown に複数のパラメータを実装する方法

最近、業務上のボタンの増加により、ページレイアウトにボタンが多すぎて、ページが美しくなく、ユーザーエクスペリエンスが良くありません。そこで、el-dropdownを使用してドロップダウンボタンを作成することを考えました(複数のボタンを統合してドロップダウンを実装します)

ここに画像の説明を挿入

ただし、ElementUi 公式ドキュメントの handleCommand メソッドでは、選択したオプションをトリガーするために使用される 1 つのパラメータのみを渡すことができます。実際には、現在の行番号を持つオブジェクトを渡す必要もあります (私のようにテーブルを使用してデータを表示する場合)。次に、このオブジェクトのいくつかのフィールドを使用して、追加、削除、変更、およびクエリ操作のためにバックグラウンドに渡します。

ElementUi の公式ドキュメントにある el-dropdown の例は次のとおりです。
el-dropdown 公式ドキュメント

<el-dropdown @command="handleCommand">
  <span class="el-dropdown-link">
    ドロップダウン メニュー<i class="el-icon-arrow-down el-icon--right"></i>
  </span>
  <el-dropdown-menu slot="ドロップダウン">
    <el-dropdown-item command="a">ゴールデンケーキ</el-dropdown-item>
    <el-dropdown-item command="b">ライオンヘッド</el-dropdown-item>
    <el-dropdown-item command="c">カタツムリライスヌードル</el-dropdown-item>
    <el-dropdown-item command="d" disabled>ダブルスキンミルク</el-dropdown-item>
    <el-dropdown-item command="e" split>牡蠣オムレツ</el-dropdown-item>
  </el-dropdown-menu>
</el-dropdown>

<スタイル>
  .el-ドロップダウンリンク{
    カーソル: ポインタ;
    色: #409EFF;
  }
  .el-icon-arrow-down {
    フォントサイズ: 12px;
  }
</スタイル>

<スクリプト>
  エクスポートデフォルト{
    メソッド: {
      ハンドルコマンド(コマンド) {
        this.$message('アイテムをクリック' + コマンド);
      }
    }
  }
</スクリプト>

handleCommand メソッドを実行する前に、コマンド パラメータをオブジェクトに再パッケージ化して、後の呼び出しに必要なデータが含まれるようにする必要があります。

コードは次のとおりです。

<el-table-column label="操作 1">
    <テンプレート スロット スコープ="スコープ">
        <el-dropdown 分割ボタン type="primary" @command="handleCommand">
            その他の操作 <el-dropdown-menu slot="dropdown" >
                <el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'a')">放棄</el-dropdown-item>
                <el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'b')">オリジナルをアップロード</el-dropdown-item>
                <el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'c')">オリジナルアレンジ</el-dropdown-item>
                <el-dropdown-item 無効 :command="beforeHandleCommand(scope.$index, scope.row,'d')">フリーズ</el-dropdown-item>
                <el-dropdown-item disabled :command="beforeHandleCommand(scope.$index, scope.row,'e')">フリーズ解除</el-dropdown-item>
            </el-dropdown-menu>
        </el-dropdown>
    </テンプレート>
</el-table-column>

表に書き込むため、スロットが必要となり、実際の状況に応じて具体的な修正を加えます。メソッドをタグの command 属性にバインドします。このメソッドは必要なパラメータを渡し、このメソッドを使用してそれをオブジェクトにカプセル化し、このオブジェクトを handleCommand メソッドに渡します。

<スクリプト>
エクスポートデフォルト{
    メソッド: {
        handleAbandon(インデックス、行) {
           //やること
        },
        handleUpload (インデックス、行) {
            //やること
        },
        handleSettle(インデックス、行){
           //やること   
        },
        beforeHandleCommand(インデックス、行、コマンド){
            戻る {
                'インデックス': インデックス、
                '行': 行、
                'コマンド':コマンド
            }
        },
        ハンドルコマンド(コマンド) {
            スイッチ (コマンド.コマンド) {
                case "a"://abandon this.handleAbandon(command.index,command.row);
                    壊す;
                case "b"://元のファイルをアップロードします this.handleUpload (command.index, command.row);
                    壊す;
                case "c"://元の配置 this.handleSettle(command.index,command.row);
                    壊す;
            }
        }
    },
}
</スクリプト>

ElementUI で el-dropdown の複数のパラメータを実装する方法についての記事はこれで終わりです。ElementUI で el-dropdown の複数のパラメータを渡す方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • vue+elementは背景のel-dropdownドロップダウン機能の小さな要約を構築します

<<:  MYSQLストアドプロシージャコメントの詳細な説明

>>:  フロントエンドとバックエンド分離プロジェクトのDockerデプロイメントの実装例

推薦する

MySQL 5.7 のパフォーマンスと sys スキーマの監視パラメータの説明 (推奨)

1. パフォーマンス スキーマ: はじめにMySQL 5.7 では、多数の新しい監視項目の導入、ス...

Linux の高並列性とパフォーマンス最適化の落とし穴の紹介

目次序文Linux アプリケーション実行中に開いているファイルが多すぎる問題の分析と解決Linux ...

CSS3 で背景ぼかしを実現する 3 つの方法 (要約)

1. 通常の背景ぼかしコード: <スタイル> html, 体 { 幅: 100%; 高...

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

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

jQueryはフォーム検証機能を実装します

jQuery フォーム検証の例 / ユーザー名、パスワード、住所、電子メールの検証を含む下記の通り ...

MySQL Workbench の使い方チュートリアルの詳しい説明

目次(I) Workbenchを使用してデータベースを操作する①データベースを作成する② データベー...

MySQLのkillがスレッドをkillできない理由

目次背景問題の説明原因分析シミュレーションする総括する背景日常の使用において、MySQL で個別また...

Javascriptでシンプルなナビゲーションバーを実装

この記事では、参考までに、シンプルなナビゲーションバーを実装するためのJavascriptの具体的な...

Vue はグラフィック検証コードログインを実装します

この記事では、グラフィック認証コードログインを実装するためのVueの具体的なコードを参考までに紹介し...

バックエンドの権限に基づいてナビゲーション メニューを動的に生成する Vue-router のサンプル コード

目次js の1. グローバルガードを登録する2. Vuex 状態管理グローバルキャッシュルート3. ...

DockerコンテナがJupyterにアクセスできない問題の解決策

このプロジェクトでは、環境を構築するために Docker コンテナを使用します。Dockerfile...

MySQL データベース インデックスが B+ ツリーの使用を選択するのはなぜですか?

MySQL データベース インデックスが B+ ツリーを使用する理由をさらに分析する前に、データ構...

Ubuntu Server のターミナルのウェルカム メッセージで広告を無効にする方法

最新の Ubuntu Server バージョンを使用している場合、ようこそメッセージに、Ubuntu...

ソケット '/tmp/mysql.sock' 経由でローカル MySQL に接続できない解決策

エラーメッセージ:エラー 2002: ソケット '/tmp/mysql.sock' ...

この記事ではCSSボーダーの使い方を説明します

境界線のスタイルborder-style プロパティは、表示する境界線の種類を指定します。 bord...