el-cascader 级联搜索高亮

<template>
  <div class="my-auto-complete-box">
    <el-cascader
      :key="key"
      ref="cascader"
      v-model="dateValue"
      size="small"
      :placeholder="$attrs.placeholder"
      filterable
      clearable
      :options="options"
      style="width:100%;"
      @change="handleChange"
    />
  </div>
</template>
<script>

export default {
  name: 'SearchCascader',
  props: {
    defaultValue: {
      type: Array,
      default: () => []
    },
    formId: {
      type: String,
      default: ''
    },
    checkedList: {
      type: Array,
      default: () => []
    },
    options: {
      type: Array,
      default: () => []
    },
    action: {
      type: Function,
      default: () => ({})
    },
    isDisabled: {
      type: Boolean,
      default: false
    }
  },
  data() {
    return {
      dateValue:[],
      dataLists: [],
      key: ''
    }
  },
  watch:{
    defaultValue(val) {
      console.log(9999,val)
      this.key = Date.now()
      this.dateValue = val
    }
  },
  mounted() {

  },
  methods: {
    handleChange(val) {
      console.log(888,val)
      this.dateValue = val
      this.$refs.cascader.$refs.panel.clearCheckedNodes()
      this.$refs.cascader.$refs.panel.activePath = []
      this.$refs.cascader.$refs.panel.calculateCheckedNodePaths()
      this.action({ value: val, formId: this.formId })
    },
    handleSelect(item) {
      this.action({ value: item.value, formId: this.formId })
    }
  }
}
</script>

关键代码就三行

this.$refs.cascader.$refs.panel.clearCheckedNodes()
this.$refs.cascader.$refs.panel.activePath = []
this.$refs.cascader.$refs.panel.calculateCheckedNodePaths()

el-cascader 级联选择器是Element UI中用于实现级联下拉选择的一种组件。它能够处理多个层级的选项,并且能够通过简单的配置来实现数据的回显。在实际开发中,通常需要根据后端返回的数据来显示已经选择的值,或者在表单编辑时显示当前已有的数据。 要实现编辑时的数据回显,你需要做的是将后端返回的数据格式化为级联选择器需要的数据结构。el-cascader 组件通常接受一个数组形式的 `options` 作为其选项数据,并且可以通过 `props` 属性定义值(value)、标签(label)和子级(children)字段。 以下是一个基本的数据回显流程示例: 1. 后端返回数据格式可能如下: ```javascript [ { "value": "beijing", "label": "北京", "children": [ { "value": "chaoyang", "label": "朝阳区", "children": [ { "value": "datunlu", "label": "大屯路" } ] } ] } ] ``` 2. 你需要在前端处理这个数据结构,使其适用于el-cascader的`options`属性。 3. 将处理后的数据赋值给`el-cascader`的`v-model`,即可实现数据的回显。 ```html <el-cascader v-model="selectedOptions" :options="dataOptions" @change="handleChange"> </el-cascader> ``` ```javascript export default { data() { return { selectedOptions: [], // 用户选中的值 dataOptions: [] // 级联选择器的选项数据 }; }, methods: { // 处理后端返回的数据,并赋值给dataOptions handleResponse(response) { // 将返回的数据处理为el-cascader需要的格式 this.dataOptions = response; }, handleChange(value) { // 处理选项变更事件 } }, mounted() { // 假设fetchData是一个获取数据的函数 this.handleResponse(fetchData()); } }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值