uniapp/vue个性化单选、复选组件

个性化单选和复选组件在网页设计中非常常见,它们不仅能够提升用户界面的美观度,还能改善用户体验。此组件是使用vue uniapp实现的个性化单选复选组件。设计完成后,点击生成源码即可。

拖动组件过设计区

https://www.diygw.com个性化单选和复选组件

每行显示数量

默认支持每行三个,可以上面选择属性每行显示个数。

选择图标在右

某些场景下,为了更好的效果,选择图标希望在右边显示,设计器同样考虑到了,只需要开启图标在右属性。

https://www.diygw.com个性化单选和复选组件

标题换行

标题换行是指标题跟选择项不在同一行.

https://www.diygw.com个性化单选和复选组件

个性化选择图标

默认单选比较单调,可视化支持自定义默认图片及选中后图片。

https://www.diygw.com个性化单选和复选组件

个性化单选内容

首先要设计一个显示的FLEX组件效果,然后把设计好的FLEX组件往单选节点里拖动即可。

https://www.diygw.com个性化单选和复选组件

https://www.diygw.com个性化单选和复选组件

保存源码至本地

https://www.diygw.com个性化单选和复选组件

https://www.diygw.com个性化单选和复选组件

https://www.diygw.com个性化单选和复选组件

再次点击保存源码至本地,本地个性化单选复选按钮就变成了不同效果。

https://www.diygw.com个性化单选和复选组件

回调事件

用户选择单选复选后希望触发后面的事件逻辑处理,可视化工具提供了回调事件,配置自己回调事件即可处理接下来你想要的操作。

点击查看源码或者保存源码至本地

生成源码

点击查看源码或者保存源码至本地,都可以快速看见设计的源码 。

点击查看源码或者保存源码至本地

<template>
	<view class="container container21094">
		<u-form-item class="diygw-col-24" label="单选" labelPosition="top" prop="radio">
			<u-radio-group class="flex flex-wrap diygw-col-24 justify-between" wrapClass=" justify-between" v-model="radio" :iconSize="20">
				<u-radio activeImg="/static/lw.png" img="/static/lw-1.png" class="diygw-col-24" shape="circle" v-for="(radioitem, radioindex) in radioDatas" :key="radioindex" :name="radioitem.value">
					<view class="flex text-left flex-content diygw-col-24">
						<view class="flex diygw-col-24 flex-direction-column items-start flex-wrap flex7-clz">
							<view class="flex diygw-col-24 items-center flex-nowrap">
								<view class="flex flex-wrap diygw-col-0 flex-direction-column flex15-clz">
									<text class="diygw-col-0 text3-clz">
										{{ radioitem.label }}
									</text>
									<text class="diygw-col-0 text16-clz"> 添加客户信息 </text>
								</view>
								<image src="/static/icon1_kf.png" class="image2-size diygw-image diygw-col-0 image2-clz" mode="widthFix"></image>
							</view>
						</view>
					</view>
				</u-radio>
			</u-radio-group>
		</u-form-item>
		<u-form-item class="diygw-col-24 radio1-clz" labelPosition="top" prop="radio1">
			<u-radio-group iconPlacement="right" class="flex flex-wrap diygw-col-24 justify-between" wrapClass=" justify-between" v-model="radio1" :iconSize="16">
				<u-radio activeImg="/static/g.png" img="/static/g1.png" class="diygw-col-24" shape="circle" v-for="(radio1item, radio1index) in radio1Datas" :key="radio1index" :name="radio1item.value">
					{{ radio1item.label }}
				</u-radio>
			</u-radio-group>
		</u-form-item>
		<u-form-item class="diygw-col-24" label="单选" labelPosition="top" prop="radio2">
			<u-radio-group iconPlacement="right" class="flex flex-wrap diygw-col-24 justify-between" wrapClass=" justify-between" v-model="radio2">
				<u-radio class="diygw-col-24" shape="circle" v-for="(radio2item, radio2index) in radio2Datas" :key="radio2index" :name="radio2item.value">
					{{ radio2item.label }}
				</u-radio>
			</u-radio-group>
		</u-form-item>
		<view class="flex flex-wrap diygw-col-24 flex13-clz"> </view>
		<view class="clearfix"></view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				//用户全局信息
				userInfo: {},
				//页面传参
				globalOption: {},
				//自定义全局变量
				globalData: {},
				radioDatas: [
					{ value: '1', label: '综合排序', checked: true },
					{ value: '2', label: '总价从低至高', checked: false },
					{ value: '3', label: '总价从高至低', checked: false },
					{ value: '4', label: '单价从低至高', checked: false },
					{ value: '5', label: '单价从高至低', checked: false }
				],
				radio: '1',
				radio1Datas: [
					{ value: '1', label: '综合排序', checked: true },
					{ value: '2', label: '总价从低至高', checked: false },
					{ value: '3', label: '总价从高至低', checked: false },
					{ value: '4', label: '单价从低至高', checked: false },
					{ value: '5', label: '单价从高至低', checked: false }
				],
				radio1: '1',
				radio2Datas: [
					{ value: '1', label: '选项一', checked: true },
					{ value: '2', label: '选项二', checked: false },
					{ value: '3', label: '选项三', checked: false }
				],
				radio2: '1'
			};
		},
		onShow() {
			this.setCurrentPage(this);
		},
		onLoad(option) {
			this.setCurrentPage(this);
			if (option) {
				this.setData({
					globalOption: this.getOption(option)
				});
			}

			this.init();
		},
		methods: {
			async init() {}
		}
	};
</script>

<style lang="scss" scoped>
	.flex7-clz {
		padding-top: 20rpx;
		border-bottom-left-radius: 12rpx;
		padding-left: 20rpx;
		padding-bottom: 20rpx;
		border-top-right-radius: 12rpx;
		margin-right: 10rpx;
		background-color: #f7faff;
		margin-left: 10rpx;
		flex-shrink: 0;
		overflow: hidden;
		width: calc(100% - 10rpx - 10rpx) !important;
		border-top-left-radius: 12rpx;
		margin-top: 10rpx;
		border-bottom-right-radius: 12rpx;
		margin-bottom: 10rpx;
		padding-right: 20rpx;
	}
	.flex15-clz {
		flex: 1;
	}
	.text3-clz {
		flex: 1;
		font-size: 30rpx !important;
	}
	.text16-clz {
		color: #a9a9a9;
	}
	.image2-clz {
		border: 2rpx solid #fbfbfb;
		border-bottom-left-radius: 120rpx;
		overflow: hidden;
		border-top-left-radius: 120rpx;
		border-top-right-radius: 120rpx;
		border-bottom-right-radius: 120rpx;
	}
	.image2-size {
		height: 80rpx !important;
		width: 80rpx !important;
	}
	.radio1-clz {
		font-weight: bold;
		font-size: 28rpx !important;
	}
	.flex13-clz {
		padding-top: 10rpx;
		padding-left: 10rpx;
		padding-bottom: 10rpx;
		padding-right: 10rpx;
	}
	.container21094 {
	}
</style>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值