element,el-cascader省市区级联动态加载数据

效果图(可选择某个省份下的全部市,或某个市下面的全部区/县)
在这里插入图片描述
代码

<el-cascader
	:props="props"
	 @change="locationsChange"
	 placeholder="省/市/区"
	 size="small"
	 v-model="locationsData"
	 clearable
></el-cascader>

<script>
  // import { getComProvince, getComCity, getComDistrict } from "@/service/common";
  export default {
   
    data() {
   
      return {
   
      	locationsData: [],
        props: {
   
	        lazy: true,
	        async lazyLoad(node,
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
el-cascader是一个基于Element UI的级联选择器组件,支持多选和多级联动。要实现多选和多级联数据回显,可以按照以下步骤进行: 1.在模板中使用el-cascader组件,并设置v-model为一个数组,用于存储选中的值。 2.在组件中设置options属性为一个数组,用于存储级联选择器的选项数据。 3.在组件中设置props属性为一个对象,用于自定义选项的属性,例如value用于指定选项的值,label用于指定选项的显示文本。 4.在组件中设置@change事件,用于在选项发生变化时更新选中的值。 5.在组件中设置@expand-change事件,用于在级联选择器展开时动态加载选项数据。 6.在组件中设置cascaderData属性为一个数组,用于存储级联选择器的选项数据。 7.在组件中设置censusLandChange方法,用于在级联选择器展开时动态加载选项数据。 以下是一个el-cascader多选多级联数据回显的示例代码: ```html <template> <el-cascader v-model="selectedOptions" :options="cascaderData" :props="{ value: 'id', label: 'name' }" @change="handleChange" @expand-change="censusLandChange" placeholder="请选择省市区" style="width: 270px; padding-left: 7px;" multiple ></el-cascader> </template> <script> export default { data() { return { selectedOptions: [], cascaderData: [] }; }, mounted() { // 初始化选项数据 this.cascaderData = [ { id: 1, name: "北京市", children: [ { id: 11, name: "东城区", children: [ { id: 111, name: "东华门街道" }, { id: 112, name: "景山街道" } ] }, { id: 12, name: "西城区", children: [ { id: 121, name: "新街口街道" }, { id: 122, name: "西长安街街道" } ] } ] }, { id: 2, name: "上海市", children: [ { id: 21, name: "黄浦区", children: [ { id: 211, name: "外滩街道" }, { id: 212, name: "南京东路街道" } ] }, { id: 22, name: "徐汇区", children: [ { id: 221, name: "徐家汇街道" }, { id: 222, name: "漕河泾街道" } ] } ] } ]; }, methods: { handleChange(value) { // 更新选中的值 this.selectedOptions = value; }, censusLandChange(value, selectedData) { // 动态加载选项数据 const targetOption = selectedData[selectedData.length - 1]; targetOption.loading = true; setTimeout(() => { targetOption.children = [ { id: `${targetOption.id}1`, name: `${targetOption.name}1` }, { id: `${targetOption.id}2`, name: `${targetOption.name}2` } ]; targetOption.loading = false; }, 1000); } } }; </script> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值