web前端之uniApp实现选择时间功能

news2024/11/27 4:27:45

MENU

  • 1、孙子组件
    • 1.1、html部分
    • 1.2、JavaScript部分
    • 1.3、css部分
  • 2、子组件
    • 2.1、html部分
    • 2.2、JavaScript部分
    • 2.3、css部分
  • 3、父组件
    • 3.1、html部分
    • 3.2、JavaScript部分
  • 4、效果图


1、孙子组件

1.1、html部分

<template>
	<view>
		<checkbox-group @change="checkboxChange">
			<view class="check_number_box">
				<view class="check_number_item" v-for="(item, i) in checkNumberData" :key="i">
					<view>
						<!-- toString() 的作用是把数字转为字符串,否则报错 -->
						<checkbox :value="item.toString()" :checked="item == defaultValue[0]" />
					</view>
					<text>{{ item }}</text>
				</view>
			</view>
		</checkbox-group>
	</view>
</template>

1.2、JavaScript部分

export default {
	props: {
		checkNumberData: {
			type: Number,
			default: () => {
				return 7
			},
		}
	},

	data() {
		return {
			defaultValue: [1]
		}
	},

	methods: {
		checkboxChange(event) {
			this.defaultValue = event.detail.value;
		}
	}
}

1.3、css部分

* {
	margin: 0;
	padding: 0;
}

.check_number_box {
	box-sizing: border-box;
	padding: 10rpx 50rpx;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	grid-gap: 10rpx 10rpx;
}

.check_number_item {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	font-size: 30rpx;
}

.check_number_item>text {
	margin-left: 6rpx;
}

2、子组件

2.1、html部分

<template>
	<view>
		<view class="set_cycle_box">
			<radio-group @change="radioChange">
				<view class="cycle_box">
					<!-- 每日 -->
					<view class="cycle_item">
						<view>每日</view>
						<view>
							<radio value="1" checked="true" />
						</view>
					</view>

					<!-- 每周 -->
					<view class="cycle_item">
						<view>每周</view>
						<view>
							<radio value="2" />
						</view>
					</view>
					<checkNumber :checkNumberData="weekCycle" v-show="current == 2" ref="weekData"></checkNumber>

					<!-- 每月 -->
					<view class="cycle_item">
						<view>每月</view>
						<view>
							<radio value="3" />
						</view>
					</view>
					<checkNumber :checkNumberData="dayCycle" v-show="current == 3" ref="dayData"></checkNumber>

					<!-- 自定义 -->
					<view class="cycle_item">
						<view>自定义</view>
						<view>
							<radio value="4" />
						</view>
					</view>
					<view class="set_cycle_title" v-show="current == 4">
						请选择月份
					</view>
					<checkNumber :checkNumberData="monthCycle" v-show="current == 4" ref="monthCustomaData"></checkNumber>
					<view class="set_cycle_title" v-show="current == 4">
						请选择日期
					</view>
					<checkNumber :checkNumberData="dayCycle" v-show="current == 4" ref="dayCustomaData"></checkNumber>
				</view>
			</radio-group>

			<view class="submit" @click="submitBtn">
				确认
			</view>
		</view>
	</view>
</template>

2.2、JavaScript部分

import checkNumber from '@/components/checkNumber/checkNumber.vue'

export default {
	components: {
		checkNumber
	},
	
	data() {
		return {
			current: 1,
			// 给孙子组件传递参数(start)
			weekCycle: 7,
			dayCycle: 31,
			monthCycle: 12,
			// 给孙子组件传递参数(end)
		}
	},

	methods: {
		// 单选状态
		radioChange(event) {
			let i = event.detail.value;
			this.current = i;
		},

		// 确认
		submitBtn() {
			let i = this.current;
			i = Number(i);

			let submitData = {};

			switch (i) {
				case 2:
					submitData.type = i;
					submitData.submitWeek = this.$refs.weekData.defaultValue;
					break;
				case 3:
					submitData.type = i;
					submitData.submitDay = this.$refs.dayData.defaultValue;
					break;
				case 4:
					submitData.type = i;
					submitData.submitCustomaMonth = this.$refs.monthCustomaData.defaultValue;
					submitData.submitCustomaDay = this.$refs.dayCustomaData.defaultValue;
					break;
				default:
					submitData.type = i;
					submitData.submitDay = [1];
			}

			this.$emit('clickSetCycle', submitData)
		}
	}
}

2.3、css部分

.set_cycle_box {
	margin-top: 60rpx;
}

.cycle_box {
	padding: 0 50rpx;
	font-size: 30rpx;
	font-weight: 600;
}

.cycle_item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 16rpx 0;
}

.submit {
	background-color: #007AFF;
	color: #FFFFFF;
	font-size: 32rpx;
	font-weight: 600;
	width: 30%;
	line-height: 50rpx;
	text-align: center;
	border-radius: 10rpx;
	position: relative;
	left: 50%;
	transform: translate(-50%);
	margin: 60rpx 0;
}

.set_cycle_title {
	margin: 16rpx 0;
	font-size: 26rpx;
	color: #888888;
	padding-left: 50rpx;
}

3、父组件

3.1、html部分

<template>
	<view>
		<setCycle @clickSetCycle="cycleControl"></setCycle>
	</view>
</template>

3.2、JavaScript部分

import setCycle from '../../components/setCycle/setCycle.vue'

export default {
	comments: {
		setCycle
	},

	data() {
		return {
			
		}
	},

	methods: {
		cycleControl(data) {
			console.log(data);
			// 
		},
	}
}

4、效果图

效果图

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

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

相关文章

HashSet在添加元素时,是如何判断元素重复的? (原理详解 | 易错案例)

前言&#xff1a;我们知道Set中所存储的元素是不重复的&#xff0c;那么Set接口的实现类HashSet在添加元素时是怎么避免重复的呢&#xff1f; HashSet在添加元素时&#xff0c;是如何判断元素重复的? ● 在底层会先调用hashCode()&#xff0c;注意&#xff0c;Obje…

分享一个完全免费的GPT4站点,gpts也可以用

给大家分享一个完全免费的GPT4站点&#xff0c;gpts也可以用点击链接可用

板级PDN(电源分配网络)设计要点综述

目录 目标阻抗去耦方法 确定目标阻抗 确定目标频点 VRM 去耦电容 安装电感 平面电容 总结 去耦电容 PCB叠层设计 扩展阅读 目标阻抗去耦方法 确定PCB去耦方案的策略是使用频域目标阻抗法&#xff0c;通过层间电容和分立电容器组合的使用&#xff0c;保证电源轨阻抗在…

【MySQL】视图 -- 详解

视图 是一个虚拟表&#xff0c;其内容由查询定义。同真实的表一样&#xff0c;视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表&#xff0c;基表的数据变化也会影响到视图。 一、基本使用 1、创建视图 create view 视图名 as select 语句; 好处&#xff1a;…

基于springboot+vue实现电子商务平台管理系统项目【项目源码+论文说明】

基于springboot实现电子商务平台管理系统演示 研究的目的和意义 据我国IT行业发布的报告表明&#xff0c;近年来&#xff0c;我国互联网发展呈快速增长趋势&#xff0c;网民的数量已达8700万&#xff0c;逼近世界第一&#xff0c;并且随着宽带的实施及降价&#xff0c;每天约有…

Node.js最准确历史版本下载(以下载Node.js16.17.1版本为例)

先进入官网:Node.js https://nodejs.org/en 括号中LTS代表稳定版本. 嫌其他冗余博客帖子多&#xff0c;找起来费眼睛,可以到/release下载:Node.js,在blog后面加/release https://nodejs.org/en/blog/release/ 点击next翻页,跟上面同样的步骤

吴恩达深度学习笔记:深度学习引言1.1-1.6

目录 第一门课&#xff1a;神经网络和深度学习 (Neural Networks and Deep Learning)第一周&#xff1a;深度学习引言(Introduction to Deep Learning)1.1 欢迎(Welcome)1.2 什么是神经网络&#xff1f;(What is a Neural Network) 第一门课&#xff1a;神经网络和深度学习 (Ne…

leetcode 3.5

普通数组 1.最大子数组和 最大子数组和 前缀和pre 动态规划 pre保留的是当前包含了当前遍历的最大的前缀和&#xff0c;如果之前的pre 对结果有增益效果&#xff0c;则 pre 保留并加上当前遍历, 如果pre 对结果无增益效果&#xff0c;需要舍弃&#xff0c;则 pre 直接更新为…

基于ZYNQ PS-SPI的Flash驱动开发

本文使用PS-SPI实现Flash读写&#xff0c;PS-SPI的基础资料参考Xilinx UG1085的文档说明&#xff0c;其基础使用方法是&#xff0c;配置SPI模式&#xff0c;控制TXFIFO/RXFIFO&#xff0c;ZYNQ的IP自动完成发送TXFIFO数据&#xff0c;接收数据到RXFIFO&#xff0c;FIFO深度为12…

整合力-整合思维模型和领导力

整合力和领导力是组织成功的两大关键因素。在当今复杂多变的商业环境中&#xff0c;整合力和领导力的结合对于推动组织发展至关重要。本文将探讨整合力和领导力的概念、重要性以及如何有效整合二者以促进组织的成功发展。 ### 整合力的重要性 整合力指的是组织内部各个部门、…

CSS字体样式的使用,前端开发手册

零基础学web前端开发要怎么去学? 首先要学习的就是基础知识&#xff1a;html、css和JavaScript。HTML是内容&#xff0c;CSS是表现&#xff0c;JavaScript是行为。前端开发的门槛其实非常低&#xff0c;与服务器端语言先慢后快的学习曲线相比&#xff0c;前端开发的学习曲线是…

java: Compilation failed: internal java compiler error或者构建时内存溢出解决办法

启动项目的时候出现了java: Compilation failed: internal java compiler error问题 解决办法 统一JDK版本 一、查看项目的jdk&#xff08;CtrlAltshiftS&#xff09;&#xff1a;File ->Project Structure ->Project Settings ->Project 二、查看工程的jdk&…

硬盘删除的文件如何恢复?分享硬盘数据恢复方法

随着信息时代的飞速发展&#xff0c;硬盘作为我们储存数据的主要场所其重要性日益凸显。但硬盘数据的丢失或误删也成为了许多用户头疼的问题。当您发现重要的文件从硬盘中消失时不必过于焦虑。本文将为您介绍五种高效且原创的数据恢复策略&#xff0c;帮助您找回那些珍贵的文件…

爬虫学习笔记-requests爬取NBA得分榜

1.导入requests库,用于请求获取URL位置的资源 import requests 2.导入lxml库,解析及生成xml和html文件 from lxml import etree 3.定义发送请求的地址 url https://nba.hupu.com/stats/players 4.定义请求头 headers {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64…

CSS如何清除默认样式,想学web开发

一面 css 如何实现垂直居中&#xff1f;position 有哪几种&#xff1f;分别说一下对应的效果和用法css 选择器优先级js 原型链&#xff0c;问了js 如何创建对象页面渲染和响应 式MVVM 和 MVC的区别Vue 生命周期&#xff0c;在哪个阶段可以获取页面 dom 信息Vue 的组件通信 &am…

CSS的三种定位,响应式web开发项目教程

标准文档流 文档流&#xff1a;指的是元素排版布局过程中 戳这里领取完整开源项目&#xff1a;【一线大厂前端面试题解析核心总结学习笔记Web真实项目实战最新讲解视频】 &#xff0c;元素会默认自动从左往右&#xff0c;从上往下的流式排列方式。并最终窗体自上而下分成一行行…

Spring框架的优点

Spring框架是一个开放源代码的J2EE应用程序框架&#xff0c;是针对bean的生命周期进行管理的轻量级容器。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题&#xff0c;提供了功能强大的IOC、AOP及Web MVC等功能。 轻量级&#xff1a;相对于EJB框架而言。 Spring 体系结…

力扣543. 二叉树的直径

Problem: 543. 二叉树的直径 文章目录 题目描述思路复杂度Code 题目描述 思路 1.最大直径 左子树的最大深度 右子树的最大深度&#xff1b; 2.定义一个变量maxDiameter记录最大直径&#xff0c;并编写一个递归函数maxDepth&#xff0c;利用树的后序遍历每次递归求取leftMax&a…

智慧医疗新篇章:Java+SpringBoot技术探索

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…

CSS如何清除默认样式,前端开发实训

前端的现状 提到现状&#xff0c;必须先提到一个概念 大前端。由于近几年互联网的发展&#xff0c;尤其是移动互联网的发展&#xff0c;有的大前端概念将 Native 归入前端的范畴&#xff0c;有的大前端概念将 Node 甚至只渲染页面的 PHP 归入前端范畴&#xff0c;但不管怎么说…