UNPKG

qt-public-ui

Version:

新设计规范下业务组件库

220 lines (216 loc) 13.3 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof3 = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.getValueByStatus = exports.getValidUsePannels = exports.getValidDateType = exports.getTempDateType = exports.getRangeByDate = exports.getInitialTab = exports.dateType2Date = exports.date2DateType = exports.DATE_TYPE = exports.DATE_TIME_TYPE = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _constant = _interopRequireWildcard(require("./constant")); var _moment = _interopRequireDefault(require("moment")); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } var DATE_TYPE = exports.DATE_TYPE = 'YYYY-MM-DD'; var DATE_TIME_TYPE = exports.DATE_TIME_TYPE = 'YYYY-MM-DD HH:mm'; var RadioKey = ['today', 'yesterday', 'recent7Day', 'recent15Day', 'recent15DayFromToday', 'recent7DayFromToday', 'recent30Day', 'recent60Day', 'recent90Day', 'recent30DayFromToday', 'recent48Hour', 'recent24Hour', 'recent1Hour', 'thisWeek', 'lastWeek', 'thisMonth', 'lastMonth']; var getDateRange = function getDateRange(key) { switch (key) { case 'recent24Hour': return [(0, _moment["default"])().subtract(23, 'h'), (0, _moment["default"])()]; case 'recent48Hour': return [(0, _moment["default"])().subtract(47, 'h'), (0, _moment["default"])()]; case 'recent1Hour': return [(0, _moment["default"])().subtract(59, 'm'), (0, _moment["default"])()]; case 'today': return [(0, _moment["default"])().startOf('d'), (0, _moment["default"])().endOf('d')]; case 'yesterday': return [(0, _moment["default"])().subtract(1, 'd').startOf('d'), (0, _moment["default"])().subtract(1, 'd').endOf('d')]; case 'recent7Day': return [(0, _moment["default"])().subtract(7, 'd').startOf('d'), (0, _moment["default"])().subtract(1, 'd').endOf('d')]; case 'recent7DayFromToday': return [(0, _moment["default"])().subtract(6, 'd').startOf('d'), (0, _moment["default"])().endOf('d')]; case 'recent15Day': return [(0, _moment["default"])().subtract(15, 'd').startOf('d'), (0, _moment["default"])().subtract(1, 'd').endOf('d')]; case 'recent15DayFromToday': return [(0, _moment["default"])().subtract(14, 'd').startOf('d'), (0, _moment["default"])().endOf('d')]; case 'recent30Day': return [(0, _moment["default"])().subtract(30, 'd').startOf('d'), (0, _moment["default"])().subtract(1, 'd').endOf('d')]; case 'recent30DayFromToday': return [(0, _moment["default"])().subtract(29, 'd').startOf('d'), (0, _moment["default"])().endOf('d')]; case 'recent60Day': return [(0, _moment["default"])().subtract(60, 'd').startOf('d'), (0, _moment["default"])().subtract(1, 'd').endOf('d')]; case 'recent60DayFromToday': return [(0, _moment["default"])().subtract(59, 'd').startOf('d'), (0, _moment["default"])().endOf('d')]; case 'recent90Day': return [(0, _moment["default"])().subtract(90, 'd').startOf('d'), (0, _moment["default"])().subtract(1, 'd').endOf('d')]; case 'recent90DayFromToday': return [(0, _moment["default"])().subtract(89, 'd').startOf('d'), (0, _moment["default"])().endOf('d')]; case 'thisWeek': return [(0, _moment["default"])().isoWeekday(1).startOf('d'), (0, _moment["default"])().subtract(1, 'd').endOf('d')]; case 'lastWeek': return [(0, _moment["default"])().isoWeekday(-6).startOf('d'), (0, _moment["default"])().isoWeekday(0).endOf('d')]; case 'thisMonth': return [(0, _moment["default"])().set('date', 1).startOf('d'), (0, _moment["default"])().subtract(1, 'd').endOf('d')]; case 'lastMonth': return [(0, _moment["default"])().set('month', (0, _moment["default"])().get('month') - 1).set('date', 1).startOf('d'), (0, _moment["default"])().set('date', 1).subtract(1, 'd').endOf('d')]; default: return null; } }; var getFlatTabs = function getFlatTabs(tabs) { return tabs.map(function (tab) { return (0, _typeof2["default"])(tab) === 'object' ? tab.key : tab; }); }; var isRadioType = function isRadioType(value) { return _constant.radioOptions.some(function (opt) { return opt.value === value; }); }; var isTabType = function isTabType(value) { return _constant.tabOptions.some(function (opt) { return opt.value === value; }); }; var hasHourShortcut = function hasHourShortcut(radios) { return radios.indexOf('recent48Hour') > -1 || radios.indexOf('recent24Hour') > -1 || radios.indexOf('recent1Hour') > -1; }; var getValueByStatus = exports.getValueByStatus = function getValueByStatus(status) { return status ? getDateRange(status) || [] : []; }; var dateType2Date = exports.dateType2Date = function dateType2Date(initialValue) { return Array.isArray(initialValue) ? initialValue : getValueByStatus(initialValue); }; var getInitialTab = exports.getInitialTab = function getInitialTab(startDate, endDate) { // 根据Calendar tab设置datetype 的函数 var _startDate = (0, _moment["default"])(startDate); var _endDate = (0, _moment["default"])(endDate); var diff = (0, _moment["default"])(_endDate).diff((0, _moment["default"])(_startDate), 'days') + 1; // console.log('getInitialTab',diff,_startDate,_endDate) if (diff === 1) return 'unit_day'; if (diff === 7) { return _startDate.day() === 1 && _endDate.day() === 0 ? 'unit_week' : 'unit_7day'; } if (_startDate.format(DATE_TYPE) === _startDate.startOf('month').format(DATE_TYPE) && _endDate.format(DATE_TYPE) === _endDate.endOf('month').format(DATE_TYPE)) return 'unit_month'; if (diff === 15) return 'unit_15day'; if (diff === 30) return 'unit_30day'; if (diff === 60) return 'unit_60day'; if (diff === 90) return 'unit_90day'; return 'unit_custom'; }; var getValidDateType = exports.getValidDateType = function getValidDateType(value, radios, tabs) { var getValidRadioStatus = function getValidRadioStatus(rValue) { // radios配置为默认空数组 if (!radios.length) { if (rValue === 'recent7DayFromToday') return getValidTabStatus('unit_7day'); if (rValue === 'recent15DayFromToday') return getValidTabStatus('unit_15day'); if (rValue === 'recent30DayFromToday') return getValidTabStatus('unit_30day'); if (rValue === 'recent60DayFromToday') return getValidTabStatus('unit_60day'); if (rValue === 'recent90DayFromToday') return getValidTabStatus('unit_90day'); return rValue; } // canlander映射回来的value type 属于 radio if (radios.includes(rValue)) return rValue; // canlander映射回来的value type 不属于 radio if (['today', 'yesterday'].includes(rValue)) return getValidTabStatus('unit_day'); if (['recent7Day', 'recent7DayFromToday'].includes(rValue)) return getValidTabStatus('unit_7day'); if (['recent15Day', 'recent15DayFromToday'].includes(rValue)) return getValidTabStatus('unit_15day'); if (['recent30Day', 'recent30DayFromToday'].includes(rValue)) return getValidTabStatus('unit_30day'); if (['recent60Day', 'recent60DayFromToday'].includes(rValue)) return getValidTabStatus('unit_60day'); if (['recent90Day', 'recent90DayFromToday'].includes(rValue)) return getValidTabStatus('unit_90day'); if (['recent30Day'].includes(rValue)) return getValidTabStatus('unit_30day'); // if (['lastWeek'].includes(rValue)) return getValidTabStatus('unit_week'); // if (['lastMonth'].includes(rValue)) return getValidTabStatus('unit_month'); return 'unit_custom'; }; var getValidTabStatus = function getValidTabStatus(tValue) { if (!tabs.length) return 'unit_custom'; if (tabs.includes(tValue)) return tValue; if (['unit_week'].includes(tValue)) return getValidTabStatus('unit_7day'); if (['unit_month'].includes(tValue)) return getValidTabStatus('unit_30day'); // if (['unit_day', 'unit_week', 'unit_month'].includes(tValue)) return tValue; return 'unit_custom'; }; return isRadioType(value) ? getValidRadioStatus(value) : getValidTabStatus(value); }; var date2DateType = exports.date2DateType = function date2DateType(initialValue) { var radios = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var tabs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; var flatTab = getFlatTabs(tabs); // initialValue不是数组表示点击的是Radio if (!Array.isArray(initialValue)) return initialValue ? getValidDateType(initialValue, radios, flatTab) : 'unit_custom'; // initialValue表示点击的是DatePicker var _initialValue = (0, _slicedToArray2["default"])(initialValue, 2), startDate = _initialValue[0], endDate = _initialValue[1]; var radioKey; var mapRadio = radios.length > 0 ? radios : RadioKey; mapRadio.some(function (key) { var _getDateRange, _getDateRange2, _getDateRange3, _getDateRange4; var isEqual = hasHourShortcut(radios) ? ((_getDateRange = getDateRange(key)) === null || _getDateRange === void 0 ? void 0 : _getDateRange[0].format(DATE_TIME_TYPE)) === startDate.format(DATE_TIME_TYPE) && ((_getDateRange2 = getDateRange(key)) === null || _getDateRange2 === void 0 ? void 0 : _getDateRange2[1].format(DATE_TIME_TYPE)) === endDate.format(DATE_TIME_TYPE) : ((_getDateRange3 = getDateRange(key)) === null || _getDateRange3 === void 0 ? void 0 : _getDateRange3[0].format(DATE_TYPE)) === startDate.format(DATE_TYPE) && ((_getDateRange4 = getDateRange(key)) === null || _getDateRange4 === void 0 ? void 0 : _getDateRange4[1].format(DATE_TYPE)) === endDate.format(DATE_TYPE); isEqual && (radioKey = key); return isEqual; }); var dateType = radioKey || getInitialTab(startDate, endDate); // console.log(radioKey,'radioKeyradioKeyradioKeyradioKey',radios,11111,getValidDateType(dateType, radios, flatTab)) return getValidDateType(dateType, radios, flatTab); }; var getTempDateType = exports.getTempDateType = function getTempDateType(lastType) { var tabOpts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; if (isTabType(lastType)) return lastType; return _constant.tabOptions[0] ? tabOpts[0].value : 'unit_custom'; }; var getRangeByDate = exports.getRangeByDate = function getRangeByDate(date, tabStatus, index) { // console.log('getRangeByDate',date,tabStatus) if (tabStatus === 'unit_custom') return date; var _date = date; var start = (0, _moment["default"])(_date); var end = (0, _moment["default"])(_date); if (index === 0) { switch (tabStatus) { case 'unit_day': return [start.startOf('d'), end.endOf('d')]; case 'unit_7day': return [start.startOf('d'), end.add(6, 'days').endOf('d')]; case 'unit_15day': return [start.startOf('d'), end.add(14, 'days').endOf('d')]; case 'unit_30day': return [start.startOf('d'), end.add(29, 'days').endOf('d')]; case 'unit_60day': return [start.startOf('d'), end.add(59, 'days').endOf('d')]; case 'unit_90day': return [start.startOf('d'), end.add(89, 'days').endOf('d')]; case 'unit_week': return [start.startOf('week').startOf('d'), end.endOf('week').endOf('d')]; case 'unit_month': return [start.startOf('month').startOf('d'), end.endOf('month').endOf('d')]; default: return [start, end]; } } else { switch (tabStatus) { case 'unit_day': return [start.startOf('d'), end.endOf('d')]; case 'unit_7day': return [start.subtract(6, 'day').startOf('d'), end.endOf('d')]; case 'unit_15day': return [start.subtract(14, 'day').startOf('d'), end.endOf('d')]; case 'unit_30day': return [start.subtract(29, 'day').startOf('d'), end.endOf('d')]; case 'unit_60day': return [start.subtract(59, 'day').startOf('d'), end.endOf('d')]; case 'unit_90day': return [start.subtract(89, 'day').startOf('d'), end.endOf('d')]; case 'unit_week': return [start.startOf('week').startOf('d'), end.endOf('week').endOf('d')]; case 'unit_month': return [start.startOf('month').startOf('d'), end.endOf('month').endOf('d')]; default: return [start, end]; } } }; var getValidUsePannels = exports.getValidUsePannels = function getValidUsePannels(usePannels) { return usePannels === undefined ? _constant["default"].getFullTabs() : usePannels; };