@ibiz-template/core 0.1.14 → 0.1.18

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.
Files changed (75) hide show
  1. package/dist/index.esm.js +330 -0
  2. package/dist/index.system.min.js +1 -1
  3. package/dist/index.system.min.js.map +1 -1
  4. package/out/ibizsys.d.ts +9 -1
  5. package/out/ibizsys.d.ts.map +1 -1
  6. package/out/ibizsys.js +9 -1
  7. package/out/interface/i-portal-async-action/i-portal-async-action.d.ts +83 -0
  8. package/out/interface/i-portal-async-action/i-portal-async-action.d.ts.map +1 -0
  9. package/out/interface/i-portal-async-action/i-portal-async-action.js +1 -0
  10. package/out/interface/i-portal-message/i-portal-message.d.ts +68 -0
  11. package/out/interface/i-portal-message/i-portal-message.d.ts.map +1 -0
  12. package/out/interface/i-portal-message/i-portal-message.js +1 -0
  13. package/out/interface/index.d.ts +2 -0
  14. package/out/interface/index.d.ts.map +1 -1
  15. package/out/utils/index.d.ts +1 -0
  16. package/out/utils/index.d.ts.map +1 -1
  17. package/out/utils/index.js +1 -0
  18. package/out/utils/message-center/base/message-all.d.ts +13 -0
  19. package/out/utils/message-center/base/message-all.d.ts.map +1 -0
  20. package/out/utils/message-center/base/message-all.js +12 -0
  21. package/out/utils/message-center/base/message-base.d.ts +68 -0
  22. package/out/utils/message-center/base/message-base.d.ts.map +1 -0
  23. package/out/utils/message-center/base/message-base.js +70 -0
  24. package/out/utils/message-center/command/change/command-change.d.ts +13 -0
  25. package/out/utils/message-center/command/change/command-change.d.ts.map +1 -0
  26. package/out/utils/message-center/command/change/command-change.js +12 -0
  27. package/out/utils/message-center/command/command-base/command-base.d.ts +20 -0
  28. package/out/utils/message-center/command/command-base/command-base.d.ts.map +1 -0
  29. package/out/utils/message-center/command/command-base/command-base.js +28 -0
  30. package/out/utils/message-center/command/create/command-create.d.ts +22 -0
  31. package/out/utils/message-center/command/create/command-create.d.ts.map +1 -0
  32. package/out/utils/message-center/command/create/command-create.js +22 -0
  33. package/out/utils/message-center/command/message-command.d.ts +68 -0
  34. package/out/utils/message-center/command/message-command.d.ts.map +1 -0
  35. package/out/utils/message-center/command/message-command.js +113 -0
  36. package/out/utils/message-center/command/remove/command-remove.d.ts +22 -0
  37. package/out/utils/message-center/command/remove/command-remove.d.ts.map +1 -0
  38. package/out/utils/message-center/command/remove/command-remove.js +22 -0
  39. package/out/utils/message-center/command/update/command-update.d.ts +22 -0
  40. package/out/utils/message-center/command/update/command-update.d.ts.map +1 -0
  41. package/out/utils/message-center/command/update/command-update.js +22 -0
  42. package/out/utils/message-center/console/message-console.d.ts +21 -0
  43. package/out/utils/message-center/console/message-console.d.ts.map +1 -0
  44. package/out/utils/message-center/console/message-console.js +29 -0
  45. package/out/utils/message-center/index.d.ts +2 -0
  46. package/out/utils/message-center/index.d.ts.map +1 -0
  47. package/out/utils/message-center/index.js +1 -0
  48. package/out/utils/message-center/interface/i-app-data-entity.d.ts +20 -0
  49. package/out/utils/message-center/interface/i-app-data-entity.d.ts.map +1 -0
  50. package/out/utils/message-center/interface/i-app-data-entity.js +1 -0
  51. package/out/utils/message-center/interface/index.d.ts +2 -0
  52. package/out/utils/message-center/interface/index.d.ts.map +1 -0
  53. package/out/utils/message-center/interface/index.js +1 -0
  54. package/out/utils/message-center/message-center.d.ts +63 -0
  55. package/out/utils/message-center/message-center.d.ts.map +1 -0
  56. package/out/utils/message-center/message-center.js +79 -0
  57. package/package.json +2 -2
  58. package/src/ibizsys.ts +10 -1
  59. package/src/interface/i-portal-async-action/i-portal-async-action.ts +90 -0
  60. package/src/interface/i-portal-message/i-portal-message.ts +79 -0
  61. package/src/interface/index.ts +2 -0
  62. package/src/utils/index.ts +1 -0
  63. package/src/utils/message-center/base/message-all.ts +12 -0
  64. package/src/utils/message-center/base/message-base.ts +86 -0
  65. package/src/utils/message-center/command/change/command-change.ts +12 -0
  66. package/src/utils/message-center/command/command-base/command-base.ts +30 -0
  67. package/src/utils/message-center/command/create/command-create.ts +24 -0
  68. package/src/utils/message-center/command/message-command.ts +118 -0
  69. package/src/utils/message-center/command/remove/command-remove.ts +24 -0
  70. package/src/utils/message-center/command/update/command-update.ts +24 -0
  71. package/src/utils/message-center/console/message-console.ts +31 -0
  72. package/src/utils/message-center/index.ts +1 -0
  73. package/src/utils/message-center/interface/i-app-data-entity.ts +19 -0
  74. package/src/utils/message-center/interface/index.ts +1 -0
  75. package/src/utils/message-center/message-center.ts +82 -0
@@ -1,4 +1,5 @@
1
1
  export * from './interceptor';
2
+ export { MessageCenter } from './message-center';
2
3
  export { Namespace } from './namespace/namespace';
3
4
  export { IHttpResponse, HttpResponse } from './net/http-response';
4
5
  export { Net } from './net/net';
@@ -0,0 +1,12 @@
1
+ import { MessageBase } from './message-base';
2
+
3
+ /**
4
+ * 所有消息
5
+ *
6
+ * @author chitanda
7
+ * @date 2023-09-05 16:09:34
8
+ * @export
9
+ * @class MessageAll
10
+ * @extends {MessageBase}
11
+ */
12
+ export class MessageAll extends MessageBase {}
@@ -0,0 +1,86 @@
1
+ import { QXEvent } from 'qx-util';
2
+ import { IPortalMessage } from '../../../interface';
3
+
4
+ /**
5
+ * 消息事件
6
+ *
7
+ * @author chitanda
8
+ * @date 2023-09-05 16:09:17
9
+ * @interface MessageCenterEvent
10
+ */
11
+ interface MessageCenterEvent {
12
+ all: (msg: IPortalMessage) => void;
13
+ }
14
+
15
+ /**
16
+ * 消息基类,各个类型消息继承此类
17
+ *
18
+ * @author chitanda
19
+ * @date 2023-09-05 16:09:41
20
+ * @export
21
+ * @class MessageBase
22
+ */
23
+ export abstract class MessageBase {
24
+ /**
25
+ * 事件
26
+ *
27
+ * @author chitanda
28
+ * @date 2023-09-05 16:09:58
29
+ * @protected
30
+ * @type {QXEvent<MessageCenterEvent>}
31
+ */
32
+ protected evt: QXEvent<MessageCenterEvent> = new QXEvent(1000);
33
+
34
+ constructor(protected parent?: MessageBase) {}
35
+
36
+ /**
37
+ * 推送标准结构消息
38
+ *
39
+ * @author chitanda
40
+ * @date 2023-09-05 16:09:40
41
+ * @param {IPortalMessage} msg
42
+ */
43
+ next(msg: IPortalMessage): void {
44
+ this.evt.emit('all', msg);
45
+ if (this.parent) {
46
+ this.nextParent(msg);
47
+ }
48
+ }
49
+
50
+ /**
51
+ * 私有方法,专门向父级推送消息
52
+ *
53
+ * @author chitanda
54
+ * @date 2023-09-05 17:09:08
55
+ * @protected
56
+ * @param {IPortalMessage} msg
57
+ */
58
+ protected nextParent(msg: IPortalMessage): void {
59
+ if (this.parent) {
60
+ this.parent.evt.emit('all', msg);
61
+ this.parent.nextParent(msg);
62
+ }
63
+ }
64
+
65
+ /**
66
+ * 订阅消息
67
+ *
68
+ * @author chitanda
69
+ * @date 2023-09-05 15:09:21
70
+ * @param {(msg: IPortalMessage) => void} evt
71
+ */
72
+ on(cb: (msg: IPortalMessage) => void): void {
73
+ this.evt.on('all', cb);
74
+ }
75
+
76
+ /**
77
+ * 取消订阅
78
+ *
79
+ * @author chitanda
80
+ * @date 2023-09-05 15:09:50
81
+ * @param {(msg: IPortalMessage) => void} cb
82
+ */
83
+ off(cb: (msg: IPortalMessage) => void): void {
84
+ this.evt.off('all', cb);
85
+ }
86
+ }
@@ -0,0 +1,12 @@
1
+ import { CommandBase } from '../command-base/command-base';
2
+
3
+ /**
4
+ * 数据变更指令消息
5
+ *
6
+ * @author chitanda
7
+ * @date 2023-09-05 17:09:49
8
+ * @export
9
+ * @class CommandChange
10
+ * @extends {CommandBase}
11
+ */
12
+ export class CommandChange extends CommandBase {}
@@ -0,0 +1,30 @@
1
+ import { createUUID } from 'qx-util';
2
+ import { IPortalMessage } from '../../../../interface';
3
+ import { MessageBase } from '../../base/message-base';
4
+
5
+ /**
6
+ * 指令消息基类
7
+ *
8
+ * @author chitanda
9
+ * @date 2023-09-05 16:09:11
10
+ * @export
11
+ * @class CommandBase
12
+ * @extends {MessageBase}
13
+ */
14
+ export class CommandBase extends MessageBase {
15
+ /**
16
+ * 发送指令消息
17
+ * @param data 更新的数据
18
+ * @param subtype 数据更新 | 数据删除 | 数据创建
19
+ */
20
+ protected sendCommand(data: IData, subtype: IPortalMessage['subtype']): void {
21
+ const msg: IPortalMessage = {
22
+ messageid: createUUID(),
23
+ messagename: 'command',
24
+ type: 'COMMAND',
25
+ subtype,
26
+ data,
27
+ };
28
+ this.next(msg);
29
+ }
30
+ }
@@ -0,0 +1,24 @@
1
+ import { IAppDataEntity } from '../../interface';
2
+ import { CommandBase } from '../command-base/command-base';
3
+
4
+ /**
5
+ * 创建指令消息
6
+ *
7
+ * @author chitanda
8
+ * @date 2023-09-05 17:09:57
9
+ * @export
10
+ * @class CommandCreate
11
+ * @extends {CommandBase}
12
+ */
13
+ export class CommandCreate extends CommandBase {
14
+ /**
15
+ * 发送新建的数据
16
+ *
17
+ * @author chitanda
18
+ * @date 2023-09-05 17:09:13
19
+ * @param {IAppDataEntity} data
20
+ */
21
+ send(data: IAppDataEntity): void {
22
+ this.sendCommand(data, 'OBJECTCREATED');
23
+ }
24
+ }
@@ -0,0 +1,118 @@
1
+ import { createUUID } from 'qx-util';
2
+ import { IPortalMessage } from '../../../interface';
3
+ import { MessageBase } from '../base/message-base';
4
+ import { CommandCreate } from './create/command-create';
5
+ import { CommandUpdate } from './update/command-update';
6
+ import { CommandRemove } from './remove/command-remove';
7
+ import { CommandChange } from './change/command-change';
8
+
9
+ /**
10
+ * 指令消息
11
+ *
12
+ * @author chitanda
13
+ * @date 2023-09-05 16:09:41
14
+ * @export
15
+ * @class MessageCommand
16
+ * @extends {MessageBase}
17
+ */
18
+ export class MessageCommand extends MessageBase {
19
+ /**
20
+ * 数据变更指令消息
21
+ *
22
+ * @author chitanda
23
+ * @date 2023-09-05 17:09:15
24
+ * @type {CommandChange}
25
+ */
26
+ readonly change: CommandChange = new CommandChange();
27
+
28
+ /**
29
+ * 新建消息
30
+ *
31
+ * @author chitanda
32
+ * @date 2023-09-05 17:09:55
33
+ * @type {CommandCreate}
34
+ */
35
+ readonly create: CommandCreate = new CommandCreate(this);
36
+
37
+ /**
38
+ * 更新消息
39
+ *
40
+ * @author chitanda
41
+ * @date 2023-09-05 17:09:01
42
+ * @type {CommandUpdate}
43
+ */
44
+ readonly update: CommandUpdate = new CommandUpdate(this);
45
+
46
+ /**
47
+ * 删除消息
48
+ *
49
+ * @author chitanda
50
+ * @date 2023-09-05 17:09:05
51
+ * @type {CommandRemove}
52
+ */
53
+ readonly remove: CommandRemove = new CommandRemove(this);
54
+
55
+ /**
56
+ * 推送指令消息
57
+ *
58
+ * @author chitanda
59
+ * @date 2023-09-05 17:09:50
60
+ * @param {IPortalMessage} msg
61
+ */
62
+ next(msg: IPortalMessage): void {
63
+ // 消息分子类型,子类型发完消息后,会让父发消息
64
+ // 所以子类型有父时,会一级一级的往上发消息。不需要在此处发全局消息
65
+ // change 特殊处理,不给父发消息
66
+ switch (msg.subtype) {
67
+ case 'OBJECTCREATED':
68
+ this.create.next(msg);
69
+ this.change.next(msg);
70
+ break;
71
+ case 'OBJECTUPDATED':
72
+ this.update.next(msg);
73
+ this.change.next(msg);
74
+ break;
75
+ case 'OBJECTREMOVED':
76
+ this.remove.next(msg);
77
+ this.change.next(msg);
78
+ break;
79
+ default:
80
+ super.next(msg);
81
+ }
82
+ }
83
+
84
+ protected nextParent(msg: IPortalMessage): void {
85
+ switch (msg.subtype) {
86
+ case 'OBJECTCREATED':
87
+ this.change.next(msg);
88
+ break;
89
+ case 'OBJECTUPDATED':
90
+ this.change.next(msg);
91
+ break;
92
+ case 'OBJECTREMOVED':
93
+ this.change.next(msg);
94
+ break;
95
+ default:
96
+ }
97
+ super.nextParent(msg);
98
+ }
99
+
100
+ /**
101
+ * 发送指令消息
102
+ *
103
+ * @author chitanda
104
+ * @date 2023-09-05 17:09:35
105
+ * @param {IData} data
106
+ * @param {IPortalMessage['subtype']} subtype
107
+ */
108
+ send(data: IData, subtype: IPortalMessage['subtype']): void {
109
+ const msg: IPortalMessage = {
110
+ messageid: createUUID(),
111
+ messagename: 'command',
112
+ type: 'COMMAND',
113
+ subtype,
114
+ data,
115
+ };
116
+ this.next(msg);
117
+ }
118
+ }
@@ -0,0 +1,24 @@
1
+ import { IAppDataEntity } from '../../interface';
2
+ import { CommandBase } from '../command-base/command-base';
3
+
4
+ /**
5
+ * 删除指令消息
6
+ *
7
+ * @author chitanda
8
+ * @date 2023-09-05 17:09:03
9
+ * @export
10
+ * @class CommandRemove
11
+ * @extends {CommandBase}
12
+ */
13
+ export class CommandRemove extends CommandBase {
14
+ /**
15
+ * 发送删除的数据
16
+ *
17
+ * @author chitanda
18
+ * @date 2023-09-05 17:09:29
19
+ * @param {IAppDataEntity} data
20
+ */
21
+ send(data: IAppDataEntity): void {
22
+ this.sendCommand(data, 'OBJECTREMOVED');
23
+ }
24
+ }
@@ -0,0 +1,24 @@
1
+ import { IAppDataEntity } from '../../interface';
2
+ import { CommandBase } from '../command-base/command-base';
3
+
4
+ /**
5
+ * 更新指令消息
6
+ *
7
+ * @author chitanda
8
+ * @date 2023-09-05 17:09:54
9
+ * @export
10
+ * @class CommandUpdate
11
+ * @extends {CommandBase}
12
+ */
13
+ export class CommandUpdate extends CommandBase {
14
+ /**
15
+ * 发送更新的数据
16
+ *
17
+ * @author chitanda
18
+ * @date 2023-09-05 17:09:37
19
+ * @param {IAppDataEntity} data
20
+ */
21
+ send(data: IAppDataEntity): void {
22
+ this.sendCommand(data, 'OBJECTUPDATED');
23
+ }
24
+ }
@@ -0,0 +1,31 @@
1
+ import { createUUID } from 'qx-util';
2
+ import { IPortalMessage } from '../../../interface';
3
+ import { MessageBase } from '../base/message-base';
4
+
5
+ /**
6
+ * 日志消息
7
+ *
8
+ * @author chitanda
9
+ * @date 2023-09-05 16:09:33
10
+ * @export
11
+ * @class MessageConsole
12
+ * @extends {MessageBase}
13
+ */
14
+ export class MessageConsole extends MessageBase {
15
+ /**
16
+ * 发送日志消息
17
+ *
18
+ * @author chitanda
19
+ * @date 2023-09-05 16:09:25
20
+ * @param {(IData | string)} data
21
+ */
22
+ send(data: IData | string): void {
23
+ const msg: IPortalMessage = {
24
+ messageid: createUUID(),
25
+ messagename: 'console',
26
+ type: 'CONSOLE',
27
+ data,
28
+ };
29
+ this.next(msg);
30
+ }
31
+ }
@@ -0,0 +1 @@
1
+ export { MessageCenter } from './message-center';
@@ -0,0 +1,19 @@
1
+ /**
2
+ * 应用实体数据对象
3
+ *
4
+ * @author chitanda
5
+ * @date 2023-09-05 17:09:39
6
+ * @export
7
+ * @interface IAppDataEntity
8
+ * @extends {IData}
9
+ */
10
+ export interface IAppDataEntity extends IData {
11
+ /**
12
+ * 应用实体数据对象标识
13
+ *
14
+ * @author chitanda
15
+ * @date 2023-09-05 17:09:57
16
+ * @type {string}
17
+ */
18
+ srfdecodename: string;
19
+ }
@@ -0,0 +1 @@
1
+ export type { IAppDataEntity } from './i-app-data-entity';
@@ -0,0 +1,82 @@
1
+ import { IPortalMessage } from '../../interface';
2
+ import { MessageAll } from './base/message-all';
3
+ import { MessageCommand } from './command/message-command';
4
+ import { MessageConsole } from './console/message-console';
5
+
6
+ /**
7
+ * 界面消息中心
8
+ *
9
+ * @author chitanda
10
+ * @date 2023-09-05 15:09:14
11
+ * @export
12
+ * @class MessageCenter
13
+ */
14
+ export class MessageCenter {
15
+ /**
16
+ * 所有消息
17
+ *
18
+ * @author chitanda
19
+ * @date 2023-09-05 16:09:12
20
+ * @type {MessageAll}
21
+ */
22
+ protected all: MessageAll = new MessageAll();
23
+
24
+ /**
25
+ * 指令消息
26
+ *
27
+ * @author chitanda
28
+ * @date 2023-09-05 16:09:28
29
+ * @type {MessageCommand}
30
+ */
31
+ readonly command: MessageCommand = new MessageCommand(this.all);
32
+
33
+ /**
34
+ * 日志消息
35
+ *
36
+ * @author chitanda
37
+ * @date 2023-09-05 16:09:48
38
+ * @type {MessageConsole}
39
+ */
40
+ readonly console: MessageConsole = new MessageConsole(this.all);
41
+
42
+ /**
43
+ * 发送消息
44
+ *
45
+ * @author chitanda
46
+ * @date 2023-09-05 15:09:49
47
+ * @param {IPortalMessage} msg
48
+ */
49
+ next(msg: IPortalMessage): void {
50
+ // 消息分子类型,子类型发完消息后,会让父发消息
51
+ // 所以子类型有父时,会一级一级的往上发消息。不需要在此处发全局消息
52
+ if (msg.type === 'COMMAND') {
53
+ this.command.next(msg);
54
+ } else if (msg.type === 'CONSOLE') {
55
+ this.console.next(msg);
56
+ } else {
57
+ this.all.next(msg);
58
+ }
59
+ }
60
+
61
+ /**
62
+ * 订阅消息
63
+ *
64
+ * @author chitanda
65
+ * @date 2023-09-05 17:09:32
66
+ * @param {(msg: IPortalMessage) => void} callback
67
+ */
68
+ on(callback: (msg: IPortalMessage) => void): void {
69
+ this.all.on(callback);
70
+ }
71
+
72
+ /**
73
+ * 取消订阅
74
+ *
75
+ * @author chitanda
76
+ * @date 2023-09-05 17:09:38
77
+ * @param {(msg: IPortalMessage) => void} callback
78
+ */
79
+ off(callback: (msg: IPortalMessage) => void): void {
80
+ this.all.off(callback);
81
+ }
82
+ }