uniApp實(shí)現(xiàn)選擇時(shí)間功能
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() 的作用是把數(shù)字轉(zhuǎn)為字符串,否則報(bào)錯(cuò) -->
<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"> 請(qǐng)選擇月份 </view> <checkNumber :checkNumberData="monthCycle" v-show="current == 4" ref="monthCustomaData"></checkNumber> <view class="set_cycle_title" v-show="current == 4"> 請(qǐng)選擇日期 </view> <checkNumber :checkNumberData="dayCycle" v-show="current == 4" ref="dayCustomaData"></checkNumber> </view> </radio-group> <view class="submit" @click="submitBtn"> 確認(rèn) </view> </view> </view> </template>
2.2、JavaScript部分
import checkNumber from '@/components/checkNumber/checkNumber.vue'
export default {
components: {
checkNumber
},
data() {
return {
current: 1,
// 給孫子組件傳遞參數(shù)(start)
weekCycle: 7,
dayCycle: 31,
monthCycle: 12,
// 給孫子組件傳遞參數(shù)(end)
}
},
methods: {
// 單選狀態(tài)
radioChange(event) {
let i = event.detail.value;
this.current = i;
},
// 確認(rèn)
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、效果圖

到此這篇關(guān)于uniApp實(shí)現(xiàn)選擇時(shí)間功能的文章就介紹到這了,更多相關(guān)uniApp選擇時(shí)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解如何通過JavaScript實(shí)現(xiàn)函數(shù)重載
這篇文章主要為大家詳細(xì)介紹了如何通過JavaScript實(shí)現(xiàn)函數(shù)重載,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)JavaScript有一定的幫助,感興趣的可以了解一下2023-01-01
JS?if?else語(yǔ)句(條件判斷語(yǔ)句)的詳細(xì)使用
條件語(yǔ)句用于基于不同的條件來(lái)執(zhí)行不同的動(dòng)作,下面這篇文章主要給大家介紹了關(guān)于JS?if?else語(yǔ)句(條件判斷語(yǔ)句)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09
Layui事件監(jiān)聽的實(shí)現(xiàn)(表單和數(shù)據(jù)表格)
這篇文章主要介紹了Layui事件監(jiān)聽的實(shí)現(xiàn)(表單和數(shù)據(jù)表格),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
對(duì)于Javascript 執(zhí)行上下文的全面了解
下面小編就為大家?guī)?lái)一篇對(duì)于Javascript 執(zhí)行上下文的全面了解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-09-09
easyui combobox開啟搜索自動(dòng)完成功能的實(shí)例代碼
下面小編就為大家?guī)?lái)一篇easyui combobox開啟搜索自動(dòng)完成功能的實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-11-11
JavaScript初學(xué)者需要了解10個(gè)小技巧
在之前的編程語(yǔ)言排行榜中,我們?cè)榻B過轉(zhuǎn)正在即的JavaScript語(yǔ)言,正如文章中闡明的那樣,JavaScript不僅是最具活力的腳本語(yǔ)言,還是是最有用的編程語(yǔ)言之一。2010-08-08
JS控制一個(gè)DIV層在指定時(shí)間內(nèi)消失的方法
這篇文章主要介紹了JS控制一個(gè)DIV層在指定時(shí)間內(nèi)消失的方法,需要的朋友可以參考下2014-02-02

