time-picker.uvue 1.4 KB
Newer Older
shutao-dc's avatar
shutao-dc 已提交
1
<template>
shutao-dc's avatar
shutao-dc 已提交
2
	<native-view class="def-picker" @init="onviewinit" @timechanged="ontimechanged"></native-view>
shutao-dc's avatar
shutao-dc 已提交
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
</template>

<script lang="uts">
	import { NativeTimePicker } from "@/uni_modules/uni-time-picker";


	export default {

		data() {
			return {
				picker: null as NativeTimePicker | null,
				hourValue: 0 as number,
				minuteValue: 0 as number
			}
		},
		props: {
			"hour": {
				type: Number,
				default: 0
			},
			"minute": {
				type: Number,
				default: 0
			}
		},
		watch: {
			"hour": {
shutao-dc's avatar
shutao-dc 已提交
30 31 32
				handler(newValue : number, oldValue : number) {
					if (newValue < 23 && newValue >= 0) {
						this.hourValue = newValue
shutao-dc's avatar
shutao-dc 已提交
33 34 35 36 37 38
						this.picker?.setHour(this.hourValue)
					}
				},
				immediate: true
			},
			"minute": {
shutao-dc's avatar
shutao-dc 已提交
39 40 41
				handler(newValue : number, oldValue : number) {
					if (newValue < 59 && newValue >= 0) {
						this.minuteValue = newValue
shutao-dc's avatar
shutao-dc 已提交
42 43 44 45 46 47 48 49
						this.picker?.setMinute(this.minuteValue)
					}

				},
				immediate: true
			},
		},
		methods: {
shutao-dc's avatar
shutao-dc 已提交
50
			onviewinit(e : UniNativeViewInitEvent) {
shutao-dc's avatar
shutao-dc 已提交
51 52 53
				this.picker = new NativeTimePicker(e.detail.element, this.hourValue, this.minuteValue);
				this.$emit("load")
			},
shutao-dc's avatar
shutao-dc 已提交
54
			ontimechanged(e : UniNativeViewEvent) {
shutao-dc's avatar
shutao-dc 已提交
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
				this.$emit("changed", e)
			}
		},
		unmounted() {

		}
	}
</script>

<style>
	.def-picker {
		min-width: 300px;
		min-height: 380px;
    max-width: 400px;
    max-height: 400px;
	}
</style>