UNPKG

fastlion-amis

Version:

一种MIS页面生成工具

133 lines (132 loc) 7.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.rowExport = exports.LionExport = void 0; var tslib_1 = require("tslib"); var MainExport_1 = (0, tslib_1.__importDefault)(require("../MainExport/MainExport")); var Modal_1 = (0, tslib_1.__importDefault)(require("antd/lib/Modal")); var react_1 = (0, tslib_1.__importDefault)(require("react")); var msgsub_1 = (0, tslib_1.__importDefault)(require("../../../../utils/msgsub")); var shell_1 = require("../../../../../../utils/shell"); require("./index.css"); var openDownloadDialog = function (url, saveName) { return new Promise(function (resolve, reject) { resolve(''); }).then(function (res) { if (typeof url == 'object' && url instanceof Blob) { url = URL.createObjectURL(url); // 创建blob地址 } var aLink = document.createElement('a'); aLink.href = url; aLink.download = saveName || ''; // HTML5新增的属性,指定保存文件名,可以不要后缀,注意,file:///模式下不会生效 var event; if (window.MouseEvent) event = new MouseEvent('click'); else { event = document.createEvent('MouseEvents'); event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); } aLink.dispatchEvent(event); }); }; // 行下载方式 var rowExport = function (action, ctx, env) { return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () { var baseUrl, exportFields, res, _a, res, confirmd, shellRes; var _b, _c, _d, _e, _f, _g; return (0, tslib_1.__generator)(this, function (_h) { switch (_h.label) { case 0: baseUrl = ((_c = (_b = env === null || env === void 0 ? void 0 : env.axiosInstance) === null || _b === void 0 ? void 0 : _b.defaults) === null || _c === void 0 ? void 0 : _c.baseURL) || (env === null || env === void 0 ? void 0 : env.ajaxApi); exportFields = ctx.exportFields.map(function (field) { return field.name; }).join(','); if (!!shell_1.Shell.hasShell()) return [3 /*break*/, 6]; return [4 /*yield*/, env.fetcher(ctx.api, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, ctx), { exportType: ctx.exportType, exportFields: exportFields })).catch()]; case 1: res = _h.sent(); if (!((res === null || res === void 0 ? void 0 : res.status) === 0)) return [3 /*break*/, 4]; _a = (res === null || res === void 0 ? void 0 : res.data); if (!_a) return [3 /*break*/, 3]; return [4 /*yield*/, openDownloadDialog((baseUrl !== null && baseUrl !== void 0 ? baseUrl : res === null || res === void 0 ? void 0 : res.reqUrl) + ((_d = res === null || res === void 0 ? void 0 : res.data) === null || _d === void 0 ? void 0 : _d.fileUrl), (_e = res === null || res === void 0 ? void 0 : res.data) === null || _e === void 0 ? void 0 : _e.fileName)]; case 2: _a = (_h.sent()); _h.label = 3; case 3: _a; msgsub_1.default._success(res === null || res === void 0 ? void 0 : res.msg, env === null || env === void 0 ? void 0 : env.getModalContainer); return [2 /*return*/, true]; case 4: if ((res === null || res === void 0 ? void 0 : res.status) === 301) { msgsub_1.default._info(res === null || res === void 0 ? void 0 : res.msg, env === null || env === void 0 ? void 0 : env.getModalContainer); } else { msgsub_1.default._error(res === null || res === void 0 ? void 0 : res.msg, env === null || env === void 0 ? void 0 : env.getModalContainer); } _h.label = 5; case 5: return [3 /*break*/, 13]; case 6: return [4 /*yield*/, env.fetcher(ctx.api, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, ctx), { exportType: ctx.exportType, exportFields: exportFields })).catch()]; case 7: res = _h.sent(); if (!((res === null || res === void 0 ? void 0 : res.status) === 0)) return [3 /*break*/, 12]; return [4 /*yield*/, env.confirm('是否要保存并打开文件?')]; case 8: confirmd = _h.sent(); if (!confirmd) return [3 /*break*/, 10]; return [4 /*yield*/, shell_1.Shell.download((baseUrl !== null && baseUrl !== void 0 ? baseUrl : res === null || res === void 0 ? void 0 : res.reqUrl) + ((_f = res === null || res === void 0 ? void 0 : res.data) === null || _f === void 0 ? void 0 : _f.fileUrl), (_g = res === null || res === void 0 ? void 0 : res.data) === null || _g === void 0 ? void 0 : _g.fileName, 0)]; case 9: shellRes = _h.sent(); if (shellRes === null || shellRes === void 0 ? void 0 : shellRes.success) { msgsub_1.default._success(shellRes === null || shellRes === void 0 ? void 0 : shellRes.msg, env === null || env === void 0 ? void 0 : env.getModalContainer); return [2 /*return*/, true]; } else { msgsub_1.default._error(shellRes === null || shellRes === void 0 ? void 0 : shellRes.msg, env === null || env === void 0 ? void 0 : env.getModalContainer); } return [3 /*break*/, 11]; case 10: msgsub_1.default._info('用户取消', env === null || env === void 0 ? void 0 : env.getModalContainer); _h.label = 11; case 11: return [3 /*break*/, 13]; case 12: msgsub_1.default._error(res === null || res === void 0 ? void 0 : res.msg, env === null || env === void 0 ? void 0 : env.getModalContainer); _h.label = 13; case 13: return [2 /*return*/, false]; } }); }); }; exports.rowExport = rowExport; // 行下载方式 // const rowExport = (action: any, ctx: any, env: any) => { // env?.fetcher({ ...action.api, responseType: "blob" }, { ...ctx, exportType: action.exportType }).then((res: any) => { // if (res?.headers["content-type"].indexOf('application/vnd.ms-excel') !== -1) { // openDownloadDialog(res?.data, res?.headers['content-disposition']); // MSG._success('导出成功', env?.getModalContainer); // } else { // let fileReader = new FileReader(); // fileReader.onload = function () { // let jsonData = JSON.parse(this.result as any); // 说明是普通对象数据,后台转换失败 // if (jsonData?.status === 302) { // MSG._error('导出数据为空', env?.getModalContainer); // } else { // MSG._error(jsonData?.msg, env?.getModalContainer); // } // }; // fileReader.readAsText(res.data) // } // return; // }).catch((err: any) => { // MSG._error('导出出错', env?.getModalContainer) // return; // }) // } // 选中或全量导出 var LionExport = function (action, ctx, env, normalSelectAll) { var modal = Modal_1.default.info({ className: "lion-wrapper-export", getContainer: env === null || env === void 0 ? void 0 : env.getModalContainer, mask: false, maskClosable: true }); modal.update({ content: react_1.default.createElement(MainExport_1.default, { normalSelectAll: normalSelectAll, env: env, action: action, ctx: ctx, handleCancel: function () { modal.destroy(); } }) }); }; exports.LionExport = LionExport; //# sourceMappingURL=./renderers/Lion/Table/LionTable/components/LionExport/index.js.map