UNPKG

@jdcfe/yep-react

Version:

一套移动端的React组件库

165 lines (132 loc) 6.91 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var React = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _noop = _interopRequireDefault(require("../_utils/noop")); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var ImagePicker = /*#__PURE__*/function (_React$PureComponent) { (0, _inherits2.default)(ImagePicker, _React$PureComponent); var _super = _createSuper(ImagePicker); function ImagePicker(props) { var _this; (0, _classCallCheck2.default)(this, ImagePicker); _this = _super.call(this, props); _this.state = {}; _this.fileChange = _this.fileChange.bind((0, _assertThisInitialized2.default)(_this)); return _this; } (0, _createClass2.default)(ImagePicker, [{ key: "removeImagePriv", value: function removeImagePriv(index) { var _this$props$removeIma = this.props.removeImage, removeImage = _this$props$removeIma === void 0 ? function () {} : _this$props$removeIma; removeImage(index); } }, { key: "fileChange", value: function fileChange(e) { var _this$props = this.props, name = _this$props.name, formDataAction = _this$props.formDataAction, customSize = _this$props.customSize, fileLimitCallback = _this$props.fileLimitCallback; var file = e.target.files[0]; var imgFormData = new FormData(); // 判断上传文件的类型,若不是jpeg jpg png gif类型,不执行上传操作 if (file && file.type !== 'image/jpeg' && file.type !== 'image/png' && file.type !== 'image/gif') { return; } imgFormData.append("".concat(name), file && file); // 若customSize设置为0表示不限制图片大小,不设置或者设置为其他值表示采用默认图片大小 if (customSize !== 0) { fileLimitCallback && fileLimitCallback(file && file); if (file && file.size > customSize * 1024) { return; } } var reader = new FileReader(); reader.onload = function (e) { var currentTarget = e.currentTarget; var dataUrl = currentTarget && currentTarget.result; if (!dataUrl) { return; } formDataAction && formDataAction(imgFormData, { url: dataUrl }); }; file && reader.readAsDataURL(file); if (this.input) { this.input.value = ''; } } }, { key: "render", value: function render() { var _this2 = this; var _this$props2 = this.props, files = _this$props2.files, name = _this$props2.name, height = _this$props2.height, width = _this$props2.width; var wrapperCls = (0, _classnames.default)('Yep-upload-wrapper'); return /*#__PURE__*/React.createElement("div", { className: wrapperCls }, files && files.map(function (imgItem, index) { return /*#__PURE__*/React.createElement("div", { className: "upload-flex-item", key: index }, /*#__PURE__*/React.createElement("div", { className: "upload-flex-item-del", onClick: function onClick() { _this2.removeImagePriv(index); } }), /*#__PURE__*/React.createElement("img", { className: "upload-flex-item-img", src: "".concat(imgItem.url), style: { width: width, height: height } })); }), /*#__PURE__*/React.createElement("div", { className: "upload-flex-item upload-add" }, /*#__PURE__*/React.createElement("div", { className: "upload-add-picker", style: { width: width, height: height } }, /*#__PURE__*/React.createElement("input", { ref: function ref(input) { _this2.input = input; }, type: "file", name: name, accept: "image/*", onChange: this.fileChange })))); } }]); return ImagePicker; }(React.PureComponent); exports.default = ImagePicker; ImagePicker.defaultProps = { files: [], width: '75px', height: '75px', customSize: 1024, removeImage: _noop.default };