Avue-CRUD-Implementierungsbeispiel für einen komplexen dynamischen Header auf mehreren Ebenen

Avue-CRUD-Implementierungsbeispiel für einen komplexen dynamischen Header auf mehreren Ebenen

Avue.js ist eine sekundäre Kapselung, die auf der vorhandenen Element-UI-Bibliothek basiert und einige mühsame Vorgänge vereinfacht. Das Kernkonzept ist die datengesteuerte Ansicht. Die Hauptkomponentenbibliothek ist für Tabellen- und Formularszenarien gedacht. Gleichzeitig leitet sie häufiger verwendete Komponenten für Unternehmen ab, um ein hochgradig wiederverwendbares, leicht zu wartendes und zu erweiterndes Framework zu erreichen. Gleichzeitig verfügt es über integrierte Rich-Data-Anzeigekomponenten, um die Entwicklung zu vereinfachen.

Vorwort

Im eigentlichen Entwicklungsprozess sind mehrstufige, komplexe dynamische Header erforderlich, und der Inhalt der Header wird dynamisch gefüllt. Nachfolgend sehen Sie den Header-Stil, der von der offiziellen Avuejs-Website bereitgestellt wird. Daher müssen die von meinem Hintergrund zurückgegebenen Daten in das JSON-Format in Avue-CRUD eingefügt werden.

Bildbeschreibung hier einfügen

In der tatsächlichen Entwicklung muss es eingefügt werden, Spaltenformat.

Spalte: [{
            Bezeichnung: 'Name',
            Requisite: "Name",
            Breite: 140,
          }, {
            Bezeichnung: ‚Geschlecht 1‘,
            Requisite: "Geschlecht",
          },
          {
            Bezeichnung: „Benutzerdefiniertes Symbol“,
            Requisite: "Symbol",
            Typ: "Symbol",
            Symbolliste: [{
              Bezeichnung: „Basisdiagramm“,
              Liste: ['el-icon-Zeit', 'el-icon-Glocke', 'el-icon-Stern-an']
            }]
          }, {
            Bezeichnung: „Komplexe Kopfzeile“,
            Kinder: [{
              Bezeichnung: 'Informationen',
              Kinder: [{
                Bezeichnung: "Alter",
                Requisite: „Alter“
              }, {
                Bezeichnung: 'Mobiltelefonnummer',
                Requisite: "Telefon",
              }]
            }, {
              Bezeichnung: "Region",
              Requisite: "Adresse",
              Typ: "Auswählen",
              Requisiten: {
                  Bezeichnung: "Name",
                  Wert: „Code“
              },
              dicUrl:'https://cli.avuejs.com/api/area/getProvince'
            }]
          }, {
            Bezeichnung: "Test",
            Stütze: "Test",
          },
          {
            Beschriftung: 'Mobiltelefon-Informationen 1',
            Stütze: "Telefon1"
          }],
        },
        Daten: [{
          Name: 'Zhang San',
          Alter: 14,
          Adresse: '110000',
          Telefon1: '17547400800',
          Telefon: '17547400800',
          Symbol: „el-icon-time“,
          Prüfung: 1,
          Geschlecht: 'männlich'
        }, {
          Name: 'Wang Wu',
          Alter: 10,
          Adresse: '120000',
          Prüfung: 1,
          Geschlecht: 'weiblich',
          Symbol: „el-icon-star-on“,
          Telefon1: '17547400800',
          Telefon: '17547400800'
        }]

Hintergrunddatenspleißen

@GetMapping("/getTableHeader")
	öffentliche R getTableHeaderJson(){
		Map<String,Objekt> map = neue HashMap<>();
		StringBuilder sb = neuer StringBuilder();
		sb.append("{label: 'Prozess',children: [");
		Liste<Fabrikprozess> Prozessliste = Fabrikprozessdienst.Liste();
		für (int i = 0; i < processList.size(); i++) {
			Zeichenfolge pid = processList.get(i).getProcessId();
			sb.append("{label:'" + processList.get(i).getProcessName() + "',prop:'" + pid + "',");
			sb.append("children:[{label: 'Stückpreis',prop: 'Preis' + pid + "'}, " +
				"{label: 'Gesamt', prop: 'Summe" + pid + "'},{label: 'Abgeschlossene Menge', prop: 'completeNum" + pid + "'}, " +
				"{label: 'Qualifizierungsprüfung qualifizierte Nummer', prop: 'qualifiedNum" + pid + "'}," +
				" {label: 'Anzahl der unqualifizierten Qualitätsprüfungen', prop: 'unqualifiedNum" + pid + "'}, " +
				"{label: 'Schrottmenge',prop: 'scrapNum" + pid + "'}]").append("},");
		};
		sb.anhängen("]}");

		map.put("Spalten",sb.toString());

		gib R.data(map) zurück;
	}

Frontend-Datenanzeige

Laden der Header-Informationsanzeige in der Create-Funktion

// Laden erstellt(){
      dies.getHeaderList();
 },
//Die auf der Ladeseite angezeigten Informationen finden Sie in der Methode methods: {
      getHeaderList(){
        getHeaderFun().then(res => {
          diese.Option.Spalte.push(
                 {
                   Bezeichnung: „Produktname“,
                   Requisite: "Produktname",
                   Farbe: '#eef1f6'
                 },
                 {
                   Bezeichnung: „Produktcode“,
                   Requisite: "Produktcode",
                 },
                 {
                   Bezeichnung: "Material",
                   Eigenschaft: "productMaterialStr",
                 },
                 {
                   Bezeichnung: "Menge",
                   Eigenschaft: "sumNum",
                 },
                 {
                   Bezeichnung: „Anzahl der Ausgliederungen“,
                   Eigenschaft: "outNum",
                 },
                 {
                   Bezeichnung: „Outsourcing-Abschlussbetrag“,
                   Eigenschaft: „outCompleteNum“
                 },
                 {
                   Bezeichnung: „Gesamt abgeschlossener Betrag“,
                   Eigenschaft: "totalCompleteNum"
                 }
          )
          // Holen Sie sich die Hintergrund-Spleißeninformationen let objs = eval("("+res.data.data.cols+")");
          diese.Option.Spalte.Push(Objekte);
          dies.beimLaden(diese.Seite);
        })
      }, 
 }

Laden von Daten aus einer Tabelle

// Die Anzeige der Seitendaten muss dem Prop-Attribut der Hintergrundanfrage entsprechen onLoad(page, params = {}) {
        dies.laden = wahr;
        findProjectFormList(Seite.aktuelleSeite, Seite.Seitengröße, Objekt.zuweisen(Params, diese.Abfrage)).dann(res => {
          Konstante Daten = res.Daten.Daten;
          diese.Seite.Gesamt = Daten.Gesamt;
          //diese.Daten = Daten.Datensätze;

          let records = Daten.Datensätze;
          Lassen Sie Datenliste = [];
          Lassen Sie processList = this.option.column[7].children;
          für(lass i = 0; i < Datensätze.Länge; i++ ) {
            lass obj = {
              'Produktname': Datensätze[i].Produktname,
              'Produktcode': Datensätze[i].Produktcode,
              'productMaterialStr' : Datensätze[i].productMaterialStr,
              'sumNum' : Datensätze[i].sumNum,
              'outNum': Datensätze[i].outNum,
              'outCompleteNum' : Datensätze[i].outCompleteNum,
              'totalCompleteNum': Datensätze[i].totalCompleteNum,
            }
            let processNumList = Datensätze[i].processNumList;
            für(let j = 0; j < processNumList.length; j++) {
              für (let k = 0; k < processList.length; k++) {
                if (Prozessliste[k].prop === Prozessnummernliste[j].Prozesscode) {
                // $set weist den Wert der entsprechenden Eigenschaft prop this.$set(obj, 'price'+processNumList[j].processCode, processNumList[j].processPrice) zu;
                  dies.$set(obj, 'Summe'+ProzessNummernliste[j].ProzessCode, ProzessNummernliste[j].ProzessTotal);
                  dies.$set(obj, 'completeNum'+processNumList[j].processCode, processNumList[j].completeNum);
                  dies.$set(obj, 'qualifizierteNummer'+ProzessNummernliste[j].ProzessCode, ProzessNummernliste[j].qualifizierteNummer);
                  dies.$set(obj, 'unqualifiedNum'+processNumList[j].processCode, processNumList[j].unqualifiedNum);
                  dies.$set(obj, 'scrapNum'+processNumList[j].processCode, processNumList[j].scrapNum);
                  dies.$set(obj, 'shift'+processNumList[j].processCode, processNumList[j].shiftName);
                }
              }
            }
            Datenliste.push(obj);
          }
          diese.daten = Datenliste;

          dies.laden = falsch;
          diese.AuswahlLöschen();

        })
      },

Seiteneffektanzeige

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels über das Implementierungsbeispiel des mehrstufigen komplexen dynamischen Avue-Crud-Headers. Weitere verwandte Inhalte zum mehrstufigen komplexen dynamischen Avue-Crud-Header 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!

Das könnte Sie auch interessieren:
  • Vue + Element ui legt den dynamischen Header-Vorgang entsprechend den im Hintergrund zurückgegebenen Daten fest
  • Dynamisches Rendern der Tabelle im Vue-Element (dynamische Tabellenüberschrift)

<<:  Eine vollständige Anleitung zu einigen ungewöhnlichen, aber nützlichen CSS-Attributoperationen

>>:  Detaillierte Erläuterung der globalen Parameterpersistenz in den neuen Funktionen von MySQL 8

Artikel empfehlen

Beispiel für die gemeinsame Nutzung von Anker-Tags in HTML

Verwendung von Anker-Tags: Als Ankerlink wird ein ...

CSS-Methode zum Löschen von Float und BFC

BFC BFC: Blockformatierungskontext BFC-Layoutrege...

Zusammenfassung der Methoden zum Einfügen von Videos in HTML-Seiten

Wenn Sie nun das Video-Tag auf einer Seite verwen...

Detaillierte Analyse der MySQL-Sperrblockierung

Bei der täglichen Wartung werden Threads häufig b...

Fallstudie zum Zusammenführen von JavaScript-Arrays

Methode 1: var a = [1,2,3]; var b=[4,5] a = a.con...

Erläuterung der Anwendungsfälle von JavaScript setTimeout und setTimeinterval

Mit beiden Methoden kann ein JavaScript-Code nach...

MySQL-Konfiguration SSL-Master-Slave-Replikation

MySQL5.6 So erstellen Sie SSL-Dateien Offizielle ...

Wir treiben IE6 alleine in den Untergang

Tatsächlich fragen wir uns jeden Tag, wann IE6 wi...

React useEffect verstehen und verwenden

Inhaltsverzeichnis Vermeiden Sie sich wiederholen...

Detaillierte Erklärung zur Verwendung von ElementUI in Vue

Anmeldung + SessionStorage Effektanzeige Nach ein...

Beispiele für die Verwendung der oder-Anweisung in MySQL

1. Die Verwendung der oder Syntax in MySQL und di...

So fragen Sie Daten aus mehreren unabhängigen Tabellen und Paging in MySQL ab

Mysql mehrere unabhängige Tabellen Abfragedaten u...

Studiennotizen zur MySQL Master-Slave-Konfiguration

● Ich hatte vor, einige Cloud-Daten zu kaufen, um...