欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue + elementUI實現(xiàn)省市縣三級聯(lián)動的方法示例

 更新時間:2019年10月29日 09:19:26   作者:zxc19890923  
這篇文章主要介紹了vue + elementUI實現(xiàn)省市縣三級聯(lián)動的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

本文介紹了vue + elementUI實現(xiàn)省市縣三級聯(lián)動的方法示例,分享給大家,具體如下:

 

1、首先需要準備省市縣json文件,網(wǎng)上有很多可以下載。項目中使用的city.json數(shù)據(jù)是這樣的格式:

[
 {
  "value": "110000",
  "label": "北京市",
  "children": [
   {
    "value": "110000",
    "label": "北京市",
    "children": [
     {
      "value": "110101",
      "label": "東城區(qū)"
     },
     {
      "value": "110102",
      "label": "西城區(qū)"
     },
     {
      "value": "110105",
      "label": "朝陽區(qū)"
     },
     {
      "value": "110106",
      "label": "豐臺區(qū)"
     },
     {
      "value": "110107",
      "label": "石景山區(qū)"
     },
     {
      "value": "110108",
      "label": "海淀區(qū)"
     },
     {
      "value": "110109",
      "label": "門頭溝區(qū)"
     },
     {
      "value": "110111",
      "label": "房山區(qū)"
     },
     {
      "value": "110112",
      "label": "通州區(qū)"
     },
     {
      "value": "110113",
      "label": "順義區(qū)"
     },
     {
      "value": "110114",
      "label": "昌平區(qū)"
     },
     {
      "value": "110115",
      "label": "大興區(qū)"
     },
     {
      "value": "110116",
      "label": "懷柔區(qū)"
     },
     {
      "value": "110117",
      "label": "平谷區(qū)"
     },
     {
      "value": "110118",
      "label": "密云區(qū)"
     },
     {
      "value": "110119",
      "label": "延慶區(qū)"
     }
    ]
   }
  ]
 },
 {
  "value": "120000",
  "label": "天津市",
  "children": [
   {
    "value": "120000",
    "label": "天津市",
    "children": [
     {
      "value": "120101",
      "label": "和平區(qū)"
     },
     ......

2、創(chuàng)建一個組件開始寫代碼

<template>
 <div class="linkage">
  <div>
   <el-select v-model="selectProvince" filterable size="small" @change="selectProvinceFun($event)" placeholder="請選擇省份">
    <el-option value="" label="請選擇省份"></el-option>
    <el-option :value="item" :label="item.label" v-for="(item, index) in city" :key="index"></el-option>
   </el-select>
  </div>
  <div>
   <el-select v-model="selectCity" filterable size="small" @change="selectCityFun($event)" placeholder="請選擇城市">
    <el-option value="" label="請選擇城市"></el-option>
    <el-option :value="item" :label="item.label" v-for="(item, index) in cityList" :key="index"></el-option>
   </el-select>
  </div>
  <div>
   <el-select v-model="selectArea" filterable size="small" @change="selectAreaFun($event)" placeholder="請選擇區(qū)縣">
    <el-option value="" label="請選擇區(qū)縣"></el-option>
    <el-option :value="item" :label="item.label" v-for="(item, index) in areaList" :key="index"></el-option>
   </el-select>
  </div>
 </div>
</template>
<script>
import city from '@/assets/json/city.json'
export default {
 name: 'linkage',
 data () {
  return {
   // 整個省市縣數(shù)據(jù)
   city: city,
   // 被選中的市數(shù)據(jù)
   cityList: [],
   // 被選中的縣數(shù)據(jù)
   areaList: [],
   selectProvince: {},
   selectCity: {},
   selectArea: {}
  }
 },
 mounted () {
 },
 methods: {
  // 省份 市 縣聯(lián)動
  selectProvinceFun (event) {
   console.log(event)
   if (event) {
    this.cityList = event.children
   } else {
    this.cityList = []
   }
   this.areaList = []
   this.$emit('getLawyerListInfo', [event.label, 'province'])
  },
  selectCityFun (event) {
   console.log(event)
   if (event) {
    this.areaList = event.children
   } else {
    this.areaList = []
   }
   this.$emit('getLawyerListInfo', [event.label, 'city'])
  },
  selectAreaFun (event) {
   console.log(event)
   this.$emit('getLawyerListInfo', [event.label, 'area'])
  }
 }
}
</script>
<style lang="scss" scoped>
 .linkage {
  display: flex;
  div {
   margin-right: 5px;
  }
 }
</style>

總結:整個過程很簡單,就是在選中省的時候獲取他的所有children節(jié)點數(shù)據(jù)(市)在選擇市的時候獲取她的所有children節(jié)點數(shù)據(jù)(區(qū)縣)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • vue3如何通過provide和inject實現(xiàn)多層級組件通信

    vue3如何通過provide和inject實現(xiàn)多層級組件通信

    這篇文章主要介紹了vue3如何通過provide和inject實現(xiàn)多層級組件通信,本文通過實例代碼給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-11-11
  • Vue通過echarts實現(xiàn)數(shù)據(jù)圖表化顯示

    Vue通過echarts實現(xiàn)數(shù)據(jù)圖表化顯示

    Echarts,它是一個與框架無關的 JS 圖表庫,但是它基于Js,這樣很多框架都能使用它,例如Vue,估計IONIC也能用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • 如何利用vue3實現(xiàn)一個俄羅斯方塊

    如何利用vue3實現(xiàn)一個俄羅斯方塊

    俄羅斯方塊這個游戲相信大家都玩過,下面這篇文章主要給大家介紹了關于如何利用vue3實現(xiàn)一個俄羅斯方塊的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-01-01
  • 分離vue文件中css、js代碼的簡單技巧

    分離vue文件中css、js代碼的簡單技巧

    這篇文章主要給大家介紹了關于分離vue文件中css、js代碼的簡單技巧,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-03-03
  • 一個基于vue3+ts+vite項目搭建初探

    一個基于vue3+ts+vite項目搭建初探

    當市面上主流的組件庫不能滿足我們業(yè)務需求的時候,那么我們就有必要開發(fā)一套屬于自己團隊的組件庫,下面這篇文章主要給大家介紹了一個基于vue3+ts+vite項目搭建的相關資料,需要的朋友可以參考下
    2022-05-05
  • 一文教會你快速上手vue的登錄界面(最新版)

    一文教會你快速上手vue的登錄界面(最新版)

    幾乎每個項目都會使用登錄頁面,這篇文章主要給大家介紹了如何通過一文教會你快速上手vue的登錄界面,文中通過實例代碼介紹的很詳細,需要的朋友可以參考下
    2022-11-11
  • iview Upload組件多個文件上傳的示例代碼

    iview Upload組件多個文件上傳的示例代碼

    這篇文章主要介紹了iview Upload組件多個文件上傳的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • 解決vue運行報錯Error:Cannot?find?module?'@vue/cli-plugin-babel'

    解決vue運行報錯Error:Cannot?find?module?'@vue/cli-plugin-b

    解決了因為版本問題在創(chuàng)建項目時出現(xiàn)的各種報錯問題,這次在運行時出現(xiàn)的問題,下面這篇文章主要給大家介紹了關于解決vue運行報錯Error:Cannot?find?module?'@vue/cli-plugin-babel'的相關資料,需要的朋友可以參考下
    2023-04-04
  • vue3生命周期原理與生命周期函數(shù)簡單應用實例分析

    vue3生命周期原理與生命周期函數(shù)簡單應用實例分析

    這篇文章主要介紹了vue3生命周期原理與生命周期函數(shù),結合簡單實例形式分析了vue3的生命周期基本原理、以及各個階段的生命周期鉤子函數(shù)功能、使用技巧與相關注意事項,需要的朋友可以參考下
    2023-04-04
  • 詳解vue3.2中setup語法糖<script?lang="ts"?setup>

    詳解vue3.2中setup語法糖<script?lang="ts"?setup>

    Vue 3.2 引入了語法,這是一種稍微不那么冗長的聲明組件的方式,下面這篇文章主要介紹了詳解vue3.2中setup語法糖<script?lang="ts"setup>的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01

最新評論