@ibiz-template/vue3-components 0.1.2 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/dist/{chart-efad8ee0.js → chart-0d4e59ff.js} +2 -2
  2. package/dist/chart-0d4e59ff.js.map +1 -0
  3. package/dist/{ibiz-markdown-editor-3745dfd5.js → ibiz-markdown-editor-a426becc.js} +2 -2
  4. package/dist/ibiz-markdown-editor-a426becc.js.map +1 -0
  5. package/dist/index.min.css +1 -1
  6. package/dist/index.system.min.js +3 -3
  7. package/dist/index.system.min.js.map +1 -1
  8. package/dist/wang-editor-675011c6.js.map +1 -1
  9. package/dist/xlsx-util-fac1c045.js.map +1 -1
  10. package/es/common/icon/icon.d.ts +1 -3
  11. package/es/common/index.d.ts +0 -2
  12. package/es/common/index.mjs +1 -5
  13. package/es/common/router-view/router-view.d.ts +1 -3
  14. package/es/control/app-menu/app-menu.css +1 -1
  15. package/es/control/app-menu-icon-view/app-menu-icon-view.d.ts +3 -3
  16. package/es/control/app-menu-icon-view/index.d.ts +6 -2
  17. package/es/control/calendar/calendar.controller.d.ts +93 -0
  18. package/es/control/calendar/calendar.controller.mjs +162 -0
  19. package/es/control/calendar/calendar.css +1 -0
  20. package/es/control/calendar/calendar.d.ts +49 -0
  21. package/es/control/calendar/calendar.mjs +211 -0
  22. package/es/control/calendar/calendar.provider.d.ts +13 -0
  23. package/es/control/calendar/calendar.provider.mjs +13 -0
  24. package/es/control/calendar/calendar.service.d.ts +49 -0
  25. package/es/control/calendar/calendar.service.mjs +88 -0
  26. package/es/control/calendar/index.d.ts +47 -0
  27. package/es/control/calendar/index.mjs +15 -0
  28. package/es/control/chart/generator/chart-options-generator.mjs +1 -1
  29. package/es/control/chart/generator/funnel-series-generator.d.ts +1 -1
  30. package/es/control/chart/generator/pie-series-generator.d.ts +1 -1
  31. package/es/control/dashboard/dashboard.css +1 -0
  32. package/es/control/dashboard/dashboard.d.ts +1 -0
  33. package/es/control/dashboard/dashboard.mjs +1 -0
  34. package/es/control/dashboard/portlet/portlet-layout/portlet-layout.d.ts +1 -0
  35. package/es/control/dashboard/portlet/portlet-layout/portlet-layout.mjs +1 -0
  36. package/es/control/dashboard/portlet/portlet-part/portlet-part.controller.mjs +1 -1
  37. package/es/control/data-view/data-view.controller.mjs +0 -1
  38. package/es/control/data-view/data-view.css +1 -1
  39. package/es/control/drbar/drbar.controller.d.ts +2 -5
  40. package/es/control/drbar/drbar.d.ts +2 -2
  41. package/es/control/drbar/index.d.ts +3 -1
  42. package/es/control/drtab/drtab.controller.d.ts +2 -5
  43. package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.controller.d.ts +34 -0
  44. package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.controller.mjs +89 -0
  45. package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.css +0 -0
  46. package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.d.ts +49 -0
  47. package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.mjs +78 -0
  48. package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.provider.d.ts +11 -0
  49. package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.provider.mjs +13 -0
  50. package/es/control/exp-bar/calendar-exp-bar/index.d.ts +49 -0
  51. package/es/control/exp-bar/calendar-exp-bar/index.mjs +18 -0
  52. package/es/control/exp-bar/exp-bar.controller.d.ts +5 -5
  53. package/es/control/exp-bar/exp-bar.controller.mjs +17 -11
  54. package/es/control/exp-bar/index.d.ts +1 -0
  55. package/es/control/exp-bar/index.mjs +3 -0
  56. package/es/control/exp-bar/tree-exp-bar/tree-exp-bar.controller.d.ts +20 -3
  57. package/es/control/exp-bar/tree-exp-bar/tree-exp-bar.controller.mjs +49 -25
  58. package/es/control/exp-bar/tree-exp-bar/tree-exp-bar.mjs +2 -1
  59. package/es/control/form/form/form.d.ts +1 -5
  60. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.mjs +4 -3
  61. package/es/control/form/form-detail/form-page/form-page.mjs +2 -2
  62. package/es/control/grid/grid/grid-control.util.d.ts +2 -1
  63. package/es/control/grid/grid/grid.controller.d.ts +73 -5
  64. package/es/control/grid/grid/grid.controller.mjs +201 -6
  65. package/es/control/grid/grid/grid.css +1 -1
  66. package/es/control/grid/grid/grid.d.ts +6 -1
  67. package/es/control/grid/grid/grid.mjs +62 -10
  68. package/es/control/grid/grid/index.d.ts +5 -1
  69. package/es/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts +11 -2
  70. package/es/control/grid/grid-column/grid-field-column/grid-field-column.controller.mjs +53 -0
  71. package/es/control/grid/grid-column/grid-field-column/grid-field-column.css +1 -1
  72. package/es/control/grid/grid-column/grid-field-edit-column/grid-edit-item/grid-edit-item.css +1 -1
  73. package/es/control/index.d.ts +1 -0
  74. package/es/control/index.mjs +6 -0
  75. package/es/control/toolbar/index.d.ts +6 -2
  76. package/es/control/toolbar/toolbar.d.ts +3 -3
  77. package/es/control/tree/index.d.ts +7 -1
  78. package/es/control/tree/tree.controller.d.ts +23 -11
  79. package/es/control/tree/tree.controller.mjs +60 -44
  80. package/es/control/tree/tree.d.ts +7 -1
  81. package/es/control/tree/tree.mjs +27 -7
  82. package/es/control/tree/tree.service.d.ts +23 -4
  83. package/es/control/tree/tree.service.mjs +123 -50
  84. package/es/editor/autocomplete/ibiz-autocomplete/ibiz-autocomplete.d.ts +1 -1
  85. package/es/editor/cascader/ibiz-cascader/ibiz-cascader.d.ts +1 -1
  86. package/es/editor/code/code-editor.controller.d.ts +2 -2
  87. package/es/editor/data-picker/ibiz-picker/ibiz-picker.d.ts +1 -1
  88. package/es/editor/html/wang-editor/wang-editor.d.ts +1 -1
  89. package/es/editor/upload/use/use-ibiz-upload.d.ts +2 -2
  90. package/es/editor/upload/use/use-iview-upload.d.ts +2 -2
  91. package/es/index.mjs +9 -2
  92. package/es/panel-component/nav-pos/nav-pos.mjs +6 -4
  93. package/es/panel-component/nav-pos-index/nav-pos-index.controller.mjs +1 -2
  94. package/es/panel-component/nav-pos-index/nav-pos-index.mjs +3 -2
  95. package/es/panel-component/nav-pos-index/nav-pos-index.state.mjs +1 -1
  96. package/es/panel-component/panel-app-title/panel-app-title.css +1 -1
  97. package/es/panel-component/panel-app-title/panel-app-title.mjs +1 -1
  98. package/es/panel-component/panel-field/panel-field.controller.d.ts +1 -1
  99. package/es/view/portal-view/portal-view.mjs +1 -18
  100. package/es/view-engine/calendar-exp-view.engine.d.ts +25 -0
  101. package/es/view-engine/calendar-exp-view.engine.mjs +33 -0
  102. package/es/view-engine/calendar-view.engine.d.ts +5 -0
  103. package/es/view-engine/calendar-view.engine.mjs +6 -0
  104. package/es/view-engine/grid-view.engine.mjs +1 -1
  105. package/es/view-engine/index.mjs +10 -0
  106. package/es/view-engine/pickup-view2.engine.mjs +5 -1
  107. package/es/view-engine/wf-dyna-action-view.engine.mjs +1 -1
  108. package/es/view-engine/wf-dyna-start-view.engine.mjs +1 -1
  109. package/lib/common/index.cjs +0 -13
  110. package/lib/control/app-menu/app-menu.css +1 -1
  111. package/lib/control/calendar/calendar.cjs +213 -0
  112. package/lib/control/calendar/calendar.controller.cjs +164 -0
  113. package/lib/control/calendar/calendar.css +1 -0
  114. package/lib/control/calendar/calendar.provider.cjs +15 -0
  115. package/lib/control/calendar/calendar.service.cjs +90 -0
  116. package/lib/control/calendar/index.cjs +22 -0
  117. package/lib/control/chart/generator/chart-options-generator.cjs +1 -1
  118. package/lib/control/dashboard/dashboard.cjs +1 -0
  119. package/lib/control/dashboard/dashboard.css +1 -0
  120. package/lib/control/dashboard/portlet/portlet-layout/portlet-layout.cjs +1 -0
  121. package/lib/control/dashboard/portlet/portlet-part/portlet-part.controller.cjs +1 -1
  122. package/lib/control/data-view/data-view.controller.cjs +0 -1
  123. package/lib/control/data-view/data-view.css +1 -1
  124. package/lib/control/exp-bar/calendar-exp-bar/calendar-exp-bar.cjs +80 -0
  125. package/lib/control/exp-bar/calendar-exp-bar/calendar-exp-bar.controller.cjs +91 -0
  126. package/lib/control/exp-bar/calendar-exp-bar/calendar-exp-bar.css +0 -0
  127. package/lib/control/exp-bar/calendar-exp-bar/calendar-exp-bar.provider.cjs +15 -0
  128. package/lib/control/exp-bar/calendar-exp-bar/index.cjs +25 -0
  129. package/lib/control/exp-bar/exp-bar.controller.cjs +17 -11
  130. package/lib/control/exp-bar/index.cjs +6 -0
  131. package/lib/control/exp-bar/tree-exp-bar/tree-exp-bar.cjs +2 -1
  132. package/lib/control/exp-bar/tree-exp-bar/tree-exp-bar.controller.cjs +49 -25
  133. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.cjs +4 -3
  134. package/lib/control/form/form-detail/form-page/form-page.cjs +2 -2
  135. package/lib/control/grid/grid/grid.cjs +62 -10
  136. package/lib/control/grid/grid/grid.controller.cjs +200 -5
  137. package/lib/control/grid/grid/grid.css +1 -1
  138. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.controller.cjs +53 -0
  139. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.css +1 -1
  140. package/lib/control/grid/grid-column/grid-field-edit-column/grid-edit-item/grid-edit-item.css +1 -1
  141. package/lib/control/index.cjs +28 -16
  142. package/lib/control/tree/tree.cjs +27 -7
  143. package/lib/control/tree/tree.controller.cjs +59 -43
  144. package/lib/control/tree/tree.service.cjs +122 -49
  145. package/lib/index.cjs +79 -76
  146. package/lib/panel-component/nav-pos/nav-pos.cjs +6 -4
  147. package/lib/panel-component/nav-pos-index/nav-pos-index.cjs +3 -2
  148. package/lib/panel-component/nav-pos-index/nav-pos-index.controller.cjs +1 -2
  149. package/lib/panel-component/nav-pos-index/nav-pos-index.state.cjs +1 -1
  150. package/lib/panel-component/panel-app-title/panel-app-title.cjs +1 -1
  151. package/lib/panel-component/panel-app-title/panel-app-title.css +1 -1
  152. package/lib/view/portal-view/portal-view.cjs +1 -18
  153. package/lib/view-engine/calendar-exp-view.engine.cjs +35 -0
  154. package/lib/view-engine/calendar-view.engine.cjs +8 -0
  155. package/lib/view-engine/grid-view.engine.cjs +1 -1
  156. package/lib/view-engine/index.cjs +10 -0
  157. package/lib/view-engine/pickup-view2.engine.cjs +5 -1
  158. package/lib/view-engine/wf-dyna-action-view.engine.cjs +1 -1
  159. package/lib/view-engine/wf-dyna-start-view.engine.cjs +1 -1
  160. package/package.json +18 -18
  161. package/dist/chart-efad8ee0.js.map +0 -1
  162. package/dist/ibiz-markdown-editor-3745dfd5.js.map +0 -1
  163. package/es/common/keep-alive/keep-alive.d.ts +0 -45
  164. package/es/common/keep-alive/keep-alive.mjs +0 -293
  165. package/es/common/keep-alive/scheduler.d.ts +0 -41
  166. package/es/common/keep-alive/scheduler.mjs +0 -168
  167. package/lib/common/keep-alive/keep-alive.cjs +0 -304
  168. package/lib/common/keep-alive/scheduler.cjs +0 -178
@@ -1,4 +1,4 @@
1
- import { MDControlController, ITreeEvent, ITreeController, ITreeState, ITreeNodeData, MDCtrlLoadParams } from '@ibiz-template/runtime';
1
+ import { MDControlController, ITreeEvent, ITreeController, ITreeState, ITreeNodeData, MDCtrlLoadParams, TreeNodeData } from '@ibiz-template/runtime';
2
2
  import { IDEContextMenu, IDETree, IDETreeNode } from '@ibiz/model-core';
3
3
  import { TreeService } from './tree.service';
4
4
  /**
@@ -45,17 +45,8 @@ export declare class TreeController extends MDControlController<IDETree, ITreeSt
45
45
  * @return {*} {Promise<void>}
46
46
  */
47
47
  onDbTreeNodeClick(nodeData: ITreeNodeData): Promise<void>;
48
+ setActive(item: TreeNodeData): Promise<void>;
48
49
  setSelection(selection: IData[]): void;
49
- /**
50
- * 设置展开节点
51
- *
52
- * @author zk
53
- * @date 2023-07-10 08:07:29
54
- * @param {string[]} nodeKeys
55
- * @param {boolean} [isReplace=false]
56
- * @memberof TreeController
57
- */
58
- setExpandedKeys(nodeKeys: string[], isReplace?: boolean): void;
59
50
  /**
60
51
  * 获取节点模型
61
52
  * @author lxm
@@ -82,4 +73,25 @@ export declare class TreeController extends MDControlController<IDETree, ITreeSt
82
73
  * @param {IDEContextMenu} contextMenu
83
74
  */
84
75
  protected initContextMenuState(contextMenu: IDEContextMenu): void;
76
+ /**
77
+ * 解析树节点获取通用数据,和完整的上下文和视图参数。
78
+ * @author lxm
79
+ * @date 2023-08-09 11:45:34
80
+ * @protected
81
+ * @param {TreeNodeData} nodeData
82
+ */
83
+ protected parseTreeNodeData(nodeData: TreeNodeData): {
84
+ data: IData[];
85
+ context: IContext;
86
+ params: IParams;
87
+ };
88
+ /**
89
+ * 计算展开节点集合
90
+ * @author lxm
91
+ * @date 2023-08-09 05:19:36
92
+ * @param {ITreeNodeData[]} nodes
93
+ * @param {boolean} [isRoot=false]
94
+ * @return {*} {string[]}
95
+ */
96
+ calcExpandedKeys(nodes: ITreeNodeData[]): string[];
85
97
  }
@@ -1,16 +1,11 @@
1
1
  import { recursiveIterate } from '@ibiz-template/core';
2
- import { MDControlController, TreeStaticNodeData, getRootNode, UIActionUtil, ButtonContainerState, UIActionButtonState } from '@ibiz-template/runtime';
2
+ import { MDControlController, UIActionUtil, ButtonContainerState, UIActionButtonState } from '@ibiz-template/runtime';
3
3
  import { TreeService } from './tree.service.mjs';
4
4
 
5
5
  class TreeController extends MDControlController {
6
6
  initState() {
7
7
  super.initState();
8
- this.state.rootNode = new TreeStaticNodeData(
9
- getRootNode(this.model),
10
- void 0,
11
- { leaf: false }
12
- );
13
- this.state.expandedKeys = [];
8
+ this.state.defaultExpandedKeys = [];
14
9
  this.state.size = 0;
15
10
  this.state.contextMenus = {};
16
11
  }
@@ -33,15 +28,10 @@ class TreeController extends MDControlController {
33
28
  */
34
29
  async load(args = {}) {
35
30
  const isInitialLoad = args.isInitialLoad === true;
36
- const isLoadMore = args.isLoadMore === true;
37
31
  const nodes = await this.loadNodes();
32
+ this.state.expandedKeys = this.calcExpandedKeys(nodes);
38
33
  await this.afterLoad(args, nodes);
39
34
  this.state.isLoaded = true;
40
- if (isLoadMore) {
41
- this.state.items.push(...nodes);
42
- } else {
43
- this.state.items = nodes;
44
- }
45
35
  await this.evt.emit("onLoadSuccess", {
46
36
  isInitialLoad
47
37
  });
@@ -57,21 +47,31 @@ class TreeController extends MDControlController {
57
47
  async loadNodes(parentNode) {
58
48
  const params = await this.getFetchParams();
59
49
  const hasQuery = !!params.query;
60
- if (!parentNode) {
61
- parentNode = this.state.rootNode;
62
- }
50
+ const defaultExpandedKeys = !parentNode ? this.state.defaultExpandedKeys : void 0;
63
51
  await this.startLoading();
64
52
  let nodes;
65
53
  try {
66
54
  nodes = await this.service.fetchChildNodes(parentNode, {
67
55
  context: this.context.clone(),
68
56
  params,
69
- hasQuery
57
+ hasQuery,
58
+ defaultExpandedKeys
70
59
  }) || [];
71
60
  } finally {
72
61
  await this.endLoading();
73
62
  }
74
- parentNode.children = nodes;
63
+ if (parentNode) {
64
+ parentNode.children = nodes;
65
+ } else {
66
+ this.state.rootNodes = nodes;
67
+ }
68
+ this.state.items = [];
69
+ recursiveIterate(
70
+ { children: this.state.rootNodes },
71
+ (node) => {
72
+ this.state.items.push(node);
73
+ }
74
+ );
75
75
  return nodes;
76
76
  }
77
77
  /**
@@ -109,25 +109,13 @@ class TreeController extends MDControlController {
109
109
  await this.setActive(nodeData);
110
110
  }
111
111
  }
112
+ setActive(item) {
113
+ const nodeParams = this.parseTreeNodeData(item);
114
+ return this.evt.emit("onActive", { ...nodeParams, nodeData: item });
115
+ }
112
116
  setSelection(selection) {
113
117
  super.setSelection(selection);
114
118
  }
115
- /**
116
- * 设置展开节点
117
- *
118
- * @author zk
119
- * @date 2023-07-10 08:07:29
120
- * @param {string[]} nodeKeys
121
- * @param {boolean} [isReplace=false]
122
- * @memberof TreeController
123
- */
124
- setExpandedKeys(nodeKeys, isReplace = false) {
125
- if (isReplace) {
126
- this.state.expandedKeys = nodeKeys;
127
- } else {
128
- this.state.expandedKeys.push(...nodeKeys);
129
- }
130
- }
131
119
  /**
132
120
  * 获取节点模型
133
121
  * @author lxm
@@ -150,18 +138,10 @@ class TreeController extends MDControlController {
150
138
  */
151
139
  async doUIAction(uiActionId, nodeData, event) {
152
140
  const eventArgs = this.getEventArgs();
153
- if (nodeData.context) {
154
- eventArgs.context = Object.assign(
155
- eventArgs.context.clone(),
156
- nodeData.context
157
- );
158
- }
159
- if (nodeData.params) {
160
- eventArgs.params = { ...eventArgs.params, ...nodeData.params };
161
- }
141
+ const nodeParams = this.parseTreeNodeData(nodeData);
162
142
  await UIActionUtil.execAndResolved(uiActionId, {
163
143
  ...eventArgs,
164
- data: [nodeData.deData || nodeData],
144
+ ...nodeParams,
165
145
  event
166
146
  });
167
147
  }
@@ -195,6 +175,42 @@ class TreeController extends MDControlController {
195
175
  this.state.contextMenus[contextMenu.id] = menuState;
196
176
  this.state.contextMenus[contextMenu.id].update();
197
177
  }
178
+ /**
179
+ * 解析树节点获取通用数据,和完整的上下文和视图参数。
180
+ * @author lxm
181
+ * @date 2023-08-09 11:45:34
182
+ * @protected
183
+ * @param {TreeNodeData} nodeData
184
+ */
185
+ parseTreeNodeData(nodeData) {
186
+ return {
187
+ data: [{ ...nodeData, ...nodeData.deData || {} }],
188
+ context: Object.assign(this.context.clone(), nodeData.context || {}),
189
+ params: { ...this.params, ...nodeData.params || {} }
190
+ };
191
+ }
192
+ /**
193
+ * 计算展开节点集合
194
+ * @author lxm
195
+ * @date 2023-08-09 05:19:36
196
+ * @param {ITreeNodeData[]} nodes
197
+ * @param {boolean} [isRoot=false]
198
+ * @return {*} {string[]}
199
+ */
200
+ calcExpandedKeys(nodes) {
201
+ let expandedKeys = [];
202
+ recursiveIterate({ children: nodes }, (node) => {
203
+ var _a;
204
+ if ((_a = node.children) == null ? void 0 : _a.length) {
205
+ expandedKeys.push(node.id);
206
+ }
207
+ });
208
+ if (this.state.defaultExpandedKeys.length) {
209
+ expandedKeys.push(...this.state.defaultExpandedKeys);
210
+ expandedKeys = Array.from(new Set(expandedKeys));
211
+ }
212
+ return expandedKeys;
213
+ }
198
214
  }
199
215
 
200
216
  export { TreeController };
@@ -39,11 +39,14 @@ export declare const TreeControl: import("vue").DefineComponent<{
39
39
  type: BooleanConstructor;
40
40
  default: boolean;
41
41
  };
42
+ defaultExpandedKeys: {
43
+ type: PropType<string[]>;
44
+ };
42
45
  }, {
43
46
  c: TreeController;
44
47
  ns: import("@ibiz-template/core").Namespace;
45
48
  treeRef: import("vue").Ref<IData | undefined>;
46
- treeData: import("vue").ComputedRef<ITreeNodeData | ITreeNodeData[] | undefined>;
49
+ treeData: import("vue").ComputedRef<ITreeNodeData[]>;
47
50
  onCheck: (nodeData: ITreeNodeData, opts: {
48
51
  checkedNodes: ITreeNodeData[];
49
52
  }) => void;
@@ -88,6 +91,9 @@ export declare const TreeControl: import("vue").DefineComponent<{
88
91
  type: BooleanConstructor;
89
92
  default: boolean;
90
93
  };
94
+ defaultExpandedKeys: {
95
+ type: PropType<string[]>;
96
+ };
91
97
  }>>, {
92
98
  params: IParams;
93
99
  mdctrlActiveMode: number;
@@ -1,5 +1,6 @@
1
1
  import { defineComponent, ref, computed, nextTick, resolveComponent, createVNode } from 'vue';
2
2
  import { useControlController, useNamespace } from '@ibiz-template/vue3-util';
3
+ import { TreeNodeData } from '@ibiz-template/runtime';
3
4
  import { TreeController } from './tree.controller.mjs';
4
5
  import './tree.css';
5
6
 
@@ -40,6 +41,9 @@ const TreeControl = /* @__PURE__ */ defineComponent({
40
41
  singleSelect: {
41
42
  type: Boolean,
42
43
  default: true
44
+ },
45
+ defaultExpandedKeys: {
46
+ type: Array
43
47
  }
44
48
  },
45
49
  setup() {
@@ -56,16 +60,33 @@ const TreeControl = /* @__PURE__ */ defineComponent({
56
60
  };
57
61
  const treeData = computed(() => {
58
62
  if (!c.state.isLoaded) {
59
- return void 0;
63
+ return [];
60
64
  }
61
- return c.model.rootVisible ? c.state.rootNode : c.state.rootNode.children;
65
+ return c.model.rootVisible ? c.state.rootNodes : c.state.rootNodes.reduce((result, nodeData) => {
66
+ if (nodeData.children) {
67
+ return result.concat(nodeData.children);
68
+ }
69
+ return result;
70
+ }, []);
62
71
  });
63
72
  const loadData = async (item, callback) => {
64
- if (!c.state.isLoaded) {
73
+ let nodes;
74
+ if (item.level === 0) {
75
+ nodes = treeData.value;
76
+ ibiz.log.debug("\u521D\u59CB\u52A0\u8F7D");
77
+ } else if (item.data instanceof TreeNodeData) {
78
+ if (item.data.children) {
79
+ ibiz.log.debug("\u8282\u70B9\u5C55\u5F00\u52A0\u8F7D-\u672C\u5730", item.data);
80
+ nodes = item.data.children;
81
+ } else {
82
+ ibiz.log.debug("\u8282\u70B9\u5C55\u5F00\u52A0\u8F7D-\u8FDC\u7A0B", item.data);
83
+ nodes = await c.loadNodes(item.data);
84
+ }
85
+ } else {
86
+ ibiz.log.error("\u672A\u8003\u8651\u5230\u7684\u60C5\u51B5", item, item.data);
65
87
  return;
66
88
  }
67
- const nodes = await c.loadNodes(item.data);
68
- setCheckedNodes();
89
+ ibiz.log.debug("\u7ED9\u6811\u8FD4\u56DE\u503C", nodes);
69
90
  callback(nodes);
70
91
  };
71
92
  let selectionWait = false;
@@ -216,9 +237,8 @@ const TreeControl = /* @__PURE__ */ defineComponent({
216
237
  return createVNode(resolveComponent("iBizControlBase"), {
217
238
  "controller": this.c
218
239
  }, {
219
- default: () => [this.c.state.isCreated && createVNode(resolveComponent("el-tree"), {
240
+ default: () => [this.c.state.isLoaded && createVNode(resolveComponent("el-tree"), {
220
241
  "ref": "treeRef",
221
- "data": this.treeData,
222
242
  "node-key": "id",
223
243
  "highlight-current": true,
224
244
  "expand-on-click-node": false,
@@ -1,4 +1,4 @@
1
- import { ITreeNodeData, MDControlService, TreeCodeListNodeData } from '@ibiz-template/runtime';
1
+ import { ITreeNodeData, MDControlService, TreeCodeListNodeData, TreeDataSetNodeData } from '@ibiz-template/runtime';
2
2
  import { IDETree, IDETreeCodeListNode, IDETreeDataSetNode, IDETreeNode, IDETreeNodeRS } from '@ibiz/model-core';
3
3
  export interface TreeFetchOpts {
4
4
  /**
@@ -22,6 +22,13 @@ export interface TreeFetchOpts {
22
22
  * @memberof TreeFetchOpts
23
23
  */
24
24
  params: IParams;
25
+ /**
26
+ * 默认展开节点集合
27
+ * @author lxm
28
+ * @date 2023-08-08 03:23:52
29
+ * @type {string[]}
30
+ */
31
+ defaultExpandedKeys?: string[];
25
32
  /**
26
33
  * 是否是叶子节点
27
34
  * @author lxm
@@ -48,6 +55,18 @@ export declare class TreeService extends MDControlService<IDETree> {
48
55
  * @memberof TreeService
49
56
  */
50
57
  fetchChildNodes(parentNodeData: ITreeNodeData | undefined, opts: TreeFetchOpts): Promise<ITreeNodeData[] | undefined>;
58
+ /**
59
+ * 通过节点类型加载节点数据
60
+ * @author lxm
61
+ * @date 2023-08-09 03:22:47
62
+ * @protected
63
+ * @param {IDETreeNode} nodeModel 节点模型
64
+ * @param {(IDETreeNodeRS | undefined)} nodeRS 与上层节点的节点关系
65
+ * @param {(ITreeNodeData | undefined)} parentNodeData 上层节点数据
66
+ * @param {TreeFetchOpts} opts 额外参数
67
+ * @return {*} {Promise<ITreeNodeData[]>}
68
+ */
69
+ protected fetchNodeDatasByType(nodeModel: IDETreeNode, nodeRS: IDETreeNodeRS | undefined, parentNodeData: ITreeNodeData | undefined, opts: TreeFetchOpts): Promise<ITreeNodeData[]>;
51
70
  /**
52
71
  * 获取静态节点数据
53
72
  *
@@ -57,7 +76,7 @@ export declare class TreeService extends MDControlService<IDETree> {
57
76
  * @returns {*}
58
77
  * @memberof TreeService
59
78
  */
60
- protected getStaticNodeData(nodeModel: IDETreeNode, nodeRS: IDETreeNodeRS, parentNodeData: ITreeNodeData | undefined, opts: TreeFetchOpts): Promise<ITreeNodeData>;
79
+ protected getStaticNodeData(nodeModel: IDETreeNode, nodeRS: IDETreeNodeRS | undefined, parentNodeData: ITreeNodeData | undefined, opts: TreeFetchOpts): Promise<ITreeNodeData>;
61
80
  /**
62
81
  * 获取节点关系过滤的上下文和视图参数
63
82
  *
@@ -81,7 +100,7 @@ export declare class TreeService extends MDControlService<IDETree> {
81
100
  * @returns {*}
82
101
  * @memberof TreeService
83
102
  */
84
- protected getDENodeDatas(nodeModel: IDETreeDataSetNode, nodeRS: IDETreeNodeRS, parentNodeData: ITreeNodeData | undefined, opts: TreeFetchOpts): Promise<any>;
103
+ protected getDENodeDatas(nodeModel: IDETreeDataSetNode, nodeRS: IDETreeNodeRS | undefined, parentNodeData: ITreeNodeData | undefined, opts: TreeFetchOpts): Promise<TreeDataSetNodeData[]>;
85
104
  /**
86
105
  * 获取代码表节点数据
87
106
  *
@@ -90,5 +109,5 @@ export declare class TreeService extends MDControlService<IDETree> {
90
109
  * @param {TreeFetchOpts} _opts
91
110
  * @memberof TreeService
92
111
  */
93
- protected getCodeListNodeDatas(nodeModel: IDETreeCodeListNode, nodeRS: IDETreeNodeRS, parentNodeData: ITreeNodeData | undefined, opts: TreeFetchOpts): Promise<TreeCodeListNodeData[]>;
112
+ protected getCodeListNodeDatas(nodeModel: IDETreeCodeListNode, nodeRS: IDETreeNodeRS | undefined, parentNodeData: ITreeNodeData | undefined, opts: TreeFetchOpts): Promise<TreeCodeListNodeData[]>;
94
113
  }
@@ -1,4 +1,5 @@
1
- import { MDControlService, getChildNodeRSs, getTreeNode, TreeStaticNodeData, calcDeCodeNameById, calcNavParams, TreeDataSetNodeData, TreeCodeListNodeData } from '@ibiz-template/runtime';
1
+ import { ModelError } from '@ibiz-template/core';
2
+ import { MDControlService, getRootNode, getChildNodeRSs, getTreeNode, TreeStaticNodeData, calcDeCodeNameById, calcNavParams, TreeDataSetNodeData, TreeCodeListNodeData } from '@ibiz-template/runtime';
2
3
 
3
4
  class TreeService extends MDControlService {
4
5
  /**
@@ -11,61 +12,117 @@ class TreeService extends MDControlService {
11
12
  */
12
13
  async fetchChildNodes(parentNodeData, opts) {
13
14
  const { hasQuery } = opts;
14
- const childNodeRSs = getChildNodeRSs(this.model, {
15
- parentId: parentNodeData == null ? void 0 : parentNodeData.nodeId,
16
- hasQuery
17
- });
18
- if (childNodeRSs.length === 0) {
19
- return;
20
- }
21
- const results = await Promise.allSettled(
22
- childNodeRSs.map(async (childNodeRS) => {
23
- const childNode = getTreeNode(
24
- this.model,
25
- childNodeRS.childDETreeNodeId
26
- );
27
- const leaf = getChildNodeRSs(this.model, {
28
- parentId: childNode.id,
29
- hasQuery
30
- }).length === 0;
31
- const tempOpts = { ...opts, leaf };
32
- if (childNode.treeNodeType === "STATIC") {
33
- const nodeData = await this.getStaticNodeData(
34
- childNode,
35
- childNodeRS,
36
- parentNodeData,
37
- tempOpts
15
+ let childrenNodes = [];
16
+ if (!parentNodeData) {
17
+ const rootNode = getRootNode(this.model);
18
+ childrenNodes = await this.fetchNodeDatasByType(
19
+ rootNode,
20
+ void 0,
21
+ void 0,
22
+ opts
23
+ );
24
+ } else {
25
+ const childNodeRSs = getChildNodeRSs(this.model, {
26
+ parentId: parentNodeData == null ? void 0 : parentNodeData.nodeId,
27
+ hasQuery
28
+ });
29
+ if (childNodeRSs.length === 0) {
30
+ return;
31
+ }
32
+ const results = await Promise.allSettled(
33
+ childNodeRSs.map(async (childNodeRS) => {
34
+ const childNode = getTreeNode(
35
+ this.model,
36
+ childNodeRS.childDETreeNodeId
38
37
  );
39
- return [nodeData];
40
- }
41
- if (childNode.treeNodeType === "DE") {
42
- return this.getDENodeDatas(
38
+ return this.fetchNodeDatasByType(
43
39
  childNode,
44
40
  childNodeRS,
45
41
  parentNodeData,
46
- tempOpts
42
+ opts
47
43
  );
44
+ })
45
+ );
46
+ results.forEach((result) => {
47
+ if (result.status === "fulfilled" && result.value) {
48
+ childrenNodes.push(...result.value);
49
+ } else if (result.status === "rejected") {
50
+ ibiz.log.error(result.reason);
48
51
  }
49
- if (childNode.treeNodeType === "CODELIST") {
50
- return this.getCodeListNodeDatas(
51
- childNode,
52
- childNodeRS,
52
+ });
53
+ }
54
+ return childrenNodes;
55
+ }
56
+ /**
57
+ * 通过节点类型加载节点数据
58
+ * @author lxm
59
+ * @date 2023-08-09 03:22:47
60
+ * @protected
61
+ * @param {IDETreeNode} nodeModel 节点模型
62
+ * @param {(IDETreeNodeRS | undefined)} nodeRS 与上层节点的节点关系
63
+ * @param {(ITreeNodeData | undefined)} parentNodeData 上层节点数据
64
+ * @param {TreeFetchOpts} opts 额外参数
65
+ * @return {*} {Promise<ITreeNodeData[]>}
66
+ */
67
+ async fetchNodeDatasByType(nodeModel, nodeRS, parentNodeData, opts) {
68
+ const leaf = getChildNodeRSs(this.model, {
69
+ parentId: nodeModel.id,
70
+ hasQuery: opts.hasQuery
71
+ }).length === 0;
72
+ const tempOpts = { ...opts, leaf };
73
+ let result = [];
74
+ switch (nodeModel.treeNodeType) {
75
+ case "STATIC":
76
+ {
77
+ const nodeData = await this.getStaticNodeData(
78
+ nodeModel,
79
+ nodeRS,
53
80
  parentNodeData,
54
81
  tempOpts
55
82
  );
83
+ result = [nodeData];
56
84
  }
57
- return void 0;
58
- })
59
- );
60
- const childrenNodes = [];
61
- results.forEach((result) => {
62
- if (result.status === "fulfilled" && result.value) {
63
- childrenNodes.push(...result.value);
64
- } else if (result.status === "rejected") {
65
- ibiz.log.error(result.reason);
66
- }
67
- });
68
- return childrenNodes;
85
+ break;
86
+ case "DE":
87
+ result = await this.getDENodeDatas(
88
+ nodeModel,
89
+ nodeRS,
90
+ parentNodeData,
91
+ tempOpts
92
+ );
93
+ break;
94
+ case "CODELIST":
95
+ result = await this.getCodeListNodeDatas(
96
+ nodeModel,
97
+ nodeRS,
98
+ parentNodeData,
99
+ tempOpts
100
+ );
101
+ break;
102
+ default:
103
+ throw new ModelError(
104
+ nodeModel,
105
+ `${nodeModel.treeNodeType}\u8282\u70B9\u7C7B\u578B\u672A\u652F\u6301`
106
+ );
107
+ }
108
+ const { expandFirstOnly, expanded, rootNode } = nodeModel;
109
+ const isExpandedRoot = rootNode && !this.model.rootVisible;
110
+ if (!leaf) {
111
+ await Promise.all(
112
+ result.map(async (childNode, index) => {
113
+ if (expanded && // 全展开合只展开首节点expanded都为true
114
+ (!expandFirstOnly || expandFirstOnly && index === 0) || opts.defaultExpandedKeys.includes(childNode.id) || // 外部回显给的默认展开节点集合有的展开
115
+ isExpandedRoot) {
116
+ const subChildrenNodes = await this.fetchChildNodes(
117
+ childNode,
118
+ opts
119
+ );
120
+ childNode.children = subChildrenNodes;
121
+ }
122
+ })
123
+ );
124
+ }
125
+ return result;
69
126
  }
70
127
  /**
71
128
  * 获取静态节点数据
@@ -80,7 +137,7 @@ class TreeService extends MDControlService {
80
137
  const nodeData = new TreeStaticNodeData(
81
138
  nodeModel,
82
139
  parentNodeData,
83
- { parentValueLevel: nodeRS.parentValueLevel, leaf: !!opts.leaf }
140
+ { parentValueLevel: nodeRS == null ? void 0 : nodeRS.parentValueLevel, leaf: !!opts.leaf }
84
141
  );
85
142
  if (nodeModel.expanded) {
86
143
  nodeData.children = await this.fetchChildNodes(nodeData, opts);
@@ -128,7 +185,13 @@ class TreeService extends MDControlService {
128
185
  derValue = parentData.value;
129
186
  }
130
187
  const { resultContext, resultParams } = calcNavParams(
131
- { deName, navFilter, pickupDEFName, navParams, navContexts },
188
+ {
189
+ deName,
190
+ navFilter: `n_${navFilter}_eq`,
191
+ pickupDEFName,
192
+ navParams,
193
+ navContexts
194
+ },
132
195
  { derValue, context, params, data }
133
196
  );
134
197
  Object.assign(context, resultContext);
@@ -151,7 +214,12 @@ class TreeService extends MDControlService {
151
214
  */
152
215
  async getDENodeDatas(nodeModel, nodeRS, parentNodeData, opts) {
153
216
  const { appDEDataSetId, appDataEntityId } = nodeModel;
154
- const { context, params, navContext, navParams } = this.getNodeRSFilterParams(nodeRS, parentNodeData, opts);
217
+ const { context, params, navContext, navParams } = nodeRS ? this.getNodeRSFilterParams(nodeRS, parentNodeData, opts) : {
218
+ context: opts.context,
219
+ params: opts.params,
220
+ navContext: {},
221
+ navParams: {}
222
+ };
155
223
  params.size = nodeModel.maxSize || 1e3;
156
224
  if (nodeModel.sortAppDEFieldId && nodeModel.sortDir) {
157
225
  Object.assign(params, {
@@ -186,7 +254,12 @@ class TreeService extends MDControlService {
186
254
  * @memberof TreeService
187
255
  */
188
256
  async getCodeListNodeDatas(nodeModel, nodeRS, parentNodeData, opts) {
189
- const { context, params, navContext, navParams } = this.getNodeRSFilterParams(nodeRS, parentNodeData, opts);
257
+ const { context, params, navContext, navParams } = nodeRS ? this.getNodeRSFilterParams(nodeRS, parentNodeData, opts) : {
258
+ context: opts.context,
259
+ params: opts.params,
260
+ navContext: {},
261
+ navParams: {}
262
+ };
190
263
  const items = await this.app.codeList.get(
191
264
  nodeModel.codeListId,
192
265
  context,
@@ -23,7 +23,7 @@ export declare const IBizAutoComplete: import("vue").DefineComponent<{
23
23
  triggerOnFocus: import("vue").ComputedRef<boolean>;
24
24
  autoCompleteClearable: import("vue").ComputedRef<boolean>;
25
25
  autoCompleteRef: Ref<any>;
26
- onSearch: (query: string, cb?: Function) => Promise<void>;
26
+ onSearch: (query: string, cb?: ((_items: IData[]) => void) | undefined) => Promise<void>;
27
27
  onClear: () => void;
28
28
  onFocus: () => void;
29
29
  onBlur: () => void;
@@ -36,7 +36,7 @@ export declare const IBizCascader: import("vue").DefineComponent<{
36
36
  getSize: () => "small" | "large" | "default";
37
37
  getIsLeaf: (data: IData, _node: IData) => boolean;
38
38
  getDisabled: (_data: IData, node: IData) => boolean;
39
- loadData: (node: IData, resolve: Function) => Promise<void>;
39
+ loadData: (node: IData, resolve: (_n: IData[]) => void) => Promise<void>;
40
40
  treeRef: Ref<IData | null>;
41
41
  handleTreeClear: () => void;
42
42
  handleRemoveTag: () => void;
@@ -14,12 +14,12 @@ export declare class CodeEditorController extends EditorController<ICode> {
14
14
  * @date 2023-07-21 04:52:16
15
15
  * @readonly
16
16
  */
17
- get language(): any;
17
+ get language(): string;
18
18
  /**
19
19
  * 主题
20
20
  * @author lxm
21
21
  * @date 2023-07-21 04:53:37
22
22
  * @readonly
23
23
  */
24
- get theme(): any;
24
+ get theme(): string;
25
25
  }
@@ -25,7 +25,7 @@ export declare const IBizPicker: import("vue").DefineComponent<{
25
25
  openPickUpView: (e: MouseEvent) => Promise<void>;
26
26
  openLinkView: (e: MouseEvent) => Promise<void>;
27
27
  onACSelect: (item: IData) => Promise<void>;
28
- onSearch: (query: string, cb?: Function) => Promise<void>;
28
+ onSearch: (query: string, cb?: ((_items: IData[]) => void) | undefined) => Promise<void>;
29
29
  editorRef: Ref<any>;
30
30
  onClear: () => void;
31
31
  onFocus: () => void;
@@ -31,7 +31,7 @@ declare const IBizHtml: import("vue").DefineComponent<{
31
31
  handleFocus: (_editor: IDomEditor) => void;
32
32
  handleBlur: (_editor: IDomEditor) => void;
33
33
  customAlert: (info: string, type: string) => void;
34
- customPaste: (editor: IDomEditor, event: ClipboardEvent, callback: Function) => void;
34
+ customPaste: (editor: IDomEditor, event: ClipboardEvent, callback: (_n: boolean) => void) => void;
35
35
  insertText: (str: string) => void;
36
36
  printHtml: () => void;
37
37
  disable: () => void;
@@ -83,13 +83,13 @@ export declare function useIBizUpload(opts: {
83
83
  fileList: Ref<{
84
84
  name: string;
85
85
  id: string;
86
- status?: "cancel" | "finished" | "uploading" | "fail" | undefined;
86
+ status?: 'uploading' | 'finished' | 'fail' | 'cancel' | undefined;
87
87
  percentage?: number | undefined;
88
88
  url?: string | undefined;
89
89
  fileName?: string | undefined;
90
90
  fileExt?: string | undefined;
91
91
  isImage?: boolean | undefined;
92
92
  }[]>;
93
- uploadState: Ref<"done" | "loading" | "undo">;
93
+ uploadState: Ref<'loading' | 'undo' | 'done'>;
94
94
  };
95
95
  export declare function openImagePreview(file: FileInfo): Promise<void>;