Files
2026-01-12 09:12:41 +00:00

86 lines
3.9 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 _icons = require("@ant-design/icons");
var _antd = require("antd");
var _react = _interopRequireWildcard(require("react"));
var _EditOrReadOnlyContext = require("../../BaseForm/EditOrReadOnlyContext");
var _createField = require("../../BaseForm/createField");
var _jsxRuntime = require("react/jsx-runtime");
/**
* 拖动上传组件
*
* @param
*/
var BaseProFormUploadDragger = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
var _fieldProps$style;
var fieldProps = _ref.fieldProps,
_ref$title = _ref.title,
title = _ref$title === void 0 ? '单击或拖动文件到此区域进行上传' : _ref$title,
_ref$icon = _ref.icon,
icon = _ref$icon === void 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.InboxOutlined, {}) : _ref$icon,
_ref$description = _ref.description,
description = _ref$description === void 0 ? '支持单次或批量上传' : _ref$description,
action = _ref.action,
accept = _ref.accept,
_onChange = _ref.onChange,
value = _ref.value,
children = _ref.children,
max = _ref.max,
proFieldProps = _ref.proFieldProps;
var context = (0, _react.useContext)(_antd.ConfigProvider.ConfigContext);
var modeContext = (0, _react.useContext)(_EditOrReadOnlyContext.EditOrReadOnlyContext);
var mode = (proFieldProps === null || proFieldProps === void 0 ? void 0 : proFieldProps.mode) || modeContext.mode || 'edit';
var baseClassName = context.getPrefixCls('upload');
// 如果配置了 max ,并且 超过了文件列表的大小,就不展示按钮
var showUploadButton = (max === undefined || !value || (value === null || value === void 0 ? void 0 : value.length) < max) && mode !== 'read' && (proFieldProps === null || proFieldProps === void 0 ? void 0 : proFieldProps.readonly) !== true;
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_antd.Upload.Dragger, (0, _objectSpread2.default)((0, _objectSpread2.default)({
// @ts-ignore
ref: ref,
name: "files",
action: action,
accept: accept,
fileList: value
}, fieldProps), {}, {
onChange: function onChange(info) {
_onChange === null || _onChange === void 0 || _onChange(info);
if (fieldProps !== null && fieldProps !== void 0 && fieldProps.onChange) {
fieldProps === null || fieldProps === void 0 || fieldProps.onChange(info);
}
},
style: (0, _objectSpread2.default)((0, _objectSpread2.default)({
flexDirection: 'column',
alignItems: 'center'
}, fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.style), {}, {
display: !showUploadButton ? 'none' : (fieldProps === null || fieldProps === void 0 || (_fieldProps$style = fieldProps.style) === null || _fieldProps$style === void 0 ? void 0 : _fieldProps$style.display) || 'flex'
}),
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
className: "".concat(baseClassName, "-drag-icon"),
children: icon
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
className: "".concat(baseClassName, "-text"),
children: title
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
className: "".concat(baseClassName, "-hint"),
children: description
}), children ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: "".concat(baseClassName, "-extra"),
style: {
padding: 16
},
children: children
}) : null]
}));
});
var ProFormUploadDragger = (0, _createField.createField)(BaseProFormUploadDragger, {
getValueFromEvent: function getValueFromEvent(value) {
return value.fileList;
}
});
var _default = exports.default = ProFormUploadDragger;