UNPKG

fx-form-widget

Version:
121 lines (118 loc) 5.51 kB
"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 _datePicker = _interopRequireDefault(require("antd/lib/date-picker")); var _timePicker = _interopRequireDefault(require("antd/lib/time-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 datePickerPickerType = exports.datePickerPickerType = { enumKeys: ['date', 'week', 'month', 'quarter', 'year'], enumNames: ['日', '周', '月', '季度', '年'] }; var getDataPick = function getDataPick(data, timeFormatType, picker) { if (!(0, _tools.isNotNullValue)(data)) { return; } if (timeFormatType === 'time') { return (0, _dayjs["default"])(data, 'HH:mm:ss'); } if (timeFormatType === 'dateTime') { return (0, _dayjs["default"])(data, 'YYYY-MM-DD HH:mm:ss'); } if (picker === 'week') { return (0, _dayjs["default"])(data, 'YYYY-WW'); } if (picker === 'year') { return (0, _dayjs["default"])(data, 'YYYY'); } if (picker === 'month') { return (0, _dayjs["default"])(data, 'YYYY-MM'); } if (picker === 'quarter') { return (0, _dayjs["default"])(data, 'YYYY-Q'); } return (0, _dayjs["default"])(data, 'YYYY-MM-DD'); }; var DatePickerWidget = function DatePickerWidget(_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$placeholder = schema.placeholder, placeholder = _schema$placeholder === void 0 ? '' : _schema$placeholder, _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 DefaultWigdet = timeFormatType === 'time' ? _timePicker["default"] : _datePicker["default"]; var _React$useState = React.useState(), formatValue = _React$useState[0], setFormatValue = _React$useState[1]; React.useEffect(function () { setFormatValue(getDataPick(value, timeFormatType, picker)); }, [value, timeFormatType, picker]); // 默认值 var defaultOptions = {}; if (schema['ui_options']) { Object.keys(schema['ui_options']).forEach(function (key) { defaultOptions[key] = schema['ui_options'][key]; }); } // 设置placeholder var pickerName = '请选择' + (timeFormatType === 'time' ? '时间' : datePickerPickerType.enumNames[datePickerPickerType.enumKeys.indexOf(picker)]); 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: placeholder ? 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.indexOf('周') !== -1) { var tempArr = dateString.slice(0, -1).split('-'); chooseValue = tempArr[0] + 'W' + tempArr[1]; } onChange(chooseValue); setFormatValue(getDataPick(dateString, timeFormatType, picker)); }; return /*#__PURE__*/React.createElement(DefaultWigdet, (0, _extends2["default"])({ style: { width: '100%' } }, options, { value: formatValue, onChange: handleChange })); }; var _default = exports["default"] = DatePickerWidget;