VorwortBei der Entwicklung von Backend-Systemen werden häufig einige Statusfelder für Listen angezeigt, z. B. Überprüfungsstatus, Status der Rückgabeanwendung usw., und sie werden häufig von Listenabfragebedingungen zur Statusfilterung begleitet. Gleichzeitig entspricht die Statusanzeige unterschiedlichen Farben. Beim Schreiben von Code machen manche Leute oft Folgendes: <Vorlage> <el-form :model="Abfrage"> <el-form-item label="Genehmigungsstatus" prop="status"> <el-select v-model="query.status" löschbar> <el-Option v-for="Element in Statusoptionen" :Schlüssel="Artikel.Wert" :label="Artikel.label" :Wert="Artikel.Wert" /> </el-Auswahl> </el-form-item> <el-form-item> <el-button type="primary">Abfrage</el-button> <el-button type="danger">Zurücksetzen</el-button> </el-form-item> </el-form> <el-table :data="Liste"> <el-table-column label="Genehmigungsstatus"> <template #default="{ Zeile }"> <el-tag v-if="row.status === 0" type="primary">Wird überprüft</el-tag> <el-tag v-if="row.status === 1" type="success">Überprüfung erfolgreich</el-tag> <el-tag v-if="row.status === 2" type="danger">Prüfung fehlgeschlagen</el-tag> </Vorlage> </el-Tabellenspalte> </el-Tabelle> </Vorlage> Standard exportieren { Daten() { zurückkehren { Abfrage: { Status: null }, Statusoptionen: [ { label: 'Wird überprüft', value: 0 }, { label: 'Überprüfung erfolgreich', value: 1 }, { label: 'Audit fehlgeschlagen', value: 2 } ], Liste: [] } } } Obwohl der obige Code die Anforderungen erfüllt, ist er nicht elegant genug und der Code-Wartungsaufwand ist hoch:
OptimierungAls Reaktion auf die oben genannten Probleme werden wir die folgenden Maßnahmen ergreifen, um sie zu beheben. Variablen extrahierenErstellen Sie eine Konstantendatei zum Speichern von Statusoptionen, fügen Sie das Typfeld der El-Tag-Komponente hinzu, um verschiedene Farben zu unterscheiden und anzuzeigen, und exportieren Sie sie schließlich. // const/index.js // Prüfstatus const statusOptions = [ { label: 'Wird überprüft', value: 0, type: 'primary' }, { label: 'Überprüfung erfolgreich', value: 1, type: 'success' }, { Label: 'Audit fehlgeschlagen', Wert: 2, Typ: 'Gefahr' } ] exportieren { Statusoptionen } Sekundärverpackung von El-Tag-Komponenten// Komponenten/Statistik-Tag.vue <Vorlage> <el-tag :type="getValue('type')"> {{ getValue('Bezeichnung') }} </el-tag> </Vorlage> Standard exportieren { Name: 'StatusTag', Requisiten: { Optionen: Typ: Array, erforderlich: wahr, Standard: () => [] }, Status: { Typ: [Zeichenfolge, Zahl], erforderlich: true } }, berechnet: { getValue({ Optionen, Status }) { return (Schlüssel) => { const item = Optionen.finden(e => e.value === status) return (Artikel && Artikel[Schlüssel]) || '' } } } } verwenden<Vorlage> <el-form :model="Abfrage"> <el-form-item label="Genehmigungsstatus" prop="status"> <el-select v-model="query.status" löschbar> <el-Option v-for="Element in Statusoptionen" :Schlüssel="Artikel.Wert" :label="Artikel.label" :Wert="Artikel.Wert" /> </el-Auswahl> </el-form-item> <el-form-item> <el-button type="primary">Abfrage</el-button> <el-button type="danger">Zurücksetzen</el-button> </el-form-item> </el-form> <el-table :data="Liste"> <el-table-column label="Genehmigungsstatus"> <template #default="{ Zeile }"> <!-- Verwendung --> <Status-Tag :Optionen="Statusoptionen" :status="Zeile.status" /> </Vorlage> </el-Tabellenspalte> </el-Tabelle> </Vorlage> importiere StatusTag aus '@/components/status-tag' // Importimport { statusOptionen } von '@/const' Standard exportieren { Komponenten: StatusTag }, Daten() { zurückkehren { Statusoptionen } } } Wenn es nach der Optimierung Änderungen gibt, müssen Sie nur die Datei const/index.js ändern, ohne sie überall ändern zu müssen. // const/index.js // Prüfstatus const statusOptions = [ { label: 'Wird überprüft', value: 0, type: 'primary' }, { label: 'Überprüfung erfolgreich', value: 1, type: 'success' }, { Bezeichnung: 'Auditfehler', Wert: 2, Typ: 'Gefahr' }, // Stornierungsstatus hinzufügen { Bezeichnung: 'Überprüfung abgebrochen', Wert: 3, Typ: 'Warnung' } ] exportieren { Statusoptionen } ZusammenfassenDies ist das Ende dieses Artikels über das elegante Schreibstatus-Label im Vue-Hintergrund. Weitere relevante Inhalte zum Schreibstatus-Label von Vue finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! |
<<: Der Prozess des SSH-Dienstes basierend auf der Schlüsselauthentifizierung im Linux-System
>>: Die MySQL-Version ist niedriger als die, die keine zwei Werte vom Typ Zeitstempel unterstützt.
Als ich kürzlich an Überwachungsgeräten arbeitete...
Inhaltsverzeichnis Base Rückgabetyp String und Bo...
Installieren Sie schnell die Tensorflow-Umgebung ...
Inhaltsverzeichnis 1. Einfacher Datenabruf 2. Dat...
Es gibt auch zwei Server: Vorbereitung: Legen Sie...
Bei der Installation von mysql5.7.18 ist folgende...
Fehlermeldung: Der Job für mysqld.service ist feh...
Baidu Cloud-Festplatte: Link: https://pan.baidu.c...
Inhaltsverzeichnis erster Schritt Schritt 2 Schri...
In diesem Artikelbeispiel wird der spezifische JS...
Lassen Sie uns zunächst darüber sprechen, warum w...
CAST-Funktion Im vorherigen Artikel haben wir die...
Ich habe kürzlich an einer Kommentarfunktion gear...
Inhaltsverzeichnis Präsentationsschicht Geschäfts...
vorgenannt Dieser Artikel ist sehr kurz~ Der Haup...