@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
@@ -60,16 +60,25 @@ export class MDControlController<
60
60
  this.state.groups = [];
61
61
  }
62
62
 
63
+ protected async onCreated(): Promise<void> {
64
+ await super.onCreated();
65
+ // 设置默认排序
66
+ this.setSort();
67
+ }
68
+
63
69
  /**
64
70
  * 设置排序
71
+ * 无参数时设置的是默认排序。
65
72
  *
66
73
  * @author lxm
67
74
  * @date 2022-09-28 13:09:44
68
75
  * @param {string} key 排序字段
69
76
  * @param {string} order 排序顺序
70
77
  */
71
- setSort(key: string, order: 'asc' | 'desc'): void {
72
- this.state.sortQuery = `${key},${order}`;
78
+ setSort(key?: string, order?: 'asc' | 'desc'): void {
79
+ if (key && order) {
80
+ this.state.sortQuery = `${key},${order}`;
81
+ }
73
82
  }
74
83
 
75
84
  /**
@@ -189,14 +198,20 @@ export class MDControlController<
189
198
  if (!data?.length) {
190
199
  throw new RuntimeError('未选中数据');
191
200
  }
192
- const del = await ibiz.confirm.error({
193
- title: '数据删除',
194
- desc: '确认删除数据?',
195
- });
196
- if (!del) {
197
- return;
201
+
202
+ // 删除确认提示
203
+ if (args?.silent !== true) {
204
+ const del = await ibiz.confirm.error({
205
+ title: '数据删除',
206
+ desc: '确认删除数据?',
207
+ });
208
+ if (!del) {
209
+ return;
210
+ }
198
211
  }
212
+
199
213
  await this.startLoading();
214
+ let needRefresh = false;
200
215
  try {
201
216
  const deName = calcDeCodeNameById(this.model.appDataEntityId!);
202
217
  await Promise.allSettled(
@@ -207,17 +222,25 @@ export class MDControlController<
207
222
  tempContext[deName] = item.srfkey;
208
223
  // 删除后台的数据
209
224
  await this.service.remove(tempContext, params);
225
+ needRefresh = true;
210
226
  }
211
227
 
212
228
  this.afterRemove(data);
213
229
  }),
214
230
  );
215
- ibiz.notification.success({
216
- desc: `数据[${data
217
- .map(item => item.srfmajortext)
218
- .join('、')}]删除成功!`,
219
- });
220
- this.refresh();
231
+
232
+ if (args?.silent !== true) {
233
+ ibiz.notification.success({
234
+ desc: `数据[${data
235
+ .map(item => item.srfmajortext)
236
+ .join('、')}]删除成功!`,
237
+ });
238
+ }
239
+
240
+ // 刷新数据,补全这一页缺少的数据
241
+ if (needRefresh) {
242
+ this.refresh();
243
+ }
221
244
  } finally {
222
245
  await this.endLoading();
223
246
  }
@@ -2,6 +2,7 @@
2
2
  import { createUUID, notNilEmpty } from 'qx-util';
3
3
  import { IBizContext, RuntimeError } from '@ibiz-template/core';
4
4
  import { IAppView } from '@ibiz/model-core';
5
+ import { isEmpty, isNil } from 'ramda';
5
6
  import { LoadingState } from '../../utils/loading/loading.state';
6
7
  import {
7
8
  IViewController,
@@ -14,7 +15,7 @@ import {
14
15
  IUILogicParams,
15
16
  IViewEngine,
16
17
  } from '../../../interface';
17
- import { SysUIActionTag, ViewMode } from '../../../constant';
18
+ import { SysUIActionTag } from '../../../constant';
18
19
  import { convertNavData, Modal } from '../../../utils';
19
20
  import { CTX } from '../../ctx';
20
21
  import { ControllerEvent } from '../../utils';
@@ -45,6 +46,8 @@ export class ViewController<
45
46
  extends BaseController<T, S, E>
46
47
  implements IViewController<T, S, E>
47
48
  {
49
+ session: IData = {};
50
+
48
51
  modal: IModal = new Modal({});
49
52
 
50
53
  protected get _evt(): ControllerEvent<IViewEvent> {
@@ -302,8 +305,11 @@ export class ViewController<
302
305
  handleContextParams(): void {
303
306
  this.context.srfappid = this.model.appId!;
304
307
 
305
- // 路由打开的设置srfsessionid
306
- if (this.modal.mode === ViewMode.ROUTE) {
308
+ // 只要上下文中无 srfsessionid 则生成一个
309
+ if (
310
+ isNil(this.context.srfsessionid) ||
311
+ isEmpty(this.context.srfsessionid)
312
+ ) {
307
313
  this.context.srfsessionid = createUUID();
308
314
  }
309
315
 
@@ -0,0 +1,22 @@
1
+ import { IHubController } from '../interface';
2
+
3
+ /**
4
+ * 应用级功能
5
+ *
6
+ * @author chitanda
7
+ * @date 2023-08-21 14:08:51
8
+ * @export
9
+ * @class AppController
10
+ * @implements {IHubController}
11
+ */
12
+ export class HubController implements IHubController {
13
+ session: IData = {};
14
+
15
+ login(loginName: string, password: string): Promise<boolean> {
16
+ return ibiz.auth.login(loginName, password);
17
+ }
18
+
19
+ logout(): Promise<boolean> {
20
+ return ibiz.auth.logout();
21
+ }
22
+ }
@@ -2,3 +2,4 @@ export * from './constant';
2
2
  export * from './common';
3
3
  export * from './ctx';
4
4
  export * from './utils';
5
+ export { HubController } from './hub.controller';
@@ -51,6 +51,7 @@ export function generateRules(
51
51
  ScriptFactory.execScriptFn(
52
52
  { rule, value, callback, source },
53
53
  sysRule.scriptCode!,
54
+ { isAsync: false },
54
55
  );
55
56
  } catch (error) {
56
57
  console.error(error);
@@ -142,11 +142,11 @@ export class MDViewEngine extends ViewEngineBase {
142
142
  return null;
143
143
  }
144
144
  if (key === SysUIActionTag.EDIT || key === SysUIActionTag.VIEW) {
145
- this.openData(args!);
145
+ await this.openData(args!);
146
146
  return null;
147
147
  }
148
148
  if (key === SysUIActionTag.NEW) {
149
- this.newData(args!);
149
+ await this.newData(args!);
150
150
  return null;
151
151
  }
152
152
  if (key === SysUIActionTag.REMOVE) {
@@ -300,10 +300,19 @@ export class MDViewEngine extends ViewEngineBase {
300
300
  // 有搜索表单的整合相关参数
301
301
  if (this.searchForm) {
302
302
  const addParams = this.searchForm.getData()[0];
303
- Object.assign(params, addParams);
303
+ const filteredParams = Object.entries(addParams).reduce(
304
+ (result: IData, [key, value]) => {
305
+ if (value !== null && value !== undefined && value !== '') {
306
+ result[key] = value;
307
+ }
308
+ return result;
309
+ },
310
+ {},
311
+ );
312
+ Object.assign(params, filteredParams);
304
313
  }
305
314
  // 有搜索栏的整合相关参数
306
- if (this.searchBar) {
315
+ if (this.searchBar && this.searchBar.state.query) {
307
316
  const addParams = {
308
317
  query: this.searchBar.state.query,
309
318
  };
package/src/install.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { GlobalConfig } from './config/global-config';
2
2
  import { RegisterCenter } from './register/register-center';
3
3
  import { installCommand } from './command';
4
- import { AuthService } from './service';
4
+ import { V7AuthService } from './service';
5
5
  import { AppHub } from './app-hub';
6
6
  import { EngineFactory } from './engine';
7
7
  import { GlobalUtil } from './global';
@@ -26,7 +26,7 @@ export function install(): void {
26
26
  // 初始化全局配置
27
27
  ibiz.config = new GlobalConfig();
28
28
  // 挂载认证服务
29
- ibiz.auth = new AuthService();
29
+ ibiz.auth = new V7AuthService();
30
30
  // 挂载引擎工厂
31
31
  ibiz.engine = new EngineFactory();
32
32
  // 安装默认指令
@@ -3,6 +3,7 @@ import { Application } from '../../../application';
3
3
  import { Convert } from '../../../hub';
4
4
  import { ModelLoaderProvider } from '../../provider';
5
5
  import { IAppConfigService } from '../i-app-config-service/i-app-config-service';
6
+ import { IHubController } from '../../controller';
6
7
 
7
8
  /**
8
9
  * 应用 hub 服务
@@ -22,6 +23,15 @@ export interface IAppHubService {
22
23
  */
23
24
  readonly convert: Convert;
24
25
 
26
+ /**
27
+ * 全局控制器,放置全局性的功能性方法
28
+ *
29
+ * @author chitanda
30
+ * @date 2023-08-21 15:08:00
31
+ * @type {IHubController}
32
+ */
33
+ readonly controller: IHubController;
34
+
25
35
  /**
26
36
  * 默认应用首页视图
27
37
  *
@@ -0,0 +1,38 @@
1
+ /**
2
+ * 应用控制器
3
+ *
4
+ * @author chitanda
5
+ * @date 2023-08-21 14:08:41
6
+ * @export
7
+ * @interface IHubController
8
+ */
9
+ export interface IHubController {
10
+ /**
11
+ * 全局共享数据对象
12
+ *
13
+ * @author chitanda
14
+ * @date 2023-08-21 14:08:01
15
+ * @type {IData}
16
+ */
17
+ session: IData;
18
+
19
+ /**
20
+ * 登录
21
+ *
22
+ * @author chitanda
23
+ * @date 2023-08-17 16:08:23
24
+ * @param {string} loginName
25
+ * @param {string} password
26
+ * @return {*} {Promise<boolean>}
27
+ */
28
+ login(loginName: string, password: string): Promise<boolean>;
29
+
30
+ /**
31
+ * 登出
32
+ *
33
+ * @author chitanda
34
+ * @date 2023-08-17 16:08:33
35
+ * @return {*} {Promise<boolean>}
36
+ */
37
+ logout(): Promise<boolean>;
38
+ }
@@ -21,4 +21,12 @@ export interface IIcon {
21
21
  * @type {string}
22
22
  */
23
23
  imagePath?: string;
24
+
25
+ /**
26
+ * html字符串
27
+ * @author lxm
28
+ * @date 2023-08-15 02:14:26
29
+ * @type {string}
30
+ */
31
+ htmlStr?: string;
24
32
  }
@@ -0,0 +1,19 @@
1
+ import { IDEContextMenu } from '@ibiz/model-core';
2
+ import { IContextMenuEvent } from '../../event';
3
+ import { IContextMenuState } from '../../state';
4
+ import { IToolbarController } from './i-toolbar.controller';
5
+
6
+ /**
7
+ * 上下文菜单接口
8
+ * @author lxm
9
+ * @date 2023-08-21 10:43:51
10
+ * @export
11
+ * @interface IContextMenuController
12
+ * @extends {IToolbarController<IDEContextMenu, IContextMenuState, IContextMenuEvent>}
13
+ */
14
+ export interface IContextMenuController
15
+ extends IToolbarController<
16
+ IDEContextMenu,
17
+ IContextMenuState,
18
+ IContextMenuEvent
19
+ > {}
@@ -24,7 +24,7 @@ export interface IGridController
24
24
  newRow(): Promise<void>;
25
25
 
26
26
  /**
27
- * 保存
27
+ * 保存单条数据
28
28
  *
29
29
  * @author zk
30
30
  * @date 2023-07-31 02:07:52
@@ -33,13 +33,21 @@ export interface IGridController
33
33
  save(data: ControlVO): Promise<void>;
34
34
 
35
35
  /**
36
- * 切换行编辑状态
36
+ * 保存表格所有数据
37
37
  *
38
38
  * @author zk
39
- * @date 2023-07-31 02:07:26
39
+ * @date 2023-07-31 02:07:52
40
40
  * @memberof IGridController
41
41
  */
42
- toggleRowEdit(row?: IData): void;
42
+ saveAll(): Promise<void>;
43
+
44
+ /**
45
+ * 切换表格的行编辑开启关闭状态
46
+ * @author lxm
47
+ * @date 2023-08-16 10:18:14
48
+ * @param {IData} [rowData] 行数据
49
+ */
50
+ toggleRowEdit(): void;
43
51
 
44
52
  /**
45
53
  * 数据导出
@@ -20,7 +20,15 @@ export interface MDCtrlLoadParams extends IDataAbilityParams {
20
20
  isLoadMore?: boolean;
21
21
  }
22
22
 
23
- export interface MDCtrlRemoveParams extends IDataAbilityParams {}
23
+ export interface MDCtrlRemoveParams extends IDataAbilityParams {
24
+ /**
25
+ * 是否静默删除
26
+ * @author lxm
27
+ * @date 2023-08-17 06:04:23
28
+ * @type {boolean}
29
+ */
30
+ silent?: boolean;
31
+ }
24
32
 
25
33
  /**
26
34
  * 多数据部件控制器
@@ -11,8 +11,11 @@ import { IControlController } from './i-control.controller';
11
11
  * @interface IToolbarController
12
12
  * @extends {IControlController}
13
13
  */
14
- export interface IToolbarController
15
- extends IControlController<IDEToolbar, IToolbarState, IToolbarEvent> {
14
+ export interface IToolbarController<
15
+ T extends IDEToolbar = IDEToolbar,
16
+ S extends IToolbarState = IToolbarState,
17
+ E extends IToolbarEvent = IToolbarEvent,
18
+ > extends IControlController<T, S, E> {
16
19
  /**
17
20
  * 根据数据计算工具栏权限和状态
18
21
  * @author lxm
@@ -20,7 +23,7 @@ export interface IToolbarController
20
23
  * @param {IData} [data] 实体数据
21
24
  * @param {string} [appDeId] 实体标识
22
25
  */
23
- calcButtonState(data?: IData, appDeId?: string): void;
26
+ calcButtonState(data?: IData, appDeId?: string): Promise<void>;
24
27
 
25
28
  /**
26
29
  * 设置额外的按钮(可多次调用会累加)
@@ -44,4 +44,12 @@ export interface ITreeController
44
44
  nodeData: ITreeNodeData,
45
45
  event: MouseEvent,
46
46
  ): Promise<void>;
47
+
48
+ /**
49
+ * 刷新父节点数据
50
+ * @author lxm
51
+ * @date 2023-08-18 01:49:59
52
+ * @param {ITreeNodeData} parentNode
53
+ */
54
+ refreshParent(parentData: ITreeNodeData | IData): void;
47
55
  }
@@ -29,3 +29,4 @@ export * from './i-dashboard.controller';
29
29
  export * from './portlet/index';
30
30
  export * from './i-calendar.controller';
31
31
  export * from './i-calendar-exp-bar.controller';
32
+ export * from './i-context-menu.controller';
@@ -29,6 +29,15 @@ export interface IViewController<
29
29
  > extends IController<T, S, E> {
30
30
  evt: ControllerEvent<E>;
31
31
 
32
+ /**
33
+ * 视图级共享数据对象
34
+ *
35
+ * @author chitanda
36
+ * @date 2023-08-21 15:08:52
37
+ * @type {IData}
38
+ */
39
+ session: IData;
40
+
32
41
  /**
33
42
  * 视图呈现模式
34
43
  * @author lxm
@@ -6,3 +6,4 @@ export { CloseViewEvent } from './close-view.event';
6
6
  export { UIActionEvent } from './uiaction.event';
7
7
  export { ControlTriggerEvent } from './control-trigger.event';
8
8
  export { NavViewChangeEvent } from './nav-view-change.event';
9
+ export { RowEditChangeEvent } from './row-edit-change.event';
@@ -0,0 +1,20 @@
1
+ import { IGridRowState } from '../../state';
2
+ import { EventBase } from './base.event';
3
+
4
+ /**
5
+ * 行编辑切换事件
6
+ * @author lxm
7
+ * @date 2023-03-26 02:07:11
8
+ * @export
9
+ * @interface RowEditChangeEvent
10
+ * @extends {EventBase}
11
+ */
12
+ export interface RowEditChangeEvent extends EventBase {
13
+ /**
14
+ * 行状态对象
15
+ * @author lxm
16
+ * @date 2023-08-17 06:58:15
17
+ * @type {IGridRowState}
18
+ */
19
+ row: IGridRowState;
20
+ }
@@ -0,0 +1,10 @@
1
+ import { IToolbarEvent } from './i-toolbar.event';
2
+
3
+ /**
4
+ * 上下文菜单事件
5
+ *
6
+ * @export
7
+ * @interface IContextMenuEvent
8
+ * @extends {IToolbarEvent}
9
+ */
10
+ export interface IContextMenuEvent extends IToolbarEvent {}
@@ -1,4 +1,5 @@
1
- import { EventBase } from '../..';
1
+ import { PartialWithObject } from '@ibiz-template/core';
2
+ import { EventBase, RowEditChangeEvent } from '../..';
2
3
  import { IMDControlEvent } from './i-md-control.event';
3
4
 
4
5
  /**
@@ -21,4 +22,16 @@ export interface IGridEvent extends IMDControlEvent {
21
22
  event: EventBase;
22
23
  emitArgs: { data: IData[] };
23
24
  };
25
+
26
+ /**
27
+ * 表格行编辑切换事件
28
+ * @author lxm
29
+ * @date 2023-03-26 06:15:06
30
+ * @param {emitArgs} undefined
31
+ * @return {*} {Promise<void>}
32
+ */
33
+ onRowEditChange: {
34
+ event: RowEditChangeEvent;
35
+ emitArgs: PartialWithObject<RowEditChangeEvent, EventBase>;
36
+ };
24
37
  }
@@ -21,4 +21,18 @@ export interface ITreeEvent extends IMDControlEvent {
21
21
  event: EventBase & { nodeData: ITreeNodeData };
22
22
  emitArgs: { data: IData[]; nodeData: ITreeNodeData };
23
23
  };
24
+
25
+ /**
26
+ * 父节点刷新结束之后事件
27
+ * @author lxm
28
+ * @date 2023-08-18 02:18:24
29
+ * @type {({
30
+ * event: EventBase & { children: ITreeNodeData[] };
31
+ * emitArgs: { children: ITreeNodeData[] };
32
+ * })}
33
+ */
34
+ onAfterRefreshParent: {
35
+ event: EventBase & { parentNode: ITreeNodeData; children: ITreeNodeData[] };
36
+ emitArgs: { parentNode: ITreeNodeData; children: ITreeNodeData[] };
37
+ };
24
38
  }
@@ -26,3 +26,4 @@ export * from './i-drbar.event';
26
26
  export * from './i-drtab.event';
27
27
  export * from './i-calendar.event';
28
28
  export * from './i-calendar-exp-bar.event';
29
+ export * from './i-context-menu.event';
@@ -0,0 +1,29 @@
1
+ import { EventBase } from '../argument';
2
+ import { IMDViewEvent } from './i-md-view.event';
3
+
4
+ /**
5
+ * 选择多数据视图事件
6
+ *
7
+ * @author zk
8
+ * @date 2023-08-21 05:08:15
9
+ * @export
10
+ * @interface IPickupMDViewEvent
11
+ * @extends {IMDViewEvent}
12
+ */
13
+ export interface IPickupMDViewEvent extends IMDViewEvent {
14
+ /**
15
+ * 选中数据变更事件
16
+ *
17
+ * @author zk
18
+ * @date 2023-08-21 05:08:09
19
+ * @type {{
20
+ * event: EventBase;
21
+ * emitArgs: { data: IData[] };
22
+ * }}
23
+ * @memberof IPickupMDViewEvent
24
+ */
25
+ onSelectionChange: {
26
+ event: EventBase;
27
+ emitArgs: { data: IData[] };
28
+ };
29
+ }
@@ -35,3 +35,4 @@ export * from './i-app-portal-view.event';
35
35
  export * from './i-de-portal-view.event';
36
36
  export * from './i-calendar-view.event';
37
37
  export * from './i-calendar-exp-view.event';
38
+ export * from './i-pickup-md-view.event';
@@ -3,3 +3,4 @@ export * from './controller';
3
3
  export * from './event';
4
4
  export * from './state';
5
5
  export * from './work-flow';
6
+ export type { IHubController } from './app';
@@ -0,0 +1,10 @@
1
+ import { IToolbarState } from './i-toolbar.state';
2
+
3
+ /**
4
+ * 上下文菜单UI状态
5
+ *
6
+ * @export
7
+ * @interface IContextMenuState
8
+ * @extends {IToolbarState}
9
+ */
10
+ export interface IContextMenuState extends IToolbarState {}
@@ -36,6 +36,14 @@ export interface IGridState extends IMDControlState {
36
36
  * @type {IData}
37
37
  */
38
38
  remoteAggResult?: IData;
39
+
40
+ /**
41
+ * 开启表格行编辑
42
+ * @author lxm
43
+ * @date 2023-08-17 02:38:18
44
+ * @type {boolean}
45
+ */
46
+ rowEditOpen: boolean;
39
47
  }
40
48
 
41
49
  export interface IGridRowState {
@@ -75,6 +83,7 @@ export interface IGridRowState {
75
83
  editColStates: {
76
84
  [p: string]: {
77
85
  disabled: boolean;
86
+ readonly: boolean;
78
87
  editable: boolean;
79
88
  required: boolean;
80
89
  };
@@ -1,4 +1,4 @@
1
- import { IButtonContainerState } from '../../common';
1
+ import { IIcon } from '../../common';
2
2
  import { IMDControlState } from './i-md-control.state';
3
3
 
4
4
  /**
@@ -10,6 +10,8 @@ import { IMDControlState } from './i-md-control.state';
10
10
  * @extends {IMDControlState}
11
11
  */
12
12
  export interface ITreeState extends IMDControlState {
13
+ items: ITreeNodeData[];
14
+
13
15
  /**
14
16
  * 树的根节点
15
17
  *
@@ -35,14 +37,6 @@ export interface ITreeState extends IMDControlState {
35
37
  * @type {string[]}
36
38
  */
37
39
  expandedKeys: string[];
38
-
39
- /**
40
- * 右键上下文菜单状态
41
- * @author lxm
42
- * @date 2023-08-01 04:48:11
43
- * @type {{ [p: string]: IButtonContainerState }}
44
- */
45
- contextMenus: { [p: string]: IButtonContainerState };
46
40
  }
47
41
 
48
42
  /**
@@ -152,5 +146,21 @@ export interface ITreeNodeData {
152
146
  */
153
147
  srfmajortext?: string;
154
148
 
149
+ /**
150
+ * 图标
151
+ * @author lxm
152
+ * @date 2023-08-15 02:02:49
153
+ * @type {IIcon}
154
+ */
155
+ icon?: IIcon;
156
+
157
+ /**
158
+ * 节点文本的html显示
159
+ * @author lxm
160
+ * @date 2023-08-15 02:15:09
161
+ * @type {string}
162
+ */
163
+ textHtml?: string;
164
+
155
165
  // todo 其他界面绘制相关属性
156
166
  }
@@ -31,3 +31,4 @@ export * from './i-drtab.state';
31
31
  export * from './i-dashboard.state';
32
32
  export * from './i-calendar.state';
33
33
  export * from './i-calendar-exp-bar.state';
34
+ export * from './i-context-menu.state';