• uview upicker时间选择器(附Demo)


    目录

    前言

    uniapp时间选择器,是upicker,与微信小程序还是有些区别

    补充官网的基本知识:uview官网

    官网的展示例子如下:(但是没Demo)

    在这里插入图片描述

    正文

    通过上面的展示图,复刻一个类似Demo图:

    在这里插入图片描述

    以下代码过滤掉一些无关内容

    <template>
    
    	<view>
    		<u-collapse :value="['0']" ref="collapse">
    			<u-collapse-item title="搜索" name="0">
    				<u--form :model="formModel" ref="form">
    				
    					
    					<u-form-item @click="dateTimePicker = true" label="时间:" labelWidth="100rpx" prop="maintenanceTime" style="align-items: center;">
    						<u--input
    							v-model="formModel.maintenanceTime"
    							prefixIcon="calendar" >
    						u--input>
    					u-form-item>
    				u--form>
    			u-collapse-item>
    		u-collapse>
    		
    		<u-datetime-picker
    			@confirm="dateTimePickerConfirm" 
    			@cancel="dateTimePicker = false"
    			:show="dateTimePicker" 
    			v-model="timeValue"
    			ref="datetimePicker"
    			mode="datetime"
    			closeOnClickOverlay
    			:defaultIndex="defaultTimeIndex">
    		u-datetime-picker>
    		
    
    	view>
    template>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    对应script页面如下:

    <script>
    	
    	export default {
    		data(){
    			return {
    				dateTimePicker: false,
    				}
    		},
    		onReady() {
    			console.log('onReady')
    			
    			// 微信小程序需要用此写法
    			this.$refs.datetimePicker.setFormatter(this.formatter)
    		},
    		methods:{
    			
    			formatter(type, value) {
    				if (type === 'year') {
    					return `${value}`
    				}
    				if (type === 'month') {
    					return `${value}`
    				}
    				if (type === 'day') {
    					return `${value}`
    				}
    				if (type === 'hour'){
    					return `${value}`
    				}
    				if (type === 'minute'){
    					return `${value}`
    				}
    				return value
    			},
    			dateTimePickerConfirm(e){
    				this.dateTimePicker = false
    				console.log(e.value,e.mode)
    				this.formModel.maintenanceTime = this.$u.date(e.value,'yyyy-mm-dd hh:MM:ss')
    				this.$refs.form.validateField('maintenanceTime')
    				console.log(this.formModel.maintenanceTime)
    			}
    	}
    </script>
    
    
    <style lang="scss" scoped>
    	.u-popup-slot {
    		width: 200px;
    		height: 80px;
    		@include flex;
    		justify-content: center;
    		align-items: center;
    		margin-bottom: 10rpx;
    	}
    </style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
  • 相关阅读:
    ROS1云课→29如何借助ROS实现走迷宫机器人
    从白手起家到人尽皆知,他的大佬程序员之路是怎样走向成功的?
    FPGA verilog 临近插值任意比例视频缩放代码
    Mesh快连
    ES6模块化
    算法题9.11
    线性回归法学习笔记
    MyBatis-Plus找不到Mapper.xml文件的解决方法
    python高级在线题目训练-第一套
    idea如何隐藏background tasks
  • 原文地址:https://blog.csdn.net/weixin_47872288/article/details/136663265