0.0.5 • Published 7 months ago

cascader-tree-select v0.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

cascader-tree-select

基于element-uivue-virtual-scroller的全量级联树选择器,结合虚拟列表逐级渲染,支持全选,在较大数据量上也有较高的性能

全量数据前端搜索

搜索逻辑默认是如果当前节点包含搜索关键词,则它的子节点全部展示(如果仅仅想展示包含搜索关键词的选项可以设置ancestorHitShow为false);如果当前节点不包含搜索关键词,但至少一个它的子节点包含搜索关键字,则当前节点展示

cascader-tree-select

选中父节点,默认勾选全部子节点

cascader-tree-select

各层级节点全选

第一级面板全选相当于所有节点全部选中,数万量级节点选中到页面渲染也能快速完成

cascader-tree-select

快速安装使用

npm i cascader-tree-select --save
# or
yarn add cascader-tree-select

在main.js中引入, vue版本应在2.7以上

import CascaderTreeSelect from 'cascader-tree-select'
import 'cascader-tree-select/src/style.less';
import 'element-ui/lib/theme-chalk/index.css'

Vue.use(CascaderTreeSelect)

请确保你的项目引入了'element-ui/lib/theme-chalk/index.css', 因为本组件依赖于 element-ui

在vue文件中直接使用

<template>
  <cascader-tree-select
    :panelTitleList="['一级标题', '二级标题', '三级标题', '四级标题']"
    :options="_mock.array"
    @change="handleChange"
  ></cascader-tree-select>
</template>

<script setup>
  import Mock from 'mockjs'
  
  const _mock = Mock.mock({
    'array|100': [
      {
        label: '@csentence(6)',
        value: '@increment()',
        'children|10': [
          {
            label: '@csentence(6)',
            value: '@increment()',
            'children|10': [
              {
                label: '@csentence(6)',
                value: '@increment()',
              }
            ]
          }
        ]
      }
    ]
  })
  const handleChange = (result) => {
    console.log(result)
  }
</script>

props

参数说明类型可选值默认值
value选中值array-[]
options可选数据源array-[]
needResultPanel是否需要结果面板booleantrue/falsetrue
resultLabelJoiner结果面板的选项名称拼接符string->
needSearch是否需要前端搜索booleantrue/falsetrue
placeholder搜索框的占位文本string-请输入关键词
size搜索框的尺寸stringmedium / small / minismall
cascaderMaxLevel级联框的最大层级number-2
panelTitleList级联面板的标题array-'一级', '二级', '三级', '四级'
ancestorHitShow当前节点命中搜索词,它的子节点无论是否命中搜索词均展示booleantrue/falsetrue

node字段

字段名称说明类型可选值默认值
uid随机idstring--
label当前节点的名称string--
value当前节点的值string--
level当前节点的层级number--
leaf是否是叶节点booleantrue/falsefalse
disabled是否被禁用booleantrue/falsefalse
parent当前节点的父节点---
children当前节点的子节点---
path当前节点所在的各级菜单的value所组成的数组array--
pathName当前节点所在的各级菜单的label所组成的数组array--
leafNodesNum当前节点的子节点数量number--
checked当前节点是否被选中booleantrue/falsefalse
indeterminate当前节点是否有部门子节点被选中booleantrue/falsefalse
menuNodeShow当前节点是否展示booleantrue/falsetrue
colorDangerField该字段值存在,节点标红string--

events

事件名称说明回调参数
change当选中节点变化时触发选中节点的path组成的二维数组

Methods

方法名称说明参数
initMenuStore重置到初始状态可选数据源,已选中值