Vor Kurzem musste ich einen kaskadierenden Auswahleffekt für Provinzen, Städte und Bezirke implementieren. Die Daten für Provinzen, Städte und Bezirke verwenden alle lokale Daten und die Logik für die Implementierung ist etwas kompliziert. Ich werde hier die Zusammenfassung der PC-Seite auflisten, um sie zu teilen. Der Code für die mobile Seite ist ähnlich. Mit Ausnahme von HTML kann der Rest kopiert und nach Bedarf verwendet werden. Ich hoffe, das hilft Ihnen allen. 1. RendernBild der PC-Nebenwirkungen: Diagramm der Auswirkungen mobiler Endgeräte: 2. ImplementierungslogikMeine Implementierungslogik besteht hier darin, zuerst die Stadt über die Provinz und dann den Bezirk und den Landkreis über die Stadt zu erhalten. Da die Straße nicht festgelegt ist, kann der Benutzer sie selbst eingeben. Die Logik zum Abrufen des entsprechenden Stadtgebiets lautet: Jede Provinz, Stadt, jeder Bezirk und jeder Landkreis hat einen eindeutigen Code, und die ersten beiden Ziffern des Provinzcodes sind dieselben wie die Stadt, sodass die Stadt durch Abfangen herausgefiltert werden kann, und die ersten vier Ziffern des Stadtcodes sind dieselben wie die des Bezirks und des Landkreises, sodass Bezirk und Landkreis auch durch Abfangen herausgefiltert werden können. Da ich zur Implementierung der PC-Seite die Auswahlkomponente des Element-UI-Frameworks verwendet habe, sieht die Datenstruktur der Provinzen, Städte und Bezirke wie folgt aus: Das mobile Terminal wird mithilfe der Van-Picker-Komponente des Vant-Frameworks implementiert. Die Datenstruktur unterscheidet sich von der des PC-Terminals. Daher ist die Datenstruktur von Provinzen, Städten und Bezirken wie folgt: 3. Zugehöriger Code<!--PC-Code--> <el-form :inline="true" :model="AdressFormular"> <el-form-item label="Provinz" label-width="100px" prop="Provinz"> <el-select v-model="addressForm.province" placeholder="Bitte auswählen" style="width:250px" @change="bindProvinceChange"> <!-- :value="item.value+'|'+item.label" Wenn Sie sowohl die Nummer als auch den Provinznamen erhalten möchten, kann die Wertzuweisung wie folgt geschrieben und dann mit | abgeschnitten werden. Wenn Sie nicht beide benötigen, weisen Sie nur einen zu. --> <el-option v-for="Artikel in Provinzliste" :label="Artikel.label" :value="Artikel.value+'|'+Artikel.label"></el-option> </el-Auswahl> </el-form-item> <br /> <el-form-item label="Stadt" label-width="100px" prop="Stadt"> <el-select v-model="addressForm.city" placeholder="Bitte auswählen" style="width:250px" @change="bindCityChange"> <el-option v-for="Artikel in Stadtliste" :label="Artikel.label" :value="Artikel.value+'|'+Artikel.label"></el-option> </el-Auswahl> </el-form-item> <el-form-item label="Bezirk/Landkreis" label-width="100px" prop="Landkreis"> <el-select v-model="addressForm.county" placeholder="Bitte auswählen" style="width:250px" @change="bindCountyChange"> <el-option v-for="Artikel in CountyList" :label="Artikel.label" :value="Artikel.value+'|'+Artikel.label"></el-option> </el-Auswahl> </el-form-item> <el-form-item label="Straße/Ort" label-width="100px" prop="Straße"> <el-input type="textarea" :rows="3" resize="none" placeholder="Bitte geben Sie die Straßeninformationen ein" v-model="addressForm.street" Stil="Breite:250px"> </el-Eingabe> </el-form-item> </el-form> Der Code in diesem Abschnitt ist grundsätzlich derselbe. Der einzige Unterschied besteht darin, dass das Onchange-Ereignis auf dem mobilen Endgerät die eindeutige Nummer direkt abrufen kann und es nicht wie auf der PC-Seite erforderlich ist, sie auszuschneiden. Sie können sie nach Ihren Bedürfnissen ändern. var app = new Vue({ el: '#app', Daten: { Adressformular: { Provinz: '', Stadt: '', Landkreis: '', Straße: '' }, // Die Daten der Provinzen, Städte und Bezirke werden in einer anderen Datei abgelegt. Ich importiere die Provinzliste direkt aus einer anderen Datei: areaList.provinceList, Stadtliste: [], Landkreisliste: [] }, Methoden:{ // Provinz bindProvinceChange(vals) { // Holen Sie sich die eindeutige Nummer, die der Provinz entspricht console.log('data========>', vals) lass arr = vals.split('|') diese.addressForm.province = arr[1] diese.AdressForm.Stadt = ''; diese.AdressForm.Landkreis = ''; diese.AdressForm.Straße = ''; // Holen Sie sich die entsprechende Stadt this.cityList = this.addrInit(2, areaList.cityList, arr[0]); }, // Stadt bindCityChange(vals) { console.log('Werte------->', Werte) diese.AdressForm.Landkreis = ''; diese.AdressForm.Straße = ''; lass arr = vals.split('|') diese.addressForm.city = arr[1] // Den entsprechenden Bezirk und Landkreis abrufen this.countyList = this.addrInit(4, areaList.countyList, arr[0]); }, //Bezirk und Landkreis bindCountyChange(vals) { Konsole.log('Werte------======>', Werte) diese.AdressForm.Straße = ''; lass arr = vals.split('|') diese.addressForm.county = arr[1] }, // Konvertiere das Objekt in ein Array transArray(obj) { sei arr = []; für (lass i in obj) { arr.push(Objekt[i]); } Rückflug an; }, /** * Kapselungsmethode – Holen Sie sich die entsprechende Provinz, Stadt und den Bezirk* @param {number} num Die Anzahl der abzufangenden Ziffern* @param {*} list Das abzufragende Array* @param {*} str Der abzufangende String* @returns */ addrInit(Zahl, Liste, Zeichenkette) { Lassen Sie strSub = str.substr(0, num); lass arr = this.transArray(Liste); lass newArr = arr.filter(Funktion (Wert, Index, arr) { Lassen Sie newStr = val.value.substr(0, num); gibt newStr == strSub zurück; }); gib neuesArr zurück; }, } }) Ich hoffe, das hilft Ihnen allen! ! Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Fassen Sie die häufigsten Anwendungsprobleme von XHTML-Code zusammen
>>: Docker+Nextcloud zum Erstellen eines persönlichen Cloud-Speichersystems
Inhaltsverzeichnis 1. Übersicht 1. Grundsatz 2. U...
Wir hoffen, dass dieser Artikel durch eine verglei...
Inhaltsverzeichnis Zusammenfassen <Vorlage>...
Ich habe einige Qt-Schnittstellenprogramme geschr...
Vorwort Fixieren Sie den Fußzeilenbereich unten. ...
Beim Entwickeln einer Website müssen Sie häufig e...
Heute gibt es eine solche Anforderung. Wenn die a...
Inhaltsverzeichnis 1. Hintergrund: 2. Gestaltungs...
Inhaltsverzeichnis Warum Docker verwenden? Docker...
Dieser Artikel dient zur Aufzeichnung der Install...
1. Knoten löschen Führen Sie kubectl delete node ...
MySQL verfügt über nicht standardmäßige Datentype...
Einführung in vier häufig verwendete MySQL-Engine...
In diesem Artikel wird der spezifische Code von J...
Dieser Artikel stellt hauptsächlich vor, wie pagi...