0.1.3 • Published 2 years ago

@lllhys/lazy-cascader v0.1.3

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

@lllhys/lazy-cascader

fork于vueblocks/elp-cascader, 并添加了infinite scroll。

基于element-uivue-virtual-scroller的级联选择器,用虚拟列表的方式逐级渲染列表。适用于数据量较大的场景。

Demo

效果预览

lazy-cascader

install 安装

npm i @lllhys/lazy-cascader --save
# or
yarn add @lllhys/lazy-cascader

全局调用

在main.js中写入下面的代码

import '@lllhys/lazy-cascader/lib/lazy-cascader.css'
import LazyCascader from '@lllhys/lazy-cascader'
Vue.use(LazyCascader)

页面中直接使用

<template>
  <div id="app">
    <lazy-cascader v-model="value" :options="options" />
<!--    <lazy-cascader-panel v-model="value" :options="options" />-->
  </div>
</template>

<script>
export default {
  data () {
    return {
      value: '',
      options: [
        {
          value: 'test',
          label: '测试',
          children: []
        }]
    }
  }
}
</script>

Attributes、Events、Methods、Props

详见ElementUI-Cascader

💡 与Element cascader的区别项

  1. el-cascader当option重复时,会出一个空白节点

    解决逻辑:重复时保留老节点,舍去新节点

  2. el-cascader多选状态下,第一个搜索词选中内容后,搜索词被清空

    解决逻辑:保留第一个搜索词

  3. 支持infinite scroll下拉后加载新的分页数据

  4. props中新增属性

参数说明类型可选值默认值
selectWithExpand单选且checkStrictly为true时是否展开下一级boolean-false
lazyMultiCheck多选且懒加载时取值boolean-false
panelLabels面板标题Array-[]
checkAll多选且checkStrictly为true时全选boolean-false
panelSearch面板搜索boolean-false
expandPanels默认展开面板数number-0
infiniteScroll是否开启无限滚动number-false
  1. 开启lazy无限滚动才会生效,lazyLoad函数修改,参数加入pageNo,回调数据变为{list: [], isEnd: Boolean}

  2. Cascader、CascaderPanel 新增事件

参数说明回调参数
lazy-loaded惰性加载完毕后触发选中节点的值

CHANGELOG