select底部增加固定按钮

2023-10-31

<script setup lang="ts">
 import {ref,reactive} from 'vue'
const refSelect=ref(null);
 
 const state=reactive({
     options:[
       {
         value: 'Option1',
         label: 'Option1',
       },
     ]
 })

 //在下拉框展开时添加底部固定项(注意该方法可能随版本更新而不适用)
 const VisibleChange=(visible)=>{
     if(visible){
             //#region 添加底部操作按钮
             let bkpRef=refSelect.value;
             let popper = bkpRef.popperPaneRef;
             if (!Array.from(popper.children).some(v => v.className === 'bkp_add_fixed_bottom_select')) {
                 const el = document.createElement('div');
                 el.className = 'bkp_add_fixed_bottom_select';
                 el.style=`
                       font-size: 14px;
                       font-weight: 500;
                       height: 42px;
                       display: flex;
                       align-items: center;
                       justify-content: center;
                       cursor: pointer;
                       padding-top:4px;
                       border-top:1px solid rgb(240 242 245)
                 `
                 el.innerHTML = `
                       <span style="margin-right:8px">
                               <svg class="icon" aria-hidden="true">
                                     <use xlink:href="#icon-plus"></use>
                               </svg>
                        </span>
                       <span>新增</span>
                   `;
                 popper.appendChild(el);
                 el.onclick = () => {
                     // 底部按钮的点击事件 点击后想触发的逻辑也可以直接写在这
                     // onClickAdd();
             
                     // 以下代码实现点击后弹层隐藏 不需要可以删掉
                     if (bkpRef.toggleDropDownVisible) {
                         bkpRef.toggleDropDownVisible(false);
                     } 
                     else {
                         bkpRef.visible = false;
                     }
                 };
             }
             //#endregion
         
     }
 }


</script>

<template>
  <el-button type="primary">测试</el-button>
  <el-select
    ref="refSelect"
    placeholder="请选择..."
    @visible-change="VisibleChange"
    :popper-append-to-body="true"
  >
    <el-option
      v-for="item in state.options"
      :key="item.value"
      :label="item.label"
      :value="item.value"
    >
    </el-option>
  </el-select>

</template>

<style scoped>
header {
  line-height: 1.5;
}

.logo {
  display: block;
  margin: 0 auto 2rem;
}

@media (min-width: 1024px) {
  header {
    display: flex;
    place-items: center;
    padding-right: calc(var(--section-gap) / 2);
  }

  .logo {
    margin: 0 2rem 0 0;
  }

  header .wrapper {
    display: flex;
    place-items: flex-start;
    flex-wrap: wrap;
  }
}
</style>

参考

感谢该博主

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

select底部增加固定按钮 的相关文章

随机推荐

  • fedora系统更新时间

    先进行安装 yum install ntpdate 修改时区为上海 cp usr share zoneinfo Asia Shanghai etc localtime 之后运行两遍 ntpdate asia pool ntp org 使用c
  • 从Cortex-M33内核认识TrustZone

    欢迎大家关注STM32L5课程 本期我们会介绍STM32L5的内核 Cortex M33 它是ARM在MCU架构上增加了TrustZone这个安全扩展的一种内核实现 从这一期开始 我们进入技术部分的学习 L5快速入门 会由5期的介绍组成 会
  • git代码迁移后本地如何操作,如何变更为新的git仓库地址及重新配置用户名、密码

    git代码迁移后本地如何操作 如何变更为新的git仓库地址 答案是 直接切换git远程仓库地址即可 1 首先查看远程仓库的地址 git remote v 2 然后set url设置新的代码仓库地址 git remote set url or
  • .gitignore 文件和 .gitattributes 文件的使用

    每当想用 gitignore文件的时候 却发现已经push了不必要的文件 但如果你不慎在创建 gitignore文件之前就push了项目 那么即使你在 gitignore文件中写入新的过滤规则 这些规则也不会起作用 Git仍然会对所有文件进
  • cuda第一次计算耗时_FLUENT计算与GPU加速

    太长不看版本 结论如下 1 FLUENT中 GPU加速对于耦合求解器计算十分明显 3060ti能够提高计算效率约3倍 1080ti能够提高计算效率约2倍 2 FLUENT中 GPU加速对于分离式求解器效果不明显 这可能是由于网格数太少 GP
  • VirtualBox下Android-x86安装与基础配置

    虚拟机 Virtual Box 6 1 系统 android x86 64 8 1 r6 一 下载 Android x86 镜像 英文站 Android on x86 项目 中文站 安卓X86中文站 二 虚拟机配置 1 新建虚拟机 类型 L
  • 万能近似定理(universal approximation theorrm)

    神经网络的架构 architecture 指网络的整体结构 大多数神经网络被组织成称为层的单元组 然后将这些层布置成链式结构 其中每一层都是前一层的函数 在这种结构中 第一层由下式给出 第二层 第三层 以此类推 可以看出 每一层的主体都是线
  • Spring Framework与JDK版本对应关系

    最近在实践Spring项目时 发现无法通过注解的方式实现Bean容器管理 控制器报错信息为 Failed to read candidate component class 也就是注解扫描不了 在反复检查代码不存在问题后意识到可能是版本兼容
  • Java-主流框架—(10)Spring-微服务SpringBoot

    1 SpringBoot概述 SpringBoot提供了一种快速使用Spring的方式 基于约定优于配置的思想 可以让开发人员不必在配置与逻辑业务之间进行思维的切换 全身心的投入到逻辑业务的代码编写中 从而大大提高了开发的效率 Spring
  • 如何在mysql中创建学生信息表_数据库怎么创建学生信息表

    大家好 我是时间财富网智能客服时间君 上述问题将由我为大家进行解答 数据库创建学生信息表的方法是 1 新建表 单击数据库 studentDb 前图标 然后右键 表 文件包 单击 新建表 选项 进入 新建表 窗口 2 设定表标识字段id 填写
  • Vue项目安装core-js报错解决方案

    报错问题如下 出现这这种情况的多半是core js的版本不对 解决方案如下 亲测多次有效 1 安装cnpm npm install g cnpm registry https registry npm taobao org 2 查看cnpm
  • 浏览器页面后退,重新运行ajax

    问题描述 在浏览器页面后退时 也就是说你点击链接到一个页面 然后又点击后退按钮回到刚才的页面 结果发现jQuery的ajax GET请求不再执行了 解决方法 禁用ajax缓存 ajaxSetup cache false 吐槽 为了解决这个问
  • java中的String

    Java中的String类是一种复合数据类型 比较String类的是否相等也有2种办法 和equals 两种 String是一个系统定义的类 不是基本数据类型 有关字符串处理的方法非常多 有时候两个 一样 的字符串做相等的比较运算时会得到t
  • 华为OD机试真题-查找充电设备组合【2023Q1】【JAVA、Python、C++】

    题目描述 某个充电站 可提供n个充电设备 每个充电设备均有对应的输出功率 任意个充电设备组合的输出功率总和 均构成功率集合P的1个元素 功率集合P的最优元素 表示最接近充电站最大输出功率p max的元素 输入描述 输入为3行 第1行为充电设
  • 时序预测

    时序预测 MATLAB实现Bayes贝叶斯优化LSTM 长短期记忆神经网络 时间序列预测 预测效果一览
  • React - Websocket

    组件didMount调用 Store createWebSocket Math random Store url ws window backend server slice 7 apronMapWebsocket 这个要与后端提供的相同
  • C++函数重载、重写与重定义

    演示代码 include
  • 探索Java8——CompletableFuture: 组合式异步编程

    文章目录 Future接口 Future接口的局限性 使用 CompletableFuture 使用并行流对请求进行并行操作 使用 CompletableFuture 发起异步请求 如果你的意图是实现并发 而非并行 或者你的主要目标是在同一
  • https到底是如何防篡改的

    1 前言 https是一个老生常谈的话题了 也是面试过程种经常甚至必然会问到的一个问题 但当问到https为什么安全的时候 很多人的回答就是简单的回一句 因为他加密了 然后就没然后了 你也相当于啥都没回答出来 2 我为什么要写这篇文章呢 网
  • select底部增加固定按钮