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 マスタースレーブレプリケーションの実装手順
目次序文スタックと2つのキューを理解する実行プロセス簡単な例より難しい例要約する序文以下の内容はブラ...
目次1.1 前提条件としてのJava環境1.2 Zookeeperのインストールと設定1.3 Kaf...
目次序文1. Iceraven ブラウザ (Firefox) (Android) 2. (アンドロイ...
複雑なテーブル構造では、一部のセルが水平方向に複数のセルにまたがるため、行間属性 ROWSPAN を...
すべてがファイルです! UNIX はすでにそれを言っています。エリック・レイモンドはこう言いました。...
序文フッター領域を下部に固定します。ページの高さや幅に関係なく、モバイル メニューと同様に、フッター...
1. はじめに以前のプログラム アーキテクチャは次の形式になります。プログラムのサイズが大きくなると...
<br />どの家庭にもそれぞれの問題があり、改訂はどの IT 企業にとっても問題の 1...
1 インストールリソースパッケージmysql-8.0.18-1.el7.x86_64.rpm-bun...
質問: int(1) と tinyint(1) の違いは何ですか?このような設計では、いずれにしても...
1. rzをサーバーにアップロードして解凍する rz [root@mini2 アップロード]# ta...
例示するDML(データ操作言語)とは、データベースの追加、削除、変更を行うための操作命令のことです。...
違い: 1. InnoDB はトランザクションをサポートしていますが、MyISAM はサポートしてい...
画像をダウンロード docker プル mysql:5.7 docker pull php:7.2-...
黄金律プロジェクトに何人の人が取り組んでいるかに関係なく、すべてのコード行が同じ人によって書かれたよ...