UNPKG

form-render

Version:

通过 JSON Schema 生成标准 Form,常用于自定义搭建配置界面生成

45 lines 1.55 kB
import { __rest } from "tslib"; import React, { useMemo } from 'react'; import dayjs from 'dayjs'; import quarterOfYear from 'dayjs/plugin/quarterOfYear'; import { getFormat, transformDateValue } from '../../utils'; import DatePicker from '../../components/DatePicker'; import withFieldWrap from '../../utils/withFieldWrap'; dayjs.extend(quarterOfYear); var DateCmpt = function DateCmpt(_a) { var onChange = _a.onChange, format = _a.format, value = _a.value, style = _a.style, rest = __rest(_a, ["onChange", "format", "value", "style"]); var dateFormat = getFormat(format); var valueObj = useMemo(function () { return transformDateValue(value, format, dateFormat); }, [value]); var handleChange = function handleChange(dateValue, dateString) { var newValue = dateString; if (format === 'week' || format === 'quarter') { newValue = dayjs(dateValue).format(dateFormat); } onChange(newValue); }; var dateParams = { value: valueObj, style: Object.assign({ width: '100%' }, style), onChange: handleChange }; // TODO: format 是在 options 里自定义的情况,是否要判断一下要不要 showTime if (format === 'dateTime') { dateParams.showTime = true; } if (['week', 'month', 'quarter', 'year'].indexOf(format) > -1) { dateParams.picker = format; } if (dateFormat === format) { dateParams.format = format; } return /*#__PURE__*/React.createElement(DatePicker, Object.assign({}, dateParams, rest)); }; export default withFieldWrap(DateCmpt);