目录
一.基本使用
二.进阶使用
1.如何获取最后一级选项的值?
2.如何让级联选择器的输入框只展示最后一级?
三.实战
1.场景描述
2.实现步骤
①设计后端返回值Vo
②编写controller
③编写service
④编写mapper层
⑤在前端,通过发送axios请求后端数据
3.展示效果
结语
一.基本使用
复制如下代码:
<template>
  <div class="m-4">
    <p>级联选择器</p>
    <el-cascader
      v-model="value"
      :options="options"
      :props="props"
      @change="handleChange"
    />
  </div>
</template>
<script setup>
import { ref } from 'vue'
const value = ref([])
const props = {
  expandTrigger: 'hover',
}
const handleChange = (value) => {
  console.log(value)
}
const options = [
  {
    value: 'guide',
    label: 'Guide',
    children: [
      {
        value: 'disciplines',
        label: 'Disciplines',
        children: [
          {
            value: 'consistency',
            label: 'Consistency',
          },
          {
            value: 'feedback',
            label: 'Feedback',
          },
          {
            value: 'efficiency',
            label: 'Efficiency',
          },
          {
            value: 'controllability',
            label: 'Controllability',
          },
        ],
      },
      {
        value: 'navigation',
        label: 'Navigation',
        children: [
          {
            value: 'side nav',
            label: 'Side Navigation',
          },
          {
            value: 'top nav',
            label: 'Top Navigation',
          },
        ],
      },
    ],
  },
  {
    value: 'resource',
    label: 'Resource',
    children: [
      {
        value: 'axure',
        label: 'Axure Components',
      },
      {
        value: 'sketch',
        label: 'Sketch Templates',
      },
      {
        value: 'docs',
        label: 'Design Documentation',
      },
    ],
  },
]
</script>
<style scoped>
</style>
 
运行效果:

代码解读:
①v-model:级联选择器的值,是一个数组,格式为[一级选择,二级选择,三级选择.....]
举例:
②:options是给级联选择器绑定的数据源,该数据源是一个对象数组,每个对象代表一个选项,有value、label、children三部分。
③:props指定了选择触发的条件,是鼠标悬停还是左键单击。
④@change指定了选项变化时,触发的事件。
二.进阶使用
1.如何获取最后一级选项的值?
问题描述:

解决方案:
由于value是一个数组,此时value[0]代表第一级,value[1]代表第二级,value[2]代表第三级。因此通过value[2]就能获取最后一级的值。

展示效果:

2.如何让级联选择器的输入框只展示最后一级?
问题描述:

解决方案:
给级联选择器添加:show-all-levels="false"属性即可。

运行效果:

三.实战
1.场景描述
应用场景:当我们添加一个医技项目时,要选择该项目的所属科室。
举例:头部核磁共振这个项目,应该属于【外科】下的【神经外科】这个科室。此时我们就可以通过级联选择器,来完成【外科/神经外科】的选择。
2.实现步骤
①设计后端返回值Vo

②编写controller

③编写service
service层:

serviceImpl层:
    //查询前端【级联查询科室】所需的结果集(注意:Cascade是级联的意思)
    public List<CascadeOfDept> queryCascadeOfDept() {
        //1.先查询大类科室(如:外科、内科)
        List<CascadeOfDept> cascadeOfDepts = deptCategoryMapper.queryAllDeptCategoryOfCascade();
        //2.遍历所有大类科室
        for(CascadeOfDept cascadeOfDept :cascadeOfDepts){
            //2.1根据大类科室的id,查询旗下所有的小类科室
            List<CascadeOfDept> cascadeOfDepts1 = departmentMapper.queryAllDeptByCategoryIdOfCascade(cascadeOfDept.getValue());
            //2.2将旗下小类科室,装入大类科室中
            cascadeOfDept.setChildren(cascadeOfDepts1);
        }
        //3.返回所有大类科室(每个大类科室,都装着小类科室)
        return cascadeOfDepts;
    } 
④编写mapper层


⑤在前端,通过发送axios请求后端数据

3.展示效果

结语
以上就是Cascader 级联选择器组件的使用,在项目中可以浅浅使用一下。
喜欢本篇文章的话,可以留个免费的关注~~
②:options是给级联选择器绑定的数据源,该数据源是一个对象数组,每个对象代表一个选项,有value、label、children三部分。















![[网络安全] 滥用Azure内置Contributor角色横向移动至Azure VM](https://i-blog.csdnimg.cn/direct/bb95915fc47947d6958f46e6b6337ef4.png#pic_center)


