Heim  >  Artikel  >  Web-Frontend  >  So implementieren Sie die Provinz- und Stadtauswahlfunktion in Uniapp

So implementieren Sie die Provinz- und Stadtauswahlfunktion in Uniapp

王林
王林Original
2023-07-04 09:09:095773Durchsuche

uni-app ist ein plattformübergreifendes Entwicklungsframework, das auf Vue.js basiert. Während der Entwicklung müssen wir häufig die Funktion zur Auswahl von Provinzen und Städten implementieren. In diesem Artikel wird erläutert, wie einige Komponenten und Plug-Ins der Uni-App verwendet werden, um die Funktion zur Auswahl von Provinzen und Städten zu realisieren.

Zuerst müssen wir eine Datenquelle für Provinzen und Städte vorbereiten. Häufig verwendete Datenquellen können JSON-Dateien sein oder von Backend-APIs bezogen werden. Hier demonstrieren wir es in Form einer JSON-Datei.

  1. JSON-Datei erstellen
    Wir erstellen eine data.json-Datei zum Speichern von Provinz- und Stadtdaten. Der Inhalt ist wie folgt:
{
  "provinceList": [
    {
      "name": "北京市",
      "cityList": [
        {
          "name": "北京市",
          "districtList": ["东城区", "西城区", "朝阳区", "丰台区", "石景山区", "海淀区", "门头沟区", "房山区", "通州区", "顺义区", "昌平区", "大兴区", "怀柔区", "平谷区", "密云区", "延庆区"]
        }
      ]
    },
    {
      "name": "上海市",
      "cityList": [
        {
          "name": "上海市",
          "districtList": ["黄浦区", "徐汇区", "长宁区", "静安区", "普陀区", "虹口区", "杨浦区", "闵行区", "宝山区", "嘉定区", "浦东新区", "金山区", "松江区", "青浦区", "奉贤区", "崇明区"]
        }
      ]
    },
    {
      "name": "广东省",
      "cityList": [
        {
          "name": "广州市",
          "districtList": ["荔湾区", "越秀区", "海珠区", "天河区", "白云区", "黄埔区", "番禺区", "花都区", "南沙区", "增城区", "从化区"]
        },
        {
          "name": "深圳市",
          "districtList": ["罗湖区", "福田区", "南山区", "宝安区", "龙岗区", "盐田区", "龙华区", "坪山区", "光明区", "大鹏新区"]
        }
      ]
    }
  ]
}
  1. Seitenstruktur
    Wir erstellen ein Provinz- und Stadtauswahlformular auf der Seite, der Code lautet wie folgt:
<template>
  <view>
    <form>
      <picker mode="selector" range="{{ province }}" bind:change="onProvinceChange">
        <view class="picker">
          {{ province[index1] }}
          <text class="iconfont icon-down"></text>
        </view>
      </picker>
      <picker mode="selector" range="{{ city }}" bind:change="onCityChange">
        <view class="picker">
          {{ city[index2] }}
          <text class="iconfont icon-down"></text>
        </view>
      </picker>
      <picker mode="selector" range="{{ district }}" bind:change="onDistrictChange">
        <view class="picker">
          {{ district[index3] }}
          <text class="iconfont icon-down"></text>
        </view>
      </picker>
    </form>
  </view>
</template>
  1. Seitenlogik
    Wir implementieren das Lesen von Provinz- und Stadtdaten in Die JS-Datei der Seite und die Auswahllogik, der Code lautet wie folgt:
<script>
  export default {
    data() {
      return {
        province: [],
        city: [],
        district: [],
        index1: 0,
        index2: 0,
        index3: 0
      }
    },
    methods: {
      onProvinceChange(e) {
        const index = e.detail.value;
        this.setData({
          province: this.data.provinceList.map(item => item.name),
          city: this.data.provinceList[index].cityList.map(item => item.name),
          district: this.data.provinceList[index].cityList[0].districtList,
          index1: index,
          index2: 0,
          index3: 0
        });
      },
      onCityChange(e) {
        const index = e.detail.value;
        this.setData({
          district: this.data.provinceList[this.data.index1].cityList[index].districtList,
          index2: index,
          index3: 0
        });
      },
      onDistrictChange(e) {
        const index = e.detail.value;
        this.setData({
          index3: index
        });
      }
    },
    created() {
      wx.request({
        url: '/data.json',
        success: res => {
          const { provinceList } = res.data;
          this.setData({
            province: provinceList.map(item => item.name),
            city: provinceList[0].cityList.map(item => item.name),
            district: provinceList[0].cityList[0].districtList
          });
        }
      });
    }
  }
</script>

Das Obige ist der Beispielcode für die Implementierung der Provinz- und Stadtauswahlfunktion über Uni-App. Mithilfe der Auswahlkomponente der Uni-App können wir die Stadt- und Bezirksoptionen basierend auf der ausgewählten Provinz dynamisch aktualisieren. Verwenden Sie wx.request, um die Datenquelle in der JS-Datei der Seite anzufordern und dann die Stadt- und Bezirksoptionen basierend auf der ausgewählten Provinz dynamisch zu aktualisieren.

Ich hoffe, dieses Beispiel kann Ihnen bei der Implementierung der Funktion zur Auswahl von Provinzen und Städten in der Uni-App helfen. Natürlich müssen Sie in der tatsächlichen Entwicklung möglicherweise Änderungen und Optimierungen entsprechend Ihren eigenen Anforderungen vornehmen. Ich hoffe, dieser Artikel kann Ihnen einige Ideen und Hilfestellung geben.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Provinz- und Stadtauswahlfunktion in Uniapp. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn