UNPKG

ming-demo3

Version:
439 lines (395 loc) 16.4 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 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 _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _baseui = require("@mdf/baseui"); var _col = _interopRequireDefault(require("../basic/col")); var _row = _interopRequireDefault(require("../basic/row")); var fileList = function (_React$Component) { (0, _inherits2["default"])(fileList, _React$Component); function fileList(props) { var _this; (0, _classCallCheck2["default"])(this, fileList); _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(fileList).call(this, props)); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_getSizeString", function (size) { var kb = 1024; var mb = kb * 1024; var gb = mb * 1024; var sizeString; if (size < kb) { sizeString = Math.round(size * Math.pow(10, 1)) / Math.pow(10, 1) + 'B'; } else if (size >= kb && size <= mb) { sizeString = Math.round(size / kb * Math.pow(10, 1)) / Math.pow(10, 1) + 'KB'; } else if (size >= mb && size <= gb) { sizeString = Math.round(size / mb * Math.pow(10, 1)) / Math.pow(10, 1) + 'MB'; } else { sizeString = Math.round(size / gb * Math.pow(10, 1)) / Math.pow(10, 1) + 'GB'; } return sizeString; }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_DeleteFile", function (e, index) { if (_this.props.DelFile) _this.props.DelFile(index); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_arrowImg", function (e, arrow, index) { if (_this.props.arrowImg) _this.props.arrowImg(arrow, index); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_DownloadFile", function (e, address) { if (_this.props.isDownLoadable == false) { cb.utils.alert('当前文件不允许下载!'); } else { window.open(address); } }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onSort", function (e, index, type) { var fileList = _this.state.fileList; var sortField = _this.props.sortField; var pre = cb.utils.extend(true, {}, fileList[index - 1]); var next = cb.utils.extend(true, {}, fileList[index + 1]); var now = cb.utils.extend(true, {}, fileList[index]); var preSort = pre[sortField]; var nextSort = next[sortField]; var nowSort = now[sortField]; var newData = []; if (type == 'left') { if (index == 0) return; newData = [{ "index": index, "cellName": sortField, "cellValue": preSort }, { "index": index - 1, "cellName": sortField, "cellValue": nowSort }]; } else { if (index == fileList.length - 1) return; newData = [{ "index": index, "cellName": sortField, "cellValue": nextSort }, { "index": index + 1, "cellName": sortField, "cellValue": nowSort }]; } _this.props.model.setCellValues(newData); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onMouseEnter", function () { _this.setState({ showCover: false }); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onMouseLeave", function () { _this.setState({ showCover: true }); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_getFileControl", function () { var self = (0, _assertThisInitialized2["default"])(_this); var fileList = _this.state.fileList; var isDownLoadable = _this.props.isDownLoadable; var control = [], file, fileBtn, mode = _this.props.mode; var colPrecent = 100 / _this.state.colCount; colPrecent = colPrecent.toString() + '%'; if (fileList.length > 0) { fileList.map(function (files, index) { var percent = Math.round(files.percent); if (percent != 100 && !isNaN(percent)) { file = _react["default"].createElement("div", { className: "pull-left" }, _react["default"].createElement("div", { className: "fileImg" }, _react["default"].createElement(_baseui.Icon, { type: "pdf" })), _react["default"].createElement(_row["default"], { style: { 'marginBottom': '5px' } }, files.name), _react["default"].createElement("div", { style: {} }, _react["default"].createElement(_baseui.Progress, { percent: percent, strokeWidth: 5, status: "active" }))); } else { var size = self._getSizeString(files.size); var address = files.address; var _control = null; var icon = '#icon-'; switch (files.type) { case 'application/pdf': icon += 'PDF'; _control = _react["default"].createElement("svg", { className: "icon", "aria-hidden": "true" }, _react["default"].createElement("use", { href: icon })); break; case 'text/plain': icon += 'Txt'; _control = _react["default"].createElement("svg", { className: "icon", "aria-hidden": "true" }, _react["default"].createElement("use", { href: icon })); break; case 'application/msword': case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': icon += 'Word'; _control = _react["default"].createElement("svg", { className: "icon", "aria-hidden": "true" }, _react["default"].createElement("use", { href: icon })); break; case 'application/vnd.ms-excel': case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': icon += 'Excel'; _control = _react["default"].createElement("svg", { className: "icon", "aria-hidden": "true" }, _react["default"].createElement("use", { href: icon })); break; case 'application/x-pkcs12': if (files.address && files.address.split('.pfx').length == 2) icon += 'PFX';else icon += 'P12'; _control = _react["default"].createElement("svg", { className: "icon", "aria-hidden": "true" }, _react["default"].createElement("use", { href: icon })); break; case 'application/x-zip-compressed': case '': var name = files.name, isZip = false; name = name ? name.trim().toLocaleLowerCase() : ''; if (name.indexOf('.rar') != -1 || name.indexOf('.zip') != -1) { icon += 'ZIP'; _control = _react["default"].createElement("svg", { className: "icon", "aria-hidden": "true" }, _react["default"].createElement("use", { href: icon })); } else { _control = _react["default"].createElement("img", { src: files.address }); } break; default: _control = _react["default"].createElement("img", { src: files.address }); break; } if (mode == 'browse' || self.props.readOnly) { fileBtn = _react["default"].createElement("div", { className: "fileBtn" }, _react["default"].createElement("a", { style: { width: '100%' }, onClick: function onClick(e) { return self._DownloadFile(e, address); }, className: 'download' }, _react["default"].createElement(_baseui.Icon, { type: "download" }))); } else { if (self.props.sortField) { if (index == 0 && self.state.showCover) { fileBtn = _react["default"].createElement("div", { className: "fileBtn fileBtn-sort showCover", onMouseEnter: self.onMouseEnter }, _react["default"].createElement("a", { className: 'cover' }, '封面')); } else { fileBtn = _react["default"].createElement("div", { className: "fileBtn fileBtn-sort", onMouseLeave: self.onMouseLeave }, _react["default"].createElement("a", { onClick: function onClick(e) { return self._onSort(e, index, 'left'); }, className: 'sort-left' }, _react["default"].createElement(_baseui.Icon, { type: "arrow-left" })), _react["default"].createElement("a", { onClick: function onClick(e) { return self._onSort(e, index, 'right'); }, className: 'sort-right' }, _react["default"].createElement(_baseui.Icon, { type: "arrow-right" })), _react["default"].createElement("a", { className: 'close', onClick: function onClick(e) { return self._DeleteFile(e, index); } }, _react["default"].createElement(_baseui.Icon, { type: "delete" }))); } } else { fileBtn = isDownLoadable ? _react["default"].createElement("div", { className: "fileBtn" }, _react["default"].createElement("a", { onClick: function onClick(e) { return self._DownloadFile(e, address); }, className: 'download' }, _react["default"].createElement(_baseui.Icon, { type: "download" })), _react["default"].createElement("a", { className: 'close', onClick: function onClick(e) { return self._DeleteFile(e, index); } }, _react["default"].createElement(_baseui.Icon, { type: "delete" }))) : _react["default"].createElement("div", { className: "fileBtn" }, _react["default"].createElement("a", { className: 'onlyClose', onClick: function onClick(e) { return self._DeleteFile(e, index); } }, _react["default"].createElement(_baseui.Icon, { type: "delete" }))); } } file = _react["default"].createElement("div", { key: index, className: "pull-left" }, _react["default"].createElement("div", { className: 'fileList' }, _react["default"].createElement("div", { className: "fileImg" }, _control, fileBtn), _react["default"].createElement("div", { title: files.name, className: 'fileName' }, files.name), _react["default"].createElement("span", { className: 'fileSize' }, size))); } control.push(file); }); } return control; }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_getImgControl", function () { var self = (0, _assertThisInitialized2["default"])(_this); var fileList = _this.state.fileList; var control = []; var file; var colPrecent = 100 / _this.state.colCount; colPrecent = colPrecent.toString() + '%'; if (fileList.length > 0) { fileList.map(function (files, index) { var percent = Math.round(files.percent); if (percent != 100 && !isNaN(percent)) { file = _react["default"].createElement(_col["default"], { key: index, span: colPrecent }, _react["default"].createElement("div", { className: "Progress" }, _react["default"].createElement(_baseui.Progress, { percent: percent, strokeWidth: 5, type: "circle" }))); } else { file = _react["default"].createElement(_col["default"], { key: index, span: colPrecent }, _react["default"].createElement("div", { className: "imageList" }, _react["default"].createElement("img", { title: files.name, className: 'imageName', src: files.address }), _react["default"].createElement("div", { className: 'imageDiv' }, _react["default"].createElement("div", { className: 'arrowleft iconBefore', onClick: function onClick(e) { return self._arrowImg(e, 'left', index); } }), _react["default"].createElement("div", { className: 'arrowright iconBefore', onClick: function onClick(e) { return self._arrowImg(e, 'right', index); } }), _react["default"].createElement("div", { className: 'delete iconBefore', onClick: function onClick(e) { return self._DeleteFile(e, index); } })))); } control.push(file); }); } return control; }); _this.state = { colCount: props.colCount || 4, fileType: props.fileType || 'image', fileList: props.fileList || [], showCover: true }; return _this; } (0, _createClass2["default"])(fileList, [{ key: "componentWillReceiveProps", value: function componentWillReceiveProps(nextProps) { this.setState({ fileList: nextProps.fileList }); } }, { key: "render", value: function render() { var fileList; if (this.state.fileType == 'file') { fileList = this._getFileControl(); } else if (this.state.fileType == 'image') { fileList = this._getFileControl(); } else { return null; } return _react["default"].createElement(_row["default"], { gutter: 10 }, fileList); } }]); return fileList; }(_react["default"].Component); exports["default"] = fileList; ; //# sourceMappingURL=fileList.js.map