ArcoDesign时间组件自定义禁用

场景一:合同日期

合同日期,开始时间任意,结束时间不能小于当日日期

<a-range-picker
  v-model="state.time"
  :style="{ width: '260px' }"
  :disabled-date="disabledDate"
  @select="selectDate"
  @popup-visible-change="onPopupVisibleChange"
/>
const selectDate = (valueString: Date | string | number, value: Date[]) => {
  changeTime(valueString);
  state.dates = value;
};

const onPopupVisibleChange = (visible: boolean) => {
  if (!visible) {
    state.dates = [];
  }
};

const disabledDate = (current: Date) => {
  const { dates } = state;
  if (dates && dates.length === 1) {
    return current && dayjs(current).isBefore(dayjs());
  }
  return false;
};

 


场景二:限制选取一个月内的日期

限制选取一个月内,一段时间内或者服务端不支持跨月查表等场景

<a-month-picker
  v-model="state.month"
  style="width: 120px"
  :allow-clear="false"
  @clear="clearMonth"
  @change="clearMonth"
/>
<a-range-picker
  v-model="state.time"
  :default-picker-value="[
    new Date(state.month),
    new Date(state.month),
  ]"
  style="width: 240px"
  value-format="YYYY-MM-DD HH:mm:ss"
  :time-picker-props="{
    defaultValue: ['00:00:00', '23:59:59'],
  }"
  :disabled-date="disabledDate"
  @change="onChangeTime"
/>
const disabledDate = (current: Date) => {
  if (state.month) {
    const monthStart = dayjs(state.month).startOf('month'); // 当前月第一天
    const monthEnd = dayjs(state.month).endOf('month'); // 当前月最后一天
    return monthStart > current || current >= monthEnd;
  }
  return false;
};

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值