Blame view

pages/component/picker-view/picker-view.vue 2.53 KB
4b045f7c   刘淇   江阴初始化项目
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
  <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>