el-select下拉框内展示el-tree结构

el-select下拉框内展示el-tree结构

封装组件

<template>
  <div>
    <!-- :size="size" -->
    <el-select
      v-model="mineStatus"
      ref="searchSelect"
      :placeholder="placeholder"
      :multiple="!Single"
      :disabled="disabled"
      @change="selectChange"
      :loading="loading"
    >
      <el-option
        :value="mineStatusValue"
        v-on:click="doThis($event)"
        style="position: relative; width: 100%"
        :style="{ height: height + 'px', 'overflow-y': overflow }"
      >
        <div style="height: 100%" v-on:click="doThis($event)">
          <div style="padding-right: 10px" v-on:click="doThis($event)">
            <el-tree
              v-if="treeData.length"
              :data="treeData"
              :show-checkbox="!Single"
              ref="tree"
              style="font-weight: 500"
              highlight-current
              :props="defaultProps"
              :default-expand-all="defaultExpandAll"
              :default-checked-keys="defaultCheckedKeys"
              :check-strictly="Single"
              :filter-node-method="filterNode"
              node-key="id"
              @check-change="handleCheckChange"
              @node-click="clickNode"
            >
            </el-tree>
          </div>
          <div
            v-if="!treeData.length"
            style="
              width: 100%;
              height: 100%;
              background-color: #ffffff;
              text-align: center;
            "
          >
            暂无数据
          </div>
        </div>
        <div
          id="load"
          v-show="load"
          style="
            position: absolute;
            left: 0;
            top: 0;
            height: 200px;
            width: 100%;
          "
        ></div>
      </el-option>
    </el-select>
  </div>
</template>

<!-- /**
 * 组件说明
 * 属性:
 * 参数                     说明                       类型                    默认值
 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 * placeholder              输入框占位文本                String                '请选择'
 * defaultProps             需要使用的展示字段值          Object                {children: 'children',label: 'label'}
 * data                     tree 的数据源                 Array                 []
 * filterable               是否开启搜索功能              Boolean                false
 * Single                   tree下拉是否单选              Boolean                false
 * defaultExpandAll         tree是否展开全部节点          Boolean                 false
 * defaultCheckedKeys          默认勾选节点               Array                   []
 * disabled                   是否禁止操作                Boolean                Array
 * size                    el-option大小尺寸选择          String                 medium
 *
 * 事件:
 * selectTerrEvent  获取选中对象 返回数组
 */ -->
<script>
const deepFind = (arr, condition, children) => {
     
  let main = [];
  try {
     
    (function poll(arr, level) {
     
      if (!Array.isArray(arr)) return;
      for (let i = 0; i < arr.length; i++) {
     
        const item = arr[i];
        main[level] = item;
        const
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值