UNPKG

element-plus

Version:

A Component Library for Vue3.0

64 lines (52 loc) 1.64 kB
const makeList = (total, method, methodFunc) => { const arr = [] const disabledArr = method && methodFunc() for (let i = 0; i < total; i++) { arr[i] = disabledArr ? disabledArr.includes(i) : false } return arr } const makeAvaliableArr = list => { return list.map((_, index) => !_ ? index : _).filter(_ => _ !== true) } export const getTimeLists = (disabledHours, disabledMinutes, disabledSeconds) => { const getHoursList = (role, compare?) => { return makeList(24, disabledHours, () => disabledHours(role, compare)) } const getMinutesList = (hour, role, compare?) => { return makeList(60, disabledMinutes, () => disabledMinutes(hour, role, compare)) } const getSecondsList = (hour, minute, role, compare?) => { return makeList(60, disabledSeconds, () => disabledSeconds(hour, minute, role, compare)) } return { getHoursList, getMinutesList, getSecondsList, } } export const getAvaliableArrs = (disabledHours, disabledMinutes, disabledSeconds) => { const { getHoursList, getMinutesList, getSecondsList, } = getTimeLists( disabledHours, disabledMinutes, disabledSeconds, ) const getAvaliableHours = (role, compare?) => { return makeAvaliableArr(getHoursList(role, compare)) } const getAvaliableMinutes = (hour, role, compare?) => { return makeAvaliableArr(getMinutesList(hour, role, compare)) } const getAvaliableSeconds = (hour, minute, role, compare?) => { return makeAvaliableArr(getSecondsList(hour, minute, role, compare)) } return { getAvaliableHours, getAvaliableMinutes, getAvaliableSeconds, } }