关于element plus 的Calendar日期判断的问题?

有个逻辑判断没想明白,
具体需求是判断服务器返回的时间是否超过设定的时间,如果服务器返回的时间超过了,只能填写后天的数据
服务端返回两个数据
一个是服务端当前时间,第二个是限制提交时间

data: {
  serverTime: "2022-07-15 22:45:00"
  limited_time: "2022-07-15 18:00:00"
}
<el-form :model="state.form" label-width="120px" ref="FormRef">
                <el-calendar>
                    <template #dateCell="{ data }">
                        {{ data.day.split('-').slice(1).join('-') }}
                        <template v-if="dayjs(data.day).isAfter(state.serverTime)">
                            <el-input v-model="state.form[data.day.split('-').slice(1).join('-')]" placeholder="设定量"></el-input>
                        </template>
                    </template>
                </el-calendar>
                <el-form-item>
                    <el-button type="primary" @click="onSubmit">Create</el-button>
                </el-form-item>
            </el-form>

serverTime已经超过limited_time,所以只能设置7月17日的数据,现在我这里只判断了data.day是否在serverTime之后。所以现在serverTime即使已经超过了limited_time,还是能填写7月16号的数据(需求是serverTime超过limited_time后,07-17及往后才显示输入框)

数据是在日历上填写的,请问该怎么去判断Calendar 插槽提供的data和服务端返回的这两个数据?
C3052D49-8A5B-42C7-9445-58EE39993D27.png

阅读 2.6k
1 个回答

已解决

if (state.currentTime > state.limited_time
            && (dayjs(dayjs.unix(state.currentTime)).format('YYYY-MM-DD') === data.day
            || dayjs(data.day).isBefore(dayjs.unix(state.currentTime))
            || dayjs(dayjs(dayjs.unix(state.currentTime)).add(1, 'day')).format('YYYY-MM-DD') === data.day)
        ) {
            return false
        } else if (dayjs(data.day).isAfter(dayjs.unix(state.currentTime))) {
            return true
        }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题