Newer
Older
smartwell_app_front / src / components / ui / datetimePicker / DatetimePicker.vue
StephanieGitHub on 6 Aug 2019 5 KB first commit
<template>
  <transition name="slide">
    <div class="datetime-picker">
      <mt-header class="header" title="DatetimePicker" :fixed="headerConf.fixed">
        <div slot="left">
          <mt-button icon="back" @click="back">返回</mt-button>
        </div>
      </mt-header>
      <div class="content">
        <mt-datetime-picker
          ref="picker1"
          type="date"
          @confirm="confirm"
          v-model="pickerConf1.value"
        >
        </mt-datetime-picker>
        <mt-datetime-picker
          ref="picker2"
          type="datetime"
          @confirm="confirm"
          v-model="pickerConf2.value"
        >
        </mt-datetime-picker>
        <mt-datetime-picker
          ref="picker3"
          type="time"
          @confirm="confirm"
          v-model="pickerConf3.value"
        >
        </mt-datetime-picker>
        <mt-datetime-picker
          ref="picker4"
          type="time"
          @confirm="confirm"
          v-model="pickerConf4.value"
          :cancelText="pickerConf4.cancelText"
          :confirmText="pickerConf4.confirmText"
        >
        </mt-datetime-picker>
        <mt-datetime-picker
          ref="picker5"
          type="datetime"
          :value="pickerConf5.value"
          @confirm="confirm"
          v-model="pickerConf5.value"
        >
        </mt-datetime-picker>
        <mt-datetime-picker
          ref="picker6"
          type="datetime"
          @confirm="confirm"
          :startDate="pickerConf6.startDate"
          :endDate="pickerConf6.endDate"
          v-model="pickerConf6.value"
        >
        </mt-datetime-picker>
        <mt-datetime-picker
          ref="picker7"
          type="time"
          @confirm="confirm"
          :startDate="pickerConf7.startDate"
          :endDate="pickerConf7.endDate"
          :startHour="pickerConf7.startHour"
          :endHour="pickerConf7.endHour"
          v-model="pickerConf7.value"
        >
        </mt-datetime-picker>
        <mt-datetime-picker
          ref="picker8"
          type="datetime"
          @confirm="confirm"
          v-model="pickerConf8.value"
          year-format="{value} 年"
          month-format="{value} 月"
          date-format="{value} 日"
          hour-format="{value} 时"
          minute-format="{value} 分"
        >
        </mt-datetime-picker>
        <mt-button type="default" @click="picker('data')">年月日</mt-button>
        <mt-button type="default" @click="picker('datatime')">年月日时分</mt-button>
        <mt-button type="default" @click="picker('time')">时分</mt-button>
        <mt-button type="default" @click="picker('text')">自定义按钮文字</mt-button>
        <mt-button type="default" @click="picker('init')">设置起始时间</mt-button>
        <mt-button type="default" @click="picker('range-1')">设置范围(年月)</mt-button>
        <mt-button type="default" @click="picker('range-2')">设置范围(时)</mt-button>
        <mt-button type="default" @click="picker('custom')">自定义模板</mt-button>
        <div class="show-box">{{value}}</div>
      </div>
    </div>
  </transition>
</template>

<script>
  import { DatetimePicker, Button } from 'mint-ui'
  import { headerMixin } from 'assets/js/mixins'

  export default {
    mixins: [headerMixin],
    data () {
      return {
        pickerConf1: {
          value: ''
        },
        pickerConf2: {
          value: ''
        },
        pickerConf3: {
          value: ''
        },
        pickerConf4: {
          value: '',
          cancelText: '消失',
          confirmText: '就决定是它了'
        },
        pickerConf5: {
          value: '2018-5-14 15:14'
        },
        pickerConf6: {
          startDate: new Date(2015, 5, 1, 14, 1, 1),
          endDate: new Date(),
        },
        pickerConf7: {
          startHour: 5,
          endHour: 10
        },
        pickerConf8: {
          value: ''
        },
        value: ''
      }
    },
    methods: {
      picker (target) {
        switch (target) {
          case 'data':
            this.$refs.picker1.open();
            break
          case 'datatime':
            this.$refs.picker2.open();
            break
          case 'time':
            this.$refs.picker3.open();
            break
          case 'text':
            this.$refs.picker4.open();
            break
          case 'init':
            this.$refs.picker5.open();
            break
          case 'range-1':
            this.$refs.picker6.open();
            break
          case 'range-2':
            this.$refs.picker7.open();
            break
          case 'custom':
            this.$refs.picker8.open();
            break
        }
      },
      confirm (val) {
        let d = new Date(val)
        console.log(d.getFullYear())
        this.value = val
      }
    }
  }
</script>

<style scoped lang="stylus" rel="stylesheet/stylus">
  @import "~assets/css/variable.styl"
  @import "~assets/css/transition.styl"
  .datetime-picker {
    position absolute
    z-index 2
    top 0
    left 0
    right 0
    bottom 0
    background-color $color-background
    .content {
      padding-top 50px
      button.mint-button--default {
        display block
        width 60%
        height 40px
        margin 20px auto
        box-shadow 0 0 2px #b8bbbf
      }
      .show-box {
        height 50px
        line-height 50px
        margin 20px auto
        text-align center
      }
    }
  }
</style>
<style lang="stylus" rel="stylesheet/stylus">
</style>