anncic-api 3.7.17 → 3.7.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/config.default.js +51 -1
- package/dist/config/config.local.js +10 -1
- package/dist/config/config.production.js +7 -1
- package/dist/configuration.js +292 -1
- package/dist/decorator/Action.js +200 -1
- package/dist/decorator/ActionApitest.js +25 -1
- package/dist/decorator/Intercept.js +30 -1
- package/dist/exception/ApiError.js +46 -1
- package/dist/helper/getAppsConfig.js +10 -1
- package/dist/helper/getRoutes.js +219 -1
- package/dist/helper/getSwaggerJson.js +419 -1
- package/dist/index.js +69 -1
- package/dist/service/ApiService.js +82 -1
- package/dist/service/ApitestService.js +137 -1
- package/dist/service/ExcelService.js +162 -1
- package/dist/service/ExcelStream.js +221 -1
- package/dist/types/action.js +11 -1
- package/dist/types/common.js +33 -1
- package/dist/types/intercept.js +8 -1
- package/package.json +8 -8
|
@@ -1 +1,82 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ApiService = void 0;
|
|
13
|
+
const crypto_js_1 = require("crypto-js");
|
|
14
|
+
const core_1 = require("@midwayjs/core");
|
|
15
|
+
const ApiError_1 = require("../exception/ApiError");
|
|
16
|
+
let ApiService = class ApiService {
|
|
17
|
+
password(password) {
|
|
18
|
+
var _a;
|
|
19
|
+
return password ? (0, crypto_js_1.MD5)(`${password}` + (0, crypto_js_1.MD5)((0, crypto_js_1.MD5)(`${password}`).toString() + `${(_a = this.config) === null || _a === void 0 ? void 0 : _a.password}`).toString()).toString() : '';
|
|
20
|
+
}
|
|
21
|
+
getcheck(token, device, time = Date.now()) {
|
|
22
|
+
return {
|
|
23
|
+
Token: token,
|
|
24
|
+
Logintime: time,
|
|
25
|
+
Checkcode: this.checkcode(token, device, time)
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
getsign(signObj = {}) {
|
|
29
|
+
var _a, _b;
|
|
30
|
+
const tmpArr = [], signObjTmp = Object.fromEntries(Object.entries(signObj).map(x => [x[0].toLowerCase(), x[1]]));
|
|
31
|
+
for (let key of ['device', 'requesttime', 'token', 'logintime', 'checkcode']) {
|
|
32
|
+
if (typeof signObjTmp[key] == 'undefined') {
|
|
33
|
+
throw new AnnError(ApiError_1.ApiError.HEADERS_LACK, { message: `验证失败` });
|
|
34
|
+
}
|
|
35
|
+
tmpArr.push(key + '=' + signObjTmp[key]);
|
|
36
|
+
}
|
|
37
|
+
if (signObjTmp.requesttime && ((_a = signObjTmp.requesttime) === null || _a === void 0 ? void 0 : _a.length) == 10) {
|
|
38
|
+
signObjTmp.requesttime = signObjTmp.requesttime * 1000;
|
|
39
|
+
}
|
|
40
|
+
if (this.config.timeout && parseInt(`${Date.now()}`.substring(0, 13).padEnd(13, '0')) - parseInt(`${Math.abs(signObjTmp.requesttime)}`.substring(0, 13).padEnd(13, '0')) > parseInt(this.config.timeout)) {
|
|
41
|
+
throw new AnnError(ApiError_1.ApiError.TIMEOUT, { message: `请求超时,请重试或改善网络环境`, requesttime: signObjTmp.requesttime, timestamp: Date.now() });
|
|
42
|
+
}
|
|
43
|
+
if ((((_b = this.config.devices[signObjTmp.device]) === null || _b === void 0 ? void 0 : _b.logintimeout) || 0) > 0 && (Date.now() - Math.abs(signObjTmp.logintime)) > this.config.devices[signObjTmp.device].logintimeout) {
|
|
44
|
+
throw new AnnError(ApiError_1.ApiError.TIMEOUT_LOGINTIME);
|
|
45
|
+
}
|
|
46
|
+
if (!this.config.devices[signObjTmp.device] || !this.config.devices[signObjTmp.device].secret || !this.config.devices[signObjTmp.device].checkcode) {
|
|
47
|
+
throw new AnnError(ApiError_1.ApiError.HEADERS_DEVICE);
|
|
48
|
+
}
|
|
49
|
+
if (signObjTmp.token && signObjTmp.checkcode != this.checkcode(signObjTmp.token, signObjTmp.device, signObjTmp.logintime)) {
|
|
50
|
+
throw new AnnError(ApiError_1.ApiError.HEADERS_CHECKCODE);
|
|
51
|
+
}
|
|
52
|
+
tmpArr.push(`secret=${this.config.devices[signObjTmp.device].secret}`);
|
|
53
|
+
return (0, crypto_js_1.MD5)(tmpArr.sort().join('')).toString();
|
|
54
|
+
}
|
|
55
|
+
checkcode(token, device, time = Date.now()) {
|
|
56
|
+
var _a, _b, _c;
|
|
57
|
+
if (!((_a = this.config) === null || _a === void 0 ? void 0 : _a.devices[device]) || !((_c = (_b = this.config) === null || _b === void 0 ? void 0 : _b.devices[device]) === null || _c === void 0 ? void 0 : _c.checkcode)) {
|
|
58
|
+
throw new AnnError(ApiError_1.ApiError.HEADERS_DEVICE);
|
|
59
|
+
}
|
|
60
|
+
return (0, crypto_js_1.MD5)(`${token}` + (0, crypto_js_1.MD5)(`${time}` + `${this.config.devices[device].checkcode}`).toString()).toString();
|
|
61
|
+
}
|
|
62
|
+
checksign(signObj = {}) {
|
|
63
|
+
const signObjTmp = Object.fromEntries(Object.entries(signObj).map(x => [x[0].toLowerCase(), x[1]]));
|
|
64
|
+
if (!(signObjTmp === null || signObjTmp === void 0 ? void 0 : signObjTmp.signature)) {
|
|
65
|
+
throw new AnnError(ApiError_1.ApiError.HEADERS_LACK, { message: `验证失败` });
|
|
66
|
+
}
|
|
67
|
+
if ((signObjTmp === null || signObjTmp === void 0 ? void 0 : signObjTmp.signature) != this.getsign(signObjTmp)) {
|
|
68
|
+
throw new AnnError(ApiError_1.ApiError.HEADERS_SIGNATURE, { message: `验证失败` });
|
|
69
|
+
}
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
exports.ApiService = ApiService;
|
|
74
|
+
__decorate([
|
|
75
|
+
(0, core_1.Config)('anncicapi'),
|
|
76
|
+
__metadata("design:type", Object)
|
|
77
|
+
], ApiService.prototype, "config", void 0);
|
|
78
|
+
exports.ApiService = ApiService = __decorate([
|
|
79
|
+
(0, core_1.Provide)(),
|
|
80
|
+
(0, core_1.Scope)(core_1.ScopeEnum.Singleton)
|
|
81
|
+
], ApiService);
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlL0FwaVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUNBQStCO0FBQy9CLHlDQUFtRTtBQUNuRSxvREFBaUQ7QUFJMUMsSUFBTSxVQUFVLEdBQWhCLE1BQU0sVUFBVTtJQVVuQixRQUFRLENBQUMsUUFBaUI7O1FBQ3RCLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFBLGVBQUcsRUFBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLElBQUEsZUFBRyxFQUFDLElBQUEsZUFBRyxFQUFDLEdBQUcsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDdEksQ0FBQztJQVNELFFBQVEsQ0FBQyxLQUFzQixFQUFFLE1BQWMsRUFBRSxPQUFlLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDdEUsT0FBTztZQUNILEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLElBQUk7WUFDZixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQztTQUNqRCxDQUFBO0lBQ0wsQ0FBQztJQU9ELE9BQU8sQ0FBQyxVQUFlLEVBQUU7O1FBQ3JCLE1BQU0sTUFBTSxHQUFhLEVBQUUsRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxD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
|
|
@@ -1 +1,137 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ApitestStaticController = exports.ApitestService = void 0;
|
|
16
|
+
const path_1 = require("path");
|
|
17
|
+
const fs_1 = require("fs");
|
|
18
|
+
const core_1 = require("@midwayjs/core");
|
|
19
|
+
const core_2 = require("@midwayjs/core");
|
|
20
|
+
const core_3 = require("@midwayjs/core");
|
|
21
|
+
const getRoutes_1 = require("../helper/getRoutes");
|
|
22
|
+
let ApitestService = class ApitestService {
|
|
23
|
+
async apidoc(filter) {
|
|
24
|
+
const routes = (0, getRoutes_1.getRoutes)(filter), apiList = [];
|
|
25
|
+
for (let prefix in routes) {
|
|
26
|
+
for (let routeindex in routes[prefix].routes) {
|
|
27
|
+
let route = routes[prefix].routes[routeindex], request = [];
|
|
28
|
+
for (let _filed in route.request) {
|
|
29
|
+
request.push(route.request[_filed]);
|
|
30
|
+
}
|
|
31
|
+
apiList.push({
|
|
32
|
+
title: `${routes[prefix].summary}:${route.summary}`,
|
|
33
|
+
prefix: routes[prefix].prefix,
|
|
34
|
+
router: route.route,
|
|
35
|
+
method: route.method,
|
|
36
|
+
describe: route.description || '',
|
|
37
|
+
filepath: routes[prefix].filepath || '',
|
|
38
|
+
request: request
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const resourcePath = (0, path_1.join)(__dirname, '../../public/index.html');
|
|
43
|
+
return (0, fs_1.readFileSync)(resourcePath, { encoding: 'utf-8' }).replace(/__res__/g, '/apiteststatic/').replace('__apiList__', JSON.stringify(apiList)).replace('__devices__', JSON.stringify(this.config.devices));
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
exports.ApitestService = ApitestService;
|
|
47
|
+
__decorate([
|
|
48
|
+
(0, core_3.Config)('anncicapi'),
|
|
49
|
+
__metadata("design:type", Object)
|
|
50
|
+
], ApitestService.prototype, "config", void 0);
|
|
51
|
+
exports.ApitestService = ApitestService = __decorate([
|
|
52
|
+
(0, core_2.Provide)('apitest'),
|
|
53
|
+
(0, core_3.Scope)(core_3.ScopeEnum.Singleton)
|
|
54
|
+
], ApitestService);
|
|
55
|
+
let ApitestStaticController = class ApitestStaticController {
|
|
56
|
+
async apitesthtml() {
|
|
57
|
+
if (this.apitest) {
|
|
58
|
+
const option = { module: false };
|
|
59
|
+
if (this.Environment.isDevelopmentEnvironment()) {
|
|
60
|
+
option.filepath = true;
|
|
61
|
+
}
|
|
62
|
+
return await this.ApitestService.apidoc(option);
|
|
63
|
+
}
|
|
64
|
+
return '';
|
|
65
|
+
}
|
|
66
|
+
async apitestmodule(module) {
|
|
67
|
+
if (this.apitest) {
|
|
68
|
+
const option = { module };
|
|
69
|
+
if (this.Environment.isDevelopmentEnvironment()) {
|
|
70
|
+
option.filepath = true;
|
|
71
|
+
}
|
|
72
|
+
return await this.ApitestService.apidoc(option);
|
|
73
|
+
}
|
|
74
|
+
return '';
|
|
75
|
+
}
|
|
76
|
+
async apiteststatic() {
|
|
77
|
+
if ((0, path_1.extname)(this.ctx.request.url)) {
|
|
78
|
+
var resourcePath = (0, path_1.join)(__dirname, `../../public/${this.ctx.request.url.replace('/apiteststatic/', '/')}`);
|
|
79
|
+
if (resourcePath.substring(resourcePath.length - 11) != '/index.html') {
|
|
80
|
+
this.ctx.set('cache-control', 'public, max-age=604800');
|
|
81
|
+
if ((0, path_1.extname)(this.ctx.request.url) == '.js') {
|
|
82
|
+
this.ctx.set('content-type', 'application/javascript; charset=utf-8');
|
|
83
|
+
}
|
|
84
|
+
else if ((0, path_1.extname)(this.ctx.request.url) == '.css') {
|
|
85
|
+
this.ctx.set('content-type', 'text/css; charset=utf-8');
|
|
86
|
+
}
|
|
87
|
+
return (0, fs_1.existsSync)(resourcePath) && (0, fs_1.readFileSync)(resourcePath, { encoding: 'utf-8' });
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return '';
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
exports.ApitestStaticController = ApitestStaticController;
|
|
94
|
+
__decorate([
|
|
95
|
+
(0, core_3.Inject)(),
|
|
96
|
+
__metadata("design:type", Object)
|
|
97
|
+
], ApitestStaticController.prototype, "ctx", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
(0, core_3.Inject)(),
|
|
100
|
+
__metadata("design:type", core_1.MidwayEnvironmentService)
|
|
101
|
+
], ApitestStaticController.prototype, "Environment", void 0);
|
|
102
|
+
__decorate([
|
|
103
|
+
(0, core_3.Inject)(),
|
|
104
|
+
__metadata("design:type", ApitestService)
|
|
105
|
+
], ApitestStaticController.prototype, "ApitestService", void 0);
|
|
106
|
+
__decorate([
|
|
107
|
+
(0, core_3.Config)('apitest'),
|
|
108
|
+
__metadata("design:type", Boolean)
|
|
109
|
+
], ApitestStaticController.prototype, "apitest", void 0);
|
|
110
|
+
__decorate([
|
|
111
|
+
(0, core_3.Config)('anncicapi'),
|
|
112
|
+
__metadata("design:type", Object)
|
|
113
|
+
], ApitestStaticController.prototype, "config", void 0);
|
|
114
|
+
__decorate([
|
|
115
|
+
(0, core_2.Get)('/apitest'),
|
|
116
|
+
__metadata("design:type", Function),
|
|
117
|
+
__metadata("design:paramtypes", []),
|
|
118
|
+
__metadata("design:returntype", Promise)
|
|
119
|
+
], ApitestStaticController.prototype, "apitesthtml", null);
|
|
120
|
+
__decorate([
|
|
121
|
+
(0, core_2.Get)('/apitest-:module'),
|
|
122
|
+
__param(0, (0, core_2.Param)('module')),
|
|
123
|
+
__metadata("design:type", Function),
|
|
124
|
+
__metadata("design:paramtypes", [String]),
|
|
125
|
+
__metadata("design:returntype", Promise)
|
|
126
|
+
], ApitestStaticController.prototype, "apitestmodule", null);
|
|
127
|
+
__decorate([
|
|
128
|
+
(0, core_2.Get)('/apiteststatic/*'),
|
|
129
|
+
__metadata("design:type", Function),
|
|
130
|
+
__metadata("design:paramtypes", []),
|
|
131
|
+
__metadata("design:returntype", Promise)
|
|
132
|
+
], ApitestStaticController.prototype, "apiteststatic", null);
|
|
133
|
+
exports.ApitestStaticController = ApitestStaticController = __decorate([
|
|
134
|
+
(0, core_2.Controller)('/'),
|
|
135
|
+
(0, core_3.Scope)(core_3.ScopeEnum.Request)
|
|
136
|
+
], ApitestStaticController);
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpdGVzdFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZS9BcGl0ZXN0U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBcUM7QUFFckMsMkJBQThDO0FBQzlDLHlDQUEwRDtBQUMxRCx5Q0FBaUU7QUFDakUseUNBQWtFO0FBQ2xFLG1EQUErRDtBQUl4RCxJQUFNLGNBQWMsR0FBcEIsTUFBTSxjQUFjO0lBR3ZCLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBdUI7UUFDaEMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBUyxFQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDL0MsS0FBSyxJQUFJLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUN4QixLQUFLLElBQUksVUFBVSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUM1RCxLQUFLLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDL0IsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7Z0JBQ3ZDLENBQUM7Z0JBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQztvQkFDVCxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7b0JBQ25ELE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTTtvQkFDN0IsTUFBTSxFQUFFLEtBQUssQ0FBQyxLQUFLO29CQUNuQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07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
|
|
@@ -1 +1,162 @@
|
|
|
1
|
-
const a14_0x189dfc=a14_0x1353;function a14_0x53e4(){const _0x135d15=['ExcelStream','Singleton','Workbook','constructor','440884bPTlmg','__esModule','worksheets','9684560pdKSsg','length','App','prototype','cellCount','getAppDir','9651215OJSVAm','exceljs','search','design:type','10gFankI','14582290ATPwBm','onRead','@midwayjs/core','ScopeEnum','substring','log','11mvoduR','xls','metadata','eachCell','export','\x20is\x20read\x20fail','defineProperty','474RnDQBm','194jwUuyQ','endsWith','startsWith','value','15910407RXgApa','set','values','key','findRows','getOwnPropertyDescriptor','rowCount','header','mkdirSync','instance','object','handler','function','Provide','(((.+)+)+)+$','addRow','Scope','getWorksheet','onWrite','./ExcelStream','download','model','803562elZLfB','33eesBpy','Sheet\x201','replace','getCell','col','app','decorate','/public/xlsx/','ExcelService','toString','filter','apply','push','parse'];a14_0x53e4=function(){return _0x135d15;};return a14_0x53e4();}(function(_0x4be728,_0x3df0f8){const _0x14725c=a14_0x1353,_0xb2f26f=_0x4be728();while(!![]){try{const _0x201740=-parseInt(_0x14725c(0x98))/0x1*(-parseInt(_0x14725c(0x99))/0x2)+parseInt(_0x14725c(0xb4))/0x3*(parseInt(_0x14725c(0x7d))/0x4)+-parseInt(_0x14725c(0x8a))/0x5*(-parseInt(_0x14725c(0xb3))/0x6)+parseInt(_0x14725c(0x86))/0x7+parseInt(_0x14725c(0x80))/0x8+-parseInt(_0x14725c(0x9d))/0x9+parseInt(_0x14725c(0x8b))/0xa*(-parseInt(_0x14725c(0x91))/0xb);if(_0x201740===_0x3df0f8)break;else _0xb2f26f['push'](_0xb2f26f['shift']());}catch(_0x267cff){_0xb2f26f['push'](_0xb2f26f['shift']());}}}(a14_0x53e4,0xd92b6));const a14_0x198062=(function(){let _0x378aa6=!![];return function(_0x1a7f16,_0x4a729f){const _0x1ba761=_0x378aa6?function(){const _0x351866=a14_0x1353;if(_0x4a729f){const _0x352af9=_0x4a729f[_0x351866(0x76)](_0x1a7f16,arguments);return _0x4a729f=null,_0x352af9;}}:function(){};return _0x378aa6=![],_0x1ba761;};}()),a14_0x4afa48=a14_0x198062(this,function(){const _0x36601f=a14_0x1353;return a14_0x4afa48['toString']()[_0x36601f(0x88)]('(((.+)+)+)+$')[_0x36601f(0x74)]()[_0x36601f(0x7c)](a14_0x4afa48)['search'](_0x36601f(0xab));});a14_0x4afa48();'use strict';function a14_0x1353(_0x545999,_0x355cf7){const _0x566c63=a14_0x53e4();return a14_0x1353=function(_0x4afa48,_0x198062){_0x4afa48=_0x4afa48-0x6c;let _0x53e410=_0x566c63[_0x4afa48];return _0x53e410;},a14_0x1353(_0x545999,_0x355cf7);}var __decorate=this&&this['__decorate']||function(_0x18fbf0,_0x37a510,_0x408022,_0x5b7b1f){const _0x472542=a14_0x1353;var _0x55faf1=arguments[_0x472542(0x81)],_0x1aa81b=_0x55faf1<0x3?_0x37a510:_0x5b7b1f===null?_0x5b7b1f=Object[_0x472542(0xa2)](_0x37a510,_0x408022):_0x5b7b1f,_0x91826c;if(typeof Reflect==='object'&&typeof Reflect[_0x472542(0x71)]===_0x472542(0xa9))_0x1aa81b=Reflect[_0x472542(0x71)](_0x18fbf0,_0x37a510,_0x408022,_0x5b7b1f);else{for(var _0x4f1fd0=_0x18fbf0[_0x472542(0x81)]-0x1;_0x4f1fd0>=0x0;_0x4f1fd0--)if(_0x91826c=_0x18fbf0[_0x4f1fd0])_0x1aa81b=(_0x55faf1<0x3?_0x91826c(_0x1aa81b):_0x55faf1>0x3?_0x91826c(_0x37a510,_0x408022,_0x1aa81b):_0x91826c(_0x37a510,_0x408022))||_0x1aa81b;}return _0x55faf1>0x3&&_0x1aa81b&&Object[_0x472542(0x97)](_0x37a510,_0x408022,_0x1aa81b),_0x1aa81b;},__metadata=this&&this['__metadata']||function(_0x256c90,_0x75ab0a){const _0x5a65b6=a14_0x1353;if(typeof Reflect===_0x5a65b6(0xa7)&&typeof Reflect['metadata']===_0x5a65b6(0xa9))return Reflect[_0x5a65b6(0x93)](_0x256c90,_0x75ab0a);};Object[a14_0x189dfc(0x97)](exports,a14_0x189dfc(0x7e),{'value':!![]}),exports[a14_0x189dfc(0x73)]=void 0x0;const fs=require('fs'),exceljs=require(a14_0x189dfc(0x87)),koasend=require('koa-send'),core_1=require(a14_0x189dfc(0x8d)),ExcelStream_1=require(a14_0x189dfc(0xb0));let ExcelService=class ExcelService{async[a14_0x189dfc(0x78)](_0x2e52db,_0x3e9b26,_0x143115=[0x0]){const _0x370747=a14_0x189dfc;var _0x2e694b,_0x2fcdd7;const _0x41644d=new exceljs[(_0x370747(0x7b))](),_0x4ba146=[];let _0x29ff6b=_0x2e52db[_0x370747(0x6d)](/(\\|\/)/g,'/')[_0x370747(0x6d)](/\/{2,}/g,'/');!(_0x29ff6b===null||_0x29ff6b===void 0x0?void 0x0:_0x29ff6b['startsWith']('/'))&&(_0x29ff6b=this['app'][_0x370747(0x85)]()+'/'+_0x29ff6b);try{await _0x41644d['xlsx']['readFile'](_0x29ff6b);}catch(_0x7cde62){return console[_0x370747(0x90)]('Api\x20Excel\x20Error:\x20'+_0x29ff6b+_0x370747(0x96)),_0x4ba146;}for(const _0x2ec7f1 of _0x143115){const _0x376634=lodash['isNumber'](_0x2ec7f1)?((_0x2e694b=_0x41644d[_0x370747(0x7f)])===null||_0x2e694b===void 0x0?void 0x0:_0x2e694b[_0x2ec7f1])||undefined:_0x41644d[_0x370747(0xae)](_0x2ec7f1);if(_0x376634){var _0x1ece2e=0x1;const _0x55574f=_0x376634['getRow'](0x1),_0x4ca481=await new Promise(_0x2f8f65=>{const _0x4d8580=_0x370747,_0x144974={};_0x55574f[_0x4d8580(0x94)]((_0x2a89ee,_0x1762f0)=>{const _0x39f7b0=_0x4d8580;for(const _0x28ada2 of _0x3e9b26){if(_0x2a89ee[_0x39f7b0(0x9c)]==_0x28ada2['header'])_0x1ece2e=0x2,_0x144974[_0x28ada2[_0x39f7b0(0xa0)]]={'header':_0x2a89ee[_0x39f7b0(0x6f)],'handler':(_0x28ada2===null||_0x28ada2===void 0x0?void 0x0:_0x28ada2[_0x39f7b0(0x8c)])||(_0x28ada2===null||_0x28ada2===void 0x0?void 0x0:_0x28ada2[_0x39f7b0(0xa8)])};else{if(!_0x144974[_0x28ada2[_0x39f7b0(0xa0)]])try{const _0x452b80=_0x55574f&&_0x55574f[_0x39f7b0(0x6e)](_0x28ada2[_0x39f7b0(0xa4)]);_0x452b80&&(_0x144974[_0x28ada2[_0x39f7b0(0xa0)]]={'header':_0x452b80[_0x39f7b0(0x6f)],'handler':(_0x28ada2===null||_0x28ada2===void 0x0?void 0x0:_0x28ada2['onRead'])||(_0x28ada2===null||_0x28ada2===void 0x0?void 0x0:_0x28ada2[_0x39f7b0(0xa8)])});}catch{}}}_0x55574f[_0x39f7b0(0x84)]==_0x1762f0&&_0x2f8f65(_0x144974);});});_0x4090d9:for(const _0x1df20f of _0x376634[_0x370747(0xa1)](_0x1ece2e,_0x376634[_0x370747(0xa3)])){if(typeof(_0x1df20f===null||_0x1df20f===void 0x0?void 0x0:_0x1df20f[_0x370747(0x6e)])!=_0x370747(0xa9))continue _0x4090d9;const _0x119db5={};_0x3e987d:for(const _0x5483a4 in _0x4ca481){if(_0x4ca481[_0x5483a4]['header']){const _0x402521=_0x1df20f[_0x370747(0x6e)](_0x4ca481[_0x5483a4]['header']);if(!_0x402521)continue _0x3e987d;try{_0x402521[_0x370747(0x74)]();}catch(_0x4f6be7){_0x402521[_0x370747(0x74)]=()=>{const _0x41ca16=_0x370747;var _0xea7159;return''+(((_0xea7159=_0x402521===null||_0x402521===void 0x0?void 0x0:_0x402521[_0x41ca16(0xb2)])===null||_0xea7159===void 0x0?void 0x0:_0xea7159[_0x41ca16(0x9c)])||'');};}typeof((_0x2fcdd7=_0x4ca481[_0x5483a4])===null||_0x2fcdd7===void 0x0?void 0x0:_0x2fcdd7[_0x370747(0xa8)])==_0x370747(0xa9)?_0x119db5[_0x5483a4]=await _0x4ca481[_0x5483a4][_0x370747(0xa8)](lodash[_0x370747(0x9e)]({},_0x5483a4,(_0x402521===null||_0x402521===void 0x0?void 0x0:_0x402521[_0x370747(0x74)]())||''),_0x402521[_0x370747(0xb2)]):_0x119db5[_0x5483a4]=(_0x402521===null||_0x402521===void 0x0?void 0x0:_0x402521[_0x370747(0x74)]())||'';}}Object['keys'](_0x119db5)['length']>0x0&&Object[_0x370747(0x9f)](_0x119db5)[_0x370747(0x75)](_0x504303=>_0x504303!='')[_0x370747(0x81)]>0x0&&_0x4ba146[_0x370747(0x77)](_0x119db5);}}}return _0x4ba146;}async[a14_0x189dfc(0x95)](_0x77bc47,_0x183263,_0x3e31fe,_0x54d70c,_0xea7238){const _0x4f2ca1=a14_0x189dfc;var _0x25a729,_0x164173,_0x3c9fcd;const _0x23685a=new exceljs['Workbook'](),_0x3390c4={},_0x2b4ff9=[],_0x52b1c5=_0x23685a['addWorksheet'](_0x4f2ca1(0x6c),{'views':[{'state':'frozen','ySplit':0x1}]});for(const _0x3b7497 in _0x183263){_0x3390c4[_0x183263[_0x3b7497][_0x4f2ca1(0xa0)]]=_0x183263[_0x3b7497]['header'],_0x2b4ff9[_0x4f2ca1(0x77)]({'header':_0x183263[_0x3b7497][_0x4f2ca1(0xa4)],'key':(_0x25a729=_0x183263[_0x3b7497])===null||_0x25a729===void 0x0?void 0x0:_0x25a729[_0x4f2ca1(0xa0)][_0x4f2ca1(0x6d)](/\./g,'_')});}_0x52b1c5['columns']=_0x2b4ff9;for(const _0x47d5f1 in _0x3e31fe){const _0x44b886=_0x3e31fe[_0x47d5f1],_0x459895=_0x52b1c5[_0x4f2ca1(0xac)]({});for(let _0xb14b44 in _0x183263){const _0x3e4174=_0x183263[_0xb14b44]['key']['replace'](/\./g,'_'),_0x180ef2=_0x52b1c5['getColumn'](_0x3e4174),_0x8a4ea0=_0x459895===null||_0x459895===void 0x0?void 0x0:_0x459895[_0x4f2ca1(0x6e)](_0x3e4174);if(typeof((_0x164173=_0x183263[_0xb14b44])===null||_0x164173===void 0x0?void 0x0:_0x164173[_0x4f2ca1(0xaf)])==_0x4f2ca1(0xa9))_0x8a4ea0[_0x4f2ca1(0x9c)]=await _0x183263[_0xb14b44]['onWrite'](_0x44b886,{'row':_0x459895,'col':_0x180ef2,'cell':_0x8a4ea0,'sheet':_0x52b1c5})||'';else typeof((_0x3c9fcd=_0x183263[_0xb14b44])===null||_0x3c9fcd===void 0x0?void 0x0:_0x3c9fcd['handler'])==_0x4f2ca1(0xa9)?_0x8a4ea0[_0x4f2ca1(0x9c)]=await _0x183263[_0xb14b44][_0x4f2ca1(0xa8)](_0x44b886,{'row':_0x459895,'col':_0x180ef2,'cell':_0x8a4ea0,'sheet':_0x52b1c5})||'':_0x8a4ea0[_0x4f2ca1(0x9c)]=lodash['get'](_0x44b886,_0x183263[_0xb14b44][_0x4f2ca1(0xa0)],'');}}typeof _0xea7238==_0x4f2ca1(0xa9)&&await _0xea7238({'workbook':_0x23685a,'worksheet':_0x52b1c5});let _0x44acc2='';const _0x39b306=_0x77bc47+'.xlsx';if(_0x54d70c&&_0x54d70c[_0x4f2ca1(0x9b)]('/'))_0x44acc2=''+_0x54d70c;else _0x54d70c&&!_0x54d70c[_0x4f2ca1(0x9b)]('/')&&!_0x54d70c[_0x4f2ca1(0x9b)]('\x5c')?_0x44acc2=this[_0x4f2ca1(0x70)]['getAppDir']()+'/'+_0x54d70c:_0x44acc2=this[_0x4f2ca1(0x70)]['getAppDir']()+_0x4f2ca1(0x72)+dayjs()['format']('YYYY/MM/DD');return(_0x44acc2[_0x4f2ca1(0x9a)]('/')||_0x44acc2[_0x4f2ca1(0x9a)]('\x5c'))&&(_0x44acc2=_0x44acc2[_0x4f2ca1(0x8f)](0x0,_0x44acc2[_0x4f2ca1(0x81)]-0x1)),_0x44acc2=_0x44acc2[_0x4f2ca1(0x6d)](/(\\|\/)/g,'/')[_0x4f2ca1(0x6d)](/\/{2,}/g,'/'),!fs['existsSync'](_0x44acc2)&&fs[_0x4f2ca1(0xa5)](_0x44acc2,{'recursive':!![]}),await _0x23685a['xlsx']['writeFile']((_0x44acc2+'/'+_0x39b306)[_0x4f2ca1(0x6d)](/(\\|\/)/g,'/')[_0x4f2ca1(0x6d)](/\/{2,}/g,'/')),{'filename':_0x39b306,'filepath':(_0x44acc2[_0x4f2ca1(0x8f)]((''+this['app'][_0x4f2ca1(0x85)]())[_0x4f2ca1(0x81)])+'/'+_0x39b306)[_0x4f2ca1(0x6d)](/(\\|\/)/g,'/')[_0x4f2ca1(0x6d)](/\/{2,}/g,'/')};}async['stream'](_0x39f162,_0x7e41c5={'suffix':[a14_0x189dfc(0x92),'xlsx']}){const _0x2ebad2=a14_0x189dfc;return await ExcelStream_1[_0x2ebad2(0x79)][_0x2ebad2(0xa6)](_0x39f162,_0x7e41c5);}async[a14_0x189dfc(0xb1)](_0x275816,_0x58283d){return await koasend(_0x275816,''+_0x58283d);}};exports['ExcelService']=ExcelService,__decorate([(0x0,core_1[a14_0x189dfc(0x82)])(),__metadata(a14_0x189dfc(0x89),Object)],ExcelService[a14_0x189dfc(0x83)],a14_0x189dfc(0x70),void 0x0),exports['ExcelService']=ExcelService=__decorate([(0x0,core_1[a14_0x189dfc(0xaa)])(),(0x0,core_1[a14_0x189dfc(0xad)])(core_1[a14_0x189dfc(0x8e)][a14_0x189dfc(0x7a)])],ExcelService);
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ExcelService = void 0;
|
|
13
|
+
const fs = require("fs");
|
|
14
|
+
const exceljs = require("exceljs");
|
|
15
|
+
const koasend = require("koa-send");
|
|
16
|
+
const core_1 = require("@midwayjs/core");
|
|
17
|
+
const ExcelStream_1 = require("./ExcelStream");
|
|
18
|
+
let ExcelService = class ExcelService {
|
|
19
|
+
async parse(filepath, column, sheets = [0]) {
|
|
20
|
+
var _a, _b;
|
|
21
|
+
const workbook = new exceljs.Workbook(), columnRow = [];
|
|
22
|
+
let readFilePath = filepath.replace(/(\\|\/)/g, '/').replace(/\/{2,}/g, '/');
|
|
23
|
+
if (!(readFilePath === null || readFilePath === void 0 ? void 0 : readFilePath.startsWith('/'))) {
|
|
24
|
+
readFilePath = `${this.app.getAppDir()}/${readFilePath}`;
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
await workbook.xlsx.readFile(readFilePath);
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
console.log(`Api Excel Error: ${readFilePath} is read fail`);
|
|
31
|
+
return columnRow;
|
|
32
|
+
}
|
|
33
|
+
for (const sheet of sheets) {
|
|
34
|
+
const worksheet = lodash.isNumber(sheet) ? (((_a = workbook.worksheets) === null || _a === void 0 ? void 0 : _a[sheet]) || undefined) : workbook.getWorksheet(sheet);
|
|
35
|
+
if (worksheet) {
|
|
36
|
+
var startRow = 1;
|
|
37
|
+
const firstSheetRow = worksheet.getRow(1);
|
|
38
|
+
const columnsTmp = await new Promise((resolve) => {
|
|
39
|
+
const columnsTmpEach = {};
|
|
40
|
+
firstSheetRow.eachCell((cell, colnumber) => {
|
|
41
|
+
for (const _column of column) {
|
|
42
|
+
if (cell.value == _column.header) {
|
|
43
|
+
startRow = 2;
|
|
44
|
+
columnsTmpEach[_column.key] = { header: cell.col, handler: (_column === null || _column === void 0 ? void 0 : _column.onRead) || (_column === null || _column === void 0 ? void 0 : _column.handler) };
|
|
45
|
+
}
|
|
46
|
+
else if (!columnsTmpEach[_column.key]) {
|
|
47
|
+
try {
|
|
48
|
+
const getCell = firstSheetRow && firstSheetRow.getCell(_column.header);
|
|
49
|
+
if (getCell) {
|
|
50
|
+
columnsTmpEach[_column.key] = { header: getCell.col, handler: (_column === null || _column === void 0 ? void 0 : _column.onRead) || (_column === null || _column === void 0 ? void 0 : _column.handler) };
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (firstSheetRow.cellCount == colnumber) {
|
|
58
|
+
resolve(columnsTmpEach);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
findRows: for (const sheetRow of worksheet.findRows(startRow, worksheet.rowCount)) {
|
|
63
|
+
if (typeof (sheetRow === null || sheetRow === void 0 ? void 0 : sheetRow.getCell) != 'function') {
|
|
64
|
+
continue findRows;
|
|
65
|
+
}
|
|
66
|
+
const sheetRowcolumn = {};
|
|
67
|
+
columnsTmp: for (const columnKey in columnsTmp) {
|
|
68
|
+
if (columnsTmp[columnKey].header) {
|
|
69
|
+
const sheetRowCell = sheetRow.getCell(columnsTmp[columnKey].header);
|
|
70
|
+
if (!sheetRowCell) {
|
|
71
|
+
continue columnsTmp;
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
sheetRowCell.toString();
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
sheetRowCell['toString'] = () => { var _a; return `${((_a = sheetRowCell === null || sheetRowCell === void 0 ? void 0 : sheetRowCell.model) === null || _a === void 0 ? void 0 : _a.value) || ''}`; };
|
|
78
|
+
}
|
|
79
|
+
if (typeof ((_b = columnsTmp[columnKey]) === null || _b === void 0 ? void 0 : _b.handler) == 'function') {
|
|
80
|
+
sheetRowcolumn[columnKey] = await columnsTmp[columnKey].handler(lodash.set({}, columnKey, (sheetRowCell === null || sheetRowCell === void 0 ? void 0 : sheetRowCell.toString()) || ''), sheetRowCell.model);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
sheetRowcolumn[columnKey] = (sheetRowCell === null || sheetRowCell === void 0 ? void 0 : sheetRowCell.toString()) || '';
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (Object.keys(sheetRowcolumn).length > 0 && Object.values(sheetRowcolumn).filter(str => str != '').length > 0) {
|
|
88
|
+
columnRow.push(sheetRowcolumn);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return columnRow;
|
|
94
|
+
}
|
|
95
|
+
async export(filename, column, tmpEntitys, savepath, beforSave) {
|
|
96
|
+
var _a, _b, _c;
|
|
97
|
+
const workbook = new exceljs.Workbook(), columnRow = {}, columns = [];
|
|
98
|
+
const worksheet = workbook.addWorksheet("Sheet 1", { views: [{ state: 'frozen', ySplit: 1 }] });
|
|
99
|
+
for (const index in column) {
|
|
100
|
+
columnRow[column[index].key] = column[index].header;
|
|
101
|
+
columns.push({ header: column[index].header, key: (_a = column[index]) === null || _a === void 0 ? void 0 : _a.key.replace(/\./g, '_') });
|
|
102
|
+
}
|
|
103
|
+
worksheet.columns = columns;
|
|
104
|
+
for (const entityIndex in tmpEntitys) {
|
|
105
|
+
const entity = tmpEntitys[entityIndex], entityRow = worksheet.addRow({});
|
|
106
|
+
for (let index in column) {
|
|
107
|
+
const columnKey = column[index].key.replace(/\./g, '_'), columnCol = worksheet.getColumn(columnKey), columnCell = entityRow === null || entityRow === void 0 ? void 0 : entityRow.getCell(columnKey);
|
|
108
|
+
if (typeof ((_b = column[index]) === null || _b === void 0 ? void 0 : _b.onWrite) == 'function') {
|
|
109
|
+
columnCell.value = await column[index].onWrite(entity, { row: entityRow, col: columnCol, cell: columnCell, sheet: worksheet }) || '';
|
|
110
|
+
}
|
|
111
|
+
else if (typeof ((_c = column[index]) === null || _c === void 0 ? void 0 : _c.handler) == 'function') {
|
|
112
|
+
columnCell.value = await column[index].handler(entity, { row: entityRow, col: columnCol, cell: columnCell, sheet: worksheet }) || '';
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
columnCell.value = lodash.get(entity, column[index].key, '');
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (typeof (beforSave) == 'function') {
|
|
120
|
+
await beforSave({ workbook, worksheet });
|
|
121
|
+
}
|
|
122
|
+
let writePath = '';
|
|
123
|
+
const filepath = `${filename}.xlsx`;
|
|
124
|
+
if (savepath && savepath.startsWith('/')) {
|
|
125
|
+
writePath = `${savepath}`;
|
|
126
|
+
}
|
|
127
|
+
else if (savepath && !savepath.startsWith('/') && !savepath.startsWith('\\')) {
|
|
128
|
+
writePath = `${this.app.getAppDir()}/${savepath}`;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
writePath = `${this.app.getAppDir()}/public/xlsx/${dayjs().format('YYYY/MM/DD')}`;
|
|
132
|
+
}
|
|
133
|
+
if (writePath.endsWith('/') || writePath.endsWith('\\')) {
|
|
134
|
+
writePath = writePath.substring(0, writePath.length - 1);
|
|
135
|
+
}
|
|
136
|
+
writePath = writePath.replace(/(\\|\/)/g, '/').replace(/\/{2,}/g, '/');
|
|
137
|
+
if (!fs.existsSync(writePath)) {
|
|
138
|
+
fs.mkdirSync(writePath, { recursive: true });
|
|
139
|
+
}
|
|
140
|
+
await workbook.xlsx.writeFile(`${writePath}/${filepath}`.replace(/(\\|\/)/g, '/').replace(/\/{2,}/g, '/'));
|
|
141
|
+
return {
|
|
142
|
+
filename: filepath,
|
|
143
|
+
filepath: `${writePath.substring(`${this.app.getAppDir()}`.length)}/${filepath}`.replace(/(\\|\/)/g, '/').replace(/\/{2,}/g, '/')
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
async stream(file, option = { suffix: ['xls', 'xlsx'] }) {
|
|
147
|
+
return await ExcelStream_1.ExcelStream.instance(file, option);
|
|
148
|
+
}
|
|
149
|
+
async download(ctx, filepath) {
|
|
150
|
+
return await koasend(ctx, `${filepath}`);
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
exports.ExcelService = ExcelService;
|
|
154
|
+
__decorate([
|
|
155
|
+
(0, core_1.App)(),
|
|
156
|
+
__metadata("design:type", Object)
|
|
157
|
+
], ExcelService.prototype, "app", void 0);
|
|
158
|
+
exports.ExcelService = ExcelService = __decorate([
|
|
159
|
+
(0, core_1.Provide)(),
|
|
160
|
+
(0, core_1.Scope)(core_1.ScopeEnum.Singleton)
|
|
161
|
+
], ExcelService);
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhjZWxTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2UvRXhjZWxTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHlCQUF5QjtBQUN6QixtQ0FBbUM7QUFDbkMsb0NBQW9DO0FBRXBDLHlDQUFnRTtBQUVoRSwrQ0FBNEM7QUFrQnJDLElBQU0sWUFBWSxHQUFsQixNQUFNLFlBQVk7SUFPckIsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFnQixFQUFFLE1BQTBCLEVBQUUsU0FBaUMsQ0FBQyxDQUFDLENBQUM7O1FBQzFGLE1BQU0sUUFBUSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLFNBQVMsR0FBa0MsRUFBRSxDQUFDO1FBRXZGLElBQUksWUFBWSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFN0UsSUFBSSxDQUFDLENBQUEsWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQSxFQUFFLENBQUM7WUFDakMsWUFBWSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxZQUFZLEVBQUUsQ0FBQTtRQUM1RCxDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0QsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLFlBQVksZUFBZSxDQUFDLENBQUE7WUFDNUQsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUVELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFDekIsTUFBTSxTQUFTLEdBQUcsTUFB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
|