fastlion-amis
Version:
一种MIS页面生成工具
133 lines (132 loc) • 7.87 kB
JavaScript
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
;