element-ui Vue 封装组件按钮工具栏,使用slot插槽

news2025/1/15 23:38:28

封装常用按钮工具栏,方便其它页面调用

缺点:工具栏下面div会显示工具栏下面,下面需要使用margin-top:40px(小学生一个没整明白)希望大神能帮解决

运行效果

        

组件代码 tt-btnBar.vue

<template>
    <div>
        <div class="btnbarP">
			<div class="btnbar" :class="isFix=='1'?'fix':''">
				<div class="left">
					<i class="iconfont icon-biaodan" style="cursor: pointer;margin:0 6px"></i>
					{{title}} 
					<!-- slot插槽使用name属性固定显示位置 -->
					<slot name="lbtn"></slot>
					<el-button-group>
						<slot name="lbtngroup"></slot>
					</el-button-group>
				</div>
				<div class="right">
					<slot name="btn"></slot>					
					<el-button-group>
						<slot name="btngroup"></slot>
						<!-- 
							<el-button size="mini" type="primary">保存</el-button>
							<el-button size="mini">打印</el-button>
							<el-button size="mini" type="info">取消</el-button> 
						-->
					</el-button-group>
				</div>
			</div>
		</div>
    </div>
</template>

<script>
    export default {
        props:{
            title: {
				type: String,
				default: ""
			},
			// 默认固定顶部不动,
			isFix:{
				type: String,
				default: "1"
			}
        },
        data() {
            return {
                property: 'value',
            };
        },
    }
</script>

<style lang="scss" scoped>
    /* 固定工具栏 */
.btnbarP{
	/* 父窗占位 */
	width: 100%;
	height: 32px;
	// background-color: #fff; 
}
.btnbar {
	display: flex;
	justify-content: space-between;
	width: 100%;
	height: 32px;
	padding: 2px 10px ;
	line-height: 26px;
	border-radius: 8px 8px 0 0;
	background-color: rgb(212, 211, 211);
	overflow: auto;
	&.fix{
		/* 固定悬浮 */
		position: fixed;
		z-index: 999;
	}	

	.left {
		text-align: left;
	}
	.right {

		text-align: right;
	}
}

</style>

父窗口调用 testbtnbar.vue

<template>
    <div>
        <div style="height: 100px;background-color:rebeccapurple">
            <ttbtnbar title='固定到顶部' isFix="1">
                <template slot="lbtn">
                    <span>选择日期 </span>			
                    <el-date-picker class="datebox"
                        style="width: 150px;padding:0px 5px ;" 
                        align="right"
                        v-model="date"
                        type="date" 
                        value-format="yyyy-MM-dd"
                        placeholder="">
                    </el-date-picker>
                </template>

                <template slot="btngroup">
                    <el-button size="mini" @click="msg('11')" type="primary">保存</el-button>
                    <el-button size="mini" @click="msg('12')">打印</el-button>
                    <el-button size="mini" @click="msg('13')" type="info">取消</el-button>
                </template>
            </ttbtnbar>
        </div>

        <div style="display: flex;justify-content: space-between;">
            <div style="height: 100px;width: 60%;margin: 4px;border:2px solid #24941e;background-color: aqua;">
                <ttbtnbar title='不固定-加左右侧按钮' isFix="0">
                    <template slot="lbtngroup">
                        <el-button size="mini" @click="msg('1')">按钮1</el-button>
                        <el-button size="mini" @click="msg('2')">按钮2</el-button>
                        <el-button size="mini" @click="msg('3')">按钮3</el-button>
                    </template>
                    <template slot="btngroup">
                        <el-button size="mini" @click="msg('11')" type="primary">保存</el-button>
                        <el-button size="mini" @click="msg('12')">打印</el-button>
                        <el-button size="mini" @click="msg('13')" type="info">取消</el-button>
                    </template>
                </ttbtnbar>
            </div>
            <div style="height: 100px;width: 40%;margin: 4px;border:2px solid #24941e;background-color: red;">
                <ttbtnbar title='不固定-加左侧按钮' isFix="0">
                    <template slot="lbtn">
                        <el-button size="mini" @click="msg('l1')">按钮1</el-button>
                        <el-button size="mini" @click="msg('l2')">按钮2</el-button>
                        <el-button size="mini" @click="msg('l3')">按钮3</el-button>
                    </template>
                </ttbtnbar>
            </div>
        </div>
        <div style="height: 100px;width: 100%;margin: 4px;border:2px solid #24941e;background-color: red;">
                <ttbtnbar title='不固定-加左侧按钮' isFix="0">
                    <template slot="lbtn">
                        <el-button size="mini" @click="msg('l1')">按钮1</el-button>
                        <el-button size="mini" @click="msg('l2')">按钮2</el-button>
                        <el-button size="mini" @click="msg('l3')">按钮3</el-button>
                    </template>
                    <template slot="lbtngroup">
                        <el-button size="mini" @click="msg('l11')">按钮1</el-button>
                        <el-button size="mini" @click="msg('l22')">按钮2</el-button>
                        <el-button size="mini" @click="msg('l33')">按钮3</el-button>
                    </template>
                </ttbtnbar>
            </div>

        {{ property }}
        <div>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
            <h1>2222</h1>
        </div>
    </div>
</template>

<script>
import ttbtnbar from '@/components/tt-btnBar'
import {getNowDate} from '@/utils/formatTime';
export default {
    components: {
        ttbtnbar
    },
    data() {
        return {
            property: 'btbar测试',
            date:getNowDate()
        };
    },
    methods:{
        msg(str){
            console.log('msg',str);
        }
    }
}
</script>

<style lang="scss" scoped>
.datebox{
		height: 28px ;
		::v-deep .el-input__inner{
			height: 28px ;
		}
		::v-deep .el-input__icon{   
		    line-height: 28px;
		}
	}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1392709.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】详解文件与文件操作

1.什么是文件 文件是记录在外存上的相关信息的命名组合&#xff0c;但是在程序设计中&#xff0c;我们⼀般谈的文件有两种&#xff1a;程序文件、数据文件&#xff08;从文件功能的角度来分类的&#xff09;。 1.1程序文件 程序文件包括&#xff1a; 源程序文件 &#xff0…

Pytorch基础知识点复习

文章目录 并行计算单卡训练多卡训练单机多卡DP多机多卡DDPDP 与 DDP 的优缺点 PyTorch的主要组成模块Pytorch的主要组成模块包括那些呢&#xff1f;Dataset和DataLoader的作用是什么&#xff0c;我们如何构建自己的Dataset和DataLoader&#xff1f;神经网络的一般构造方法&…

头部姿态估计算法原理

人脸检测 文章目录 人脸检测一、前言二、原理三、代码实现 一、前言 头部姿态估计是通过一幅面部图像来获得头部的姿态角. 在3D空间中&#xff0c;表示物体的旋转可以由三个欧拉角(Euler Angle)来表示&#xff1a;分别计算 pitch(围绕X轴旋转)&#xff0c;yaw(围绕Y轴旋转) 和…

网络新手必读!CentOS 7系统IP配置与防火墙管理攻略

前言 掌握CentOS 7系统的网络配置技能&#xff0c;从IP地址、子网掩码、DNS到防火墙&#xff0c;一篇文章全搞定&#xff01;无论你是网络新手还是寻求深入了解的高手&#xff0c;这篇文章都为你提供了简单易懂的配置指南&#xff0c;助你轻松驾驭系统网络。摆脱繁琐的配置困扰…

C# 图解教程 第5版 —— 第23章 异常

文章目录 23.1 什么是异常23.2 try 语句23.3 异常类23.4 catch 子句23.5 异常过滤器23.6 catch 子句段23.7 finally 块23.8 为异常寻找处理程序23.9 进一步搜索23.9.1 一般法则23.9.2 搜索调用栈的示例&#xff08;*&#xff09; 23.10 抛出异常23.11 不带异常对象的抛出23.12 …

基于变换域的模版匹配

模板匹配原理 图像的空间域与其他域之间的变换&#xff0c;如傅里叶变换&#xff0c;小波变换&#xff0c;轮廓波变换&#xff0c;剪切波变换等&#xff0c;实际上是图像在其他坐标领域中的表现。在空间域中&#xff0c;图像的信息是像素值和坐标位置&#xff1b;在其他域中&a…

快速上手!LLaMa-Factory最新微调实践,轻松实现专属大模型

1.为什么要对Yuan2.0做微调&#xff1f; Yuan2.0&#xff08;https://huggingface.co/IEITYuan&#xff09;是浪潮信息发布的新一代基础语言大模型&#xff0c;该模型拥有优异的数学、代码能力。自发布以来&#xff0c;Yuan2.0已经受到了业界广泛的关注。当前Yuan2.0已经开源…

day19【LeetCode力扣】160.相交链表

day19【LeetCode力扣】160.相交链表 1.题目描述 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交**&#xff1a;** 题目数据 保证 整个链…

基于MATLAB计算无线通信覆盖(一)环境准备

一、环境 MATLAB 2022b 注&#xff1a;开始仿真前需部署地理坐标区和地理图&#xff0c;最好采用第三种&#xff0c;直接把底图数据下载到本地&#xff0c;防止连接不上网络时只能显示darkwater的底图。 可用于地理坐标区和地理图的底图如下表所示 二、下载底图并安装 工具&…

Intel开发环境Quartus、Eclipse与WSL的安装

PC &#xff1a;win10 64bit 安装顺序&#xff1a;先安装Quartus 21.4&#xff0c;接着Eclipse或者WSL&#xff08;Windows Subsystem for Linux&#xff09;&#xff0c;Eclipse与WSL的安装不分先后。 为什么要安装Eclipse&#xff1f; 因为Eclipse可以开发基于Nios II的C/…

RabbitMQ使用篇

☆* o(≧▽≦)o *☆嗨~我是小奥&#x1f379; &#x1f4c4;&#x1f4c4;&#x1f4c4;个人博客&#xff1a;小奥的博客 &#x1f4c4;&#x1f4c4;&#x1f4c4;CSDN&#xff1a;个人CSDN &#x1f4d9;&#x1f4d9;&#x1f4d9;Github&#xff1a;传送门 &#x1f4c5;&a…

CTF CRYPTO 密码学-1

题目名称&#xff1a;enc 题目描述&#xff1a; 压缩包中含两个文件&#xff1a;一个秘钥d.dec&#xff0c;一个密文flag.enc 解题过程&#xff1a; Step1&#xff1a;这题是一个解密他题目&#xff0c;尝试openssl去ras解密 工具简介 在Kali Linux系统中&#xff0c;openss…

交友系统程序开发,前后端源码交付,允许二开,UI配色新颖,APP小程序H5随心搭配!

在开发设计与测试阶段&#xff0c;主要包括了程序开发、测试和上线运营等环节。根据产品经理确定的功能需求&#xff0c;开发团队开始进行具体的编程和开发工作。这个过程中需要考虑到不同设备、不同系统和不同版本的需求&#xff0c;确保软件可以在不同平台上稳定运行。 测试是…

通过指令反向翻译进行自我对齐

1、写作动机&#xff1a; 对齐大型语言模型以执行指导性任务通常需要在大量人工标注的指令或偏好信息上进行微调&#xff0c;然而&#xff0c;使用此类高质量数据对指令遵循任务进行标注是难以扩展的。 2、贡献&#xff1a; 提出了一种可扩展的方法&#xff0c;通过自动标注…

【问题记录】使用命令语句从kaggle中下载数据集

从Kaggle中下载Tusimple数据集 1.服务器环境中安装kaggle 使用命令&#xff1a;pip install kaggle 2.复制下载API 具体命令如下&#xff1a; kaggle datasets download -d manideep1108/tusimple3.配置kaggle.json文件 如果直接使用命令会报错&#xff1a; root:~# kagg…

使用dbever连接 hsqldb

完整的url为 jdbc:hsqldb:hsql://ip:端口/别名 注意&#xff0c;hsqldb跟随应用启动和停止&#xff0c;所以当应用断点时&#xff0c;hsqldb也会连接不上导致查询数据失败&#xff0c;可以断点前进一步

IOS-相机权限申请-Swift

配置描述 在Info.plist文件中&#xff0c;新建一个键值对Privacy - Camera Usage Description&#xff08;或者NSCameraUsageDescription&#xff09;&#xff0c;值为申请描述说明&#xff0c;自定义的 申请 然后在需要申请的文件中导入AVFoundation import AVFoundation…

时间序列预测 — BiLSTM-Attention实现单变量负荷预测(Tensorflow)

专栏链接&#xff1a;https://blog.csdn.net/qq_41921826/category_12495091.html 专栏内容 ​ 所有文章提供源代码、数据集、效果可视化 ​ 文章多次上领域内容榜、每日必看榜单、全站综合热榜 ​ ​ ​ ​ ​ ​ ​ 时间序列预测存在的问题 ​ 现有的大量方法没有真正的预测未…

高校学生选课系统源码开发方案

一、项目背景与目标 &#xff08;一&#xff09;项目背景 随着高校教育的发展&#xff0c;学生选课系统成为了高校管理中不可或缺的一部分。传统的手工选课方式存在着效率低下、易出错等问题&#xff0c;因此需要开发一款高效、便捷的高校学生选课系统。 &#xff08;二&…

C++make_pair,你真的懂了吗?

其实写这篇文章我还是很忐忑的&#xff0c;因为用C也写了快一年了&#xff0c;平时代码量个人认为还可以&#xff0c;但是最近两天频繁犯错&#xff0c;下面先说说我写的错误吧&#xff01; 我们都知道make_pair返回的是一个pair类型的函数&#xff0c;而pair这个键值对它又是…