1.后台接口为点击加载下一级 ,传省市区id

<template>
<el-cascader
v-model="selectedOptions"
placeholder="请选择省市区"
:options="cascaderData"
@active-item-change="handleItemChange"
:props="{
value: 'id',
label: 'name',
children: 'cities'
}"
></el-cascader>
</template> <script>
export default {
name: 'my-provinces',
data () {
return {
departmentOptions: [],
cascaderData: [],
selectedOptions: []
}
},
methods: {
getNodes (val) {
let idArea
let sizeArea
if (!val) {
idArea = null
sizeArea = 0
} else if (val.length === 1) {
idArea = val[0]
sizeArea = val.length // 3:一级 4:二级 6:三级
} else if (val.length === 2) {
idArea = val[1]
sizeArea = val.length // 3:一级 4:二级 6:三级
}
this.$post('ibest/service/system/area/areaList', {
'id': idArea
}).then(response => {
if (response.data && response.data.code === '00000000') {
let Items = response.data.data
if (sizeArea === 0) { // 初始化 加载一级 省
this.cascaderData = Items.map((value, i) => {
return {
id: value.id,
name: value.name,
cities: []
}
})
} else if (sizeArea === 1) { // 点击一级 加载二级 市
this.cascaderData.map((value, i) => {
if (value.id === val[0]) {
if (!value.cities.length) {
value.cities = Items.map((value, i) => {
return {
id: value.id,
name: value.name,
cities: []
}
})
}
}
})
} else if (sizeArea === 2) { // 点击二级 加载三级 区
this.cascaderData.map((value, i) => {
if (value.id === val[0]) {
value.cities.map((value, i) => {
if (value.id === val[1]) {
if (!value.cities.length) {
value.cities = Items.map((value, i) => {
return {
id: value.id,
name: value.name
}
})
}
}
})
}
})
}
} else {
console.log(response.data.msg)
}
}, error => {
console.log(error)
})
},
handleItemChange (val) {
this.getNodes(val)
}
},
mounted () {
this.getNodes()
}
}
</script>

2.效果

Vue(二十八)el-cascader 动态加载 - 省市区组件的更多相关文章

  1. Vue动态加载异步组件

    背景: 目前我们项目都是按组件划分的,然后各个组件之间封装成产品.目前都是采用iframe直接嵌套页面.项目中我们还是会碰到一些通用的组件跟业务之间有通信,这种情况下iframe并不是最好的选择,if ...

  2. netcore实践:跨平台动态加载native组件

    缘起netcore框架下实现基于zmq的应用. 在.net framework时代,我们进行zmq开发由很多的选择,比较常用的有clrzmq4和NetMQ. 其中clrzmq是基于libzmq的Int ...

  3. 实现react路由动态加载的组件

    import React, { Component } from 'react'; import Loading from '../../base/nc_Loading'; /* * date: 20 ...

  4. 聊聊高并发(二十八)解析java.util.concurrent各个组件(十) 理解ReentrantReadWriteLock可重入读-写锁

    这篇讲讲ReentrantReadWriteLock可重入读写锁,它不仅是读写锁的实现,而且支持可重入性. 聊聊高并发(十五)实现一个简单的读-写锁(共享-排他锁) 这篇讲了怎样模拟一个读写锁. 可重 ...

  5. vue中动态加载组件+开发者模式+JS参数值传递和引用传递

    今天写vue里面通过接口反参动态加载组件时候 跟着同学...学习到了 一.先说说vue 内置组件 component 的用法 component组件可以来专门用来进行组件的切换,使用is来绑定你的组件 ...

  6. Vue 动态加载组件

    为什么要动态加载呢?而不是一次性加载呢? 一次性?你能保证你拿的内容不多,那从性能方面说还是OK的.否则,就该什么时候用,就什么时候取. 得出这想法,源于前几天上班赶产品的故事: A组件是父亲,B组件 ...

  7. vue实践---vue动态加载组件

    开发中遇到要加载10个或者更多的,类型相同的组件时,如果用普通的 import 引入组件,components注册组件,代码显得太啰嗦了,这时候就需要用到 require.context 动态加载这些 ...

  8. 聊聊高并发(二十九)解析java.util.concurrent各个组件(十一) 再看看ReentrantReadWriteLock可重入读-写锁

    上一篇聊聊高并发(二十八)解析java.util.concurrent各个组件(十) 理解ReentrantReadWriteLock可重入读-写锁 讲了可重入读写锁的基本情况和基本的方法,显示了怎样 ...

  9. Adroid动态加载Apk-插件化技术框架(动态代理方案)

    技术:Android + java +动态加载+插件化   概述 为什么要使用插件化?在开发中,一个项目只会越做越大.初始版本可能是单一功能,后续可能加上各种风马牛不相及的功能.所以我认为插件化可以使 ...

随机推荐

  1. nginx反向代理配置两个不同服务器

    1.什么是反向代理通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Inter ...

  2. IIS7二级域名添加同一证书

    IIS7二级域名添加同一证书, 先绑定第一个域名到443 ,之后的用以下命令行绑定 cd C:\Windows\System32\Inetsrv\appcmd set site /site.name: ...

  3. 实验吧 deeeeeeaaaaaadbeeeeeeeeeef-20

    题目描述: 图片是正确的吗? 解题思路: 这道题很有意思,常规的隐写思路没有线索,结果问题出现在照片的分辨率上,tEXtSource iPhone 5的后置摄像头是3264×2448的分辨率,前置摄像 ...

  4. spring boot集成websocket实现聊天功能和监控功能

    本文参考了这位兄台的文章: https://blog.csdn.net/ffj0721/article/details/82630134 项目源码url: https://github.com/zhz ...

  5. hihocoder 1175

    拓扑排序 hihocoder 1175 拓扑只适用于 有向无环图中,这个指的是 1.有向的,不是那种双向可走的 2.无环,并不是不存在环,而是一定要有一个没有其他点指向这个点的点, 题目大意:一个有向 ...

  6. 封装selenium自动化框架中的截图功能

    对selenium自带的截图功能进行封装: 以下为封装的代码,自定义一个.py文件即可,图片路径自己设置一个. #coding:utf-8 class Screen(object): ''' 封装的截 ...

  7. 24 Game

    You have 4 cards each containing a number from 1 to 9. You need to judge whether they could operated ...

  8. 关于/tmp/ 目录自动清理文件

    问题:今天开发人员给我说了一个错误:The temporary upload location [/tmp/tomcat.1337767218595042057.80/work/Tomcat/loca ...

  9. 常用的user32说明

    函数名称 说明 ActiveKeyboardLayout 激活一个不同的键盘布局,该布局必须先由LoadKeyBoardLayout函数装载AdjustWindowRect 根据希望的用户矩形大小来计 ...

  10. QT安装后再添加或删除组件

    QT安装目录下打开MaintenanerceTool.exe 手动添加​储存库,要定位一个储存有QT在线安装镜像的网址: https://download.qt.io/online/qtsdkrepo ...