qt-public-ui
Version:
新设计规范下业务组件库
120 lines (119 loc) • 4.42 kB
JavaScript
import moment from 'moment';
import { DEFAULT_CUSTOM, DEFAULT_DYNAMIC_DATE, DEFAULT_STATIC_DATE } from './constant';
import { i18n as defaultI18n } from '../utils';
export var DATE_TYPE = 'YYYY-MM-DD';
export var DATE_TIME_TYPE = 'YYYY-MM-DD HH:mm';
export var timeUnitMapping = {
week: '周',
day: '天',
month: '月'
};
// 获取快捷选择日期的范围
export var getNewsDateRange = function getNewsDateRange(relativeDate, unit) {
var numberRelativeDate = Number(relativeDate);
if (numberRelativeDate === 0 && unit === 'day') {
// 今天特殊处理
return [moment().startOf('d'), moment().endOf('d')];
}
switch (unit) {
case 'day':
return [moment().subtract(numberRelativeDate, 'd').startOf('d'), moment().subtract(1, 'd').endOf('d')];
case 'week':
return [moment().isoWeekday(-numberRelativeDate * 7 + 1).startOf('d'), moment().isoWeekday(0).endOf('d')];
case 'month':
return [moment().set('month', moment().get('month') - numberRelativeDate).set('date', 1).startOf('d'), moment().set('date', 1).subtract(1, 'd').endOf('d')];
}
};
export var getDefaultTabs = function getDefaultTabs(i18n, dateTypeList) {
if (i18n === void 0) {
i18n = defaultI18n;
}
var arrTab = [{
tab: i18n.get('相对时段'),
key: 'dynamic'
}, {
tab: i18n.get('固定时段'),
key: 'static'
}];
if (dateTypeList.length === 1) {
return arrTab.filter(function (d) {
return d.key === dateTypeList[0];
});
}
return arrTab;
};
export var getShortcutText = function getShortcutText(shortcut, i18n) {
if (i18n === void 0) {
i18n = defaultI18n;
}
var shortcutDicts = {
recent_0_day: i18n.get('今天'),
recent_1_day: i18n.get('昨天'),
recent_1_week: i18n.get('上周'),
recent_1_month: i18n.get('上月'),
custom_day: i18n.get('自定义')
};
if (shortcutDicts[shortcut]) {
return shortcutDicts[shortcut];
} else {
var _shortcut$split$1$spl = shortcut.split('recent_')[1].split('_'),
offset = _shortcut$split$1$spl[0],
unit = _shortcut$split$1$spl[1];
return i18n.get("\u8FC7\u53BB{offset}" + (unit === 'month' ? '个月' : timeUnitMapping[unit]), {
offset: offset
});
}
};
export var getRelatedDateValue = function getRelatedDateValue(newRelatedDate) {
var _newRelatedDate$split = newRelatedDate.split('recent_')[1].split('_'),
offset = _newRelatedDate$split[0],
unit = _newRelatedDate$split[1];
return getNewsDateRange(Number(offset), unit);
};
export var getCutomDay = function getCutomDay(relatedDate) {
if (relatedDate && relatedDate.indexOf('custom_recent_') !== -1) {
return relatedDate.split('custom_recent_').join('').split('_');
} else {
return DEFAULT_CUSTOM;
}
};
export var getStaticDate = function getStaticDate(dateConfig) {
var _dateConfig$fromDate = dateConfig.fromDate,
fromDate = _dateConfig$fromDate === void 0 ? DEFAULT_STATIC_DATE[0] : _dateConfig$fromDate,
_dateConfig$toDate = dateConfig.toDate,
toDate = _dateConfig$toDate === void 0 ? DEFAULT_STATIC_DATE[1] : _dateConfig$toDate;
return [moment(fromDate), moment(toDate)];
};
export var getDateFromProps = function getDateFromProps(dateConfig, defaultDateType) {
if (dateConfig === void 0) {
dateConfig = {};
}
var _dateConfig = dateConfig,
_dateConfig$dateType = _dateConfig.dateType,
dateType = _dateConfig$dateType === void 0 ? defaultDateType : _dateConfig$dateType;
if (dateType === 'static') {
return getStaticDate(dateConfig);
} else if (dateType === 'dynamic') {
var _dateConfig2 = dateConfig,
_dateConfig2$relatedD = _dateConfig2.relatedDate,
newRelatedDate = _dateConfig2$relatedD === void 0 ? DEFAULT_DYNAMIC_DATE : _dateConfig2$relatedD;
return getRelatedDateValue(newRelatedDate);
}
};
export var getCustomTips = function getCustomTips(dateType, relatedDate, i18n) {
if (i18n === void 0) {
i18n = defaultI18n;
}
if (dateType === 'static') {
return '';
} else if (relatedDate === 'recent_0_day') {
return i18n.get('今天') + " \uFF5C";
} else if (relatedDate) {
var _relatedDate$split$1$ = relatedDate.split('recent_')[1].split('_'),
offset = _relatedDate$split$1$[0],
unit = _relatedDate$split$1$[1];
return i18n.get("\u8FC7\u53BB{offset}" + (unit === 'month' ? '个月' : timeUnitMapping[unit]), {
offset: offset
}) + " \uFF5C";
}
};