UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

136 lines (130 loc) 4.67 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _moment = _interopRequireDefault(require("moment")); var _react = _interopRequireWildcard(require("react")); var _cascader = _interopRequireDefault(require("../../../cascader")); var _datePicker = _interopRequireDefault(require("../../../date-picker")); var _input = _interopRequireDefault(require("../../../input")); var _inputNumber = _interopRequireDefault(require("../../../input-number")); var _select = _interopRequireDefault(require("../../../select")); var _utils = require("../../utils"); /** 渲染日期选择框: 修改日期返回值 */ const RenderDatePicker = props => { const { value, onChange, picker = 'date', ...restProps } = props; const defaultValue = (0, _react.useMemo)(() => { let nValue; // 周/月/季/年 需要处理回显 if (picker !== 'date') return nValue; if (value) { nValue = (0, _moment.default)(value); } return nValue; }, [value]); // 选中时间段的触发 const handleOnChange = (dates, dateStrings) => { onChange((0, _utils.getIsHas)(dateStrings) ? dateStrings : null); }; return /*#__PURE__*/_react.default.createElement(_datePicker.default, (0, _extends2.default)({}, restProps, { defaultValue: defaultValue, onChange: handleOnChange })); }; /** 渲染日期区间选择框: 修改了日期返回值 */ const RenderRangePicker = props => { const { value, onChange, ...restProps } = props; const defaultValue = (0, _react.useMemo)(() => { let nValue; if ((0, _utils.getIsHas)(value)) { nValue = [(0, _moment.default)(value[0]), (0, _moment.default)(value[1])]; } return nValue; }, [value]); // 选中时间段的触发 const handleOnChange = (dates, dateStrings) => { onChange((0, _utils.getIsHas)(dateStrings.filter(v => !!v)) ? dateStrings : null); }; return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_datePicker.default.RangePicker, (0, _extends2.default)({ picker: "date" }, restProps, { value: defaultValue, onChange: handleOnChange }))); }; // type: input, number, code, select, checkbox, date, range, dateTime const DynamicComponent = ({ type, operator, options = [], fieldNames: itemFieldNames, ...restProps }) => { // 自定义节点字段 const fieldNames = (0, _react.useMemo)(() => ({ label: 'label', value: 'value', ...itemFieldNames }), [itemFieldNames]); if (['input', 'code'].includes(type)) { return /*#__PURE__*/_react.default.createElement(_input.default, restProps); } if (['number'].includes(type)) { return /*#__PURE__*/_react.default.createElement(_inputNumber.default, restProps); } if (['select'].includes(type)) { return /*#__PURE__*/_react.default.createElement(_select.default, (0, _extends2.default)({ allowClear: true, showSearch: true, fieldNames: fieldNames, optionFilterProp: fieldNames?.label || 'label', options: options }, restProps)); } if (['checkbox'].includes(type)) { return /*#__PURE__*/_react.default.createElement(_select.default, (0, _extends2.default)({ allowClear: true, showSearch: true, fieldNames: fieldNames, mode: "multiple", optionFilterProp: fieldNames?.label || 'label', options: options }, restProps)); } if (['cascader'].includes(type)) { return /*#__PURE__*/_react.default.createElement(_cascader.default, (0, _extends2.default)({ allowClear: true, showSearch: true, fieldNames: fieldNames, options: options }, restProps, { onDropdownVisibleChange: open => { restProps.onVisibleChange?.(open); } })); } /** 高级筛选根据操作类型确定日期组件 */ if (operator === 'between') return /*#__PURE__*/_react.default.createElement(RenderRangePicker, restProps); if (['date', 'range'].includes(type)) { return /*#__PURE__*/_react.default.createElement(RenderDatePicker, restProps); } if (['range'].includes(type)) { return /*#__PURE__*/_react.default.createElement(RenderRangePicker, restProps); } return /*#__PURE__*/_react.default.createElement(_input.default, restProps); }; var _default = DynamicComponent; exports.default = _default;