@ibiz-template/runtime 0.1.7 → 0.1.9

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 (210) hide show
  1. package/dist/index.esm.js +4262 -3993
  2. package/dist/index.system.min.js +1 -1
  3. package/dist/index.system.min.js.map +1 -1
  4. package/out/app-hub.d.ts +8 -0
  5. package/out/app-hub.d.ts.map +1 -1
  6. package/out/app-hub.js +8 -0
  7. package/out/command/app/open-app-view/open-app-view.js +5 -5
  8. package/out/constant/sys-uiaction-tag.d.ts +8 -0
  9. package/out/constant/sys-uiaction-tag.d.ts.map +1 -1
  10. package/out/constant/sys-uiaction-tag.js +8 -0
  11. package/out/controller/common/control/control.controller.d.ts +9 -1
  12. package/out/controller/common/control/control.controller.d.ts.map +1 -1
  13. package/out/controller/common/control/control.controller.js +17 -7
  14. package/out/controller/common/control/md-control.controller.d.ts +3 -1
  15. package/out/controller/common/control/md-control.controller.d.ts.map +1 -1
  16. package/out/controller/common/control/md-control.controller.js +31 -13
  17. package/out/controller/common/view/view.controller.d.ts +1 -0
  18. package/out/controller/common/view/view.controller.d.ts.map +1 -1
  19. package/out/controller/common/view/view.controller.js +6 -3
  20. package/out/controller/hub.controller.d.ts +16 -0
  21. package/out/controller/hub.controller.d.ts.map +1 -0
  22. package/out/controller/hub.controller.js +20 -0
  23. package/out/controller/index.d.ts +1 -0
  24. package/out/controller/index.d.ts.map +1 -1
  25. package/out/controller/index.js +1 -0
  26. package/out/controller/utils/value-rule/value-rule.d.ts.map +1 -1
  27. package/out/controller/utils/value-rule/value-rule.js +1 -1
  28. package/out/engine/md-view.engine.d.ts.map +1 -1
  29. package/out/engine/md-view.engine.js +10 -4
  30. package/out/install.js +2 -2
  31. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts +9 -0
  32. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts.map +1 -1
  33. package/out/interface/controller/app.d.ts +37 -0
  34. package/out/interface/controller/app.d.ts.map +1 -0
  35. package/out/interface/controller/app.js +1 -0
  36. package/out/interface/controller/common/i-icon/i-icon.d.ts +7 -0
  37. package/out/interface/controller/common/i-icon/i-icon.d.ts.map +1 -1
  38. package/out/interface/controller/controller/control/i-context-menu.controller.d.ts +15 -0
  39. package/out/interface/controller/controller/control/i-context-menu.controller.d.ts.map +1 -0
  40. package/out/interface/controller/controller/control/i-context-menu.controller.js +1 -0
  41. package/out/interface/controller/controller/control/i-grid.controller.d.ts +11 -4
  42. package/out/interface/controller/controller/control/i-grid.controller.d.ts.map +1 -1
  43. package/out/interface/controller/controller/control/i-md-control.controller.d.ts +7 -0
  44. package/out/interface/controller/controller/control/i-md-control.controller.d.ts.map +1 -1
  45. package/out/interface/controller/controller/control/i-toolbar.controller.d.ts +2 -2
  46. package/out/interface/controller/controller/control/i-toolbar.controller.d.ts.map +1 -1
  47. package/out/interface/controller/controller/control/i-tree.controller.d.ts +7 -0
  48. package/out/interface/controller/controller/control/i-tree.controller.d.ts.map +1 -1
  49. package/out/interface/controller/controller/control/index.d.ts +1 -0
  50. package/out/interface/controller/controller/control/index.d.ts.map +1 -1
  51. package/out/interface/controller/controller/control/index.js +1 -0
  52. package/out/interface/controller/controller/view/i-view.controller.d.ts +8 -0
  53. package/out/interface/controller/controller/view/i-view.controller.d.ts.map +1 -1
  54. package/out/interface/controller/event/argument/index.d.ts +1 -0
  55. package/out/interface/controller/event/argument/index.d.ts.map +1 -1
  56. package/out/interface/controller/event/argument/row-edit-change.event.d.ts +20 -0
  57. package/out/interface/controller/event/argument/row-edit-change.event.d.ts.map +1 -0
  58. package/out/interface/controller/event/argument/row-edit-change.event.js +1 -0
  59. package/out/interface/controller/event/control/i-context-menu.event.d.ts +11 -0
  60. package/out/interface/controller/event/control/i-context-menu.event.d.ts.map +1 -0
  61. package/out/interface/controller/event/control/i-context-menu.event.js +1 -0
  62. package/out/interface/controller/event/control/i-grid.event.d.ts +13 -1
  63. package/out/interface/controller/event/control/i-grid.event.d.ts.map +1 -1
  64. package/out/interface/controller/event/control/i-tree.event.d.ts +19 -0
  65. package/out/interface/controller/event/control/i-tree.event.d.ts.map +1 -1
  66. package/out/interface/controller/event/control/index.d.ts +1 -0
  67. package/out/interface/controller/event/control/index.d.ts.map +1 -1
  68. package/out/interface/controller/event/control/index.js +1 -0
  69. package/out/interface/controller/event/view/i-pickup-md-view.event.d.ts +31 -0
  70. package/out/interface/controller/event/view/i-pickup-md-view.event.d.ts.map +1 -0
  71. package/out/interface/controller/event/view/i-pickup-md-view.event.js +1 -0
  72. package/out/interface/controller/event/view/index.d.ts +1 -0
  73. package/out/interface/controller/event/view/index.d.ts.map +1 -1
  74. package/out/interface/controller/event/view/index.js +1 -0
  75. package/out/interface/controller/index.d.ts +1 -0
  76. package/out/interface/controller/index.d.ts.map +1 -1
  77. package/out/interface/controller/state/control/i-context-menu.state.d.ts +11 -0
  78. package/out/interface/controller/state/control/i-context-menu.state.d.ts.map +1 -0
  79. package/out/interface/controller/state/control/i-context-menu.state.js +1 -0
  80. package/out/interface/controller/state/control/i-grid.state.d.ts +8 -0
  81. package/out/interface/controller/state/control/i-grid.state.d.ts.map +1 -1
  82. package/out/interface/controller/state/control/i-tree.state.d.ts +16 -10
  83. package/out/interface/controller/state/control/i-tree.state.d.ts.map +1 -1
  84. package/out/interface/controller/state/control/index.d.ts +1 -0
  85. package/out/interface/controller/state/control/index.d.ts.map +1 -1
  86. package/out/interface/controller/state/control/index.js +1 -0
  87. package/out/interface/controller/state/view/i-pickup-md-view.state.d.ts +22 -0
  88. package/out/interface/controller/state/view/i-pickup-md-view.state.d.ts.map +1 -0
  89. package/out/interface/controller/state/view/i-pickup-md-view.state.js +1 -0
  90. package/out/interface/controller/state/view/index.d.ts +1 -0
  91. package/out/interface/controller/state/view/index.d.ts.map +1 -1
  92. package/out/interface/controller/state/view/index.js +1 -0
  93. package/out/interface/controller/work-flow/wf-link.d.ts +9 -0
  94. package/out/interface/controller/work-flow/wf-link.d.ts.map +1 -1
  95. package/out/interface/service/service/i-auth.service.d.ts +29 -0
  96. package/out/interface/service/service/i-auth.service.d.ts.map +1 -0
  97. package/out/interface/service/service/i-auth.service.js +1 -0
  98. package/out/interface/service/service/index.d.ts +5 -4
  99. package/out/interface/service/service/index.d.ts.map +1 -1
  100. package/out/interface/service/service/index.js +1 -4
  101. package/out/interface/util/i-open-view-util/i-open-view-util.d.ts +20 -11
  102. package/out/interface/util/i-open-view-util/i-open-view-util.d.ts.map +1 -1
  103. package/out/interface/util/script/i-script-function.d.ts +8 -1
  104. package/out/interface/util/script/i-script-function.d.ts.map +1 -1
  105. package/out/logic-scheduler/executor/script-executor.d.ts +6 -6
  106. package/out/logic-scheduler/executor/script-executor.d.ts.map +1 -1
  107. package/out/logic-scheduler/executor/script-executor.js +10 -14
  108. package/out/logic-scheduler/trigger/item-dyna-logic-trigger.d.ts +1 -0
  109. package/out/logic-scheduler/trigger/item-dyna-logic-trigger.d.ts.map +1 -1
  110. package/out/logic-scheduler/trigger/item-dyna-logic-trigger.js +6 -2
  111. package/out/logic-scheduler/trigger/logic-trigger.d.ts +8 -0
  112. package/out/logic-scheduler/trigger/logic-trigger.d.ts.map +1 -1
  113. package/out/logic-scheduler/trigger/logic-trigger.js +17 -0
  114. package/out/model/layout/layout.d.ts.map +1 -1
  115. package/out/model/layout/layout.js +1 -0
  116. package/out/register/helper/editor-register.d.ts.map +1 -1
  117. package/out/register/helper/editor-register.js +12 -1
  118. package/out/service/dto/method.dto.d.ts.map +1 -1
  119. package/out/service/dto/method.dto.js +8 -0
  120. package/out/service/service/auth/v7-auth.service.d.ts +14 -0
  121. package/out/service/service/auth/v7-auth.service.d.ts.map +1 -0
  122. package/out/service/service/auth/v7-auth.service.js +47 -0
  123. package/out/service/service/index.d.ts +1 -1
  124. package/out/service/service/index.d.ts.map +1 -1
  125. package/out/service/service/index.js +1 -1
  126. package/out/service/vo/control.vo.d.ts +8 -0
  127. package/out/service/vo/control.vo.d.ts.map +1 -1
  128. package/out/service/vo/control.vo.js +16 -1
  129. package/out/service/vo/tree-node-data/tree-code-list-node-data.d.ts.map +1 -1
  130. package/out/service/vo/tree-node-data/tree-code-list-node-data.js +1 -0
  131. package/out/service/vo/tree-node-data/tree-data-set-node-data.d.ts +21 -2
  132. package/out/service/vo/tree-node-data/tree-data-set-node-data.d.ts.map +1 -1
  133. package/out/service/vo/tree-node-data/tree-data-set-node-data.js +50 -0
  134. package/out/service/vo/tree-node-data/tree-node-data.d.ts +12 -1
  135. package/out/service/vo/tree-node-data/tree-node-data.d.ts.map +1 -1
  136. package/out/service/vo/tree-node-data/tree-node-data.js +21 -2
  137. package/out/service/vo/tree-node-data/tree-static-node-data.d.ts.map +1 -1
  138. package/out/service/vo/tree-node-data/tree-static-node-data.js +1 -0
  139. package/out/types.d.ts +3 -4
  140. package/out/types.d.ts.map +1 -1
  141. package/out/utils/open-redirect-view/open-redirect-view.d.ts.map +1 -1
  142. package/out/utils/open-redirect-view/open-redirect-view.js +17 -17
  143. package/out/utils/script/script-function.d.ts +9 -0
  144. package/out/utils/script/script-function.d.ts.map +1 -1
  145. package/out/utils/script/script-function.js +79 -2
  146. package/out/utils/verify/de-rule-verify.js +1 -1
  147. package/package.json +3 -3
  148. package/src/app-hub.ts +9 -0
  149. package/src/command/app/open-app-view/open-app-view.ts +5 -5
  150. package/src/constant/sys-uiaction-tag.ts +8 -0
  151. package/src/controller/common/control/control.controller.ts +19 -9
  152. package/src/controller/common/control/md-control.controller.ts +37 -14
  153. package/src/controller/common/view/view.controller.ts +9 -3
  154. package/src/controller/hub.controller.ts +22 -0
  155. package/src/controller/index.ts +1 -0
  156. package/src/controller/utils/value-rule/value-rule.ts +1 -0
  157. package/src/engine/md-view.engine.ts +13 -4
  158. package/src/install.ts +2 -2
  159. package/src/interface/common/i-app-hub-service/i-app-hub-service.ts +10 -0
  160. package/src/interface/controller/app.ts +38 -0
  161. package/src/interface/controller/common/i-icon/i-icon.ts +8 -0
  162. package/src/interface/controller/controller/control/i-context-menu.controller.ts +19 -0
  163. package/src/interface/controller/controller/control/i-grid.controller.ts +12 -4
  164. package/src/interface/controller/controller/control/i-md-control.controller.ts +9 -1
  165. package/src/interface/controller/controller/control/i-toolbar.controller.ts +6 -3
  166. package/src/interface/controller/controller/control/i-tree.controller.ts +8 -0
  167. package/src/interface/controller/controller/control/index.ts +1 -0
  168. package/src/interface/controller/controller/view/i-view.controller.ts +9 -0
  169. package/src/interface/controller/event/argument/index.ts +1 -0
  170. package/src/interface/controller/event/argument/row-edit-change.event.ts +20 -0
  171. package/src/interface/controller/event/control/i-context-menu.event.ts +10 -0
  172. package/src/interface/controller/event/control/i-grid.event.ts +14 -1
  173. package/src/interface/controller/event/control/i-tree.event.ts +14 -0
  174. package/src/interface/controller/event/control/index.ts +1 -0
  175. package/src/interface/controller/event/view/i-pickup-md-view.event.ts +29 -0
  176. package/src/interface/controller/event/view/index.ts +1 -0
  177. package/src/interface/controller/index.ts +1 -0
  178. package/src/interface/controller/state/control/i-context-menu.state.ts +10 -0
  179. package/src/interface/controller/state/control/i-grid.state.ts +9 -0
  180. package/src/interface/controller/state/control/i-tree.state.ts +19 -9
  181. package/src/interface/controller/state/control/index.ts +1 -0
  182. package/src/interface/controller/state/view/i-pickup-md-view.state.ts +22 -0
  183. package/src/interface/controller/state/view/index.ts +1 -0
  184. package/src/interface/controller/work-flow/wf-link.ts +10 -0
  185. package/src/interface/service/service/i-auth.service.ts +29 -0
  186. package/src/interface/service/service/index.ts +5 -4
  187. package/src/interface/util/i-open-view-util/i-open-view-util.ts +21 -11
  188. package/src/interface/util/script/i-script-function.ts +9 -1
  189. package/src/logic-scheduler/executor/script-executor.ts +11 -14
  190. package/src/logic-scheduler/trigger/item-dyna-logic-trigger.ts +8 -2
  191. package/src/logic-scheduler/trigger/logic-trigger.ts +19 -0
  192. package/src/model/layout/layout.ts +1 -0
  193. package/src/register/helper/editor-register.ts +17 -1
  194. package/src/service/dto/method.dto.ts +8 -0
  195. package/src/service/service/auth/v7-auth.service.ts +49 -0
  196. package/src/service/service/index.ts +1 -1
  197. package/src/service/vo/control.vo.ts +17 -1
  198. package/src/service/vo/tree-node-data/tree-code-list-node-data.ts +2 -0
  199. package/src/service/vo/tree-node-data/tree-data-set-node-data.ts +63 -2
  200. package/src/service/vo/tree-node-data/tree-node-data.ts +27 -3
  201. package/src/service/vo/tree-node-data/tree-static-node-data.ts +2 -0
  202. package/src/types.ts +3 -3
  203. package/src/ui-action/provider/front-ui-action-provider.ts +1 -1
  204. package/src/utils/open-redirect-view/open-redirect-view.ts +20 -19
  205. package/src/utils/script/script-function.ts +81 -3
  206. package/src/utils/verify/de-rule-verify.ts +1 -0
  207. package/out/service/service/auth/auth.service.d.ts +0 -30
  208. package/out/service/service/auth/auth.service.d.ts.map +0 -1
  209. package/out/service/service/auth/auth.service.js +0 -37
  210. package/src/service/service/auth/auth.service.ts +0 -44
@@ -0,0 +1,22 @@
1
+ import { IMDViewState } from './i-md-view.state';
2
+
3
+ /**
4
+ * 选择多数据视图UI状态
5
+ *
6
+ * @author zk
7
+ * @date 2023-05-25 05:05:43
8
+ * @export
9
+ * @interface IPickupMDViewState
10
+ * @extends {IMDViewState}
11
+ */
12
+ export interface IPickupMDViewState extends IMDViewState {
13
+ /**
14
+ * 是否单选
15
+ *
16
+ * @author zk
17
+ * @date 2023-08-21 05:08:36
18
+ * @type {boolean}
19
+ * @memberof IPickupMDViewState
20
+ */
21
+ singleSelect: boolean;
22
+ }
@@ -35,3 +35,4 @@ export * from './i-de-portal-view.state';
35
35
  export * from './i-panel-view.state';
36
36
  export * from './i-calendar-view.state';
37
37
  export * from './i-calendar-exp-view.state';
38
+ export * from './i-pickup-md-view.state';
@@ -64,4 +64,14 @@ export interface WFLink {
64
64
  * @type {string}
65
65
  */
66
66
  type?: 'reassign' | 'addstepbefore' | 'sendback' | 'sendcopy' | string;
67
+
68
+ /**
69
+ * link按钮标识
70
+ *
71
+ * @author zk
72
+ * @date 2023-08-17 12:08:32
73
+ * @type {string}
74
+ * @memberof WFLink
75
+ */
76
+ id: string;
67
77
  }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * 认证服务
3
+ *
4
+ * @author chitanda
5
+ * @date 2023-08-17 16:08:08
6
+ * @export
7
+ * @interface IAuthService
8
+ */
9
+ export interface IAuthService {
10
+ /**
11
+ * 登录
12
+ *
13
+ * @author chitanda
14
+ * @date 2023-08-17 16:08:23
15
+ * @param {string} loginName
16
+ * @param {string} password
17
+ * @return {*} {Promise<boolean>}
18
+ */
19
+ login(loginName: string, password: string): Promise<boolean>;
20
+
21
+ /**
22
+ * 登出
23
+ *
24
+ * @author chitanda
25
+ * @date 2023-08-17 16:08:33
26
+ * @return {*} {Promise<boolean>}
27
+ */
28
+ logout(): Promise<boolean>;
29
+ }
@@ -1,4 +1,5 @@
1
- export * from './i-app-de-authority.service';
2
- export * from './i-app-de.service';
3
- export * from './i-file.service';
4
- export * from './i-wf.service';
1
+ export type { IAppDeAuthorityService } from './i-app-de-authority.service';
2
+ export type { IAppDEService } from './i-app-de.service';
3
+ export type { IAuthService } from './i-auth.service';
4
+ export type { IFileService } from './i-file.service';
5
+ export type { IWorkFlowService } from './i-wf.service';
@@ -1,4 +1,4 @@
1
- import { IModalData, IViewConfig } from '../../common';
1
+ import { IModalData } from '../../common';
2
2
 
3
3
  /**
4
4
  * 打开视图工具类
@@ -10,18 +10,28 @@ import { IModalData, IViewConfig } from '../../common';
10
10
  * @interface IOpenViewUtil
11
11
  */
12
12
  export interface IOpenViewUtil {
13
+ /**
14
+ * 直接路径打开视图
15
+ *
16
+ * @author chitanda
17
+ * @date 2023-08-18 11:08:33
18
+ * @param {string} path
19
+ * @return {*} {Promise<IModalData>}
20
+ */
21
+ push(path: string): Promise<IModalData>;
22
+
13
23
  /**
14
24
  * 打开顶级视图(一般为路由打开)
15
25
  *
16
26
  * @author chitanda
17
27
  * @date 2023-07-12 21:07:51
18
- * @param {IViewConfig} appView
28
+ * @param {string} appViewId
19
29
  * @param {IContext} context
20
30
  * @param {IParams} [params]
21
31
  * @return {*} {Promise<IModalData>}
22
32
  */
23
33
  root(
24
- appView: IViewConfig,
34
+ appViewId: string,
25
35
  context: IContext,
26
36
  params?: IParams,
27
37
  ): Promise<IModalData>;
@@ -31,13 +41,13 @@ export interface IOpenViewUtil {
31
41
  *
32
42
  * @author chitanda
33
43
  * @date 2022-08-16 20:08:41
34
- * @param {IViewConfig} appView
44
+ * @param {string} appViewId
35
45
  * @param {IContext} [context]
36
46
  * @param {IParams} [params]
37
47
  * @return {*} {Promise<IModalData>}
38
48
  */
39
49
  modal(
40
- appView: IViewConfig,
50
+ appViewId: string,
41
51
  context: IContext,
42
52
  params?: IParams,
43
53
  ): Promise<IModalData>;
@@ -47,13 +57,13 @@ export interface IOpenViewUtil {
47
57
  *
48
58
  * @author chitanda
49
59
  * @date 2022-08-16 20:08:22
50
- * @param {IViewConfig} appView
60
+ * @param {string} appViewId
51
61
  * @param {IContext} [context]
52
62
  * @param {IParams} [params]
53
63
  * @return {*} {Promise<IModalData>}
54
64
  */
55
65
  popover(
56
- appView: IViewConfig,
66
+ appViewId: string,
57
67
  event: MouseEvent,
58
68
  context: IContext,
59
69
  params?: IParams,
@@ -64,13 +74,13 @@ export interface IOpenViewUtil {
64
74
  *
65
75
  * @author chitanda
66
76
  * @date 2022-08-16 20:08:46
67
- * @param {IViewConfig} appView
77
+ * @param {string} appViewId
68
78
  * @param {IContext} [context]
69
79
  * @param {IParams} [params]
70
80
  * @return {*} {Promise<IModalData>}
71
81
  */
72
82
  drawer(
73
- appView: IViewConfig,
83
+ appViewId: string,
74
84
  context: IContext,
75
85
  params?: IParams,
76
86
  ): Promise<IModalData>;
@@ -80,13 +90,13 @@ export interface IOpenViewUtil {
80
90
  *
81
91
  * @author chitanda
82
92
  * @date 2022-08-16 20:08:29
83
- * @param {IViewConfig} appView
93
+ * @param {string} appViewId
84
94
  * @param {IContext} [context]
85
95
  * @param {IParams} [params]
86
96
  * @return {*} {Promise<IModalData>}
87
97
  */
88
98
  custom(
89
- appView: IViewConfig,
99
+ appViewId: string,
90
100
  context: IContext,
91
101
  params?: IParams,
92
102
  ): Promise<IModalData>;
@@ -12,7 +12,7 @@ export interface IScriptFunctionOpts {
12
12
  * @date 2023-07-25 10:46:18
13
13
  * @type {boolean}
14
14
  */
15
- singleRowReturn: boolean;
15
+ singleRowReturn?: boolean;
16
16
 
17
17
  /**
18
18
  * 预置参数
@@ -21,4 +21,12 @@ export interface IScriptFunctionOpts {
21
21
  * @type {IParams}
22
22
  */
23
23
  presetParams?: IParams;
24
+
25
+ /**
26
+ * 是否是异步函数脚本
27
+ * @author lxm
28
+ * @date 2023-08-21 03:15:43
29
+ * @type {boolean}
30
+ */
31
+ isAsync?: boolean;
24
32
  }
@@ -1,5 +1,4 @@
1
- import { RuntimeError } from '@ibiz-template/core';
2
- import { IUILogicParams } from '../../interface';
1
+ import { IScriptFunctionOpts, IUILogicParams } from '../../interface';
3
2
  import { ScriptFactory, ScriptFunction } from '../../utils';
4
3
  import { LogicExecutor } from './logic-executor';
5
4
 
@@ -18,12 +17,12 @@ export class ScriptExecutor extends LogicExecutor {
18
17
  scriptFn?: ScriptFunction;
19
18
 
20
19
  /**
21
- * 是否单行返回,脚本只是单行的且默认把值返回
20
+ * 初始化完成
22
21
  * @author lxm
23
- * @date 2023-06-25 10:06:32
22
+ * @date 2023-08-21 04:27:38
24
23
  * @type {boolean}
25
24
  */
26
- isRowReturn: boolean = false;
25
+ initialized: boolean = false;
27
26
 
28
27
  /**
29
28
  * 执行参数转换成脚本执行作用域参数
@@ -32,8 +31,9 @@ export class ScriptExecutor extends LogicExecutor {
32
31
  * @param {IUILogicParams} _executeParams
33
32
  * @return {*} {IData[]}
34
33
  */
35
- convertScriptArgs(_executeParams: IUILogicParams): IData {
36
- throw new RuntimeError('未设置脚本执行参数转换方法');
34
+ convertScriptArgs(executeParams: IUILogicParams): IData {
35
+ // 默认不特殊处理的不转换
36
+ return executeParams;
37
37
  }
38
38
 
39
39
  /**
@@ -46,16 +46,13 @@ export class ScriptExecutor extends LogicExecutor {
46
46
  init(
47
47
  paramKeys: string[],
48
48
  convertFun: (executeParams: IUILogicParams) => IData,
49
+ options?: IScriptFunctionOpts,
49
50
  ): void {
50
51
  this.convertScriptArgs = convertFun;
51
- let code = this.logic.scriptCode!;
52
- if (this.isRowReturn) {
53
- code = `return (${code})`;
54
- }
52
+ const code = this.logic.scriptCode!;
55
53
  // eslint-disable-next-line no-new-func
56
- this.scriptFn = ScriptFactory.createScriptFn(paramKeys, code, {
57
- singleRowReturn: this.isRowReturn,
58
- });
54
+ this.scriptFn = ScriptFactory.createScriptFn(paramKeys, code, options);
55
+ this.initialized = true;
59
56
  }
60
57
 
61
58
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -16,8 +16,10 @@ export class ItemDynaLogicTrigger extends LogicTrigger {
16
16
  `预定义逻辑类型${this.type}的触发器类型只能是脚本`,
17
17
  );
18
18
  }
19
- this.executor.isRowReturn = true;
20
- this.executor.init(
19
+ }
20
+
21
+ bindScriptExecutor(executor: ScriptExecutor): void {
22
+ executor.init(
21
23
  ['context', 'viewparams', 'data', 'env'],
22
24
  executeParams => {
23
25
  const { context, params, data } = executeParams;
@@ -28,6 +30,10 @@ export class ItemDynaLogicTrigger extends LogicTrigger {
28
30
  env: ibiz.env,
29
31
  };
30
32
  },
33
+ {
34
+ singleRowReturn: true,
35
+ isAsync: false,
36
+ },
31
37
  );
32
38
  }
33
39
 
@@ -6,6 +6,7 @@ import type {
6
6
  TriggerType,
7
7
  } from '../../interface';
8
8
  import { LogicExecutor } from '../executor/logic-executor';
9
+ import { ScriptExecutor } from '../executor/script-executor';
9
10
  import { LogicScheduler } from '../scheduler/logic-scheduler';
10
11
 
11
12
  /**
@@ -51,6 +52,24 @@ export class LogicTrigger {
51
52
  */
52
53
  bindExecutor(executor: LogicExecutor): void {
53
54
  this.executor = executor;
55
+ if (this.executor.type === 'SCRIPT') {
56
+ this.bindScriptExecutor(executor as ScriptExecutor);
57
+ }
58
+ }
59
+
60
+ /**
61
+ * 绑定脚本执行器
62
+ * @author lxm
63
+ * @date 2023-08-21 04:33:35
64
+ * @param {ScriptExecutor} executor
65
+ */
66
+ bindScriptExecutor(executor: ScriptExecutor): void {
67
+ if (!executor.initialized) {
68
+ executor.init([], executeParams => executeParams, {
69
+ isAsync: true,
70
+ singleRowReturn: false,
71
+ });
72
+ }
54
73
  }
55
74
 
56
75
  /**
@@ -145,5 +145,6 @@ export function calcGridLayoutPos(
145
145
  export function calcDynaClass(expression: string, data: IData): string[] {
146
146
  return ScriptFactory.execScriptFn({ data }, expression, {
147
147
  singleRowReturn: true,
148
+ isAsync: false,
148
149
  }) as string[];
149
150
  }
@@ -37,7 +37,8 @@ export async function getEditorProvider(
37
37
  model: IEditor,
38
38
  ): Promise<IEditorProvider | undefined> {
39
39
  let provider: IEditorProvider | undefined;
40
- const { editorType, editorStyle } = model as Required<IEditor>;
40
+ const { editorType, editorStyle, predefinedType } =
41
+ model as Required<IEditor>;
41
42
 
42
43
  // 再找编辑器类型和编辑器样式
43
44
  if (editorStyle && editorStyle !== 'DEFAULT') {
@@ -51,6 +52,21 @@ export async function getEditorProvider(
51
52
  }
52
53
  }
53
54
 
55
+ // 编辑器预置类型
56
+ if (predefinedType) {
57
+ let key = `${predefinedType}_${editorType}`;
58
+ if (editorStyle && editorStyle !== 'DEFAULT') {
59
+ key += `_${editorStyle}`;
60
+ }
61
+ provider = getProvider(key);
62
+ if (!provider) {
63
+ ibiz.log.error(
64
+ `找不到编辑器类型:[${editorType}]的预置类型:[${predefinedType}]对应的适配器`,
65
+ model,
66
+ );
67
+ }
68
+ }
69
+
54
70
  // 找编辑器类型
55
71
  if (!provider) {
56
72
  provider = getProvider(editorType);
@@ -60,6 +60,10 @@ export class MethodDto {
60
60
  break;
61
61
  }
62
62
  case 'DTOS': {
63
+ // 没有实体id的不处理
64
+ if (!field.refAppDataEntityId) {
65
+ break;
66
+ }
63
67
  const dto = await this.getFieldDto(field);
64
68
  const service = await this.app!.deService.getService(
65
69
  field.refAppDataEntityId!,
@@ -102,6 +106,10 @@ export class MethodDto {
102
106
  const all = this.fields
103
107
  .filter(field => field.type === 'DTOS')
104
108
  .map(async field => {
109
+ // 没有实体id的不处理
110
+ if (!field.refAppDataEntityId) {
111
+ return;
112
+ }
105
113
  const key = field.codeName!.toLowerCase();
106
114
  const dto = await this.getFieldDto(field);
107
115
  const items: IData[] = datum[key];
@@ -0,0 +1,49 @@
1
+ import { CoreConst, HttpError } from '@ibiz-template/core';
2
+ import { clearCookie, setCookie } from 'qx-util';
3
+ import { IAuthService } from '../../../interface';
4
+
5
+ /**
6
+ * 认证服务
7
+ *
8
+ * @author chitanda
9
+ * @date 2022-07-19 18:07:51
10
+ * @export
11
+ * @class AuthService
12
+ */
13
+ export class V7AuthService implements IAuthService {
14
+ async login(loginname: string, password: string): Promise<boolean> {
15
+ // eslint-disable-next-line no-useless-catch
16
+ try {
17
+ const res = await ibiz.net.post('/v7/login', { loginname, password });
18
+ const { data } = res;
19
+ if (data && data.token) {
20
+ setCookie(CoreConst.TOKEN, data.token, 0, true);
21
+ const expiredDate =
22
+ new Date().getTime() + (data.expirein || 7199) * 1000;
23
+ setCookie(CoreConst.TOKEN_EXPIRES, `${expiredDate}`, 0, true);
24
+ }
25
+ return true;
26
+ } catch (err: unknown) {
27
+ ibiz.notification.error({
28
+ title: '登录失败',
29
+ desc: (err as HttpError).message || '',
30
+ });
31
+ }
32
+ return false;
33
+ }
34
+
35
+ async logout(): Promise<boolean> {
36
+ try {
37
+ await ibiz.net.get('/v7/logout');
38
+ clearCookie(CoreConst.TOKEN);
39
+ clearCookie(CoreConst.TOKEN_EXPIRES);
40
+ return true;
41
+ } catch (err: unknown) {
42
+ ibiz.notification.error({
43
+ title: '登出失败',
44
+ desc: (err as HttpError).message || '',
45
+ });
46
+ }
47
+ return false;
48
+ }
49
+ }
@@ -4,4 +4,4 @@ export { DEService } from './entity/de.service';
4
4
  export { WorkFlowService } from './work-flow/work-flow.service';
5
5
  export * from './control';
6
6
  export * from './authority';
7
- export { AuthService } from './auth/auth.service';
7
+ export { V7AuthService } from './auth/v7-auth.service';
@@ -1,4 +1,4 @@
1
- import { isNil } from 'ramda';
1
+ import { clone, isNil } from 'ramda';
2
2
  import { Srfuf } from '../constant';
3
3
  import { UIMapField } from './ui-map-field';
4
4
 
@@ -220,4 +220,20 @@ export class ControlVO {
220
220
  setOrigin(data: IData | ControlVO): void {
221
221
  this.$origin = data instanceof ControlVO ? data.getOrigin() : data;
222
222
  }
223
+
224
+ /**
225
+ * 克隆新的vo数据
226
+ *
227
+ * @author lxm
228
+ * @date 2023-08-16 11:08:29
229
+ * @return {*} {ControlVO}
230
+ */
231
+ clone(): ControlVO {
232
+ const cloneOrigin = clone(this.$origin);
233
+ const newVal = new ControlVO(cloneOrigin, this.$dataUIMap);
234
+ Object.keys(this).forEach(key => {
235
+ newVal[key] = this[key];
236
+ });
237
+ return newVal;
238
+ }
223
239
  }
@@ -54,5 +54,7 @@ export class TreeCodeListNodeData
54
54
 
55
55
  this.srfkey = this.value;
56
56
  this.srfmajortext = this.text;
57
+
58
+ this.icon = this.calcIcon(model);
57
59
  }
58
60
  }
@@ -1,6 +1,7 @@
1
- import { IDETreeDataSetNode } from '@ibiz/model-core';
2
- import { ITreeNodeData } from '../../../interface';
1
+ import { IDETreeDataSetNode, IDETreeNodeDataItem } from '@ibiz/model-core';
2
+ import { IIcon, ITreeNodeData } from '../../../interface';
3
3
  import { calcDeCodeNameById } from '../../../model';
4
+ import { ScriptFactory } from '../../../utils';
4
5
  import { TreeNodeData } from './tree-node-data';
5
6
 
6
7
  /**
@@ -51,5 +52,65 @@ export class TreeDataSetNodeData extends TreeNodeData implements ITreeNodeData {
51
52
 
52
53
  this.srfkey = this.deData.srfkey;
53
54
  this.srfmajortext = this.deData.srfmajortext;
55
+
56
+ this.icon = this.calcIcon(model);
57
+ this.textHtml = this.calcTextHtml(model);
58
+ }
59
+
60
+ protected calcIcon(model: IDETreeDataSetNode): IIcon | undefined {
61
+ const icon = super.calcIcon(model) || {};
62
+ const { iconAppDEFieldId, detreeNodeDataItems } = model;
63
+ if (iconAppDEFieldId && this.deData[iconAppDEFieldId]) {
64
+ icon.imagePath = this.deData[iconAppDEFieldId];
65
+ }
66
+
67
+ if (icon) {
68
+ this.icon = icon;
69
+ }
70
+ const iconDataItem = detreeNodeDataItems?.find(item => item.id === 'icon');
71
+ if (iconDataItem) {
72
+ icon.htmlStr = this.calcDataItemScript(iconDataItem);
73
+ }
74
+ return Object.values(icon).length > 0 ? icon : undefined;
75
+ }
76
+
77
+ /**
78
+ * 计算节点数据项的自定义脚本内容
79
+ * @author lxm
80
+ * @date 2023-08-15 02:37:29
81
+ * @protected
82
+ * @param {IDETreeNodeDataItem} dataItem
83
+ * @return {*} {(string | undefined)}
84
+ */
85
+ protected calcDataItemScript(
86
+ dataItem: IDETreeNodeDataItem,
87
+ ): string | undefined {
88
+ if (dataItem.customCode && dataItem.scriptCode) {
89
+ return ScriptFactory.execScriptFn(
90
+ { data: this.deData },
91
+ dataItem.scriptCode,
92
+ {
93
+ isAsync: false,
94
+ },
95
+ ) as string;
96
+ }
97
+ }
98
+
99
+ /**
100
+ * 计算节点文本html内容
101
+ * @author lxm
102
+ * @date 2023-08-15 02:41:31
103
+ * @protected
104
+ * @param {IDETreeDataSetNode} model
105
+ * @return {*} {(string | undefined)}
106
+ */
107
+ protected calcTextHtml(model: IDETreeDataSetNode): string | undefined {
108
+ let html: string | undefined;
109
+ const { detreeNodeDataItems } = model;
110
+ const textDataItem = detreeNodeDataItems?.find(item => item.id === 'text');
111
+ if (textDataItem) {
112
+ html = this.calcDataItemScript(textDataItem);
113
+ }
114
+ return html;
54
115
  }
55
116
  }
@@ -1,5 +1,5 @@
1
1
  import { IDETreeNode } from '@ibiz/model-core';
2
- import { ITreeNodeData } from '../../../interface';
2
+ import { IIcon, ITreeNodeData } from '../../../interface';
3
3
 
4
4
  /**
5
5
  * 树节点数据基类
@@ -33,6 +33,10 @@ export abstract class TreeNodeData implements ITreeNodeData {
33
33
 
34
34
  parent?: ITreeNodeData;
35
35
 
36
+ icon?: IIcon;
37
+
38
+ textHtml?: string;
39
+
36
40
  constructor(
37
41
  model: IDETreeNode,
38
42
  parentNodeData: ITreeNodeData | undefined,
@@ -56,7 +60,27 @@ export abstract class TreeNodeData implements ITreeNodeData {
56
60
  }
57
61
 
58
62
  this.nodeId = model.id!;
59
- // todo 是否有自己点跟是否搜索有关
60
- // this.leaf = model.tree.getChildNodes(model.id, opts.hasQuery).length === 0;
63
+ }
64
+
65
+ /**
66
+ * 计算节点图标
67
+ * @author lxm
68
+ * @date 2023-08-15 02:24:55
69
+ * @protected
70
+ * @param {IDETreeNode} model
71
+ * @return {*} {(IIcon | undefined)}
72
+ */
73
+ protected calcIcon(model: IDETreeNode): IIcon | undefined {
74
+ const { sysImage } = model;
75
+ const icon: IIcon = {};
76
+ if (sysImage) {
77
+ if (sysImage.cssClass) {
78
+ icon.cssClass = sysImage.cssClass;
79
+ }
80
+ if (sysImage.imagePath) {
81
+ icon.imagePath = sysImage.imagePath;
82
+ }
83
+ }
84
+ return Object.values(icon).length > 0 ? icon : undefined;
61
85
  }
62
86
  }
@@ -50,5 +50,7 @@ export class TreeStaticNodeData extends TreeNodeData implements ITreeNodeData {
50
50
 
51
51
  this.srfkey = this.deData?.srfkey || this.value;
52
52
  this.srfmajortext = this.deData?.srfmajortext || this.text;
53
+
54
+ this.icon = this.calcIcon(model);
53
55
  }
54
56
  }
package/src/types.ts CHANGED
@@ -12,10 +12,10 @@ import {
12
12
  IOverlayController,
13
13
  IGlobalConfig,
14
14
  IAppHubService,
15
+ IAuthService,
15
16
  } from './interface';
16
17
  import { LogicSchedulerCenter } from './logic-scheduler';
17
18
  import { RegisterCenter } from './register/register-center';
18
- import { AuthService } from './service';
19
19
 
20
20
  declare module '@ibiz-template/core' {
21
21
  interface IBizSys {
@@ -128,9 +128,9 @@ declare module '@ibiz-template/core' {
128
128
  *
129
129
  * @author chitanda
130
130
  * @date 2022-07-20 10:07:33
131
- * @type {AuthService}
131
+ * @type {IAuthService}
132
132
  */
133
- auth: AuthService;
133
+ auth: IAuthService;
134
134
 
135
135
  /**
136
136
  * 引擎工厂
@@ -93,7 +93,7 @@ export class FrontUIActionProvider extends UIActionProviderBase {
93
93
  const result = ScriptFactory.execScriptFn(
94
94
  { context, params, data, el: event?.target },
95
95
  scriptCode,
96
- );
96
+ ) as IUIActionResult | undefined;
97
97
  return result || {};
98
98
  }
99
99
  throw new RuntimeModelError(action, '自定义类型缺少配置脚本代码');