• 引入
  • 代码演示
    • 日期选择
      • 2013/9/9 - 2020/9/9
    • 日期时间选择 getFormatDate()
    • 时间选择
    • 自定义类型和选项文案值
  • API
    • DatePicker Props
    • DatePicker Methods
      • getFormatDate(format): dateStr
      • getColumnValue(index): activeItemValue
      • getColumnValues(): columnsValue
      • getColumnIndex(index): activeItemIndex
      • getColumnIndexs(): columnsIndex
    • DatePicker Events
      • @initialed()
      • @change(columnIndex, itemIndex, value)
      • @confirm(columnsValue)
    • 附录

    DatePicker 时间选择器

    Scan me!

    选择日期或者时间,支持年/月/日/时/分和按照范围选择

    引入

    1. import { DatePicker } from 'mand-mobile'
    2. Vue.component(DatePicker.name, DatePicker)

    代码演示

    日期选择

    2013/9/9 - 2020/9/9

    DatePicker 日期选择器 - 图2

    1. <template>
    2. <div class="md-example-child md-example-child-date-picker md-example-child-date-picker-0">
    3. <md-date-picker
    4. ref="datePicker"
    5. today-text="今天"
    6. :min-date="minDate"
    7. :max-date="maxDate"
    8. :default-date="currentDate"
    9. is-view
    10. @initialed="onDatePickerInitialed"
    11. ></md-date-picker>
    12. </div>
    13. </template>
    14. <script>
    15. import {DatePicker} from 'mand-mobile'
    16. export default {
    17. name: 'date-picker-demo',
    18. components: {
    19. [DatePicker.name]: DatePicker,
    20. },
    21. data() {
    22. return {
    23. minDate: new Date('2013/9/9'),
    24. maxDate: new Date('2020/9/9'),
    25. currentDate: new Date(),
    26. }
    27. },
    28. methods: {
    29. onDatePickerInitialed() {
    30. console.log(`[Mand Mobile] DatePicker getFormatDate: ${this.$refs.datePicker.getFormatDate('yyyy/MM/dd')}`)
    31. },
    32. },
    33. }
    34. </script>
    35.  

    日期时间选择 getFormatDate()

    DatePicker 日期选择器 - 图3

            <template>
      <div class="md-example-child md-example-child-date-picker md-example-child-date-picker-2">
        <md-date-picker
          ref="datePicker"
          type="datetime"
          :min-date="currentDate"
          is-view
        ></md-date-picker>
      </div>
    </template>
    
    <script>
    import {DatePicker, Dialog} from 'mand-mobile'
    
    export default {
      name: 'date-picker-demo',
      components: {
        [DatePicker.name]: DatePicker,
      },
      data() {
        return {
          currentDate: new Date(),
          minDate: new Date('2018/8/30 11:30'),
        }
      },
      mounted() {
        window.triggerDatePicker0 = () => {
          Dialog.alert({
            content: this.$refs.datePicker.getFormatDate(),
          })
        }
      },
    }
    
    </script>
    
          

    时间选择

    DatePicker 日期选择器 - 图4

            <template>
      <div class="md-example-child md-example-child-date-picker md-example-child-date-picker-1">
        <md-date-picker
          type="time"
          :unit-text="['', '', '', '\'', '\'\'']"
          :minute-step="1"
          is-view
        ></md-date-picker>
      </div>
    </template>
    
    <script>
    import {DatePicker} from 'mand-mobile'
    
    export default {
      name: 'date-picker-demo',
      components: {
        [DatePicker.name]: DatePicker,
      },
    }
    
    </script>
          

    自定义类型和选项文案值

    DatePicker 日期选择器 - 图5

            <template>
      <div class="md-example-child md-example-child-date-picker md-example-child-date-picker-3">
        <md-field>
          <md-field-item
            name="name"
            title="出险时间"
            arrow="arrow-right"
            align="right"
            :content="datePickerValue"
            @click.native="isDatePickerShow = true">
          </md-field-item>
        </md-field>
        <md-date-picker
          ref="datePicker"
          v-model="isDatePickerShow"
          type="custom"
          title="选择出险时间"
          large-radius
          :text-render="textRender"
          :custom-types="['yyyy', 'MM','dd', 'hh', 'mm']"
          :default-date="currentDate"
          @change="onDatePickerChange"
          @confirm="onDatePickerConfirm"
        ></md-date-picker>
      </div>
    </template>
    
    <script>
    import {DatePicker, Field, FieldItem} from 'mand-mobile'
    
    export default {
      name: 'date-picker-demo',
      components: {
        [DatePicker.name]: DatePicker,
        [Field.name]: Field,
        [FieldItem.name]: FieldItem,
      },
      data() {
        return {
          currentDate: new Date(),
          isDatePickerShow: false,
          datePickerValue: '',
        }
      },
      methods: {
        textRender() {
          const args = Array.prototype.slice.call(arguments)
          const typeFormat = args[0] // 类型
          // const column0Value = args[1] // 第1列选中值
          // const column1Value = args[2] // 第2列选中值
          const column2Value = args[3] // 第3列选中值
          if (typeFormat === 'dd') {
            return `*${column2Value}日`
          }
        },
        onDatePickerChange(columnIndex, itemIndex, value) {
          console.log(
            `[Mand Mobile] DatePicker Change\ncolumnIndex: ${columnIndex},\nitemIndex:${itemIndex},\nvalue: ${JSON.stringify(
              value,
            )}`,
          )
        },
        onDatePickerConfirm(columnsValue) {
          console.log(`[Mand Mobile] DatePicker Confirm\nvalue: ${JSON.stringify(columnsValue)}`)
          this.datePickerValue = this.$refs.datePicker.getFormatDate('yyyy/MM/dd hh:mm')
        },
      },
    }
    
    </script>
          

    API

    DatePicker Props

    属性说明类型默认值备注
    type日期选择类型Stringdatedate, time, datetime, custom
    custom-types自定义类型包含的日期元素, [yyyy, MM, dd, hh, mm]Array-仅用于type为custom
    min-date最小可选日期(时间)Date--
    max-date最大可选日期(时间)Date--
    default-date初始选中日期Date--
    minute-step分钟数递增步长Number1-
    unit-text元素单位展示文案设置Array['年', '月', '日', '时', '分']复杂逻辑使用text-render
    text-render自定义选项展示文案方法Function(typeFormat, column0Value, column1Value, …): String-如果使用text-renderunit-text无效, 示例见附录
    today-text今天展示文案设置String今天使用&可占位日期数字,如&(今天)
    line-height选择器选项行高Number45单位px
    is-view是否内嵌在页面内展示, 否则以弹层形式Booleanfalse-
    title选择器标题String--
    describe选择器描述String--
    ok-text选择器确认文案String确认-
    cancel-text选择器取消文案String取消-
    large-radius 2.4.0+选择器标题栏大圆角模式Booleanfalse-
    mask-closable点击蒙层是否可关闭弹出层Booleantrue-

    DatePicker Methods

    getFormatDate(format): dateStr

    获取特定格式的日期时间字符串(format中的日期元素需在列数据中存在),需在initialed事件触发之后或异步调用

    参数说明类型默认
    format格式Stringyyyy-MM-dd hh:mm

    返回

    属性说明类型
    dateStr日期时间字符串String

    列表项值属性介绍见附录

    getColumnValue(index): activeItemValue

    获取某列当前选中项的值,需在initialed事件触发之后或异步调用

    参数说明类型
    index列索引Number

    返回

    属性说明类型
    activeItemValue选中项的值Object: {text, value, typeFormat}
    getColumnValues(): columnsValue

    获取所有列选中项的值,需在initialed事件触发之后或异步调用

    返回

    属性说明类型
    columnsValue所有列选中项的值Array<{text, value, typeFormat}>
    getColumnIndex(index): activeItemIndex

    获取某列当前选中项的索引值,需在initialed事件触发之后或异步调用

    参数说明类型
    index列索引Number

    返回

    属性说明类型
    activeItemIndex选中项的索引值Number
    getColumnIndexs(): columnsIndex

    获取所有列选中项的索引值,需在initialed事件触发之后或异步调用

    返回

    属性说明类型
    columnsIndex所有列选中项的索引值Array

    DatePicker Events

    @initialed()

    选择器数据初始化完成事件

    @change(columnIndex, itemIndex, value)

    选择器选中项更改事件

    参数说明类型
    columnIndex更改列的索引值Number
    itemIndex更改列选中项的索引值Number
    value更改列选中项的的值Object: {text, value, typeFormat}
    @confirm(columnsValue)

    选择器确认选择事件(仅is-viewfalse

    参数说明类型
    columnsValue所有列选中项的值Array<{text, value, typeFormat}>

    附录

    • columnData
    
    const columnData = [
      // 年
      [
        {
          text: '2017年', // 日期元素展示文案
          value: 2017, // 日期元素数字
          typeFormat: 'yyyy' // 日期元素类型 yyyy, MM, dd, hh, mm, HalfDay
        }
      ],
      // 月, 日,时, 分
      [
        //..,
      ],
      // 上午/下午
      [
        {
          text: '上午',
          value: 0,
          typeFormat: 'HalfDay'
        }, {
          text: '下午',
          value: 1,
          typeFormat: 'HalfDay'
        }
      ]
    ]
    • textRender
    
      export default {
        // ...
        methods: {
          textRender() {
            const args = Array.prototype.slice.call(arguments)
            const typeFormat = args[0] // 类型
            const column0Value = args[1] // 第1列选中值
            const column1Value = args[2] // 第2列选中值
            const column2Value = args[3] // 第2列选中值
          },
        }
        // ...
      }