Analyse der Ideen zur Implementierung vertikaler Tabellen auf zwei Arten im Vue-Projekt

Analyse der Ideen zur Implementierung vertikaler Tabellen auf zwei Arten im Vue-Projekt

Problembeschreibung

In unseren Projekten sind horizontale Tische üblich, manchmal fertigen wir je nach Bedarf aber auch vertikale Tische an. Beispielsweise die vertikale Tabelle unten:

Wenn wir ein solches Rendering sehen, ist unser erstes, das UI-Framework zu verwenden und einige Änderungen vorzunehmen, um das Problem zu lösen. Allerdings bietet Ele.me UI kein direktes Beispiel dafür. Einige Schüler möchten möglicherweise die el-table in Ele.me UI verwenden, um Zeilen und Spalten zu verschmelzen und dies zu erreichen. Tatsächlich wird es problematisch, wenn Sie dies tun. Beispielsweise die folgenden zusammengeführten Zeilen und Spalten:

Für derartige Renderings müssen Sie nicht unbedingt UI-Komponenten verwenden. Manchmal können Sie dafür auch native Methoden verwenden. Im Gegenteil, es wird bequemer sein. Dieser Artikel stellt zwei Möglichkeiten zur Implementierung einer solchen einfachen vertikalen Tabelle vor. Das tatsächliche Szenario ist möglicherweise komplizierter, aber wie gesagt: Solange Sie eine Vorstellung haben, ist das kein großes Problem. Der Schlüssel zum Programmieren liegt im Denken:

Methode 1 (native Methode) wird nicht empfohlen

Die Idee ist: Zeichnen Sie den Tabellenstil selbst und verwenden Sie Floating, um sie von links nach rechts anzuordnen

<Vorlage>
  <div id="app">
    <ul Klasse="proWrap">
      <template v-for="(Element, Index) in Daten">
        <li Klasse="proItem" :Schlüssel="index">
          <span>{{ Artikeltitel }}</span>
          <span>{{ item.value == "" ? "Wird vervollständigt" : item.value }}</span>
        </li>
      </Vorlage>
    </ul>
  </div>
</Vorlage>

<Skript>
Standard exportieren {
  Daten() {
    zurückkehren {
      Daten: [
        {
          Titel: "Wichtigkeitsstufe",
          Wert: "666",
        },
        {
          Titel: "Vorverkaufsstatus",
          Wert: "666",
        },
        {
          Titel: "Kooperationsstatus",
          Wert: "",
        },
        {
          Titel: "Vorverkaufsstatus",
          Wert: "",
        },
        {
          Titel: „Status der technischen Vereinbarung“,
          Wert: "",
        },
        {
          Titel: "Gewinnender Bieter",
          Wert: "",
        },
        {
          Titel: "Kooperationsstatus",
          Wert: "",
        },
        {
          Titel: „Zeit für Kooperationsfeedback“,
          Wert: "",
        },
      ],
    };
  },
  Methoden: {},
};
</Skript>

<style lang="less" scoped>
#app {
  Breite: 100 %;
  Mindesthöhe: 100vh;
  Box-Größe: Rahmenbox;
  Polsterung: 50px;
  .proWrap {
    Breite: 100 %;
    Rand: 1px durchgezogen #e9e9e9;
    Rand rechts: 0;
    Rahmen unten: 0;
    // Wie viele Gruppen kommen in jede Zeile? Hier dividieren wir durch eine bestimmte Zahl.proItem {
      Breite: 100 % / 3;
      float: left; // nach links schweben,
      Spanne {
        Anzeige: Inline-Block;
        Breite: berechnet (50 % – 2 Pixel);
        Höhe: 50px;
        Zeilenhöhe: 50px;
        Textausrichtung: zentriert;
        Rahmen rechts: 1px durchgezogen #e9e9e9;
        Rahmen unten: 1px durchgezogen #e9e9e9;
      }
      span:n-tes-Kind(1) {
        Hintergrund: #fafafa;
      }
    }
    // Float löschen. Andernfalls verschwindet der äußerste linke Rand&::after {
      Inhalt: "";
      Anzeige: Block;
      klar: beides;
    }
  }
}
// Entferne den Standardstil von li {
  Listenstiltyp: keiner;
}
</Stil>

Methode 2 (mithilfe von Rasterlayoutkomponenten) wird empfohlen

Es ist bequemer, das mit Ele.me gelieferte Rastersystem zu verwenden. Wir können die Anzahl der Gruppen festlegen, die in jeder Zeile erscheinen, indem wir das :span-Attribut von el-col steuern. Wenn mehr Gruppen vorhanden sind, werden sie automatisch umbrochen. Den Stil des Tisches können wir selbst bestimmen. Diese Methode ist sehr einfach. Angehängter Code:

<Vorlage>
  <div id="app">
    <el-col :span="wieBreite" v-for="(Element, Index) in tableArr" :key="index">
      <div Klasse="Box">
        <div class="content1">{{ Artikel.Schlüssel }}</div>
        <div class="content2">{{ item.value == "" ? "Wird vervollständigt" : item.value }}</div>
      </div>
    </el-col>
  </div>
</Vorlage>

<Skript>
Standard exportieren {
  Daten() {
    zurückkehren {
      Tabellenanordnung: [
        {
          Schlüssel: "Name",
          Wert: "Sun Wukong",
        },
        {
          Schlüssel: "Alter",
          Wert: 500,
        },
        {
          Taste: "Höhe",
          Wert: "So hoch wie ein Berg",
        },
        {
          Schlüssel: "Geschlecht",
          Wert: "Männlich",
        },
        {
          Schlüssel: "Adresse",
          Wert: „Wasservorhanghöhle im Huaguo-Berg“,
        },
        {
          Schlüssel: "Bildung",
          Wert: „Bildungshintergrund von Tian Ting Bi Ma Wen“,
        },
        {
          Schlüssel: "Fähigkeit",
          Wert: "Stark",
        },
        {
          Schlüssel: "Spitzname",
          Wert: „Der große Weise“,
        },
      ],
      Breite: 8,
    };
  },
  Methoden: {},
};
</Skript>

<style lang="less" scoped>
#app {
  Breite: 100 %;
  Mindesthöhe: 100vh;
  Box-Größe: Rahmenbox;
  Polsterung: 50px;
  .Kasten {
    Breite: 100 %;
    Höhe: 40px;
    Anzeige: Flex;
    Rahmen links: 1px durchgezogen #e9e9e9;
    Rahmen oben: 1px durchgezogen #e9e9e9;
    .Inhalt1 {
      Breite: 40%;
      Höhe: 40px;
      Zeilenhöhe: 40px;
      Textausrichtung: zentriert;
      Hintergrundfarbe: #fafafa;
      Rahmen rechts: 1px durchgezogen #e9e9e9;
      Rahmen unten: 1px durchgezogen #e9e9e9;
      Farbe: #333;
      Schriftgröße: 14px;
    }
    .Inhalt2 {
      Breite: 60%;
      Höhe: 40px;
      Zeilenhöhe: 40px;
      Textausrichtung: zentriert;
      Hintergrundfarbe: #fff;
      Rahmen rechts: 1px durchgezogen #e9e9e9;
      Rahmen unten: 1px durchgezogen #e9e9e9;
      Farbe: #b0b0b2;
      Schriftgröße: 14px;
    }
  }
}
</Stil>

Damit ist dieser Artikel über die Analyse zweier Möglichkeiten zur Implementierung vertikaler Tabellen in Vue-Projekten abgeschlossen. Weitere relevante Inhalte zu vertikalen Vue-Tabellen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Vue+Element – ​​Tutorial für benutzerdefinierte vertikale Tabellenüberschriften

<<:  Speicher-Engine und Protokollbeschreibung basierend auf MySQL (ausführliche Erklärung)

>>:  vmware workstation12 installation centos fordert VMware Player und Device/Credential Guard sind inkompatibel, Gründe und Lösungen

Artikel empfehlen

Einführung in den Prozess zum Erstellen einer TCP-Verbindung im Linux-System

Inhaltsverzeichnis Schritte zum Erstellen von TCP...

Docker installiert ClickHouse und initialisiert den Datentest

Clickhouse-Einführung ClickHouse ist ein spalteno...

So implementieren Sie einen einfachen HTML-Videoplayer

Dieser Artikel stellt die Methode zur Implementie...

So konfigurieren Sie die PDFLatex-Umgebung in Docker

Technischer Hintergrund Latex ist ein unverzichtb...

Probleme bei der Installation von MySQL und mysql.sock unter Linux

Vor kurzem traten bei der Installation von Apache...

Eine kurze Diskussion über 3 bemerkenswerte neue Features in TypeScript 3.7

Inhaltsverzeichnis Vorwort Optionale Verkettung N...

JavaScript implementiert die Kontrollkästchenauswahlfunktion

In diesem Artikelbeispiel wird der spezifische Ja...

Eine einfache Methode zum regelmäßigen Löschen abgelaufener Datensätze in MySQL

1. Überprüfen Sie nach der Verbindung und Anmeldu...

Detaillierte Erläuterung des Ausführungsprozesses von MySQL-Abfrageanweisungen

Inhaltsverzeichnis 1. Kommunikationsmethode zwisc...

So steuern Sie die Startreihenfolge von Docker Compose-Diensten

Zusammenfassung Docker-Compose kann problemlos me...

Ich zeige Ihnen, wie Sie Schriftsymbole in CSS verwenden

Zunächst einmal: Was ist ein Schriftsymbol? Oberf...

Ist MySQL eine relationale Datenbank?

MySQL ist ein relationales Datenbankverwaltungssy...

Tiefgreifendes Verständnis langer MySQL-Transaktionen

Vorwort: Dieser Artikel stellt hauptsächlich den ...

So fragen Sie die Schnittmenge von Zeiträumen in MySQL ab

Mysql-Abfragezeitraum-Schnittmenge Anwendungsszen...