Vue Element-uiは、アイコンを追加するためのツリーコントロールノードを詳細に実装しています。
2022-01-13 14:27:41
1. 効果
2. タグによるツリーテーブル結合データ
ツリーコントロールのツリーノードに画像やエレメントuiのアイコンを追加するには、ツリーフォームのバインドデータにラベルアイコンを追加することができます
children: [
{
icon: 'el-icon-top-right',
label: ['beam name',''],
children: [
{
label:['name','RS49'],
},
{
icon:'src/assets/images/Organization.png',
label:['group('+'3'+')','']
children:[
{
label:['10600361','10950','11200','0']
}
]
}
]
}
],
ツリーコントロールのカスタム関数で
element-uiのiconタグに直接classを等しくする。
imgタグは、自身の画像のアドレスを追加する必要があります。
renderContent(h,{node,data,store}){
// div represents a row of tree control, div contains three span labels
// determine the number of labels in the node's array, and select the class by trinomial operation
// set the class to control the tree control for alignment
return h('div',[
// Add icon and image labels to the tree control custom function
// The img tag needs to have the address of its own image
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. すべてのコード
<template>
<div class="mytree">
<el-tree
:data="tree_data"
:props="defaultProps"
@node-click="handleNodeClick"
indent="0"
:render-content="renderContent"
></el-tree>
</div>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue'
export default defineComponent({
components: {},
data() {
return {
tree_data: [
{
// type:1,
label: 'notice-id1',
children: [
{
label: ['satellite name code','ZOHREH-2'],
},
{
label: ['Organization','IRN'],
},
{
label: ['Frequency range','10950-1450'],
},
{
icon: 'el-icon-top-right',
label: ['beam name',''],
children: [
{
label:['name','RS49'],
},
{
label:['freq_min','10950'],
},
{
label:['freq_max','14500'],
},
{
icon:'src/assets/images/Organization.png',
label:['group('+'3'+')','']
children:[
{
label:['10600361','10950','11200','0']
},
{
label:['10600361','10950','11200','0']
},
{
label:['10600361','10950','11200','0']
}
]
}
]
},
],
},
],
defaultProps: {
children: 'children',
label: 'label',
},
}
},
method:{
// custom tree control function node for each node
renderContent(h,{node,data,store}){
// div represents a row of the tree control, div contains three span tags
// determine the number of labels in the node's array, and select the class by trilateration
// set the class to control the tree control for alignment
return h('div',[
// add labels for icons and images to the tree control custom function
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])
]);
},
}
})
</script>
<style lang="scss" scoped>
.nodeStyle{
width:110px;
display:inline-block;
text-align:left;
}
.groupStyle{
width:150px;
display:inline-block;
text-align:left;
}
</style>
その他の実装
vue は要素のツリーコントロールでツリーテーブルを実装しています。
概要
この記事は以上です。あなたのお役に立てれば幸いです。また、Script Houseの他のコンテンツにももっと注目してください
関連
-
親子コンポーネント通信を解決する3つのVueスロット
-
要素ツリー制御によるvueTreeテーブル
-
Vue+ElementUIによる大規模なフォームの処理例
-
vue3.0プロジェクトのアーキテクチャを構築するための便利なツール
-
vue for 登録ページ効果 vue for sms 認証コードログイン
-
vueはopenlayersを使用してスカイマップとガオードマップをロードする
-
vue+webrtc(Tencent cloud)ライブ機能の実践を実現するために
-
vueが定義するプライベートフィルタと基本的な使い方
-
vueのプロジェクトでモックを使用する方法を知っていますか?
-
Vueのイベント処理とイベントモディファイアの解説
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン