当前位置: 首页 > article >正文

【Vue2.x】vue-treeselect修改宽度、回显

目录

  • 修改vue-treeSelect 组件的高度
    • 方法1:CSS中的important语法,覆盖样式
    • 方法2:修改组件样式文件,重新引入样式文件
  • 修改单选的回显,显示当前选中节点以及相应父级节点
    • 第一步 下载源码
    • 第二步 修改源码
    • 第三步 编译源码
    • 第四步 将编译结果引入项目中,替换npm导入的 vue-treeselect

详细示例可在 vue-treeselect官网 查看

修改vue-treeSelect 组件的高度

方法1:CSS中的important语法,覆盖样式

.treeselect-main {
  width: 204px;
  line-height: 28px;
  .vue-treeselect__placeholder {
    line-height: 28px;
  }
  .vue-treeselect__control {
    height: 28px !important;
  }
}

对应的 vue-treeselect 组件添加 class="treeselect-main"

	<Treeselect
        class="treeselect-main"
        v-model="listQuery.treeOption"
        :options="treeSelectOptions"
        :show-count="true"
        :append-to-body="true"
        z-index="9000"
        placeholder="请选择"
      />

方法2:修改组件样式文件,重新引入样式文件

在这里插入图片描述第一步:根据引入的样式文件路径,找到样式文件,复制到项目合适的样式文件夹、
第二步:根据需求修改Vue-treeselect的样式(高度)
在这里插入图片描述第三步:引入修改后的样式文件

修改单选的回显,显示当前选中节点以及相应父级节点

第一步 下载源码

源码下载:GitHub

第二步 修改源码

找到源码中的 SingleValue.vue 组件,修改源码如下(修改 renderSingleValueLabel 的 return 结果):

<script>
  import Input from './Input'
  import Placeholder from './Placeholder'

  export default {
    name: 'vue-treeselect--single-value',
    inject: [ 'instance' ],
    methods: {
      renderSingleValueLabel() {
        const { instance } = this
        const node = instance.selectedNodes[0]
        const customValueLabelRenderer = instance.$scopedSlots['value-label']
        return customValueLabelRenderer
          ? customValueLabelRenderer({ node })
          : node.nestedSearchLabel // todo 原值 node.label
      },
    },
    render() {
      const { instance, $parent: { renderValueContainer } } = this
      const shouldShowValue = instance.hasValue && !instance.trigger.searchQuery

      return renderValueContainer([
        shouldShowValue && (
          <div class="vue-treeselect__single-value">
            { this.renderSingleValueLabel() }
          </div>
        ),
        <Placeholder />,
        <Input ref="input" />,
      ])
    },
  }
</script>

第三步 编译源码

在源码根目录下执行 npm run build-library 命令,会打包编译源码,编译完成后,在源码根目录下生成一个dist目录,dist目录下就是编译的结果。
在这里插入图片描述

第四步 将编译结果引入项目中,替换npm导入的 vue-treeselect

此处以 vue-element-admin 项目为例,引入测试。将第三步编译好的 dist目录下的 js、css 等文件作为自定义组件引入项目中。
在这里插入图片描述
complex-table.vue 组件中引入测试
在这里插入图片描述
准备的测试数据 treeSelectOptions 如下:

	[
        {
          id: '1',
          label: 'a-1',
          children: [
            {
              id: '11',
              label: 'a-11'
            },
            {
              id: '12',
              label: 'a-12'
            },
            {
              id: '13',
              label: 'a-13'
            }
          ]
        },
        {
          id: '2',
          label: 'a-2',
          children: [
            {
              id: '21',
              label: 'a-21',
              children: [
                {
                  id: '211',
                  label: 'a-211'
                }
              ]
            },
            {
              id: '22',
              label: 'a-22'
            },
            {
              id: '23',
              label: 'a-23'
            }
          ]
        }
      ]

引用组件如下:
在这里插入图片描述
回见结果如下:
在这里插入图片描述
在这里插入图片描述
另外,vue-treeselect 回显修改后重新编译的结果在这里,可以下载后直接引入项目使用。


http://www.kler.cn/a/414568.html

相关文章:

  • 华为开源操作系统openEuler安装部署
  • Android音频框架总结
  • Blender 运行python脚本
  • nfs搭建文件存储
  • Neo4j图形数据库-Cypher中常用指令
  • Momenta java开发面试题及参考答案
  • 电脑无互联网连接怎么解决?分享5种解决方案
  • (0基础保姆教程)-JavaEE开课啦!--11课程(初识Spring MVC + Vue2.0 + Mybatis)-实验9
  • SpringBoot源码-Spring Boot启动时控制台为何会打印logo以及自定义banner.txt文件控制台打印
  • SQL操作语句回顾
  • Rook入门:打造云原生Ceph存储的全面学习路径(下)
  • 电脑鼠标不动了没反应怎么办?查看修复方法
  • HTML5的新特性
  • CentOS7安装nvm
  • Vue3+node.js实现登录
  • HTML 画布:网页上的创意绘图板
  • HarmonyOS开发:DevEco Studio的Beta3(5.0.5.200)新增和增强特性
  • TCP 连接池(**TCP Connection Pool**)
  • Rust如何编制前端路由
  • 生产Redis批量删除数据
  • 【Maven】Nexus私服
  • 【C++打怪之路Lv16】-- map set
  • 【新人系列】Python 入门(十三):函数进阶
  • 【jvm】什么是动态编译
  • 【金猿案例展】京东物流UData——物流行业数据分析智能体解决方案
  • Perplexica - AI 驱动的搜索引擎