UNPKG

fastlion-amis

Version:

一种MIS页面生成工具

201 lines (200 loc) 12.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LionCellImgRenderer = exports.LionCellImg = void 0; var tslib_1 = require("tslib"); var react_1 = (0, tslib_1.__importDefault)(require("react")); var factory_1 = require("../../../../factory"); var Popover_1 = (0, tslib_1.__importDefault)(require("antd/lib/Popover")); var LabelPrint_1 = require("../../LabelPrint"); var CellPopover_1 = (0, tslib_1.__importDefault)(require("./CellPopover")); var LodopFuncs_1 = require("../../../../utils/print/LodopFuncs"); var utils_1 = require("../../utils/utils"); var helper_1 = require("../../../../utils/helper"); var errImg = 'data:image/png;base64,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'; var LionCellImg = /** @class */ (function (_super) { (0, tslib_1.__extends)(LionCellImg, _super); function LionCellImg(props) { var _a, _b, _c; var _this = _super.call(this, props) || this; _this.baseURL = ''; _this.matchPdfImg = function (str) { return /(.jpe?)g|(.png)|(.pdf)/i.test(str); }; // 打印 _this.handleLabelPrint = function () { var list = _this.files.filter(function (_, mediaIndex) { return _this.state.selectList.includes(mediaIndex); }); // if (!this.matchPdfImg(current?.title)) { // return; // } _this.setState({ ctx: (0, tslib_1.__assign)((0, tslib_1.__assign)({}, _this.state.ctx), { items: list, rows: list, selectedItems: list, unSelectedItems: [] }) }, function () { var LODOP = (0, LodopFuncs_1.getLodop)(); if (LODOP) { _this.setState({ _print_visible: true }); } }); }; // 选中操作 _this.handleSelect = function (type) { // let indexList = [...new Array(this.state.files.length).keys()] var indexList = []; _this.state.files.map(function (item, index) { if (!item.err) { indexList.push(index); } }); switch (type) { case 'all': _this.setState({ selectList: indexList }); break; case 'invert': var invertList = indexList.filter(function (item) { return !_this.state.selectList.includes(item); }); _this.setState({ selectList: invertList }); break; case 'clear': _this.setState({ selectList: [] }); break; default: break; } }; _this.initFiles = _this.initFiles.bind(_this); _this.handleImageError = _this.handleImageError.bind(_this); _this.handleCheckMedia = _this.handleCheckMedia.bind(_this); _this.handlePreviewMedia = _this.handlePreviewMedia.bind(_this); _this.handleLabelPrint = _this.handleLabelPrint.bind(_this); _this.handleSelect = _this.handleSelect.bind(_this); _this.handleDownloadMedia = _this.handleDownloadMedia.bind(_this); _this.baseURL = (_c = (_b = (_a = props.env) === null || _a === void 0 ? void 0 : _a.axiosInstance) === null || _b === void 0 ? void 0 : _b.defaults) === null || _c === void 0 ? void 0 : _c.baseURL; process.env.NODE_ENV === 'development' && (_this.baseURL = 'https://saasdev.fastlion.cn/saas'); var files = _this.initFiles(); _this.state = { files: files, selectList: [], visible: false, _print_visible: false, ctx: { items: [], rows: [], selectedItems: [], unSelectedItems: [], ids: '' } }; return _this; } LionCellImg.prototype.initFiles = function () { var _this = this; var files = []; var value = this.props.value; if (value) { var fileMd5 = value.value, fileList = value.info; if (fileMd5 && Array.isArray(fileList) && fileList.length) { this.files = fileList; // 存一个原数据,打印用 var fileMd5List_1 = fileMd5.split(','); files = fileList.map(function (item, index) { return { value: fileMd5List_1[index], src: _this.baseURL + (item.thumbnailAddr || (item === null || item === void 0 ? void 0 : item.addr)), originalSrc: _this.baseURL + item.preview, downloadSrc: _this.baseURL + (item === null || item === void 0 ? void 0 : item.addr), title: item.name || '', }; }); } } return files; }; LionCellImg.prototype.componentDidUpdate = function (prevProps) { if (prevProps.value !== this.props.value) { this.setState({ files: this.initFiles() }, function () { // console.log(this.state.files) }); } }; // 下载 LionCellImg.prototype.handleDownloadMedia = function () { var _a = this.state, files = _a.files, selectList = _a.selectList; files.filter(function (_, mediaIndex) { return selectList.includes(mediaIndex); }).map(function (item) { (0, utils_1.downloadFile)(item.downloadSrc, item.title); }); }; LionCellImg.prototype.handleImageLoaded = function (el, index) { }; // 错误处理 LionCellImg.prototype.handleImageError = function (el, index) { var files = this.state.files.concat(); var file = files[index]; file.src = errImg; file.err = true; files.splice(index, 1, file); this.setState({ files: files }); }; LionCellImg.prototype.handleCheckMedia = function (index) { var list = this.state.selectList.concat(); var findIndex = list.findIndex(function (item) { return item === index; }); if (~findIndex) { list = list.filter(function (item) { return item !== index; }); } else { list.push(index); } this.setState({ selectList: list }); }; LionCellImg.prototype.handlePreviewMedia = function (index) { var onImageEnlarge = this.props.onImageEnlarge; var files = this.state.files; onImageEnlarge && onImageEnlarge({ src: files[index].src, originalSrc: files[index].originalSrc, index: index, list: files }); }; LionCellImg.prototype.render = function () { var _this = this; var _a = this.props, cx = _a.classnames, popOverContainer = _a.popOverContainer; var _b = this.state, selectList = _b.selectList, files = _b.files; return (react_1.default.createElement(react_1.default.Fragment, null, react_1.default.createElement("div", { className: cx('Cell-img') }, files && files.length ? react_1.default.createElement(Popover_1.default, { content: react_1.default.createElement(CellPopover_1.default, { mediaList: files, selectList: selectList, printMedia: this.handleLabelPrint, downloadMedia: this.handleDownloadMedia, selectMedia: this.handleSelect, checkMedia: this.handleCheckMedia, previewMedia: this.handlePreviewMedia }), trigger: (0, helper_1.isMobile)() ? [] : 'hover', // trigger="click" placement: 'bottom', destroyTooltipOnHide: true, getPopupContainer: popOverContainer, overlayClassName: 'table-media-format-popover' }, react_1.default.createElement("div", { className: cx('Cell-img-wrapper') }, files.map(function (item, index) { return react_1.default.createElement("img", { key: item.value || index, src: item.src, className: cx('Cell-img'), // onLoad={(e) => this.handleImageLoaded(e, index)} onError: function (e) { return _this.handleImageError(e, index); } }); }))) : "-"), this.state._print_visible && react_1.default.createElement(LabelPrint_1.ModalPrint, (0, tslib_1.__assign)({ type: "lion-print" }, this.props, { isFilePrint: true, isSingleFilePrint: true, ctx: this.state.ctx, show: this.state._print_visible, onHide: function () { _this.setState({ _print_visible: false }); } })))); }; LionCellImg.defaultProps = { title: '附件图片' }; return LionCellImg; }(react_1.default.Component)); exports.LionCellImg = LionCellImg; var LionCellImgRenderer = /** @class */ (function (_super) { (0, tslib_1.__extends)(LionCellImgRenderer, _super); function LionCellImgRenderer() { return _super !== null && _super.apply(this, arguments) || this; } LionCellImgRenderer = (0, tslib_1.__decorate)([ (0, factory_1.Renderer)({ type: 'lion-cell-img' }) ], LionCellImgRenderer); return LionCellImgRenderer; }(LionCellImg)); exports.LionCellImgRenderer = LionCellImgRenderer; //# sourceMappingURL=./renderers/Lion/Table/LionCellImg/LionCellImg.js.map