tree-select使用

8 篇文章 0 订阅
5 篇文章 1 订阅


tree-select官方文档

安装

npm install --save @riophae/vue-treeselect

基本使用

在vue中的使用:

<!-- Vue SFC -->
<template>
  <div>
	<treeselect
	   :multiple="true"
	   :options="options"
	   placeholder="Select your favourite(s)..."
	   v-model="value"
	   />
	 <treeselect-value :value="value" />
	</div>
</template>

<script>
  // import the component
  import Treeselect from '@riophae/vue-treeselect'
  // import the styles
  import '@riophae/vue-treeselect/dist/vue-treeselect.css'

  export default {
  data: () => ({
    value: [],
    options: [ {
      id: 'fruits',
      label: 'Fruits',
      children: [ {
        id: 'apple',
        label: 'Apple 🍎',
        isNew: true,
      }, {
        id: 'grapes',
        label: 'Grapes 🍇',
      }, {
        id: 'pear',
        label: 'Pear 🍐',
      }, {
        id: 'strawberry',
        label: 'Strawberry 🍓',
      }, {
        id: 'watermelon',
        label: 'Watermelon 🍉',
      } ],
    }, {
      id: 'vegetables',
      label: 'Vegetables',
      children: [ {
        id: 'corn',
        label: 'Corn 🌽',
      }, {
        id: 'carrot',
        label: 'Carrot 🥕',
      }, {
        id: 'eggplant',
        label: 'Eggplant 🍆',
      }, {
        id: 'tomato',
        label: 'Tomato 🍅',
      } ],
    } ],
  }),
}
</script>

在vxe-table中使用

vxe-table文档

normalizer 转换数据结构

<template>
   <vxe-table
    border
    resizable
    height="400"
    :data="list"
    :edit-config="{trigger: 'click', mode: 'row'}">
	  <vxe-table-column field="fruit" min-width="160" title="水果" :edit-render="{name: 'input', attrs: {}}">
        <template v-slot:edit="{ row }">
          <treeselect
          v-model="row.fruit.fruitId"
          :options="options"
          :disable-branch-nodes="true"
          :normalizer="normalizer"
          style="width: 150px"
          placeholder="请选择"
          />
        </template>
        <template v-slot="{ row }">
          <treeselect
          v-model="row.fruit.fruitId"
          :options="options"
          :disable-branch-nodes="true"
          :normalizer="normalizer"
          style="width: 150px"
          placeholder="请选择"
          />
        </template>
      </vxe-table-column>
    </vxe-table>
 </template>
<script>
  // import the component
  import Treeselect from '@riophae/vue-treeselect'
  // import the styles
  import '@riophae/vue-treeselect/dist/vue-treeselect.css'

  export default {
  data: () => ({
    list: [],
    options: [],
  }),
    created() {
    this.getOptions()
  },
  methods: {
    //后台返回的数据如果和VueTreeselect要求的数据结构不同,需要进行转换
    normalizer(node){
      //去掉children=[]的children属性
      if(node.children && !node.children.length){
          delete node.children;
      }
      return {
          id: node.fruitId,
          label:node.fruitName,
          children:node.children
      }
    },
    getOptions(){
    //这里获取后台返回的treeSelect选项数据,并给options赋值
    this.options =  [ {
	     fruitId: 'fruits',
	      fruitName: 'Fruits',
	      children: [ {
	        fruitId: 'apple',
	        fruitName: 'Apple 🍎',
	      }, {
	        fruitId: 'grapes',
	        fruitName: 'Grapes 🍇',
	      }, {
	        fruitId: 'pear',
	        fruitName: 'Pear 🍐',
	      }, {
	        fruitId: 'strawberry',
	        fruitName: 'Strawberry 🍓',
	      }, {
	        fruitId: 'watermelon',
	        fruitName: 'Watermelon 🍉',
	      } ],
	    }, {
	      fruitId: 'vegetables',
	      fruitName: 'Vegetables',
	      children: [ {
	        fruitId: 'corn',
	        fruitName: 'Corn 🌽',
	      }, {
	        fruitId: 'carrot',
	        fruitName: 'Carrot 🥕',
	      }, {
	        fruitId: 'eggplant',
	        fruitName: 'Eggplant 🍆',
	      }, {
	        fruitId: 'tomato',
	        fruitName: 'Tomato 🍅',
	      } ],
	    } ]
    }
  }
}
</script>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
a-tree-select是一个树形选择控件,用于在前端页面中展示一个可搜索的下拉框,并且支持多选和级联选择的功能。根据引用\[1\]和引用\[3\]的内容,可以看出a-tree-select使用方式和一些注意事项。 在使用a-tree-select时,需要传入一些属性来配置其行为和样式。例如,可以使用v-model属性来绑定选择的值,使用tree-data属性来传入树形数据,使用placeholder属性来设置默认的提示文本。还可以使用dropdown-style属性来设置下拉框的样式,使用treeNodeFilterProp属性来设置搜索时匹配的字段。 此外,根据引用\[3\]的内容,还可以自定义下拉框中的title和展示icon。可以通过在treeData的每一项中加入scopedSlots:{title:'custom'}来实现自定义。同时,可以使用treeNodeLabelProp属性来设置选中后输入框中显示的值。 总结起来,使用a-tree-select时,需要传入一些属性来配置其行为和样式,可以自定义下拉框中的title和展示icon,还可以设置选中后输入框中显示的值。具体的使用方式可以参考引用\[1\]和引用\[3\]中的示例代码。 #### 引用[.reference_title] - *1* *2* [a-tree-select 组件 实现 组织架构的展示——数据的操作——基础积累](https://blog.csdn.net/yehaocheng520/article/details/128340657)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Ant-design 的 a-tree-select 使用](https://blog.csdn.net/qq_37984232/article/details/129204679)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值