【Vue2.x】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 回显修改后重新编译的结果在这里,可以下载后直接引入项目使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值