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

So ändern Sie den Standardzeichensatz von MySQL auf dem MAC auf UTF-8

1. Überprüfen Sie den Zeichensatz des standardmäß...

Beheben Sie den abnormalen Fehler beim Erstellen einer Vue-Umgebung mit Webpack

Inhaltsverzeichnis Konfigurieren Sie zuerst packa...

MySQL Online-Übung zur Deadlock-Analyse

Vorwort Ich glaube, dass jeder beim Erlernen von ...

Concat() von kombinierten Feldern in MySQL

Inhaltsverzeichnis 1. Einleitung 2. Haupttext 2.1...

Daten in der Layui-Tabellenzeile dynamisch bearbeiten

Inhaltsverzeichnis Vorwort Stil Funktion Beschrei...

Detaillierter Prozessbericht der Nginx-Installation und -Konfiguration

Inhaltsverzeichnis 1 Einführung in nginx 1 Was is...

Referenz zur Webseitenerstellung im IE6 - Standardstil im IE6

Dies ist eigentlich kein offizielles Dokument des ...

Das Phänomen des Margin-Top-Collapses und die spezifische Lösung

Was ist ein Margin-Top-Collaps? Der Margin-Top-Co...