Vue第 7 篇,层级控件el-cascader使用详细,clearable删除旧项(el-cascader使用clearable,完全清空,删除旧项,el-cascader在vue中的使用)

前言

el-cascader 是 Element UI 组件库中的一种组件,用于实现级联选择器的功能。级联选择器是一种常见的用户界面元素,通常用于表示有层级关系的数据结构,如国家-省份-城市的选择、文件目录选择等。当用户选择一个选项时,下一个级别的选项会根据前一个选项动态变化,从而形成级联效果。这里来记录一下


Vue.js ~ 第 7 篇    ——    在Vue中使用层级控件el-cascader

一. 标签属性

el-cascader的标签属性,请看

<el-cascader
    v-model="subjectValue"
    :options="searchOptions"
    :show-all-levels="false"
    :props="{ expandTrigger: 'hover' }"
    @change="choseTheme"
    placeholder="检索类型"
    clearable
>
              <template slot-scope="{ node, data }">//层级内容数量
                <span>{{ data.label }}</span>
                <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
              </template>
 </el-cascader>


二. 参数属性

data() {
    return {
      //地区地址层级数据选择
      searchOptions: [  
        {
          value: "area",
          label: "地区",
          children: [
           //地区层级参数......
             children: [ 地区层级参数...... ],
          ],
        },
        {
          value: "title",
          label: "题目",
        },
      ], 
      subjectValue: "", //主题参数
      searchCon: "", // 搜索框输入的搜索内容
      preTheme: "title", // 上一个主题
      curTheme: "title", // 当前主题
  },


三. 选择事件

层级控件的选择事件,请看

  choseTheme(subjectValue) {
      //subjectValue是层级控件选中的数据
      let Area = subjectValue[0];
      if (subjectValue.length === 3) {
        //地区>中国**市,三层控件的选择事件
        subjectValue = subjectValue[2];
        this.searchContent[Area] = subjectValue;
        this.choseSearchResult();

        //也可以使用this.$set来实现
        // this.$set(this.searchContent, Area, subjectValue);
        // console.log(subjectValue); 
      } else if (subjectValue.length === 2) {
        //地区>**国,二层控件的选择事件
        console.log(this.searchContent);
        subjectValue = subjectValue[1];
        this.searchContent[Area] = subjectValue;
        this.choseSearchResult();

        //也可以使用this.$set来实现
        // this.$set(this.searchContent, Area, subjectValue);
        // console.log(subjectValue);
      } else if (subjectValue.length === 1) {
        // 删除旧键
        let oldKey = this.preTheme;
        delete this.searchContent[oldKey];

        //检索类型一层 ,删除地区内容
        delete this.searchContent.area;
        //然后赋值,搜索
        this.curTheme = subjectValue;
        this.choseSearchResult();
      } else if (subjectValue.length === 0) {
        //clearable的点击×删除事件
        let oldKey = this.preTheme;
        // console.log("oldKey", oldKey);
        delete this.searchContent[oldKey];
      }
        //赋值旧值
      this.preTheme = subjectValue;
    },


四. 搜索事件

choseSearchResult() {
      // console.log(this.searchContent);
      if (this.searchContent.area) {//如果有地区参数默认title
        this.curTheme = "title";
      } else {
        delete this.searchContent.title;
      }
      let key = this.curTheme;//赋值搜索
      this.searchContent[key] = this.searchCon;

      searchKeyword(this.searchContent).then((res) => {//搜索接口
         ......
      });
    },


五. el-select 和 el-cascader

感觉有用,就一键三连,感谢(●'◡'●)

el-cascader的clearable事件是一个清空值的事件。当用户点击选择器的清空按钮时,会触发clearable事件。你可以在clearable事件的回调函数进行相应的操作,比如清空级联选择器的选值。 在Vue使用el-cascader组件时,可以通过在el-cascader标签上添加clearable属性来开启clearable功能。 例如: <el-cascader clearable @clear="handleClear" /> 在上面的代码,当用户点击清空按钮时,会触发handleClear方法。 你可以在handleClear方法执行你需要的逻辑,比如将级联选择器的选值重置为初始状态。 示例代码: methods: { handleClear() { // 清空值的逻辑 this.system = ''; } } 在上面的代码,handleClear方法将级联选择器的选值重置为空字符串,实现了清空值的功能。 注意:如果想要使用clearable功能,请确保使用的是支持clearable属性的版本的el-cascader组件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [element-ui 级联选择器el-cascader踩坑](https://blog.csdn.net/maryword/article/details/125215866)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [vue el-cascader所需要的省市区街道联动的数据格式](https://download.csdn.net/download/weixin_41475202/12663454)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北城笑笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值