WeChat-Applet-Picker - Mehrspalten-Selektor (Modus = MultiSelector)

WeChat-Applet-Picker - Mehrspalten-Selektor (Modus = MultiSelector)

vue-next-admin, basierend auf vue3.x + CompositionAPI + typescript + vite + element plus + vue-router-next + next.vuex, ist eine kostenlose Open-Source-Vorlagenbibliothek für Mobiltelefone, Tablets und PCs

1. Wirkungsdiagramm (mehrere Spalten)

Bildbeschreibung hier einfügen

2. Normaler Selektor: Modus = Selektor, Mehrspaltenselektor: Modus = MultiSelector

Dokumentadresse: WeChat-Entwicklungsdokument- picker選擇器

  • Normaler Selektor: Modus = Selektor,一維數組:array: ['美國', '中國', '巴西', '日本']
  • Mehrspaltiger Selektor: Modus = multiSelector,二維數組:multiArray: [['無脊柱動物', '脊柱動物'], ['扁性動物', '線形動物', '環節動物', '軟體動物', '節肢動物'], ['豬肉絳蟲', '吸血蟲']]

Das Format ist falsch und muss in das entsprechende Array-Format verarbeitet werden. Das Folgende ist ein Pit-Diagramm:

Bildbeschreibung hier einfügen

3. app.json

{
  "Seiten": [
    "Seiten/Index/Index",
    "Seiten/Protokolle/Protokolle",
    "Seiten/Auswahl/Auswahl"
  ],
  "entryPagePath": "Seiten/Auswahl/Auswahl",
  "Fenster": {
    "backgroundTextStyle": "hell",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "Weixin",
    "navigationBarTextStyle": "schwarz"
  },
  "sitemapLocation": "sitemap.json",
  "Komponenten verwenden": {
    "van-button": "@vant/weapp/button/index",
    "van-Bereich": ​​"@vant/weapp/Bereich/index"
  }
}

4. picker.wxml

<!--pages/picker/picker.wxml-->
<Ansicht>
  <view class="section__title">Mehrspaltenselektor</view>
  <picker mode="MultiSelector" bindchange="BindeMultiPickerChange" bindcolumnchange="BindeMultiPickerColumnChange"
    Wert="{{multiIndex}}" Bereich="{{newArr}}">
    <Klasse anzeigen="picker">
      Aktuelle Auswahl: <van-button type="primary">
        {{newArr[0][multiIndex[0]]}}, {{newArr[1][multiIndex[1]]}}, {{newArr[2][multiIndex[2]]}}</van-button>
    </Ansicht>
  </picker>
</Ansicht>

5. picker.js

多列選擇器:mode = multiSelector

Achten Sie auf das Array-Format: multiArray數組hat children , um ein zweidimensionales Array zu verarbeiten:

// Seiten/Picker/Picker.js
Seite({
  /**
   * Ausgangsdaten der Seite */
  Daten: {
    MultiArray: [{
        ID: 1,
        Bezeichnung: "Südosten",
        Kinder: [{
            ID: 2,
            Etikett: "Shanghai",
            Kinder: [{
                ID: 3,
                Bezeichnung: "Putuo",
              },
              {
                ID: 4,
                Etikett: "Huangpu",
              },
              {
                ID: 5,
                Beschriftung: "Xuhui",
              },
            ],
          },
          {
            Ich würde: 7,
            Etikett: "Jiangsu",
            Kinder: [{
                ID: 8,
                Etikett: "Nanjing",
              },
              {
                ID: 9,
                Etikett: "Suzhou",
              },
              {
                ID: 10,
                Bezeichnung: "Wuxi",
              },
            ],
          },
          {
            Ich würde: 12,
            Etikett: "Zhejiang",
            Kinder: [{
                Ich würde: 13,
                Etikett: "Hangzhou",
              },
              {
                Ich würde: 14,
                Etikett: "Ningbo",
              },
              {
                Ich würde: 15,
                Bezeichnung: "Jiaxing",
              },
            ],
          },
        ],
      },
      {
        Ich würde: 17,
        Bezeichnung: "Nordwesten",
        Kinder: [{
            Ich würde: 18,
            Bezeichnung: "Shaanxi",
            Kinder: [{
                Ich würde: 19,
                Beschriftung: "Xi'an",
              },
              {
                Ich würde: 20,
                Bezeichnung: "Yan'an",
              },
            ],
          },
          {
            Ich würde: 21,
            Beschriftung: „Autonome Region Xinjiang der Uiguren“,
            Kinder: [{
                Ich würde: 22,
                Beschriftung: "Urumqi",
              },
              {
                Ich würde: 23,
                Bezeichnung: "Karamay",
              },
            ],
          },
        ],
      },
    ],
    multiIndex: [0, 0, 0],
    mehrere IDs: [],
    neuerArr: [],
  },

  bindMultiPickerChange(e) {
    Konsole.log(diese.Daten.multiIds);
  },
  bindMultiPickerColumnChange(e) {
    lass Daten = {
      newArr: diese.Daten.newArr,
      multiIndex: diese.Daten.multiIndex,
      multiIds: diese.Daten.multiIds,
    };
    Daten.multiIndex[e.detail.Spalte] = e.detail.Wert;

    let Suchspalte = () => {
      sei arr1 = [];
      sei arr2 = [];
      diese.Daten.multiArray.map((v, vk) => {
        wenn (data.multiIndex[0] === vk) {
          Daten.multiIds[0] = {
            ...v,
          };
          v.children.map((c, ck) => {
            arr1.push(c.label);
            wenn (data.multiIndex[1] === ck) {
              Daten.multiIds[1] = {
                ...C,
              };
              c.children.map((t, vt) => {
                arr2.push(t.label);
                wenn (data.multiIndex[2] === vt) {
                  Daten.multiIds[2] = {
                    ...T,
                  };
                }
              });
            }
          });
        }
      });
      data.newArr[1] = arr1;
      data.newArr[2] = arr2;
    };
    Schalter (e.detail.spalte) {
      Fall 0:
        // Bei jedem Wechsel den Anfangswert wiederherstellen data.multiIndex[1] = 0;
        Daten.multiIndex[2] = 0;
        //Funktionsverarbeitung ausführen searchColumn();
        brechen;
      Fall 1:
        Daten.multiIndex[2] = 0;
        Suchspalte();
        brechen;
    }
    dies.setData(Daten);
  },

  /**
   * Lebenszyklusfunktion - auf Seitenladen warten*/
  onLoad: Funktion (Optionen) {
    lass Zustand = {
      arr: [],
      arr1: [],
      arr2: [],
      arr3: [],
      mehrere IDs: []
    }
    diese.Daten.multiArray.map((v, vk) => {
      Zustand.arr1.push(v.label);
      wenn (diese.Daten.multiIndex[0] === vk) {
        Zustand.multiIds[0] = v;
      }
      wenn (Zustand.arr2.Länge <= 0) {
        v.children.map((c, ck) => {
          Zustand.arr2.push(c.label);
          wenn (this.data.multiIndex[1] === ck) {
            Zustand.multiIds[1] = c;
          }
          wenn (state.arr3.length <= 0) {
            c.children.map((t, tk) => {
              Zustand.arr3.push(t.label);
              wenn (diese.data.multiIndex[2] === tk) {
                Zustand.multiIds[2] = t;
              }
            });
          }
        });
      }
    });
    Zustand.arr[0] = Zustand.arr1;
    Zustand.arr[1] = Zustand.arr2;
    Zustand.arr[2] = Zustand.arr3;
    dies.setData({
      newArr: status.arr,
      multiIds: Status.multiIds,
    });
  },

  /**
   * Lebenszyklusfunktion - wartet auf den Abschluss der ersten Darstellung der Seite*/
  onReady: Funktion () {},

  /**
   * Lebenszyklusfunktion - Seitenanzeige überwachen*/
  onShow: Funktion () {},

  /**
   * Lebenszyklusfunktion - Achten Sie auf das Ausblenden von Seiten */
  onHide: Funktion () {},

  /**
   * Lebenszyklusfunktion - Deinstallation der Seite überwachen*/
  beim Entladen: Funktion () {},

  /**
   * Seitenbezogene Ereignisverarbeitungsfunktion - Achten Sie auf die Pulldown-Aktion des Benutzers */
  onPullDownRefresh: Funktion () {},

  /**
   * Die Funktion, die das Bottoming-Ereignis auf der Seite behandelt*/
  onReachBottom: Funktion () {},

  /**
   * Der Benutzer klickt auf die obere rechte Ecke, um zu teilen*/
  onShareAppMessage: Funktion () {},
});

Dies ist das Ende dieses Artikels über den WeChat-Miniprogramm-Picker mit mehrspaltigem Selektor (Modus = MultiSelector). Weitere relevante Inhalte zum Miniprogramm-Picker mit mehrspaltigem Selektor 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:
  • Das WeChat-Applet implementiert benutzerdefinierte Picker-Selector-Popup-Inhalte
  • WeChat-Applet-Picker - Datums- und Uhrzeitauswahl

<<:  Warum wird in MySQL keine UTF-8-Kodierung verwendet?

>>:  Linux-Installationsschritte für Jenkins und verschiedene Problemlösungen (Seitenzugriffsinitialisierungskennwort)

Artikel empfehlen

Lösung für die horizontale Bildlaufleiste im Iframe unter IE6

Die Situation ist wie folgt: (PS: Das rote Kästche...

So verwenden Sie Typescript zum Kapseln von lokalem Speicher

Inhaltsverzeichnis Vorwort Szenarien für die Verw...

Django-Online-Bereitstellungsmethode von Apache

Umfeld: 1. Windows Server 2016 Datacenter 64-Bit ...

Eine kurze Analyse der parallelen MySQL-Replikation

01 Das Konzept der parallelen Replikation In der ...

Beispielanalyse der Verwendung des neuen JSON-Feldtyps in MySQL 5.7

Dieser Artikel veranschaulicht anhand eines Beisp...

Allgemeine Array-Operationen in JavaScript

Inhaltsverzeichnis 1. verketten() 2. beitreten() ...

Erstellen eines statischen Jenkins Docker-Agentknotens

Ein statischer Knoten ist auf einer Maschine fixi...

Lernen Sie, wie Sie mit vscode eine React-Native-Entwicklungsumgebung erstellen

Frage Der Code hat keine Eingabeaufforderung: Vie...

Mehrere CSS3-Tag-Abkürzungen (empfohlen)

border-radius: CSS3 abgerundete Ecken Syntax: bor...

XHTML 1.0-Referenz

Nach Funktion sortierenNN: Gibt an, welche frühere...

Zusammenfassung der @-Verwendung in CSS (mit Beispielen und Erklärungen)

Eine At-Regel ist eine Deklaration, die Anweisung...