首页 > 其他分享 >vue3 多级数据下拉选择组件

vue3 多级数据下拉选择组件

时间:2023-05-08 15:44:57浏览次数:34  
标签:__ el default 多级 tree color vue3 组件 type

若依的下拉组件太复杂,我改了一下,希望对大家有帮助,基于 element-plus el-tree-select 组件:

举个栗子,TreeSelect.vue:

<template>
  <div>
    <el-tree-select
      style="width:100%"
      v-model="valueId"
      id="tree-option"
      ref="selectTree"
      :placeholder="placeholder"
      clearable
      filterable
      :accordion="accordion"
      :data="options"
      :props="objMap"
      :node-key="objMap.value"
      :expand-on-click-node="false"
      :default-expand-all="defaultExpandAll"
      ></el-tree-select>
  </div>
</template>

<script setup>

const { proxy } = getCurrentInstance();

const props = defineProps({
  defaultExpandAll:{
    type : Boolean,
    default : ()=>{ return false}
  },
  /* 配置项 */
  objMap: {
    type: Object,
    default: () => {
      return {
        value: 'id', // ID字段名
        label: 'label', // 显示名称
        children: 'children' // 子级字段名
      }
    }
  },
  /* 自动收起 */
  accordion: {
    type: Boolean,
    default: () => {
      return false
    }
  },
  /**当前双向数据绑定的值 */
  value: {
    type: [String, Number],
    default: ''
  },
  /**当前的数据 */
  options: {
    type: Array,
    default: () => []
  },
  /**输入框内部的文字 */
  placeholder: {
    type: String,
    default: ''
  }
})

const emit = defineEmits(['update:value']);
const valueId = computed({
  get: () => props.value,
  set: (val) => {
    emit('update:value', val)
  }
})
</script>

<style lang='scss' scoped>
@import "@/assets/styles/variables.module.scss";
.el-scrollbar .el-scrollbar__view .el-select-dropdown__item {
  padding: 0;
  background-color: #fff;
  height: auto;
}

.el-select-dropdown__item.selected {
  font-weight: normal;
}

ul li .el-tree .el-tree-node__content {
  height: auto;
  padding: 0 20px;
  box-sizing: border-box;
}

:deep(.el-tree-node__content:hover),
:deep(.el-tree-node__content:active),
:deep(.is-current > div:first-child),
:deep(.el-tree-node__content:focus) {
  background-color: mix(#fff, $--color-primary, 90%);
  color: $--color-primary;
}
</style>

标签:__,el,default,多级,tree,color,vue3,组件,type
From: https://www.cnblogs.com/kitty-blog/p/17381940.html

相关文章

  • vue3 通过fuse.js 实现前端模糊查询
    在项目中写好多个查询组件,基于element-plusel-select组件:举个栗子,SelectAllCompany.vue:<template><!--获取客户下拉数据,type0有限公司--><el-selectv-model="current":multiple="multiple"remote:remote-method="querySearch":suff......
  • vue2自定义组件@click点击失效问题及解决
    1.参照官方文档,可以用@click.native=“click”解决2.$emit组件之间事件传递解决https://www.jb51.net/article/246610.htm......
  • 若依--图片预览组件
    若依的图片预览组件,很实用,放在这里:<template><el-image:src="`${realSrc}`"fit="cover":style="`width:${realWidth};height:${realHeight};`":preview-src-list="realSrcList":preview-teleported="t......
  • vue3 证件识别上传组件封装
    证件图片识别上传根据业务需要,经常涉及到证件上传,例如身份证上传、银行卡、营业执照等信息,根据设计师的设计,单独封装了一个上传组件。识别接口后端用的是阿里云的。上传组件用的是element-plusel-upload上代码:<template><divclass="component-upload-image"><el-up......
  • 若依--字典标签组件完善
    由于若依是基于element,但是在实际业务中,往往会出现标签不够用的情况,数据标签回显样式只有一下六种://数据标签回显样式constlistClassOptions=ref([{value:"default",label:"默认"},{value:"primary",label:"主要"},{value:"success",label:&qu......
  • ZK----第七章 ZUML页面及XUL组件集
    基本组件Label组件:89用来显示一段文字<labelvalue=”hello”/>属性:pre、hyphen、maxlength、multiline  按钮组件:90两种:button和toolbarbutton属性: Label:名称、image:按钮显示的图像、(dir:控制label和image的显示位置,orient:控制布局为横向或纵向)<button label=”left”ima......
  • draggable 组件使用(拖拽排序及拖拽交换功能 swap)
    一、template里<draggable v-model="myArray" group="people" @start="drag=true" @end="drag=false"> <divv-for="elementinmyArray":key="element.id">{{element.name}}</......
  • 界面控件DevExpress Blazor UI v22.2亮点:全新的Window组件
    DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpressDashboardeXpressApp框架、适用于VisualStudio的CodeRush等一系列辅助工具,该组件拥有众多新产品和数十个具有高影响力的功能,可为桌面、Web和移动应用提供直观的解决方案,全面解决各种使用场......
  • 列表的批量操作组件封装 + 权限 ,如何更优雅的实现呢?Vue3
    这个组件解决的问题?在以往的项目当中,我从未想过要对批量/列表数据的操作按钮做什么变动,直到最近的一次开发,让我突然觉得可以将操作按钮也做成一个公共组件,在做前端开发时,更加专注于js代码逻辑。如何使用?全局(main.js中)引用操作组件BatchOperation.vue创建页面操作按钮act......
  • k8s集群组件
    k8s集群有以下组件:Master:Kubernetes集群的控制中心,包括:APIServer:在Kubernetes集群中,APIserver扮演一个接口,使用户和管理员可以通过kubectl或其他工具与集群进行交互,而不必直接与底层组件打交道。同时,所有其他Kubernetes组件,包括kubelet、kube-proxy、controllerman......