VorwortKürzlich stieß ich auf eine Anforderung, nämlich die Aktualisierung des Diagramms in Echtzeit in einem kleinen Programm. Zuerst wählte ich wx-chart, stellte dann aber fest, dass es meinen Anforderungen nicht entsprach. Schließlich entschied ich mich für ECharts, trat dabei aber auch in einige Fallstricke. Durch das Sammeln von Informationen im Internet fand ich es schließlich heraus und zeichnete meinen Implementierungsprozess auf. Methodenbeispiele1. Rufen Sie zunächst die offizielle ECharts-Website auf, um das Beispiel herunterzuladen. Kopieren Sie dann die EC-Canvas-Datei und fügen Sie sie in Ihr eigenes Projekt ein: 2. Importiere dann die benötigte Seite und füge sie zu xxx.json hinzu. Achte dabei auf den Pfad. Meine Seiten liegen alle im Ordner „pages“: "Komponenten verwenden": { "ec-canvas": "../../ec-canvas/ec-canvas" } 3. Ok, kommen wir zur Sache. Ich zeige Ihnen ein Beispiel für eine Seite mit zwei Diagrammen. Lassen Sie uns zunächst das einfache Layout und den Stil richtig gestalten. xxx.wxml: Es müssen zwei Canvas-Boxen bereitgestellt werden: <Klasse anzeigen="Inhalt"> <ec-canvas id="mychart-one" canvas-id="mychart-multi-one" ec="{{ ecOne}}"></ec-canvas> <ec-canvas id="mychart-two" canvas-id="mychart-multi-two" ec="{{ ecTwo }}"></ec-canvas> </Ansicht> xxx.wxss: .Inhalt { Breite: 100 %; Hintergrundfarbe: #F2F2F2; Überlauf-y: automatisch; } #meinchart-eins { Position: absolut; oben: 0; Höhe: 50%; links: 0; rechts: 0; } #mychart-zwei { Position: absolut; oben: 50 %; Höhe: 50%; links: 0; rechts: 0; } Beachten Sie hierbei, dass Sie, wenn Sie drei, vier oder mehr Diagramme einfügen möchten, die Höhe des Canvas-Felds festlegen müssen. Andernfalls werden die letzten beiden Diagramme gelöscht! ! Viele offizielle Diagramme hatten keine festgelegte Höhe, also habe ich ein paar Bilder entsprechend den offiziellen eingefügt, aber festgestellt, dass keines davon den gleichen Effekt hatte. Ich war müde und habe lange gesucht, bevor mir klar wurde, dass es ein Stilproblem war. Ich habe einfach für jedes Kästchen eine Höhe von 50 % festgelegt. 4. Okay, jetzt, da alle Vorbereitungen abgeschlossen sind, ist der nächste Schritt der Hauptteil. (Eigentlich denke ich, dass das, was ich geschrieben habe, zu kompliziert ist und voller sich wiederholendem Code ist, aber ich habe im Moment keine Zeit, es zu integrieren. Interessierte Freunde können ihre eigenen Methoden zur Integration schreiben.) xx.js Als erstes muss der offizielle Teil am Anfang der Seite eingeführt werden. importiere * als E-Charts aus „../../ec-canvas/echarts“; Legen Sie zunächst die Stilkonfiguration fest, die in der Tabelle angezeigt werden soll Funktion setOption(Diagramm, xDaten, yDaten) { const option = { Titel: Text: 'Test', Polsterung: [10, 0, 0, 20], Textstil: { Schriftgröße: 14, Farbe: '#696969' }, oben: „10rpx“ }, Hintergrundfarbe: "#fff", Farbe: ["#006EFF", "#67E0E3", "#9FE6B8"], Animation: falsch, Netz: { anzeigen:false }, x-Achse: Typ: "Kategorie", data: xdata, //Die Daten auf der x-Achse sind dynamisch, deshalb übergebe ich sie als Parameter axisLabel: { Intervall: 5, //Skala der Intervallanzeige auf der X-Achse, Formatierer: Funktion (Wert) { //Anzeigezeit, var Datum = neues Datum (Wert * 1000); var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'; var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()); Rückfahrt h + m }, Schriftgröße: 8 } }, yAchse: { x: 'Mitte', Maßstab: wahr, Typ: "Wert", Achsenbezeichnung: { Formatierer: Funktion (Wert) { var val = Wert / 1000000000 + 'G'; Rückgabewert } } }, Serie: [{ Typ: "Linie", data: ydata, //Die Daten auf der y-Achse sind ebenfalls dynamisch und werden als Parameter übergeben symbol: 'none', Linienstil: Breite: 1 } }] }; chart.setOption(option) } Einige Methoden zum Schreiben von Seiten Seite({ Daten: { ecoOne: { lazyLoad: wahr }, ecZwei: { lazyLoad: wahr }, Timer: '' //Da ich in Echtzeit aktualisieren möchte, stelle ich einen Timer ein}, onLoad: Funktion (Optionen) { var _this = dies; dies.getOneOption(); dies.getTwoOption(); this.setData({ //Jede Minute aktualisieren Timer: setInterval(function () { _this.getOneOption(); _this.getTwoOption(); }, 60000) }) }, onReady: function () { //Dieser Schritt muss beachtet werden this.oneComponent = this.selectComponent('#mychart-one'); diese.twoComponent = diese.selectComponent('#mychart-two'); }, beimEntladen: Funktion () { Intervall löschen(diese.Daten.Timer) }, init_one: function (xdata, ydata) { // Initialisiere das erste Diagramm this.oneComponent.init((canvas, width, height) => { const chart = echarts.init(canvas, null, { Breite: Breite, Höhe: Höhe }); setOption(Diagramm, X-Daten, Y-Daten) dieses.diagramm = Diagramm; Renditediagramm; }); }, init_two: function (xdata, ydata) { // Initialisiere das zweite Diagramm this.storagemaxComponent.init((canvas, width, height) => { const chart = echarts.init(canvas, null, { Breite: Breite, Höhe: Höhe }); setOption(Diagramm, X-Daten, Y-Daten) dieses.diagramm = Diagramm; Renditediagramm; }); }, getOneOption: function () { //Dieser Schritt erfordert tatsächlich das Hinzufügen von Daten zum Diagramm var _this = this; wx.Anfrage({ URL: 'https://xxxxxxx.com', //Die Schnittstellenadresse, wo Sie die Datenmethode anfordern: 'POST', Kopfzeile: { "Inhaltstyp": "Anwendung/json" }, Daten: { // Parameter übergeben, mehr muss dazu nicht gesagt werden ID: xxxx }, Erfolg:Funktion(res){ //Ich gehe hier davon aus, dass res.xdata und res.ydata die Daten sind, die wir brauchen, also die Daten, die auf der x- und y-Achse angezeigt werden. Denken Sie daran, dass es Arrays sein müssen! _this.init_one(res.xdata,res.ydata) } }) }, //Das zweite Diagramm wird auf die gleiche Weise verarbeitet getTwoOption: function () { var _this = dies; wx.Anfrage({ URL: 'https://xxxxxxx.com', //Die Schnittstellenadresse, wo Sie die Datenmethode anfordern: 'POST', Kopfzeile: { "Inhaltstyp": "Anwendung/json" }, Daten: { // Parameter übergeben, mehr muss dazu nicht gesagt werden ID: xxxx }, Erfolg:Funktion(res){ _this.init_two(res.xdata,res.ydata) } }) } }) Okay, das sind ungefähr die Schritte. Wenn etwas dynamisch geändert werden muss, geben Sie es einfach als Parameter ein. Ich habe hier den Timer in onUnload gelöscht, denn wenn er nicht gelöscht ist, werden Sie feststellen, dass er weiterhin angefordert wird, wenn Sie zu einer anderen Seite springen. Sie müssen den Timer also löschen, bevor Sie diese Seite verlassen. Ich bin kein technischer Experte. Wenn es also einen besseren Weg gibt, hoffe ich, dass Sie mich korrigieren können! Hahaha ZusammenfassenDies ist das Ende dieses Artikels über WeChat Mini Program + ECharts zur Erzielung dynamischer Aktualisierung. Weitere relevante Inhalte zu WeChat Mini Program + ECharts zur dynamischen Aktualisierung finden Sie in früheren Artikeln auf 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:
|
<<: Detailliertes Tutorial zur Installation von MySQL 8.0 aus dem Quellcode auf CentOS 7.4
>>: Eine kurze Erläuterung der Unterstützung von Gleitkommaoperationen durch den Linux-Kernel
Vorwort Die Lösung für das Problem, dass Elemente...
Inhaltsverzeichnis 1. Bauen Sie mit dem offiziell...
1. MySQL-Exportdatei: SELECT `pe2e_user_to_compan...
Heutzutage sprechen wir oft über Web 2.0. Was als...
Dabei wird das Bild als Hintergrund verwendet und...
Die Drag & Drop-API fügt ziehbare Elemente zu...
Nachdem ich viele Schwierigkeiten überwunden hatte...
Da die gesamte Anwendung unter CentOS bereitgeste...
Freunde, die in der Entwicklung tätig sind, insbe...
1. Einführung in DockerUI DockerUI basiert auf de...
Datenträgerbezeichnung, Eigenschaftsname, Beschre...
01. Befehlsübersicht Der Einfügebefehl fügt die e...
Vor ein paar Tagen habe ich auf Codepen ein Beisp...
So implementieren Sie die Paging-Funktion des MyB...
Inhaltsverzeichnis Grundlegende Datenbankvorgänge...