You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.5 KiB
92 lines
2.5 KiB
1 year ago
|
<template>
|
||
|
<view>
|
||
|
<page-head :title="title"></page-head>
|
||
|
<view class="uni-padding-wrap">
|
||
|
<view class="uni-title">
|
||
|
日期:{{year}}年{{month}}月{{day}}日
|
||
|
</view>
|
||
|
</view>
|
||
|
<picker-view v-if="visible" :indicator-style="indicatorStyle" :mask-style="maskStyle" :value="value" @change="bindChange">
|
||
|
<picker-view-column>
|
||
|
<view class="item" v-for="(item,index) in years" :key="index">{{item}}年</view>
|
||
|
</picker-view-column>
|
||
|
<picker-view-column>
|
||
|
<view class="item" v-for="(item,index) in months" :key="index">{{item}}月</view>
|
||
|
</picker-view-column>
|
||
|
<picker-view-column>
|
||
|
<view class="item" v-for="(item,index) in days" :key="index">{{item}}日</view>
|
||
|
</picker-view-column>
|
||
|
</picker-view>
|
||
|
</view>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
export default {
|
||
|
data () {
|
||
|
const date = new Date()
|
||
|
const years = []
|
||
|
const year = date.getFullYear()
|
||
|
const months = []
|
||
|
const month = date.getMonth() + 1
|
||
|
const days = []
|
||
|
const day = date.getDate()
|
||
|
|
||
|
for (let i = 1990; i <= date.getFullYear(); i++) {
|
||
|
years.push(i)
|
||
|
}
|
||
|
|
||
|
for (let i = 1; i <= 12; i++) {
|
||
|
months.push(i)
|
||
|
}
|
||
|
|
||
|
for (let i = 1; i <= 31; i++) {
|
||
|
days.push(i)
|
||
|
}
|
||
|
return {
|
||
|
title: 'picker-view',
|
||
|
years,
|
||
|
year,
|
||
|
months,
|
||
|
month,
|
||
|
days,
|
||
|
day,
|
||
|
value: [9999, month - 1, day - 1],
|
||
|
/**
|
||
|
* 解决动态设置indicator-style不生效的问题
|
||
|
*/
|
||
|
visible: true,
|
||
|
// indicatorStyle: `height: ${Math.round(uni.getSystemInfoSync().screenWidth/(750/100))}px;`
|
||
|
indicatorStyle: `height: 50px;`,
|
||
|
// #ifdef MP-KUAISHOU
|
||
|
maskStyle: "padding:10px 0"
|
||
|
// #endif
|
||
|
// #ifndef MP-KUAISHOU
|
||
|
maskStyle: ""
|
||
|
// #endif
|
||
|
}
|
||
|
},
|
||
|
methods: {
|
||
|
bindChange (e) {
|
||
|
const val = e.detail.value
|
||
|
this.year = this.years[val[0]]
|
||
|
this.month = this.months[val[1]]
|
||
|
this.day = this.days[val[2]]
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style>
|
||
|
|
||
|
picker-view {
|
||
|
width: 100%;
|
||
|
height: 600rpx;
|
||
|
margin-top:20rpx;
|
||
|
}
|
||
|
|
||
|
.item {
|
||
|
line-height: 100rpx;
|
||
|
text-align: center;
|
||
|
}
|
||
|
</style>
|