@ibiz-template/vue3-components 0.7.41-alpha.12 → 0.7.41-alpha.13

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 (114) hide show
  1. package/dist/ibiz-markdown-editor-0VHzFa2l.js +1 -0
  2. package/dist/index-LzKAcXeH.js +4 -0
  3. package/dist/index.min.css +1 -1
  4. package/dist/index.system.min.js +1 -1
  5. package/dist/{wang-editor-TYKjfyR5.js → wang-editor-Iw-hqw1q.js} +1 -1
  6. package/dist/{xlsx-util-Q9msA8ef.js → xlsx-util-FnTIZeKq.js} +1 -1
  7. package/es/control/calendar/components/calendar-user/calendar-user.css +1 -1
  8. package/es/control/calendar/components/calendar-user/calendar-user.mjs +76 -2
  9. package/es/control/data-view/data-view.d.ts +1 -1
  10. package/es/control/data-view/index.d.ts +1 -1
  11. package/es/control/form/form/index.mjs +2 -0
  12. package/es/control/form/form-detail/form-iframe/form-iframe.css +1 -0
  13. package/es/control/form/form-detail/form-iframe/form-iframe.d.ts +29 -0
  14. package/es/control/form/form-detail/form-iframe/form-iframe.mjs +53 -0
  15. package/es/control/form/form-detail/form-iframe/form-iframe.provider.d.ts +13 -0
  16. package/es/control/form/form-detail/form-iframe/form-iframe.provider.mjs +21 -0
  17. package/es/control/form/form-detail/form-iframe/index.d.ts +25 -0
  18. package/es/control/form/form-detail/form-iframe/index.mjs +12 -0
  19. package/es/control/form/form-detail/form-item/form-item.css +1 -1
  20. package/es/control/form/form-detail/form-item/form-item.mjs +6 -4
  21. package/es/control/form/form-detail/index.d.ts +1 -0
  22. package/es/control/form/form-detail/index.mjs +1 -0
  23. package/es/control/form/index.mjs +1 -0
  24. package/es/control/gantt/gantt.d.ts +1 -1
  25. package/es/control/gantt/index.d.ts +1 -1
  26. package/es/control/grid/grid/grid.d.ts +1 -1
  27. package/es/control/grid/grid/index.d.ts +1 -1
  28. package/es/control/grid/grid/index.mjs +2 -0
  29. package/es/control/grid/grid-column/grid-field-column/grid-field-column.d.ts +4 -4
  30. package/es/control/grid/grid-column/grid-field-column/grid-field-column.mjs +5 -8
  31. package/es/control/grid/virtualized-table/index.d.ts +136 -0
  32. package/es/control/grid/virtualized-table/index.mjs +18 -0
  33. package/es/control/grid/virtualized-table/virtualized-table.css +1 -0
  34. package/es/control/grid/virtualized-table/virtualized-table.d.ts +200 -0
  35. package/es/control/grid/virtualized-table/virtualized-table.mjs +325 -0
  36. package/es/control/grid/virtualized-table/virtualized-table.provider.d.ts +10 -0
  37. package/es/control/grid/virtualized-table/virtualized-table.provider.mjs +14 -0
  38. package/es/control/grid/virtualized-table/virtualized-table.util.d.ts +95 -0
  39. package/es/control/grid/virtualized-table/virtualized-table.util.mjs +191 -0
  40. package/es/control/index.mjs +1 -0
  41. package/es/control/kanban/index.d.ts +44 -1
  42. package/es/control/kanban/kanban.d.ts +56 -1
  43. package/es/control/kanban/kanban.mjs +36 -2
  44. package/es/control/list/index.d.ts +1 -1
  45. package/es/control/list/list.d.ts +1 -1
  46. package/es/control/list/list.mjs +1 -1
  47. package/es/control/search-bar/search-bar.mjs +3 -0
  48. package/es/control/tree/index.d.ts +1 -1
  49. package/es/control/tree/tree.d.ts +1 -1
  50. package/es/control/tree-grid/index.d.ts +1 -1
  51. package/es/control/tree-grid/tree-grid.d.ts +1 -1
  52. package/es/editor/array/ibiz-array/ibiz-array.css +1 -1
  53. package/es/editor/array/ibiz-array/ibiz-array.mjs +4 -1
  54. package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.d.ts +1 -1
  55. package/es/editor/data-picker/ibiz-transfer-picker/components/transfer/transfer.d.ts +1 -1
  56. package/es/editor/data-picker/ibiz-transfer-picker/ibiz-transfer-picker.d.ts +3 -2
  57. package/es/editor/date-range-select/date-range-select-picker/date-range-select.d.ts +5 -5
  58. package/es/editor/date-range-select/date-range-select.controller.mjs +9 -0
  59. package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.d.ts +1 -0
  60. package/es/editor/dropdown-list/ibiz-tree-picker/ibiz-tree-picker.d.ts +4 -3
  61. package/es/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.css +1 -1
  62. package/es/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.d.ts +10 -7
  63. package/es/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.mjs +5 -5
  64. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.mjs +1 -1
  65. package/es/editor/slider/ibiz-slider/ibiz-slider.d.ts +3 -3
  66. package/es/editor/span/span/span.d.ts +1 -1
  67. package/es/editor/text-box/ibiz-input-ip/ibiz-input-ip.css +1 -1
  68. package/es/editor/text-box/ibiz-input-ip/ibiz-input-ip.d.ts +3 -77
  69. package/es/editor/text-box/ibiz-input-ip/ibiz-input-ip.mjs +167 -108
  70. package/es/editor/text-box/input/input.d.ts +4 -4
  71. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.mjs +1 -1
  72. package/es/index.mjs +1 -0
  73. package/es/panel-component/panel-button/panel-button.controller.mjs +2 -1
  74. package/es/panel-component/panel-button/panel-button.mjs +1 -1
  75. package/es/util/app-util/app-util.d.ts +54 -2
  76. package/es/util/app-util/app-util.mjs +48 -1
  77. package/lib/control/calendar/components/calendar-user/calendar-user.cjs +76 -2
  78. package/lib/control/calendar/components/calendar-user/calendar-user.css +1 -1
  79. package/lib/control/form/form/index.cjs +2 -0
  80. package/lib/control/form/form-detail/form-iframe/form-iframe.cjs +58 -0
  81. package/lib/control/form/form-detail/form-iframe/form-iframe.css +1 -0
  82. package/lib/control/form/form-detail/form-iframe/form-iframe.provider.cjs +23 -0
  83. package/lib/control/form/form-detail/form-iframe/index.cjs +17 -0
  84. package/lib/control/form/form-detail/form-item/form-item.cjs +5 -3
  85. package/lib/control/form/form-detail/form-item/form-item.css +1 -1
  86. package/lib/control/form/form-detail/index.cjs +2 -0
  87. package/lib/control/form/index.cjs +6 -4
  88. package/lib/control/grid/grid/index.cjs +2 -0
  89. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.cjs +3 -6
  90. package/lib/control/grid/virtualized-table/index.cjs +23 -0
  91. package/lib/control/grid/virtualized-table/virtualized-table.cjs +327 -0
  92. package/lib/control/grid/virtualized-table/virtualized-table.css +1 -0
  93. package/lib/control/grid/virtualized-table/virtualized-table.provider.cjs +16 -0
  94. package/lib/control/grid/virtualized-table/virtualized-table.util.cjs +193 -0
  95. package/lib/control/index.cjs +82 -80
  96. package/lib/control/kanban/kanban.cjs +34 -0
  97. package/lib/control/list/list.cjs +1 -1
  98. package/lib/control/search-bar/search-bar.cjs +3 -0
  99. package/lib/editor/array/ibiz-array/ibiz-array.cjs +4 -1
  100. package/lib/editor/array/ibiz-array/ibiz-array.css +1 -1
  101. package/lib/editor/date-range-select/date-range-select.controller.cjs +9 -0
  102. package/lib/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.cjs +5 -5
  103. package/lib/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.css +1 -1
  104. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.cjs +1 -1
  105. package/lib/editor/text-box/ibiz-input-ip/ibiz-input-ip.cjs +166 -107
  106. package/lib/editor/text-box/ibiz-input-ip/ibiz-input-ip.css +1 -1
  107. package/lib/editor/upload/ibiz-file-upload/ibiz-file-upload.cjs +1 -1
  108. package/lib/index.cjs +112 -110
  109. package/lib/panel-component/panel-button/panel-button.cjs +1 -1
  110. package/lib/panel-component/panel-button/panel-button.controller.cjs +2 -1
  111. package/lib/util/app-util/app-util.cjs +47 -0
  112. package/package.json +4 -4
  113. package/dist/ibiz-markdown-editor-KyK5mBTS.js +0 -1
  114. package/dist/index-pyv7Wdpx.js +0 -4
@@ -0,0 +1,191 @@
1
+ import { watch, ref, computed } from 'vue';
2
+ import { ControlVO, GridRowState, Srfuf } from '@ibiz-template/runtime';
3
+
4
+ "use strict";
5
+ function useVirtualizedTable(c, props) {
6
+ const initSimpleData = () => {
7
+ if (!props.data)
8
+ return;
9
+ c.state.items = props.data;
10
+ c.state.rows = c.state.items.map((item) => {
11
+ const row = new GridRowState(new ControlVO(item), c);
12
+ return row;
13
+ });
14
+ c.calcAggResult(c.state.items);
15
+ c.calcTotalData();
16
+ };
17
+ c.evt.on("onCreated", async () => {
18
+ if (c.state.isSimple)
19
+ initSimpleData();
20
+ });
21
+ watch(
22
+ () => props.data,
23
+ () => {
24
+ if (c.state.isSimple)
25
+ initSimpleData();
26
+ },
27
+ {
28
+ deep: true
29
+ }
30
+ );
31
+ const tableRef = ref();
32
+ const tableData = computed(() => {
33
+ return c.state.rows.map((row) => row.data);
34
+ });
35
+ const sortValue = computed(() => {
36
+ var _a;
37
+ const [
38
+ prop = c.model.minorSortAppDEFieldId,
39
+ order = (_a = c.model.minorSortDir) == null ? void 0 : _a.toLowerCase()
40
+ ] = c.state.sortQuery.split(",");
41
+ return {
42
+ prop,
43
+ order
44
+ };
45
+ });
46
+ const columnModel = computed(() => {
47
+ const { columnStates, singleSelect } = c.state;
48
+ const columns = [];
49
+ if (!singleSelect)
50
+ columns.push({
51
+ key: c.id,
52
+ width: 55,
53
+ align: "center",
54
+ type: "selection",
55
+ widthUnit: "PX",
56
+ hidden: false,
57
+ class: "is-selection",
58
+ headerClass: "is-selection"
59
+ });
60
+ const { degridColumns } = c.model;
61
+ degridColumns == null ? void 0 : degridColumns.forEach((model) => {
62
+ const {
63
+ align,
64
+ width,
65
+ caption,
66
+ codeName,
67
+ widthUnit,
68
+ columnType,
69
+ cellSysCss,
70
+ enableSort
71
+ } = model;
72
+ const state = columnStates.find((s) => s.key === codeName);
73
+ columns.push({
74
+ key: codeName,
75
+ title: caption,
76
+ width: width || 160,
77
+ hidden: (state == null ? void 0 : state.hidden) === true,
78
+ enableSort: !!enableSort,
79
+ class: cellSysCss == null ? void 0 : cellSysCss.cssName,
80
+ widthUnit: widthUnit || "PX",
81
+ type: columnType.toLowerCase(),
82
+ headerClass: cellSysCss == null ? void 0 : cellSysCss.cssName,
83
+ align: (align == null ? void 0 : align.toLowerCase()) || "center"
84
+ });
85
+ });
86
+ return columns;
87
+ });
88
+ function toggleOrder(order) {
89
+ const sortOrders = ["asc", "desc", void 0];
90
+ if (order === void 0)
91
+ return sortOrders[0];
92
+ const index = sortOrders.indexOf(order || null);
93
+ return sortOrders[index > sortOrders.length - 2 ? 0 : index + 1];
94
+ }
95
+ function handleSortChange(prop, order) {
96
+ const fieldName = c.fieldColumns[prop].model.appDEFieldId;
97
+ const sortQuery = "".concat(fieldName, ",").concat(order);
98
+ if (sortQuery === c.state.sortQuery)
99
+ return;
100
+ c.setSort(fieldName, order);
101
+ c.load({
102
+ isInitialLoad: c.model.pagingMode === 2 || c.model.pagingMode === 3
103
+ });
104
+ }
105
+ async function handleRowClick(event, data) {
106
+ if (data.srfuf === Srfuf.CREATE)
107
+ return;
108
+ await c.onRowClick(data);
109
+ }
110
+ async function handleDbRowClick(event, data) {
111
+ if (data.srfuf === Srfuf.CREATE)
112
+ return;
113
+ await c.onDbRowClick(data);
114
+ }
115
+ function handleHeaderCellClick(event, column) {
116
+ const { enableSort, key } = column;
117
+ if (enableSort) {
118
+ const { prop, order } = sortValue.value;
119
+ let newOrder = "asc";
120
+ if (prop === key)
121
+ newOrder = toggleOrder(order);
122
+ handleSortChange(key, newOrder);
123
+ }
124
+ }
125
+ function handleSortClick(event, column, newOrder) {
126
+ event.stopPropagation();
127
+ const { prop, order } = sortValue.value;
128
+ const { key } = column;
129
+ if (prop === key && newOrder === order)
130
+ newOrder = void 0;
131
+ handleSortChange(key, newOrder);
132
+ }
133
+ function isSelected(data) {
134
+ return !!c.state.selectedData.find((x) => x.srfkey === data.srfkey);
135
+ }
136
+ function isAllSelected() {
137
+ return tableData.value.length > 0 && tableData.value.every(
138
+ (data) => !!c.state.selectedData.find(
139
+ (selected) => data.srfkey === selected.srfkey
140
+ )
141
+ );
142
+ }
143
+ function handleSelectAll(state) {
144
+ c.setSelection(state ? [...c.state.items] : []);
145
+ }
146
+ function handleSelectionChange(data) {
147
+ const selection = [...c.state.selectedData];
148
+ const index = selection.findIndex(
149
+ (selected) => selected.srfkey === data.srfkey
150
+ );
151
+ index === -1 ? selection.push(data) : selection.splice(index, 1);
152
+ c.setSelection([...selection]);
153
+ }
154
+ function calcColumnWidth(_columns, bodyWidth) {
155
+ const columns = [..._columns];
156
+ const showColumns = columnModel.value.filter((model) => !model.hidden);
157
+ const totalWidth = showColumns.reduce(
158
+ (accumulator, currentValue) => accumulator + currentValue.width,
159
+ 0
160
+ );
161
+ if (bodyWidth > totalWidth && showColumns.length) {
162
+ let adaptiveColumn = showColumns.filter(
163
+ (model) => model.widthUnit === "STAR"
164
+ );
165
+ if (!adaptiveColumn.length)
166
+ adaptiveColumn = [showColumns[showColumns.length - 1]];
167
+ const width = (bodyWidth - totalWidth) / adaptiveColumn.length - 6;
168
+ adaptiveColumn.forEach(
169
+ (column) => Object.assign(column, { width: column.width + width })
170
+ );
171
+ }
172
+ return columns;
173
+ }
174
+ return {
175
+ tableRef,
176
+ tableData,
177
+ sortValue,
178
+ columnModel,
179
+ isSelected,
180
+ isAllSelected,
181
+ handleRowClick,
182
+ handleSortClick,
183
+ handleSelectAll,
184
+ calcColumnWidth,
185
+ handleDbRowClick,
186
+ handleHeaderCellClick,
187
+ handleSelectionChange
188
+ };
189
+ }
190
+
191
+ export { useVirtualizedTable };
@@ -47,6 +47,7 @@ export { IBizFormRawItem } from './form/form-detail/form-rawitem/index.mjs';
47
47
  export { IBizFormTabPanel } from './form/form-detail/form-tab-panel/index.mjs';
48
48
  export { IBizFormTabPage } from './form/form-detail/form-tab-page/index.mjs';
49
49
  export { IBizFormButtonList } from './form/form-detail/form-button-list/index.mjs';
50
+ export { IBizFormIFrame } from './form/form-detail/form-iframe/index.mjs';
50
51
  export { IBizEditFormControl } from './form/edit-form/index.mjs';
51
52
  export { IBizFormControl } from './form/form/index.mjs';
52
53
  export { DataViewControlProvider } from './data-view/data-view.provider.mjs';
@@ -22,6 +22,27 @@ export declare const IBizKanbanControl: import("@ibiz-template/vue3-util").TypeW
22
22
  type: BooleanConstructor;
23
23
  default: undefined;
24
24
  };
25
+ isSimple: {
26
+ type: BooleanConstructor;
27
+ required: false;
28
+ };
29
+ data: {
30
+ type: {
31
+ (arrayLength: number): import("@ibiz-template/core").IApiData[];
32
+ (...items: import("@ibiz-template/core").IApiData[]): import("@ibiz-template/core").IApiData[];
33
+ new (arrayLength: number): import("@ibiz-template/core").IApiData[];
34
+ new (...items: import("@ibiz-template/core").IApiData[]): import("@ibiz-template/core").IApiData[];
35
+ isArray(arg: any): arg is any[];
36
+ readonly prototype: any[];
37
+ from<T>(arrayLike: ArrayLike<T>): T[];
38
+ from<T_1, U>(arrayLike: ArrayLike<T_1>, mapfn: (v: T_1, k: number) => U, thisArg?: any): U[];
39
+ from<T_2>(iterable: Iterable<T_2> | ArrayLike<T_2>): T_2[];
40
+ from<T_3, U_1>(iterable: Iterable<T_3> | ArrayLike<T_3>, mapfn: (v: T_3, k: number) => U_1, thisArg?: any): U_1[];
41
+ of<T_4>(...items: T_4[]): T_4[];
42
+ readonly [Symbol.species]: ArrayConstructor;
43
+ };
44
+ required: false;
45
+ };
25
46
  loadDefault: {
26
47
  type: BooleanConstructor;
27
48
  default: boolean;
@@ -57,14 +78,36 @@ export declare const IBizKanbanControl: import("@ibiz-template/vue3-util").TypeW
57
78
  type: BooleanConstructor;
58
79
  default: undefined;
59
80
  };
81
+ isSimple: {
82
+ type: BooleanConstructor;
83
+ required: false;
84
+ };
85
+ data: {
86
+ type: {
87
+ (arrayLength: number): import("@ibiz-template/core").IApiData[];
88
+ (...items: import("@ibiz-template/core").IApiData[]): import("@ibiz-template/core").IApiData[];
89
+ new (arrayLength: number): import("@ibiz-template/core").IApiData[];
90
+ new (...items: import("@ibiz-template/core").IApiData[]): import("@ibiz-template/core").IApiData[];
91
+ isArray(arg: any): arg is any[];
92
+ readonly prototype: any[];
93
+ from<T>(arrayLike: ArrayLike<T>): T[];
94
+ from<T_1, U>(arrayLike: ArrayLike<T_1>, mapfn: (v: T_1, k: number) => U, thisArg?: any): U[];
95
+ from<T_2>(iterable: Iterable<T_2> | ArrayLike<T_2>): T_2[];
96
+ from<T_3, U_1>(iterable: Iterable<T_3> | ArrayLike<T_3>, mapfn: (v: T_3, k: number) => U_1, thisArg?: any): U_1[];
97
+ of<T_4>(...items: T_4[]): T_4[];
98
+ readonly [Symbol.species]: ArrayConstructor;
99
+ };
100
+ required: false;
101
+ };
60
102
  loadDefault: {
61
103
  type: BooleanConstructor;
62
104
  default: boolean;
63
105
  };
64
106
  }>>, {
65
107
  params: import("@ibiz-template/core").IApiParams;
66
- mdctrlActiveMode: number;
67
108
  singleSelect: boolean;
109
+ mdctrlActiveMode: number;
110
+ isSimple: boolean;
68
111
  loadDefault: boolean;
69
112
  }, {}>>;
70
113
  export default IBizKanbanControl;
@@ -45,6 +45,33 @@ export declare const KanbanControl: import("vue").DefineComponent<{
45
45
  type: BooleanConstructor;
46
46
  default: undefined;
47
47
  };
48
+ /**
49
+ * @description 是否是简单模式,即直接传入数据,不加载数据
50
+ */
51
+ isSimple: {
52
+ type: BooleanConstructor;
53
+ required: false;
54
+ };
55
+ /**
56
+ * @description 简单模式下传入的数据
57
+ */
58
+ data: {
59
+ type: {
60
+ (arrayLength: number): import("@ibiz-template/core").IApiData[];
61
+ (...items: import("@ibiz-template/core").IApiData[]): import("@ibiz-template/core").IApiData[];
62
+ new (arrayLength: number): import("@ibiz-template/core").IApiData[];
63
+ new (...items: import("@ibiz-template/core").IApiData[]): import("@ibiz-template/core").IApiData[];
64
+ isArray(arg: any): arg is any[];
65
+ readonly prototype: any[];
66
+ from<T>(arrayLike: ArrayLike<T>): T[];
67
+ from<T_1, U>(arrayLike: ArrayLike<T_1>, mapfn: (v: T_1, k: number) => U, thisArg?: any): U[];
68
+ from<T_2>(iterable: Iterable<T_2> | ArrayLike<T_2>): T_2[];
69
+ from<T_3, U_1>(iterable: Iterable<T_3> | ArrayLike<T_3>, mapfn: (v: T_3, k: number) => U_1, thisArg?: any): U_1[];
70
+ of<T_4>(...items: T_4[]): T_4[];
71
+ readonly [Symbol.species]: ArrayConstructor;
72
+ };
73
+ required: false;
74
+ };
48
75
  /**
49
76
  * @description 是否默认加载数据
50
77
  * @default true
@@ -103,6 +130,33 @@ export declare const KanbanControl: import("vue").DefineComponent<{
103
130
  type: BooleanConstructor;
104
131
  default: undefined;
105
132
  };
133
+ /**
134
+ * @description 是否是简单模式,即直接传入数据,不加载数据
135
+ */
136
+ isSimple: {
137
+ type: BooleanConstructor;
138
+ required: false;
139
+ };
140
+ /**
141
+ * @description 简单模式下传入的数据
142
+ */
143
+ data: {
144
+ type: {
145
+ (arrayLength: number): import("@ibiz-template/core").IApiData[];
146
+ (...items: import("@ibiz-template/core").IApiData[]): import("@ibiz-template/core").IApiData[];
147
+ new (arrayLength: number): import("@ibiz-template/core").IApiData[];
148
+ new (...items: import("@ibiz-template/core").IApiData[]): import("@ibiz-template/core").IApiData[];
149
+ isArray(arg: any): arg is any[];
150
+ readonly prototype: any[];
151
+ from<T>(arrayLike: ArrayLike<T>): T[];
152
+ from<T_1, U>(arrayLike: ArrayLike<T_1>, mapfn: (v: T_1, k: number) => U, thisArg?: any): U[];
153
+ from<T_2>(iterable: Iterable<T_2> | ArrayLike<T_2>): T_2[];
154
+ from<T_3, U_1>(iterable: Iterable<T_3> | ArrayLike<T_3>, mapfn: (v: T_3, k: number) => U_1, thisArg?: any): U_1[];
155
+ of<T_4>(...items: T_4[]): T_4[];
156
+ readonly [Symbol.species]: ArrayConstructor;
157
+ };
158
+ required: false;
159
+ };
106
160
  /**
107
161
  * @description 是否默认加载数据
108
162
  * @default true
@@ -113,7 +167,8 @@ export declare const KanbanControl: import("vue").DefineComponent<{
113
167
  };
114
168
  }>>, {
115
169
  params: import("@ibiz-template/core").IApiParams;
116
- mdctrlActiveMode: number;
117
170
  singleSelect: boolean;
171
+ mdctrlActiveMode: number;
172
+ isSimple: boolean;
118
173
  loadDefault: boolean;
119
174
  }, {}>;
@@ -1,7 +1,7 @@
1
- import { isVNode, ref, computed, onMounted, onBeforeUnmount, resolveComponent, createVNode, createTextVNode, defineComponent } from 'vue';
1
+ import { isVNode, ref, computed, watch, onMounted, onBeforeUnmount, resolveComponent, createVNode, createTextVNode, defineComponent } from 'vue';
2
2
  import { useControlController, useNamespace, hasEmptyPanelRenderer, IBizCustomRender } from '@ibiz-template/vue3-util';
3
3
  import draggable from 'vuedraggable';
4
- import { KanbanController } from '@ibiz-template/runtime';
4
+ import { KanbanController, ControlVO } from '@ibiz-template/runtime';
5
5
  import { NOOP, listenJSEvent, showTitle } from '@ibiz-template/core';
6
6
  import { LaneKanban } from './lane-kanban/lane-kanban.mjs';
7
7
  import './kanban.css';
@@ -58,6 +58,20 @@ const KanbanControl = /* @__PURE__ */ defineComponent({
58
58
  type: Boolean,
59
59
  default: void 0
60
60
  },
61
+ /**
62
+ * @description 是否是简单模式,即直接传入数据,不加载数据
63
+ */
64
+ isSimple: {
65
+ type: Boolean,
66
+ required: false
67
+ },
68
+ /**
69
+ * @description 简单模式下传入的数据
70
+ */
71
+ data: {
72
+ type: Array,
73
+ required: false
74
+ },
61
75
  /**
62
76
  * @description 是否默认加载数据
63
77
  * @default true
@@ -76,6 +90,26 @@ const KanbanControl = /* @__PURE__ */ defineComponent({
76
90
  const disabled = computed(() => {
77
91
  return !c.state.draggable || c.state.updating;
78
92
  });
93
+ const initSimpleData = () => {
94
+ if (!props.data) {
95
+ return;
96
+ }
97
+ c.state.items = props.data.map((item) => new ControlVO(item));
98
+ c.afterLoad({}, c.state.items);
99
+ };
100
+ c.evt.on("onCreated", async () => {
101
+ if (props.isSimple) {
102
+ initSimpleData();
103
+ c.state.isSimple = true;
104
+ c.state.isLoaded = true;
105
+ }
106
+ });
107
+ watch(() => props.data, () => {
108
+ if (props.isSimple)
109
+ initSimpleData();
110
+ }, {
111
+ deep: true
112
+ });
79
113
  const batchKey = computed(() => {
80
114
  return c.state.batching ? c.state.selectGroupKey : "";
81
115
  });
@@ -115,8 +115,8 @@ export declare const IBizListControl: import("@ibiz-template/vue3-util").TypeWit
115
115
  };
116
116
  }>>, {
117
117
  params: import("@ibiz-template/core").IApiParams;
118
- mdctrlActiveMode: number;
119
118
  singleSelect: boolean;
119
+ mdctrlActiveMode: number;
120
120
  isSimple: boolean;
121
121
  loadDefault: boolean;
122
122
  }, {}>>;
@@ -171,8 +171,8 @@ export declare const ListControl: import("vue").DefineComponent<{
171
171
  };
172
172
  }>>, {
173
173
  params: import("@ibiz-template/core").IApiParams;
174
- mdctrlActiveMode: number;
175
174
  singleSelect: boolean;
175
+ mdctrlActiveMode: number;
176
176
  isSimple: boolean;
177
177
  loadDefault: boolean;
178
178
  }, {}>;
@@ -296,7 +296,7 @@ const ListControl = /* @__PURE__ */ defineComponent({
296
296
  if (c.state.enableGroup && !c.state.isSimple) {
297
297
  if (c.model.groupStyle === "STYLE2") {
298
298
  return createVNode("div", {
299
- "class": [ns.b("content"), ns.b("group-style2-content")]
299
+ "class": [ns.b("content"), ns.b("scroll"), ns.b("group-style2-content")]
300
300
  }, [renderGroupStyle2()]);
301
301
  }
302
302
  return createVNode(resolveComponent("el-collapse"), {
@@ -68,6 +68,9 @@ const SearchBarControl = /* @__PURE__ */ defineComponent({
68
68
  });
69
69
  const onGroupClick = (item) => {
70
70
  c.state.selectedGroupItem = item;
71
+ c.evt.emit("onTabChange", {
72
+ data: [item]
73
+ });
71
74
  onSearch();
72
75
  };
73
76
  if (c.model.enableGroup && c.model.searchBarGroups && ((_a = c.model.searchBarGroups) == null ? void 0 : _a.length) > 0) {
@@ -1044,8 +1044,8 @@ export declare const IBizTreeControl: import("@ibiz-template/vue3-util").TypeWit
1044
1044
  };
1045
1045
  }>>, {
1046
1046
  params: import("@ibiz-template/core").IApiParams;
1047
- mdctrlActiveMode: number;
1048
1047
  singleSelect: boolean;
1048
+ mdctrlActiveMode: number;
1049
1049
  isSimple: boolean;
1050
1050
  loadDefault: boolean;
1051
1051
  checkStrictly: boolean;
@@ -1134,8 +1134,8 @@ export declare const TreeControl: import("vue").DefineComponent<{
1134
1134
  };
1135
1135
  }>>, {
1136
1136
  params: import("@ibiz-template/core").IApiParams;
1137
- mdctrlActiveMode: number;
1138
1137
  singleSelect: boolean;
1138
+ mdctrlActiveMode: number;
1139
1139
  isSimple: boolean;
1140
1140
  loadDefault: boolean;
1141
1141
  checkStrictly: boolean;
@@ -145,8 +145,8 @@ export declare const IBizTreeGridControl: import("@ibiz-template/vue3-util").Typ
145
145
  };
146
146
  }>>, {
147
147
  params: import("@ibiz-template/core").IApiParams;
148
- mdctrlActiveMode: number;
149
148
  singleSelect: boolean;
149
+ mdctrlActiveMode: number;
150
150
  rowEditOpen: boolean;
151
151
  isSimple: boolean;
152
152
  loadDefault: boolean;
@@ -206,8 +206,8 @@ export declare const TreeGridControl: import("vue").DefineComponent<{
206
206
  };
207
207
  }>>, {
208
208
  params: import("@ibiz-template/core").IApiParams;
209
- mdctrlActiveMode: number;
210
209
  singleSelect: boolean;
210
+ mdctrlActiveMode: number;
211
211
  rowEditOpen: boolean;
212
212
  isSimple: boolean;
213
213
  loadDefault: boolean;
@@ -1 +1 @@
1
- .ibiz-array{height:100%;line-height:var(--ibiz-editor-default-line-height)}.ibiz-array ion-icon{cursor:pointer}
1
+ .ibiz-array{height:100%;line-height:var(--ibiz-editor-default-line-height)}.ibiz-array ion-icon{cursor:pointer}.ibiz-array-tooltip .el-link{--el-link-text-color:inherit}
@@ -183,6 +183,7 @@ const IBizArray = /* @__PURE__ */ defineComponent({
183
183
  "onUpdate:modelValue": ($event) => item.value = $event,
184
184
  "placeholder": this.c.placeHolder,
185
185
  "disabled": this.disabled,
186
+ "readonly": this.readonly,
186
187
  "onBlur": this.onBlur,
187
188
  "onFocus": this.onFocus,
188
189
  "onKeyup": this.handleKeyUp,
@@ -190,7 +191,8 @@ const IBizArray = /* @__PURE__ */ defineComponent({
190
191
  "onInput": (val) => this.handleInput(val, index)
191
192
  }, this.$attrs), null) : createVNode(resolveComponent("el-tooltip"), {
192
193
  "placement": "bottom",
193
- "trigger": "hover"
194
+ "trigger": "hover",
195
+ "popper-class": this.ns.b("tooltip")
194
196
  }, {
195
197
  default: () => {
196
198
  return createVNode(resolveComponent("el-input"), mergeProps({
@@ -200,6 +202,7 @@ const IBizArray = /* @__PURE__ */ defineComponent({
200
202
  "onUpdate:modelValue": ($event) => item.value = $event,
201
203
  "placeholder": this.c.placeHolder,
202
204
  "disabled": this.disabled,
205
+ "readonly": this.readonly,
203
206
  "maxlength": Object.is(this.editorStyle, "url") ? this.maxLength : null,
204
207
  "show-word-limit": Object.is(this.editorStyle, "url") ? this.showWordLimit : null,
205
208
  "onBlur": this.onBlur,
@@ -5,7 +5,7 @@ import './ibiz-checkbox-list.scss';
5
5
  *
6
6
  * @description 使用el-checkbox-group组件,通过选项框组选择多项数据,该组件通常用于绘制代码表。支持编辑器类型包含:`选项框列表`
7
7
  * @primary
8
- * @editorparams {name:rownumber,parameterType:number,description:设置每行呈现的多选框个数}
8
+ * @editorparams {name:rownumber,parameterType:number,description:设置每行呈现的选项框个数}
9
9
  * @editorparams {name:allitems,parameterType:boolean,defaultvalue:false,description:选项框列表是否启用全部项}
10
10
  * @editorparams {name:itemstext,parameterType:string,defaultvalue:'全部',description:选项框列表全部项文本}
11
11
  * @editorparams {"name":"readonly","parameterType":"boolean","defaultvalue":false,"description":"设置编辑器是否为只读态"}
@@ -171,6 +171,7 @@ export declare const TransferSelect: import("vue").DefineComponent<{
171
171
  modelValue: import("./interface").TransferKey[];
172
172
  readonly: boolean;
173
173
  format: import("./interface").TransferFormat;
174
+ validateEvent: boolean;
174
175
  titles: string[];
175
176
  buttonTexts: string[];
176
177
  leftDefaultChecked: import("./interface").TransferKey[];
@@ -178,5 +179,4 @@ export declare const TransferSelect: import("vue").DefineComponent<{
178
179
  filterable: boolean;
179
180
  targetOrder: string;
180
181
  enableRemoteSearch: boolean;
181
- validateEvent: boolean;
182
182
  }, {}>;
@@ -4,15 +4,16 @@ import './ibiz-transfer-picker.scss';
4
4
  /**
5
5
  * 穿梭框选择(扩展)
6
6
  *
7
- * @description 用于通过穿梭框样式区分未选数据和已选数据。基于`数据选择`编辑器进行扩展,编辑器样式代码名称为:TRANSFER_PICKER
7
+ * @description 通过穿梭框区分未选数据和已选数据。基于`数据选择`编辑器进行扩展,编辑器样式代码名称为:TRANSFER_PICKER
8
8
  * @primary
9
9
  * @editorparams {"name":"titles","parameterType":"string[]","defaultvalue":"[\"可选列表\",\"已选列表\"]","description":"用于自定义列表标题,该值为字符串数组。其中下标为 0 的字符串对应穿梭框左侧列表的标题,下标为 1 的字符串对应穿梭框右侧列表的标题"}
10
10
  * @editorparams {"name":"buttontexts","parameterType":"string[]","defaultvalue":"[\"删除\",\"添加\"]","description":"用于自定义按钮显示文字,该值为字符串数组。其中下标为 0 的字符串对应左侧按钮文字,下标为 1 的字符串对应右侧按钮文字"}
11
11
  * @editorparams {"name":"remotesearch","parameterType":"boolean","defaultvalue":"false","description":"是否启用远程过滤搜索功能。左侧列表默认采用本地过滤搜索,若此值为 true,则会开启远程过滤搜索"}
12
12
  * @editorparams {"name":"valuetype","parameterType":"string","description":"编辑器的值类型"}
13
- * @editorparams {"name":"objectidfield","parameterType":"string","description":"值类型为OBJECTS时的对象标识属性"}
13
+ * @editorparams {"name":"objectidfield","parameterType":"string","description":"值类型为OBJECTS时的对象标识属性。当值类型非 OBJECTS 且配置了此参数时,抛出的值为选中数据以值分隔符拼接而成的字符串"}
14
14
  * @editorparams {"name":"objectnamefield","parameterType":"string","description":"值类型为OBJECTS时的对象名称属性。也用于控制是否触发左侧列表数据的默认加载,配置时会触发默认加载,不配置时不会触发默认加载"}
15
15
  * @editorparams {"name":"objectvaluefield","parameterType":"string","description":"值类型为OBJECTS时的对象值属性"}
16
+ * @editorparams {"name":"readonly","parameterType":"boolean","defaultvalue":false,"description":"设置编辑器是否为只读态"}
16
17
  * @ignoreprops autoFocus | overflowMode
17
18
  * @ignoreemits blur | focus | enter
18
19
  */
@@ -3,12 +3,12 @@ import './date-range-select.scss';
3
3
  /**
4
4
  * 时间范围选择(扩展)
5
5
  *
6
- * @description 使用el-date-picker组件封装,用于实现天、周、月、季度、年等不同时间单位的时间范围选择功能。支持编辑器样式为`时间范围(可选单位)`,基于`时间范围选择器`编辑器进行扩展
6
+ * @description 使用el-date-picker组件封装,用于实现天、周、月、季度、年等不同时间单位的时间范围选择功能。基于`时间范围选择器`编辑器进行扩展,编辑器样式代码名称为:SWITCHUNIT
7
7
  * @primary
8
- * @editorparams {"name":"switchUnit","parameterType":"boolean","defaultvalue":true,"description":"是否显示时间单位选择功能组件,该组件主要用于切换时间单位,根据不同的时间单位抛出不同的开始与结束时间值"}
9
- * @editorparams {"name":"defaultUnit","parameterType":"'DAY' | 'WEEK' | 'MONTH' | 'QUARTER' | 'YEAR'","defaultvalue":"'DAY'","description":"默认时间单位,配置不同时间单位将展示对应的时间选择组件"}
10
- * @editorparams {"name":"emitMode","parameterType":"'DEFAULT' | 'TIME'","defaultvalue":"'DEFAULT'","description":"数据抛出模式。当参数值为 'DEFAULT' 且时间单位为 'DAY' 时,若当前时间为 '2025/04/23',开始时间为 '2025/04/22'、结束时间为 '2025/04/24',此时若时间类型为固定时间,将开始与结束时间的时间戳除以 1000 后按 `{start:1745251200,end:1745510399,unit:'DAY',type:'STATIC'}` 格式抛值,若为动态时间则按 `{start:-1,end:1,unit:'DAY',type:'DYNAMIC'}` 格式抛值,以当前时间与开始、结束时间的时间间隔体现;而当参数值为 'TIME' 时,将开始与结束时间按本地时间格式转换为字符串,按 `{start:'2025/4/22 00:00:00',end:'2025/4/24 23:59:59',unit:'DAY',type:'STATIC'}` 格式抛值"}
11
- * @ignoreprops autoFocus | overflowMode | controlParams
8
+ * @editorparams {"name":"switchunit","parameterType":"boolean","defaultvalue":true,"description":"是否显示时间单位选择功能组件,该组件主要用于切换时间单位,根据不同的时间单位抛出不同的开始与结束时间值"}
9
+ * @editorparams {"name":"defaultunit","parameterType":"'DAY' | 'WEEK' | 'MONTH' | 'QUARTER' | 'YEAR'","defaultvalue":"'DAY'","description":"默认时间单位,配置不同时间单位将展示对应的时间选择组件"}
10
+ * @editorparams {"name":"emitmode","parameterType":"'DEFAULT' | 'TIME'","defaultvalue":"'DEFAULT'","description":"抛值模式。当参数值为 'DEFAULT' 且时间单位为 'DAY' 时,若当前时间为 '2025/04/23',开始时间为 '2025/04/22'、结束时间为 '2025/04/24',此时若时间类型为固定时间,将开始与结束时间的时间戳除以 1000 后按 `{start:1745251200,end:1745510399,unit:'DAY',type:'STATIC'}` 格式抛值,若为动态时间则按 `{start:-1,end:1,unit:'DAY',type:'DYNAMIC'}` 格式抛值,以当前时间与开始、结束时间的时间间隔体现;而当参数值为 'TIME' 时,将开始与结束时间按本地时间格式转换为字符串,按 `{start:'2025/4/22 00:00:00',end:'2025/4/24 23:59:59',unit:'DAY',type:'STATIC'}` 格式抛值"}
11
+ * @ignoreprops autoFocus | overflowMode
12
12
  * @ignoreemits blur | focus | enter | infoTextChange
13
13
  */
14
14
  export declare const IBizDateRangeSelect: import("vue").DefineComponent<{
@@ -179,12 +179,21 @@ class DateRangeSelectEditorController extends EditorController {
179
179
  if (this.editorParams.switchUnit) {
180
180
  this.switchUnit = this.editorParams.switchUnit === "true";
181
181
  }
182
+ if (this.editorParams.switchunit) {
183
+ this.switchUnit = this.editorParams.switchunit === "true";
184
+ }
182
185
  if (this.editorParams.defaultUnit) {
183
186
  this.defaultUnit = this.editorParams.defaultUnit;
184
187
  }
188
+ if (this.editorParams.defaultunit) {
189
+ this.defaultUnit = this.editorParams.defaultunit;
190
+ }
185
191
  if (this.editorParams.emitMode) {
186
192
  this.emitMode = this.editorParams.emitMode;
187
193
  }
194
+ if (this.editorParams.emitmode) {
195
+ this.emitMode = this.editorParams.emitmode;
196
+ }
188
197
  }
189
198
  }
190
199
  /**
@@ -5,6 +5,7 @@ import './ibiz-emoji-picker.scss';
5
5
  *
6
6
  * @description 用于选择utf8表情,抛值时会将utf8表情转为UTF-8字符串,再抛出。基于`下拉列表框`编辑器进行扩展,编辑器样式代码名称为:EMOJI_PICKER
7
7
  * @primary
8
+ * @editorparams {"name":"readonly","parameterType":"boolean","defaultvalue":false,"description":"设置编辑器是否为只读态"}
8
9
  * @ignoreprops autoFocus | overflowMode
9
10
  * @ignoreemits blur | focus | enter | infoTextChange
10
11
  */
@@ -6,8 +6,9 @@ import './ibiz-tree-picker.scss';
6
6
  *
7
7
  * @description 用于以树形样式呈现选择项,支持搜索过滤、全选、取消全选、全展开及全收起功能,常用于绘制树形结构的代码表数据。基于`下拉列表框(多选)`编辑器进行扩展,编辑器样式代码名称为:TREE_PICKER
8
8
  * @primary
9
- * @editorparams {"name":"showtoolbar","parameterType":"boolean","defaultvalue":"false","description":"是否显示头部工具栏。默认不显示,若此值为 true,则会在头部呈现快捷工具栏,该工具栏可用于执行全选、取消全选、全展开以及全收起操作"}
10
- * @ignoreprops autoFocus | overflowMode | controlParams
9
+ * @editorparams {"name":"showtoolbar","parameterType":"boolean","defaultvalue":"false","description":"是否显示顶部工具栏。默认不显示,若此值为 true,则会在顶部呈现快捷工具栏,该工具栏可用于执行全选、取消全选、全展开以及全收起操作"}
10
+ * @editorparams {"name":"valuetype","parameterType":"string","description":"编辑器的值类型"}
11
+ * @ignoreprops autoFocus | overflowMode
11
12
  * @ignoreemits blur | focus | enter | infoTextChange
12
13
  */
13
14
  export declare const IBizTreePicker: import("vue").DefineComponent<{
@@ -56,7 +57,7 @@ export declare const IBizTreePicker: import("vue").DefineComponent<{
56
57
  change: (_value: unknown, _name?: string | undefined, _ignore?: boolean | undefined) => boolean;
57
58
  blur: (_event?: import("@ibiz-template/core").IApiData | undefined) => boolean;
58
59
  focus: (_event?: import("@ibiz-template/core").IApiData | undefined) => boolean;
59
- enter: (_event?: import("@ibiz-template/core").IApiData | undefined) => boolean;
60
+ enter: (_event?: import("@ibiz-template/core").IApiData | undefined) => boolean; /** 全部展开状态 */
60
61
  infoTextChange: (_text: string) => boolean;
61
62
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
62
63
  value: (StringConstructor | NumberConstructor)[];