time-picker.uvue 1.5 KB
Newer Older
shutao-dc's avatar
shutao-dc 已提交
1
<template>
2 3 4
  <view class="def-picker">
    <native-view style="width: 100%; height: 100%;" @init="onviewinit" @timechanged="ontimechanged"></native-view>
  </view>
shutao-dc's avatar
shutao-dc 已提交
5 6 7
</template>

<script lang="uts">
8
	import { NativeTimePicker } from "@/uni_modules/native-time-picker";
shutao-dc's avatar
shutao-dc 已提交
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31


	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 已提交
32 33 34
				handler(newValue : number, oldValue : number) {
					if (newValue < 23 && newValue >= 0) {
						this.hourValue = newValue
shutao-dc's avatar
shutao-dc 已提交
35 36 37 38 39 40
						this.picker?.setHour(this.hourValue)
					}
				},
				immediate: true
			},
			"minute": {
shutao-dc's avatar
shutao-dc 已提交
41 42 43
				handler(newValue : number, oldValue : number) {
					if (newValue < 59 && newValue >= 0) {
						this.minuteValue = newValue
shutao-dc's avatar
shutao-dc 已提交
44 45 46 47 48 49 50 51
						this.picker?.setMinute(this.minuteValue)
					}

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

		}
	}
</script>

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