Skip to content

tree-input(树输入框)

基础用法

示例:tree-input1.png

代码示例:

vue
<template>
  <div class="bs-bg-color-white p10">
    <v-tree-input
      placeholder="请选择级次"
      v-model="value"
      :data-type="'TREE'"
      :data="data"
      multiple
      :display="'CODE_NAME'"
      :props="props"
      @change="handleChange"
      @multiple-change="handleMultipleChange"
      @node-click="handleNodeClick"
    >
    </v-tree-input>
  </div>
</template>
<script>
export default {
  data() {
    return {
      value: "",
      data: [
        {
          label: "一级 1",
          code: "code1",
          children: [
            {
              label: "二级 1-1",
              code: "code1-1",
              pcode: "code1",
              children: [
                {
                  label: "三级 1-1-1",
                  code: "code1-1-1",
                  pcode: "code1-1",
                },
              ],
            },
          ],
        },
        {
          label: "一级 2",
          code: "code2",
          children: [
            {
              label: "二级 2-1",
              code: "code2-1",
              pcode: "code2",
              children: [
                {
                  pcode: "code2-1",
                  code: "code2-1-1",
                  label: "三级 2-1-1",
                },
              ],
            },
            {
              label: "二级 2-2",
              code: "code2-2",
              pcode: "code2",
              children: [
                {
                  pcode: "code2-2",
                  code: "code2-2-1",
                  label: "三级 2-2-1",
                },
              ],
            },
          ],
        },
        {
          label: "一级 3",
          code: "code3",
          children: [
            {
              label: "二级 3-1",
              code: "code3-1",
              pcode: "code3",
              children: [
                {
                  pcode: "code3-1",
                  code: "code3-1-1",
                  label: "三级 3-1-1",
                },
              ],
            },
            {
              label: "二级 3-2",
              code: "code3-2",
              pcode: "code3",
              children: [
                {
                  label: "三级 3-2-1",
                  code: "code3-2-1",
                  pcode: "code3-2",
                },
              ],
            },
          ],
        },
      ],
      props: {
        label: "label",
        children: "children",
        id: "code",
        pid: "pcode",
        disabled: "disabled",
      },
    };
  },
  methods: {
    /**
     * 处理改变事件
     */
    handleChange(dispatchValue, dispatchData) {
      console.log("dispatchValue", dispatchValue);
      // dispatchValue (3) ['code1', 'code1-1', 'code1-1-1']
      console.log("dispatchData", dispatchData);
      // dispatchData (3) [{children: Array[1],code:"code1",label:"一级 1"}, {…}, {…}]
      console.log("value", this.value);
      // value value (3) ['code1', 'code1-1', 'code1-1-1', __ob__: Observer]
    },
    /**
     * 处理节点点击事件
     */
    handleNodeClick(data) {
      console.log("data", data);
      // data {children: Array[1],code:"code1",label:"一级 1"}
    },
  },
  mounted() {},
  computed: {},
};
</script>
<style lang="scss" scoped>
@import "~@/assets/style/variables.scss";
</style>

属性:

参数说明类型可选值默认值
data数据Array-[]
value绑定的值String, Number, Array-[]
dataType数据类型String'ARRAY','TREE''ARRAY'
expand是否默认展开Boolean-true
expandOnClickNode是否在点击节点的时候展开或者收缩节点Boolean-false
multiple复选状态Boolean-true
collapseTags多选状态下是否折叠已选项Boolean-true
changeMultiple更改复选状态Boolean-false
strictly在复选模式下,是否严格的遵循父子不互相关联Boolean-false
leaf是否只能选择叶子节点Boolean-false
clearable在单选模式下, 是否可清空组件Boolean-true
disabled是否禁用Boolean-false
placeholder提示语String-''
display数据显示类型String'CODE','NAME','CODE_NAME''CODE_NAME'
filterConsists过滤集中包含的值String'SELF','CHILDREN''SELF'
toolbar是否显示工具栏Boolean-false
level默认的显示级次Numbervalue >= 00
levelIncrement树展示级次增量值Numbervalue >= 00
placementpopover显示位置String-'bottom-start'
props展示数据树形结构Object-{
id: 'code',
label: 'name',
pid: 'pcode',
disabled: 'disabled',
children: 'children',
display: 'display',
}
sortKey排序字段对应的键名,如果没有传,则根据组件默认排序String-''
simpleOption是否为简单的选项数据Boolean-true
enablePinyin是否启用拼音匹配Boolean-true
tooltip是否显示提示信息Boolean-false

事件:

事件名说明参数参数说明
complete加载完成事件--
focus获取焦点事件event-
blur失去焦点事件event-
node-click节点点击事件data原始数据
clear清空事件--
level-change当前的显示级次变化currentLevel当前显示级次
visible-change内容区域显示状态变化事件value-
multiple-change复选状态变化currentMultiple当前复选状态
input输入事件dispatchValue-
change改变事件dispatchValue,dispatchData

插槽:

插槽名称说明参数
自定义内容项node
content-footer内容区底部插槽-
tooltip提示信息内容tooltipData