@certd/lib-server 1.26.0
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/LICENSE +21 -0
- package/README.md +16 -0
- package/dist/basic/base-controller.d.ts +23 -0
- package/dist/basic/base-controller.js +52 -0
- package/dist/basic/base-service.d.ts +74 -0
- package/dist/basic/base-service.js +217 -0
- package/dist/basic/constants.d.ts +54 -0
- package/dist/basic/constants.js +61 -0
- package/dist/basic/crud-controller.d.ts +34 -0
- package/dist/basic/crud-controller.js +84 -0
- package/dist/basic/enum-item.d.ts +6 -0
- package/dist/basic/enum-item.js +11 -0
- package/dist/basic/exception/auth-exception.d.ts +7 -0
- package/dist/basic/exception/auth-exception.js +11 -0
- package/dist/basic/exception/base-exception.d.ts +7 -0
- package/dist/basic/exception/base-exception.js +12 -0
- package/dist/basic/exception/common-exception.d.ts +7 -0
- package/dist/basic/exception/common-exception.js +11 -0
- package/dist/basic/exception/index.d.ts +9 -0
- package/dist/basic/exception/index.js +10 -0
- package/dist/basic/exception/not-found-exception.d.ts +7 -0
- package/dist/basic/exception/not-found-exception.js +11 -0
- package/dist/basic/exception/param-exception.d.ts +7 -0
- package/dist/basic/exception/param-exception.js +11 -0
- package/dist/basic/exception/permission-exception.d.ts +7 -0
- package/dist/basic/exception/permission-exception.js +11 -0
- package/dist/basic/exception/preview-exception.d.ts +7 -0
- package/dist/basic/exception/preview-exception.js +11 -0
- package/dist/basic/exception/validation-exception.d.ts +7 -0
- package/dist/basic/exception/validation-exception.js +11 -0
- package/dist/basic/exception/vip-exception.d.ts +7 -0
- package/dist/basic/exception/vip-exception.js +11 -0
- package/dist/basic/index.d.ts +7 -0
- package/dist/basic/index.js +8 -0
- package/dist/basic/result.d.ts +8 -0
- package/dist/basic/result.js +17 -0
- package/dist/configuration.d.ts +4 -0
- package/dist/configuration.js +20 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +6 -0
- package/dist/system/basic/index.d.ts +2 -0
- package/dist/system/basic/index.js +3 -0
- package/dist/system/basic/service/file-service.d.ts +11 -0
- package/dist/system/basic/service/file-service.js +90 -0
- package/dist/system/basic/service/plus-service.d.ts +25 -0
- package/dist/system/basic/service/plus-service.js +92 -0
- package/dist/system/index.d.ts +2 -0
- package/dist/system/index.js +3 -0
- package/dist/system/settings/entity/sys-settings.d.ts +11 -0
- package/dist/system/settings/entity/sys-settings.js +63 -0
- package/dist/system/settings/index.d.ts +3 -0
- package/dist/system/settings/index.js +4 -0
- package/dist/system/settings/service/models.d.ts +54 -0
- package/dist/system/settings/service/models.js +53 -0
- package/dist/system/settings/service/sys-settings-service.d.ts +23 -0
- package/dist/system/settings/service/sys-settings-service.js +140 -0
- package/package.json +72 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021 Greper
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Vue 3 + TypeScript + Vite
|
|
2
|
+
|
|
3
|
+
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
|
|
4
|
+
|
|
5
|
+
## Recommended IDE Setup
|
|
6
|
+
|
|
7
|
+
- [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar)
|
|
8
|
+
|
|
9
|
+
## Type Support For `.vue` Imports in TS
|
|
10
|
+
|
|
11
|
+
Since TypeScript cannot handle type information for `.vue` imports, they are shimmed to be a generic Vue component type by default. In most cases this is fine if you don't really care about component prop types outside of templates. However, if you wish to get actual prop types in `.vue` imports (for example to get props validation when using manual `h(...)` calls), you can enable Volar's Take Over mode by following these steps:
|
|
12
|
+
|
|
13
|
+
1. Run `Extensions: Show Built-in Extensions` from VS Code's command palette, look for `TypeScript and JavaScript Language Features`, then right click and select `Disable (Workspace)`. By default, Take Over mode will enable itself if the default TypeScript extension is disabled.
|
|
14
|
+
2. Reload the VS Code window by running `Developer: Reload Window` from the command palette.
|
|
15
|
+
|
|
16
|
+
You can learn more about Take Over mode [here](https://github.com/johnsoncodehk/volar/discussions/471).
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as koa from '@midwayjs/koa';
|
|
2
|
+
export declare abstract class BaseController {
|
|
3
|
+
ctx: koa.Context;
|
|
4
|
+
/**
|
|
5
|
+
* 成功返回
|
|
6
|
+
* @param data 返回数据
|
|
7
|
+
*/
|
|
8
|
+
ok(data?: any): {
|
|
9
|
+
data: any;
|
|
10
|
+
code: number;
|
|
11
|
+
message: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* 失败返回
|
|
15
|
+
* @param msg
|
|
16
|
+
* @param code
|
|
17
|
+
*/
|
|
18
|
+
fail(msg: string, code: any): {
|
|
19
|
+
code: any;
|
|
20
|
+
msg: string | number;
|
|
21
|
+
};
|
|
22
|
+
getUserId(): any;
|
|
23
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Inject } from '@midwayjs/core';
|
|
11
|
+
import * as koa from '@midwayjs/koa';
|
|
12
|
+
import { Constants } from './constants.js';
|
|
13
|
+
export class BaseController {
|
|
14
|
+
ctx;
|
|
15
|
+
/**
|
|
16
|
+
* 成功返回
|
|
17
|
+
* @param data 返回数据
|
|
18
|
+
*/
|
|
19
|
+
ok(data) {
|
|
20
|
+
const res = {
|
|
21
|
+
...Constants.res.success,
|
|
22
|
+
data: undefined,
|
|
23
|
+
};
|
|
24
|
+
if (data) {
|
|
25
|
+
res.data = data;
|
|
26
|
+
}
|
|
27
|
+
return res;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 失败返回
|
|
31
|
+
* @param msg
|
|
32
|
+
* @param code
|
|
33
|
+
*/
|
|
34
|
+
fail(msg, code) {
|
|
35
|
+
return {
|
|
36
|
+
code: code ? code : Constants.res.error.code,
|
|
37
|
+
msg: msg ? msg : Constants.res.error.code,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
getUserId() {
|
|
41
|
+
const userId = this.ctx.user?.id;
|
|
42
|
+
if (userId == null) {
|
|
43
|
+
throw new Error('Token已过期');
|
|
44
|
+
}
|
|
45
|
+
return userId;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
__decorate([
|
|
49
|
+
Inject(),
|
|
50
|
+
__metadata("design:type", Object)
|
|
51
|
+
], BaseController.prototype, "ctx", void 0);
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2ljL2Jhc2UtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sT0FBZ0IsY0FBYztJQUVsQyxHQUFHLENBQWM7SUFFakI7OztPQUdHO0lBQ0gsRUFBRSxDQUFDLElBQVU7UUFDWCxNQUFNLEdBQUcsR0FBRztZQUNWLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPO1lBQ3hCLElBQUksRUFBRSxTQUFTO1NBQ2hCLENBQUM7UUFDRixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxJQUFJLENBQUMsR0FBVyxFQUFFLElBQVM7UUFDekIsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSTtZQUM1QyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUk7U0FDMUMsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ2pDLElBQUksTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQW5DQztJQURDLE1BQU0sRUFBRTs7MkNBQ1EifQ==
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Repository } from 'typeorm';
|
|
2
|
+
import { TypeORMDataSourceManager } from '@midwayjs/typeorm';
|
|
3
|
+
import { EntityManager } from 'typeorm/entity-manager/EntityManager.js';
|
|
4
|
+
/**
|
|
5
|
+
* 服务基类
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class BaseService<T> {
|
|
8
|
+
dataSourceManager: TypeORMDataSourceManager;
|
|
9
|
+
abstract getRepository(): Repository<T>;
|
|
10
|
+
transaction(callback: (entityManager: EntityManager) => Promise<any>): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* 获得单个ID
|
|
13
|
+
* @param id ID
|
|
14
|
+
* @param infoIgnoreProperty 忽略返回属性
|
|
15
|
+
*/
|
|
16
|
+
info(id: any, infoIgnoreProperty?: any): Promise<T | null>;
|
|
17
|
+
/**
|
|
18
|
+
* 非分页查询
|
|
19
|
+
* @param options
|
|
20
|
+
*/
|
|
21
|
+
find(options: any): Promise<T[]>;
|
|
22
|
+
/**
|
|
23
|
+
* 删除
|
|
24
|
+
* @param ids 删除的ID集合 如:[1,2,3] 或者 1,2,3
|
|
25
|
+
* @param where
|
|
26
|
+
*/
|
|
27
|
+
delete(ids: any, where?: any): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* 新增|修改
|
|
30
|
+
* @param param 数据
|
|
31
|
+
*/
|
|
32
|
+
addOrUpdate(param: any): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* 新增
|
|
35
|
+
* @param param 数据
|
|
36
|
+
*/
|
|
37
|
+
add(param: any): Promise<{
|
|
38
|
+
id: any;
|
|
39
|
+
}>;
|
|
40
|
+
/**
|
|
41
|
+
* 修改
|
|
42
|
+
* @param param 数据
|
|
43
|
+
*/
|
|
44
|
+
update(param: any): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* 新增|修改|删除 之后的操作
|
|
47
|
+
* @param data 对应数据
|
|
48
|
+
*/
|
|
49
|
+
modifyAfter(data: any): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* 分页查询
|
|
52
|
+
* @param query 查询条件 bean
|
|
53
|
+
* @param page
|
|
54
|
+
* @param order
|
|
55
|
+
* @param buildQuery
|
|
56
|
+
*/
|
|
57
|
+
page(query: any, page: {
|
|
58
|
+
offset: number;
|
|
59
|
+
limit: number;
|
|
60
|
+
}, order: any, buildQuery: any): Promise<{
|
|
61
|
+
records: T[];
|
|
62
|
+
total: number;
|
|
63
|
+
offset: number;
|
|
64
|
+
limit: number;
|
|
65
|
+
}>;
|
|
66
|
+
/**
|
|
67
|
+
* 分页查询
|
|
68
|
+
* @param query 查询条件 bean
|
|
69
|
+
* @param order
|
|
70
|
+
* @param buildQuery
|
|
71
|
+
*/
|
|
72
|
+
list(query: any, order: any, buildQuery: any): Promise<T[]>;
|
|
73
|
+
checkUserId(id: any, userId: number, userKey?: string): Promise<void>;
|
|
74
|
+
}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { ValidateException } from './exception/index.js';
|
|
11
|
+
import * as _ from 'lodash-es';
|
|
12
|
+
import { PermissionException } from './exception/index.js';
|
|
13
|
+
import { In } from 'typeorm';
|
|
14
|
+
import { Inject } from '@midwayjs/core';
|
|
15
|
+
import { TypeORMDataSourceManager } from '@midwayjs/typeorm';
|
|
16
|
+
/**
|
|
17
|
+
* 服务基类
|
|
18
|
+
*/
|
|
19
|
+
export class BaseService {
|
|
20
|
+
dataSourceManager;
|
|
21
|
+
async transaction(callback) {
|
|
22
|
+
const dataSource = this.dataSourceManager.getDataSource('default');
|
|
23
|
+
await dataSource.transaction(callback);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 获得单个ID
|
|
27
|
+
* @param id ID
|
|
28
|
+
* @param infoIgnoreProperty 忽略返回属性
|
|
29
|
+
*/
|
|
30
|
+
async info(id, infoIgnoreProperty) {
|
|
31
|
+
if (!id) {
|
|
32
|
+
throw new ValidateException('id不能为空');
|
|
33
|
+
}
|
|
34
|
+
const info = await this.getRepository().findOneBy({ id });
|
|
35
|
+
if (info && infoIgnoreProperty) {
|
|
36
|
+
for (const property of infoIgnoreProperty) {
|
|
37
|
+
delete info[property];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return info;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 非分页查询
|
|
44
|
+
* @param options
|
|
45
|
+
*/
|
|
46
|
+
async find(options) {
|
|
47
|
+
return await this.getRepository().find(options);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 删除
|
|
51
|
+
* @param ids 删除的ID集合 如:[1,2,3] 或者 1,2,3
|
|
52
|
+
* @param where
|
|
53
|
+
*/
|
|
54
|
+
async delete(ids, where) {
|
|
55
|
+
if (!ids) {
|
|
56
|
+
throw new ValidateException('ids不能为空');
|
|
57
|
+
}
|
|
58
|
+
if (typeof ids === 'string') {
|
|
59
|
+
ids = ids.split(',');
|
|
60
|
+
}
|
|
61
|
+
if (ids.length === 0) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
await this.getRepository().delete({
|
|
65
|
+
id: In(ids),
|
|
66
|
+
...where,
|
|
67
|
+
});
|
|
68
|
+
await this.modifyAfter(ids);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* 新增|修改
|
|
72
|
+
* @param param 数据
|
|
73
|
+
*/
|
|
74
|
+
async addOrUpdate(param) {
|
|
75
|
+
await this.getRepository().save(param);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* 新增
|
|
79
|
+
* @param param 数据
|
|
80
|
+
*/
|
|
81
|
+
async add(param) {
|
|
82
|
+
const now = new Date();
|
|
83
|
+
param.createTime = now;
|
|
84
|
+
param.updateTime = now;
|
|
85
|
+
await this.addOrUpdate(param);
|
|
86
|
+
await this.modifyAfter(param);
|
|
87
|
+
return {
|
|
88
|
+
id: param.id,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* 修改
|
|
93
|
+
* @param param 数据
|
|
94
|
+
*/
|
|
95
|
+
async update(param) {
|
|
96
|
+
if (!param.id)
|
|
97
|
+
throw new ValidateException('id 不能为空');
|
|
98
|
+
param.updateTime = new Date();
|
|
99
|
+
await this.addOrUpdate(param);
|
|
100
|
+
await this.modifyAfter(param);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* 新增|修改|删除 之后的操作
|
|
104
|
+
* @param data 对应数据
|
|
105
|
+
*/
|
|
106
|
+
async modifyAfter(data) { }
|
|
107
|
+
/**
|
|
108
|
+
* 分页查询
|
|
109
|
+
* @param query 查询条件 bean
|
|
110
|
+
* @param page
|
|
111
|
+
* @param order
|
|
112
|
+
* @param buildQuery
|
|
113
|
+
*/
|
|
114
|
+
async page(query, page = { offset: 0, limit: 20 }, order, buildQuery) {
|
|
115
|
+
if (page.offset == null) {
|
|
116
|
+
page.offset = 0;
|
|
117
|
+
}
|
|
118
|
+
if (page.limit == null) {
|
|
119
|
+
page.limit = 20;
|
|
120
|
+
}
|
|
121
|
+
const qb = this.getRepository().createQueryBuilder('main');
|
|
122
|
+
if (order && order.prop) {
|
|
123
|
+
qb.addOrderBy('main.' + order.prop, order.asc ? 'ASC' : 'DESC');
|
|
124
|
+
}
|
|
125
|
+
qb.addOrderBy('id', 'DESC');
|
|
126
|
+
qb.offset(page.offset).limit(page.limit);
|
|
127
|
+
//根据bean query
|
|
128
|
+
if (query) {
|
|
129
|
+
let whereSql = '';
|
|
130
|
+
let index = 0;
|
|
131
|
+
_.forEach(query, (value, key) => {
|
|
132
|
+
if (!value) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
if (index !== 0) {
|
|
136
|
+
whereSql += ' and ';
|
|
137
|
+
}
|
|
138
|
+
whereSql += ` main.${key} = :${key} `;
|
|
139
|
+
index++;
|
|
140
|
+
});
|
|
141
|
+
if (index > 0) {
|
|
142
|
+
qb.where(whereSql, query);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
//自定义query
|
|
146
|
+
if (buildQuery) {
|
|
147
|
+
buildQuery(qb);
|
|
148
|
+
}
|
|
149
|
+
const list = await qb.getMany();
|
|
150
|
+
const total = await qb.getCount();
|
|
151
|
+
return {
|
|
152
|
+
records: list,
|
|
153
|
+
total,
|
|
154
|
+
offset: page.offset,
|
|
155
|
+
limit: page.limit,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* 分页查询
|
|
160
|
+
* @param query 查询条件 bean
|
|
161
|
+
* @param order
|
|
162
|
+
* @param buildQuery
|
|
163
|
+
*/
|
|
164
|
+
async list(query, order, buildQuery) {
|
|
165
|
+
const qb = this.getRepository().createQueryBuilder('main');
|
|
166
|
+
if (order && order.prop) {
|
|
167
|
+
qb.orderBy('main.' + order.prop, order.asc ? 'ASC' : 'DESC');
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
qb.orderBy('id', 'DESC');
|
|
171
|
+
}
|
|
172
|
+
//根据bean query
|
|
173
|
+
if (query) {
|
|
174
|
+
let whereSql = '';
|
|
175
|
+
let index = 0;
|
|
176
|
+
_.forEach(query, (value, key) => {
|
|
177
|
+
if (!value) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
if (index !== 0) {
|
|
181
|
+
whereSql += ' and ';
|
|
182
|
+
}
|
|
183
|
+
whereSql += ` main.${key} = :${key} `;
|
|
184
|
+
index++;
|
|
185
|
+
});
|
|
186
|
+
if (index > 0) {
|
|
187
|
+
qb.where(whereSql, query);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
//自定义query
|
|
191
|
+
if (buildQuery) {
|
|
192
|
+
buildQuery(qb);
|
|
193
|
+
}
|
|
194
|
+
return await qb.getMany();
|
|
195
|
+
}
|
|
196
|
+
async checkUserId(id = 0, userId, userKey = 'userId') {
|
|
197
|
+
const res = await this.getRepository().findOne({
|
|
198
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
199
|
+
// @ts-ignore
|
|
200
|
+
select: { [userKey]: true },
|
|
201
|
+
where: {
|
|
202
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
203
|
+
// @ts-ignore
|
|
204
|
+
id,
|
|
205
|
+
},
|
|
206
|
+
});
|
|
207
|
+
if (!res || res[userKey] === userId) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
throw new PermissionException('权限不足');
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
__decorate([
|
|
214
|
+
Inject(),
|
|
215
|
+
__metadata("design:type", TypeORMDataSourceManager)
|
|
216
|
+
], BaseService.prototype, "dataSourceManager", void 0);
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2ljL2Jhc2Utc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEtBQUssQ0FBQyxNQUFNLFdBQVcsQ0FBQztBQUMvQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsRUFBRSxFQUFjLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUc3RDs7R0FFRztBQUNILE1BQU0sT0FBZ0IsV0FBVztJQUUvQixpQkFBaUIsQ0FBMkI7SUFJNUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUF3RDtRQUN4RSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sVUFBVSxDQUFDLFdBQVcsQ0FBQyxRQUFlLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLGtCQUFtQjtRQUNoQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBUyxDQUFDLENBQUM7UUFDakUsSUFBSSxJQUFJLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUMvQixLQUFLLE1BQU0sUUFBUSxJQUFJLGtCQUFrQixFQUFFLENBQUM7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
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export declare const Constants: {
|
|
2
|
+
dataDir: string;
|
|
3
|
+
role: {
|
|
4
|
+
defaultUser: number;
|
|
5
|
+
};
|
|
6
|
+
per: {
|
|
7
|
+
guest: string;
|
|
8
|
+
anonymous: string;
|
|
9
|
+
authOnly: string;
|
|
10
|
+
loginOnly: string;
|
|
11
|
+
};
|
|
12
|
+
res: {
|
|
13
|
+
serverError(message: string): {
|
|
14
|
+
code: number;
|
|
15
|
+
message: string;
|
|
16
|
+
};
|
|
17
|
+
error: {
|
|
18
|
+
code: number;
|
|
19
|
+
message: string;
|
|
20
|
+
};
|
|
21
|
+
success: {
|
|
22
|
+
code: number;
|
|
23
|
+
message: string;
|
|
24
|
+
};
|
|
25
|
+
validation: {
|
|
26
|
+
code: number;
|
|
27
|
+
message: string;
|
|
28
|
+
};
|
|
29
|
+
needvip: {
|
|
30
|
+
code: number;
|
|
31
|
+
message: string;
|
|
32
|
+
};
|
|
33
|
+
auth: {
|
|
34
|
+
code: number;
|
|
35
|
+
message: string;
|
|
36
|
+
};
|
|
37
|
+
permission: {
|
|
38
|
+
code: number;
|
|
39
|
+
message: string;
|
|
40
|
+
};
|
|
41
|
+
param: {
|
|
42
|
+
code: number;
|
|
43
|
+
message: string;
|
|
44
|
+
};
|
|
45
|
+
notFound: {
|
|
46
|
+
code: number;
|
|
47
|
+
message: string;
|
|
48
|
+
};
|
|
49
|
+
preview: {
|
|
50
|
+
code: number;
|
|
51
|
+
message: string;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export const Constants = {
|
|
2
|
+
dataDir: './data',
|
|
3
|
+
role: {
|
|
4
|
+
defaultUser: 3,
|
|
5
|
+
},
|
|
6
|
+
per: {
|
|
7
|
+
//无需登录
|
|
8
|
+
guest: '_guest_',
|
|
9
|
+
//无需登录
|
|
10
|
+
anonymous: '_guest_',
|
|
11
|
+
//仅需要登录
|
|
12
|
+
authOnly: '_authOnly_',
|
|
13
|
+
//仅需要登录
|
|
14
|
+
loginOnly: '_authOnly_',
|
|
15
|
+
},
|
|
16
|
+
res: {
|
|
17
|
+
serverError(message) {
|
|
18
|
+
return {
|
|
19
|
+
code: 1,
|
|
20
|
+
message,
|
|
21
|
+
};
|
|
22
|
+
},
|
|
23
|
+
error: {
|
|
24
|
+
code: 1,
|
|
25
|
+
message: 'Internal server error',
|
|
26
|
+
},
|
|
27
|
+
success: {
|
|
28
|
+
code: 0,
|
|
29
|
+
message: 'success',
|
|
30
|
+
},
|
|
31
|
+
validation: {
|
|
32
|
+
code: 10,
|
|
33
|
+
message: '参数错误',
|
|
34
|
+
},
|
|
35
|
+
needvip: {
|
|
36
|
+
code: 88,
|
|
37
|
+
message: '需要VIP',
|
|
38
|
+
},
|
|
39
|
+
auth: {
|
|
40
|
+
code: 401,
|
|
41
|
+
message: '您还未登录或token已过期',
|
|
42
|
+
},
|
|
43
|
+
permission: {
|
|
44
|
+
code: 402,
|
|
45
|
+
message: '您没有权限',
|
|
46
|
+
},
|
|
47
|
+
param: {
|
|
48
|
+
code: 400,
|
|
49
|
+
message: '参数错误',
|
|
50
|
+
},
|
|
51
|
+
notFound: {
|
|
52
|
+
code: 404,
|
|
53
|
+
message: '页面/文件/资源不存在',
|
|
54
|
+
},
|
|
55
|
+
preview: {
|
|
56
|
+
code: 10001,
|
|
57
|
+
message: '对不起,预览环境不允许修改此数据',
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2ljL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDdkIsT0FBTyxFQUFFLFFBQVE7SUFDakIsSUFBSSxFQUFFO1FBQ0osV0FBVyxFQUFFLENBQUM7S0FDZjtJQUNELEdBQUcsRUFBRTtRQUNILE1BQU07UUFDTixLQUFLLEVBQUUsU0FBUztRQUNoQixNQUFNO1FBQ04sU0FBUyxFQUFFLFNBQVM7UUFDcEIsT0FBTztRQUNQLFFBQVEsRUFBRSxZQUFZO1FBQ3RCLE9BQU87UUFDUCxTQUFTLEVBQUUsWUFBWTtLQUN4QjtJQUNELEdBQUcsRUFBRTtRQUNILFdBQVcsQ0FBQyxPQUFlO1lBQ3pCLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLENBQUM7Z0JBQ1AsT0FBTzthQUNSLENBQUM7UUFDSixDQUFDO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsSUFBSSxFQUFFLENBQUM7WUFDUCxPQUFPLEVBQUUsdUJBQXVCO1NBQ2pDO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLENBQUM7WUFDUCxPQUFPLEVBQUUsU0FBUztTQUNuQjtRQUNELFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRSxFQUFFO1lBQ1IsT0FBTyxFQUFFLE1BQU07U0FDaEI7UUFDRCxPQUFPLEVBQUU7WUFDUCxJQUFJLEVBQUUsRUFBRTtZQUNSLE9BQU8sRUFBRSxPQUFPO1NBQ2pCO1FBQ0QsSUFBSSxFQUFFO1lBQ0osSUFBSSxFQUFFLEdBQUc7WUFDVCxPQUFPLEVBQUUsZ0JBQWdCO1NBQzFCO1FBQ0QsVUFBVSxFQUFFO1lBQ1YsSUFBSSxFQUFFLEdBQUc7WUFDVCxPQUFPLEVBQUUsT0FBTztTQUNqQjtRQUNELEtBQUssRUFBRTtZQUNMLElBQUksRUFBRSxHQUFHO1lBQ1QsT0FBTyxFQUFFLE1BQU07U0FDaEI7UUFDRCxRQUFRLEVBQUU7WUFDUixJQUFJLEVBQUUsR0FBRztZQUNULE9BQU8sRUFBRSxhQUFhO1NBQ3ZCO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLEtBQUs7WUFDWCxPQUFPLEVBQUUsa0JBQWtCO1NBQzVCO0tBQ0Y7Q0FDRixDQUFDIn0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { BaseController } from './base-controller.js';
|
|
2
|
+
export declare abstract class CrudController<T> extends BaseController {
|
|
3
|
+
abstract getService<T>(): any;
|
|
4
|
+
page(body: any): Promise<{
|
|
5
|
+
data: any;
|
|
6
|
+
code: number;
|
|
7
|
+
message: string;
|
|
8
|
+
}>;
|
|
9
|
+
list(body: any): Promise<{
|
|
10
|
+
data: any;
|
|
11
|
+
code: number;
|
|
12
|
+
message: string;
|
|
13
|
+
}>;
|
|
14
|
+
add(bean: any): Promise<{
|
|
15
|
+
data: any;
|
|
16
|
+
code: number;
|
|
17
|
+
message: string;
|
|
18
|
+
}>;
|
|
19
|
+
info(id: any): Promise<{
|
|
20
|
+
data: any;
|
|
21
|
+
code: number;
|
|
22
|
+
message: string;
|
|
23
|
+
}>;
|
|
24
|
+
update(bean: any): Promise<{
|
|
25
|
+
data: any;
|
|
26
|
+
code: number;
|
|
27
|
+
message: string;
|
|
28
|
+
}>;
|
|
29
|
+
delete(id: any): Promise<{
|
|
30
|
+
data: any;
|
|
31
|
+
code: number;
|
|
32
|
+
message: string;
|
|
33
|
+
}>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { ALL, Body, Post, Query } from '@midwayjs/core';
|
|
14
|
+
import { BaseController } from './base-controller.js';
|
|
15
|
+
export class CrudController extends BaseController {
|
|
16
|
+
async page(body) {
|
|
17
|
+
const pageRet = await this.getService().page(body?.query, body?.page, body?.sort, null);
|
|
18
|
+
return this.ok(pageRet);
|
|
19
|
+
}
|
|
20
|
+
async list(body) {
|
|
21
|
+
const listRet = await this.getService().list(body, null, null);
|
|
22
|
+
return this.ok(listRet);
|
|
23
|
+
}
|
|
24
|
+
async add(bean) {
|
|
25
|
+
delete bean.id;
|
|
26
|
+
const id = await this.getService().add(bean);
|
|
27
|
+
return this.ok(id);
|
|
28
|
+
}
|
|
29
|
+
async info(id) {
|
|
30
|
+
const bean = await this.getService().info(id);
|
|
31
|
+
return this.ok(bean);
|
|
32
|
+
}
|
|
33
|
+
async update(bean) {
|
|
34
|
+
await this.getService().update(bean);
|
|
35
|
+
return this.ok(null);
|
|
36
|
+
}
|
|
37
|
+
async delete(id) {
|
|
38
|
+
await this.getService().delete([id]);
|
|
39
|
+
return this.ok(null);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
__decorate([
|
|
43
|
+
Post('/page'),
|
|
44
|
+
__param(0, Body(ALL)),
|
|
45
|
+
__metadata("design:type", Function),
|
|
46
|
+
__metadata("design:paramtypes", [Object]),
|
|
47
|
+
__metadata("design:returntype", Promise)
|
|
48
|
+
], CrudController.prototype, "page", null);
|
|
49
|
+
__decorate([
|
|
50
|
+
Post('/list'),
|
|
51
|
+
__param(0, Body(ALL)),
|
|
52
|
+
__metadata("design:type", Function),
|
|
53
|
+
__metadata("design:paramtypes", [Object]),
|
|
54
|
+
__metadata("design:returntype", Promise)
|
|
55
|
+
], CrudController.prototype, "list", null);
|
|
56
|
+
__decorate([
|
|
57
|
+
Post('/add'),
|
|
58
|
+
__param(0, Body(ALL)),
|
|
59
|
+
__metadata("design:type", Function),
|
|
60
|
+
__metadata("design:paramtypes", [Object]),
|
|
61
|
+
__metadata("design:returntype", Promise)
|
|
62
|
+
], CrudController.prototype, "add", null);
|
|
63
|
+
__decorate([
|
|
64
|
+
Post('/info'),
|
|
65
|
+
__param(0, Query('id')),
|
|
66
|
+
__metadata("design:type", Function),
|
|
67
|
+
__metadata("design:paramtypes", [Object]),
|
|
68
|
+
__metadata("design:returntype", Promise)
|
|
69
|
+
], CrudController.prototype, "info", null);
|
|
70
|
+
__decorate([
|
|
71
|
+
Post('/update'),
|
|
72
|
+
__param(0, Body(ALL)),
|
|
73
|
+
__metadata("design:type", Function),
|
|
74
|
+
__metadata("design:paramtypes", [Object]),
|
|
75
|
+
__metadata("design:returntype", Promise)
|
|
76
|
+
], CrudController.prototype, "update", null);
|
|
77
|
+
__decorate([
|
|
78
|
+
Post('/delete'),
|
|
79
|
+
__param(0, Query('id')),
|
|
80
|
+
__metadata("design:type", Function),
|
|
81
|
+
__metadata("design:paramtypes", [Object]),
|
|
82
|
+
__metadata("design:returntype", Promise)
|
|
83
|
+
], CrudController.prototype, "delete", null);
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2ljL2NydWQtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXRELE1BQU0sT0FBZ0IsY0FBa0IsU0FBUSxjQUFjO0lBSXRELEFBQU4sS0FBSyxDQUFDLElBQUksQ0FFUixJQUFJO1FBRUosTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hGLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBR0ssQUFBTixLQUFLLENBQUMsSUFBSSxDQUVSLElBQUk7UUFFSixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvRCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUdLLEFBQU4sS0FBSyxDQUFDLEdBQUcsQ0FFUCxJQUFJO1FBRUosT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2YsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBR0ssQUFBTixLQUFLLENBQUMsSUFBSSxDQUVSLEVBQUU7UUFFRixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFHSyxBQUFOLEtBQUssQ0FBQyxNQUFNLENBRVYsSUFBSTtRQUVKLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUdLLEFBQU4sS0FBSyxDQUFDLE1BQU0sQ0FFVixFQUFFO1FBRUYsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsQ0FBQztDQUNGO0FBckRPO0lBREwsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUVYLFdBQUEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBOzs7OzBDQUtYO0FBR0s7SUFETCxJQUFJLENBQUMsT0FBTyxDQUFDO0lBRVgsV0FBQSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7Ozs7MENBS1g7QUFHSztJQURMLElBQUksQ0FBQyxNQUFNLENBQUM7SUFFVixXQUFBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTs7Ozt5Q0FNWDtBQUdLO0lBREwsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUVYLFdBQUEsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBOzs7OzBDQUtiO0FBR0s7SUFETCxJQUFJLENBQUMsU0FBUyxDQUFDO0lBRWIsV0FBQSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7Ozs7NENBS1g7QUFHSztJQURMLElBQUksQ0FBQyxTQUFTLENBQUM7SUFFYixXQUFBLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTs7Ozs0Q0FLYiJ9
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export class EnumItem {
|
|
2
|
+
value;
|
|
3
|
+
label;
|
|
4
|
+
color;
|
|
5
|
+
constructor(value, label, color) {
|
|
6
|
+
this.value = value;
|
|
7
|
+
this.label = label;
|
|
8
|
+
this.color = color;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2ljL2VudW0taXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sUUFBUTtJQUNuQixLQUFLLENBQVM7SUFDZCxLQUFLLENBQVM7SUFDZCxLQUFLLENBQVM7SUFFZCxZQUFZLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSztRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0NBQ0YifQ==
|