@lcap/nasl 0.3.9-beta → 0.3.10-beta.5
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/out/service/create/errHandles.js +7 -2
- package/out/service/create/errHandles.js.map +1 -1
- package/out/service/logic/logic.d.ts +50 -14
- package/out/service/logic/logic.js +26 -0
- package/out/service/logic/logic.js.map +1 -1
- package/out/service/page/element.d.ts +9 -0
- package/out/service/page/element.js +6 -0
- package/out/service/page/element.js.map +1 -1
- package/out/service/permission/api.d.ts +57 -0
- package/out/service/permission/api.js +41 -0
- package/out/service/permission/api.js.map +1 -0
- package/out/service/permission/index.d.ts +2 -0
- package/out/service/permission/index.js +17 -0
- package/out/service/permission/index.js.map +1 -0
- package/out/service/webFile/index.js +5 -0
- package/out/service/webFile/index.js.map +1 -1
- package/out/types/app/App.d.ts +4 -0
- package/out/types/app/App.js +30 -0
- package/out/types/app/App.js.map +1 -1
- package/out/types/app/Service.d.ts +2 -2
- package/out/types/app/Service.js +28 -3
- package/out/types/app/Service.js.map +1 -1
- package/out/types/cache.d.ts +6 -0
- package/out/types/cache.js +54 -0
- package/out/types/cache.js.map +1 -0
- package/out/types/cacheData.js.map +1 -1
- package/out/types/common/Vertex.d.ts +25 -0
- package/out/types/common/Vertex.js +40 -0
- package/out/types/common/Vertex.js.map +1 -1
- package/out/types/data/Entity.js +1 -0
- package/out/types/data/Entity.js.map +1 -1
- package/out/types/data/Enum.d.ts +5 -0
- package/out/types/data/Enum.js +5 -0
- package/out/types/data/Enum.js.map +1 -1
- package/out/types/data/Interface.js +5 -3
- package/out/types/data/Interface.js.map +1 -1
- package/out/types/data/dataTypes.js +1 -1
- package/out/types/data/dataTypes.js.map +1 -1
- package/out/types/data/genBlock/genCreateBlock.js +5 -5
- package/out/types/data/genBlock/genCreateBlock.js.map +1 -1
- package/out/types/data/genBlock/genCurdBlock.js +3 -3
- package/out/types/data/genBlock/genCurdBlock.js.map +1 -1
- package/out/types/data/genBlock/genEnumSelectBlock.d.ts +1 -1
- package/out/types/data/genBlock/genEnumSelectBlock.js +2 -2
- package/out/types/data/genBlock/genEnumSelectBlock.js.map +1 -1
- package/out/types/data/genBlock/genGridViewBlock.js +12 -1
- package/out/types/data/genBlock/genGridViewBlock.js.map +1 -1
- package/out/types/data/genBlock/genListViewBlock.js +2 -2
- package/out/types/data/genBlock/genSelectBlock.js +2 -2
- package/out/types/data/genBlock/genTableBlock.js +14 -3
- package/out/types/data/genBlock/genTableBlock.js.map +1 -1
- package/out/types/data/genBlock/genUpdateBlock.js +5 -5
- package/out/types/data/genBlock/genUpdateBlock.js.map +1 -1
- package/out/types/data/systemTypes.js +47 -0
- package/out/types/data/systemTypes.js.map +1 -1
- package/out/types/enum.d.ts +6 -0
- package/out/types/enum.js +11 -0
- package/out/types/enum.js.map +1 -0
- package/out/types/generator/hotReload.d.ts +2 -0
- package/out/types/generator/hotReload.js +12 -1
- package/out/types/generator/hotReload.js.map +1 -1
- package/out/types/index.d.ts +5 -1
- package/out/types/index.js +8 -2
- package/out/types/index.js.map +1 -1
- package/out/types/logic/Logic.d.ts +32 -0
- package/out/types/logic/Logic.js +142 -31
- package/out/types/logic/Logic.js.map +1 -1
- package/out/types/logic/LogicItem.d.ts +1 -0
- package/out/types/logic/LogicItem.js +43 -24
- package/out/types/logic/LogicItem.js.map +1 -1
- package/out/types/logic/Param.d.ts +1 -0
- package/out/types/logic/Param.js +40 -20
- package/out/types/logic/Param.js.map +1 -1
- package/out/types/logic/Return.js +14 -19
- package/out/types/logic/Return.js.map +1 -1
- package/out/types/logic/Variable.js +14 -19
- package/out/types/logic/Variable.js.map +1 -1
- package/out/types/logic/translator.js +39 -10
- package/out/types/logic/translator.js.map +1 -1
- package/out/types/nuims/Nuims.d.ts +1 -1
- package/out/types/nuims/Nuims.js +11 -4
- package/out/types/nuims/Nuims.js.map +1 -1
- package/out/types/page/Element.d.ts +16 -0
- package/out/types/page/Element.js +192 -129
- package/out/types/page/Element.js.map +1 -1
- package/out/types/page/Event.js.map +1 -1
- package/out/types/page/Page.d.ts +1 -0
- package/out/types/page/Page.js +71 -37
- package/out/types/page/Page.js.map +1 -1
- package/out/types/page/View.d.ts +9 -1
- package/out/types/page/View.js +86 -42
- package/out/types/page/View.js.map +1 -1
- package/out/types/page/ViewParam.d.ts +1 -0
- package/out/types/page/ViewParam.js +23 -4
- package/out/types/page/ViewParam.js.map +1 -1
- package/out/types/page/ViewVariable.js +13 -18
- package/out/types/page/ViewVariable.js.map +1 -1
- package/out/types/permission/Permission.d.ts +41 -0
- package/out/types/permission/Permission.js +122 -0
- package/out/types/permission/Permission.js.map +1 -0
- package/out/types/process/ProcessParam.js +3 -1
- package/out/types/process/ProcessParam.js.map +1 -1
- package/package.json +2 -3
- package/src/service/create/errHandles.js +6 -2
- package/src/service/developPermission/api.js +37 -0
- package/src/service/developPermission/index.js +13 -0
- package/src/service/logic/logic.js +26 -0
- package/src/service/page/element.js +6 -0
- package/src/service/permission/api.js +38 -0
- package/src/service/permission/index.js +13 -0
- package/src/service/webFile/index.js +6 -1
- package/src/types/app/App.ts +36 -1
- package/src/types/app/Service.ts +32 -3
- package/src/types/cache.ts +50 -0
- package/src/types/cacheData.ts +7 -7
- package/src/types/common/Vertex.ts +30 -0
- package/src/types/data/Entity.ts +1 -0
- package/src/types/data/Enum.ts +5 -0
- package/src/types/data/Interface.ts +4 -3
- package/src/types/data/dataTypes.ts +1 -1
- package/src/types/data/genBlock/genCreateBlock.ts +5 -5
- package/src/types/data/genBlock/genCurdBlock.ts +3 -3
- package/src/types/data/genBlock/genEnumSelectBlock.ts +2 -2
- package/src/types/data/genBlock/genGridViewBlock.ts +12 -1
- package/src/types/data/genBlock/genListViewBlock.ts +2 -2
- package/src/types/data/genBlock/genSelectBlock.ts +2 -2
- package/src/types/data/genBlock/genTableBlock.ts +14 -3
- package/src/types/data/genBlock/genUpdateBlock.ts +5 -5
- package/src/types/data/systemTypes.ts +47 -0
- package/src/types/enum.ts +6 -0
- package/src/types/generator/hotReload.ts +10 -0
- package/src/types/index.ts +5 -1
- package/src/types/logic/Logic.ts +138 -28
- package/src/types/logic/LogicItem.ts +48 -28
- package/src/types/logic/Param.ts +39 -18
- package/src/types/logic/Return.ts +4 -9
- package/src/types/logic/Variable.ts +4 -8
- package/src/types/logic/translator.js +41 -13
- package/src/types/logic/translator_backup.js +5 -16
- package/src/types/nuims/Nuims.ts +11 -5
- package/src/types/page/Element.ts +211 -133
- package/src/types/page/Event.ts +0 -3
- package/src/types/page/Page.ts +86 -49
- package/src/types/page/View.ts +90 -42
- package/src/types/page/ViewParam.ts +22 -3
- package/src/types/page/ViewVariable.ts +4 -8
- package/src/types/page/dist/View.js +727 -0
- package/src/types/permission/Permission.ts +112 -0
- package/src/types/process/ProcessParam.ts +4 -1
- package/out/test/units/config.spec.d.ts +0 -1
- package/out/test/units/config.spec.js +0 -12
- package/out/test/units/config.spec.js.map +0 -1
|
@@ -0,0 +1,122 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.Permission = void 0;
|
|
13
|
+
const decorators_1 = require("../decorators");
|
|
14
|
+
const permission_1 = __importDefault(require("../../service/permission"));
|
|
15
|
+
class Permission {
|
|
16
|
+
/**
|
|
17
|
+
* @param source 需要合并的部分参数
|
|
18
|
+
*/
|
|
19
|
+
constructor(source) {
|
|
20
|
+
/**
|
|
21
|
+
* App Name
|
|
22
|
+
*/
|
|
23
|
+
this.domainName = undefined;
|
|
24
|
+
/**
|
|
25
|
+
* 上报权限后的资源id
|
|
26
|
+
*/
|
|
27
|
+
this.resourceId = undefined;
|
|
28
|
+
/**
|
|
29
|
+
* 应用 id
|
|
30
|
+
*/
|
|
31
|
+
this.serviceId = undefined;
|
|
32
|
+
/**
|
|
33
|
+
* view
|
|
34
|
+
*/
|
|
35
|
+
this.view = undefined;
|
|
36
|
+
/**
|
|
37
|
+
* element
|
|
38
|
+
*/
|
|
39
|
+
this.element = undefined;
|
|
40
|
+
const { domainName } = source;
|
|
41
|
+
Object.assign(this, source);
|
|
42
|
+
if (!domainName) {
|
|
43
|
+
throw new Error('Permission need domainName!');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async createDefaultRoleFromRoleName(roleName) {
|
|
47
|
+
if (!roleName)
|
|
48
|
+
return;
|
|
49
|
+
return await permission_1.default.createRole({
|
|
50
|
+
body: {
|
|
51
|
+
name: roleName,
|
|
52
|
+
serviceId: this.serviceId,
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
async updateRoleName(roleId, roleName) {
|
|
57
|
+
return await permission_1.default.updateRole({
|
|
58
|
+
body: {
|
|
59
|
+
id: roleId,
|
|
60
|
+
name: roleName,
|
|
61
|
+
serviceId: this.serviceId,
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
*
|
|
67
|
+
* @param query {
|
|
68
|
+
* resourceId
|
|
69
|
+
* roleId
|
|
70
|
+
* }
|
|
71
|
+
*/
|
|
72
|
+
async attachPermissionResource(query) {
|
|
73
|
+
return await permission_1.default.attachPermissionResourceAction({ query });
|
|
74
|
+
}
|
|
75
|
+
async detachPermissionResource(query) {
|
|
76
|
+
return await permission_1.default.detachPermissionResourceAction({ query });
|
|
77
|
+
}
|
|
78
|
+
async getInitRoles(resourceId) {
|
|
79
|
+
return await permission_1.default.getRoles({
|
|
80
|
+
query: {
|
|
81
|
+
serviceId: this.serviceId,
|
|
82
|
+
resourceId,
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
async attachDevRole(resourceId) {
|
|
87
|
+
const data = await this.getInitRoles(resourceId) || [];
|
|
88
|
+
let roleId;
|
|
89
|
+
data.forEach((item) => {
|
|
90
|
+
if (item.name === 'DEV-AdminRole') {
|
|
91
|
+
roleId = item.id;
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
// 获取权限树资源Id
|
|
95
|
+
if (roleId) {
|
|
96
|
+
// 默认角色开启
|
|
97
|
+
await this.attachPermissionResource({
|
|
98
|
+
resourceId,
|
|
99
|
+
roleId,
|
|
100
|
+
});
|
|
101
|
+
await this.getInitRoles(resourceId);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
__decorate([
|
|
106
|
+
decorators_1.immutable()
|
|
107
|
+
], Permission.prototype, "domainName", void 0);
|
|
108
|
+
__decorate([
|
|
109
|
+
decorators_1.immutable()
|
|
110
|
+
], Permission.prototype, "resourceId", void 0);
|
|
111
|
+
__decorate([
|
|
112
|
+
decorators_1.immutable()
|
|
113
|
+
], Permission.prototype, "serviceId", void 0);
|
|
114
|
+
__decorate([
|
|
115
|
+
decorators_1.immutable()
|
|
116
|
+
], Permission.prototype, "view", void 0);
|
|
117
|
+
__decorate([
|
|
118
|
+
decorators_1.immutable()
|
|
119
|
+
], Permission.prototype, "element", void 0);
|
|
120
|
+
exports.Permission = Permission;
|
|
121
|
+
exports.default = Permission;
|
|
122
|
+
//# sourceMappingURL=Permission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Permission.js","sourceRoot":"","sources":["../../../src/types/permission/Permission.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA0C;AAE1C,0EAAyD;AAGzD,MAAa,UAAU;IA8BnB;;OAEG;IACH,YAAY,MAA4B;QAhCxC;;WAEG;QAEa,eAAU,GAAW,SAAS,CAAC;QAC/C;;WAEG;QAEa,eAAU,GAAW,SAAS,CAAC;QAE/C;;WAEG;QAEa,cAAS,GAAW,SAAS,CAAC;QAE9C;;WAEG;QAEa,SAAI,GAAS,SAAS,CAAC;QAEvC;;WAEG;QAEa,YAAO,GAAY,SAAS,CAAC;QAMzC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,UAAU,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAClD;IACL,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,QAAgB;QAChD,IAAI,CAAC,QAAQ;YACT,OAAO;QACX,OAAO,MAAM,oBAAiB,CAAC,UAAU,CAAC;YACtC,IAAI,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,IAAI,CAAC,SAAS;aAC5B;SACJ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,QAAgB;QACjD,OAAO,MAAM,oBAAiB,CAAC,UAAU,CAAC;YACtC,IAAI,EAAE;gBACF,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,IAAI,CAAC,SAAS;aAC5B;SACJ,CAAC,CAAA;IACN,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,wBAAwB,CAAC,KAAa;QACxC,OAAO,MAAM,oBAAiB,CAAC,8BAA8B,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,KAAa;QACxC,OAAO,MAAM,oBAAiB,CAAC,8BAA8B,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB;QACjC,OAAO,MAAM,oBAAiB,CAAC,QAAQ,CAAC;YACpC,KAAK,EAAE;gBACH,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,UAAU;aACb;SACJ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAAkB;QAClC,MAAM,IAAI,GAAQ,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAG,EAAE,CAAC;QAC3D,IAAI,MAAM,CAAC;QACX,IAAI,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;YACvB,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE;gBAC/B,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;aACpB;QACL,CAAC,CAAC,CAAA;QACF,YAAY;QACZ,IAAI,MAAM,EAAE;YACR,SAAS;YACT,MAAM,IAAI,CAAC,wBAAwB,CAAC;gBAChC,UAAU;gBACV,MAAM;aACT,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;SACvC;IACL,CAAC;CACJ;AAnGG;IADC,sBAAS,EAAE;8CACmC;AAK/C;IADC,sBAAS,EAAE;8CACmC;AAM/C;IADC,sBAAS,EAAE;6CACkC;AAM9C;IADC,sBAAS,EAAE;wCAC2B;AAMvC;IADC,sBAAS,EAAE;2CACiC;AA5BjD,gCAwGC;AAED,kBAAe,UAAU,CAAC"}
|
|
@@ -67,9 +67,11 @@ class ProcessParam extends __1.Param {
|
|
|
67
67
|
body,
|
|
68
68
|
});
|
|
69
69
|
this.assign(ProcessParam.from(result, this.process));
|
|
70
|
-
this.updateInterface();
|
|
70
|
+
await this.updateInterface();
|
|
71
71
|
await __1.config.defaultApp?.history.load();
|
|
72
72
|
__1.config.defaultApp?.emit('saved');
|
|
73
|
+
// 更新所有调用此Logic的LogicItem
|
|
74
|
+
await this.process.launchProcessInterface.logic.callLogicUpdate();
|
|
73
75
|
return this;
|
|
74
76
|
}
|
|
75
77
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProcessParam.js","sourceRoot":"","sources":["../../../src/types/process/ProcessParam.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAAkE;AAClE,0BAAiH;AACjH,yDAAwD;AACxD,mDAA8D;AAC9D,iDAAqD;AACrD,oEAAmD;AAEnD;;GAEG;AACH,MAAa,YAAa,SAAQ,SAAK;IA0BnC;;OAEG;IACH,YAAY,MAA8B;QACtC,KAAK,EAAE,CAAC;QA7BZ;;WAEG;QAEa,UAAK,GAAe,cAAU,CAAC,YAAY,CAAC;QAC5D;;WAEG;QAEa,aAAQ,GAAW,SAAS,CAAC;QAC7C;;WAEG;QAGa,YAAO,GAAY,SAAS,CAAC;QAC7C;;;;;;;WAOG;QACI,iBAAY,GAAW,SAAS,CAAC;QAMpC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IACD,OAAO;QACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;IACjD,CAAC;IACD;;OAEG;IAEH,KAAK,CAAC,MAAM,CAAC,IAAW,EAAE,aAA6B;QACnD,UAAM,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAElC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,iBAAc,CAAC,aAAa,CAAC;YAC9C,OAAO,EAAE;gBACL,KAAK,EAAE,UAAM,CAAC,UAAU,EAAE,EAAE;gBAC5B,eAAe,EAAE,aAAa,EAAE,UAAU,IAAI,qBAAqB;gBACnE,aAAa,EAAE,aAAa,EAAE,UAAU,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG;aAC7F;YACD,IAAI;SACP,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ProcessParam.js","sourceRoot":"","sources":["../../../src/types/process/ProcessParam.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lcap/nasl",
|
|
3
3
|
"description": "NetEase Application Specific Language",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.10-beta.5",
|
|
5
5
|
"author": "Forrest <rainforest92@126.com>",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "tsc -watch -p ./",
|
|
@@ -31,7 +31,6 @@
|
|
|
31
31
|
"@types/axios": "^0.14.0",
|
|
32
32
|
"@types/faker": "^5.1.7",
|
|
33
33
|
"@types/json-stringify-safe": "^5.0.0",
|
|
34
|
-
"apollo-plugin-loader": "^1.0.8",
|
|
35
34
|
"axios": "^0.21.1",
|
|
36
35
|
"faker": "^5.4.0",
|
|
37
36
|
"json-stringify-safe": "^5.0.1",
|
|
@@ -40,7 +39,7 @@
|
|
|
40
39
|
"qs": "^6.10.1",
|
|
41
40
|
"request-pre": "^0.4.3",
|
|
42
41
|
"uuid": "^8.3.2",
|
|
43
|
-
"vue-template-compiler": "2.6.
|
|
42
|
+
"vue-template-compiler": "^2.6.10"
|
|
44
43
|
},
|
|
45
44
|
"devDependencies": {
|
|
46
45
|
"@types/chai": "^4.2.14",
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
function showError(message) {
|
|
2
2
|
try {
|
|
3
3
|
const Vue = require('vue').default || window?.Vue;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
if (Vue.prototype?.$toast) {
|
|
5
|
+
Vue.prototype.$toast.error(message);
|
|
6
|
+
} else {
|
|
7
|
+
const UToast = Vue.component('UToast');
|
|
8
|
+
UToast && UToast.extendOptions.error(message);
|
|
9
|
+
}
|
|
6
10
|
} catch (e) {
|
|
7
11
|
console.error(message);
|
|
8
12
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
developBindRolesAndPermissions: {
|
|
3
|
+
url: {
|
|
4
|
+
method: 'post',
|
|
5
|
+
path: '/system/role/bindUsers',
|
|
6
|
+
query: {},
|
|
7
|
+
},
|
|
8
|
+
},
|
|
9
|
+
devlopUnBindRolesAndPermissions: {
|
|
10
|
+
url: {
|
|
11
|
+
method: 'post',
|
|
12
|
+
path: '/system/role/unbindUsers',
|
|
13
|
+
query: {},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
developGetPermissionsForRole: {
|
|
17
|
+
url: {
|
|
18
|
+
method: 'post',
|
|
19
|
+
path: '/system/role/getUsers',
|
|
20
|
+
query: { }, // roleId
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
developGetPermissions: {
|
|
24
|
+
url: {
|
|
25
|
+
method: 'post',
|
|
26
|
+
path: '/system/role/list',
|
|
27
|
+
query: {},
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
developGetPermissionResources: {
|
|
31
|
+
url: {
|
|
32
|
+
method: 'post',
|
|
33
|
+
path: '/system/resource/list',
|
|
34
|
+
query: {},
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createService } from '../create';
|
|
2
|
+
import api from './api';
|
|
3
|
+
|
|
4
|
+
// 兼容 node 运行环境
|
|
5
|
+
const global = typeof window !== 'undefined' ? window : this;
|
|
6
|
+
const service = createService(api, {
|
|
7
|
+
headers: {
|
|
8
|
+
// 单环境配置下默认使用生产环境
|
|
9
|
+
Env: !(global && global.appInfo && global.appInfo.multiEnvEnable) ? 'online' : 'dev',
|
|
10
|
+
},
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
export default service;
|
|
@@ -19,6 +19,12 @@ export default {
|
|
|
19
19
|
method: 'post',
|
|
20
20
|
},
|
|
21
21
|
},
|
|
22
|
+
callLogicUpdate: {
|
|
23
|
+
url: {
|
|
24
|
+
path: '/proxy/graph/api/v1/graph/logic/callLogicUpdate',
|
|
25
|
+
method: 'post',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
22
28
|
delete: {
|
|
23
29
|
url: {
|
|
24
30
|
path: '/proxy/graph/api/v1/graph/logic/delete',
|
|
@@ -85,4 +91,24 @@ export default {
|
|
|
85
91
|
method: 'post',
|
|
86
92
|
},
|
|
87
93
|
},
|
|
94
|
+
//定时任务接口
|
|
95
|
+
validateTimer: {
|
|
96
|
+
url: {
|
|
97
|
+
path: '/api/v1/cron/validate',
|
|
98
|
+
method: 'post',
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
testTimer: {
|
|
102
|
+
url: {
|
|
103
|
+
path: '/api/v1/cron/test',
|
|
104
|
+
method: 'post',
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
//更新接口缓存
|
|
108
|
+
updateCronCache: {
|
|
109
|
+
url: {
|
|
110
|
+
path: '/proxy/graph/api/v1/graph/cache',
|
|
111
|
+
method: 'post',
|
|
112
|
+
},
|
|
113
|
+
},
|
|
88
114
|
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
attachPermissionResourceAction: {
|
|
3
|
+
url: {
|
|
4
|
+
method: 'put',
|
|
5
|
+
path: '/proxy/graph/api/v1/graph/role/attachResource',
|
|
6
|
+
query: {},
|
|
7
|
+
},
|
|
8
|
+
},
|
|
9
|
+
detachPermissionResourceAction: {
|
|
10
|
+
url: {
|
|
11
|
+
method: 'put',
|
|
12
|
+
path: '/proxy/graph/api/v1/graph/role/detachResource',
|
|
13
|
+
query: {},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
getRoles: {
|
|
17
|
+
url: {
|
|
18
|
+
method: 'get',
|
|
19
|
+
path: '/proxy/graph/api/v1/graph/role/list',
|
|
20
|
+
query: {},
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
createRole: {
|
|
24
|
+
url: {
|
|
25
|
+
method: 'post',
|
|
26
|
+
path: '/proxy/graph/api/v1/graph/role/add',
|
|
27
|
+
query: {},
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
updateRole: {
|
|
31
|
+
url: {
|
|
32
|
+
method: 'put',
|
|
33
|
+
path: '/proxy/graph/api/v1/graph/role/update',
|
|
34
|
+
query: {},
|
|
35
|
+
},
|
|
36
|
+
config: { noErrorTip: true },
|
|
37
|
+
},
|
|
38
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createService } from '../create';
|
|
2
|
+
import api from './api';
|
|
3
|
+
|
|
4
|
+
// 兼容 node 运行环境
|
|
5
|
+
const global = typeof window !== 'undefined' ? window : this;
|
|
6
|
+
const service = createService(api, {
|
|
7
|
+
headers: {
|
|
8
|
+
// 单环境配置下默认使用生产环境
|
|
9
|
+
Env: !(global && global.appInfo && global.appInfo.multiEnvEnable) ? 'online' : 'dev',
|
|
10
|
+
},
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
export default service;
|
|
@@ -12,6 +12,11 @@ service.saveFile = async function (options) {
|
|
|
12
12
|
},
|
|
13
13
|
});
|
|
14
14
|
if (!result) {
|
|
15
|
+
// 新应用可能会并发调用多次 saveFile, 导致创建多次
|
|
16
|
+
options = { ...options,
|
|
17
|
+
config: {
|
|
18
|
+
noErrorTip: true,
|
|
19
|
+
} };
|
|
15
20
|
return service.createFile(options);
|
|
16
21
|
} else {
|
|
17
22
|
return service.updateFile(options);
|
|
@@ -20,4 +25,4 @@ service.saveFile = async function (options) {
|
|
|
20
25
|
|
|
21
26
|
export default service;
|
|
22
27
|
|
|
23
|
-
export const loadCacheService = createService(loadCacheApi);
|
|
28
|
+
export const loadCacheService = createService(loadCacheApi);
|
package/src/types/app/App.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { excludedInJSON, immutable } from '../decorators';
|
|
2
|
-
import { LEVEL_ENUM, Vertex, Service, WebService, MicroService, SERVICE_TYPE, utils, History, updateGenericTypeList } from '..';
|
|
2
|
+
import { LEVEL_ENUM, Vertex, Service, WebService, MicroService, SERVICE_TYPE, utils, History, updateGenericTypeList, vertexsMap, Entity, Structure, Enum, dataTypesMap, BaseVariable, variablesMap, updateDataTypeList } from '..';
|
|
3
3
|
import appService from '../../service/app';
|
|
4
4
|
|
|
5
5
|
interface AppLoadAllOptions {
|
|
@@ -262,6 +262,41 @@ export class App extends Vertex {
|
|
|
262
262
|
from(source: any) {
|
|
263
263
|
return new App(source);
|
|
264
264
|
}
|
|
265
|
+
/**
|
|
266
|
+
* 清理内存,避免内存泄漏
|
|
267
|
+
*/
|
|
268
|
+
clear() {
|
|
269
|
+
function traverse(obj: any, callback: (obj: any) => void, ws = new WeakSet()) {
|
|
270
|
+
if (typeof obj !== 'object' || obj === null)
|
|
271
|
+
return;
|
|
272
|
+
if (ws.has(obj))
|
|
273
|
+
return;
|
|
274
|
+
|
|
275
|
+
ws.add(obj);
|
|
276
|
+
|
|
277
|
+
if (Array.isArray(obj))
|
|
278
|
+
obj.forEach((item) => {
|
|
279
|
+
traverse(item, callback, ws);
|
|
280
|
+
});
|
|
281
|
+
else {
|
|
282
|
+
callback(obj);
|
|
283
|
+
Object.values(obj).forEach((item) => {
|
|
284
|
+
traverse(item, callback, ws);
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
traverse(this, (obj: any) => {
|
|
290
|
+
vertexsMap.delete(obj?.id);
|
|
291
|
+
|
|
292
|
+
if (obj instanceof Entity || obj instanceof Structure || obj instanceof Enum)
|
|
293
|
+
delete dataTypesMap[obj.schemaRef];
|
|
294
|
+
|
|
295
|
+
if (obj instanceof BaseVariable)
|
|
296
|
+
variablesMap.delete(obj.id);
|
|
297
|
+
});
|
|
298
|
+
updateDataTypeList();
|
|
299
|
+
}
|
|
265
300
|
}
|
|
266
301
|
|
|
267
302
|
export default App;
|
package/src/types/app/Service.ts
CHANGED
|
@@ -166,6 +166,11 @@ export class Service extends Vertex {
|
|
|
166
166
|
* 加载服务所有的接口列表
|
|
167
167
|
*/
|
|
168
168
|
async loadInterfaces() {
|
|
169
|
+
// 接口列表中的旧接口可能已经已经不存在,需要从 vetexsMap 中清理掉
|
|
170
|
+
this.interfaces.forEach((it) => {
|
|
171
|
+
it.destroy();
|
|
172
|
+
});
|
|
173
|
+
|
|
169
174
|
const RESOLVER_NAMES = ['getAll', 'get', 'create', 'update', 'delete', 'count', 'import', 'export', 'batchDelete', 'batchCreate', 'batchUpdate'];
|
|
170
175
|
|
|
171
176
|
let interfaces: Array<Interface> = await interfaceService.loadList({
|
|
@@ -379,10 +384,15 @@ ${Object.keys(themeVariables).map((key) => ` ${key}: ${themeVariables[key]};`
|
|
|
379
384
|
`;
|
|
380
385
|
}
|
|
381
386
|
|
|
382
|
-
async loadPages() {
|
|
387
|
+
async loadPages(enableCache = true) {
|
|
388
|
+
this.pages.forEach((page) => {
|
|
389
|
+
page.destroy();
|
|
390
|
+
});
|
|
391
|
+
|
|
383
392
|
const result: Array<Page> = await pageService.loadPages({
|
|
384
393
|
query: {
|
|
385
394
|
serviceId: this.id,
|
|
395
|
+
enableCache,
|
|
386
396
|
},
|
|
387
397
|
config: {
|
|
388
398
|
mock: config.mock,
|
|
@@ -768,17 +778,35 @@ export class MicroService extends Service {
|
|
|
768
778
|
/**
|
|
769
779
|
* 加载服务所有的接口列表
|
|
770
780
|
*/
|
|
771
|
-
async loadInterfaces() {
|
|
781
|
+
async loadInterfaces(enableCache = true) {
|
|
782
|
+
const logicMap = new Map();
|
|
783
|
+
// 旧接口列表中,可能存在已经被删掉的接口,需要从 vertexsMap 中删除
|
|
784
|
+
this.interfaces.forEach((it) => {
|
|
785
|
+
logicMap.set(it.id, it.logic);
|
|
786
|
+
it.destroy();
|
|
787
|
+
});
|
|
788
|
+
|
|
772
789
|
let interfaces: Array<Interface> = await interfaceService.loadList({
|
|
773
790
|
query: {
|
|
774
791
|
serviceId: this.id,
|
|
792
|
+
enableCache,
|
|
775
793
|
},
|
|
776
794
|
headers: {
|
|
777
795
|
IdeVersion: 2.3,
|
|
778
796
|
},
|
|
779
797
|
});
|
|
780
798
|
|
|
781
|
-
interfaces = interfaces.map((item) =>
|
|
799
|
+
interfaces = interfaces.map((item) => {
|
|
800
|
+
if(logicMap.has(item.id)) {
|
|
801
|
+
item.logic = logicMap.get(item.id);
|
|
802
|
+
logicMap.delete(item.id);
|
|
803
|
+
}
|
|
804
|
+
return Interface.from(item, this);
|
|
805
|
+
});
|
|
806
|
+
// 清理掉已不存在的逻辑
|
|
807
|
+
for(const logic of logicMap.values()) {
|
|
808
|
+
logic.destroy();
|
|
809
|
+
}
|
|
782
810
|
|
|
783
811
|
interfaces.forEach((i) => {
|
|
784
812
|
if (i.serviceType === 'export') {
|
|
@@ -786,6 +814,7 @@ export class MicroService extends Service {
|
|
|
786
814
|
i.logic = logic;
|
|
787
815
|
}
|
|
788
816
|
});
|
|
817
|
+
|
|
789
818
|
this.assign({ interfaces });
|
|
790
819
|
this.mountResolverOnEntity();
|
|
791
820
|
this.mountResolverOnInterface();
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { config, View, Logic } from '.';
|
|
2
|
+
import { BusinessCode } from './enum';
|
|
3
|
+
|
|
4
|
+
export async function refreshInterfaces() {
|
|
5
|
+
await config.defaultApp?.firstMicroService?.loadInterfaces(false);
|
|
6
|
+
config.defaultApp?.firstMicroService?.emit('interfacesChange');
|
|
7
|
+
config.defaultApp?.emit('cache.refreshed');
|
|
8
|
+
config.defaultApp?.emit('cleanDesigners');
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export async function refreshPages() {
|
|
12
|
+
await config.defaultApp?.firstWebService.loadPages(false);
|
|
13
|
+
await config.defaultApp?._loadViewsDetail();
|
|
14
|
+
config.defaultApp?.firstWebService.emit('pageTreeChange');
|
|
15
|
+
config.defaultApp?.emit('cache.refreshed');
|
|
16
|
+
config.defaultApp?.emit('cleanDesigners');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export async function refreshView(view: View) {
|
|
20
|
+
try {
|
|
21
|
+
await view.loadAll(false);
|
|
22
|
+
view.emit('change');
|
|
23
|
+
config.defaultApp?.emit('cache.refreshed');
|
|
24
|
+
config.defaultApp?.emit('cleanDesigners');
|
|
25
|
+
} catch(err: any) {
|
|
26
|
+
const code = err?.code;
|
|
27
|
+
if(code === BusinessCode.ElementNotExist) // 节点不存在
|
|
28
|
+
await refreshPages();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export async function refreshHtml(view: View) {
|
|
34
|
+
try {
|
|
35
|
+
await view.$html?.load();
|
|
36
|
+
view.emit('change');
|
|
37
|
+
config.defaultApp?.emit('cache.refreshed');
|
|
38
|
+
} catch(err: any) {
|
|
39
|
+
const code = err?.code;
|
|
40
|
+
if(code === BusinessCode.ElementNotExist) // 节点不存在
|
|
41
|
+
await refreshView(view);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export async function refreshLogic(logic: Logic) {
|
|
47
|
+
await logic.load(); // logic.load() 会根据后端返回的code, 调用 refreshView, refreshPages 或 refreshInterfaces
|
|
48
|
+
logic.emit('change');
|
|
49
|
+
config.defaultApp?.emit('cache.refreshed');
|
|
50
|
+
}
|
package/src/types/cacheData.ts
CHANGED
|
@@ -4,20 +4,20 @@ export const vertexsMap: Map<string, Vertex> = new Map();
|
|
|
4
4
|
export const entitiesMap: Map<string, Entity> = new Map();
|
|
5
5
|
|
|
6
6
|
export function genFinalCode(code: string, finalCode = true) {
|
|
7
|
-
if(!finalCode)
|
|
7
|
+
if (!finalCode)
|
|
8
8
|
return code;
|
|
9
9
|
|
|
10
|
-
if(typeof code !== 'string')
|
|
10
|
+
if (typeof code !== 'string')
|
|
11
11
|
return code;
|
|
12
12
|
// ID_ENUMVALUE_只需要返回ENUM的item的value值
|
|
13
|
-
if(code.includes('ID_ENUMVALUE_')){
|
|
13
|
+
if (code.includes('ID_ENUMVALUE_')) {
|
|
14
14
|
code = code.replace(/ID_([\w-]+).ID_ENUMVALUE_([\w-]+)/g, (m) => {
|
|
15
15
|
const id = m.split('.').pop().replace('ID_ENUMVALUE_', '');
|
|
16
16
|
const param = vertexsMap.get(id);
|
|
17
|
-
return
|
|
17
|
+
return param && `'${(param as any).value}'` || `'${id}'`;
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
|
-
if(code.includes('ID_ENUM_LIST_')){
|
|
20
|
+
if (code.includes('ID_ENUM_LIST_')) {
|
|
21
21
|
code = code.replace(/ID_ENUM_LIST_([\w-]+)/g, (m, id) => {
|
|
22
22
|
const param = vertexsMap.get(id);
|
|
23
23
|
return `$utils.EnumList('${param && param.name}')`;
|
|
@@ -27,7 +27,7 @@ export function genFinalCode(code: string, finalCode = true) {
|
|
|
27
27
|
return code.replace(/ID_([\w-]+)/g, (m, id) => {
|
|
28
28
|
const param = vertexsMap.get(id);
|
|
29
29
|
return (param as any)?.name
|
|
30
|
-
|| (param as any)?.asName
|
|
30
|
+
|| (param as any)?.asName
|
|
31
31
|
|| id;
|
|
32
32
|
});
|
|
33
|
-
}
|
|
33
|
+
}
|
|
@@ -93,6 +93,36 @@ export class Vertex extends EventEmitter {
|
|
|
93
93
|
*/
|
|
94
94
|
@excludedInJSON()
|
|
95
95
|
public expanded: boolean = false;
|
|
96
|
+
/**
|
|
97
|
+
* 节点是否显示
|
|
98
|
+
* 前端 UI 状态
|
|
99
|
+
*/
|
|
100
|
+
@excludedInJSON()
|
|
101
|
+
public hidden: boolean = false;
|
|
102
|
+
/**
|
|
103
|
+
* 页面树节点是否显示
|
|
104
|
+
* 前端 UI 状态
|
|
105
|
+
*/
|
|
106
|
+
@excludedInJSON()
|
|
107
|
+
public pageTreeNodeHidden: boolean = false;
|
|
108
|
+
/**
|
|
109
|
+
* 逻辑树节点是否显示
|
|
110
|
+
* 前端 UI 状态
|
|
111
|
+
*/
|
|
112
|
+
@excludedInJSON()
|
|
113
|
+
public logicTreeNodeHidden: boolean = false;
|
|
114
|
+
/**
|
|
115
|
+
* 数据树节点是否显示
|
|
116
|
+
* 前端 UI 状态
|
|
117
|
+
*/
|
|
118
|
+
@excludedInJSON()
|
|
119
|
+
public dataTreeNodeHidden: boolean = false;
|
|
120
|
+
/**
|
|
121
|
+
* 数据树节点是否展开
|
|
122
|
+
* 前端 UI 状态
|
|
123
|
+
*/
|
|
124
|
+
@excludedInJSON()
|
|
125
|
+
public logicTreeNodeExpanded: boolean = false;
|
|
96
126
|
/**
|
|
97
127
|
* 是否为叶子节点
|
|
98
128
|
* 前端 UI 状态
|
package/src/types/data/Entity.ts
CHANGED