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

121 lines
4.1 KiB
JavaScript

import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import { useIntl } from '@ant-design/pro-provider';
import { FieldLabel, compatibleBorder, parseValueToDay } from '@ant-design/pro-utils';
import { DatePicker } from 'antd';
import dayjs from 'dayjs';
import weekOfYear from 'dayjs/plugin/weekOfYear';
import React, { useState } from 'react';
// 兼容代码-----------
import "antd/es/date-picker/style";
//----------------------
import { Fragment as _Fragment } from "react/jsx-runtime";
import { jsx as _jsx } from "react/jsx-runtime";
dayjs.extend(weekOfYear);
var formatDate = function formatDate(text, format) {
if (!text) return '-';
if (typeof format === 'function') {
return format(dayjs(text));
} else {
return dayjs(text).format((Array.isArray(format) ? format[0] : format) || 'YYYY-MM-DD');
}
};
/**
* 日期选择组件
*
* @param
*/
var FieldDatePicker = function FieldDatePicker(_ref, ref) {
var text = _ref.text,
mode = _ref.mode,
format = _ref.format,
label = _ref.label,
light = _ref.light,
render = _ref.render,
renderFormItem = _ref.renderFormItem,
plain = _ref.plain,
showTime = _ref.showTime,
fieldProps = _ref.fieldProps,
picker = _ref.picker,
bordered = _ref.bordered,
lightLabel = _ref.lightLabel;
var intl = useIntl();
var _useState = useState(false),
_useState2 = _slicedToArray(_useState, 2),
open = _useState2[0],
setOpen = _useState2[1];
if (mode === 'read') {
var dom = formatDate(text, fieldProps.format || format);
if (render) {
return render(text, _objectSpread({
mode: mode
}, fieldProps), /*#__PURE__*/_jsx(_Fragment, {
children: dom
}));
}
return /*#__PURE__*/_jsx(_Fragment, {
children: dom
});
}
if (mode === 'edit' || mode === 'update') {
var _dom;
var disabled = fieldProps.disabled,
value = fieldProps.value,
_fieldProps$placehold = fieldProps.placeholder,
placeholder = _fieldProps$placehold === void 0 ? intl.getMessage('tableForm.selectPlaceholder', '请选择') : _fieldProps$placehold;
var dayValue = parseValueToDay(value);
if (light) {
_dom = /*#__PURE__*/_jsx(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: disabled,
value: dayValue || open ? /*#__PURE__*/_jsx(DatePicker, _objectSpread(_objectSpread(_objectSpread({
picker: picker,
showTime: showTime,
format: format,
ref: ref
}, fieldProps), {}, {
value: dayValue,
onOpenChange: function onOpenChange(isOpen) {
var _fieldProps$onOpenCha2;
setOpen(isOpen);
fieldProps === null || fieldProps === void 0 || (_fieldProps$onOpenCha2 = fieldProps.onOpenChange) === null || _fieldProps$onOpenCha2 === void 0 || _fieldProps$onOpenCha2.call(fieldProps, isOpen);
}
}, compatibleBorder(false)), {}, {
open: open
})) : undefined,
allowClear: false,
downIcon: dayValue || open ? false : undefined,
bordered: bordered,
ref: lightLabel
});
} else {
_dom = /*#__PURE__*/_jsx(DatePicker, _objectSpread(_objectSpread(_objectSpread({
picker: picker,
showTime: showTime,
format: format,
placeholder: placeholder
}, compatibleBorder(plain === undefined ? true : !plain)), {}, {
ref: ref
}, fieldProps), {}, {
value: dayValue
}));
}
if (renderFormItem) {
return renderFormItem(text, _objectSpread({
mode: mode
}, fieldProps), _dom);
}
return _dom;
}
return null;
};
export default /*#__PURE__*/React.forwardRef(FieldDatePicker);