uniapp-vue3-微信小程序-按钮组wo-btn-group

news2024/11/25 13:18:01

采用uniapp-vue3实现, 是一款支持高度自定义的按钮组组件,支持H5、微信小程序(其他小程序未测试过,可自行尝试)

可到插件市场下载尝试: https://ext.dcloud.net.cn/plugin?id=15012

  • 使用示例

请添加图片描述

<template>
	<view>
		<view class="name">按钮组组件: wo-btn-group</view>
		<view class="card">
			<view class="header">默认样式(包括disabled禁用)</view>
			<view class="content">
				<woBtnGroup :default-value="state.value" @change="onChange"></woBtnGroup>
			</view>
		</view>
		<view class="card">
			<view class="header">按钮形状:椭圆(默认)、方形、圆形</view>
			<view class="content">
				<view class="box">
					<view class="title">默认椭圆:</view>
					<woBtnGroup :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
				<view class="box">
					<view class="title">方形:</view>
					<woBtnGroup :shape="'space'" :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
				<view class="box">
					<view class="title">圆形(圆形无边框):</view>
					<woBtnGroup :shape="'round'" :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
			</view>
		</view>
		<view class="card">
			<view class="header">轮廓:</view>
			<view class="content">
				<view class="box">
					<woBtnGroup outline :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
				<view class="box">
					<woBtnGroup outline :shape="'space'" :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
				<view class="box">
					<woBtnGroup outline :shape="'round'" :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
			</view>
		</view>
		<view class="card">
			<view class="header">自定义颜色:</view>
			<view class="content">
				<view class="box">
					<woBtnGroup outline :color="'orange'" :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
				<view class="box">
					<woBtnGroup :color="'orange'" :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
			</view>
		</view>
		<view class="card">
			<view class="header">自定义边框:</view>
			<view class="content">
				<view class="box">
					<view class="title">无边框:</view>
					<woBtnGroup :border-obj="state.borderStyle1" :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
				<view class="box">
					<view class="title">虚线边框:</view>
					<woBtnGroup outline :border-obj="state.borderStyle2" :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
				<view class="box">
					<view class="title">圆角幅度:</view>
					<woBtnGroup outline :border-obj="state.borderStyle3" :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
				<view class="box">
					<view class="title">边框宽度:</view>
					<woBtnGroup :border-obj="state.borderStyle4" :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
			</view>
		</view>
		<view class="card">
			<view class="header">自定义暗黑模式:</view>
			<view class="content">
				<view class="box dark1">
					<woBtnGroup :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
				<view class="box dark1">
					<woBtnGroup :shape="'round'" :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
				<view class="box dark dark-border">
					<woBtnGroup :shape="'round'" :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
				<view class="box dark dark-border">
					<woBtnGroup :border-obj="state.borderStyle1" :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
				<view class="box dark dark-border1">
					<woBtnGroup :shape="'space'" :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
				<view class="box dark dark-border1">
					<woBtnGroup :border-obj="state.borderStyle1" :shape="'space'" :default-value="state.value" :options="state.options" @change="onChange"></woBtnGroup>
				</view>
			</view>
		</view>
	</view>
</template>

<script setup lang="ts">
import woBtnGroup from './woBtnGroup.vue'
import { reactive } from 'vue';

const state = reactive({
	borderStyle1: {
		isShow: false,
		size: '4rpx',
		style: 'dashed',
		radius: '70rpx'
	},
	borderStyle2: {
		isShow: true,
		size: '4rpx',
		style: 'dashed',
		radius: '70rpx'
	},
	borderStyle4: {
		isShow: true,
		size: '12rpx',
		style: 'solid',
		radius: '70rpx'
	},
	borderStyle3: {
		isShow: true,
		size: '4rpx',
		style: 'solid',
		radius: '16rpx'
	},
	value: 1,
  options: [
    {
      label: '按钮1',
      value: 1,
    },
		{
		  label: '按钮2',
		  value: 2,
			disabled: true
		},
    {
      label: '按钮3',
      value: 3,
    },
		{
		  label: '按钮4',
		  value: 4,
		},
		{
		  label: '按钮5',
		  value: 5,
		},
  ],
});
const onChange = (e: any) => {
	console.log('点击按钮:', e);
};
</script>

<style scoped>
.flex-center {
	display: flex;
	justify-content: center;
	align-items: center;
}
.name {
	font-weight: bold;
	padding: 40rpx 0 10rpx 20rpx;
}
.title {
	padding-bottom: 10rpx;
}
.box {
	margin: 20rpx
}
.dark1 {
	background-color: black;
	color: #fff;
	border-radius: 70rpx;
}
.dark {
	background-color: black;
	color: #fff;
}
.dark-border {
	padding: 10rpx;
	border-radius: 70rpx;
	border: 6rpx solid #3370FF;
}
.dark-border1 {
	padding: 10rpx;
	border: 6rpx solid #3370FF;
}
.card {
	background: #f1f1f1;
	margin: 40rpx 10rpx;
	padding: 30rpx;
	border-radius: 12rpx;
}
.header {
	font-size: 26rpx;
	display: flex;
	align-items: center;
	margin-bottom: 30rpx;
}
.content {
	font-size: 24rpx;
	/* padding-bottom: 20rpx; */
	/* background-color: black; */
	/* color: #fff; */
}
/* .btn-border {
	font-size: 28rpx;
	border: 4rpx solid #3370FF;
	padding: 4rpx;
	border-radius: 70rpx;
} */
</style>

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

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

相关文章

pythons实现protobuf序列化与反序列化

系列文章目录 训练地址&#xff1a;https://www.qiulianmao.com 基础-websocket逆向基础-http拦截基础-websocket拦截基础-base64编码与解码基础-protobuf序列化与反序列化视频号直播弹幕采集tiktok protobuf序列化与反序列化实战一&#xff1a;Http轮询更新中 websocket逆向-…

给课题组师弟师妹的开荒手册(终篇)

0 写在前面 终于&#xff0c;在结束收尾工作后敲下了开荒手册的终篇&#xff0c;自己三年研究生生活过的离理想中的完美还差很多&#xff0c;不过胜在完整&#xff0c;哈哈&#xff0c;小满胜万全嘛。希望以自己不太完美的经历为例&#xff0c;抛我的砖&#xff0c;引师弟师妹…

Switch模拟器-Ryujinx(龙神模拟器)安装教程

Ryujinx是由gdkchan带领团队运用C#语言创建并发布在GitHub平台的Switch开源模拟器. 系 统 要 求 内存8 GB RAM及以上 显卡支持Vulkan、OpenGL版本4.5及以上 64位系统 Windows 10 RS4&#xff08;Redstone 4&#xff0c;版本 1803&#xff09;或更高版本 软 件 教 程 第一…

数据结构详细笔记——栈与队列

文章目录 栈的三要素逻辑结构&#xff08;定义&#xff09;数据的运算&#xff08;基本操作&#xff09;存储结构&#xff08;物理结构&#xff09;顺序栈&#xff08;顺序存储&#xff09;链栈&#xff08;链式存储&#xff09; 队列的三要素逻辑结构&#xff08;定义&#xf…

实现更低功耗R5F51406BDNE、R5F51406ADFK、R5F51406ADFL、R5F51406AGFN搭载RXv2内核的32位微控制器

一、简介 RX140产品群是RX100系列中处理性能最强、功耗最低的微控制器。可以广泛应用于家用电器、工业控制和楼宇自动化等领域。RX140采用RXv2内核&#xff0c;工作频率最高48MHz&#xff0c;处理性能是32MHz运行的RX130的近两倍。此外&#xff0c;它在运行时的电路为56μA/MH…

03、RocketMQ环境搭建 -- linux

目录 RocketMQ环境搭建linux部署RocketMQ启动NameServer启动Broker关闭nameserver:关闭broker 监控平台 RocketMQ环境搭建 linux部署RocketMQ http://rocketmq.apache.org/release_notes/release-notes-4.4.0/ 下载包 解压失败 安装 zip、unzip应用 yum install zip unzip …

华为再度发声!坚决打好坚实的算力底座,为实现全智能新突破打好基础!

原创 | 文 BFT机器人 10月13号&#xff0c;在2023年中国移动全球合作伙伴大会上&#xff0c;华为轮值董事长胡厚崑发表讲话&#xff0c;在会议上胡厚崑发表“共建智算底座&#xff1a;坚持架构创新&#xff0c;汇聚生态力量&#xff0c;使能‘百模千态’大模型”观点&#xff…

Mac OS m1 下安装Gradle5.1

1. 下载、解压 1.1 下载地址 https://gradle.org 往下翻 选择 5.1 或者选择 任何 你想要的版本 ,点击 binary-only 即可下载 . 1.2 解压到指定目录 2. 配置环境变量 2.1 编辑环境文件 vi ~/.bash_profile #GRADLE相关配置 GRADLE_HOME/Users/zxj/Documents/devSoft/grad…

医院陪诊小程序:改善患者体验的技术创新

在数字化时代&#xff0c;医疗领域也迎来了革命性的变革。医院陪诊小程序作为这场变革的一部分&#xff0c;为患者和家属提供了前所未有的便捷和支持。这篇文章将探讨医院陪诊小程序的技术实现&#xff0c;以及如何使用代码来创建一个基本的医院陪诊小程序。 什么是医院陪诊小…

Archive Team: The Twitter Stream Grab

该集合不再更新&#xff0c;应被视为静态数据集。 从一般 Twitter 流中抓取的 JSON 的简单集合&#xff0c;用于研究、历史、测试和记忆的目的。这是“Spritzer”版本&#xff0c;最轻、最浅的 Twitter 抓取。不幸的是&#xff0c;我们目前无法访问流的洒水器或花园软管版本。 …

封装的方法固定的参数,特殊环境下需要多带参数

组件封装的时候某些方法回传出去某些参数&#xff0c;但是特殊条件下需要将其他参数也一并带入方法中使用 比如图片中的方法就可以实现不影响自带的参数&#xff0c;也不影响我们需要多带的参数

QQ大文件如何传输?分享最简单的方法!

QQ作为一个常用的交流工具&#xff0c;我们常常需要通过QQ发送一些大文件&#xff0c;但是文件太大在传输的过程中可能会导致无法发送或被退回。这个时候就需要借助一些文件压缩工具&#xff0c;先把文件瘦身再进行发送&#xff0c;下面是常用的三种方法。 一、QQ邮箱 直接使用…

composer selfupdate或composer self-update不管用解决办法

报错信息&#xff1a;这里可以看见我进行了composer self-update不管用&#xff0c;版本还是停留在1.10.27 解决办法&#xff1a; composer self-update --2

负债99.5万美元的【飞天兆业】申请1125万美元纳斯达克IPO上市

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;总部位于北京的Pheton Holdings Ltd&#xff08;飞天兆业&#xff09;近期已向美国证券交易委员会&#xff08;SEC&#xff09;提交招股书&#xff0c;申请在纳斯达克IPO上市&#xff0c;股票代码…

运维的进阶:用它解决90%以上问题

#01 IT运维环境 发生哪些变化&#xff1f; — 在数字化转型的浪潮之下&#xff0c;一方面&#xff0c;企业IT环境变得多样化&#xff0c;另一方面&#xff0c;用户对业务稳定性的严格要求使IT运维团队需要更快地做出响应&#xff0c;所以运维将会是未来IT管理的重要一环。 …

QGIS提取两条线元素的交点

**选择图层 Vector -> Analysis Tools**

视频推拉流/直播点播平台EasyDSS分享的链接提示“无信号”,该如何解决?

视频直播点播平台EasyDSS可支持用户自行上传视频文件&#xff0c;也可将上传的点播文件作为虚拟直播进行播放。平台能支持多屏播放&#xff0c;可兼容Windows、Android、iOS、Mac等操作系统&#xff0c;还能支持CDN转推&#xff0c;具备较强的可拓展性与灵活性。 为给用户提供更…

双十一电视盒子什么品牌好?网友票选目前最强的电视盒子

上个月我发起了一次目前最强的电视盒子的投票活动&#xff0c;截止到现在共有超两千网友投票&#xff0c;入选的电视盒子品牌超十个。双十一想买电视盒子不知道电视盒子什么品牌好&#xff0c;可以看看网友们最爱的五大电视盒子品牌是哪些。 一、泰捷WEBOX新品WE40S电视盒子 推…

服务器数据恢复-linux+raid+VMwave ESX数据恢复案例

服务器数据恢复环境&#xff1a; 一台某品牌x3950 X6型号服务器&#xff0c;linux操作系统&#xff0c;12块硬盘组建了一组raid阵列&#xff0c;上层运行VMwave ESX虚拟化平台。 服务器故障&#xff1a; 在服务器运行过程中&#xff0c;该raid阵列中有硬盘掉线&#xff0c;linu…

饲料化肥经营商城小程序的作用是什么

我国农牧业规模非常高&#xff0c;各种农作物和养殖物种类多&#xff0c;市场呈现大好趋势&#xff0c;随着近些年科学生产养殖逐渐深入到底层&#xff0c;专业的肥料及饲料是不少从业者需要的&#xff0c;无论城市还是农村都有不少经销店。 但在实际经营中&#xff0c;经营商…