Vue Element-ui はツリーコントロールノードを実装し、アイコンを追加します。詳細な説明

Vue Element-ui はツリーコントロールノードを実装し、アイコンを追加します。詳細な説明

1. レンダリング

レンダリング

2. データをバインドし、ツリーテーブルにラベルを追加する

ツリー コントロールのツリー ノードにイメージまたは要素 UI アイコンを追加する場合は、ツリー テーブル バインディング データにラベル アイコンを追加できます。

   子供たち: [
       {
           アイコン:'el-icon-top-right',
           ラベル: ['ビーム名',''],
           子供たち: [
               {
                   ラベル:['名前','RS49'],
               },
               {
                   アイコン:'src/assets/images/Organization.png',
                   ラベル:['グループ('+'3'+')','']
                   子供たち:[
                   {
                   ラベル:['10600361','10950','11200','0']
                    }
   					]
				}
           ]
		}
    ]、

ツリーコントロールのカスタム関数

element-uiのアイコンタグと同じクラスを直接設定します

imgタグには自分の画像のアドレスを追加する必要があります

    レンダリングコンテンツ(h,{ノード,データ,ストア}){
        //div はツリー コントロールの行を表し、div には 3 つの span タグが含まれます // ノードのラベル配列の数を決定し、3 項演算によってクラスを選択します
        // ツリーコントロールの配置を制御するクラスを設定します return h('div',[
          // ツリーコントロールのカスタム関数にアイコンと画像タグを追加します // img タグには独自の画像のアドレスを追加する必要があります h('span',{class:'top-right'}),
          h('img',{src:data.icon}),
          h('span', {class:node.label.length === 2 ? 'nodeStyle':'groupStyle'},node.label[0]),
          h('span', {class:'groupStyle'},node.label[1]),
          h('span',{class:node.label.length === 2 ? 'nodeStyle':'groupStyle'},node.label.length === 2 ? '':node.label[2])
          ]);
    },

3. すべてのコード

<テンプレート>
    <div class="mytree">
          <el-tree
              :data="ツリーデータ"
              :props="デフォルトプロパティ"
              @node-click="ハンドルNodeClick"
              インデント="0"
              :render-content="レンダリングコンテンツ"
          </el-tree>
        </div>
</テンプレート>

<script lang="ts">
'vue' から {defineComponent, ref} をインポートします。
エクスポートデフォルトdefineComponent({
    コンポーネント: {},
    データ() {
        戻る {
              ツリーデータ: [
        		{
          // タイプ:1,
         		 ラベル: 'notice-id1',
                  子供たち: [
                        {

                          ラベル: ['衛星名コード', 'ZOHREH-2'],
                        },
                        {

                          ラベル: ['組織', 'IRN'],
                        },
                        {
                          ラベル: ['周波数範囲', '10950-1450'],
                        },
                        {
                          アイコン:'el-icon-top-right',
                          ラベル: ['ビーム名',''],
                          子供たち: [
                              {
                                  ラベル:['名前','RS49'],
                              },
                             {
                                  ラベル:['freq_min','10950'],
                              },
                             {
                                  ラベル:['freq_max','14500'],
                              },
                              {
                                  アイコン:'src/assets/images/Organization.png',
                                  ラベル:['グループ('+'3'+')','']
                                  子供たち:[
                                     {
                                        ラベル:['10600361','10950','11200','0']
                                     },
                                    {
                                        ラベル:['10600361','10950','11200','0']
                                     },
                                    {
                                        ラベル:['10600361','10950','11200','0']
                                     }
                                  ]
                              }
                      ]
                    },
                  ]、
                },
              ]、
            デフォルトプロパティ: {
            子供: 「子供達」
            ラベル: 'ラベル',
          },
        }
    },
    方法:{
    // カスタムツリーコントロール関数ノードは各ノードを表します renderContent(h,{node,data,store}){
        //div はツリー コントロールの行を表し、div には 3 つの span タグが含まれます // ノードのラベル配列の数を決定し、3 項演算によってクラスを選択します
        // ツリーコントロールの配置を制御するクラスを設定します return h('div',[
          // ツリー コントロールにアイコンと画像のラベルを追加します。カスタム関数 h('span',{class:[data.icon,data.icon==='el-icon-top-right'? 'top-right':'bottom-left']}),
          h('img',{src:data.icon === 'src/assets/images/Organization.png' ? data.icon:''}),
          h('span', {class:node.label.length === 2 ? 'nodeStyle':'groupStyle'},node.label[0]),
          h('span', {class:'groupStyle'},node.label[1]),
          h('span',{class:node.label.length === 2 ? 'nodeStyle':'groupStyle'},node.label.length === 2 ? '':node.label[2])
          ]);
    },
    }
    
})
</スクリプト>

<style lang="scss" スコープ>
    
.nodeStyle{
  幅:110ピクセル;
  表示:インラインブロック;
  テキスト配置:左;
}
.groupStyle{
  幅:150ピクセル;
  表示:インラインブロック;
  テキスト配置:左;
}
    
</スタイル>

その他の実装

Vueは要素ツリーコントロールを通じてツリーテーブルを実装します

要素ツリーコントロールに点線を追加する

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue+ElementUI はページング関数を実装します - mysql データ
  • Vue+elementuiはドロップダウンテーブルの複数選択と検索機能を実現します
  • ホバープロンプトにはvue2+elementuiを使用する
  • Vue での ElementUI の使用に関する詳細な説明
  • Element UI をインストールして vue3.0 でベクター グラフィックスを使用する方法

<<:  HTML で複数のクラス属性を定義する場合の無効な解決策

>>:  高品質なコードを書く Web フロントエンド開発実践書の抜粋

推薦する

VMware 仮想マシンで Linux の IP アドレスを表示する方法

1. まず、コンピュータのデスクトップにある VMware アイコンをダブルクリックしてソフトウェア...

Docker+Nginx を使ってシングルページアプリケーションをデプロイする

開発から導入まで自分で行うシングルページアプリケーションを開発する場合、ビルドを実行した後 npm ...

MySQL 半同期レプリケーションの原理構成と導入の詳細な説明

環境の紹介: Ubuntu Server 16.04.2+MySQL 5.7.17 コミュニティ サ...

formData 形式タイプを使用してファイルをアップロードする Vue の例

Vue では、一般的にフロントエンドとバックエンドを分離したプロジェクトがあり、データ操作を実装する...

Vue-cliはプロジェクトを作成し、プロジェクト構造を分析します

目次1. ディレクトリを入力してプロジェクトを作成する2. 必要な設定項目を選択します2.1 Vue...

フォーム内のどの隠し属性をフォームとともに送信できるか

フォーム内の visibility=hidden および display=none のフォーム要素は...

Nginx ログ管理の概要

Nginx ログの説明アクセス ログを通じて、ユーザーの地理的起源、ジャンプ元、使用端末、特定の U...

Vueプロジェクトをパッケージ化してリリースする手順

目次1. 開発環境から本番環境への移行2. 統一されたリクエストパスを設定する3. パッケージ化コマ...

Windows に Docker と docker-compose スイートをインストールするための詳細なチュートリアル

目次導入ダウンロードしてインストールする設定docker-composeをインストールする導入Doc...

Vueはタブルーティング切り替えコンポーネントのメソッド例を実装します

序文この記事では、vue に付属している vue-router.js ルーティングを使用してページン...

Nginx プロキシを使用してフロントエンドのクロスドメイン問題を解決する方法

序文Nginx (「エンジン エックス」と発音) は、リバース プロキシ、ロード バランサ、HTTP...

仮想マシンに Linux rhel7.3 オペレーティング システムをインストールする (具体的な手順)

仮想化ソフトウェアをインストールする仮想マシンにオペレーティング システムをインストールする前に、ホ...

Nginx でアンチホットリンクを設定するための手順を完了する

必要:通常、サイト側は、ウェブサイト上の動画や写真が盗まれるのを防ぎたいと考えています。結局のところ...

JS を使用して HTML で回転するクリスマスツリーを実装する

<!DOCTYPE ヘムル パブリック> <html> <ヘッド&g...

CentOS8でルートパスワードを素早く変更する方法

Centos8仮想マシンを起動し、上下キーを押して図1のインターフェースの最初の行を選択します。図1...