@ibiz-template/runtime 0.1.24 → 0.1.26

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 (80) hide show
  1. package/dist/index.esm.js +222 -54
  2. package/dist/index.system.min.js +1 -1
  3. package/dist/index.system.min.js.map +1 -1
  4. package/out/config/global-config.d.ts.map +1 -1
  5. package/out/config/global-config.js +1 -0
  6. package/out/controller/common/control/control.controller.d.ts +4 -4
  7. package/out/controller/common/control/control.controller.d.ts.map +1 -1
  8. package/out/controller/common/control/control.controller.js +2 -2
  9. package/out/controller/control/exp-bar/calendar-exp-bar.controller.d.ts.map +1 -1
  10. package/out/controller/control/exp-bar/calendar-exp-bar.controller.js +1 -0
  11. package/out/controller/control/exp-bar/exp-bar.controller.d.ts +10 -0
  12. package/out/controller/control/exp-bar/exp-bar.controller.d.ts.map +1 -1
  13. package/out/controller/control/exp-bar/exp-bar.controller.js +32 -7
  14. package/out/controller/control/exp-bar/tree-exp-bar.controller.d.ts.map +1 -1
  15. package/out/controller/control/exp-bar/tree-exp-bar.controller.js +1 -0
  16. package/out/de-logic/de-logic-node/end-node/end-node.js +1 -1
  17. package/out/de-logic/utils/handle-src-val.js +1 -1
  18. package/out/global/global-util/global-util.d.ts +8 -1
  19. package/out/global/global-util/global-util.d.ts.map +1 -1
  20. package/out/global/global-util/global-util.js +8 -1
  21. package/out/interface/common/i-global-config/i-global-view-config.d.ts +8 -0
  22. package/out/interface/common/i-global-config/i-global-view-config.d.ts.map +1 -1
  23. package/out/interface/controller/controller/control/i-exp-bar-control.controller.d.ts +10 -0
  24. package/out/interface/controller/controller/control/i-exp-bar-control.controller.d.ts.map +1 -1
  25. package/out/interface/provider/i-control.provider.d.ts +15 -0
  26. package/out/interface/provider/i-control.provider.d.ts.map +1 -1
  27. package/out/interface/provider/i-view.provider.d.ts +15 -0
  28. package/out/interface/provider/i-view.provider.d.ts.map +1 -1
  29. package/out/logic-scheduler/executor/app-ui-logic-executor.d.ts +13 -1
  30. package/out/logic-scheduler/executor/app-ui-logic-executor.d.ts.map +1 -1
  31. package/out/logic-scheduler/executor/app-ui-logic-executor.js +106 -24
  32. package/out/service/service/control/control.service.d.ts.map +1 -1
  33. package/out/service/service/control/control.service.js +1 -1
  34. package/out/service/service/entity/de.service.d.ts.map +1 -1
  35. package/out/service/service/entity/de.service.js +1 -1
  36. package/out/service/service/entity/method/de-action.d.ts +1 -1
  37. package/out/service/service/entity/method/de-action.d.ts.map +1 -1
  38. package/out/service/service/entity/method/de-action.js +7 -7
  39. package/out/service/service/entity/method/method.d.ts +2 -2
  40. package/out/service/service/entity/method/method.d.ts.map +1 -1
  41. package/out/service/vo/control.vo.d.ts.map +1 -1
  42. package/out/service/vo/control.vo.js +9 -12
  43. package/out/service/vo/ui-map-field.d.ts +7 -0
  44. package/out/service/vo/ui-map-field.d.ts.map +1 -1
  45. package/out/service/vo/ui-map-field.js +24 -0
  46. package/out/types.d.ts +11 -0
  47. package/out/types.d.ts.map +1 -1
  48. package/out/ui-logic/ui-logic-node/end-node/end-node.js +1 -1
  49. package/out/ui-logic/utils/handle-src-val.js +1 -1
  50. package/out/utils/index.d.ts +1 -0
  51. package/out/utils/index.d.ts.map +1 -1
  52. package/out/utils/index.js +1 -0
  53. package/out/utils/raw-value-util/raw-value-util.d.ts +23 -0
  54. package/out/utils/raw-value-util/raw-value-util.d.ts.map +1 -0
  55. package/out/utils/raw-value-util/raw-value-util.js +37 -0
  56. package/package.json +4 -4
  57. package/src/config/global-config.ts +1 -0
  58. package/src/controller/common/control/control.controller.ts +4 -4
  59. package/src/controller/control/exp-bar/calendar-exp-bar.controller.ts +1 -0
  60. package/src/controller/control/exp-bar/exp-bar.controller.ts +35 -7
  61. package/src/controller/control/exp-bar/tree-exp-bar.controller.ts +1 -0
  62. package/src/de-logic/de-logic-node/end-node/end-node.ts +1 -1
  63. package/src/de-logic/utils/handle-src-val.ts +1 -1
  64. package/src/global/global-util/global-util.ts +14 -1
  65. package/src/interface/common/i-global-config/i-global-view-config.ts +9 -0
  66. package/src/interface/controller/controller/control/i-exp-bar-control.controller.ts +8 -0
  67. package/src/interface/provider/i-control.provider.ts +22 -0
  68. package/src/interface/provider/i-view.provider.ts +22 -0
  69. package/src/logic-scheduler/executor/app-ui-logic-executor.ts +129 -30
  70. package/src/service/service/control/control.service.ts +2 -2
  71. package/src/service/service/entity/de.service.ts +2 -2
  72. package/src/service/service/entity/method/de-action.ts +18 -12
  73. package/src/service/service/entity/method/method.ts +6 -6
  74. package/src/service/vo/control.vo.ts +10 -15
  75. package/src/service/vo/ui-map-field.ts +28 -0
  76. package/src/types.ts +12 -0
  77. package/src/ui-logic/ui-logic-node/end-node/end-node.ts +1 -1
  78. package/src/ui-logic/utils/handle-src-val.ts +1 -1
  79. package/src/utils/index.ts +1 -0
  80. package/src/utils/raw-value-util/raw-value-util.ts +37 -0
@@ -1 +1 @@
1
- {"version":3,"file":"de-action.d.ts","sourceRoot":"","sources":["../../../../../src/service/service/entity/method/de-action.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,aAAa,EAEd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKpD;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,MAAM;IAChC,MAAM,EAAE,YAAY,CAAC;IAE7B;;;;;;;;OAQG;IACH,SAAS,KAAK,WAAW,IAAI,OAAO,CAEnC;IAEK,IAAI,CACR,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAwE/B;;;;;;;;OAQG;IACG,MAAM,CACV,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAUtC;;;;;;;;OAQG;IACG,MAAM,CACV,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAYtC;;;;;;;;;OASG;IACG,MAAM,CACV,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,GAAG,WAAW,EACzB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IActC;;;;;;;;OAQG;IACG,GAAG,CACP,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAatC;;;;;;;;OAQG;IACG,QAAQ,CACZ,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAUhC;;;;;;;;OAQG;IACG,UAAU,CACd,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,KAAK,GACZ,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAUtC;;;;;;;;OAQG;IACG,YAAY,CAChB,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAatC;;;;;;;;OAQG;IACG,UAAU,CACd,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAoBtC;;;;;;;;OAQG;IACG,UAAU,CACd,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,KAAK,GACZ,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAatC;;;;;;;;OAQG;IACG,OAAO,CACX,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAqBtC;;;;;;OAMG;IACG,eAAe,CACnB,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,aAAa,CAAC;CAc1B"}
1
+ {"version":3,"file":"de-action.d.ts","sourceRoot":"","sources":["../../../../../src/service/service/entity/method/de-action.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,aAAa,EAEd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKpD;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,MAAM;IAChC,MAAM,EAAE,YAAY,CAAC;IAE7B;;;;;;;;OAQG;IACH,SAAS,KAAK,WAAW,IAAI,OAAO,CAEnC;IAEK,IAAI,CACR,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IA8E/B;;;;;;;;OAQG;IACG,MAAM,CACV,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAUtC;;;;;;;;OAQG;IACG,MAAM,CACV,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAYtC;;;;;;;;;OASG;IACG,MAAM,CACV,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,GAAG,WAAW,EACzB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IActC;;;;;;;;OAQG;IACG,GAAG,CACP,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAatC;;;;;;;;OAQG;IACG,QAAQ,CACZ,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAUhC;;;;;;;;OAQG;IACG,UAAU,CACd,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,KAAK,GACZ,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAUtC;;;;;;;;OAQG;IACG,YAAY,CAChB,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAatC;;;;;;;;OAQG;IACG,UAAU,CACd,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAoBtC;;;;;;;;OAQG;IACG,UAAU,CACd,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,KAAK,GACZ,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAatC;;;;;;;;OAQG;IACG,OAAO,CACX,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAqBtC;;;;;;OAMG;IACG,eAAe,CACnB,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,aAAa,CAAC;CAc1B"}
@@ -32,19 +32,19 @@ export class DEActionMethod extends Method {
32
32
  if (!deLogic) {
33
33
  throw new RuntimeModelError(this.method, '缺少实体处理逻辑');
34
34
  }
35
- return execDELogicAction(deLogic, context, data, params);
35
+ return execDELogicAction(deLogic, context, data || {}, params || {});
36
36
  }
37
- if (!this.isLocalMode) {
37
+ if (data && !this.isLocalMode) {
38
38
  data = await this.input.handle(context, data);
39
39
  }
40
40
  // 执行变更属性逻辑
41
- if (!['READ', 'GETDRAFT'].includes(this.method.actionMode)) {
42
- await execFieldLogics(this.entity, 'change', context, data, params);
41
+ if (data && !['READ', 'GETDRAFT'].includes(this.method.actionMode)) {
42
+ await execFieldLogics(this.entity, 'change', context, data, params || {});
43
43
  }
44
44
  let result;
45
45
  switch (this.method.codeName) {
46
46
  case 'Create':
47
- result = await this.create(context, data, params);
47
+ result = await this.create(context, data, params || {});
48
48
  break;
49
49
  case 'Get':
50
50
  result = await this.get(context, params);
@@ -77,7 +77,7 @@ export class DEActionMethod extends Method {
77
77
  let path = this.calcPath(context);
78
78
  if (this.method.needResourceKey) {
79
79
  path = `${path}/${context[this.entity.codeName.toLowerCase()] ||
80
- data[this.entity.keyAppDEFieldId]}`;
80
+ (data === null || data === void 0 ? void 0 : data[this.entity.keyAppDEFieldId])}`;
81
81
  }
82
82
  const res = await this.request(path, context, data, params);
83
83
  res.data = await this.result.handle(context, res.data);
@@ -85,7 +85,7 @@ export class DEActionMethod extends Method {
85
85
  }
86
86
  }
87
87
  // 计算属性逻辑
88
- await execFieldLogics(this.entity, 'compute', context, result.data, params);
88
+ await execFieldLogics(this.entity, 'compute', context, result.data, params || {});
89
89
  return result;
90
90
  }
91
91
  /**
@@ -63,7 +63,7 @@ export declare abstract class Method {
63
63
  * @param {IParams} [params2={}]
64
64
  * @return {*} {Promise<HttpResponse>}
65
65
  */
66
- abstract exec(context: IParams, params: IData, params2: IParams): Promise<HttpResponse>;
66
+ abstract exec(context: IParams, params?: IData, params2?: IParams): Promise<HttpResponse>;
67
67
  /**
68
68
  * 发送请求
69
69
  *
@@ -76,7 +76,7 @@ export declare abstract class Method {
76
76
  * @param {IParams} params
77
77
  * @return {*} {Promise<HttpResponse<any>>}
78
78
  */
79
- protected request(path: string, context: IParams, data: IData, params: IParams): Promise<HttpResponse<any>>;
79
+ protected request(path: string, context: IParams, data?: IData, params?: IParams): Promise<HttpResponse<any>>;
80
80
  /**
81
81
  * 根据上下文计算当前请求路径
82
82
  *
@@ -1 +1 @@
1
- {"version":3,"file":"method.d.ts","sourceRoot":"","sources":["../../../../../src/service/service/entity/method/method.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAqB,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;;;;;GAOG;AACH,8BAAsB,MAAM;IA2CxB,SAAS,CAAC,MAAM,EAAE,cAAc;IAChC,SAAS,CAAC,MAAM,EAAE,YAAY;IA3ChC,SAAS,CAAC,GAAG,EAAG,WAAW,CAAC;IAE5B;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAG,WAAW,CAAC;IAE9B;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAG,YAAY,CAAC;IAEhC;;;;;;;OAOG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IAElC;;;;;;;;OAQG;gBAES,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,YAAY;IAOhC;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,CACX,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,KAAK,EACb,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,YAAY,CAAC;IAExB;;;;;;;;;;;OAWG;cACa,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,OAAO,GAEd,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAwC7B;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAM5C;;;;;;;OAOG;cACa,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IAOpD;;;;;;;;OAQG;IACH,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW;CAM/D"}
1
+ {"version":3,"file":"method.d.ts","sourceRoot":"","sources":["../../../../../src/service/service/entity/method/method.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAqB,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;;;;;GAOG;AACH,8BAAsB,MAAM;IA2CxB,SAAS,CAAC,MAAM,EAAE,cAAc;IAChC,SAAS,CAAC,MAAM,EAAE,YAAY;IA3ChC,SAAS,CAAC,GAAG,EAAG,WAAW,CAAC;IAE5B;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAG,WAAW,CAAC;IAE9B;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAG,YAAY,CAAC;IAEhC;;;;;;;OAOG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IAElC;;;;;;;;OAQG;gBAES,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,YAAY;IAOhC;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,CACX,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,KAAK,EACd,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,YAAY,CAAC;IAExB;;;;;;;;;;;OAWG;cACa,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE,OAAO,GAEf,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAwC7B;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAM5C;;;;;;;OAOG;cACa,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IAOpD;;;;;;;;OAQG;IACH,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW;CAM/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"control.vo.d.ts","sourceRoot":"","sources":["../../../src/service/vo/control.vo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;;;;GAOG;AACH,qBAAa,SAAS;IAEpB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;IAE5B;;;;;;;OAOG;IACK,OAAO,EAAE,KAAK,CAAC;IAEvB;;;;;;;OAOG;IACK,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE5C;;;;;;OAMG;IACH,IAAI,KAAK,IAAI,KAAK,CAKjB;IAED;;;;;;OAMG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;OAMG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;;;OAMG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;;;;OAMG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;;;;;OAMG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;;;;;OAMG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;;;OAMG;gBAED,OAAO,GAAE,KAAU,EACnB,UAAU,GAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAa;IAiCjD;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,YAAY;IA8CpB;;;;;;OAMG;IACH,SAAS,IAAI,KAAK;IAIlB;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI;IAIxC;;;;;;OAMG;IACH,KAAK,IAAI,SAAS;CAQnB"}
1
+ {"version":3,"file":"control.vo.d.ts","sourceRoot":"","sources":["../../../src/service/vo/control.vo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;;;;GAOG;AACH,qBAAa,SAAS;IAEpB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;IAE5B;;;;;;;OAOG;IACK,OAAO,EAAE,KAAK,CAAC;IAEvB;;;;;;;OAOG;IACK,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE5C;;;;;;OAMG;IACH,IAAI,KAAK,IAAI,KAAK,CAKjB;IAED;;;;;;OAMG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;OAMG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;;;OAMG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;;;;OAMG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;;;;;OAMG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;;;;;OAMG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;;;OAMG;gBAED,OAAO,GAAE,KAAU,EACnB,UAAU,GAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAa;IA8BjD;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,YAAY;IA6CpB;;;;;;OAMG;IACH,SAAS,IAAI,KAAK;IAIlB;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI;IAIxC;;;;;;OAMG;IACH,KAAK,IAAI,SAAS;CAQnB"}
@@ -1,4 +1,3 @@
1
- import { DataTypes } from '@ibiz-template/core';
2
1
  import { clone, isNil } from 'ramda';
3
2
  import { Srfuf } from '../constant';
4
3
  /**
@@ -105,9 +104,7 @@ export class ControlVO {
105
104
  this.$dataUIMap.forEach((mapField, key) => {
106
105
  const value = mapField.dataKey;
107
106
  // 关联映射属性
108
- const forceNumber = mapField.dataType !== undefined &&
109
- DataTypes.isNumber(mapField.dataType);
110
- this.linkProperty(key, value, mapField.isOriginField, forceNumber);
107
+ this.linkProperty(key, value, mapField);
111
108
  });
112
109
  // 映射属性里没有涉及到的建立直接关联,用于使用实体属性也要取到值的场景。
113
110
  Object.keys($origin).forEach(value => {
@@ -129,7 +126,8 @@ export class ControlVO {
129
126
  * @param {boolean} [forceNumber=false] 是否强制转换成数值,是的话set的时候转成数值
130
127
  * @returns {*}
131
128
  */
132
- linkProperty(uiKey, dataKey, isOriginField = true, forceNumber = false) {
129
+ linkProperty(uiKey, dataKey, mapField) {
130
+ const isOriginField = mapField ? mapField.isOriginField : true;
133
131
  // srfuf和srfkey不做处理
134
132
  if (uiKey === 'srfuf') {
135
133
  return;
@@ -147,15 +145,14 @@ export class ControlVO {
147
145
  : this.$origin[dataKey];
148
146
  },
149
147
  set(val) {
150
- // 非空且强制转数值时,转换值的类型
151
- let val2 = forceNumber && !isNil(val) && val !== '' ? Number(val) : val;
152
- if (Number.isNaN(val2)) {
153
- val2 = val; // NaN时还原值
154
- ibiz.log.error(`${val}不能转换成数字`);
155
- }
156
- this.$origin[dataKey] = val2;
148
+ // 有mapField的走它的转换
149
+ this.$origin[dataKey] = mapField ? mapField.convertVal(val) : val;
157
150
  },
158
151
  });
152
+ // 一开始初始化的时候先把值转换一下。
153
+ if (mapField) {
154
+ this[uiKey] = mapField.convertVal(this.$origin[dataKey]);
155
+ }
159
156
  }
160
157
  else {
161
158
  Object.defineProperty(this, uiKey, {
@@ -50,5 +50,12 @@ export declare class UIMapField {
50
50
  isOriginField?: boolean;
51
51
  dataType?: number;
52
52
  });
53
+ /**
54
+ * 值转换
55
+ * @author lxm
56
+ * @date 2023-09-14 06:45:44
57
+ * @param {unknown} value 原值
58
+ */
59
+ convertVal(value: unknown): unknown;
53
60
  }
54
61
  //# sourceMappingURL=ui-map-field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui-map-field.d.ts","sourceRoot":"","sources":["../../../src/service/vo/ui-map-field.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,qBAAa,UAAU;IACrB;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,aAAa,EAAE,OAAO,CAAS;IAE/B;;;;;;OAMG;IACH,aAAa,EAAE,OAAO,CAAQ;gBAG5B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;QACJ,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACd;CAWT"}
1
+ {"version":3,"file":"ui-map-field.d.ts","sourceRoot":"","sources":["../../../src/service/vo/ui-map-field.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,qBAAa,UAAU;IACrB;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,aAAa,EAAE,OAAO,CAAS;IAE/B;;;;;;OAMG;IACH,aAAa,EAAE,OAAO,CAAQ;gBAG5B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;QACJ,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACd;IAYR;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;CAoBpC"}
@@ -1,3 +1,4 @@
1
+ import { DataTypes } from '@ibiz-template/core';
1
2
  import { isNil } from 'ramda';
2
3
  /**
3
4
  * 界面映射字段信息
@@ -34,4 +35,27 @@ export class UIMapField {
34
35
  this.dataType = opts.dataType;
35
36
  }
36
37
  }
38
+ /**
39
+ * 值转换
40
+ * @author lxm
41
+ * @date 2023-09-14 06:45:44
42
+ * @param {unknown} value 原值
43
+ */
44
+ convertVal(value) {
45
+ // 没有数据类型的给原值
46
+ if (!this.dataType) {
47
+ return value;
48
+ }
49
+ // 数值转换
50
+ if (DataTypes.isNumber(this.dataType)) {
51
+ const numVal = !isNil(value) && value !== '' ? Number(value) : value;
52
+ if (Number.isNaN(numVal)) {
53
+ // 不能转换的给原值
54
+ ibiz.log.debug(`${value}不能转换成数字`);
55
+ return value;
56
+ }
57
+ return numVal;
58
+ }
59
+ return value;
60
+ }
37
61
  }
package/out/types.d.ts CHANGED
@@ -138,5 +138,16 @@ declare module '@ibiz-template/core' {
138
138
  */
139
139
  scheduler: LogicSchedulerCenter;
140
140
  }
141
+ interface IEnvironment {
142
+ /**
143
+ * 全局提供的功能性配置
144
+ *
145
+ * @description 默认无值使用默认配置,可以使用 environment.js 中的 globalConfig 覆盖默认配置
146
+ * @author chitanda
147
+ * @date 2023-09-15 14:09:14
148
+ * @type {IGlobalConfig}
149
+ */
150
+ globalConfig?: IGlobalConfig;
151
+ }
141
152
  }
142
153
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf;;;;;;WAMG;QACH,OAAO,EAAE,YAAY,CAAC;QAEtB;;;;;;WAMG;QACH,GAAG,EAAE,cAAc,CAAC;QAEpB;;;;;;;WAOG;QACH,KAAK,EAAE,UAAU,CAAC;QAElB;;;;;;;WAOG;QACH,OAAO,EAAE,YAAY,CAAC;QAEtB;;;;;;;WAOG;QACH,OAAO,EAAE,YAAY,CAAC;QAEtB;;;;;;;WAOG;QACH,YAAY,EAAE,iBAAiB,CAAC;QAEhC;;;;;;;WAOG;QACH,QAAQ,EAAE,aAAa,CAAC;QAExB;;;;;;WAMG;QACH,OAAO,EAAE,kBAAkB,CAAC;QAE5B;;;;;;WAMG;QACH,MAAM,EAAE,cAAc,CAAC;QAEvB;;;;;;WAMG;QACH,QAAQ,EAAE,cAAc,CAAC;QAEzB;;;;;;WAMG;QACH,MAAM,EAAE,aAAa,CAAC;QAEtB;;;;;;WAMG;QACH,IAAI,EAAE,YAAY,CAAC;QAEnB;;;;;WAKG;QACH,MAAM,EAAE,aAAa,CAAC;QAEtB;;;;;;WAMG;QACH,IAAI,EAAE,UAAU,CAAC;QAEjB;;;;;;WAMG;QACH,IAAI,EAAE,IAAI,CAAC;QAEX;;;;;WAKG;QACH,SAAS,EAAE,oBAAoB,CAAC;KACjC;CACF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf;;;;;;WAMG;QACH,OAAO,EAAE,YAAY,CAAC;QAEtB;;;;;;WAMG;QACH,GAAG,EAAE,cAAc,CAAC;QAEpB;;;;;;;WAOG;QACH,KAAK,EAAE,UAAU,CAAC;QAElB;;;;;;;WAOG;QACH,OAAO,EAAE,YAAY,CAAC;QAEtB;;;;;;;WAOG;QACH,OAAO,EAAE,YAAY,CAAC;QAEtB;;;;;;;WAOG;QACH,YAAY,EAAE,iBAAiB,CAAC;QAEhC;;;;;;;WAOG;QACH,QAAQ,EAAE,aAAa,CAAC;QAExB;;;;;;WAMG;QACH,OAAO,EAAE,kBAAkB,CAAC;QAE5B;;;;;;WAMG;QACH,MAAM,EAAE,cAAc,CAAC;QAEvB;;;;;;WAMG;QACH,QAAQ,EAAE,cAAc,CAAC;QAEzB;;;;;;WAMG;QACH,MAAM,EAAE,aAAa,CAAC;QAEtB;;;;;;WAMG;QACH,IAAI,EAAE,YAAY,CAAC;QAEnB;;;;;WAKG;QACH,MAAM,EAAE,aAAa,CAAC;QAEtB;;;;;;WAMG;QACH,IAAI,EAAE,UAAU,CAAC;QAEjB;;;;;;WAMG;QACH,IAAI,EAAE,IAAI,CAAC;QAEX;;;;;WAKG;QACH,SAAS,EAAE,oBAAoB,CAAC;KACjC;IAED,UAAU,YAAY;QACpB;;;;;;;WAOG;QACH,YAAY,CAAC,EAAE,aAAa,CAAC;KAC9B;CACF"}
@@ -21,7 +21,7 @@ export class EndNode extends UILogicNode {
21
21
  ctx.result = null;
22
22
  break;
23
23
  case 'SRCVALUE': // 直接值
24
- ctx.result = rawValue;
24
+ ctx.result = ibiz.util.rawValue.format(rawValue);
25
25
  break;
26
26
  case 'LOGICPARAM': // 逻辑参数对象
27
27
  ctx.result = ctx.params[returnParamId];
@@ -27,7 +27,7 @@ export function handleSrcVal(ctx, srcValParams) {
27
27
  return undefined;
28
28
  // 直接值
29
29
  case 'SRCVALUE':
30
- return srcValue;
30
+ return ibiz.util.rawValue.format(srcValue);
31
31
  case 'WEBCONTEXT': // 网页请求上下文
32
32
  case 'VIEWPARAM': // 视图参数
33
33
  value = ctx.viewParams;
@@ -9,4 +9,5 @@ export * from './modal/modal';
9
9
  export * from './value-rule/value-rule';
10
10
  export * from './script/index';
11
11
  export { TextUtil } from './text-util/text-util';
12
+ export { RawValueUtil } from './raw-value-util/raw-value-util';
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,cAAc,yBAAyB,CAAC;AACxC,OAAO,EACL,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,yCAAyC,CAAC;AACjD,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,cAAc,yBAAyB,CAAC;AACxC,OAAO,EACL,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,yCAAyC,CAAC;AACjD,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC"}
@@ -9,3 +9,4 @@ export * from './modal/modal';
9
9
  export * from './value-rule/value-rule';
10
10
  export * from './script/index';
11
11
  export { TextUtil } from './text-util/text-util';
12
+ export { RawValueUtil } from './raw-value-util/raw-value-util';
@@ -0,0 +1,23 @@
1
+ /**
2
+ * 直接值工具类
3
+ *
4
+ * @export
5
+ * @class RawValueUtil
6
+ */
7
+ export declare class RawValueUtil {
8
+ /**
9
+ * 字符串是否完全由整数/浮点数组成
10
+ *
11
+ * @param {string} str
12
+ * @return {*}
13
+ */
14
+ isNumber(str: string): boolean;
15
+ /**
16
+ * 转换直接值
17
+ *
18
+ * @param {string} val
19
+ * @return {*}
20
+ */
21
+ format(val: string | undefined): number | boolean | string | undefined;
22
+ }
23
+ //# sourceMappingURL=raw-value-util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw-value-util.d.ts","sourceRoot":"","sources":["../../../src/utils/raw-value-util/raw-value-util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,YAAY;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI9B;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS;CAavE"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * 直接值工具类
3
+ *
4
+ * @export
5
+ * @class RawValueUtil
6
+ */
7
+ export class RawValueUtil {
8
+ /**
9
+ * 字符串是否完全由整数/浮点数组成
10
+ *
11
+ * @param {string} str
12
+ * @return {*}
13
+ */
14
+ isNumber(str) {
15
+ return /^-?\d+(\.\d+)?$/.test(str);
16
+ }
17
+ /**
18
+ * 转换直接值
19
+ *
20
+ * @param {string} val
21
+ * @return {*}
22
+ */
23
+ format(val) {
24
+ let tempVal = val;
25
+ if (val !== undefined) {
26
+ if (val === 'true' || val === 'false') {
27
+ // 布尔值处理
28
+ tempVal = val === 'true';
29
+ }
30
+ else if (this.isNumber(val)) {
31
+ // 数值处理
32
+ tempVal = parseFloat(val);
33
+ }
34
+ }
35
+ return tempVal;
36
+ }
37
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/runtime",
3
- "version": "0.1.24",
3
+ "version": "0.1.26",
4
4
  "description": "控制器包",
5
5
  "type": "module",
6
6
  "main": "out/index.js",
@@ -30,7 +30,7 @@
30
30
  "license": "MIT",
31
31
  "devDependencies": {
32
32
  "@ibiz-template/core": "^0.1.24",
33
- "@ibiz/model-core": "^0.0.16",
33
+ "@ibiz/model-core": "^0.0.17",
34
34
  "@types/path-browserify": "^1.0.0",
35
35
  "@types/qs": "^6.9.8",
36
36
  "@types/systemjs": "^6.13.2",
@@ -46,7 +46,7 @@
46
46
  },
47
47
  "peerDependencies": {
48
48
  "@ibiz-template/core": "^0.1.0",
49
- "@ibiz/model-core": "^0.0.16",
49
+ "@ibiz/model-core": "^0.0.17",
50
50
  "async-validator": "^4.2.5",
51
51
  "dayjs": "^1.11.7",
52
52
  "echarts": "^5.4.3",
@@ -57,5 +57,5 @@
57
57
  "qx-util": "^0.4.8",
58
58
  "ramda": "^0.29.0"
59
59
  },
60
- "gitHead": "b1d394ad9b4d7e81e607054c31f056e8299855b9"
60
+ "gitHead": "47de26dd6360166d072d61af88da5bc1b3732b22"
61
61
  }
@@ -19,6 +19,7 @@ export class GlobalConfig implements IGlobalConfig {
19
19
  // 全局视图配置
20
20
  view: IGlobalViewConfig = {
21
21
  enableDataInfoBar: true,
22
+ enableExpCache: true,
22
23
  };
23
24
 
24
25
  // 全局表格配置
@@ -13,8 +13,8 @@ import {
13
13
  } from '../../../interface/controller';
14
14
  import { ControllerEvent } from '../../utils';
15
15
  import {
16
- IControlProvider,
17
16
  IDataAbilityParams,
17
+ IProvider,
18
18
  IUILogicParams,
19
19
  } from '../../../interface';
20
20
  import { ControlLogicScheduler } from '../../../logic-scheduler';
@@ -64,12 +64,12 @@ export class ControlController<
64
64
  layoutPanel?: IViewLayoutPanelController;
65
65
 
66
66
  /**
67
- * 子部件适配器
67
+ * 子适配器
68
68
  * @author lxm
69
69
  * @date 2023-07-19 04:14:50
70
- * @type {{ [key: string]: IControlProvider }}
70
+ * @type {{ [key: string]: IProvider }}
71
71
  */
72
- providers: { [key: string]: IControlProvider } = {};
72
+ providers: { [key: string]: IProvider } = {};
73
73
 
74
74
  /**
75
75
  * Creates an instance of ControlController.
@@ -92,6 +92,7 @@ export class CalendarExpBarController
92
92
  this.params,
93
93
  );
94
94
  context.currentSrfNav = item.navId;
95
+ this.state.srfnav = item.navId;
95
96
  return {
96
97
  key: item.navId,
97
98
  context,
@@ -256,15 +256,28 @@ export class ExpBarControlController<
256
256
  const selectItem = this.xDataController?.state.items.find(
257
257
  item => item[this.navKeyName] === this.state.srfnav,
258
258
  );
259
- if (selectItem) {
260
- // 在多数据部件里面选项设置回显。
259
+
260
+ // 是否是路由模式且有子路由
261
+ const routeAndHasSub =
262
+ this.routeDepth &&
263
+ window.location.hash.split('/').length > this.routeDepth * 2 + 2;
264
+ console.log('routeAndHasSub', routeAndHasSub);
265
+
266
+ if (routeAndHasSub) {
267
+ if (selectItem) {
268
+ // 在多数据部件里面选项设置回显。
269
+ this.xDataController.setSelection([selectItem]);
270
+ }
271
+ // 此时不需要导航占位push路由,只要有个key触发绘制下级视图就行。
272
+ this._evt.emit('onNavViewChange', {
273
+ navViewMsg: { key: this.state.srfnav },
274
+ context: this.context,
275
+ });
276
+ } else if (selectItem) {
277
+ // 非路由模式,或者有路由模式下有srfnav没有子路由时,需要在多数据部件里面选项设置回显。
278
+ this.xDataController.setActive(selectItem);
261
279
  this.xDataController.setSelection([selectItem]);
262
280
  }
263
- // 此时不需要导航占位push路由,只要有个key触发绘制下级视图就行。
264
- this._evt.emit('onNavViewChange', {
265
- navViewMsg: { key: this.state.srfnav },
266
- context: this.context,
267
- });
268
281
  }
269
282
 
270
283
  /**
@@ -279,6 +292,7 @@ export class ExpBarControlController<
279
292
  const data = this.xDataController.state.items[0];
280
293
  if (!data) {
281
294
  // 导航视图传空让他导航占位绘制空界面
295
+ this.state.srfnav = '';
282
296
  this._evt.emit('onNavViewChange', { navViewMsg: { key: '' } });
283
297
  return;
284
298
  }
@@ -340,6 +354,7 @@ export class ExpBarControlController<
340
354
  const tempContext = Object.assign(context.clone(), resultContext, {
341
355
  currentSrfNav: data[this.navKeyName],
342
356
  });
357
+ this.state.srfnav = data[this.navKeyName];
343
358
  const tempParams = { ...resultParams };
344
359
  return { context: tempContext, params: tempParams };
345
360
  }
@@ -420,4 +435,17 @@ export class ExpBarControlController<
420
435
  }
421
436
  });
422
437
  }
438
+
439
+ /**
440
+ * 路由变更处理回调
441
+ * @author lxm
442
+ * @date 2023-09-14 07:03:39
443
+ * @param {{ srfnav?: string; path: string }} info 当前系统的路由的从一级到最后一级的所有路径。
444
+ */
445
+ onRouterChange(info: { srfnav: string; path: string }): void {
446
+ if (this.state.srfnav !== info.srfnav) {
447
+ this.state.srfnav = info.srfnav;
448
+ this.defaultNavBySrfnav();
449
+ }
450
+ }
423
451
  }
@@ -119,6 +119,7 @@ export class TreeExpBarController
119
119
  }
120
120
  const result = this.prepareParams(nodeModel, deData, context, params);
121
121
  result.context.currentSrfNav = nodeId;
122
+ this.state.srfnav = nodeId;
122
123
  return {
123
124
  key: nodeId,
124
125
  viewId: nodeModel.navAppViewId,
@@ -26,7 +26,7 @@ export class EndNode extends DELogicNode {
26
26
  ctx.result = null;
27
27
  break;
28
28
  case 'SRCVALUE': // 直接值
29
- ctx.result = rawValue;
29
+ ctx.result = ibiz.util.rawValue.format(rawValue);
30
30
  break;
31
31
  case 'LOGICPARAM': // 逻辑参数对象
32
32
  ctx.result = ctx.params[returnParamId!];
@@ -55,7 +55,7 @@ export function handleSrcVal(
55
55
  return undefined;
56
56
  // 直接值
57
57
  case 'SRCVALUE':
58
- return srcValue;
58
+ return ibiz.util.rawValue.format(srcValue);
59
59
  case 'WEBCONTEXT': // 网页请求上下文
60
60
  case 'VIEWPARAM': // 视图参数
61
61
  value = ctx.viewParams;
@@ -1,5 +1,10 @@
1
1
  import { IExportExcelUtil } from '../../interface';
2
- import { TextUtil, LayoutPanelUtil, HandlebarsUtil } from '../../utils';
2
+ import {
3
+ TextUtil,
4
+ LayoutPanelUtil,
5
+ HandlebarsUtil,
6
+ RawValueUtil,
7
+ } from '../../utils';
3
8
 
4
9
  /**
5
10
  * 全局工具方法或对象
@@ -34,6 +39,14 @@ export class GlobalUtil {
34
39
  */
35
40
  readonly hbs = new HandlebarsUtil();
36
41
 
42
+ /**
43
+ * 直接值工具
44
+ *
45
+ * @author zhujiamin
46
+ * @date 2023-08-24 11:08:28
47
+ */
48
+ readonly rawValue = new RawValueUtil();
49
+
37
50
  /**
38
51
  * 获取导出Excel工具类对象
39
52
  * @author lxm
@@ -18,4 +18,13 @@ export interface IGlobalViewConfig {
18
18
  * @type {boolean}
19
19
  */
20
20
  enableDataInfoBar: boolean;
21
+
22
+ /**
23
+ * 全局导航是否启用缓存
24
+ *
25
+ * @author chitanda
26
+ * @date 2023-09-15 12:09:09
27
+ * @type {boolean}
28
+ */
29
+ enableExpCache: boolean;
21
30
  }
@@ -57,4 +57,12 @@ export interface IExpBarControlController<
57
57
  * @memberof ITreeExpBarController
58
58
  */
59
59
  getNavViewMsg(data: IData, context: IContext, params: IParams): INavViewMsg;
60
+
61
+ /**
62
+ * 路由变更处理回调
63
+ * @author lxm
64
+ * @date 2023-09-14 07:03:39
65
+ * @param {{ srfnav?: string; path: string }} info 当前系统的路由的从一级到最后一级的所有路径。
66
+ */
67
+ onRouterChange(info: { srfnav: string; path: string }): void;
60
68
  }
@@ -1,3 +1,7 @@
1
+ import { IControl } from '@ibiz/model-core';
2
+ import { CTX } from '../../controller';
3
+ import { IControlController } from '../controller';
4
+
1
5
  /**
2
6
  * 部件适配器的接口
3
7
  *
@@ -16,4 +20,22 @@ export interface IControlProvider {
16
20
  */
17
21
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
22
  component: any;
23
+
24
+ /**
25
+ * 创建部件控制器
26
+ *
27
+ * @author lxm
28
+ * @date 2023-09-15 11:52:22
29
+ * @param {IControl} model 部件模型
30
+ * @param {IContext} context 上下文
31
+ * @param {IParams} [params] 视图参数
32
+ * @param {CTX} [ctx]
33
+ * @return {*} {IControlController}
34
+ */
35
+ createController?(
36
+ model: IControl,
37
+ context: IContext,
38
+ params: IParams,
39
+ ctx: CTX,
40
+ ): IControlController;
19
41
  }
@@ -1,3 +1,7 @@
1
+ import { IAppView } from '@ibiz/model-core';
2
+ import { CTX } from '../../controller';
3
+ import { IViewController } from '../controller';
4
+
1
5
  /**
2
6
  * 视图适配器的接口
3
7
  *
@@ -16,4 +20,22 @@ export interface IViewProvider {
16
20
  */
17
21
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
22
  component: any;
23
+
24
+ /**
25
+ * 创建视图控制器
26
+ *
27
+ * @author lxm
28
+ * @date 2023-09-15 11:49:26
29
+ * @param {IAppView} model 视图模型
30
+ * @param {IContext} context 上下文
31
+ * @param {IParams} [params] 视图参数
32
+ * @param {CTX} [ctx]
33
+ * @return {*} {IViewController}
34
+ */
35
+ createController?(
36
+ model: IAppView,
37
+ context: IContext,
38
+ params?: IParams,
39
+ ctx?: CTX,
40
+ ): IViewController;
19
41
  }