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

Einige Fehler, die JavaScript-Anfänger häufig machen

Inhaltsverzeichnis Vorwort Verwechslung von „unde...

So wählen Sie die Transaktionsisolationsebene in einem MySQL-Projekt

Einführung Beginnen wir mit unserem Inhalt. Ich g...

vsCode generiert Vue-Vorlagen mit einem Klick

1. Verwenden Sie die Tastenkombination Strg + Ums...

CSS-Standard: Eigenschaft „vertical-align“

<br />Originaltext: http://www.mikkolee.com/...

Chrome überwacht Cookie-Änderungen und weist Werte zu

Der folgende Code führt die Überwachung von Cooki...

Programme zum Abfragen und Löschen der Portnutzung im Windows-Betriebssystem

Im Windows-Betriebssystem das Programm zum Abfrag...

So ändern Sie schnell die Tabellenstruktur einer MySQL-Tabelle

Tabellenstruktur einer MySQL-Tabelle schnell ände...

MySQL 5.7.18 Installations-Tutorial und Problemübersicht

MySQL 5.7.18 Installation und Problemübersicht. I...

Einige Hinweise zu MySQL-Routineberechtigungen

1. Wenn der Benutzer über die Berechtigung zum Er...

Verwenden von jQuery zum Implementieren des Karusselleffekts

Was ich Ihnen heute zeige, ist die Verwendung von...

Erfahren Sie, wie Sie Vue3 Reactivity implementieren

Inhaltsverzeichnis Vorwort Start Ein kleiner Geda...

js canvas realisiert Bilder mit abgerundeten Ecken

In diesem Artikel wird der spezifische Code von J...