この記事では主に以下について説明します: カスタムツリーコントロール 要件:Element UI 公式 Web サイトで提供されるツリー コントロールには、次のような基本、選択可能、カスタム ノード コンテンツ、ノード フィルタリング、ドラッグ可能なノード ツリー構造が含まれます。 私が求めている効果は、検索効果をサポートするツリーです。マウスをホバーすると、追加アイコンと変更アイコンが表示されます。アイコンをクリックすると、対応するページがポップアップ表示され、各フォルダーの前にカスタムアイコンが追加されます。 結果: 実装手順:1. スロットを使用する <el-col :span="4" :xs="24"> <!--ディレクトリ検索機能--> <div class="head-container"> <el-入力 v-model="dirNameCn" placeholder="ディレクトリ名を入力してください" クリア可能 サイズ="小" プレフィックスアイコン="el-icon-search" スタイル="マージンボトム: 20px" /> </div> <!--ツリー表示--> <div class="head-container"> <el-tree :data="dirTreeオプション" :props="デフォルトプロパティ" :クリック時にノードを展開="false" :filter-node-method="filterNode" ref="木" デフォルトすべて展開 @node-click="ハンドルNodeClick" icon-class="el-icon-folder-opened" ノードキー="id" :クリック時にチェックするノード="true" > <!-- 非表示の新しいアイコン --> <span class="custom-tree-node" slot-scope="{ node, data }" @mouseenter="mouseenter(data)" @mouseleave="mouseleave(data)"> <span>{{ ノード.ラベル }}</span> <div> <i v-show="data.show" class="el-icon-circle-plus" style="color: #00afff" @click="addDial(node, data)"/> <!--非表示のドロップダウン選択--> <el-dropdown トリガー="クリック" 配置="右" @command="(コマンド) => {handleCommand(コマンド)}"> <i v-show="data.show" class="el-icon-more" style="color: #D3D3D3"/> <el-dropdown-menu slot="ドロップダウン"> <el-dropdown-item command="a">名前の変更</el-dropdown-item> <el-dropdown-item command="b">削除</el-dropdown-item> </el-dropdown-menu> </el-dropdown> </div> </span> </el-tree> </div> </el-col> 2. コンポーネントに対応するJS 注: ツリーデータはバックエンドからクエリされ、 <スクリプト> エクスポートデフォルト{ 名前: 'reqmdoctree', データ() { 戻る { // 左の検索ボックスの内容 dirNameCn: '', // ディレクトリツリーオプション dirTreeOptions: undefined, デフォルトプロパティ: { 子供: 「子供」、 ラベル: "ラベル" }, //ツリーメニューに子ノードがあるかどうか yesChild: undefined, // 左側に新しく追加されたプロンプト情報ボックスを制御する show: 0, // クエリ要件ドキュメント情報パラメータ queryParams: { docNo: undefined, // 文書番号 docNameEn: undefined, // 文書の英語名 dirNo: undefined, // ディレクトリ番号 current: 1, // 現在のページ サイズ: 20 // ページあたりに表示される項目数 }, ツリーID: 未定義、 } }, メソッド: { /** 必要なディレクトリのドロップダウンツリー構造を照会します*/ getTreeSelect() { treeselect().then(応答 => { this.dirTreeOptions = レスポンス.データ }) }, // 検索値はフィルターです function filterNode(value, data) { if (!value) が true を返す data.label.indexOf(値) !== -1 を返します }, // ノードがクリックされたときのコールバック関数 handleNodeClick(data) { // コンソール.log(データ) this.treeId = データID this.yesChild = data.children this.queryParams.dirNo = データ ID このリストを取得する() }, //ツリー内の3つのポイントのイベント handleCommand(command) { if (コマンド == 'a') { selectReqNo(this.treeId).then(応答 => { this.uuid = 応答.msg getObjTree(response.msg).then(response => { this.form = レスポンスデータ this.open = true this.title = '要件ドキュメントディレクトリ構成テーブルを変更する' }) }) } if (コマンド == 'b') { if (this.yesChild != 未定義) { this.$notify.error({ タイトル: 「警告」 メッセージ: 「このディレクトリには他のフォルダがあります」 }) } それ以外 { selectReqNo(this.treeId).then(応答 => { this.uuid = 応答.msg this.$confirm('ID ' + this.uuid + ' のデータ項目を削除してもよろしいですか?', '警告', { confirmButtonText: '確認'、 cancelButtonText: 'キャンセル'、 タイプ: '警告' })。そして()=>{ delObjTree(this.uuid) を返します })。次に、データ => { この.getTreeSelect() this.msgSuccess('正常に削除されました') }).catch(関数() { }) }) } } }, // 左側に新しいディレクトリ/ファイルを作成する addDial(node, data) { // console.log(ノード、'---'、データ) this.reset() this.form.dirParentId = データ.id this.open = true this.title = '要件ドキュメントディレクトリ構成テーブルを追加する' }, // マウスを左に置いたときにアイコンを表示する mouseenter(data){ this.$set(データ、'表示'、true) }, // マウスの左ボタンが離れるとアイコンは表示されません。mouseleave(data){ this.$set(データ、'表示'、false) }, //ここで新しいリソースのポップアップ ウィンドウを開きます...... } } </スクリプト> 例: 参照ドキュメント: 要素 UI、ツリー コントロール統合ドロップダウン選択 これで、アイコン付きのドロップダウン メニューを統合した Element ツリー コントロール (ツリー + ドロップダウン + 入力) に関するこの記事は終了です。アイコン付きの Element ドロップダウン メニューに関連するその他のコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: Excel ファイルを MySQL データベースにインポートする方法
この axios パッケージは、vue3 デモで使用されます。便宜上、element-plus は ...
目次横棒グラフデータとスタイルを動的に更新するeChartsの幅と高さの適応の問題を解決する縦棒グラ...
序文このブログ記事が公開された後、何人かの友人からSQL Serverバージョンがあるかどうか尋ねら...
多くのプロジェクトでは、中央に灰色の分割線があり、両側に分割線がないグリッド表示の機能を実装する必要...
この記事では、3D テキストのホバー変更効果を実現するための CSS3 のサンプル コードを紹介しま...
この記事の例では、商品詳細ページ機能を実現するためのVueの商品タブの具体的なコードを参考までに共有...
目次概要演算子の改良と正確なinstanceofよりスマートなオブジェクトリテラル推論固有のシンボル...
1. GitLabの紹介Gitlab 公式アドレス: https://about.gitlab.co...
現在、ますます多くのフロントエンド開発者が、元のテーブル レイアウトを xHTML + CSS に置...
<> 演算子機能: 等しくないことを示します。注: 「!=」演算子と同じ機能を持ちますが...
この記事では、年、月、日の3段階のリンクを実現するためのJavaScriptの具体的なコードを参考ま...
目次1. SVNとは何か2. SVNサーバーとクライアントの取得方法3. SVN ワークフローとアー...
これはモーダル ボックスのドラッグのケースです。ここで実装する関数は次のとおりです。 1. ポップア...
序文クエリ ステートメントを使用する場合、多くの場合、データの最初の数行または中間行を返す必要があり...
目次utf8mb4 の紹介UTF8 バイト数超過エラーutf8mb4 サポートデフォルトの文字エンコ...