UNPKG

mk-component

Version:

- 1、npm install mk-component --save

244 lines (194 loc) 8.55 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _popover = require('../popover'); var _popover2 = _interopRequireDefault(_popover); var _icon = require('../icon'); var _icon2 = _interopRequireDefault(_icon); var _layout = require('../layout'); var _layout2 = _interopRequireDefault(_layout); var _datagrid = require('../datagrid'); var _datagrid2 = _interopRequireDefault(_datagrid); var _upload = require('../upload'); var _upload2 = _interopRequireDefault(_upload); var _reactViewer = require('react-viewer'); var _reactViewer2 = _interopRequireDefault(_reactViewer); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Column = _datagrid2.default.Column; var Cell = _datagrid2.default.Cell; var attachmentComponent = function (_Component) { (0, _inherits3.default)(attachmentComponent, _Component); function attachmentComponent() { (0, _classCallCheck3.default)(this, attachmentComponent); var _this = (0, _possibleConstructorReturn3.default)(this, (attachmentComponent.__proto__ || (0, _getPrototypeOf2.default)(attachmentComponent)).call(this)); _this.contentVisibleChange = function (visible) { if (_this.state.isOpen) return; _this.setState({ contentIsVisible: visible }); }; _this.download = function (index) { return function () { _this.props.onDownload && _this.props.onDownload(_this.props.data[index]); }; }; _this.del = function (index) { return function () { _this.props.onDel && _this.props.onDel(_this.props.data[index]); }; }; _this.getContent = function () { var className = (0, _classnames2.default)((0, _defineProperty3.default)({ 'mk-attachment-content': true }, _this.props.contentClassName, !!_this.props.contentClassName)); var data = _this.props.data; var columns = [_react2.default.createElement(Column, { columnKey: 'link', flexGrow: 1, cell: function cell(ps) { return _react2.default.createElement( _popover2.default, { content: _this.getThumbnail(data[ps.rowIndex]), arrowPointAtCenter: true, placement: 'leftTop' }, _react2.default.createElement( Cell, { className: 'mk-attachment-content-link-cell' }, _react2.default.createElement( 'a', { onClick: function onClick(e) { return _this.openViewer(ps.rowIndex, e); } }, data[ps.rowIndex].alt ) ) ); }, width: 100 }), _react2.default.createElement(Column, { columnKey: 'option', cell: function cell(ps) { return _react2.default.createElement( Cell, null, _react2.default.createElement(_icon2.default, { type: 'download', showStyle: 'showy', onClick: _this.download(ps.rowIndex), style: { marginRight: 8 } }), _react2.default.createElement(_icon2.default, { type: 'delete', showStyle: 'softly', onClick: _this.del(ps.rowIndex) }) ); }, width: 70 })]; return _react2.default.createElement( 'div', { className: className }, _react2.default.createElement(_datagrid2.default, { rowsCount: data ? data.length : 0, rowHeight: 40, columns: columns, isFix: true, height: 135, width: 250 }), _react2.default.createElement( _layout2.default, { className: 'mk-attachment-content-footer' }, _react2.default.createElement( _upload2.default, (0, _extends3.default)({ showUploadList: false }, _this.props.uploadProps), _react2.default.createElement( 'a', { href: '#' }, '\u4E0A\u4F20', _react2.default.createElement(_icon2.default, { type: 'upload' }) ) ) ) ); }; _this.getThumbnail = function (detail) { return _react2.default.createElement( 'div', { style: { width: 200, height: 200 } }, _react2.default.createElement('img', { height: 200, width: 200, src: detail.src }) ); }; _this.openViewer = function (index, event) { _this.setState({ isOpen: true, activeIndex: index }); }; _this.closeViewer = function () { _this.setState({ isOpen: false }); }; _this.state = { isOpen: false, activeIndex: 0, contentIsVisible: false }; return _this; } (0, _createClass3.default)(attachmentComponent, [{ key: 'render', value: function render() { var className = (0, _classnames2.default)((0, _defineProperty3.default)({ 'mk-attachment': true }, this.props.className, !!this.props.className)); return _react2.default.createElement( _popover2.default, { overlayClassName: 'mk-attachment-popover', content: this.getContent(), placement: 'bottomRight', onVisibleChange: this.contentVisibleChange, visible: this.state.contentIsVisible, title: '\u9644\u4EF6', trigger: 'click' }, _react2.default.createElement( 'a', (0, _extends3.default)({}, this.props, { className: className }), '\u9644\u4EF6' ), this.renderViewer(this.props.data) ); } }, { key: 'renderViewer', value: function renderViewer(data) { if (!data) return null; return _react2.default.createElement(_reactViewer2.default, { images: this.props.data, visible: this.state.isOpen, activeIndex: this.state.activeIndex, container: null, onClose: this.closeViewer }); } }]); return attachmentComponent; }(_react.Component); exports.default = attachmentComponent; module.exports = exports['default'];