如何修改vue-treeSelect的高度

目录
  • 修改vue-treeSelect的高度
  • vue-treeselect的基本使用
    • 1.vue-treeselect是一个树形的下拉菜单
    • 2.引入组件和样式
    • 3.使用

修改vue-treeSelect的高度

  .vue-treeselect{
    height: 28px;
  }
  .vue-treeselect .vue-treeselect__control{
    height: 28px !important;
  }
  .vue-treeselect__placeholder{
    line-height: 28px;
    font-size: 14px;
  }
  .vue-treeselect input{
    font-size: 16px;
  }

vue-treeselect的基本使用

官网地址:Vue-Treeselect

https://vue-treeselect.js.org/

公司用若依搞了一个速成项目,若依是一个免费开源的前后端项目,感兴趣的朋友百度。

在里边接触到了一个神奇的东西 :

vue-treeselect,用起来真的是一言难尽,不过研究过后发现还是很方便的,但是官网全英文,很难懂,网上其他资源也有限,不是很透彻,我给大家用最简单的方式讲一下基本的用法,解决你百分之八十的需求应该是没问题的。也记录一下方便自己以后查阅,话不多说,上才艺。

1.vue-treeselect是一个树形的下拉菜单

至于到底有多少节点那就要看你的数据源有多少层了,挺方便的。下面这个这个不用多说吧,下载依赖

npm install --save @riophae/vue-treeselect

2.引入组件和样式

至于是全局引入还是单页面引入那就看你自己需求了,我这里列举单页面引入。

import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";

3.使用

<treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="选择上级目录" @select="change(node)"/>
  • v-model:双向数据绑定,不用多说
  • options:树形下拉菜单选项的数据源
  • normalizer:自定义展示结构字段,说白了把自己的名字换成树规定的名字
  • select:选择事件

首先贴一段数据结构的代码瞅瞅:

        data: [{
          id: 10,
          label: '肉类',
          children: [{
            id: 11,
            label: '猪肉'
          }, {
            id: 12,
            label: '牛肉'
          }]
        },
        {
          id:20,
          label:'水果',
          children:[{
            id:21,
            label:'苹果',
            children:[{
              id:211,
              label:'青苹果'
            },{
              id:212,
              label:'红苹果'
            }]
          }]
        }],

首先说一下这个normalizer这个属性,看着花里胡哨,其实很好理解:

    normalizer(node) {
//当子节点也就是children=[]时候去掉子节点
      if (node.children && !node.children.length) {
        delete node.children;
      }
      return {
        id: node.catalogueId,
        label: node.catalogueName,
        children: node.children
      };
    },

他先把你数据里所有的children为空的节点都删掉,然后规定三个字段:id,label,children来更方便的操作数据。

参数node就是每个节点,通俗说就是每隔子项数据

  • id就是你v-model获取到的值,就相当于opiton里的value
  • label就是你要展示的值,让用户看到的东西,就相当于option里的label
  • children也不用说了,你数据的子节点

说的在在在通俗点,有可能你的后端工程师给你的数据id叫ids,label叫value,children叫content,但是树只认识id,label,children,那你给他对应上就行了,就这么简单。

再来就是选择事件了,这个好理解,参数node是当前的节点,你可以得到他做你想做的操作

change(node){
    this.aa=node.firstName
    ...
}

说到这里就已经可以应付大多数需求了,其他花里胡哨的功能小伙伴们自己研究吧,如果有心得也可以分享给我。

ps:如果后端给你的是同级结构数据,让你自己转换为树形结构的话,我知道最快速的方法就是若以框架里封装好的方法,非常方便,一行搞定(若依框架yyds),有需要的小伙伴自己查看。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 关于vue-treeselect绑值、回显等常见问题的总结

    目录 vue-treeselect绑值.回显常见问题 这里以表单里的举例 最主要的几点就是 vue3-treeselect绑定数据有bug问题 vue-treeselect绑值.回显常见问题 最近vue-treeselect使用的比较多,分享一波 可以用在表单里,也可以用在可编辑的表格内 这里以表单里的举例 在main.js中引入 import ElTreeSelect from 'el-tree-select' import Treeselect from '@riophae/vue-tree

  • 在vue中使用vant TreeSelect分类选择组件操作

    中文文档:TreeSelect 分类选择 效果展示: //先在你需要的页面中引入,第一个是弹出层,第二个是选择的 import { Popup } from "vant"; import { TreeSelect } from "vant"; 代码部分: <van-popup v-model="policeShow" position="top" :overlay="true"> <van

  • vue-treeselect无法点击问题(点击无法出现拉下菜单)

    目录 vue-treeselect无法点击 问题原因 可正常点击 不能正常点击 vue-treeselect的基本一些用法 1.首先需要先安装 2.需要引入至vue页面使用 3.需要在页面中写入 4.这里举例实际应用 5.当点击时加载子数据 6.实际的效果图 vue-treeselect无法点击 问题原因 样式冲突(使用了elementui) 场景:在el-form标签中,如果使用了标签,并且父标签不是的话,就会出现无法点击的问题.(没有严格按elementui的标签嵌套) 可正常点击 <el-

  • vue treeselect获取当前选中项的label实例

    我就废话不多说了,大家还是直接看代码吧~ <treeselect :placeholder="$t('taskManage.lockTask.selDeptId')" :options="deptTree" :normalizer="normalizer" v-model="formData.deptId" @select="selectDepart"> </treeselect>

  • vue实现div高度可拖拽

    本文实例为大家分享了vue实现div高度可拖拽的具体代码,供大家参考,具体内容如下 这里有一个现成的demo,可以实现页面div的拖拽功能,但是和我想要的效果不是很一样,所以说后边有根据我的实际需求又重新修改了一下,先看一下现在的demo效果. <template> <div id="eagleMapContainer" style="border: 1px solid red;overflow-y: auto;" title="&quo

  • 修改vue+webpack run build的路径方法

    vue项目用webpack打包想要修改静态资源路径等,找到项目根目录下的config文件夹,打开该文件夹下的index.js文件,默认如下: // see http://vuejs-templates.github.io/webpack for documentation. var path = require('path') module.exports = { build: { env: require('./prod.env'), index: path.resolve(__dirname

  • 修改vue源码实现动态路由缓存的方法

    动态路由 官网解读 :我们经常需要把某种模式匹配到的所有路由,全都映射到同个组件.例如,我们有一个 User 组件,对于所有 ID 各不相同的用户,都要使用这个组件来渲染.那么,我们可以在 vue-router 的路由路径中使用"动态路径参数"(dynamic segment) 来达到这个效果. 即如果你有一个 盘点录入单 路由,但你想通过不同的传不同的 ID 来加载 CheckInputInfo 这个组件,若采用 params 方式,这时只需要在 path 后面配置 /:taskId

  • 如何修改Vue打包后文件的接口地址配置的方法

    1.背景 常规的vue项目分为本地环境和生产环境,我们只要对 config 文件夹下的 dev.env.js 和 prod.env.js 做相应的配置即可.但是最近在做的项目中,涉及到私有化部署,就是对应的生产环境的地址,不是唯一的.如果每次都修改一个地址,再打包文件进行部署,过程繁琐且低效.那么如何把环境地址设置成可配置的,不需要再构建代码就能直接生效呢? 2.可选方案 进行了调研后,网上介绍的方案有2种: 1)在static上设置一个config.js,把配置的参数设置成 window 下的

  • 修改Vue打包后的默认文件名操作

    一,问题 因为我想在我的服务器上部署两个vue项目,但是vue打包后默认的项目名是dist,这样子就跟我上一个vue项目冲突了.因此查了一下资料. 二,解决方案 进入config ⇒ index.js,在build中将dist关键字改成其他名称即可. 补充知识:vue 打包后文件命名 在 confige文件中的 index 以上这篇修改Vue打包后的默认文件名操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • vue Treeselect 树形下拉框:获取选中节点的ids和lables操作

    API: https://vue-treeselect.js.org/#events 1.ids: 即value 1.lable: 需要用到方法:@select(node,instanceId) 和 @deselect(node,instanceId) <template> <treeselect ref="DRHA_EFaultModeTree" v-model="DRHA_EFaultModeTree_value" :multiple=&quo

  • vue Treeselect下拉树只能选择第N级元素实现代码

    今天在项目中遇到一个需求,就是vue下拉树只能选择第三级选项,为了解决这个问题,查阅了官方文档 https://vue-treeselect.js.org/#disable-item-selection 然后看到isDisabled属性可以禁止选择,具体实现代码如下: <treeselect :disable-branch-nodes="true" :normalizer="normalizer" v-model="formData.goodsTyp

  • vue修改vue项目运行端口号的方法

    一.导语 最近在研究,左侧是导航,右侧是显示对应的内容,左右可单独滚动,不互相影响,如何实现? 萝卜蹲的游戏大家都玩过,白萝卜蹲,白萝卜蹲,白萝卜蹲完红萝卜蹲,可是若是在含有滚动条的页面的情况下,白萝卜是子元素,红萝卜是父元素,白萝卜蹲完不想让红萝卜蹲,怎么办? js是直接用阻止默认事件e.preventDefault(); ,vue虽然也有阻止默认事件@scroll.prevent,但是并没有效果啊,怎么办啊??有木有同学会啊??? 二.正文 记录下如何更改vue项目运行的端口号 使用webp

  • 利用JS响应式修改vue实现页面的input值

    前言 大部分人在看到这篇文章的标题时第一时间可能有点懵,我先简单介绍一下背景: 公司有一个基于Vue实现的登录中心是我负责维护的,页面上是一个常规的登录界面,用户名输入框.密码输入框和登录按钮各一个 今天有个同事(之后简称A)过来找我问到这么一个问题: 他负责的应用将登录中心集成到了APP端,他接到的需求是希望在APP端拉起登录页面时,自动将用户帐号和密码填入,然后自动点击登录. 开始正题 我们把登录页面简化成以下代码 <template> <div> <input name

随机推荐