@ibiz-template/vue3-components 0.7.41-alpha.16 → 0.7.41-alpha.17

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 (117) hide show
  1. package/dist/{index-U4v1OOOD.js → index-AOFxMmyX.js} +1 -1
  2. package/dist/{index-lFGFvnYE.js → index-swminiXb.js} +1 -1
  3. package/dist/index-t1aZ8OJE.js +11 -0
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/{wang-editor-_06OYPpu.js → wang-editor-Y8puaTx2.js} +1 -1
  7. package/dist/{xlsx-util-FNiwKrqm.js → xlsx-util-jYyM8alm.js} +1 -1
  8. package/es/control/calendar/components/custom-calendar/custom-calendar.css +1 -1
  9. package/es/control/calendar/components/custom-calendar/custom-calendar.mjs +25 -8
  10. package/es/control/calendar/components/custom-calendar/use-custom-calendar.d.ts +8 -0
  11. package/es/control/calendar/components/custom-calendar/use-custom-calendar.mjs +20 -1
  12. package/es/control/data-view/data-view.css +1 -1
  13. package/es/control/data-view/data-view.mjs +95 -29
  14. package/es/control/drbar/drbar.css +1 -1
  15. package/es/control/drtab/drtab-control.util.mjs +1 -1
  16. package/es/control/drtab/drtab.controller.d.ts +24 -0
  17. package/es/control/drtab/drtab.controller.mjs +34 -0
  18. package/es/control/drtab/drtab.css +1 -1
  19. package/es/control/drtab/drtab.d.ts +2 -0
  20. package/es/control/drtab/drtab.mjs +5 -2
  21. package/es/control/drtab/flow-drtab.css +1 -1
  22. package/es/control/drtab/flow-drtab.d.ts +17 -2
  23. package/es/control/drtab/flow-drtab.mjs +189 -11
  24. package/es/control/drtab/index.d.ts +2 -0
  25. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.css +1 -1
  26. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.mjs +55 -4
  27. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.css +1 -1
  28. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.mjs +11 -11
  29. package/es/control/gantt/gantt.mjs +1 -0
  30. package/es/control/grid/grid/grid-control.util.mjs +36 -14
  31. package/es/control/grid/grid/grid.css +1 -1
  32. package/es/control/grid/grid/grid.mjs +8 -3
  33. package/es/control/kanban/index.d.ts +4 -1
  34. package/es/control/kanban/kanban.css +1 -1
  35. package/es/control/kanban/kanban.d.ts +4 -1
  36. package/es/control/kanban/kanban.mjs +51 -15
  37. package/es/control/kanban/swimlane-kanban/swimlane-kanban.css +1 -1
  38. package/es/control/kanban/swimlane-kanban/swimlane-kanban.d.ts +2 -1
  39. package/es/control/kanban/swimlane-kanban/swimlane-kanban.mjs +52 -6
  40. package/es/control/list/list.css +1 -1
  41. package/es/control/list/list.d.ts +1 -1
  42. package/es/control/list/list.mjs +83 -11
  43. package/es/control/medit-view-panel/medit-view-panel.css +1 -1
  44. package/es/control/medit-view-panel/medit-view-panel.mjs +37 -30
  45. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.d.ts +1 -1
  46. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.mjs +47 -8
  47. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.d.ts +1 -0
  48. package/es/editor/upload/ibiz-image-cropping/ibiz-image-cropping.d.ts +1 -0
  49. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.d.ts +1 -0
  50. package/es/editor/upload/upload-editor.controller.d.ts +25 -0
  51. package/es/editor/upload/upload-editor.controller.mjs +43 -1
  52. package/es/editor/upload/use/use-iview-upload.mjs +9 -2
  53. package/es/locale/en/index.d.ts +9 -5
  54. package/es/locale/en/index.mjs +5 -2
  55. package/es/locale/zh-CN/index.d.ts +9 -5
  56. package/es/locale/zh-CN/index.mjs +5 -2
  57. package/es/node_modules/.pnpm/sortablejs@1.15.6/node_modules/sortablejs/modular/sortable.esm.mjs +3377 -0
  58. package/es/panel-component/panel-button/panel-button.mjs +1 -0
  59. package/es/util/fullscreen/fullscreen-util.mjs +1 -1
  60. package/es/view-engine/calendar-view.engine.d.ts +11 -1
  61. package/es/view-engine/calendar-view.engine.mjs +10 -0
  62. package/es/view-engine/chart-exp-view.engine.d.ts +6 -6
  63. package/es/view-engine/chart-exp-view.engine.mjs +6 -15
  64. package/es/view-engine/gantt-view.engine.d.ts +3 -3
  65. package/es/view-engine/gantt-view.engine.mjs +3 -46
  66. package/es/view-engine/login-view.engine.mjs +7 -0
  67. package/es/view-engine/tab-exp-view.engine.mjs +1 -1
  68. package/es/view-engine/tab-search-view.engine.mjs +4 -2
  69. package/es/view-engine/tree-view.engine.d.ts +12 -2
  70. package/es/view-engine/tree-view.engine.mjs +39 -11
  71. package/lib/control/calendar/components/custom-calendar/custom-calendar.cjs +23 -6
  72. package/lib/control/calendar/components/custom-calendar/custom-calendar.css +1 -1
  73. package/lib/control/calendar/components/custom-calendar/use-custom-calendar.cjs +20 -0
  74. package/lib/control/data-view/data-view.cjs +95 -29
  75. package/lib/control/data-view/data-view.css +1 -1
  76. package/lib/control/drbar/drbar.css +1 -1
  77. package/lib/control/drtab/drtab-control.util.cjs +1 -1
  78. package/lib/control/drtab/drtab.cjs +5 -2
  79. package/lib/control/drtab/drtab.controller.cjs +34 -0
  80. package/lib/control/drtab/drtab.css +1 -1
  81. package/lib/control/drtab/flow-drtab.cjs +188 -10
  82. package/lib/control/drtab/flow-drtab.css +1 -1
  83. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.cjs +54 -3
  84. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.css +1 -1
  85. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.cjs +11 -11
  86. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.css +1 -1
  87. package/lib/control/gantt/gantt.cjs +1 -0
  88. package/lib/control/grid/grid/grid-control.util.cjs +36 -14
  89. package/lib/control/grid/grid/grid.cjs +8 -3
  90. package/lib/control/grid/grid/grid.css +1 -1
  91. package/lib/control/kanban/kanban.cjs +50 -14
  92. package/lib/control/kanban/kanban.css +1 -1
  93. package/lib/control/kanban/swimlane-kanban/swimlane-kanban.cjs +50 -4
  94. package/lib/control/kanban/swimlane-kanban/swimlane-kanban.css +1 -1
  95. package/lib/control/list/list.cjs +83 -11
  96. package/lib/control/list/list.css +1 -1
  97. package/lib/control/medit-view-panel/medit-view-panel.cjs +36 -29
  98. package/lib/control/medit-view-panel/medit-view-panel.css +1 -1
  99. package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.cjs +47 -8
  100. package/lib/editor/upload/upload-editor.controller.cjs +43 -1
  101. package/lib/editor/upload/use/use-iview-upload.cjs +9 -2
  102. package/lib/locale/en/index.cjs +5 -2
  103. package/lib/locale/zh-CN/index.cjs +5 -2
  104. package/lib/node_modules/.pnpm/sortablejs@1.15.6/node_modules/sortablejs/modular/sortable.esm.cjs +3384 -0
  105. package/lib/panel-component/panel-button/panel-button.cjs +1 -0
  106. package/lib/util/fullscreen/fullscreen-util.cjs +1 -1
  107. package/lib/view-engine/calendar-view.engine.cjs +10 -0
  108. package/lib/view-engine/chart-exp-view.engine.cjs +6 -15
  109. package/lib/view-engine/gantt-view.engine.cjs +2 -45
  110. package/lib/view-engine/login-view.engine.cjs +7 -0
  111. package/lib/view-engine/tab-exp-view.engine.cjs +1 -1
  112. package/lib/view-engine/tab-search-view.engine.cjs +4 -2
  113. package/lib/view-engine/tree-view.engine.cjs +39 -11
  114. package/package.json +9 -7
  115. package/dist/index-m8q8r8br.js +0 -4
  116. /package/es/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.14_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1 → @ibiz-template_core@0.7.41-alpha.17_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1}/node_modules/@ibiz-template/core/out/utils/namespace/namespace.mjs +0 -0
  117. /package/lib/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.14_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1 → @ibiz-template_core@0.7.41-alpha.17_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1}/node_modules/@ibiz-template/core/out/utils/namespace/namespace.cjs +0 -0
@@ -95,6 +95,7 @@ const PanelButton = /* @__PURE__ */ defineComponent({
95
95
  }, [createVNode(resolveComponent("el-button"), {
96
96
  "type": this.buttonType,
97
97
  "text": this.isText,
98
+ "data-id": this.modelData.id,
98
99
  "title": showTitle(this.tooltip),
99
100
  "disabled": this.state.disabled,
100
101
  "loading": this.state.loading,
@@ -1,6 +1,6 @@
1
1
  import { createApp } from 'vue';
2
2
  import ElementPlus from 'element-plus';
3
- import { defaultNamespace } from '../../node_modules/.pnpm/@ibiz-template_core@0.7.41-alpha.14_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1/node_modules/@ibiz-template/core/out/utils/namespace/namespace.mjs';
3
+ import { defaultNamespace } from '../../node_modules/.pnpm/@ibiz-template_core@0.7.41-alpha.17_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1/node_modules/@ibiz-template/core/out/utils/namespace/namespace.mjs';
4
4
  import { IBizFullscreenToolbar } from '../../common/fullscreen-toolbar/fullscreen-toolbar.mjs';
5
5
 
6
6
  "use strict";
@@ -1,7 +1,17 @@
1
- import { ViewController, ICalendarViewEvent, ICalendarViewState, MDViewEngine, EventBase } from '@ibiz-template/runtime';
1
+ import { ViewController, ICalendarViewEvent, ICalendarViewState, MDViewEngine, EventBase, IUIActionResult } from '@ibiz-template/runtime';
2
2
  import { IAppDECalendarView } from '@ibiz/model-core';
3
3
  export declare class CalendarViewEngine extends MDViewEngine {
4
4
  protected view: ViewController<IAppDECalendarView, ICalendarViewState, ICalendarViewEvent>;
5
5
  protected onXDataActive(event: EventBase): Promise<void>;
6
6
  onCreated(): Promise<void>;
7
+ protected openData(args: {
8
+ data: IData[];
9
+ event?: MouseEvent;
10
+ context?: IContext;
11
+ params?: IParams;
12
+ }): Promise<IUIActionResult>;
13
+ protected newData(args: {
14
+ data: IData[];
15
+ event?: MouseEvent;
16
+ }): Promise<IUIActionResult>;
7
17
  }
@@ -13,6 +13,16 @@ class CalendarViewEngine extends MDViewEngine {
13
13
  }
14
14
  this.view.slotProps.calendar.mdctrlActiveMode = model.mdctrlActiveMode;
15
15
  }
16
+ async openData(args) {
17
+ const { data, event } = args;
18
+ const result = await this.xdataControl.openData(data[0], event);
19
+ return result;
20
+ }
21
+ async newData(args) {
22
+ const { data, event } = args;
23
+ const result = await this.xdataControl.newData(data[0], event);
24
+ return result;
25
+ }
16
26
  }
17
27
 
18
28
  export { CalendarViewEngine };
@@ -1,6 +1,7 @@
1
- import { ViewController, ViewEngineBase, IChartExpBarController, IChartExpViewEvent, IChartExpViewState } from '@ibiz-template/runtime';
1
+ import { ViewController, IChartExpViewEvent, IChartExpViewState } from '@ibiz-template/runtime';
2
2
  import { IAppDEChartExplorerView } from '@ibiz/model-core';
3
- export declare class ChartExpViewEngine extends ViewEngineBase {
3
+ import { ExpViewEngine } from './exp-view.engine';
4
+ export declare class ChartExpViewEngine extends ExpViewEngine {
4
5
  /**
5
6
  * 图表导航视图控制器
6
7
  *
@@ -14,11 +15,10 @@ export declare class ChartExpViewEngine extends ViewEngineBase {
14
15
  */
15
16
  protected view: ViewController<IAppDEChartExplorerView, IChartExpViewState, IChartExpViewEvent>;
16
17
  /**
17
- * 图表导航栏
18
- *
18
+ * @description 导航栏部件名称
19
19
  * @readonly
20
+ * @type {string}
20
21
  * @memberof ChartExpViewEngine
21
22
  */
22
- get chartExpBar(): IChartExpBarController;
23
- onCreated(): Promise<void>;
23
+ get expBarName(): string;
24
24
  }
@@ -1,24 +1,15 @@
1
- import { ViewEngineBase } from '@ibiz-template/runtime';
1
+ import { ExpViewEngine } from './exp-view.engine.mjs';
2
2
 
3
3
  "use strict";
4
- class ChartExpViewEngine extends ViewEngineBase {
4
+ class ChartExpViewEngine extends ExpViewEngine {
5
5
  /**
6
- * 图表导航栏
7
- *
6
+ * @description 导航栏部件名称
8
7
  * @readonly
8
+ * @type {string}
9
9
  * @memberof ChartExpViewEngine
10
10
  */
11
- get chartExpBar() {
12
- return this.view.getController("chartexpbar");
13
- }
14
- async onCreated() {
15
- await super.onCreated();
16
- const { childNames } = this.view;
17
- childNames.push("chartexpbar");
18
- if (!this.view.slotProps.chartexpbar) {
19
- this.view.slotProps.chartexpbar = {};
20
- }
21
- this.view.slotProps.chartexpbar.srfnav = this.view.state.srfnav;
11
+ get expBarName() {
12
+ return "chartexpbar";
22
13
  }
23
14
  }
24
15
 
@@ -1,9 +1,9 @@
1
- import { MDViewEngine, ViewController, IGanttViewState, IGanttViewEvent, IGanttController, EventBase, IApiGanttViewCall } from '@ibiz-template/runtime';
1
+ import { ViewController, IGanttViewState, IGanttViewEvent, IGanttController, IApiGanttViewCall } from '@ibiz-template/runtime';
2
2
  import { IAppDEGanttView } from '@ibiz/model-core';
3
- export declare class GanttViewEngine extends MDViewEngine {
3
+ import { TreeGridExViewEngine } from './tree-grid-ex-view.engine';
4
+ export declare class GanttViewEngine extends TreeGridExViewEngine {
4
5
  protected view: ViewController<IAppDEGanttView, IGanttViewState, IGanttViewEvent>;
5
6
  get gantt(): IGanttController;
6
7
  call(key: keyof IApiGanttViewCall, args: any): Promise<IData | null | undefined>;
7
- protected onXDataActive(event: EventBase): Promise<void>;
8
8
  onCreated(): Promise<void>;
9
9
  }
@@ -1,8 +1,8 @@
1
- import { RuntimeError } from '@ibiz-template/core';
2
- import { MDViewEngine, SysUIActionTag } from '@ibiz-template/runtime';
1
+ import { SysUIActionTag } from '@ibiz-template/runtime';
2
+ import { TreeGridExViewEngine } from './tree-grid-ex-view.engine.mjs';
3
3
 
4
4
  "use strict";
5
- class GanttViewEngine extends MDViewEngine {
5
+ class GanttViewEngine extends TreeGridExViewEngine {
6
6
  get gantt() {
7
7
  return this.view.getController("gantt");
8
8
  }
@@ -23,51 +23,8 @@ class GanttViewEngine extends MDViewEngine {
23
23
  this.gantt.saveAll();
24
24
  return null;
25
25
  }
26
- if (key === SysUIActionTag.EXPAND) {
27
- const { srfcollapsetag } = args.params || {};
28
- let tag = srfcollapsetag || "";
29
- if (!tag) {
30
- const { selectedData } = this.gantt.state;
31
- const selectedGroup = selectedData.filter((x) => !x._leaf);
32
- if (selectedGroup.length > 0) {
33
- tag = selectedGroup[0].srfnodeid;
34
- }
35
- }
36
- if (!tag) {
37
- throw new RuntimeError(ibiz.i18n.t("viewEngine.noExpandTag"));
38
- }
39
- this.gantt.changeCollapse({ tag, expand: true });
40
- return null;
41
- }
42
- if (key === SysUIActionTag.COLLAPSE) {
43
- const { srfcollapsetag } = args.params || {};
44
- let tag = srfcollapsetag || "";
45
- if (!tag) {
46
- const { selectedData } = this.gantt.state;
47
- const selectedGroup = selectedData.filter((x) => !x._leaf);
48
- if (selectedGroup.length > 0) {
49
- tag = selectedGroup[0].srfnodeid;
50
- }
51
- }
52
- if (!tag) {
53
- throw new RuntimeError(ibiz.i18n.t("viewEngine.noCollapseTag"));
54
- }
55
- this.gantt.changeCollapse({ tag, expand: false });
56
- return null;
57
- }
58
- if (key === SysUIActionTag.EXPANDALL) {
59
- this.gantt.changeCollapse({ expand: true });
60
- return null;
61
- }
62
- if (key === SysUIActionTag.COLLAPSEALL) {
63
- this.gantt.changeCollapse({ expand: false });
64
- return null;
65
- }
66
26
  return super.call(key, args);
67
27
  }
68
- // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
69
- async onXDataActive(event) {
70
- }
71
28
  async onCreated() {
72
29
  super.onCreated();
73
30
  const { model } = this.view;
@@ -30,6 +30,13 @@ class LoginViewEngine extends ViewEngineBase {
30
30
  }
31
31
  ]
32
32
  };
33
+ const targetID = event.target.dataset.id;
34
+ if (targetID) {
35
+ const targetPanelItem = this.view.layoutPanel.findPanelItemByName(targetID);
36
+ if (targetPanelItem) {
37
+ args.data = [targetPanelItem.data];
38
+ }
39
+ }
33
40
  await this.login(args);
34
41
  }
35
42
  });
@@ -167,7 +167,7 @@ class TabExpViewEngine extends ViewEngineBase {
167
167
  calcViewHeaderVisible() {
168
168
  let showHeader = super.calcViewHeaderVisible();
169
169
  const { tabLayout } = this.view.model;
170
- if (tabLayout === void 0 || tabLayout === "TOP" && getControl(this.view.model, "tabexppanel")) {
170
+ if (tabLayout === void 0 || ["TOP", "TOP_DROPDOWNLIST"].includes(tabLayout) && getControl(this.view.model, "tabexppanel")) {
171
171
  showHeader = true;
172
172
  }
173
173
  return showHeader;
@@ -113,8 +113,10 @@ class TabSearchViewEngine extends TabExpViewEngine {
113
113
  }
114
114
  }
115
115
  }
116
- this.searchBar.placeHolder = caption || "";
117
- this.searchBar.state.quickSearchPlaceHolder = caption || "";
116
+ if (this.searchBar) {
117
+ this.searchBar.placeHolder = caption || "";
118
+ this.searchBar.state.quickSearchPlaceHolder = caption || "";
119
+ }
118
120
  }
119
121
  async call(key, args) {
120
122
  if (key === SysUIActionTag.SEARCH) {
@@ -1,8 +1,18 @@
1
- import { ViewController, ITreeViewEvent, ITreeViewState, MDViewEngine, ITreeController, IApiTreeViewCall } from '@ibiz-template/runtime';
1
+ import { ViewController, ITreeViewEvent, ITreeViewState, MDViewEngine, IApiTreeViewCall, IUIActionResult, ITreeController } from '@ibiz-template/runtime';
2
2
  import { IAppDETreeView } from '@ibiz/model-core';
3
3
  export declare class TreeViewEngine extends MDViewEngine {
4
4
  protected view: ViewController<IAppDETreeView, ITreeViewState, ITreeViewEvent>;
5
- get tree(): ITreeController;
6
5
  onCreated(): Promise<void>;
6
+ get tree(): ITreeController;
7
7
  call(key: keyof IApiTreeViewCall, args: any): Promise<IData | null | undefined>;
8
+ protected openData(args: {
9
+ data: IData[];
10
+ event?: MouseEvent;
11
+ context?: IContext;
12
+ params?: IParams;
13
+ }): Promise<IUIActionResult>;
14
+ protected newData(args: {
15
+ data: IData[];
16
+ event?: MouseEvent;
17
+ }): Promise<IUIActionResult>;
8
18
  }
@@ -3,31 +3,37 @@ import { RuntimeError } from '@ibiz-template/core';
3
3
 
4
4
  "use strict";
5
5
  class TreeViewEngine extends MDViewEngine {
6
- get tree() {
7
- return this.view.getController("tree");
8
- }
9
6
  async onCreated() {
10
7
  await super.onCreated();
11
8
  if (!this.view.slotProps.tree) {
12
9
  this.view.slotProps.tree = {};
13
10
  }
14
11
  }
12
+ get tree() {
13
+ return this.view.getController("tree");
14
+ }
15
15
  async call(key, args) {
16
16
  var _a;
17
17
  if (key === SysUIActionTag.REFRESH_ALL) {
18
- await this.tree.refresh();
18
+ await this.xdataControl.refresh();
19
19
  return null;
20
20
  }
21
21
  if (key === SysUIActionTag.REFRESH) {
22
22
  if ((_a = args == null ? void 0 : args.data) == null ? void 0 : _a[0]) {
23
- await this.tree.refreshNodeChildren(args.data[0], false);
23
+ await this.xdataControl.refreshNodeChildren(
24
+ args.data[0],
25
+ false
26
+ );
24
27
  } else {
25
- await this.tree.refresh();
28
+ await this.xdataControl.refresh();
26
29
  }
27
30
  return null;
28
31
  }
29
32
  if (key === SysUIActionTag.REFRESH_PARENT) {
30
- await this.tree.refreshNodeChildren(args.data[0], true);
33
+ await this.xdataControl.refreshNodeChildren(
34
+ args.data[0],
35
+ true
36
+ );
31
37
  return null;
32
38
  }
33
39
  if (key === SysUIActionTag.EXPAND) {
@@ -40,7 +46,10 @@ class TreeViewEngine extends MDViewEngine {
40
46
  if (!tag) {
41
47
  throw new RuntimeError(ibiz.i18n.t("viewEngine.noExpandTag"));
42
48
  }
43
- this.tree.changeCollapse({ tag, expand: true });
49
+ this.xdataControl.changeCollapse({
50
+ tag,
51
+ expand: true
52
+ });
44
53
  return null;
45
54
  }
46
55
  if (key === SysUIActionTag.COLLAPSE) {
@@ -53,19 +62,38 @@ class TreeViewEngine extends MDViewEngine {
53
62
  if (!tag) {
54
63
  throw new RuntimeError(ibiz.i18n.t("viewEngine.noCollapseTag"));
55
64
  }
56
- this.tree.changeCollapse({ tag, expand: false });
65
+ this.xdataControl.changeCollapse({
66
+ tag,
67
+ expand: false
68
+ });
57
69
  return null;
58
70
  }
59
71
  if (key === SysUIActionTag.EXPANDALL) {
60
- this.tree.changeCollapse({ expand: true });
72
+ this.xdataControl.changeCollapse({ expand: true });
61
73
  return null;
62
74
  }
63
75
  if (key === SysUIActionTag.COLLAPSEALL) {
64
- this.tree.changeCollapse({ expand: false });
76
+ this.xdataControl.changeCollapse({ expand: false });
65
77
  return null;
66
78
  }
67
79
  return super.call(key, args);
68
80
  }
81
+ async openData(args) {
82
+ const { data, event } = args;
83
+ const result = await this.xdataControl.openData(
84
+ data[0],
85
+ event
86
+ );
87
+ return result;
88
+ }
89
+ async newData(args) {
90
+ const { data, event } = args;
91
+ const result = await this.xdataControl.newData(
92
+ data[0],
93
+ event
94
+ );
95
+ return result;
96
+ }
69
97
  }
70
98
 
71
99
  export { TreeViewEngine };
@@ -40,9 +40,6 @@ const CustomCalendar = /* @__PURE__ */ vue.defineComponent({
40
40
  selectDate,
41
41
  selectLegend
42
42
  } = useCustomCalendar.useCustomCalendar(props, emit, "custom-calendar");
43
- vue.onMounted(() => {
44
- pickDay(dayjs(/* @__PURE__ */ new Date()));
45
- });
46
43
  const renderWeek = () => {
47
44
  var _a;
48
45
  return vue.createVNode("div", {
@@ -129,7 +126,7 @@ const CustomCalendar = /* @__PURE__ */ vue.defineComponent({
129
126
  "modelValue": realSelectedDay.value,
130
127
  "onUpdate:modelValue": ($event) => realSelectedDay.value = $event,
131
128
  "type": "date",
132
- "placeholder": "\u9009\u62E9\u65E5\u671F",
129
+ "placeholder": ibiz.i18n.t("control.calendar.calendardaily.selectdate"),
133
130
  "shortcuts": shortcuts
134
131
  }, null)])]), vue.createVNode("div", {
135
132
  "class": ns.em("calendar-week", "text-secondary")
@@ -147,12 +144,32 @@ const CustomCalendar = /* @__PURE__ */ vue.defineComponent({
147
144
  }, slots)]);
148
145
  };
149
146
  const renderUser = () => {
150
- return vue.createVNode(index$2.IBizCalendarUser, {
147
+ const weekRange = useCustomCalendar.calcCurrentWeekRange(new Date(realSelectedDay.value));
148
+ return vue.createVNode("div", {
149
+ "class": [ns.e("calendar-user")]
150
+ }, [vue.createVNode("div", {
151
+ "class": [ns.e("calendar-user-header")]
152
+ }, [vue.createVNode("div", {
153
+ "class": ns.em("calendar-user-header", "left")
154
+ }, [weekRange.map((_date) => {
155
+ return dayjs(new Date(_date)).format("YYYY-MM-DD");
156
+ }).join(" ~ ")]), vue.createVNode("div", {
157
+ "class": ns.em("calendar-user-header", "right")
158
+ }, [vue.createVNode(vue.resolveComponent("el-date-picker"), {
159
+ "type": "week",
160
+ "clearable": false,
161
+ "popper-class": ns.em("calendar-user-header", "date-picker"),
162
+ "modelValue": realSelectedDay.value,
163
+ "onUpdate:modelValue": ($event) => realSelectedDay.value = $event,
164
+ "class": ns.em("calendar-user-header", "date-range"),
165
+ "placeholder": ibiz.i18n.t("control.calendar.calendarUser.selectWeekRange"),
166
+ "format": ibiz.i18n.t("control.calendar.calendarUser.weekFormat")
167
+ }, null)])]), vue.createVNode(index$2.IBizCalendarUser, {
151
168
  "selected-day": realSelectedDay.value,
152
169
  "events": events.value,
153
170
  "onEventClick": (value) => handleEVentClick(value),
154
171
  "onEventDblClick": (value) => handleEVentDblClick(value)
155
- }, slots);
172
+ }, slots)]);
156
173
  };
157
174
  const renderContent = () => {
158
175
  switch (viewType.value) {
@@ -1 +1 @@
1
- .ibiz-custom-calendar{width:100%;height:100%}.ibiz-custom-calendar__calendar-day{display:flex;flex-direction:column;width:100%;min-width:380px;height:100%;min-height:900px;border:1px solid var(--ibiz-color-border)}.ibiz-custom-calendar__calendar-day--header{padding:0 40px;border-bottom:1px solid var(--ibiz-color-border)}.ibiz-custom-calendar__calendar-day--header-top{display:flex;align-items:center;justify-content:space-between;height:70px}.ibiz-custom-calendar__calendar-day--title{min-width:80px;font-size:20px}.ibiz-custom-calendar__calendar-day--text-secondary{height:56px;line-height:56px;text-align:left}.ibiz-custom-calendar__calendar-day--select-time{width:130px;height:32px}.ibiz-custom-calendar__calendar-day--select-time .el-input__suffix{display:none}.ibiz-custom-calendar__calendar-day--legend{display:flex;flex-grow:1;align-items:center;justify-content:center;height:100%;overflow:auto}.ibiz-custom-calendar__calendar-day--legend-item{display:flex;align-items:center;width:auto;height:auto;padding:0 var(--ibiz-spacing-tight);line-height:1em;cursor:pointer}.ibiz-custom-calendar__calendar-day--legend-item-tip{display:inline-block;width:1.5em;height:.9em;margin-right:var(--ibiz-spacing-extra-tight);border-radius:var(--ibiz-border-radius-extra-small)}.ibiz-custom-calendar__calendar-day--legend-item-text{display:inline-block;width:auto;max-width:100px;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.ibiz-custom-calendar__calendar-week{display:flex;flex-direction:column;width:100%;min-width:380px;height:100%;border:1px solid var(--ibiz-color-border)}.ibiz-custom-calendar__calendar-week--header{padding:0 40px;border-bottom:1px solid var(--ibiz-color-border)}.ibiz-custom-calendar__calendar-week--header-top{display:flex;align-items:center;justify-content:space-between;height:70px}.ibiz-custom-calendar__calendar-week--title{min-width:80px;font-size:20px}.ibiz-custom-calendar__calendar-week--text-secondary{height:56px;line-height:56px;text-align:left}.ibiz-custom-calendar__calendar-week--select-time{width:130px;height:32px}.ibiz-custom-calendar__calendar-week--select-time .el-input__suffix{display:none}.ibiz-custom-calendar__calendar-week--legend{display:flex;flex-grow:1;align-items:center;justify-content:center;height:100%;overflow:auto}.ibiz-custom-calendar__calendar-week--legend-item{display:flex;align-items:center;width:auto;height:auto;padding:0 var(--ibiz-spacing-tight);line-height:1em;cursor:pointer}.ibiz-custom-calendar__calendar-week--legend-item-tip{display:inline-block;width:1.5em;height:.9em;margin-right:var(--ibiz-spacing-extra-tight);border-radius:var(--ibiz-border-radius-extra-small)}.ibiz-custom-calendar__calendar-week--legend-item-text{display:inline-block;width:auto;max-width:100px;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.ibiz-custom-calendar__calendar-month{display:flex;flex-direction:column;width:100%;height:100%}.ibiz-custom-calendar__calendar-month--body{flex-grow:1;width:100%;height:calc(100% - 58px)}.ibiz-custom-calendar__calendar-month--legend{display:flex;align-items:center;justify-content:center;width:auto;height:100%}.ibiz-custom-calendar__calendar-month--legend-item{display:flex;align-items:center;width:auto;height:auto;padding:0 var(--ibiz-spacing-tight);line-height:1em;cursor:pointer}.ibiz-custom-calendar__calendar-month--legend-item-tip{display:inline-block;width:1.5em;height:.9em;margin-right:var(--ibiz-spacing-extra-tight);border-radius:var(--ibiz-border-radius-extra-small)}.ibiz-custom-calendar__calendar-month--legend-item-text{display:inline-block;width:auto;max-width:100px;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.ibiz-custom-calendar__calendar-month--header{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:58px;padding:12px 20px;border-bottom:1px solid var(--ibiz-color-border)}.ibiz-custom-calendar__calendar-month--button-group{display:flex;align-items:center;justify-content:space-between;width:388px}.ibiz-custom-calendar__header--title{min-width:120px}.ibiz-custom-calendar .el-date-editor.el-input,.ibiz-custom-calendar .el-date-editor.el-input__wrapper{width:130px;height:32px}
1
+ .ibiz-custom-calendar{width:100%;height:100%}.ibiz-custom-calendar__calendar-day{display:flex;flex-direction:column;width:100%;min-width:380px;height:100%;min-height:900px;border:1px solid var(--ibiz-color-border)}.ibiz-custom-calendar__calendar-day--header{padding:0 40px;border-bottom:1px solid var(--ibiz-color-border)}.ibiz-custom-calendar__calendar-day--header-top{display:flex;align-items:center;justify-content:space-between;height:70px}.ibiz-custom-calendar__calendar-day--title{min-width:80px;font-size:20px}.ibiz-custom-calendar__calendar-day--text-secondary{height:56px;line-height:56px;text-align:left}.ibiz-custom-calendar__calendar-day--select-time{width:130px;height:32px}.ibiz-custom-calendar__calendar-day--select-time .el-input__suffix{display:none}.ibiz-custom-calendar__calendar-day--legend{display:flex;flex-grow:1;align-items:center;justify-content:center;height:100%;overflow:auto}.ibiz-custom-calendar__calendar-day--legend-item{display:flex;align-items:center;width:auto;height:auto;padding:0 var(--ibiz-spacing-tight);line-height:1em;cursor:pointer}.ibiz-custom-calendar__calendar-day--legend-item-tip{display:inline-block;width:1.5em;height:.9em;margin-right:var(--ibiz-spacing-extra-tight);border-radius:var(--ibiz-border-radius-extra-small)}.ibiz-custom-calendar__calendar-day--legend-item-text{display:inline-block;width:auto;max-width:100px;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.ibiz-custom-calendar__calendar-week{display:flex;flex-direction:column;width:100%;min-width:380px;height:100%;border:1px solid var(--ibiz-color-border)}.ibiz-custom-calendar__calendar-week--header{padding:0 40px;border-bottom:1px solid var(--ibiz-color-border)}.ibiz-custom-calendar__calendar-week--header-top{display:flex;align-items:center;justify-content:space-between;height:70px}.ibiz-custom-calendar__calendar-week--title{min-width:80px;font-size:20px}.ibiz-custom-calendar__calendar-week--text-secondary{height:56px;line-height:56px;text-align:left}.ibiz-custom-calendar__calendar-week--select-time{width:130px;height:32px}.ibiz-custom-calendar__calendar-week--select-time .el-input__suffix{display:none}.ibiz-custom-calendar__calendar-week--legend{display:flex;flex-grow:1;align-items:center;justify-content:center;height:100%;overflow:auto}.ibiz-custom-calendar__calendar-week--legend-item{display:flex;align-items:center;width:auto;height:auto;padding:0 var(--ibiz-spacing-tight);line-height:1em;cursor:pointer}.ibiz-custom-calendar__calendar-week--legend-item-tip{display:inline-block;width:1.5em;height:.9em;margin-right:var(--ibiz-spacing-extra-tight);border-radius:var(--ibiz-border-radius-extra-small)}.ibiz-custom-calendar__calendar-week--legend-item-text{display:inline-block;width:auto;max-width:100px;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.ibiz-custom-calendar__calendar-month{display:flex;flex-direction:column;width:100%;height:100%}.ibiz-custom-calendar__calendar-month--body{flex-grow:1;width:100%;height:calc(100% - 58px)}.ibiz-custom-calendar__calendar-month--legend{display:flex;align-items:center;justify-content:center;width:auto;height:100%}.ibiz-custom-calendar__calendar-month--legend-item{display:flex;align-items:center;width:auto;height:auto;padding:0 var(--ibiz-spacing-tight);line-height:1em;cursor:pointer}.ibiz-custom-calendar__calendar-month--legend-item-tip{display:inline-block;width:1.5em;height:.9em;margin-right:var(--ibiz-spacing-extra-tight);border-radius:var(--ibiz-border-radius-extra-small)}.ibiz-custom-calendar__calendar-month--legend-item-text{display:inline-block;width:auto;max-width:100px;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.ibiz-custom-calendar__calendar-month--header{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:58px;padding:12px 20px;border-bottom:1px solid var(--ibiz-color-border)}.ibiz-custom-calendar__calendar-month--button-group{display:flex;align-items:center;justify-content:space-between;width:388px}.ibiz-custom-calendar__header--title{min-width:120px}.ibiz-custom-calendar__calendar-user-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 var(--ibiz-spacing-base)}.ibiz-custom-calendar__calendar-user-header--right .el-date-editor.el-date-editor--week.el-input{width:250px}.ibiz-custom-calendar .el-date-editor.el-input,.ibiz-custom-calendar .el-date-editor.el-input__wrapper{width:130px;height:32px}
@@ -266,5 +266,25 @@ const useCustomCalendar = (props, emit, _componentName) => {
266
266
  selectLegend
267
267
  };
268
268
  };
269
+ function calcCurrentWeekRange(date) {
270
+ let monday;
271
+ let sunday;
272
+ const day = date.getDay();
273
+ if (day === 0) {
274
+ monday = dayjs(new Date(date.getTime() - 6 * 864e5)).format(
275
+ "YYYY-MM-DD"
276
+ );
277
+ sunday = dayjs(date).format("YYYY-MM-DD");
278
+ } else {
279
+ monday = dayjs(new Date(date.getTime() - (day - 1) * 864e5)).format(
280
+ "YYYY-MM-DD"
281
+ );
282
+ sunday = dayjs(new Date(date.getTime() + (7 - day) * 864e5)).format(
283
+ "YYYY-MM-DD"
284
+ );
285
+ }
286
+ return [monday, sunday];
287
+ }
269
288
 
289
+ exports.calcCurrentWeekRange = calcCurrentWeekRange;
270
290
  exports.useCustomCalendar = useCustomCalendar;
@@ -4,6 +4,7 @@ var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
5
  var runtime = require('@ibiz-template/runtime');
6
6
  var qxUtil = require('qx-util');
7
+ var draggable = require('vuedraggable');
7
8
  require('../../util/index.cjs');
8
9
  require('./data-view.css');
9
10
  var usePagination = require('../../util/pagination/use-pagination.cjs');
@@ -14,6 +15,9 @@ function _isSlot(s) {
14
15
  }
15
16
  const DataViewControl = /* @__PURE__ */ vue.defineComponent({
16
17
  name: "IBizDataViewControl",
18
+ components: {
19
+ draggable
20
+ },
17
21
  props: {
18
22
  /**
19
23
  * @description 数据视图(卡片)模型数据
@@ -166,6 +170,31 @@ const DataViewControl = /* @__PURE__ */ vue.defineComponent({
166
170
  event.stopPropagation();
167
171
  return c.onDbRowClick(item);
168
172
  };
173
+ let cacheInfo = null;
174
+ const onDraggableChange = (evt, groupKey) => {
175
+ if (evt.moved) {
176
+ c.onDragChange({
177
+ from: groupKey,
178
+ to: groupKey,
179
+ fromIndex: evt.moved.oldIndex,
180
+ toIndex: evt.moved.newIndex
181
+ });
182
+ }
183
+ if (evt.added) {
184
+ cacheInfo = {
185
+ to: groupKey,
186
+ toIndex: evt.added.newIndex
187
+ };
188
+ }
189
+ if (evt.removed) {
190
+ if (cacheInfo) {
191
+ cacheInfo.from = groupKey;
192
+ cacheInfo.fromIndex = evt.removed.oldIndex;
193
+ c.onDragChange(cacheInfo);
194
+ }
195
+ cacheInfo = null;
196
+ }
197
+ };
169
198
  const renderNewCard = (group) => {
170
199
  return vue.createVNode(vue.resolveComponent("el-card"), {
171
200
  "shadow": "hover",
@@ -241,7 +270,23 @@ const DataViewControl = /* @__PURE__ */ vue.defineComponent({
241
270
  }, {
242
271
  default: () => [vue.createVNode("div", {
243
272
  "class": ns.be("item", "content")
244
- }, [cardStyle.value === "style2" && !c.state.singleSelect && vue.createVNode(vue.resolveComponent("el-checkbox"), {
273
+ }, [c.state.draggable && !c.state.readonly && vue.createVNode("svg", {
274
+ "viewBox": "0 0 16 16",
275
+ "xmlns": "http://www.w3.org/2000/svg",
276
+ "height": "1em",
277
+ "width": "1em",
278
+ "class": ns.e("drag-icon"),
279
+ "preserveAspectRatio": "xMidYMid meet",
280
+ "focusable": "false"
281
+ }, [vue.createVNode("g", {
282
+ "stroke-width": "1",
283
+ "fill-rule": "evenodd"
284
+ }, [vue.createVNode("g", {
285
+ "transform": "translate(5 1)",
286
+ "fill-rule": "nonzero"
287
+ }, [vue.createVNode("path", {
288
+ "d": "M1 2a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm4 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2zM1 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm4 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm-4 4a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm4 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm-4 4a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm4 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"
289
+ }, null)])])]), cardStyle.value === "style2" && !c.state.singleSelect && vue.createVNode(vue.resolveComponent("el-checkbox"), {
245
290
  "size": "large",
246
291
  "class": ns.bem("item", "content", "checkbox"),
247
292
  "modelValue": isSelected(item),
@@ -250,7 +295,7 @@ const DataViewControl = /* @__PURE__ */ vue.defineComponent({
250
295
  }, null), panel ? renderPanelItem(item, panel) : renderDefaultItem(item)])]
251
296
  });
252
297
  };
253
- const renderCardLayout = (items, group) => {
298
+ const renderCardLayout = (items, group, disabled = true) => {
254
299
  const {
255
300
  cardColXS,
256
301
  cardColSM,
@@ -258,22 +303,18 @@ const DataViewControl = /* @__PURE__ */ vue.defineComponent({
258
303
  cardColLG
259
304
  } = c.model;
260
305
  if (cardColXS || cardColSM || cardColMD || cardColLG)
261
- return vue.createVNode(vue.resolveComponent("el-row"), {
262
- "class": ns.e("layout-row")
306
+ return vue.createVNode(draggable, {
307
+ "itemKey": "srfkey",
308
+ "modelValue": items,
309
+ "group": c.model.id,
310
+ "handle": ".".concat(ns.e("drag-icon")),
311
+ "class": ["el-row", ns.e("layout-row")],
312
+ "disabled": disabled || c.state.updating || c.state.readonly,
313
+ "onChange": (evt) => onDraggableChange(evt, group == null ? void 0 : group.key)
263
314
  }, {
264
- default: () => [items.map((item) => {
265
- return vue.createVNode(vue.resolveComponent("el-col"), {
266
- "xs": cardColXS,
267
- "sm": cardColSM,
268
- "md": cardColMD,
269
- "lg": cardColLG,
270
- "class": ns.e("layout-col")
271
- }, {
272
- default: () => [vue.createVNode("div", {
273
- "class": ns.b("scroll-item")
274
- }, [renderCard(item)])]
275
- });
276
- }), c.enableNew && !c.state.readonly && vue.createVNode(vue.resolveComponent("el-col"), {
315
+ item: ({
316
+ element
317
+ }) => vue.createVNode(vue.resolveComponent("el-col"), {
277
318
  "xs": cardColXS,
278
319
  "sm": cardColSM,
279
320
  "md": cardColMD,
@@ -282,18 +323,43 @@ const DataViewControl = /* @__PURE__ */ vue.defineComponent({
282
323
  }, {
283
324
  default: () => [vue.createVNode("div", {
284
325
  "class": ns.b("scroll-item")
285
- }, [renderNewCard(group)])]
286
- })]
326
+ }, [renderCard(element)])]
327
+ }),
328
+ footer: () => {
329
+ if (c.enableNew && !c.state.readonly)
330
+ return vue.createVNode(vue.resolveComponent("el-col"), {
331
+ "xs": cardColXS,
332
+ "sm": cardColSM,
333
+ "md": cardColMD,
334
+ "lg": cardColLG,
335
+ "class": ns.e("layout-col")
336
+ }, {
337
+ default: () => [vue.createVNode("div", {
338
+ "class": ns.b("scroll-item")
339
+ }, [renderNewCard(group)])]
340
+ });
341
+ }
287
342
  });
288
- return vue.createVNode("div", {
289
- "class": ns.e("layout-flex")
290
- }, [items.map((item) => {
291
- return vue.createVNode("div", {
343
+ return vue.createVNode(draggable, {
344
+ "itemKey": "srfkey",
345
+ "modelValue": items,
346
+ "group": c.model.id,
347
+ "class": [ns.e("layout-flex"), ns.em("layout-flex", "draggable")],
348
+ "disabled": disabled || c.state.updating || c.state.readonly,
349
+ "onChange": (evt) => onDraggableChange(evt, group == null ? void 0 : group.key)
350
+ }, {
351
+ item: ({
352
+ element
353
+ }) => vue.createVNode("div", {
292
354
  "class": ns.b("scroll-item")
293
- }, [renderCard(item)]);
294
- }), c.enableNew && !c.state.readonly && vue.createVNode("div", {
295
- "class": ns.b("scroll-item")
296
- }, [renderNewCard(group)])]);
355
+ }, [renderCard(element)]),
356
+ footer: () => {
357
+ if (c.enableNew && !c.state.readonly)
358
+ return vue.createVNode("div", {
359
+ "class": ns.b("scroll-item")
360
+ }, [renderNewCard(group)]);
361
+ }
362
+ });
297
363
  };
298
364
  const renderGroup = (group) => {
299
365
  const {
@@ -314,7 +380,7 @@ const DataViewControl = /* @__PURE__ */ vue.defineComponent({
314
380
  "onActionClick": (detail, event) => {
315
381
  c.onGroupToolbarClick(detail, event, group);
316
382
  }
317
- }, null)])]), group.children.length > 0 ? renderCardLayout(group.children, group) : vue.createVNode("div", {
383
+ }, null)])]), group.children.length > 0 ? renderCardLayout(group.children, group, !c.state.draggable) : vue.createVNode("div", {
318
384
  "class": ns.bem("group-content", "item", "empty")
319
385
  }, [ibiz.i18n.t("app.noData")])]);
320
386
  };
@@ -326,7 +392,7 @@ const DataViewControl = /* @__PURE__ */ vue.defineComponent({
326
392
  return renderGroup(group);
327
393
  })]);
328
394
  }
329
- return renderCardLayout(isCollapse.value ? c.state.items.slice(0, c.state.size) : c.state.items);
395
+ return renderCardLayout(isCollapse.value ? c.state.items.slice(0, c.state.size) : c.state.items, void 0, !c.enableEditOrder);
330
396
  };
331
397
  const scrollToTop = () => {
332
398
  var _a;