vue + elementUI實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)的方法示例
本文介紹了vue + elementUI實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)的方法示例,分享給大家,具體如下:
1、首先需要準(zhǔn)備省市縣json文件,網(wǎng)上有很多可以下載。項(xiàng)目中使用的city.json數(shù)據(jù)是這樣的格式:
[ { "value": "110000", "label": "北京市", "children": [ { "value": "110000", "label": "北京市", "children": [ { "value": "110101", "label": "東城區(qū)" }, { "value": "110102", "label": "西城區(qū)" }, { "value": "110105", "label": "朝陽(yáng)區(qū)" }, { "value": "110106", "label": "豐臺(tái)區(qū)" }, { "value": "110107", "label": "石景山區(qū)" }, { "value": "110108", "label": "海淀區(qū)" }, { "value": "110109", "label": "門(mén)頭溝區(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)建一個(gè)組件開(kāi)始寫(xiě)代碼
<template> <div class="linkage"> <div> <el-select v-model="selectProvince" filterable size="small" @change="selectProvinceFun($event)" placeholder="請(qǐng)選擇省份"> <el-option value="" label="請(qǐng)選擇省份"></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="請(qǐng)選擇城市"> <el-option value="" label="請(qǐng)選擇城市"></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ǐng)選擇區(qū)縣"> <el-option value="" label="請(qǐng)選擇區(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 { // 整個(gè)省市縣數(shù)據(jù) city: city, // 被選中的市數(shù)據(jù) cityList: [], // 被選中的縣數(shù)據(jù) areaList: [], selectProvince: {}, selectCity: {}, selectArea: {} } }, mounted () { }, methods: { // 省份 市 縣聯(lián)動(dòng) 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>
總結(jié):整個(gè)過(guò)程很簡(jiǎn)單,就是在選中省的時(shí)候獲取他的所有children節(jié)點(diǎn)數(shù)據(jù)(市)在選擇市的時(shí)候獲取她的所有children節(jié)點(diǎn)數(shù)據(jù)(區(qū)縣)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- vue 地區(qū)選擇器v-distpicker的常用功能
- 詳解VUE-地區(qū)選擇器(V-Distpicker)組件使用心得
- vue實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)動(dòng)態(tài)菜單
- Vue自定義省市區(qū)三級(jí)聯(lián)動(dòng)
- Vue實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)
- vue移動(dòng)端城市三級(jí)聯(lián)動(dòng)組件使用詳解
- 基于Vue2實(shí)現(xiàn)簡(jiǎn)易的省市區(qū)縣三級(jí)聯(lián)動(dòng)組件效果
- 使用vue2實(shí)現(xiàn)帶地區(qū)編號(hào)和名稱(chēng)的省市縣三級(jí)聯(lián)動(dòng)效果
- Vue使用distpicker插件實(shí)現(xiàn)省市級(jí)下拉框三級(jí)聯(lián)動(dòng)
相關(guān)文章
vue3如何通過(guò)provide和inject實(shí)現(xiàn)多層級(jí)組件通信
這篇文章主要介紹了vue3如何通過(guò)provide和inject實(shí)現(xiàn)多層級(jí)組件通信,本文通過(guò)實(shí)例代碼給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-11-11Vue通過(guò)echarts實(shí)現(xiàn)數(shù)據(jù)圖表化顯示
Echarts,它是一個(gè)與框架無(wú)關(guān)的 JS 圖表庫(kù),但是它基于Js,這樣很多框架都能使用它,例如Vue,估計(jì)IONIC也能用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08如何利用vue3實(shí)現(xiàn)一個(gè)俄羅斯方塊
俄羅斯方塊這個(gè)游戲相信大家都玩過(guò),下面這篇文章主要給大家介紹了關(guān)于如何利用vue3實(shí)現(xiàn)一個(gè)俄羅斯方塊的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-01-01一個(gè)基于vue3+ts+vite項(xiàng)目搭建初探
當(dāng)市面上主流的組件庫(kù)不能滿足我們業(yè)務(wù)需求的時(shí)候,那么我們就有必要開(kāi)發(fā)一套屬于自己團(tuán)隊(duì)的組件庫(kù),下面這篇文章主要給大家介紹了一個(gè)基于vue3+ts+vite項(xiàng)目搭建的相關(guān)資料,需要的朋友可以參考下2022-05-05解決vue運(yùn)行報(bào)錯(cuò)Error:Cannot?find?module?'@vue/cli-plugin-b
解決了因?yàn)榘姹締?wèn)題在創(chuàng)建項(xiàng)目時(shí)出現(xiàn)的各種報(bào)錯(cuò)問(wèn)題,這次在運(yùn)行時(shí)出現(xiàn)的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于解決vue運(yùn)行報(bào)錯(cuò)Error:Cannot?find?module?'@vue/cli-plugin-babel'的相關(guān)資料,需要的朋友可以參考下2023-04-04vue3生命周期原理與生命周期函數(shù)簡(jiǎn)單應(yīng)用實(shí)例分析
這篇文章主要介紹了vue3生命周期原理與生命周期函數(shù),結(jié)合簡(jiǎn)單實(shí)例形式分析了vue3的生命周期基本原理、以及各個(gè)階段的生命周期鉤子函數(shù)功能、使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2023-04-04詳解vue3.2中setup語(yǔ)法糖<script?lang="ts"?setup>
Vue 3.2 引入了語(yǔ)法,這是一種稍微不那么冗長(zhǎng)的聲明組件的方式,下面這篇文章主要介紹了詳解vue3.2中setup語(yǔ)法糖<script?lang="ts"setup>的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01