UNPKG

tsp-component

Version:

提供多端和react版本的UI组件

283 lines (282 loc) 10.5 kB
export function getDaysInMonth(year, month, type) { var thirtyOneDays = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]; var thirty = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]; var twentyNine = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]; var twentyEight = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]; switch (month) { case 0: case 2: case 4: case 6: case 7: case 9: case 11: if (type === 'object') { return thirtyOneDays.map(function (value) { return { value: value, label: value }; }); } return thirtyOneDays; case 1: if (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0)) { if (type === 'object') { return twentyNine.map(function (value) { return { value: value, label: value }; }); } return twentyNine; } if (type === 'object') { return twentyEight.map(function (value) { return { value: value, label: value }; }); } return twentyEight; case 3: case 5: case 8: case 10: if (type === 'object') { return thirty.map(function (value) { { return { value: value, label: value }; } }); } return thirty; default: break; } } export function zellerFormula(year, month, day) { var yearString = year.toString(); var m = month + 1; var d = day; if (m < 3) { m += 12; yearString = (year - 1).toString(); } var c = parseInt(yearString.substr(0, 2)); var y = parseInt(yearString.substr(2, 3)); var result = parseInt((y + y / 4).toString()) + parseInt((c / 4).toString()) - 2 * c + parseInt((26 * (m + 1) / 10).toString()) + d - 1; return (result % 7 + 7) % 7; } export function createYearArray(startYear, endYear, type) { var temp = []; var i = startYear; for (i; i <= endYear; i++) { if (type === 'object') { temp.push({ value: i, label: i }); } else { temp.push(i); } } return temp; } export function createMonthArray(type) { var temp = []; var i = 0; for (i; i < 12; i++) { if (type === 'object') { temp.push({ value: i, label: i }); } else { temp.push(i); } } return temp; } export function createHoursArray(type) { var temp = []; var i = 0; for (i; i < 24; i++) { if (type === 'object') { temp.push({ value: i, label: i }); } else { temp.push(i); } } return temp; } export function createMinutesAndSecondsArray(type) { var temp = []; var i = 0; for (i; i < 60; i++) { if (type === 'object') { temp.push({ value: i, label: i }); } else { temp.push(i); } } return temp; } export function getDefaultValue(timestamp, type) { var date = timestamp ? new Date(timestamp) : new Date(); var year = valueFormat(date.getFullYear(), 'string'); var month = valueFormat(date.getMonth() + 1, 'string'); var day = valueFormat(date.getDate(), 'string'); var hour = valueFormat(date.getHours(), 'string'); var min = valueFormat(date.getMinutes(), 'string'); var sec = valueFormat(date.getSeconds(), 'string'); if (type === 'string') { return year + "-" + month + "-" + day + " " + hour + ":" + min + ":" + sec; } else { return [{ value: year }, { value: month }, { value: day }, { value: hour }, { value: min }, { value: sec }]; } } export function valueFormat(value, type, unit) { var result; var label; if (value < 10) { result = '0' + value; } else { result = value.toString(); } label = unit ? result + unit : result; if (type === 'object') { return { value: result, label: label }; } else { return label; } } export function getTodayDate(mode, type) { var date = new Date(); var year = valueFormat(date.getFullYear(), 'string'); var month = valueFormat(date.getMonth() + 1, 'string'); var day = valueFormat(date.getDate(), 'string'); var hour = valueFormat(date.getHours(), 'string'); var minute = valueFormat(date.getMinutes(), 'string'); switch (mode) { case 'yy-MM': return type === 'string' ? year + "-" + month : [year, month]; case 'yy-MM-dd': return type === 'string' ? year + "-" + month + "-" + day : [year, month, day]; case 'yy-MM-dd HH:mm': return type === 'string' ? year + "-" + month + "-" + day + " " + hour + ":" + minute : [year, month, day, hour, minute]; default: return [year, month, day]; } } export function arrayFormatDateString(value, mode) { switch (mode) { case 'yy-MM': case 'yy-MM-dd': return value.join('-'); case 'yy-MM-dd HH:mm': return value.slice(0, 3).join('-') + ' ' + value.slice(3).join(':'); default: break; } } export function dateStringFormatArray(value, mode) { switch (mode) { case 'yy-MM': case 'yy-MM-dd': return value.split('-'); case 'yy-MM-dd HH:mm': return value.substr(0, 10).split('-').concat(value.substr(11).split(':')); default: break; } } export function dateStrignFormatDatePickerValue(dateString, mode) { return dateStringFormatArray(dateString, mode).map(function (value) { return { value: value }; }); } export function isDayInDateRange(range, startStr, endStr) { var date = new Date(startStr); var time = date.getTime(); var dateRange; switch (range) { case 'today': case 'yesterday': return startStr === getDateStrByDateRange(range).startDate.str; case 'month': var todayStr = getDateStrByDateRange('today').startDate.str; return startStr.substr(0, 7) === todayStr.substr(0, 7); case 'prevWeek': dateRange = getDateStrByDateRange('prevWeek'); return startStr === dateRange.startDate.str && endStr === dateRange.endDate.str; case 'prevMonth': dateRange = getDateStrByDateRange('prevMonth'); return startStr === dateRange.startDate.str && endStr === dateRange.endDate.str; default: dateRange = getDateStrByDateRange(range); var startTime = dateRange.startDate.time; var endTime = dateRange.todayDate.time; return time >= startTime && time <= endTime && time !== endTime; } } export function getDateStrByDateRange(range) { var todayDate = new Date(); var todayWeek = todayDate.getDay(); var todayYear = todayDate.getFullYear().toString(); var todayMonth = valueFormat((todayDate.getMonth() + 1).toString(), 'string'); var todayDay = valueFormat(todayDate.getDate().toString(), 'string'); todayDate = new Date(todayYear + "-" + todayMonth + "-" + todayDay); var todayTime = todayDate.getTime(); var _a = [undefined, undefined], startDate = _a[0], endDate = _a[1]; if (typeof range === 'string') { switch (range) { case 'today': startDate = todayDate; endDate = todayDate; break; case 'yesterday': startDate = new Date(todayTime - 3600 * 24 * 1000); endDate = startDate; break; case 'week': startDate = new Date(todayTime - 3600 * 24 * 1000 * (todayWeek - 1)); endDate = todayDate; break; case 'month': startDate = new Date(todayYear + "-" + todayMonth + "-01"); endDate = todayDate; break; case 'prevWeek': var startTimeStamp = todayTime - 3600 * 24 * 1000 * todayWeek - 3600 * 24 * 1000 * 6; startDate = new Date(startTimeStamp); endDate = new Date(startTimeStamp + 3600 * 24 * 1000 * 6); break; case 'prevMonth': startDate = new Date(parseInt(todayYear), parseInt(todayMonth) - 2); endDate = new Date(parseInt(todayYear), parseInt(todayMonth) - 1, 0); break; default: break; } } else { startDate = new Date(todayTime - 3600 * 24 * 1000 * (range - 1)); endDate = todayDate; } var startYear = startDate.getFullYear().toString(); var startMonth = valueFormat((startDate.getMonth() + 1).toString(), 'string'); var startDay = valueFormat(startDate.getDate().toString(), 'string'); var startTime = startDate.getTime(); var endYear = endDate.getFullYear().toString(); var endMonth = valueFormat((endDate.getMonth() + 1).toString(), 'string'); var endDay = valueFormat(endDate.getDate().toString(), 'string'); var endTime = endDate.getTime(); return { startDate: { str: startYear + "-" + startMonth + "-" + startDay, time: startTime }, endDate: { str: endYear + "-" + endMonth + "-" + endDay, time: endTime }, todayDate: { str: todayYear + "-" + todayMonth + "-" + todayDay, time: todayTime }, }; } export function timestampToHour(timestamp) { var hour = parseInt((timestamp / 3600000).toString()); var minus = parseInt(((timestamp - 3600000 * hour) / 60000).toString()); return [hour, minus]; }