Mini-Programm implementiert benutzerdefinierte mehrstufige Einzelauswahl und Mehrfachauswahl

Mini-Programm implementiert benutzerdefinierte mehrstufige Einzelauswahl und Mehrfachauswahl

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:
  • Benutzerdefinierte Zuweisung von Optionsfeldern für WeChat-Applets
  • So implementieren Sie das Aktivieren und Abbrechen von Radio-Kontrollkästchen im WeChat-Applet
  • Anwendungsbeispiele für die Einfachauswahl-Optionsschaltflächen und Mehrfachauswahl-Kontrollkästchenschaltflächen im WeChat-Applet
  • Das WeChat-Applet realisiert den Effekt des Umschaltens zwischen Einzelauswahl-Registerkarten
  • Miniprogramm implementiert Einzelauswahl- und Mehrfachauswahlfunktionen
  • Das WeChat-Applet implementiert die Einzelauswahlfunktion
  • WeChat-Applet verwendet Radio, um eine einzelne Optionsfunktion anzuzeigen [mit Quellcode-Download]
  • Detaillierte Erklärung und Beispielcode der Radio-Checkbox-Komponente des WeChat-Applets

<<:  Detaillierte Erklärung des Problems mit verstümmelten chinesischen Schriftzeichen in der MySQL-Datenbank

>>:  Lösung für das Problem, dass die virtuelle Maschine Ubuntu 16.04 keine Verbindung zum Internet herstellen kann

Artikel empfehlen

Eine audiovisuelle Linux-Distribution, die Audiophile anspricht

Ich bin kürzlich auf das Audiovisual Linux Projec...

Lösung für das Problem des Speicherns des Formats in HTML TextArea

Das Format des Textbereichs kann beim Speichern in...

Detaillierte Erklärung der Meta-Tags und ihrer Verwendung in HTML

Ich werde keine weitere Zeit mit Unsinnsgerede ve...

Lösung zum Vergessen des MySQL-Passworts unter Linux

Das Problem ist folgendes: Ich habe den Befehl my...

Detaillierte Verwendung des JS-Arrays für jede Instanz

1. forEach() ist ähnlich wie map(). Es wendet ebe...

So löschen Sie schwebenden Beispielcode in CSS

Überblick Das Rahmendiagramm dieses Artikels ist ...

Beispielcode zum Vergleich verschiedener Syntaxformate von vue3

Die Standardvorlagenmethode ähnelt vue2 und verwe...

Lösung des Konflikts zwischen Linux-Kernel- und SVN-Versionen

Phänomen Das System konnte den Linux-Systemkernel...

Gemeinsame MySQL-Indexwirksamkeitsbedingungen und Indexungültigkeitsbedingungen

Inhaltsverzeichnis 1. Bedingungen für das Versage...

Fallstudie zu JavaScript-Funktionsaufrufen, Apply- und Bind-Methoden

Zusammenfassen 1. Ähnlichkeiten Beide können den ...