@ibiz-template/vue3-components 0.7.41-alpha.19 → 0.7.41-alpha.20

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 (126) hide show
  1. package/dist/index-hzGAQk1t.js +11 -0
  2. package/dist/index.min.css +1 -1
  3. package/dist/index.system.min.js +1 -1
  4. package/dist/map-chart-ICyEpflN.js +1 -0
  5. package/dist/map-chart-user-7zfETImI.js +1 -0
  6. package/dist/{wang-editor-exnzt_I1.js → wang-editor-qbGW8Rzj.js} +1 -1
  7. package/dist/{xlsx-util-fuTLwrKA.js → xlsx-util-mN5WSU7v.js} +1 -1
  8. package/es/common/control-navigation/control-navigation.mjs +8 -9
  9. package/es/common/control-navigation/provider/calendar-navigation.provider.d.ts +6 -1
  10. package/es/common/control-navigation/provider/calendar-navigation.provider.mjs +21 -10
  11. package/es/common/control-navigation/provider/map-navigation.provider.d.ts +1 -1
  12. package/es/common/control-navigation/provider/map-navigation.provider.mjs +32 -15
  13. package/es/common/control-navigation/provider/navigation-base.provider.d.ts +13 -0
  14. package/es/common/control-navigation/provider/navigation-base.provider.mjs +25 -10
  15. package/es/common/control-navigation/provider/tree-navigation.provider.d.ts +2 -2
  16. package/es/common/control-navigation/provider/tree-navigation.provider.mjs +5 -8
  17. package/es/common/custom-filter-condition/custom-filter-condition.d.ts +3 -0
  18. package/es/common/map-chart/map-chart.d.ts +9 -1
  19. package/es/common/map-chart/map-chart.mjs +6 -4
  20. package/es/common/map-chart/map-manager.d.ts +2 -1
  21. package/es/common/map-chart/map-manager.mjs +3 -4
  22. package/es/common/map-chart-user/map-chart-user.css +1 -1
  23. package/es/common/map-chart-user/map-chart-user.mjs +2 -1
  24. package/es/common/map-chart-user/map-user-manager.mjs +1 -1
  25. package/es/common/view-message/view-message.d.ts +3 -0
  26. package/es/control/calendar/calendar.css +1 -1
  27. package/es/control/calendar/calendar.d.ts +1 -1
  28. package/es/control/calendar/calendar.mjs +19 -15
  29. package/es/control/grid/grid/grid-control.util.mjs +29 -29
  30. package/es/control/grid/grid/grid.mjs +20 -17
  31. package/es/control/map/map.mjs +24 -22
  32. package/es/control/tree/tree.mjs +2 -14
  33. package/es/control/tree-grid/index.d.ts +10 -10
  34. package/es/control/tree-grid/tree-grid.d.ts +11 -11
  35. package/es/control/tree-grid/tree-grid.mjs +120 -67
  36. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.css +1 -1
  37. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.d.ts +15 -12
  38. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.mjs +95 -61
  39. package/es/editor/data-picker/ibiz-picker/ibiz-picker.css +1 -1
  40. package/es/editor/data-picker/ibiz-picker/ibiz-picker.d.ts +12 -11
  41. package/es/editor/data-picker/ibiz-picker/ibiz-picker.mjs +36 -43
  42. package/es/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.d.ts +4 -4
  43. package/es/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.mjs +9 -9
  44. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.d.ts +27 -23
  45. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.mjs +53 -42
  46. package/es/editor/data-picker/picker-editor.controller.d.ts +2 -2
  47. package/es/editor/data-picker/picker-editor.controller.mjs +6 -6
  48. package/es/editor/date-range-select/date-range-select-picker/date-range-select.d.ts +4 -4
  49. package/es/locale/en/index.d.ts +1 -0
  50. package/es/locale/zh-CN/index.d.ts +1 -0
  51. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.d.ts +1 -1
  52. package/es/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.d.ts +12 -0
  53. package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.d.ts +6 -0
  54. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.d.ts +1 -1
  55. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.d.ts +1 -1
  56. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.d.ts +1 -1
  57. package/es/panel-component/app-switch/app-switch.d.ts +1 -1
  58. package/es/panel-component/auth-sso/auth-sso.css +1 -1
  59. package/es/panel-component/auth-sso/auth-sso.d.ts +8 -2
  60. package/es/panel-component/auth-sso/auth-sso.mjs +78 -6
  61. package/es/panel-component/auth-sso/index.d.ts +7 -1
  62. package/es/panel-component/coop-pos/coop-pos.d.ts +1 -1
  63. package/es/panel-component/global-search/global-search.d.ts +1 -1
  64. package/es/panel-component/index-actions/index-actions.d.ts +1 -0
  65. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.d.ts +2 -2
  66. package/es/panel-component/nav-pos-index/nav-pos-index.controller.d.ts +1 -1
  67. package/es/panel-component/nav-pos-index/nav-pos-index.controller.mjs +1 -1
  68. package/es/panel-component/panel-app-title/panel-app-title.controller.d.ts +1 -1
  69. package/es/panel-component/panel-app-title/panel-app-title.controller.mjs +1 -1
  70. package/es/panel-component/user-action/user-action.d.ts +1 -1
  71. package/es/panel-component/view-message/view-message.d.ts +1 -1
  72. package/es/panel-component/view-msg-pos/view-msg-pos.d.ts +1 -1
  73. package/es/view-engine/mpickup-view-engine.d.ts +4 -6
  74. package/es/view-engine/mpickup-view-engine.mjs +12 -14
  75. package/es/view-engine/pickup-data-view.engine.d.ts +12 -0
  76. package/es/view-engine/pickup-data-view.engine.mjs +31 -0
  77. package/es/view-engine/pickup-grid-view.engine.d.ts +12 -0
  78. package/es/view-engine/pickup-grid-view.engine.mjs +31 -0
  79. package/es/view-engine/pickup-tree-view.engine.d.ts +6 -16
  80. package/es/view-engine/pickup-tree-view.engine.mjs +15 -60
  81. package/es/view-engine/pickup-view.engine.d.ts +6 -0
  82. package/es/view-engine/pickup-view.engine.mjs +11 -0
  83. package/es/web-app/App.mjs +17 -1
  84. package/es/web-app/guard/auth-guard/auth-guard.mjs +1 -0
  85. package/es/web-app/util/unauthorized-handler/unauthorized-handler.d.ts +7 -0
  86. package/es/web-app/util/unauthorized-handler/unauthorized-handler.mjs +22 -1
  87. package/lib/common/control-navigation/control-navigation.cjs +8 -9
  88. package/lib/common/control-navigation/provider/calendar-navigation.provider.cjs +21 -10
  89. package/lib/common/control-navigation/provider/map-navigation.provider.cjs +32 -15
  90. package/lib/common/control-navigation/provider/navigation-base.provider.cjs +25 -10
  91. package/lib/common/control-navigation/provider/tree-navigation.provider.cjs +5 -8
  92. package/lib/common/map-chart/map-chart.cjs +6 -4
  93. package/lib/common/map-chart/map-manager.cjs +3 -4
  94. package/lib/common/map-chart-user/map-chart-user.cjs +1 -0
  95. package/lib/common/map-chart-user/map-chart-user.css +1 -1
  96. package/lib/common/map-chart-user/map-user-manager.cjs +1 -1
  97. package/lib/control/calendar/calendar.cjs +19 -15
  98. package/lib/control/calendar/calendar.css +1 -1
  99. package/lib/control/grid/grid/grid-control.util.cjs +29 -29
  100. package/lib/control/grid/grid/grid.cjs +20 -17
  101. package/lib/control/map/map.cjs +24 -22
  102. package/lib/control/tree/tree.cjs +2 -14
  103. package/lib/control/tree-grid/tree-grid.cjs +119 -66
  104. package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.cjs +94 -60
  105. package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.css +1 -1
  106. package/lib/editor/data-picker/ibiz-picker/ibiz-picker.cjs +36 -43
  107. package/lib/editor/data-picker/ibiz-picker/ibiz-picker.css +1 -1
  108. package/lib/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.cjs +9 -9
  109. package/lib/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.cjs +52 -41
  110. package/lib/editor/data-picker/picker-editor.controller.cjs +6 -6
  111. package/lib/panel-component/auth-sso/auth-sso.cjs +77 -5
  112. package/lib/panel-component/auth-sso/auth-sso.css +1 -1
  113. package/lib/panel-component/nav-pos-index/nav-pos-index.controller.cjs +1 -1
  114. package/lib/panel-component/panel-app-title/panel-app-title.controller.cjs +1 -1
  115. package/lib/view-engine/mpickup-view-engine.cjs +12 -14
  116. package/lib/view-engine/pickup-data-view.engine.cjs +31 -0
  117. package/lib/view-engine/pickup-grid-view.engine.cjs +31 -0
  118. package/lib/view-engine/pickup-tree-view.engine.cjs +15 -60
  119. package/lib/view-engine/pickup-view.engine.cjs +11 -0
  120. package/lib/web-app/App.cjs +16 -0
  121. package/lib/web-app/guard/auth-guard/auth-guard.cjs +1 -0
  122. package/lib/web-app/util/unauthorized-handler/unauthorized-handler.cjs +22 -1
  123. package/package.json +6 -6
  124. package/dist/index-BoV5htv9.js +0 -11
  125. package/dist/map-chart-3dojS1dZ.js +0 -1
  126. package/dist/map-chart-user-NYROZ-6g.js +0 -1
@@ -277,31 +277,37 @@ function useITableEvent(c) {
277
277
  if (!forbidChange && !c.state.isLoading)
278
278
  c.setSelection(selection);
279
279
  }
280
+ const elSelection = computed(() => {
281
+ const items = [];
282
+ const keys = c.state.selectedData.map((selected) => selected.srfkey);
283
+ if (tableRef.value)
284
+ recursiveIterate(
285
+ { children: tableRef.value.store.states.data.value },
286
+ (item) => {
287
+ if (keys.includes(item.srfkey))
288
+ items.push(item);
289
+ }
290
+ );
291
+ return items;
292
+ });
280
293
  watch(
281
294
  [
282
295
  () => tableRef.value,
283
296
  () => c.state.isLoaded,
284
297
  () => c.state.selectedData
285
298
  ],
286
- ([table, isLoaded, newVal]) => {
299
+ ([table, isLoaded, _newVal]) => {
287
300
  if (!isLoaded || !table)
288
301
  return;
289
- if (c.state.singleSelect) {
290
- if (newVal[0]) {
291
- tableRef.value.setCurrentRow(newVal[0], true);
302
+ forbidChange = true;
303
+ setTimeout(() => {
304
+ if (c.state.singleSelect) {
305
+ table.setCurrentRow(elSelection.value[0]);
292
306
  } else {
293
- tableRef.value.setCurrentRow();
307
+ table.store.states.selection.value = elSelection.value;
294
308
  }
295
- } else {
296
- forbidChange = true;
297
- tableRef.value.clearSelection();
298
- setTimeout(() => {
299
- newVal.forEach(
300
- (item) => tableRef.value.toggleRowSelection(item, true)
301
- );
302
- forbidChange = false;
303
- });
304
- }
309
+ forbidChange = false;
310
+ });
305
311
  }
306
312
  );
307
313
  function onSortChange(opts) {
@@ -346,9 +352,8 @@ function useITableEvent(c) {
346
352
  let activeClassName = "";
347
353
  if (c.state.selectedData.length > 0) {
348
354
  c.state.selectedData.forEach((data) => {
349
- if (data === row) {
355
+ if (data === row || data.srfkey === row.srfkey)
350
356
  activeClassName = "current-row";
351
- }
352
357
  });
353
358
  }
354
359
  const rowState = c.findRowState(row);
@@ -446,22 +451,17 @@ function useAppGridPagination(c) {
446
451
  }
447
452
  function useAppGridBase(c, props, tableRef) {
448
453
  const initSimpleData = () => {
449
- if (!props.data) {
454
+ if (!props.data)
450
455
  return;
451
- }
452
- c.state.items = props.data;
456
+ const items = props.data.map((item) => new ControlVO(item));
457
+ c.state.items = items;
453
458
  if (c.runMode === "DESIGN") {
454
- c.state.simpleData = props.data;
459
+ c.state.simpleData = items;
455
460
  c.state.total = props.data.length;
456
461
  c.state.curPage = 1;
457
462
  c.state.items = chunk(c.state.simpleData, c.state.size)[c.state.curPage - 1] || [];
458
463
  }
459
- c.state.rows = c.state.items.map((item) => {
460
- const row = new GridRowState(new ControlVO(item), c);
461
- return row;
462
- });
463
- c.calcAggResult(c.state.items);
464
- c.calcTotalData();
464
+ c.afterLoad({ isInitialLoad: true }, c.state.items);
465
465
  };
466
466
  const defaultSort = computed(() => {
467
467
  var _a;
@@ -482,9 +482,8 @@ function useAppGridBase(c, props, tableRef) {
482
482
  watch(
483
483
  () => props.data,
484
484
  () => {
485
- if (props.isSimple) {
485
+ if (props.isSimple)
486
486
  initSimpleData();
487
- }
488
487
  },
489
488
  {
490
489
  deep: true
@@ -501,6 +500,7 @@ function useAppGridBase(c, props, tableRef) {
501
500
  if (grouprowmode === "NEWROW") {
502
501
  result.push({
503
502
  ...item,
503
+ srfkey: item.key,
504
504
  tempsrfkey: item.key,
505
505
  isGroupRow: true
506
506
  });
@@ -570,37 +570,40 @@ const GridControl = /* @__PURE__ */ defineComponent({
570
570
  "style": this.headerCssVars
571
571
  }, {
572
572
  default: () => [createVNode(resolveComponent("el-table"), mergeProps({
573
+ "border": true,
573
574
  "ref": "tableRef",
575
+ "data": this.tableData,
576
+ "row-key": "tempsrfkey",
577
+ "tooltip-effect": "light",
574
578
  "class": this.ns.e("table"),
579
+ "scrollbar-always-on": true,
580
+ "onRowClick": this.onRowClick,
581
+ "span-method": this.spanMethod,
575
582
  "default-sort": this.defaultSort,
576
- "border": true,
577
- "show-header": !this.c.state.hideHeader,
578
583
  "show-summary": this.c.enableAgg,
584
+ "onSortChange": this.onSortChange,
585
+ "onRowDblclick": this.onDbRowClick,
579
586
  "summary-method": this.summaryMethod,
580
- "highlight-current-row": state.singleSelect,
581
- "row-class-name": this.handleRowClassName,
582
- "header-cell-class-name": this.handleHeaderCellClassName,
583
- "row-key": "tempsrfkey",
584
- "data": this.tableData,
587
+ "onHeaderDragend": this.headerDragend,
585
588
  "default-expand-all": defaultExpandAll,
586
- "span-method": this.spanMethod,
587
- "onRowClick": this.onRowClick,
588
- "onRowDblclick": this.onDbRowClick,
589
+ "show-header": !this.c.state.hideHeader,
590
+ "row-class-name": this.handleRowClassName,
591
+ "highlight-current-row": state.singleSelect,
592
+ "expandRowKeys": this.c.state.expandRowKeys,
589
593
  "onSelectionChange": this.onSelectionChange,
590
- "onSortChange": this.onSortChange,
591
- "onHeaderDragend": this.headerDragend,
592
- "tooltip-effect": "light",
593
- "scrollbar-always-on": true
594
+ "header-cell-class-name": this.handleHeaderCellClassName,
595
+ "onExpandChange": (row, expanded) => this.c.expandChange(row, expanded)
594
596
  }, this.$attrs, renderAttrs(this.c.model, {
595
597
  ...this.c.getEventArgs()
596
598
  })), {
597
599
  empty: this.renderNoData,
598
600
  default: () => {
599
601
  return [this.c.enableRowEditOrder && this.renderDragIconColumn(), !state.singleSelect && createVNode(resolveComponent("el-table-column"), {
600
- "class-name": this.ns.e("selection"),
601
- "type": "selection",
602
602
  "width": "55",
603
- "align": "center"
603
+ "align": "center",
604
+ "type": "selection",
605
+ "reserve-selection": true,
606
+ "class-name": this.ns.e("selection")
604
607
  }, null), this.renderRowDetail(), this.renderColumns.map((model, index) => {
605
608
  return this.renderTableColumn(model, index);
606
609
  })];
@@ -82,35 +82,37 @@ const MapControl = /* @__PURE__ */ defineComponent({
82
82
  const {
83
83
  state
84
84
  } = this.c;
85
- if (!state.isCreated || !state.isLoaded)
85
+ if (!state.isCreated)
86
86
  return;
87
+ let content;
88
+ if (state.isLoaded) {
89
+ content = this.mapStyle === "USER" ? createVNode(resolveComponent("iBizMapChartUser"), {
90
+ "areaData": state.areaData,
91
+ "pointData": state.pointData,
92
+ "options": this.mapOpts,
93
+ "class": this.ns.e("map"),
94
+ "controller": this.c
95
+ }, null) : createVNode(resolveComponent("iBizMapChart"), {
96
+ "controller": this.c,
97
+ "areaData": state.areaData,
98
+ "pointData": state.pointData,
99
+ "options": this.mapOpts,
100
+ "class": this.ns.e("map"),
101
+ "onPointClick": (e) => {
102
+ this.c.onPointClick(e);
103
+ },
104
+ "onAreaClick": (e) => {
105
+ this.c.onAreaClick(e, "", "");
106
+ }
107
+ }, null);
108
+ }
87
109
  return createVNode(resolveComponent("iBizControlNavigation"), {
88
110
  "controller": this.c
89
111
  }, {
90
112
  default: () => [createVNode(resolveComponent("iBizControlBase"), {
91
113
  "controller": this.c
92
114
  }, {
93
- default: () => [this.mapStyle === "USER" ? createVNode(resolveComponent("iBizMapChartUser"), {
94
- "areaData": state.areaData,
95
- "pointData": state.pointData,
96
- "options": this.mapOpts,
97
- "class": this.ns.e("map"),
98
- "controller": this.c
99
- }, null) : createVNode(resolveComponent("iBizMapChart"), {
100
- "areaData": state.areaData,
101
- "pointData": state.pointData,
102
- "options": this.mapOpts,
103
- "class": this.ns.e("map"),
104
- "onMapChange": (e) => {
105
- this.c.onMapChange(e.areaCode);
106
- },
107
- "onPointClick": (e) => {
108
- this.c.onPointClick(e);
109
- },
110
- "onAreaClick": (e) => {
111
- this.c.onAreaClick(e, "", "");
112
- }
113
- }, null), this.c.state.enableNavView && this.c.state.showNavIcon ? !this.c.state.showNavView ? createVNode("ion-icon", {
115
+ default: () => [content, this.c.state.enableNavView && this.c.state.showNavIcon ? !this.c.state.showNavView ? createVNode("ion-icon", {
114
116
  "class": this.ns.e("nav-icon"),
115
117
  "title": ibiz.i18n.t("component.controlNavigation.showNav"),
116
118
  "name": "eye-outline",
@@ -397,16 +397,6 @@ const TreeControl = /* @__PURE__ */ defineComponent({
397
397
  addLoadMoreNode(item.level === 0 ? (_b = (_a = c.state.rootNodes) == null ? void 0 : _a[0]) == null ? void 0 : _b._id : (_c = item.data) == null ? void 0 : _c._id, item);
398
398
  });
399
399
  };
400
- watch(() => c.state.selectedData, () => {
401
- var _a;
402
- if (!treeRef.value)
403
- return;
404
- if (c.state.singleSelect) {
405
- treeRef.value.setCurrentKey((_a = c.state.selectedData[0]) == null ? void 0 : _a._id);
406
- } else {
407
- treeRef.value.setCheckedKeys(c.state.selectedData.map((item) => item._id));
408
- }
409
- });
410
400
  const onCheck = (nodeData, opts) => {
411
401
  const {
412
402
  checkedNodes
@@ -425,9 +415,7 @@ const TreeControl = /* @__PURE__ */ defineComponent({
425
415
  if (((_a = treeRef.value) == null ? void 0 : _a.getCurrentKey()) === nodeData._id && !readonly.value) {
426
416
  editCurrentNodeText();
427
417
  }
428
- if (!c.state.singleSelect) {
429
- (_b = treeRef.value) == null ? void 0 : _b.setCurrentKey(nodeData._id);
430
- }
418
+ (_b = treeRef.value) == null ? void 0 : _b.setCurrentKey(nodeData._id);
431
419
  if (c.state.navigational) {
432
420
  const nodeModel = c.getNodeModel(nodeData._nodeId);
433
421
  if (!(nodeModel == null ? void 0 : nodeModel.navAppViewId)) {
@@ -436,7 +424,7 @@ const TreeControl = /* @__PURE__ */ defineComponent({
436
424
  }
437
425
  }
438
426
  if (props.isSimple) {
439
- treeRef.value.setCurrentKey((data == null ? void 0 : data._id) || void 0);
427
+ treeRef.value.setCurrentKey(data == null ? void 0 : data._id);
440
428
  } else {
441
429
  c.onTreeNodeClick(nodeData, evt);
442
430
  }
@@ -57,35 +57,36 @@ export declare const IBizTreeGridControl: import("@ibiz-template/vue3-util").Typ
57
57
  ns2: import("@ibiz-template/core").Namespace;
58
58
  tableRef: import("vue").Ref<import("@ibiz-template/core").IApiData | undefined>;
59
59
  tableData: import("vue").Ref<import("@ibiz-template/core").IApiData>;
60
+ defaultSort: import("vue").Ref<import("@ibiz-template/core").IApiData>;
60
61
  renderColumns: import("vue").Ref<import("@ibiz/model-core").IDEGridColumn[]>;
62
+ headerCssVars: import("@ibiz-template/core").IApiData;
63
+ loadData: (item: import("@ibiz-template/core").IApiData, _row: unknown, callback: (nodes: import("@ibiz-template/core").IApiData[]) => void) => Promise<void>;
64
+ onRowClick: (data: import("@ibiz-template/runtime").ControlVO, _column: import("@ibiz-template/core").IApiData, event: MouseEvent) => Promise<void>;
61
65
  renderColumn: (model: import("@ibiz/model-core").IDEGridColumn, index: number) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
62
66
  [key: string]: any;
63
67
  }> | null;
64
- defaultSort: import("vue").Ref<import("@ibiz-template/core").IApiData>;
65
68
  onDbRowClick: (data: import("@ibiz-template/runtime").ControlVO) => void;
66
- onRowClick: (data: import("@ibiz-template/runtime").ControlVO, _column: import("@ibiz-template/core").IApiData, event: MouseEvent) => Promise<void>;
67
- onSelectionChange: (selection: import("@ibiz-template/runtime").ControlVO[]) => void;
68
69
  onSortChange: (opts: {
69
70
  _column: import("@ibiz-template/core").IApiData;
70
71
  prop: string;
71
72
  order: "ascending" | "descending";
72
73
  }) => void;
73
74
  onPageChange: (page: number) => void;
74
- onPageSizeChange: (size: number) => void;
75
- onPageRefresh: () => void;
76
- handleRowClassName: ({ row }: {
77
- row: import("@ibiz-template/core").IApiData;
78
- }) => string;
79
75
  renderNoData: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
80
76
  [key: string]: any;
81
77
  }> | null;
82
- loadData: (item: import("@ibiz-template/core").IApiData, _row: unknown, callback: (nodes: import("@ibiz-template/core").IApiData[]) => void) => Promise<void>;
78
+ onPageRefresh: () => void;
83
79
  summaryMethod: ({ columns, }: {
84
80
  columns: import("element-plus/es/components/table/src/table-column/defaults").TableColumnCtx<import("@ibiz-template/core").IApiData>[];
85
81
  data: import("@ibiz-template/core").IApiData[];
86
82
  }) => string[];
87
83
  headerDragend: (newWidth: number, oldWidth: number, column: import("@ibiz-template/core").IApiData) => void;
88
84
  renderPopover: () => JSX.Element[];
85
+ onPageSizeChange: (size: number) => void;
86
+ onSelectionChange: (selection: import("@ibiz-template/runtime").ControlVO[]) => void;
87
+ handleRowClassName: ({ row }: {
88
+ row: import("@ibiz-template/core").IApiData;
89
+ }) => string;
89
90
  renderBatchToolBar: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
90
91
  [key: string]: any;
91
92
  }> | undefined;
@@ -95,7 +96,6 @@ export declare const IBizTreeGridControl: import("@ibiz-template/vue3-util").Typ
95
96
  _rowIndex: number;
96
97
  _columnIndex: number;
97
98
  }) => string;
98
- headerCssVars: import("@ibiz-template/core").IApiData;
99
99
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
100
100
  modelData: {
101
101
  type: import("vue").PropType<import("@ibiz/model-core").IDEGrid>;
@@ -1,4 +1,4 @@
1
- import { PropType, VNode } from 'vue';
1
+ import { VNode, PropType } from 'vue';
2
2
  import { IDEGridColumn } from '@ibiz/model-core';
3
3
  import { IControlProvider, TreeGridController } from '@ibiz-template/runtime';
4
4
  export declare const TreeGridControl: import("vue").DefineComponent<{
@@ -92,31 +92,32 @@ export declare const TreeGridControl: import("vue").DefineComponent<{
92
92
  ns2: import("@ibiz-template/core").Namespace;
93
93
  tableRef: import("vue").Ref<import("@ibiz-template/core").IApiData | undefined>;
94
94
  tableData: import("vue").Ref<import("@ibiz-template/core").IApiData>;
95
+ defaultSort: import("vue").Ref<import("@ibiz-template/core").IApiData>;
95
96
  renderColumns: import("vue").Ref<IDEGridColumn[]>;
97
+ headerCssVars: import("@ibiz-template/core").IApiData;
98
+ loadData: (item: IData, _row: unknown, callback: (nodes: IData[]) => void) => Promise<void>;
99
+ onRowClick: (data: import("@ibiz-template/runtime").ControlVO, _column: import("@ibiz-template/core").IApiData, event: MouseEvent) => Promise<void>;
96
100
  renderColumn: (model: IDEGridColumn, index: number) => VNode | null;
97
- defaultSort: import("vue").Ref<import("@ibiz-template/core").IApiData>;
98
101
  onDbRowClick: (data: import("@ibiz-template/runtime").ControlVO) => void;
99
- onRowClick: (data: import("@ibiz-template/runtime").ControlVO, _column: import("@ibiz-template/core").IApiData, event: MouseEvent) => Promise<void>;
100
- onSelectionChange: (selection: import("@ibiz-template/runtime").ControlVO[]) => void;
101
102
  onSortChange: (opts: {
102
103
  _column: import("@ibiz-template/core").IApiData;
103
104
  prop: string;
104
105
  order: "ascending" | "descending";
105
106
  }) => void;
106
107
  onPageChange: (page: number) => void;
107
- onPageSizeChange: (size: number) => void;
108
- onPageRefresh: () => void;
109
- handleRowClassName: ({ row }: {
110
- row: import("@ibiz-template/core").IApiData;
111
- }) => string;
112
108
  renderNoData: () => VNode | null;
113
- loadData: (item: IData, _row: unknown, callback: (nodes: IData[]) => void) => Promise<void>;
109
+ onPageRefresh: () => void;
114
110
  summaryMethod: ({ columns, }: {
115
111
  columns: import("element-plus/es/components/table/src/table-column/defaults").TableColumnCtx<import("@ibiz-template/core").IApiData>[];
116
112
  data: import("@ibiz-template/core").IApiData[];
117
113
  }) => string[];
118
114
  headerDragend: (newWidth: number, oldWidth: number, column: import("@ibiz-template/core").IApiData) => void;
119
115
  renderPopover: () => JSX.Element[];
116
+ onPageSizeChange: (size: number) => void;
117
+ onSelectionChange: (selection: import("@ibiz-template/runtime").ControlVO[]) => void;
118
+ handleRowClassName: ({ row }: {
119
+ row: import("@ibiz-template/core").IApiData;
120
+ }) => string;
120
121
  renderBatchToolBar: () => VNode | undefined;
121
122
  handleHeaderCellClassName: ({ _row, column, _rowIndex, _columnIndex, }: {
122
123
  _row: import("@ibiz-template/core").IApiData;
@@ -124,7 +125,6 @@ export declare const TreeGridControl: import("vue").DefineComponent<{
124
125
  _rowIndex: number;
125
126
  _columnIndex: number;
126
127
  }) => string;
127
- headerCssVars: import("@ibiz-template/core").IApiData;
128
128
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
129
129
  /**
130
130
  * @description 树表格模型数据
@@ -1,5 +1,6 @@
1
- import { isVNode, resolveComponent, createVNode, createTextVNode, renderSlot, defineComponent } from 'vue';
1
+ import { isVNode, resolveComponent, createVNode, nextTick, watch, createTextVNode, renderSlot, mergeProps, defineComponent } from 'vue';
2
2
  import { useControlController, useNamespace, hasEmptyPanelRenderer, IBizCustomRender } from '@ibiz-template/vue3-util';
3
+ import { recursiveIterate } from '@ibiz-template/core';
3
4
  import { TreeGridController } from '@ibiz-template/runtime';
4
5
  import { useRowEditPopover } from '../grid/row-edit-popover/use-row-edit-popover.mjs';
5
6
  import '../grid/grid/index.mjs';
@@ -95,10 +96,10 @@ const TreeGridControl = /* @__PURE__ */ defineComponent({
95
96
  tableRef,
96
97
  onRowClick,
97
98
  onDbRowClick,
98
- onSelectionChange,
99
- handleHeaderCellClassName,
100
99
  onSortChange,
101
- handleRowClassName
100
+ onSelectionChange,
101
+ handleRowClassName,
102
+ handleHeaderCellClassName
102
103
  } = useITableEvent(c);
103
104
  const {
104
105
  onPageChange,
@@ -107,8 +108,8 @@ const TreeGridControl = /* @__PURE__ */ defineComponent({
107
108
  } = useAppGridPagination(c);
108
109
  const {
109
110
  tableData,
110
- renderColumns,
111
111
  defaultSort,
112
+ renderColumns,
112
113
  summaryMethod,
113
114
  headerDragend
114
115
  } = useAppGridBase(c, props, tableRef);
@@ -150,11 +151,56 @@ const TreeGridControl = /* @__PURE__ */ defineComponent({
150
151
  }
151
152
  return null;
152
153
  };
154
+ const handleDefaultSelect = () => {
155
+ const {
156
+ expandRowKeys,
157
+ selectedData,
158
+ singleSelect
159
+ } = c.state;
160
+ const table = tableRef.value;
161
+ if (!table || !selectedData.length)
162
+ return;
163
+ const treeData = table.store.states.treeData.value;
164
+ const expandKeys = Object.keys(treeData).filter((key) => treeData[key].loaded);
165
+ if (expandRowKeys.length === expandKeys.length && expandRowKeys.sort().every((item, index) => item === expandKeys.sort()[index])) {
166
+ const selection = [];
167
+ const selectKeys = selectedData.map((selected) => selected.srfkey);
168
+ recursiveIterate({
169
+ children: table.store.states.data.value
170
+ }, (item) => {
171
+ if (selectKeys.includes(item.srfkey))
172
+ selection.push(item);
173
+ });
174
+ nextTick(() => {
175
+ if (singleSelect) {
176
+ table.setCurrentRow(selection[0]);
177
+ } else {
178
+ table.store.states.selection.value = selection;
179
+ }
180
+ });
181
+ }
182
+ };
183
+ const handleDefaultExpand = (nodes) => {
184
+ if (!tableRef.value || !c.state.expandRowKeys.length)
185
+ return;
186
+ c.state.expandRowKeys.forEach((key) => {
187
+ const node = nodes.find((item) => item.srfkey === key);
188
+ if (node)
189
+ nextTick(() => {
190
+ tableRef.value.store.loadOrToggle(node);
191
+ });
192
+ });
193
+ handleDefaultSelect();
194
+ };
195
+ watch(() => tableRef.value, () => {
196
+ handleDefaultExpand(c.state.treeGirdData);
197
+ });
153
198
  const loadData = async (item, _row, callback) => {
154
199
  const treeGirdItems = c.state.items.map((data) => c.getTreeGridDataItem(data));
155
200
  const items = treeGirdItems.filter((data) => item[c.treeGridValueField] === data[c.treeGridParentField]);
156
201
  item.children = items;
157
202
  callback(items);
203
+ handleDefaultExpand(items);
158
204
  };
159
205
  const renderBatchToolBar = () => {
160
206
  var _a;
@@ -196,25 +242,25 @@ const TreeGridControl = /* @__PURE__ */ defineComponent({
196
242
  ns2,
197
243
  tableRef,
198
244
  tableData,
245
+ defaultSort,
199
246
  renderColumns,
247
+ headerCssVars,
248
+ loadData,
249
+ onRowClick,
200
250
  renderColumn,
201
- defaultSort,
202
251
  onDbRowClick,
203
- onRowClick,
204
- onSelectionChange,
205
252
  onSortChange,
206
253
  onPageChange,
207
- onPageSizeChange,
208
- onPageRefresh,
209
- handleRowClassName,
210
254
  renderNoData,
211
- loadData,
255
+ onPageRefresh,
212
256
  summaryMethod,
213
257
  headerDragend,
214
258
  renderPopover,
259
+ onPageSizeChange,
260
+ onSelectionChange,
261
+ handleRowClassName,
215
262
  renderBatchToolBar,
216
- handleHeaderCellClassName,
217
- headerCssVars
263
+ handleHeaderCellClassName
218
264
  };
219
265
  },
220
266
  render() {
@@ -231,59 +277,66 @@ const TreeGridControl = /* @__PURE__ */ defineComponent({
231
277
  "controller": this.c,
232
278
  "style": this.headerCssVars
233
279
  }, {
234
- default: () => [this.c.state.isLoaded && createVNode(resolveComponent("el-table"), {
235
- "ref": "tableRef",
236
- "class": this.ns.e("table"),
237
- "default-sort": this.defaultSort,
238
- "border": true,
239
- "show-header": !hideHeader,
240
- "show-summary": this.c.enableAgg,
241
- "summary-method": this.summaryMethod,
242
- "highlight-current-row": state.singleSelect,
243
- "row-class-name": this.handleRowClassName,
244
- "header-cell-class-name": this.handleHeaderCellClassName,
245
- "row-key": "srfkey",
246
- "data": this.c.state.showTreeGrid ? state.treeGirdData : this.tableData,
247
- "onRowClick": this.onRowClick,
248
- "onRowDblclick": this.onDbRowClick,
249
- "onSelectionChange": this.onSelectionChange,
250
- "onSortChange": this.onSortChange,
251
- "onHeaderDragend": this.headerDragend,
252
- "tooltip-effect": "light",
253
- "tree-props": {
254
- children: "children",
255
- hasChildren: "hasChildren"
256
- },
257
- "load": this.loadData,
258
- "lazy": true
259
- }, {
260
- empty: this.renderNoData,
261
- default: () => {
262
- return [!state.singleSelect && createVNode(resolveComponent("el-table-column"), {
263
- "class-name": this.ns.e("selection"),
264
- "type": "selection",
265
- "width": "55"
266
- }, null), state.isCreated && this.renderColumns.map((model, index) => {
267
- return this.renderColumn(model, index);
268
- })];
269
- },
270
- append: () => {
271
- return this.renderPopover();
272
- }
273
- }), enablePagingBar && createVNode(resolveComponent("iBizPagination"), {
274
- "total": state.total,
275
- "curPage": state.curPage,
276
- "size": state.size,
277
- "totalPages": state.totalPages,
278
- "onChange": this.onPageChange,
279
- "onPageSizeChange": this.onPageSizeChange,
280
- "onPageRefresh": this.onPageRefresh
281
- }, null), this.c.model.enableCustomized && !hideHeader && createVNode("div", {
282
- "class": this.ns.b("setting-box")
283
- }, [createVNode(resolveComponent("iBizGridSetting"), {
284
- "columnStates": state.columnStates,
285
- "controller": this.c
286
- }, null)]), this.renderBatchToolBar()]
280
+ default: () => {
281
+ var _a;
282
+ return [this.c.state.isLoaded && createVNode(resolveComponent("el-table"), mergeProps({
283
+ "lazy": true,
284
+ "border": true,
285
+ "ref": "tableRef",
286
+ "row-key": "srfkey",
287
+ "load": this.loadData,
288
+ "tooltip-effect": "light",
289
+ "show-header": !hideHeader,
290
+ "class": this.ns.e("table"),
291
+ "key": this.c.state.tableKey,
292
+ "onRowClick": this.onRowClick,
293
+ "default-sort": this.defaultSort,
294
+ "show-summary": this.c.enableAgg,
295
+ "onSortChange": this.onSortChange,
296
+ "onRowDblclick": this.onDbRowClick,
297
+ "summary-method": this.summaryMethod,
298
+ "onHeaderDragend": this.headerDragend,
299
+ "row-class-name": this.handleRowClassName,
300
+ "onSelectionChange": this.onSelectionChange,
301
+ "highlight-current-row": state.singleSelect,
302
+ "onExpandChange": (row, expanded) => this.c.expandChange(row, expanded),
303
+ "header-cell-class-name": this.handleHeaderCellClassName,
304
+ "tree-props": {
305
+ children: "children",
306
+ hasChildren: "hasChildren"
307
+ },
308
+ "data": this.c.state.showTreeGrid ? state.treeGirdData : this.tableData
309
+ }, this.$attrs), {
310
+ empty: this.renderNoData,
311
+ default: () => {
312
+ return [!state.singleSelect && createVNode(resolveComponent("el-table-column"), {
313
+ "width": "55",
314
+ "type": "selection",
315
+ "reserve-selection": true,
316
+ "class-name": this.ns.e("selection")
317
+ }, null), state.isCreated && this.renderColumns.map((model, index) => {
318
+ return this.renderColumn(model, index);
319
+ })];
320
+ },
321
+ append: () => {
322
+ return this.renderPopover();
323
+ }
324
+ }), enablePagingBar && createVNode(resolveComponent("iBizPagination"), {
325
+ "total": state.total,
326
+ "curPage": state.curPage,
327
+ "size": state.size,
328
+ "totalPages": state.totalPages,
329
+ "onChange": this.onPageChange,
330
+ "onPageSizeChange": this.onPageSizeChange,
331
+ "onPageRefresh": this.onPageRefresh,
332
+ "popperClass": "".concat(((_a = this.c.model.sysCss) == null ? void 0 : _a.cssName) || "default", "--popper")
333
+ }, null), this.c.model.enableCustomized && !hideHeader && createVNode("div", {
334
+ "class": this.ns.b("setting-box")
335
+ }, [createVNode(resolveComponent("iBizGridSetting"), {
336
+ "columnStates": state.columnStates,
337
+ "controller": this.c
338
+ }, null)]), this.renderBatchToolBar()];
339
+ }
287
340
  })]
288
341
  });
289
342
  }
@@ -1 +1 @@
1
- @charset "UTF-8";.ibiz-mpicker{--ibiz-mpicker-empty-bg-color:var(--ibiz-color-bg-3);display:flex}.ibiz-mpicker input::-moz-placeholder{color:var(--ibiz-form-item-placeholder-color)}.ibiz-mpicker input::placeholder{color:var(--ibiz-form-item-placeholder-color)}.ibiz-mpicker .el-input.is-disabled .el-input__inner{color:var(--ibiz-form-item-disabled-color);border-color:var(--ibiz-form-item-disabled-border-color)}.ibiz-mpicker .el-select{width:100%}.ibiz-mpicker ion-icon{font-size:var(--ibiz-form-item-font-size);cursor:pointer}.ibiz-mpicker__buns-position{position:absolute;right:26px;z-index:1;display:inline-block;width:30px;height:100%;cursor:pointer}.ibiz-mpicker__btns{position:absolute;right:0;width:100%;height:100%;color:var(--ibiz-form-item-placeholder-color);cursor:pointer;display:flex;align-items:center;justify-content:center}.ibiz-mpicker--disabled ion-icon{pointer-events:none}.ibiz-mpicker--readonly{font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-readonly-color)}.ibiz-mpicker__action-item{color:var(--ibiz-color-link);text-align:center}.ibiz-mpicker__empty{padding:0;--ibiz-no-data-min-height:100px;--el-empty-image-width:100px}.ibiz-mpicker__transfer{--ibiz-mpicker-empty-bg-color:var(--ibiz-color-bg-3)}.ibiz-mpicker__transfer.is-empty .el-select-dropdown__item{height:auto;padding:0}.ibiz-mpicker__transfer.is-empty .ibiz-no-data{background-color:var(--ibiz-mpicker-empty-bg-color)}.ibiz-mpicker-form-default-content{display:none}.ibiz-form-item .ibiz-mpicker.is-show-default:hover .ibiz-mpicker-form-default-content{display:none}.ibiz-form-item .ibiz-mpicker.is-show-default:hover .ibiz-mpicker-select{display:block}.ibiz-form-item .ibiz-mpicker.is-show-default .ibiz-mpicker-form-default-content{display:flex;align-items:center;width:100%;height:var(--ibiz-editor-default-line-height);padding:var(--ibiz-form-item-hover-edit-padding);font-family:Arial,sans-serif;font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-text-color)}.ibiz-form-item .ibiz-mpicker.is-show-default .ibiz-mpicker-form-default-content .ibiz-mpicker-content-item{height:calc(var(--ibiz-editor-default-line-height) - var(--ibiz-spacing-tight));padding:0 var(--ibiz-spacing-tight);margin:2px 6px 2px 0;font-size:var(--ibiz-font-size-small);line-height:calc(var(--ibiz-editor-default-line-height) - var(--ibiz-spacing-tight));color:var(--ibiz-editor-default-text-color);background-color:var(--ibiz-color-fill-0);border:1px solid transparent;border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item .ibiz-mpicker.is-show-default .ibiz-mpicker-select{display:none}.ibiz-form-item .ibiz-mpicker.is-show-default.is-editable .ibiz-mpicker-form-default-content{display:none}.ibiz-form-item .ibiz-mpicker.is-show-default.is-editable .ibiz-mpicker-select{display:block}
1
+ @charset "UTF-8";.ibiz-mpicker{--ibiz-mpicker-empty-bg-color:var(--ibiz-color-bg-3);display:flex}.ibiz-mpicker input::-moz-placeholder{color:var(--ibiz-form-item-placeholder-color)}.ibiz-mpicker input::placeholder{color:var(--ibiz-form-item-placeholder-color)}.ibiz-mpicker .el-input.is-disabled .el-input__inner{color:var(--ibiz-form-item-disabled-color);border-color:var(--ibiz-form-item-disabled-border-color)}.ibiz-mpicker .el-select{width:100%}.ibiz-mpicker ion-icon{font-size:var(--ibiz-form-item-font-size);cursor:pointer}.ibiz-mpicker__buns-position{position:absolute;right:26px;z-index:1;display:inline-block;width:30px;height:100%;cursor:pointer}.ibiz-mpicker__btns{position:absolute;right:0;width:100%;height:100%;color:var(--ibiz-form-item-placeholder-color);cursor:pointer;display:flex;align-items:center;justify-content:center}.ibiz-mpicker--disabled ion-icon{pointer-events:none}.ibiz-mpicker--readonly{font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-readonly-color)}.ibiz-mpicker__action-item{display:flex;align-items:center;justify-content:center;color:var(--ibiz-color-link)}.ibiz-mpicker__action-item--caption{margin-left:var(--ibiz-spacing-extra-tight)}.ibiz-mpicker__action-item.is-disabled{color:var(--ibiz-color-disabled-text);cursor:not-allowed}.ibiz-mpicker__empty{padding:0;--ibiz-no-data-min-height:100px;--el-empty-image-width:100px}.ibiz-mpicker__transfer{--ibiz-mpicker-empty-bg-color:var(--ibiz-color-bg-3)}.ibiz-mpicker__transfer.is-empty .el-select-dropdown__item{height:auto;padding:0}.ibiz-mpicker__transfer.is-empty .ibiz-no-data{background-color:var(--ibiz-mpicker-empty-bg-color)}.ibiz-mpicker-form-default-content{display:none}.ibiz-form-item .ibiz-mpicker.is-show-default:hover .ibiz-mpicker-form-default-content{display:none}.ibiz-form-item .ibiz-mpicker.is-show-default:hover .ibiz-mpicker-select{display:block}.ibiz-form-item .ibiz-mpicker.is-show-default .ibiz-mpicker-form-default-content{display:flex;align-items:center;width:100%;height:var(--ibiz-editor-default-line-height);padding:var(--ibiz-form-item-hover-edit-padding);font-family:Arial,sans-serif;font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-text-color)}.ibiz-form-item .ibiz-mpicker.is-show-default .ibiz-mpicker-form-default-content .ibiz-mpicker-content-item{height:calc(var(--ibiz-editor-default-line-height) - var(--ibiz-spacing-tight));padding:0 var(--ibiz-spacing-tight);margin:2px 6px 2px 0;font-size:var(--ibiz-font-size-small);line-height:calc(var(--ibiz-editor-default-line-height) - var(--ibiz-spacing-tight));color:var(--ibiz-editor-default-text-color);background-color:var(--ibiz-color-fill-0);border:1px solid transparent;border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item .ibiz-mpicker.is-show-default .ibiz-mpicker-select{display:none}.ibiz-form-item .ibiz-mpicker.is-show-default.is-editable .ibiz-mpicker-form-default-content{display:none}.ibiz-form-item .ibiz-mpicker.is-show-default.is-editable .ibiz-mpicker-select{display:block}