antdv 级联选择(Cascader)组件实现模糊搜索

antdv API地址及代码示例
博客提供了antdv API的地址https://www.antdv.com/components/cascader-cn/#API ,还提及了代码相关内容,包括template、script以及/src/utils/index.js 。

antdv API地址:
https://www.antdv.com/components/cascader-cn/#API

上代码

template

<template>
	<a-cascader :options="options" :showSearch="showSearch" />
</template>

script

import { fullText } from '@/utils'
...
data() {
	return {
		option: [{
		    value: 'zhejiang',
		    label: '浙江省',
		    children: [
		      {
		        value: 'hangzhou',
		        label: '杭州市',
		        children: [
		          {
		            value: 'xihu',
		            label: '西湖区',
		          },
		        ],
		      },
		    ],
		  },
		  {
		    value: 'shanghai',
		    label: '上海市',
		    children: [
		      {
		        value: 'qingpuqu',
		        label: '青浦区',
		        children: [
		          {
		            value: 'beijinglu',
		            label: '北京路',
		          },
		        ],
		      },
		    ],
		  },
	  	],
		showSearch: {
          filter: (inputValue, path) => {
            return path.some(option => {
              // label搜索
              return fullText(inputValue, option.label);
            }
            )
          },
          matchInputWidth: true
        }
	}
}

/src/utils/index.js

const fullText = function (keyword, text) {
  var hlen = text.length;
  var nlen = keyword.length;
  if (nlen > hlen) {
    return false;
  }
  if (nlen === hlen) {
    return keyword === text;
  }
  outer: for (var i = 0, j = 0; i < nlen; i++) {
    var nch = keyword.charCodeAt(i);
    while (j < hlen) {
      if (text.charCodeAt(j++) === nch) {
        continue outer;
      }
    }
    return false;
  }
  return true;
}

export { fullText  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值