0.1.0 • Published 5 years ago

k-tree-select v0.1.0

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

| VUE 树形控件

用清晰的层级结构展示信息,可下拉选择、展开或折叠,提供单选多选功能,支持v-model双向数据绑定

安装

npm i k-tree-select

使用

<template>
  <div>
   <tree-select
      only-leaf
      show-checkbox
      type="tree"
      v-model="selectValue"
      :label-key="labelKey"
      :value-key="valueKey"
      :data-source="list"
      @on-toggle-expand="toggleExpand"
      @on-select-change="selectChange"
      @on-check-change="checkChange"
    ></tree-select>
  </div>
</template>

<script>
import TreeSelect from "@idev4/k-tree-select";

// Vue.use(TreeSelect)   

export default {
  components: {TreeSelect},
  data() {
    return {
        list: [
        {
          name: "霍山县",
          pId: "341500000000000",
          open: "False",
          id: "341525000000000",
          children: [
            {
              name: "衡山镇",
              pId: "341525000000000",
              open: "False",
              id: "341525100000000"
            },
            {
              name: "与儿街镇",
              pId: "341525000000000",
              open: "False",
              id: "341525104000000"
            },
            {
              name: "黑石渡镇",
              pId: "341525000000000",
              open: "False",
              id: "341525105000000"
            },
            {
              name: "诸佛庵镇",
              pId: "341525000000000",
              open: "False",
              id: "341525106000000"
            },
            {
              name: "高桥湾现代产业园",
              pId: "341525000000000",
              open: "False",
              id: "341525401000000"
            }
          ]
        }
      ],
      showCheckBox: false,
      type:'select',
      labelKey: "name",
      valueKey: "id",
      childrenKey:'children',
      selectValue:'341525401000000',       //双向数据绑定当前选中值
    };
  },
  mounted(){
    setTimeout(()=>{
      this.selectValue = "341525106000000";
    },3000)
  },
  watch:{
      selectValue(){
          console.log('selectValue',this.selectValue);
      },
  },

  methods: {
    toggleExpand(node){
      console.log('toggleExpand',node);
    },
    selectChange(node){
      console.log('selectChange',node);
    },
    checkChange(nodes){
      console.log('checkChange',nodes);
    },
  }
};
</script>

| Attributes

属性说明类型可选值默认值是否必须
dataSource数据源Array--
labelKey数据显示keyString-label
valueKey取值key (不传默认传递节点完整数据)String-value-
childrenKey子集keyString-children-
v-model双向数据绑定 , props需传入valueKey,为 “,” 拼接的字符串String---
multiple单击多选----
only-leaf只取叶子节点数据----
show-checkbox开启复选框(复选框开启,v-model初始化可只传入需要选中的顶层节点的value----
img-source图标Objectnode:'(img path)'、leaf:'(img path)'、caretRight:'(img path)'、caretDown:'(img path)',--
propsdataSource数据配置选项具体看下表----

| Props

参数说明类型默认值是否必须
selected节点单选选中Boolean--
checked节点多选选中Boolean--
expand节点展开Boolean--

| Events

方法名说明参数
on-toggle-expand节点被点击展开收缩的时触发传递 dataSource 属性的数组中该节点所对应的对象 ( 对象中expand属性即当前展开状态 )
on-select-changeAttributes不含show-checkbox,节点被点选的时触发传递 dataSource 属性的数组中所选中的对象
on-check-changeAttributes含show-checkbox,节点checkbox被点击的时触发传递 dataSource 属性的数组中所选中的对象

| methods

方法名说明参数
getSelectedNodes获取当前单击选中的所有节点-
getCheckedNodes获取当前多选选中的所有节点-