In diesem Artikel wird der spezifische Code zur Implementierung benutzerdefinierter mehrstufiger Einzelauswahl- und Mehrfachauswahlfunktionen in einem Miniprogramm zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt Wirkung: ps: Hier ist eine benutzerdefinierte Dropdown-Box, die ich in eine Komponente eingekapselt habe wxml <Klasse anzeigen="Auswahlfeld"> <Ansichtsklasse="Titel auswählen"> <Ansichtsklasse="Zellenrand"> <van-field value="{{ layout }}" data-key="layout" placeholder="Bitte eingeben" required icon="arrow" label="Haustyp" bind:tap="onChange" /> </Ansicht> </Ansicht> <Ansichtsklasse="Auswahlliste" wx:if="{{anzeigen}}"> <Ansichtsklasse="Option" wx:für="{{layouts}}" wx:Schlüssel="index"> <Ansichtsklasse="{{curItem.checked ? 'option-item-active' : 'option-item'}}" wx:für="{{item.column}}" wx:key="index" wx:for-item="aktuellesItem" Datenschlüssel="{{curItem.key}}" Daten-colkey="{{item.colKey}}" Datenname = "{{curItem.name}}" binden:tap="getOptionItem"> {{curItem.name}} </Ansicht> </Ansicht> </Ansicht> </Ansicht> wxss .Auswahlfeld{ Breite: 100 %; Polsterung: 20rpx; Box-Größe: Rahmenbox; } .Zellenrand { Rahmenradius: 6rpx; Rand: 1px durchgezogen #999; Rand unten: 10rpx; } .Auswahlliste{ Anzeige: Flex; Flex-Richtung: Reihe; Inhalt ausrichten: Abstand herum; Breite: 100 %; Höhe: 360rpx; Polsterung: 20rpx; Box-Größe: Rahmenbox; Hintergrundfarbe: #fff; Rand: 1px durchgezogen #eee; } .Auswahlliste .Option{ Anzeige: Flex; Flex-Richtung: Spalte; Schriftgröße: 24rpx; } .option-item{ Breite: 80rpx; Höhe: 100rpx; Hintergrundfarbe: #eee; Textausrichtung: zentriert; Rand oben: 5px; Polsterung: 2px; } .option-item-active{ Breite: 80rpx; Höhe: 100rpx; Hintergrundfarbe: #FF6600; Textausrichtung: zentriert; Rand oben: 5px; Polsterung: 2px; Farbe: #fff; } json { "Komponente": wahr, "Komponenten verwenden": { "van-field": "../../vant/Feld/Index", } } js ps:data sind die Daten der Komponente selbst, layouts sind die Datenquelle Komponente({ Eigenschaften: }, Daten:{ anzeigen:false, aktuellerSchlüssel:-1, Spaltenschlüssel: -1, Layouts:[ { Spaltenschlüssel:0, Spalte:[ {name:"Raum 1",key:0,}, {name:"Raum 2",key:1,}, {name:"Raum 3",key:2,}, {name:"Raum 4",key:3,}, {name:"Raum 5",key:4,}, {name:"Raum 6",key:5,} ] }, { colKey:1, Spalte:[ {name:"Halle 1",key:0,}, {name:"Halle 2",key:1,}, {name:"Halle 3",key:2,}, {name:"Raum 4",key:3,}, {name:"Halle 5",key:4,}, {name:"Raum 6",key:5,} ] }, { colKey:2, Spalte:[ {name:"1 Küche",key:0,}, {name:"2 Chef",key:1,}, {name:"3 chef",key:2,}, {name:"4 chef",key:3,}, {name:"5 chef",key:4,}, {name:"6 Chef",key:5,}] }, { colKey:3, Spalte:[ {name:"1 Wache",Schlüssel:0,}, {name:"2 Wache",Schlüssel:1,}, {name:"3. Wache",Schlüssel:2,}, {name:"4 Wache",Schlüssel:3,}, {name:"5 Wache",Schlüssel:4,}, {name:"6 Wache",Schlüssel:5,} ] }, { colKey:4, Spalte:[ {name:"1 Balkon",key:0,}, {name:"2 Balkon",key:1,}, {name:"3 Balkon",key:2,}, {name:"4 Balkon",key:3,}, {name:"5 Balkon",key:4,}, {name:"6 Balkon",key:5,} ] } ] }, Methoden:{ beiÄnderung(){ const {show} = diese.Daten; dies.setData({ anzeigen:!anzeigen }) }, getOptionItem(Ereignis){ console.log("Ereignis",Ereignis) const key = event.currentTarget.dataset.key; const cK = event.currentTarget.dataset.colkey; const {curKey,colKey,layouts} = diese.Daten; dies.setData({ aktuellerSchlüssel:Schlüssel, colKey:cK }) //Verwenden Sie das aktivierte Feld, um eine Einzelauswahl zwischen Spalten und eine Mehrfachauswahl zwischen Zeilen zu ermöglichen layouts[cK].column.map(cur => { gibt cur.checked = false zurück; }) layouts[cK].column[key].checked = true; dies.setData({layouts}) } } }) 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:
|
Erstens: Stellen Sie zunächst sicher, dass die Ser...
Code kopieren Der Code lautet wie folgt: <!DOC...
Der Weg vor uns ist lang und beschwerlich, aber i...
Kürzlich habe ich auf einem öffentlichen Konto ei...
Tatsächlich ist XHTML 1.0 in zwei Typen unterteil...
Inhaltsverzeichnis Vorwort Einführung in QueryCac...
In MySQL liest die Funktion LOAD_FILE() eine Date...
MySQL 8.0.12 Download- und Installations-Tutorial...
Ich habe Node auf dem Laufwerk D installiert und ...
Ich habe vor Kurzem jemandem bei einem Projekt ge...
Vorwort In diesem Artikel wird der Vorgang zum He...
HTML implementiert ein 2-spaltiges Layout mit fes...
In tatsächlichen Projekten gibt es Beziehungen zw...
Name Geben Sie einen Namen für das Tag an. Format...
Dieses Mal verwenden wir HTML+CSS-Layout, um eine...