关于vue-treeselect使用方法

项目场景:新增物料属于种类包含子节点,单纯的select组件不够使用


问题描述

vue-treeselect的文档是英文版,对于前端初学者不算友好

vue-treeselect官网

vue-treeselect使用流程

npm install --save @riophae/vue-treeselect                      npm下载组件

import Treeselect from "@riophae/vue-treeselect";           应用页面导入组件

import "@riophae/vue-treeselect/dist/vue-treeselect.css";       应用页面导入样式


vue-treeselect组件属性

(正常使用)

<Treeselect

                :disabled="readonly"

                v-model="equipmentTypeId"

                style="width: 320px"

                placeholder="设备类型"

                noChildrenText="暂无数据"

                noOptionsText="请先选择采购方式"

                noResultsText="暂无匹配项"

                loadingText="数据加载中"

                :multiple="false"

                @select="handleSelect"

                :options="optionsTree"

                :normalizer="normalizer"

                @input="change"

              />

(在table-column中使用建议按下操作,避免操作同一数据) 

 <Treeselect

                v-model="scope.row.equipmentTypeId"      //这里是绑定的值,也就是选中值

                style="width: 320px"

                placeholder="设备类型"           //默认展示文本

                noChildrenText="暂无数据"      //子节点数据为空时展示文本

                noOptionsText="请先选择采购方式"   //组件数据为空或者null时展示文本

                noResultsText="暂无匹配项"    //搜索展示文本

                loadingText="数据加载中"      //数据加载展示文本

                :multiple="false"      //是否多选

                @select="handleSelect"  //选中事件 回调函数里面的参数代表着选中节点的属性

                :options="scope.row.optionsTree"  //树形下拉菜单选项的数据源

                :normalizer="normalizer"    //自定义展示字段,把自己要展示的赋予组件固定展示的字段

                @input="change"   //选中事件,俩个参数,一个是选中项绑定的id,另一个未知

  />

           

                append-to-body      //当下拉框被其他组件遮挡时的处理方法

                z-index="9000"   

           


normalizer声明在data中,用函数的方法展示

normalizer(node) {

        return {

       id: node.equipmentTypeId, //   (这里是选中时的值)

       label: node.equipmentName, //   (这里是选中时你要展示的文本)

        };

      },

vue-treeselect在使用单选多选的注意点

当绑定的multiple属性bol值为false时,当前为单选模式,组件v-model默认值要为null,否则组件会默认展示unknow。这里input事件中的第一参数是string类型

当绑定的multiple属性bol值为true时,当前为多选模式,组件v-model默认值要为空数组,否则组件会默认展示unknow。这里input事件中的第一参数是arrary类型

### 关于 Vue-Treeselect使用教程 #### 安装与引入 为了在项目中使用 `vue-treeselect` 组件,首先需要安装该库。可以通过 npm 或 yarn 来完成安装: ```bash npm install @riophae/vue-treeselect --save ``` 或者 ```bash yarn add @riophae/vue-treeselect ``` 接着,在项目的入口文件(通常是 `main.js`),可以按照如下方式全局引入并注册此组件[^3]。 ```javascript // main.js import Treeselect from '@riophae/vue-treeselect' import '@riophae/vue-treeselect/dist/vue-treeselect.css' Vue.component('treeselect', Treiselect) ``` #### 基本用法 下面是一个简单的例子来展示如何在一个页面上使用这个组件。这里定义了一个选项列表作为树结构的数据源,并将其绑定到 `<treeselect>` 标签上的 `:options` 属性;同时通过 v-model 双向绑定了所选中的节点 ID 到变量 selectedId 上[^1]。 ```html <template> <div id="app"> <!-- TreeSelect --> <label>Choose a node:</label> <treeselect :options="options" v-model="selectedId"/> <!-- Display the selected value --> <p>You have chosen {{ selectedValue }}</p> </div> </template> <script> export default { name: 'App', data() { return { options: [ { id: 'a', label: 'a', children: [] }, { id: 'b', label: 'b', children: [{ id: 'ba', label: 'ba' }] } ], selectedId: null, }; }, computed: { selectedValue() { const option = this.options.find(option => option.id === this.selectedId); return option ? option.label : ''; } } }; </script> ``` #### 配置项说明 除了基本属性外,还支持更多配置参数来自定义行为和外观,比如设置是否允许多选 (`multiple`)、禁用状态(`disabled`)等特性。具体可查阅官方文档获取完整的 API 列表[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值