この記事では、ツリー構造テーブルを実現するためのElement-uiテーブルの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。 フロントエンドエフェクト表示: el-tableではツリー型のデータの表示がサポートされています。行に children フィールドが含まれている場合、その行はツリー データと見なされます。ツリー データをレンダリングするときは、行キーを指定する必要があります。子ノード データの非同期読み込みをサポートします。 行の hasChildren フィールドを指定することで、子ノードを含む行を指定できます。 children と hasChildren は両方とも tree-props を介して設定できます。 row-key="id" および :tree-props="{children: 'children', hasChildren: 'hasChildren'} は必須です。 以下は Vue のテーブルツリーです。 <!--表--> <el-行> <el-table :data="tableData" style="width: 100%;" row-key="id" :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> <el-table-column prop="privilegeName" label="権限名" > </el-table-column> <el-table-column prop="privilegeCode" label="権限コード" > </el-table-column> <el-table-column prop="privilegeType" label="権限カテゴリ" :formatter="formatPrivilegeType" > </el-table-column> <el-table-column label="操作"> <テンプレート スロット スコープ="スコープ"> <el-button type="primary" size="mini" @click="toAdd(scope)">追加</el-button> <el-button type="primary" size="mini" @click="toEdit(scope)">編集</el-button> </テンプレート> </el-table-column> </el-table> <br> <el-ページネーション @size-change="ハンドルサイズ変更" @current-change="現在の変更を処理する" :current-page="ページ区切りページインデックス" :ページサイズ="[5, 10, 20, 30, 40]" :page-size=ページネーション.ページサイズ レイアウト="合計、前、ページ、次" :total=ページネーション合計> </el-pagination> </el-row> バックエンドコード: データ構造クエリを実装するための SpringBoot+MyPlus+MySQL8 すべてのフロントエンドコード: <スタイル> </スタイル> <テンプレート> <div id="権限マネージャー"> <!--トップメニューバー--> <el-form :inline="true" class="demo-form-inline"> <el-form-item> <el-ボタン クラス="el-icon-refresh" タイプ="プライマリ" @click="toAdd()">追加</el-button> </el-form-item> </el-form> <!--表--> <el-行> <el-table :data="tableData" style="width: 100%;" row-key="id" :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> <el-table-column prop="privilegeName" label="権限名" > </el-table-column> <el-table-column prop="privilegeCode" label="権限コード" > </el-table-column> <el-table-column prop="privilegeType" label="権限カテゴリ" :formatter="formatPrivilegeType" > </el-table-column> <el-table-column label="操作"> <テンプレート スロット スコープ="スコープ"> <el-button type="primary" size="mini" @click="toAdd(scope)">追加</el-button> <el-button type="primary" size="mini" @click="toEdit(scope)">編集</el-button> </テンプレート> </el-table-column> </el-table> <br> <el-ページネーション @size-change="ハンドルサイズ変更" @current-change="現在の変更を処理する" :current-page="ページ区切りページインデックス" :ページサイズ="[5, 10, 20, 30, 40]" :page-size=ページネーション.ページサイズ レイアウト="合計、前、ページ、次" :total=ページネーション合計> </el-pagination> </el-row> </div> </テンプレート> <スクリプト> エクスポートデフォルト{ 名前: '特権マネージャー'、 データ () { 戻る { テーブルデータ: [], dialogFormEdit: false、 ダイアログフォーム追加:false、 特権: id: ''、 権限名: ''、 特権コード: ''、 権限タイプ: ''、 プロセスID: '0' }, ページネーション: ページインデックス: 1, ページサイズ: 10, 合計: 0, } } }, 方法:{ 初期化(){ var 自己 = これ this.$axios({ メソッド:'post', url:'/api/baoan/privilege/getPage', データ:{"page":this.pagination.pageIndex,"limit":this.pagination.pageSize, "pid": this.privilege.pid}, ヘッダー:{ 'Content-Type':'application/json;charset=utf-8' //ここを変更するだけです} }).then(res => { コンソールログ(res); 自己ページネーション合計 = res.data.datas.data.total; self.tableData = res.data.datas.data.records; }) .catch(関数 (エラー) { コンソール.log(エラー) }) }, ハンドルサイズ変更(val) { console.log(`ページあたり${val}項目`); this.pagination.pageSize = val; this.pagination.pageIndex = 1; これを初期化します。 }, 現在の変更を処理する(val) { console.log(`現在のページ: ${val}`); this.pagination.pageIndex = val; これを初期化します。 }, //権限タイプの変換形式PrivilegeType: function( row, column) { if(row.privilegeType === '1'){ 'ディレクトリ' を返す } そうでない場合、row.privilegeType === '2' の場合 { 'メニュー' を返す } そうでない場合 (row.privilegeType === '3') { 'ボタン'を返す } それ以外 { 戻る '' } } }, マウント: 関数 () { この.init() } } </スクリプト> 要約:1. フロントエンド テーブルで変更する必要があるのは次の点です。 2. バックエンドの主な変更点は次のとおりです。 (1) ビューレイヤーにビューレイヤーコレクション属性を追加します。フロントエンドがツリー構造にレンダリングできるように、children という名前を付ける必要があることに注意してください。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQLクエリ条件におけるonとwhereの配置の違いの分析
>>: WindowsはVMwareを使用してLinux仮想マシンを作成し、CentOS7.2オペレーティングシステムをインストールします。
SHTMLとASPは似ています。SHTMLという名前のファイルでは、SSIの命令がASPの命令と同じ...
弊社の Web プロジェクトの 1 つでは、新しい都市の増加によりトラフィックと DB 負荷が増加し...
マップ タグはペアで表示する必要があります。 <map> ....</map>...
目次概要単一ファイルコンポーネント基本概念シンプルなローダーコンポーネントコンテンツの解析コンポーネ...
目次1. MySQLをダウンロードする2. MySQLをインストールする3. MySQL の基本的な...
目次需要背景思考分析UI 表示始める1. 支払いコンポーネントテンプレートを作成する2. 支払いコン...
目次通常の読み込み遅延読み込みプリロードプリロードを使用しないプリロードの使用要約する通常の読み込み...
目次1. 外部キー制約外部キーとは何ですか?外部キーを使用する条件:外部キーの定義構文は次のとおりで...
この記事には、細かい点は一切なく、カラーマッチングのテクニックをシェアするだけです。とてもシンプルで...
背景Tencent Linux クラウド ホストがあり、その上に Docker (ServiceDo...
TW のメインテキスト ページは、以前は小さなモニターと低解像度のユーザーを考慮して幅が 850 ピ...
導入1.<iframe> タグ: iframe は、ページ内に内部フレームを生成するイン...
1. win + R を押して cmd と入力し、DOS ウィンドウに入ります。 2. MySQL...
フロントエンドcss3 フィルターは、Web ページのグレー効果を実現できるだけでなく、ナイト モー...
目次導入Intel CPUをサポートApple M1のサポートテスト導入このプロジェクトでは最近、P...