fastlion-amis
Version:
一种MIS页面生成工具
70 lines (69 loc) • 4.96 kB
JavaScript
"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