1. 需要ユーザーが自分でテーブルを構成できるようになり、システム コードのメンテナンスの量が削減されます。 2. 効果ヘッダーjson:
テーブルヘッド: [{ キー: '1'、 ラベル: '日付'、 プロパティ: '日付'、 幅: '100', ヘッダー配置: 'center'、 配置: '中央'、 スコープ: false、 ソート可能: true }, { キー: '2'、 ラベル: '名前', プロパティ: '名前', 幅: '100', ヘッダー配置: 'center'、 配置: '中央'、 スコープ: false、 ソート可能: false }, { キー: '3'、 ラベル: '分析'、 プロパティ: '分析'、 幅: '100', ヘッダー配置: 'center'、 プロパティChildren: [{ キー: '31'、 ラベル: 「前年比」、 プロパティ: 'TB'、 幅: '100', ヘッダー配置: 'center'、 配置: '中央'、 スコープ: true、 ソート可能: true }, { キー: '32'、 ラベル: 「月別」、 プロップ: 'HB', 幅: '100', ヘッダー配置: 'center'、 配置: '中央'、 スコープ: true、 ソート可能: true },] }, { キー: '4'、 ラベル: '金額', プロパティ: '価格'、 幅: '100', ヘッダー配置: 'center'、 配置: '右'、 スコープ: false、 ソート可能: true }, { キー: '5'、 ラベル: '住所'、 プロパティ: 'アドレス', 幅: ''、 ヘッダー配置: '左'、 配置: '左'、 スコープ: false、 ソート可能: false } ]、 3. すべてのコード<テンプレート> <el-テーブル :data="テーブルデータ" ストライプ サイズ変更可能 国境 高さ="300" スタイル="幅: 1000px" > <el-テーブル列 タイプ="インデックス" :index="インデックスメソッド" label="シリアル番号" align="center" 幅= "60" > </el-table-column> <el-テーブル列 v-for="(item, index) in tableHead" :key="インデックス" :prop="アイテム.prop" :label="アイテム.ラベル" :width="アイテムの幅" :align="アイテム.align" :headerAlign="item.headerAlign" :sortable="アイテム.sortable" オーバーフローツールチップを表示 > <el-テーブル列 v-for="(item, index) in item.propChildren" :key="インデックス" :prop="アイテム.prop" :label="アイテム.ラベル" :width="アイテムの幅" :align="アイテム.align" :headerAlign="item.headerAlign" :sortable="アイテム.sortable" オーバーフローツールチップを表示 > <テンプレート スロット スコープ="スコープ"> <div v-if="item.scope === true"> <div v-if="scope.row[item.prop] == ''"> {{ スコープ.行[項目.プロパティ] }} </div> <div v-else-if="scope.row[item.prop] > '0'" スタイル="color: green"> {{scope.row[item.prop] }}%<i class="el-icon-caret-top"></i> </div> <div v-else-if="scope.row[item.prop] < '0'" スタイル="color: red"> {{scope.row[item.prop] }}%<i class="el-icon-caret-bottom"></i> </div> </div> <div v-else-if="scope.row[item.prop] < '0'" スタイル="color: red"> {{ スコープ.行[項目.プロパティ] }} </div> <div v-else>{{ スコープ.行[item.prop] }}</div> </テンプレート> </el-table-column> <テンプレート スロット スコープ="スコープ"> <div v-if="item.scope === true"> <div v-if="scope.row[item.prop] == ''"> {{ スコープ.行[項目.プロパティ] }} </div> <div v-else-if="scope.row[item.prop] < '0'" スタイル="color: red"> {{ スコープ.行[項目.プロパティ] }} </div> <div v-else-if="scope.row[item.prop] > '0'"> {{ スコープ.行[項目.プロパティ] }} </div> </div> <div v-else>{{ スコープ.行[item.prop] }}</div> </テンプレート> </el-table-column> </el-table> </テンプレート> <スクリプト> エクスポートデフォルト{ データ() { 戻る { // 単一のヘッダーがこの列のデータを比較するかどうかは、スコープによって異なります。 テーブルヘッド: [{ キー: '1'、 ラベル: '日付'、 プロパティ: '日付'、 幅: '100', ヘッダー配置: 'center'、 配置: '中央'、 スコープ: false、 ソート可能: true }, { キー: '2'、 ラベル: '名前', プロパティ: '名前', 幅: '100', ヘッダー配置: 'center'、 配置: '中央'、 スコープ: false、 ソート可能: false }, { キー: '3'、 ラベル: '分析'、 プロパティ: '分析'、 幅: '100', ヘッダー配置: 'center'、 プロパティChildren: [{ キー: '31'、 ラベル: 「前年比」、 プロパティ: 'TB'、 幅: '100', ヘッダー配置: 'center'、 配置: '中央'、 スコープ: true、 ソート可能: true }, { キー: '32'、 ラベル: 「月別」、 プロップ: 'HB', 幅: '100', ヘッダー配置: 'center'、 配置: '中央'、 スコープ: true、 ソート可能: true },] }, { キー: '4'、 ラベル: '金額', プロパティ: '価格'、 幅: '100', ヘッダー配置: 'center'、 配置: '右'、 スコープ: false、 ソート可能: true }, { キー: '5'、 ラベル: '住所'、 プロパティ: 'アドレス', 幅: ''、 ヘッダー配置: '左'、 配置: '左'、 スコープ: false、 ソート可能: false } ]、 // データテーブルData: [{ 日付: '2016-05-02'、 名前: 王小湖、 HB: '-1.1'、 TB: '2.5'、 価格: '2982.01', 住所: 上海市普陀区金沙江路1518号、... }, { 日付: '2016-05-04'、 名前: 王小湖、 HB: '-0.28', TB: '1.1'、 価格: '2982.01', 住所: '上海市普陀区金沙江路1517号' }, { 日付: '2016-05-01'、 名前: 王小湖、 HB: '28'、 TB: '-0.11'、 価格: '2982.01', 住所: '上海市普陀区金沙江路1519号' }, { 日付: '2016-05-03'、 名前: '張三'、 HB: '21'、 TB: '2.11'、 価格: '-201.02', 住所: '上海市普陀区金沙江路1516号' }, { 日付: '2016-05-11'、 名前: '張三'、 HB: '0.28'、 TB: '-1.1'、 価格: '2982.01', 住所: '上海市普陀区金沙江路1516号' }, { 日付: '2016-05-02'、 名前: 王小湖、 HB: '-0.18'、 TB: '-1.15'、 価格: '2982.01', 住所: 上海市普陀区金沙江路1518号、... }, { 日付: '2016-05-04'、 名前: 王小湖、 HB: '-1.01'、 TB: '1.1'、 価格: '2982.01', 住所: '上海市普陀区金沙江路1517号' }, { 日付: '2016-05-01'、 名前: 王小湖、 HB: '-28'、 TB: '2.11'、 価格: '2982.01', 住所: '上海市普陀区金沙江路1519号' }, { 日付: '2016-05-03'、 名前: '張三'、 HB: ''、 TB: '0.1'、 価格: '-200.01', 住所: '上海市普陀区金沙江路1516号' }, { 日付: '2016-05-11'、 名前: '張三'、 HB: '18'、 TB: '-0.81', 価格: '2982.01', 住所: '上海市普陀区金沙江路1516号' }], } }, メソッド: { インデックスメソッド(インデックス) { インデックス + 1 を返します。 } } } </スクリプト> これで、vue + element dynamic multiple headers と dynamic slots に関するこの記事は終了です。vue + element dynamic multiple headers と dynamic slots に関するその他の関連記事については、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Linuxネットワーク設定の基本操作コマンドを詳しく解説
>>: MySQL マスタースレーブレプリケーションの実装手順
Nginx の主な設定ファイルは nginx.conf で、グローバル ブロック、イベント ブロック...
CSS メディア クエリには非常に便利なアスペクト比、aspect-ratio があり、幅と高さを直...
目次charとvarcharの違いcharとvarcharの違い上記は、MySQL における cha...
目次Dockerカスタムネットワーク1. カスタムネットワークの紹介2. カスタムネットワークを作成...
Flappy Bird は、誰もがアプリでプレイしたことがある非常にシンプルな小さなゲームです。ここ...
こんにちは、みんな!技術の話ばかりで髪は切らないトニーです。データベース関数は、何らかの機能を持ち、...
1. スロークエリの用途は何ですか? long_query_time を超えて実行されるすべての S...
キープアライブとは何ですか?通常の開発では、コンポーネントによっては複数回初期化する必要のないものも...
仮想メモリとは何ですか?まずはWikipediaからの紹介文をそのまま引用します。仮想メモリは、コン...
基本的な HTML Web ページ タグのネスト ルールを紹介する場合、最初に説明する必要があるのは...
これら 16 のサイトはそれぞれ注意深く読む価値があり、どのサイトでも推奨されている Web サイト...
Tomcat の上位バージョンでは、デフォルト モードは NIO モードを使用することになります。...
インストールの提案: インストールには .exe を使用せず、圧縮パッケージを使用してください。これ...
MySQL 環境をローカル (192.168.1.152) にデプロイし、リモート クライアント 1...
目次Jenkinsのインストールインストールポート番号を変更します(デフォルトのポートは8080です...