# 时刻选择器(moment)

时刻预约,可用于预约类项目

# 基本使用

<itu-moment v-model="showMoment" titleAlign="left" :date="momentDate" :moment="moment" maxDate="2024-06-09" :borderRadius="16" shape="round" @change="changeMoment"></itu-moment>
<script>
  export default {
    data() {
      return {
        showMoment: false,
        moment: "",
        momentDate: "",
      };
    },
    methods: {
      changeMoment(e) {
        console.log("moment", e);
        this.moment = e.time;
        this.momentDate = e.date;
      },
    },
  };
</script>

# 多选连续

<itu-moment mode="range" shape="round" :momentRange="momentRange" :momentSlotList="momentSlotList" :borderRadius="16" v-model="showRangeMoment" @change="changeMomentRange"></itu-moment>
<script>
  export default {
    data() {
      return {
        showRangeMoment: false,
        momentRange: ["2024-05-30 11:00", "2024-05-30 23:00"],
        momentSlotList: [
          { datetime: "2024-05-29 11:00", disabled: true, text: "已预约" },
          { datetime: "2024-05-29 16:00", disabled: true, text: "已预约" },
        ],
      };
    },
    methods: {
      changeMomentRange(e) {
        console.log("momentRange", e);
        this.momentRange = e.momentRange;
      },
    },
  };
</script>

# 多选不连续

<itu-moment mode="range" shape="round" :continuous="false" :moments="moments" :momentSlotList="momentSlotList" :borderRadius="16" v-model="showMoments" @change="changeMoments"></itu-moment>
<script>
  export default {
    data() {
      return {
        showMoments: false,
        moments: ["2024-05-30 12:00", "2024-05-30 13:00", "2024-05-30 18:00"],
        momentSlotList: [
          { datetime: "2024-05-29 11:00", disabled: true, text: "已预约" },
          { datetime: "2024-05-29 16:00", disabled: true, text: "已预约" },
        ],
      };
    },
    methods: {
      changeMoments(e) {
        console.log("moments", e);
        this.moments = e.moments;
      },
    },
  };
</script>

# Props

属性名 类型 默认值 说明
title String 选择时刻 标题
titleAlign String center 标题位置, 可选 left, center
calendarTitle String 选择日期 日期选择标题
calendarWeekTextList Array ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'] 星期数据字典
calendarWeekDayList Array ['日', '一', '二', '三', '四', '五', '六'] 星期数据字典(日历上)
showRangeTime Boolean true 显示时间区间
lastDateText String 前一天 前一天文本
nextDateText String 后一天 后一天文本
date String '' 当前默认选中日期
mode String moment moment-单个时刻选择,range-开始时刻+结束时刻选择
moment String '' 时刻 mode=moment 切 date 有值时生效
moments Array [] 时刻 mode=range, continuous=false 时生效
momentRange Array [] 时刻 mode=range, continuous=true 时生效
startTime [Number, String] 0 开始时间,支持小时
endTime [Number, String] [] 结束时间,支持小时
timeSlot Number 60 间隔时间(分钟),可选值:15/30/45/60
safeAreaInsetBottom Boolean false 适配安全区域
shape String square 按钮形状 可选值 square、round、circle
isMaskClose Boolean true 是否允许通过点击遮罩
value Boolean false 通过双向绑定控制组件的弹出与收起
minDate [Number, String] '' 默认最小可选日期为今天
maxDate [Number, String] '' 最大可选日期,之后的日期不可选(不在范围内日期禁用不可选)
borderRadius String, Number true 圆角背景,rpx 单位
confirmText String 确认 确认按钮
activeBgColor String #2979ff 选中
activeColor String #ffffff 选中
rangeBgColor String #2979ff 范围内日期字体颜色
startText String 开始 mode=range, continuous=true时生效,起始日期自定义文案
endText String 结束 mode=range, continuous=true时生效,结束日期自定义文案
closeable Boolean true 是否显示右上角的关闭图标
daySpan Boolean false mode=range时生效,跨天选择
weekText Array ['周日', '周一', '周二', '周三', '周四', '周五', '周六'] 星期数据字典
continuous Boolean true mode=range时生效,是否连续时段
showOverdue Boolean true 显示/隐藏过期时间
disabledOverdue Boolean true 禁用过期时间选择
momentSlotList Boolean true 默认某些时刻状态数组 [{datetime: '2024-05-29 11:00', disabled: true, text: '已预约'}], disabled为true则该时间不可选择为false则可选择,text显示在日期下方
expireText String 已过期 过期文本

# Events

事件名称 类型 说明
@change Function 点击【确定】按钮时时触发的事件, mode=moment 返回 {date, datetime, range, time}; mode=range&continuous=true 返回 {startMoment, endMoment, momentRange};mode=range&continuous=false 返回 {moments, momentRanges}
@changeDate Function 选择日期触发事件,返回当前日期
上次更新: 6/3/2024, 10:43:17 PM