vue element-ui el-cascader级联选择器数据回显的两种实现方法

 更新时间:2023年07月18日 10:31:49   作者:白开水z  
这篇文章主要介绍了vue element-ui el-cascader级联选择器数据回显的两种实现方法,具有很好的参考价值,希望对大家有所帮助。

element-ui el-cascader级联选择器数据回显 简单的两种方法

  <el-cascader
              ref="myCascader"
              clearable
              v-model="regionValue"
              :options="regionOptions"
              :props="regionProps"
              @change="handleChangeRegion"
     ></el-cascader>

通过value绑定值判断是通过name回显还是id回显

export default {
  data() {
    return{
      regionValue: ['name1','name2','name3'],  //(注:name1,name2,name3的数据要和name一样) 通过id回显   regionValue: ['id1','id2','id3']  
      regionOptions: [],
      regionProps: {
        value: 'name',   //如果想通过id回显就   value:'id'
        label: 'name',
        children: 'children',
      },
    }
  }
}

注:根据后端给的数据参考本方法测试

element-ui的 Cascader 级联选择器 动态加载数据及回显

在这里插入图片描述

<template>
  <!-- 测试懒加载 -->
  <el-cascader :props="test_props" :options="test_options" v-model="test_model"></el-cascader>
</template>
<script>
let id2 = 0;
export default {
  name: 'TestView',
  data() {
    return {
      test_options: [
        //回显值得关键必须要把需要回显的都写到options里面,且最后一项要加上leaf:true,表示无下级了才可以回显;这里写死,实际要根绝接口返回的需要回显的数据,来递归循环到结果,赋值给这里;
      ],
      test_model: ['选项1', '选项3'], //模拟后台取到的默认值,这里是单选
      test_props: {
        lazy: true,
        lazyLoad(node, resolve) {
          const { level } = node;
          setTimeout(() => {
            const nodes = Array.from({ length: 2 }).map((item) => {
              ++id2;
              return {
                id: 1,
                value: `选项${id2}`,
                label: `选项${id2}`,
                leaf: level >= 1
              };
            });
            // 通过调用resolve将子节点数据返回,通知组件数据加载完成
            resolve(nodes);
          }, 1000);
        }
      }
    };
  },
  created() {
    setTimeout(() => {
      this.test_options = [
        {
          value: '选项1',
          label: '选项1',
          id: 2,
          leaf: false,
          children: [{ value: '选项3', label: '选项3', leaf: true }]
        },
        {
          value: '选项2',
          label: '选项2'
        }
      ];
    }, 20000);
  }
};
</script>

要回显,那么第一级要有数据,选中的第二级,第三级也要对应上

比如省市区第一级所有省需要有,第二级,选择的省下的所有市,第三级,选择的所有的市下的区县,回显数据格式注意好,不对是回显不了的

获取到所有省,判断要回显的省的id和当前省的id一样的,用这个省的id请求这个省的所有市,循环所有市,判断要回显的市的id,然后拿市的id请求所有区,最后给options赋值

我这里是文字,存的时候就是文字,所以需要这样,如果是id,那就简单了,直接拿对应的id请求就行,就是组装好和写死的数据一样的格式就行

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解vue如何封装封装一个上传多张图片的组件

    详解vue如何封装封装一个上传多张图片的组件

    上传图片不管是后台还是前端小程序,上传图片都是一个比不可少的功能有时候需要好几个页面都要上传图片,每个页面都写一个非常不方便,本文就给大家介绍vue如何封装一个上传多张图片的组件,需要的朋友可以参考下
    2023-07-07
  • element-ui中的select下拉列表设置默认值方法

    element-ui中的select下拉列表设置默认值方法

    今天小编就为大家分享一篇element-ui中的select下拉列表设置默认值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Vue实现裁切图片功能

    Vue实现裁切图片功能

    这篇文章主要为大家详细介绍了Vue实现裁切图片功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 解决vue打包后vendor.js文件过大问题

    解决vue打包后vendor.js文件过大问题

    这篇文章主要介绍了解决vue打包后vendor.js文件过大问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • 面试官问你Vue2的响应式原理该如何回答?

    面试官问你Vue2的响应式原理该如何回答?

    可能很多小伙伴之前都了解过 Vue2实现响应式的核心是利用了ES5的Object.defineProperty 但是面对面试官时如果只知道一些模糊的概念。只有深入底层了解响应式的原理,才能在关键时刻对答如流,本文就来和大家详细聊聊,感兴趣的可以收藏一下
    2022-12-12
  • elementui中树形表格切换展开不同层级的示例代码

    elementui中树形表格切换展开不同层级的示例代码

    这篇文章主要介绍了elementui中树形表格切换展开不同层级,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • vue使用websocket连接优化性能方式

    vue使用websocket连接优化性能方式

    这篇文章主要介绍了vue使用websocket连接优化性能方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • 创建vue项目没有router、view的解决办法

    创建vue项目没有router、view的解决办法

    在学习vue的时候遇到很多问题,这里做一些总结,下面这篇文章主要给大家介绍了关于创建vue项目没有router、view文件夹的解决办法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • vue3中el-table实现多表头并表格合并行或列代码示例

    vue3中el-table实现多表头并表格合并行或列代码示例

    这篇文章主要给大家介绍了关于vue3中el-table实现多表头并表格合并行或列的相关资料,文中通过代码介绍的非常详细,对大家学习或者使用vue具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-02-02
  • vue实现双向绑定和依赖收集遇到的坑

    vue实现双向绑定和依赖收集遇到的坑

    这篇文章主要介绍了vue的双向绑定和依赖收集,主要是通过Object.defineProperty() 实现双向绑定,具体思路代码大家跟随小编一起看看吧
    2018-11-11

最新评论