当前位置: 首页 > article >正文

从el-cascader的options选项中,选择各级的名字, 并拼接成字符串

在使用 Element UI 的 el-cascader 组件时,如果你需要从选中的选项中提取各级的名字并拼接成一个字符串,可以通过监听 el-cascaderchange 事件来实现。当用户选择了一个选项后,你可以访问到选中的值,并根据这些值去 options 中查找对应的名字。

HTML 模板

<template>
  <div>
    <el-cascader
      v-model="selectedOptions"
      :options="options"
      @change="handleChange"
      clearable
      placeholder="请选择"
    ></el-cascader>
    <p>选中的路径: {{ selectedPath }}</p>
  </div>
</template>

脚本部分

<script>
export default {
  data() {
    return {
      options: [
        {
          value: 'zhinan',
          label: '指南',
          children: [
            {
              value: 'shejiyuanze',
              label: '设计原则',
              children: [
                {
                  value: 'yizhi',
                  label: '一致'
                },
                {
                  value: 'fankui',
                  label: '反馈'
                }
              ]
            }
          ]
        },
        // 更多选项...
      ],
      selectedOptions: [],
      selectedPath: ''
    };
  },
  methods: {
    handleChange(value) {
      this.selectedPath = this.getPathLabel(value);
    },
    getPathLabel(values) {
      if (!values || !values.length) return '';

      let pathLabels = [];
      const findLabel = (options, value) => {
        for (let option of options) {
          if (option.value === value) {
            pathLabels.push(option.label);
            return;
          }
          if (option.children) {
            findLabel(option.children, value);
          }
        }
      };

      values.forEach((value, index) => {
        // 如果当前级的标签还未被添加,则进行查找
        if (pathLabels.length <= index) {
          findLabel(this.options, value);
        }
      });

      return pathLabels.join(' / ');
    }
  }
};
</script>

在这个例子中:

  • el-cascader 组件绑定了 v-modelselectedOptions,用来存储用户选择的值。
  • 当用户改变选择时,会触发 @change 事件,调用 handleChange 方法。
  • handleChange 方法接收选中的值数组,并调用 getPathLabel 方法来获取对应的路径名称。
  • getPathLabel 方法通过递归遍历 options 来找到每个值对应的标签,并将这些标签加入到 pathLabels 数组中。
  • 最终,pathLabels 数组中的元素通过 ' / ' 连接起来形成完整的路径字符串。

这样,每当用户选择或更改 el-cascader 中的选项时,都会自动更新 selectedPath,显示所选路径的完整名称。


http://www.kler.cn/a/415973.html

相关文章:

  • 代理IP与百度在信息时代的交互
  • 基于投影寻踪博弈论-云模型的滑坡风险评价
  • SpringBoot整合Validation数据校验
  • 【CLIP】3: semantic-text2image-search允许局域网访问
  • 处理流—BufferReader和BufferWrite
  • 2411mfc,修改按钮颜色
  • 23种设计模式-抽象工厂(Abstract Factory)设计模式
  • 11.21c++中的函数
  • week 6 - SQL Select II
  • 【Leecode】Leecode刷题之路第61天之旋转链表
  • 基于nxp LS1046+fpga的嵌入式系统中虚拟化设备的设计与实现
  • [python脚本处理文件入门]-17.Python如何操作Excel文件的读写
  • Lyapunov方法发展简史
  • WPS 文本——在修订模式中、并且保留所有批注的情况下,如何显示全部文本的最终状态
  • D2761 适合在个人电脑、便携式音响等系统中作音频限幅用。
  • Java开发网络安全常见问题
  • (C语言) 8大翻译阶段
  • 宠物空气净化器推荐2024超详细测评 希喂VS霍尼韦尔谁能胜出
  • vue3-新增API组件
  • mac上的建议xftp 工具
  • oracle将select作为字段查询
  • Leetcode 每日一题 104.二叉树的最大深度
  • 论文阅读 - Labeled Datasets for Research on Information Operations
  • hue 4.11容器化部署,已结合Hive与Hadoop
  • 单点登录原理
  • Spring Web开发注解和请求(1)