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

1、首先需要準(zhǔn)備省市縣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>
總結(jié):整個過程很簡單,就是在選中省的時候獲取他的所有children節(jié)點數(shù)據(jù)(市)在選擇市的時候獲取她的所有children節(jié)點數(shù)據(jù)(區(qū)縣)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue+LogicFlow+Flowable實現(xiàn)工作流
本文主要介紹了Vue+LogicFlow+Flowable實現(xiàn)工作流,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12
如何使用fetchEventSource實現(xiàn)sse流式請求
這篇文章主要介紹了如何使用fetchEventSource實現(xiàn)sse流式請求問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
Vue使用MD5對前后端進(jìn)行加密的實現(xiàn)
前后端分離的項目,遇到了對密碼進(jìn)行加密的情況,在前端或者是在后端加密都是可以的,本文主要介紹了Vue使用MD5對前后端進(jìn)行加密的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
vue2 使用@vue/composition-api依賴包 編譯、打包各種報錯問題分析
由于package.json 文件中 vue、vue-template-compiler 版本號前面 多了個 ^ 導(dǎo)致實際導(dǎo)入時,node_module中的 vue 版本可能被升級為 2.7.x,這篇文章主要介紹了vue2 使用@vue/composition-api依賴包 編譯、打包各種報錯問題分析,需要的朋友可以參考下2023-01-01
el-select 點擊按鈕滾動到選擇框頂部的實現(xiàn)代碼
本文通過實例代碼給大家分享el-select 點擊按鈕滾動到選擇框頂部效果,主要代碼是在visibleChange在這個popper里面找到.el-select-dropdown__list,感興趣的朋友跟隨小編一起看看吧2024-05-05
vue3.x源碼剖析之?dāng)?shù)據(jù)響應(yīng)式的深入講解
這篇文章主要給大家介紹了關(guān)于vue3.x源碼剖析之?dāng)?shù)據(jù)響應(yīng)式的相關(guān)資料,在講解過程中,我們會對比Vue2.x的API特性,使用有哪些區(qū)別,需要的朋友可以參考下2022-01-01
vue3+vite中開發(fā)環(huán)境與生產(chǎn)環(huán)境全局變量配置指南
最近在使用vite生成項目,這篇文章主要給大家介紹了關(guān)于vue3+vite中開發(fā)環(huán)境與生產(chǎn)環(huán)境全局變量配置的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08

