Files
copilot-toolbox-template-123/node_modules/@ant-design/pro-field/lib/components/RangePicker/index.js
2026-01-09 14:52:46 +00:00

150 lines
6.4 KiB
JavaScript

"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 _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _proProvider = require("@ant-design/pro-provider");
var _proUtils = require("@ant-design/pro-utils");
var _antd = require("antd");
var _dayjs = _interopRequireDefault(require("dayjs"));
var _react = _interopRequireWildcard(require("react"));
require("antd/lib/date-picker/style");
var _jsxRuntime = require("react/jsx-runtime");
// 兼容代码-----------
//------------
/**
* 日期范围选择组件
*
* @param
*/var FieldRangePicker = function FieldRangePicker(_ref, ref) {
var text = _ref.text,
mode = _ref.mode,
light = _ref.light,
label = _ref.label,
format = _ref.format,
render = _ref.render,
picker = _ref.picker,
renderFormItem = _ref.renderFormItem,
plain = _ref.plain,
showTime = _ref.showTime,
lightLabel = _ref.lightLabel,
bordered = _ref.bordered,
fieldProps = _ref.fieldProps;
var intl = (0, _proProvider.useIntl)();
var _ref2 = Array.isArray(text) ? text : [],
_ref3 = (0, _slicedToArray2.default)(_ref2, 2),
startText = _ref3[0],
endText = _ref3[1];
var _React$useState = _react.default.useState(false),
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
open = _React$useState2[0],
setOpen = _React$useState2[1];
// antd 改了一下 交互,这里要兼容一下,不然会导致无法选中第二个数据
var genFormatText = (0, _react.useCallback)(function (formatValue) {
if (typeof (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.format) === 'function') {
var _fieldProps$format;
return fieldProps === null || fieldProps === void 0 || (_fieldProps$format = fieldProps.format) === null || _fieldProps$format === void 0 ? void 0 : _fieldProps$format.call(fieldProps, formatValue);
}
return (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.format) || format || 'YYYY-MM-DD';
}, [fieldProps, format]);
// activePickerIndex for https://github.com/ant-design/ant-design/issues/22158
var parsedStartText = startText ? (0, _dayjs.default)(startText).format(genFormatText((0, _dayjs.default)(startText))) : '';
var parsedEndText = endText ? (0, _dayjs.default)(endText).format(genFormatText((0, _dayjs.default)(endText))) : '';
if (mode === 'read') {
var dom = /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
ref: ref,
style: {
display: 'flex',
flexWrap: 'wrap',
gap: 8,
alignItems: 'center'
},
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
children: parsedStartText || '-'
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
children: parsedEndText || '-'
})]
});
if (render) {
return render(text, (0, _objectSpread2.default)({
mode: mode
}, fieldProps), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
children: dom
}));
}
return dom;
}
if (mode === 'edit' || mode === 'update') {
var dayValue = (0, _proUtils.parseValueToDay)(fieldProps.value);
var _dom;
var handleRangeChange = function handleRangeChange(value) {
var _fieldProps$onChange;
fieldProps === null || fieldProps === void 0 || (_fieldProps$onChange = fieldProps.onChange) === null || _fieldProps$onChange === void 0 || _fieldProps$onChange.call(fieldProps, value);
if (!value) {
setOpen(false);
}
};
if (light) {
var _fieldProps$placehold;
_dom = /*#__PURE__*/(0, _jsxRuntime.jsx)(_proUtils.FieldLabel, {
label: label,
onClick: function onClick() {
var _fieldProps$onOpenCha;
fieldProps === null || fieldProps === void 0 || (_fieldProps$onOpenCha = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha === void 0 || _fieldProps$onOpenCha.call(fieldProps, true);
setOpen(true);
},
style: dayValue ? {
paddingInlineEnd: 0
} : undefined,
disabled: fieldProps.disabled,
value: dayValue || open ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.DatePicker.RangePicker, (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
picker: picker,
showTime: showTime,
format: format
}, (0, _proUtils.compatibleBorder)(false)), fieldProps), {}, {
placeholder: (_fieldProps$placehold = fieldProps.placeholder) !== null && _fieldProps$placehold !== void 0 ? _fieldProps$placehold : [intl.getMessage('tableForm.selectPlaceholder', '请选择'), intl.getMessage('tableForm.selectPlaceholder', '请选择')]
// onClear={() => {
// setOpen(false);
// fieldProps?.onClear?.();
// }}
,
value: dayValue,
onOpenChange: function onOpenChange(isOpen) {
var _fieldProps$onOpenCha2;
if (dayValue) setOpen(isOpen);
fieldProps === null || fieldProps === void 0 || (_fieldProps$onOpenCha2 = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha2 === void 0 || _fieldProps$onOpenCha2.call(fieldProps, isOpen);
},
onChange: handleRangeChange
})) : null,
allowClear: false,
bordered: bordered,
ref: lightLabel,
downIcon: dayValue || open ? false : undefined
});
} else {
_dom = /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.DatePicker.RangePicker, (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
ref: ref,
format: format,
showTime: showTime,
placeholder: [intl.getMessage('tableForm.selectPlaceholder', '请选择'), intl.getMessage('tableForm.selectPlaceholder', '请选择')]
}, (0, _proUtils.compatibleBorder)(plain === undefined ? true : !plain)), fieldProps), {}, {
value: dayValue
}));
}
if (renderFormItem) {
return renderFormItem(text, (0, _objectSpread2.default)({
mode: mode
}, fieldProps), _dom);
}
return _dom;
}
return null;
};
var _default = exports.default = /*#__PURE__*/_react.default.forwardRef(FieldRangePicker);