fx-form-widget
Version:
121 lines (118 loc) • 5.8 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = exports.datePickerPickerType = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _timePicker = _interopRequireDefault(require("antd/lib/time-picker"));
var _datePicker = _interopRequireDefault(require("antd/lib/date-picker"));
var React = _interopRequireWildcard(require("react"));
var _dayjs = _interopRequireDefault(require("dayjs"));
var _tools = require("./tools");
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" != typeof 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 RangePicker = _datePicker["default"].RangePicker;
var datePickerPickerType = exports.datePickerPickerType = {
enumKeys: ['date', 'week', 'month', 'quarter', 'year'],
enumNames: ['日', '周', '月', '季度', '年']
};
var getDateRange = function getDateRange(data, timeFormatType, picker) {
if (!(0, _tools.isNotNullValue)(data)) {
return;
}
if (timeFormatType === 'time') {
return [(0, _dayjs["default"])(data[0], 'HH:mm:ss'), (0, _dayjs["default"])(data[1], 'HH:mm:ss')];
}
if (timeFormatType === 'dateTime') {
return [(0, _dayjs["default"])(data[0], 'YYYY-MM-DD HH:mm:ss'), (0, _dayjs["default"])(data[1], 'YYYY-MM-DD HH:mm:ss')];
}
if (picker === 'week') {
return [(0, _dayjs["default"])(data[0], 'YYYY-WW'), (0, _dayjs["default"])(data[1], 'YYYY-WW')];
}
if (picker === 'year') {
return [(0, _dayjs["default"])(data[0], 'YYYY'), (0, _dayjs["default"])(data[1], 'YYYY')];
}
if (picker === 'month') {
return [(0, _dayjs["default"])(data[0], 'YYYY-MM'), (0, _dayjs["default"])(data[1], 'YYYY-MM')];
}
if (picker === 'quarter') {
return [(0, _dayjs["default"])(data[0], 'YYYY-Q'), (0, _dayjs["default"])(data[1], 'YYYY-Q')];
}
return [(0, _dayjs["default"])(data[0], 'YYYY-MM-DD'), (0, _dayjs["default"])(data[1], 'YYYY-MM-DD')];
};
var RangePickerWeidget = function RangePickerWeidget(_ref) {
var _ref$schema = _ref.schema,
schema = _ref$schema === void 0 ? {} : _ref$schema,
_ref$onChange = _ref.onChange,
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
_ref$value = _ref.value,
value = _ref$value === void 0 ? undefined : _ref$value;
var _schema$readonly = schema.readonly,
readonly = _schema$readonly === void 0 ? false : _schema$readonly,
_schema$required = schema.required,
required = _schema$required === void 0 ? false : _schema$required,
_schema$allowClear = schema.allowClear,
allowClear = _schema$allowClear === void 0 ? false : _schema$allowClear,
_schema$picker = schema.picker,
picker = _schema$picker === void 0 ? 'date' : _schema$picker,
_schema$timeFormatTyp = schema.timeFormatType,
timeFormatType = _schema$timeFormatTyp === void 0 ? 'date' : _schema$timeFormatTyp,
_schema$timeChooseSec = schema.timeChooseSection,
timeChooseSection = _schema$timeChooseSec === void 0 ? 1 : _schema$timeChooseSec;
var DefaultWeigdet = timeFormatType === 'time' ? _timePicker["default"].RangePicker : RangePicker;
var _React$useState = React.useState(),
formatValue = _React$useState[0],
setFormatValue = _React$useState[1];
// 默认值
var defaultOptions = {};
if (schema['ui_options']) {
Object.keys(schema['ui_options']).forEach(function (key) {
defaultOptions[key] = schema['ui_options'][key];
});
}
// 设置placeholder
var pickerName = ['请选择开始时间', '请选择结束时间'];
var disabledFunc = function disabledFunc(e) {
switch (timeChooseSection) {
case 1:
// 无限制
return false;
case 2:
// 今天之前(含今天)
return (0, _tools.disabledDate)(e, 'below', 0);
case 3:
// 今天之后(含今天)
return (0, _tools.disabledDate)(e, 'above');
}
};
var options = (0, _extends2["default"])({
disabled: readonly,
required: required,
placeholder: pickerName,
allowClear: allowClear,
picker: picker,
disabledDate: disabledFunc,
showTime: timeFormatType === 'time' ? false : timeFormatType === 'dateTime' ? true : false
}, defaultOptions);
var handleChange = function handleChange(date, dateString) {
var chooseValue = dateString;
if (dateString[0].indexOf('周') !== -1) {
var tempArr = dateString[0].slice(0, -1).split('-');
var tempArr2 = dateString[1].slice(0, -1).split('-');
chooseValue = [tempArr[0] + '-W' + tempArr[1], tempArr2[0] + '-W' + tempArr2[1]];
}
onChange(chooseValue);
setFormatValue(getDateRange(dateString, timeFormatType, picker));
};
React.useEffect(function () {
setFormatValue(getDateRange(value, timeFormatType, picker));
}, [value, timeFormatType, picker]);
return /*#__PURE__*/React.createElement(DefaultWeigdet, (0, _extends2["default"])({
style: {
width: '100%'
}
}, options, {
value: formatValue,
onChange: handleChange
}));
};
var _default = exports["default"] = RangePickerWeidget;