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

4 Möglichkeiten zum Ändern des MySQL-Root-Passworts (Zusammenfassung)

Methode 1: Verwenden Sie den Befehl SET PASSWORD ...

Webdesign-Tutorial (7): Verbesserung der Webdesign-Effizienz

<br />Vorheriger Artikel: Webdesign-Tutorial...

Zwei Bilder von JavaScript zum Verständnis der Prototypenkette

Inhaltsverzeichnis 1. Prototyp-Beziehung 2. Proto...

Ausführliche Erläuterung der Mysql-Deadlock-Anzeige und Deadlock-Entfernung

Vorwort Vor einiger Zeit ist bei mir ein MySQL-De...

So deaktivieren Sie Webseitenstile mit dem Webentwickler von Firefox

Voraussetzung: Das Webentwickler-Plugin wurde inst...

Detaillierte Erklärung zur Verwendung von Teleport in Vue3

Inhaltsverzeichnis Zweck des Teleports So funktio...

Beheben von Problemen mit impliziter MySQL-Konvertierung

1. Problembeschreibung root@mysqldb 22:12: [xucl]...

Anwendungsbeispiele für die try_files-Direktive von Nginx

Die Konfigurationssyntax von Nginx ist flexibel u...

Zusammenfassung der Docker-Datenspeicherung

Bevor Sie diesen Artikel lesen, hoffe ich, dass S...

Front-End-Statusverwaltung (Teil 2)

Inhaltsverzeichnis 1. Wiederholen 1.1. Shop (Bibl...

Mysql | Detaillierte Erklärung der Fuzzy-Abfrage mit Platzhaltern (wie, %, _)

Wildcard-Kategorien: %Prozent-Platzhalter: Gibt a...

Detaillierte Erläuterung des MySQL MVCC-Mechanismusprinzips

Inhaltsverzeichnis Was ist MVCC Mysql-Sperre und ...