問題の説明Ele.me UI のフレームワークでは、入力データは el-form であり、出力データは el-table です。製品によっては、コンテンツごとに異なるスタイルを表示するなど、退屈なテーブルを動的にしたい場合があります。この要件を満たす方法は実際には多数あります。この記事では、参考として 2 つを紹介します。 実施方法1効果図は以下のとおりです コードは次のとおりです <テンプレート> <div id="アプリ"> <!-- 要件: 三国志のキャラクター テーブル。異なる国には異なる色で表示する必要があります (魏は赤、蜀は黒、呉は青) --> <el-table :data="テーブルデータ" スタイル="幅: 100%"> <el-table-column prop="name" label="姓名" width="180"> </el-table-column> <el-table-column prop="nation" label="国别" width="180"> <!-- テンプレート スロットを通じて対応するデータを取得し、異なるデータを異なる色で表示します。もちろん、表示できるのは 1 つだけです (v-if によって制御されます) --> <テンプレートスコープ="スコープ"> <div v-if="scope.row.nation == '魏国'" style="color:red;font-weight:bold;">{{scope.row.nation}}</div> <div v-if="scope.row.nation == '蜀国'" style="color:black;font-weight:bold;">{{scope.row.nation}}</div> <div v-if="scope.row.nation == '吴国'" style="color:blue;font-weight:bold;">{{scope.row.nation}}</div> </テンプレート> </el-table-column> <el-table-column prop="bornPlace" label="出生地"> </el-table-column> </el-table> </div> </テンプレート> <スクリプト> エクスポートデフォルト{ 名前:「アプリ」、 データ() { 戻る { テーブルデータ: [ { 名前:「劉備」、 国:「蜀王国」、 出身地: "涛県、涛県(河北省涛州市)", }, { 名前:「曹操」 国家:「魏国」、 出身地: "沛州橋県 (安徽省亳州市)", }, { 名前: 「孫権」、 国:「呉州」、 出身地: 「浙江省杭州市阜陽区武君富春県」 }, { 名前:「関羽」 国:「蜀王国」、 出身地: "河東県(山西省運城市塩湖区杰州鎮)", }, ]、 }; }, }; </スクリプト> 方法 1 この最初の方法を要約すると、効果は達成できますが、コードが el-table で記述されるため、見た目が肥大化します。動的に表示する必要があるスタイルが 2 つまたは 3 つだけの場合は記述できますが、動的に表示するスタイルが 7 つまたは 8 つ、あるいはそれ以上ある場合、この記述方法は非常に肥大化し、後でメンテナンスするのが難しくなります。個人的には、2 番目の方法をお勧めします。これは、vue 独自の :style 動的バインディング スタイルを使用してこれを実現する方法で、コードを簡素化できるだけでなく、より豊かな効果も実現できます。次のように: 実装方法2効果図は以下のとおりです コードは次のとおりです <テンプレート> <div id="アプリ"> <!-- 要件: 三国志のキャラクター テーブル。異なる国には異なる色 (魏は赤、蜀は黒、呉は青) を表示する必要があります --> <el-table :data="テーブルデータ" スタイル="幅: 100%"> <el-table-column prop="name" label="姓名" width="180"> </el-table-column> <el-table-column prop="nation" label="国别" width="180"> <!-- テンプレート スロットを通じて対応するデータを取得し、vue の動的スタイル メソッドを通じてさまざまな色を動的に表示するというアイデアです。このメソッドはより柔軟です --> <テンプレートスコープ="スコープ"> <!-- 意味: この div に動的なスタイルをバインドします。カラー属性値は getColorByNation() メソッドの戻り値なので、渡されたスコープを通じてメソッドの戻り値を動的に設定するだけで済みます --> <div :style="{color:getColorByNation(scope),fontSize:getSizeByNation(scope),fontWeight:'bold'}">{{scope.row.nation}}</div> </テンプレート> </el-table-column> <el-table-column prop="bornPlace" label="出生地"> </el-table-column> </el-table> </div> </テンプレート> <スクリプト> エクスポートデフォルト{ 名前:「アプリ」、 データ() { 戻る { テーブルデータ: [ { 名前:「劉備」、 国:「蜀王国」、 出身地: "涛県、涛県(河北省涛州市)", }, { 名前:「曹操」 国家:「魏国」、 出身地: "沛州橋県 (安徽省亳州市)", }, { 名前: 「孫権」、 国:「呉州」、 出身地: 「浙江省杭州市阜陽区武君富春県」 }, { 名前:「関羽」 国:「蜀王国」、 出身地: "河東県斌県 (山西省運城市塩湖区斌州鎮)", }, ]、 }; }, メソッド: { // 動的に色を設定する getColorByNation(scope){ console.log(scope); // 次の図に示すように、渡されたスコープを、テーブルの異なる行のデータ行全体に対応するように出力します。 if(scope.row.nation == "魏国"){ 「赤」を返す }else if(scope.row.nation == "Shu"){ 「黒」を返す }そうでない場合、scope.row.nation == "Wu"){ 「青」を返す } }, // フォントサイズを動的に設定する getSizeByNation(scope){ if(scope.row.nation == "魏国"){ 「14px」を返す }else if(scope.row.nation == "Shu"){ 「18px」を返す }そうでない場合、scope.row.nation == "Wu"){ 「24px」を返す } } }, }; </スクリプト> 渡されたスコープを印刷する 方法 2 は、vue を介してスタイルをバインドして制御するこの方法が、最初の方法よりもはるかに柔軟であることをまとめたものです。結局、最初の方法は el-table で記述され、2 番目の方法は methods で記述されます。具体的にどれを使用するかは、シーンの要件によって異なります。 要素 ui の el-table の列にさまざまなスタイルのデータを動的に実装する例についての記事はこれで終わりです。要素 ui の el-table の列にさまざまなスタイルのデータを動的に実装する例をさらにご覧になりたい場合は、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: CentOS で Mysql を再起動するさまざまな方法 (推奨)
>>: Windows で IP アドレスを指定してサーバーへのリモート アクセスを設定する方法
前回の記事では、Windows でタイムアウトを試してみました。この記事では、Linux で試してみ...
1. Navicatの紹介1. Navicat とは何ですか? Navicat は強力な MySQ...
目次1. NFS の概要2. NFS構築1. NFSサーバーの構築2. NFSクライアントの構築3....
いわゆるスライディングドアテクノロジーとは、さまざまな長さのテキストに合わせてボックスの背景を自動的...
目次デザインコンポーネント通信ライフサイクルイベント処理品格とスタイルクラススタイル条件付きレンダリ...
SQL文 /* MySQL で重複行を削除するいくつかの方法 ---Chu Minfei ---20...
優先度両方のケースで同じ条件を設定すると、異なる結果セットが生成される可能性があるのは、優先順位のた...
LOFTER のコンテストで、ログイン ボックスを再設計できると言及されているのを見ました。過去 2...
右クリックメニューを無効にする <body oncontextmenu=self.event....
SSHPASSをインストールする最新のオペレーティング システムでは、sshpass パッケージはデ...
VMware12.0+Ubuntu16.04+MySQL5.7.22 インストールチュートリアルの詳...
この記事では、Web ページを作成する前に確認すべき、いわゆる仕様をいくつかまとめました。皆様のお役...
Nginx を使用して Tomcat9 クラスターを構築し、Redis を使用してセッション共有を実...
インターネット上にはMySQL 5.7.17のインストールチュートリアルがほとんどなく不十分なので、...
この記事では、全選択または選択を反転する機能を実現するためのJavaScriptの具体的なコードを参...