UNPKG

fastlion-amis

Version:

一种MIS页面生成工具

70 lines (69 loc) 4.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var react_1 = tslib_1.__importStar(require("react")); var antd_1 = require("antd"); var xlsx_1 = require("../../../../utils/xlsx"); var lodash_1 = require("lodash"); var ExportRangeEnum; (function (ExportRangeEnum) { ExportRangeEnum[ExportRangeEnum["CURRENT"] = 0] = "CURRENT"; ExportRangeEnum[ExportRangeEnum["SELECTED"] = 1] = "SELECTED"; ExportRangeEnum[ExportRangeEnum["ALL"] = 2] = "ALL"; })(ExportRangeEnum || (ExportRangeEnum = {})); var DataFormatEnum; (function (DataFormatEnum) { DataFormatEnum[DataFormatEnum["RAW"] = 0] = "RAW"; DataFormatEnum[DataFormatEnum["FORMAT"] = 1] = "FORMAT"; })(DataFormatEnum || (DataFormatEnum = {})); var ExportModal = function (modalProps) { // if (!this.state.staticExportShow || isMobile()) return null var staticExportShow = modalProps.staticExportShow, props = modalProps.props, tableStore = modalProps.tableStore, setCrudState = modalProps.setCrudState; var env = props.env, __ = props.translate, mode = props.mode; var _a = (0, react_1.useState)(ExportRangeEnum.CURRENT), exportRange = _a[0], setExportRange = _a[1]; var _b = (0, react_1.useState)(DataFormatEnum.RAW), dataFormat = _b[0], setDataFormat = _b[1]; var handleExport = function () { var _a, _b, _c, _d; if (!tableStore) return; if (exportRange === ExportRangeEnum.SELECTED) { if (tableStore.selectedRows.length === 0) { antd_1.message.warn('选中数据为空'); return; } } var excelData = exportRange === ExportRangeEnum.ALL ? [] : (0, lodash_1.flatMap)(tableStore.rows, function (row) { if (exportRange === ExportRangeEnum.SELECTED) { return row.checked ? row.data : []; } return row.data; }); var columns = tableStore.filteredColumns.filter(function (item) { return item.type !== '__checkme' && item.type != '__pseudoColumn'; }); if (mode == 'cross') { var tableHeadRows = tableStore.tableHeadRows.map(function (row) { return row.filter(function (item) { return item.name != 'SF_CHECK' && item.name != 'SF_PSEUDO'; }); }); (0, xlsx_1.exportXLSXFromCross)(tableHeadRows, columns, excelData, "".concat(((_b = (_a = props.aliasTitle) === null || _a === void 0 ? void 0 : _a.trim) === null || _b === void 0 ? void 0 : _b.call(_a)) || '交叉制表', ".xlsx"), dataFormat === DataFormatEnum.FORMAT); } else { (0, xlsx_1.exportXLSX2)(columns, excelData, "".concat(((_d = (_c = props.aliasTitle) === null || _c === void 0 ? void 0 : _c.trim) === null || _d === void 0 ? void 0 : _d.call(_c)) || '统计', ".xlsx")); } }; return react_1.default.createElement(antd_1.Modal, { title: react_1.default.createElement("div", { className: 'dialog-title' }, react_1.default.createElement("div", { className: 'disabled-move-title' }, "\u6587\u4EF6\u5BFC\u51FA")), className: 'common-modal-component', visible: staticExportShow, closable: false, okText: "\u786E\u5B9A", cancelText: "\u53D6\u6D88", width: 320, style: { top: 200 }, maskClosable: false, bodyStyle: { padding: '8 16' }, onCancel: function () { setCrudState({ staticExportShow: false }); }, zIndex: 1011, onOk: handleExport, getContainer: env.getModalContainer }, react_1.default.createElement("div", null, react_1.default.createElement("div", null, react_1.default.createElement("div", { style: { marginBottom: '4px' } }, "\u5BFC\u51FA\u8303\u56F4"), react_1.default.createElement(antd_1.Select, { style: { width: '100%' }, options: [ { label: '当前页数据', value: ExportRangeEnum.CURRENT }, { label: '选中数据', value: ExportRangeEnum.SELECTED }, { label: '全部数据', value: ExportRangeEnum.ALL } ], placeholder: __('Select.placeholder'), value: exportRange, onChange: setExportRange })), react_1.default.createElement("div", { style: { marginTop: '16px' } }, react_1.default.createElement("div", { style: { marginBottom: '4px' } }, "\u6570\u636E\u683C\u5F0F"), react_1.default.createElement("div", null, react_1.default.createElement(antd_1.Select, { style: { width: '100%' }, options: [ { label: '保留数据格式', value: DataFormatEnum.FORMAT }, { label: '导出为原始数据', value: DataFormatEnum.RAW } ], placeholder: '\u5BFC\u51FA\u65B9\u5F0F', value: dataFormat, onChange: setDataFormat }))))); }; exports.default = ExportModal; //# sourceMappingURL=./renderers/CRUD/components/Modals/ExportModal.js.map