Was ist Element-UIelement-ui ist eine auf Vue.js 2.0 basierende Desktop-Komponentenbibliothek, die vom Front-End-Team von Ele.me für Entwickler, Designer und Produktmanager eingeführt wurde, während das entsprechende Framework für Mobiltelefone Mint UI ist. Der gesamte UI-Stil ist einfach und praktisch und verbessert auch die Effizienz der Entwickler erheblich. Es ist eine sehr beliebte Komponentenbibliothek. Die Seite sieht ungefähr so aus: Die Komponente verwendet das Layer.open-Popup-Fenster von Layui. Links befinden sich die Formularinformationen und rechts der Zeichenbereich. Originaldatei mapForm.vue <Vorlage> <div Klasse="mapForm"> <div Klasse="links"> <el-form ref="form" :model="form" :rules="Regeln" label-width="160px"> <el-form-item label="Kartenname" prop="Kartenname"> <el-input v-model="form.mapName" size="mini" löschbar class="formInputClass"></el-input> </el-form-item> <el-form-item label="Kartenbeschreibung" prop="Bemerkungen"> <el-input Typ="Textbereich" v-Modell="form.remarks" Größe="mini" löschbar Klasse="formInputClass"></el-input> </el-form-item> <el-form-item label="Punktinformationen" prop="" v-if="mapList.length > 0"> <div Klasse="Karteninhalt"> <div v-for="(map,key) in mapList" :key="key"> <div class="pointAbscissaOrdinate"><span>Punktkoordinaten {{key+1}}: {{map.abscissa}}-{{map.ordinate}}</span></div> <el-select v-model="mapList[key]['point']" Platzhalter="Bitte auswählen" class="selectClass" @change="changePoint"> <el-option v-for="(Element, Schlüssel) in Punktliste" :Schlüssel="Schlüssel" :label="Element.Name" :Wert="Element.Punkt"> </el-Option> </el-Auswahl> </div> </div> </el-form-item> <div Klasse="btn"> <el-button @click="checkParams" type="primary">Senden</el-button> </div> </el-form> </div> <div Klasse="rechts" id=""> <div Klasse="imgDiv" id="imgDiv" v-loading="loadStage"> <img :src="fileSrc" width="1100" height="720" id="imgPainter" /> <div Klasse="Marker" v-for="(Element, Schlüssel) in MapList" :Schlüssel="Schlüssel" :style="{top: Element.ordinate+'px', 'left': Element.abscissa+'px'}" @contextmenu.prevent="clearMarker(Schlüssel)"> {{key+1}} <div Klasse="ponint">{{Artikel.Punkt}}</div> </div> </div> <div Klasse="uploadBtn"> <el-upload class="upload-demo" ref="upload" action="" :on-change="handleChange" :show-file-list="false" :on-remove="handleRemove" :auto-upload="false" style="display:inline-block;"> <el-button slot="trigger" size="mini" type="primary">Datei auswählen</el-button> </el-upload> <el-button @click="clearPic" type="danger">Alle Punkte löschen</el-button> </div> <div class="info"><i class="el-icon-info"></i>Anzeigegröße ist 1100px*720px</div> <div class="info"><i class="el-icon-info"></i>Linke Maustaste mit Interpunktion im Bilderrahmen</div> <div class="info"><i class="el-icon-info"></i>Klicken Sie mit der rechten Maustaste auf den markierten Punkt im Bilderrahmen, um den Punkt zu löschen</div> </div> </div> </Vorlage> <Skript> Standard exportieren { Name: 'mapFormComponent', Daten() { zurückkehren { bilden: { Kartenname: "", }, Regeln: Kartenname: [ { erforderlich: true, Nachricht: "Bitte geben Sie einen Kartennamen ein", Auslöser: "unscharf" }, ], }, Dateiliste: [], Dateiquelle: '', Punktliste: [ { Name: "Entladeanschluss 1", Punkt: "@FQ01" }, { Name: "Entladeanschluss 2", Punkt: "@FQ02" }, ], mapList: [], //Array von Zebrastreifen canBiaoZhu: true, //Kann es markiert werden pointColor: 'red', //Punktfarbe pointSize: 20, //Punktgröße pointSelectList: {}, Benachrichtigungs-ID: {}, loadStage: falsch, }; }, erstellt() { }, montiert() { //Zeichenbereich-Ereignisbindung let _this = this; wenn (document.getElementById('imgPainter')) { document.getElementById('imgPainter').onmousedown = (e) => { e = e || Fenster.Ereignis if (e.button !== 2) { //Beurteilen, ob mit der rechten Maustaste geklickt werden soll if (this.canBiaoZhu && this.fileSrc != '') { //Beurteilen, ob Bilder markiert und hochgeladen werden können var x = e.offsetX || e.layerX var y = e.offsetY || e.layerY diese.mapList.push({ ID: this.mapList.length + 1, Name: '', Abszisse: x, Koordinate: y, }) // Variablen festlegen // this.pointSelectList.$set(0); let key = „Punkt“; _this.$set(this.mapList[this.mapList.length - 1], Schlüssel, "") } anders { //Aufforderung zum Hochladen eines Bildes// Nur einmal anzeigen, wenn (_this.notifyId.id) _this.notifyId.schließen(); diese.notifyId = _this.$notify.error({ Titel: 'Schnelle Information', Meldung: „Bitte laden Sie zuerst das Bild hoch und fügen Sie dann Satzzeichen hinzu“, showClose: wahr, }); } } anders { return false } } } // Rechtsklick, um zu verhindern var oDiv1 = document.getElementById('imgDiv'); oDiv1.oncontextmenu = Funktion (ev) { var e = e || Fenster.Ereignis; //Blasenbildung verhindern e.cancelBubble = true; //Auslösen des Standardereignisses verhindern e.returnValue = false; } }, Methoden: { Änderungspunkt() { /**Punktänderung */ dies.$forceUpdate(); }, Markierung löschen(index) { /**Markierung löschen */ diese.mapList.splice(index, 1); }, handleChange(Datei, Dateiliste) { dies.loadStage = wahr; let fileName = Dateiname; lass regex = /(.jpg|.jpeg|.gif|.png|.bmp)$/; wenn (regex.test(Dateiname.toLowerCase())) { this.fileSrc = URL.createObjectURL(file.raw) // URL abrufen Konsole.log(diese.fileSrc); } anders { this.$message.error('Bitte wählen Sie die Bilddatei aus'); } dies.loadStage = falsch; }, Bild löschen() { /**Bild löschen*/ diese.mapList = []; }, checkParams() { /*** * Übermittlungsinformationen überprüfen */ dies.$refs["form"].validate((valid) => { if (gültig) { lass Parameter = diese.Form; dies.submit(params); } }); }, asynchrones Senden (Parameter) { /**einreichen*/ let resp = warte darauf.$api.companyApiList .addEditCompany(Parameter); wenn (bzw.Datencode != "Fehler") { // Bestimmen Sie, ob this.$notify.success({ hinzugefügt oder geändert werden soll. Titel: "Tipps", Nachricht: resp.data.msg, showClose: wahr, }); let type = params.id && params.id != '' ? 'Bearbeiten' : 'Hinzufügen'; dies.$emit("update", Typ); // Formulardaten löschen this.$refs.form.resetFields(); } }, }, }; </Skript> <style scoped lang="weniger"> /** Formularstil*/ .mapForm { Anzeige: Flex; Polsterung: 10px; Rand: 1px durchgehend rosa; .links { Flexibilität: 2; Rahmen rechts: 1px gestrichelt rosa; Rand rechts: 4px; .mapContent { Höhe: 700px; Überlauf-y: automatisch; .Klasse auswählen { Rand: 0px 5px; } .PunktAbzisseOrdinate { Anzeige: Inline-Block; Breite: 140px; } } } .Rechts { Flexibilität: 8; // Rand: 1px durchgehend rosa; maximale Breite: 1100px; .imgDiv { Position: relativ; Höhe: 720px; Rand: 2px, durchgehendes Kornblumenblau; .marker { Position: absolut; Randradius: 50 %; Z-Index: 999; Breite: 20px; Höhe: 20px; Hintergrundfarbe: rot; Textausrichtung: zentriert; Zeilenhöhe: 20px; Farbe: gelb; .punkt { Anzeige: Block; Position: absolut; links: 20px; oben: 0px; Schriftgröße: 12px; Farbe: blau; } } .marker:hover .punkt { Anzeige: Block; } } .die Info { Schriftgröße: 12px; } .uploadBtn { Rand: 10px 0px; } } .btn { Polsterung links: 160px; } } .formInputClass { Breite: 200px; } </Stil> Die Auswirkungen der Zeichensetzung sind wie folgt: Dies ist das Ende dieses Artikels über das Markieren von Koordinatenpunkten durch Element-UI nach dem Hochladen von Bildern. Weitere relevante Inhalte zum Hochladen von Bildern durch Element-UI 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:
|
<<: Beispiel zum Ändern der inländischen Quelle in Ubuntu 18.04
>>: So importieren Sie chinesische Daten in Navicat für SQLite in CSV
Inhaltsverzeichnis Vorwort 【Protokoll rückgängig ...
Mit der Entwicklung der Internettechnologie werde...
Ergebnisse erzielen html <h2>CSS3-Zeitleist...
Hintergrundanforderungen: Mit zunehmender Größe d...
Beim Erstellen einer Webseite verwenden Sie manchm...
Beim Erstellen von Webseiten verwenden wir häufig ...
Inhaltsverzeichnis Die Groß-/Kleinschreibung von ...
Zwei Beispiele für die Verwendung des „a“-Tags in...
Nachdem das Image erfolgreich erstellt wurde, kan...
1. Holen Sie sich das MySQL-Image Docker-Pull MyS...
Dies ist ein Artikel über die Benutzerfreundlichk...
1. Einen Benutzer anlegen: Befehl: CREATE USER ...
Wie lässt sich feststellen, worauf dies hinweist?...
Ich habe erst vor ein paar Tagen mit der Arbeit b...
Inhaltsverzeichnis 1. Routennavigation 2. API zur...