Element UI学习3--Cascader 级联选择器

约定不等于承诺〃 2023-01-03 04:16 628阅读 0赞

1、基础用法

1、默认 click 触发子菜单

  1. <div class="block">
  2. <span class="demonstration">默认 click 触发子菜单</span>
  3. <el-cascader v-model="value" :options="options" @change="handleChange">
  4. </el-cascader>
  5. </div>
  6. <script>
  7. export default {
  8. data(){
  9. return{
  10. value:[],
  11. options:[
  12. {
  13. value:'zhejiang',
  14. label:'浙江',
  15. children:[
  16. {
  17. value:'hangzhou',
  18. label:'杭州',
  19. children:[
  20. {
  21. value:'yuhang',
  22. label:'余杭'
  23. },
  24. {
  25. value:'xiaoshan',
  26. label:'萧山'
  27. },
  28. {
  29. value:'binjiang',
  30. label:'滨江'
  31. },
  32. {
  33. value:'gongshu',
  34. label:'拱墅'
  35. }
  36. ]
  37. },
  38. {
  39. value:'ningbo',
  40. label:'宁波',
  41. children:[
  42. {
  43. value:'jiangbei',
  44. label:'江北'
  45. },
  46. {
  47. value:'zhenhai',
  48. label:'镇海'
  49. },
  50. {
  51. value:'beilun',
  52. label:'北仑'
  53. }
  54. ]
  55. }
  56. ]
  57. },
  58. {
  59. value:'jiangxi',
  60. label:'江西',
  61. children:[
  62. {
  63. value:'shangrao',
  64. label:'上饶',
  65. children:[
  66. {
  67. value:'poyang',
  68. label:'鄱阳'
  69. },
  70. {
  71. value:'yugan',
  72. label:'余干'
  73. },
  74. {
  75. value:'yushan',
  76. label:'玉山'
  77. },
  78. {
  79. value:'wannian',
  80. label:'万年'
  81. },
  82. {
  83. value:'wuyuan',
  84. label:'婺源'
  85. }
  86. ]
  87. }
  88. ]
  89. }
  90. ]
  91. }
  92. },
  93. methods:{
  94. handleChange(value){
  95. console.log(value)
  96. }
  97. }
  98. }
  99. </script>

如图:
在这里插入图片描述
2、属性show-all-levels定义了是否显示完整的路径,将其赋值为false则仅显示最后一级

  1. <div class="block">
  2. <span class="demonstration">默认 click 触发子菜单</span>
  3. <el-cascader v-model="value" :options="options" @change="handleChange" :show-all-levels="false">
  4. </el-cascader>
  5. </div>

如图:
在这里插入图片描述
3、通过props.expandTrigger可以定义展开子级菜单的触发方式。

  1. <div class="block">
  2. <span class="demonstration">hover 触发子菜单</span>
  3. <el-cascader v-model="value" :options="options" :props="{ expandTrigger: 'hover' }" @change="handleChange">
  4. </el-cascader>
  5. </div>

如图:
在这里插入图片描述

2、多选

1、默认显示所有Tag
可通过 props.multiple = true 来开启多选模式

  1. <div class="block">
  2. <span class="demonstration">默认显示所有Tag</span>
  3. <el-cascader :options="options" :props="props" clearable>
  4. </el-cascader>
  5. </div>
  6. <script>
  7. export default {
  8. data(){
  9. return{
  10. props:{ multiple:true},
  11. options:[{
  12. value: 1,
  13. label: '浙江',
  14. children:[{
  15. value: 2,
  16. label: '杭州',
  17. children:[
  18. { value: 3, label: '余杭' },
  19. { value: 4, label: '拱墅' },
  20. { value: 5, label: '萧山' }
  21. ]
  22. },
  23. {
  24. value: 6,
  25. label: '宁波',
  26. children:[
  27. { value: 7, label: '江北' },
  28. { value: 8, label: '镇海' },
  29. { value: 9, label: '北仑' }
  30. ]
  31. }
  32. ]
  33. },
  34. {
  35. value: 10,
  36. label: '江西',
  37. children:[{
  38. value: 11,
  39. label: '上饶',
  40. children:[
  41. { value: 12, label: '鄱阳' },
  42. { value: 13, label: '余干' },
  43. { value: 14, label: '婺源' },
  44. { value: 15, label: '玉山' }
  45. ]
  46. },
  47. {
  48. value: 16,
  49. label: '南昌',
  50. children:[
  51. { value: 17, label: '青山湖' },
  52. { value: 18, label: '红谷滩' },
  53. { value: 19, label: '高新' },
  54. { value: 20, label: '向塘' }
  55. ]
  56. }
  57. ]
  58. }
  59. ]
  60. }
  61. }
  62. }

如图:
在这里插入图片描述
2、折叠展示Tag
使用collapse-tags来折叠Tag

  1. <div class="block">
  2. <span class="demonstration">折叠展示Tag</span>
  3. <el-cascader :options="options" :props="props" clearable collapse-tags>
  4. </el-cascader>
  5. </div>

如图:
在这里插入图片描述

3、选择任意一级选项

1、单选选择任意一级选项
可通过 props.checkStrictly = true 来设置父子节点取消选中关联,从而达到选择任意一级选项的目的。

  1. <div class="block">
  2. <span class="demonstration">单选选择任意一级选项</span>
  3. <el-cascader :options="options" :props="{ checkStrictly: true }" clearable></el-cascader>
  4. </div>

如图:
在这里插入图片描述
2、多选选择任意一级选项

  1. /div> -->
  2. <div class="block">
  3. <span class="demonstration">多选选择任意一级选项</span>
  4. <el-cascader :options="options" :props="{ multiple: true,checkStrictly: true }" clearable></el-cascader>
  5. </div>

如图;
在这里插入图片描述

4、自定义节点内容

可以通过scoped slot对级联选择器的备选项的节点内容进行自定义,
scoped slot会传入两个字段 node 和 data,
分别表示当前节点的 Node 对象和数据。

  1. <el-cascader :options="options">
  2. <template slot-scope="{ node, data }">
  3. <span>{
  4. { data.label }}</span>
  5. <span v-if="!node.isLeaf"> ({
  6. { data.children.length }}) </span>
  7. </template>
  8. </el-cascader>

如图:
在这里插入图片描述

5、级联面板

级联面板是级联选择器的核心组件,与级联选择器一样,有单选、多选、动态加载等多种功能。

  1. <el-cascader-panel :options="options"></el-cascader-panel>

如图:
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,628人围观)

还没有评论,来说两句吧...

相关阅读