vue实现表单下拉框和树形结构组合

1.饿了么一般下拉框+一般树形结构

 2.代码组合

//template部分
<el-form inline>
       <el-form-item>
              <el-select v-model="builder">
                <el-option
                  :value="builder"
                  style="height: 1200px; overflow: auto"
                >
                  <el-tree
                    :data="deptOptions"
                    :props="defaultProps"
                    :expand-on-click-node="false"
                    :filter-node-method="filterNode"
                    ref="tree"
                    node-key="id"
                    default-expand-all
                    highlight-current
                    @node-click="handleNodeClick"
                  >
                    <span class="span-ellipsis" slot-scope="{ node, data }">
                      <span
                        :class="['span-child']"
                        style="display: flex; align-items: center"
                        :title="node.label"
                      >
                        <img
                          v-if="data.deviceType == '41010000'"
                          src="./DataQuery/PowerDataQuery/images/ch_1_2.png"
                        />
                        <img
                          v-if="data.deviceType == '41020000'"
                          src="./DataQuery/PowerDataQuery/images/ch_1_2_online.png"
                        />
                        <span style="font-size: 14px">{{ node.label }}</span>
                      </span>
                    </span>
                  </el-tree>
                </el-option>
              </el-select>
            </el-form-item>
 </el-form>

//script部分

import { treeselect } from "@/api/buildingData";
export default {
  name: "Index",
  data() {
    return {
      deptOptions: [],
      // 版本号
      defaultProps: {
        children: "children",
        label: "label",
      },
    };
  },
  created() {
    this.getList();
  },
  methods: {
    filterNode(value, data) {
      if (!value) return true;
      return data.label.indexOf(value) !== -1;
    },
    //点击树节点调用
    handleNodeClick(data) {
      
    },
    //初始化树节点
    getList() {
      treeselect({}).then((res) => {
        this.deptOptions = res.data;
      });
    },
  },
};

3.存在问题

初始得给option一个高度,并且得给它y轴滚动,不然如果树形结构过长,会被隐藏,如下图

但是给了高度,设置了滚动效果,这时会出现两个滚动条 ,如下图

很费解,望各位码友们帮忙解惑。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值