bm-admin-ui 1.0.0-alpha → 1.0.1-alpha

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/es/components/button/index.d.ts +9 -9
  2. package/es/components/button/index.js +1 -1
  3. package/es/components/button/src/button.vue.d.ts +9 -9
  4. package/es/components/float-table/index.d.ts +5 -0
  5. package/es/components/float-table/index.js +448 -0
  6. package/es/components/float-table/src/float-table.vue.d.ts +500 -0
  7. package/es/components/flow-designer/index.js +1 -1
  8. package/es/components/form-designer/index.js +1 -1
  9. package/es/components/index.d.ts +7 -0
  10. package/es/components/index.js +7 -0
  11. package/es/components/multi-cascader-compose/index.d.ts +135 -0
  12. package/es/components/multi-cascader-compose/index.js +1699 -0
  13. package/es/components/multi-cascader-compose/src/multi-cascader-compose.vue.d.ts +135 -0
  14. package/es/components/multi-cascader-compose/src/props.d.ts +32 -0
  15. package/es/components/multi-cascader-compose/types.d.ts +10 -0
  16. package/es/components/over-tooltips/index.d.ts +35 -0
  17. package/es/components/over-tooltips/index.js +117 -0
  18. package/es/components/over-tooltips/src/over-tooltips.vue.d.ts +34 -0
  19. package/es/components/search-filter/index.d.ts +1 -1
  20. package/es/components/search-filter/index.js +593 -29
  21. package/es/components/search-filter/src/search-filter.vue.d.ts +1 -1
  22. package/es/components/shops-filter/index.d.ts +99 -0
  23. package/es/components/shops-filter/index.js +1614 -0
  24. package/es/components/shops-filter/src/shops-filter.d.ts +25 -0
  25. package/es/components/shops-filter/src/shops-filter.vue.d.ts +98 -0
  26. package/es/components/staffs-selector/index.d.ts +82 -0
  27. package/es/components/staffs-selector/index.js +1991 -0
  28. package/es/components/staffs-selector/src/multipleCmp.vue.d.ts +79 -0
  29. package/es/components/staffs-selector/src/radioCmp.vue.d.ts +31 -0
  30. package/es/components/staffs-selector/src/staffs-selector.vue.d.ts +81 -0
  31. package/es/components/staffs-selector/src/variedCmp.vue.d.ts +62 -0
  32. package/es/components/timeline/index.d.ts +93 -0
  33. package/es/components/timeline/index.js +164 -0
  34. package/es/components/timeline/src/props.d.ts +20 -0
  35. package/es/components/timeline/src/timeline-item.vue.d.ts +51 -0
  36. package/es/components/timeline/src/timeline.vue.d.ts +42 -0
  37. package/es/components/upload/index.d.ts +126 -0
  38. package/es/components/upload/index.js +1839 -0
  39. package/es/components/upload/src/icons.d.ts +13 -0
  40. package/es/components/upload/src/upload.vue.d.ts +125 -0
  41. package/es/components/upload/utils/index.d.ts +7 -0
  42. package/index.esm.js +62925 -1235
  43. package/index.js +63078 -1380
  44. package/lib/components/button/index.d.ts +9 -9
  45. package/lib/components/button/index.js +1 -1
  46. package/lib/components/button/src/button.vue.d.ts +9 -9
  47. package/lib/components/float-table/index.d.ts +5 -0
  48. package/lib/components/float-table/index.js +459 -0
  49. package/lib/components/float-table/src/float-table.vue.d.ts +500 -0
  50. package/lib/components/flow-designer/index.js +1 -1
  51. package/lib/components/form-designer/index.js +1 -1
  52. package/lib/components/index.d.ts +7 -0
  53. package/lib/components/index.js +49 -0
  54. package/lib/components/multi-cascader-compose/index.d.ts +135 -0
  55. package/lib/components/multi-cascader-compose/index.js +1704 -0
  56. package/lib/components/multi-cascader-compose/src/multi-cascader-compose.vue.d.ts +135 -0
  57. package/lib/components/multi-cascader-compose/src/props.d.ts +32 -0
  58. package/lib/components/multi-cascader-compose/types.d.ts +10 -0
  59. package/lib/components/over-tooltips/index.d.ts +35 -0
  60. package/lib/components/over-tooltips/index.js +122 -0
  61. package/lib/components/over-tooltips/src/over-tooltips.vue.d.ts +34 -0
  62. package/lib/components/search-filter/index.d.ts +1 -1
  63. package/lib/components/search-filter/index.js +592 -28
  64. package/lib/components/search-filter/src/search-filter.vue.d.ts +1 -1
  65. package/lib/components/shops-filter/index.d.ts +99 -0
  66. package/lib/components/shops-filter/index.js +1626 -0
  67. package/lib/components/shops-filter/src/shops-filter.d.ts +25 -0
  68. package/lib/components/shops-filter/src/shops-filter.vue.d.ts +98 -0
  69. package/lib/components/staffs-selector/index.d.ts +82 -0
  70. package/lib/components/staffs-selector/index.js +2005 -0
  71. package/lib/components/staffs-selector/src/multipleCmp.vue.d.ts +79 -0
  72. package/lib/components/staffs-selector/src/radioCmp.vue.d.ts +31 -0
  73. package/lib/components/staffs-selector/src/staffs-selector.vue.d.ts +81 -0
  74. package/lib/components/staffs-selector/src/variedCmp.vue.d.ts +62 -0
  75. package/lib/components/timeline/index.d.ts +93 -0
  76. package/lib/components/timeline/index.js +170 -0
  77. package/lib/components/timeline/src/props.d.ts +20 -0
  78. package/lib/components/timeline/src/timeline-item.vue.d.ts +51 -0
  79. package/lib/components/timeline/src/timeline.vue.d.ts +42 -0
  80. package/lib/components/upload/index.d.ts +126 -0
  81. package/lib/components/upload/index.js +1844 -0
  82. package/lib/components/upload/src/icons.d.ts +13 -0
  83. package/lib/components/upload/src/upload.vue.d.ts +125 -0
  84. package/lib/components/upload/utils/index.d.ts +7 -0
  85. package/package.json +6 -3
  86. package/theme-chalk/button.css +1 -1
  87. package/theme-chalk/float-table.css +1 -0
  88. package/theme-chalk/floating-vue.css +1 -0
  89. package/theme-chalk/flow-designer.css +1 -1
  90. package/theme-chalk/index.css +1 -1
  91. package/theme-chalk/multi-cascader-compose.css +1 -0
  92. package/theme-chalk/over-tooltips.css +1 -0
  93. package/theme-chalk/search-filter.css +1 -1
  94. package/theme-chalk/shops-filter.css +1 -0
  95. package/theme-chalk/staffs-selector.css +1 -0
  96. package/theme-chalk/timeline.css +1 -0
  97. package/theme-chalk/upload.css +1 -0
  98. package/types/components/button/index.d.ts +9 -9
  99. package/types/components/button/src/button.vue.d.ts +9 -9
  100. package/types/components/float-table/index.d.ts +5 -0
  101. package/types/components/float-table/src/float-table.vue.d.ts +500 -0
  102. package/types/components/index.d.ts +7 -0
  103. package/types/components/multi-cascader-compose/index.d.ts +135 -0
  104. package/types/components/multi-cascader-compose/src/multi-cascader-compose.vue.d.ts +135 -0
  105. package/types/components/multi-cascader-compose/src/props.d.ts +32 -0
  106. package/types/components/multi-cascader-compose/types.d.ts +10 -0
  107. package/types/components/over-tooltips/index.d.ts +35 -0
  108. package/types/components/over-tooltips/src/over-tooltips.vue.d.ts +34 -0
  109. package/types/components/search-filter/index.d.ts +1 -1
  110. package/types/components/search-filter/src/search-filter.vue.d.ts +1 -1
  111. package/types/components/shops-filter/index.d.ts +99 -0
  112. package/types/components/shops-filter/src/shops-filter.d.ts +25 -0
  113. package/types/components/shops-filter/src/shops-filter.vue.d.ts +98 -0
  114. package/types/components/staffs-selector/index.d.ts +82 -0
  115. package/types/components/staffs-selector/src/multipleCmp.vue.d.ts +79 -0
  116. package/types/components/staffs-selector/src/radioCmp.vue.d.ts +31 -0
  117. package/types/components/staffs-selector/src/staffs-selector.vue.d.ts +81 -0
  118. package/types/components/staffs-selector/src/variedCmp.vue.d.ts +62 -0
  119. package/types/components/timeline/index.d.ts +93 -0
  120. package/types/components/timeline/src/props.d.ts +20 -0
  121. package/types/components/timeline/src/timeline-item.vue.d.ts +51 -0
  122. package/types/components/timeline/src/timeline.vue.d.ts +42 -0
  123. package/types/components/upload/index.d.ts +126 -0
  124. package/types/components/upload/src/icons.d.ts +13 -0
  125. package/types/components/upload/src/upload.vue.d.ts +125 -0
  126. package/types/components/upload/utils/index.d.ts +7 -0
@@ -27,12 +27,12 @@ declare const BmButton: import("bm-admin-ui/es/utils/with-install").SFCWithInsta
27
27
  $props: Partial<{
28
28
  block: boolean;
29
29
  disabled: boolean;
30
- ghost: boolean;
31
- danger: boolean;
32
- htmlType: import("ant-design-vue/lib/button/buttonTypes").ButtonHTMLType;
33
30
  loading: boolean | {
34
31
  delay?: number | undefined;
35
32
  };
33
+ ghost: boolean;
34
+ danger: boolean;
35
+ htmlType: import("ant-design-vue/lib/button/buttonTypes").ButtonHTMLType;
36
36
  }> & Omit<Readonly<import("vue").ExtractPropTypes<{
37
37
  prefixCls: StringConstructor;
38
38
  type: import("vue").PropType<import("ant-design-vue/lib/button").ButtonType>;
@@ -144,12 +144,12 @@ declare const BmButton: import("bm-admin-ui/es/utils/with-install").SFCWithInsta
144
144
  }>>, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
145
145
  block: boolean;
146
146
  disabled: boolean;
147
- ghost: boolean;
148
- danger: boolean;
149
- htmlType: import("ant-design-vue/lib/button/buttonTypes").ButtonHTMLType;
150
147
  loading: boolean | {
151
148
  delay?: number | undefined;
152
149
  };
150
+ ghost: boolean;
151
+ danger: boolean;
152
+ htmlType: import("ant-design-vue/lib/button/buttonTypes").ButtonHTMLType;
153
153
  }> & {
154
154
  beforeCreate?: (() => void) | (() => void)[] | undefined;
155
155
  created?: (() => void) | (() => void)[] | undefined;
@@ -271,12 +271,12 @@ declare const BmButton: import("bm-admin-ui/es/utils/with-install").SFCWithInsta
271
271
  }>>, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
272
272
  block: boolean;
273
273
  disabled: boolean;
274
- ghost: boolean;
275
- danger: boolean;
276
- htmlType: import("ant-design-vue/lib/button/buttonTypes").ButtonHTMLType;
277
274
  loading: boolean | {
278
275
  delay?: number | undefined;
279
276
  };
277
+ ghost: boolean;
278
+ danger: boolean;
279
+ htmlType: import("ant-design-vue/lib/button/buttonTypes").ButtonHTMLType;
280
280
  }> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("@vue/runtime-core").Plugin & {
281
281
  readonly Group: import("vue").DefineComponent<{
282
282
  prefixCls: StringConstructor;
@@ -50,7 +50,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
50
50
  };
51
51
  }
52
52
  });
53
- var Button = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/Users/hesiying/work/bm-admin-ui/packages/components/button/src/button.vue"]]);
53
+ var Button = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "button.vue"]]);
54
54
 
55
55
  const BmButton = withInstall.withInstall(Button);
56
56
 
@@ -29,12 +29,12 @@ declare const _default: import("vue").DefineComponent<{
29
29
  $props: Partial<{
30
30
  block: boolean;
31
31
  disabled: boolean;
32
- ghost: boolean;
33
- danger: boolean;
34
- htmlType: import("ant-design-vue/lib/button/buttonTypes").ButtonHTMLType;
35
32
  loading: boolean | {
36
33
  delay?: number | undefined;
37
34
  };
35
+ ghost: boolean;
36
+ danger: boolean;
37
+ htmlType: import("ant-design-vue/lib/button/buttonTypes").ButtonHTMLType;
38
38
  }> & Omit<Readonly<import("vue").ExtractPropTypes<{
39
39
  prefixCls: StringConstructor;
40
40
  type: import("vue").PropType<ButtonType>;
@@ -146,12 +146,12 @@ declare const _default: import("vue").DefineComponent<{
146
146
  }>>, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
147
147
  block: boolean;
148
148
  disabled: boolean;
149
- ghost: boolean;
150
- danger: boolean;
151
- htmlType: import("ant-design-vue/lib/button/buttonTypes").ButtonHTMLType;
152
149
  loading: boolean | {
153
150
  delay?: number | undefined;
154
151
  };
152
+ ghost: boolean;
153
+ danger: boolean;
154
+ htmlType: import("ant-design-vue/lib/button/buttonTypes").ButtonHTMLType;
155
155
  }> & {
156
156
  beforeCreate?: (() => void) | (() => void)[] | undefined;
157
157
  created?: (() => void) | (() => void)[] | undefined;
@@ -273,12 +273,12 @@ declare const _default: import("vue").DefineComponent<{
273
273
  }>>, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
274
274
  block: boolean;
275
275
  disabled: boolean;
276
- ghost: boolean;
277
- danger: boolean;
278
- htmlType: import("ant-design-vue/lib/button/buttonTypes").ButtonHTMLType;
279
276
  loading: boolean | {
280
277
  delay?: number | undefined;
281
278
  };
279
+ ghost: boolean;
280
+ danger: boolean;
281
+ htmlType: import("ant-design-vue/lib/button/buttonTypes").ButtonHTMLType;
282
282
  }> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("@vue/runtime-core").Plugin & {
283
283
  readonly Group: import("vue").DefineComponent<{
284
284
  prefixCls: StringConstructor;
@@ -0,0 +1,5 @@
1
+ declare const BmFloatTable: {
2
+ install(app: any): void;
3
+ };
4
+ export { BmFloatTable };
5
+ export default BmFloatTable;
@@ -0,0 +1,459 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var withInstall = require('bm-admin-ui/lib/utils/with-install');
6
+ var vue = require('vue');
7
+ var Pagination = require('ant-design-vue/lib/pagination');
8
+ var antDesignVue = require('ant-design-vue');
9
+ var XEUtils = require('xe-utils');
10
+ var vxeTable = require('vxe-table');
11
+ var zhCN = require('vxe-table/es/locale/lang/zh-CN');
12
+
13
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+
15
+ var Pagination__default = /*#__PURE__*/_interopDefaultLegacy(Pagination);
16
+ var XEUtils__default = /*#__PURE__*/_interopDefaultLegacy(XEUtils);
17
+ var zhCN__default = /*#__PURE__*/_interopDefaultLegacy(zhCN);
18
+
19
+ var _export_sfc = (sfc, props) => {
20
+ const target = sfc.__vccOpts || sfc;
21
+ for (const [key, val] of props) {
22
+ target[key] = val;
23
+ }
24
+ return target;
25
+ };
26
+
27
+ const _hoisted_1 = {
28
+ key: 0,
29
+ class: "floatPager"
30
+ };
31
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
32
+ props: {
33
+ config: {
34
+ type: Object,
35
+ required: true,
36
+ default: () => {
37
+ return {};
38
+ }
39
+ },
40
+ pagerProps: {
41
+ type: Object,
42
+ default: () => {
43
+ return {};
44
+ }
45
+ },
46
+ events: {
47
+ type: Object,
48
+ default: () => {
49
+ return {};
50
+ }
51
+ },
52
+ isNeedFloatHandle: {
53
+ type: Boolean,
54
+ default: false
55
+ },
56
+ size: {
57
+ type: String,
58
+ default: "middle"
59
+ }
60
+ },
61
+ emits: [
62
+ "radioChange",
63
+ "checkboxChange",
64
+ "checkboxChangeAll",
65
+ "pageChange",
66
+ "pageSizeChange"
67
+ ],
68
+ setup(__props, { expose, emit: emits }) {
69
+ const props = __props;
70
+ const AEmpty = antDesignVue.Empty;
71
+ const floatTable = vue.ref();
72
+ const xGrid = vue.ref();
73
+ const state = vue.reactive({
74
+ emptyImg: AEmpty.PRESENTED_IMAGE_SIMPLE,
75
+ floatRefsId: {},
76
+ floatId: "",
77
+ isShowFloatHandle: true,
78
+ gridOptions: {
79
+ resizable: false,
80
+ border: "default",
81
+ highlightHoverRow: true,
82
+ showOverflow: false,
83
+ showHeaderOverflow: true,
84
+ align: null,
85
+ columns: [],
86
+ tooltipConfig: { leaveDelay: 1e6 },
87
+ data: [],
88
+ pagerConfig: {},
89
+ emptyText: "\u6682\u65E0\u6570\u636E",
90
+ checkboxConfig: {
91
+ reserve: false,
92
+ highlight: vue.computed(function() {
93
+ return props.config.columns.some(function(item) {
94
+ return item.type === "checkbox" || item.type === "checkbox";
95
+ });
96
+ }),
97
+ trigger: "row"
98
+ },
99
+ rowClassName: "tb-row",
100
+ sortConfig: {
101
+ trigger: "cell",
102
+ orders: ["desc", "asc", null]
103
+ }
104
+ },
105
+ gridEvents: {
106
+ radioChange(val) {
107
+ emits("radioChange", val);
108
+ },
109
+ checkboxChange(val) {
110
+ emits("checkboxChange", val);
111
+ },
112
+ checkboxAll(val) {
113
+ emits("checkboxChangeAll", val);
114
+ }
115
+ },
116
+ atVisible: false,
117
+ goAnimationEnd: false,
118
+ floatPosition: {
119
+ top: "0",
120
+ height: "0"
121
+ },
122
+ trNodes: [],
123
+ isInScroll: false,
124
+ inMaxScorllX: false,
125
+ floatRow: {},
126
+ floatRowIndex: void 0,
127
+ floatHandleDomCol: null
128
+ });
129
+ const classes = vue.computed(() => {
130
+ return [
131
+ "floatTable",
132
+ "bm-table",
133
+ `table-${props.size}`,
134
+ {
135
+ floatHandleTable: props.isNeedFloatHandle && (!state.atVisible || state.inMaxScorllX) && state.floatHandleDomCol
136
+ }
137
+ ];
138
+ });
139
+ const gridOptions = vue.computed(() => {
140
+ return {
141
+ ...state.gridOptions,
142
+ ...props.config
143
+ };
144
+ });
145
+ let mouseenterCellTime;
146
+ const gridEvents = vue.computed(() => {
147
+ let extraFn = {};
148
+ if (props.isNeedFloatHandle) {
149
+ let propscellMouseenter = props.events.cellMouseenter;
150
+ extraFn.cellMouseenter = (e) => {
151
+ if (props.isNeedFloatHandle) {
152
+ if (state.isInScroll) {
153
+ state.isShowFloatHandle = false;
154
+ return;
155
+ }
156
+ if (state.inMaxScorllX) {
157
+ state.isShowFloatHandle = false;
158
+ }
159
+ let rowid = e.rowid;
160
+ let row = e.row;
161
+ clearTimeout(mouseenterCellTime);
162
+ mouseenterCellTime = setTimeout(function() {
163
+ if (state.floatId !== rowid) {
164
+ state.goAnimationEnd = false;
165
+ } else {
166
+ return;
167
+ }
168
+ state.floatId = rowid;
169
+ state.floatRow = row;
170
+ state.floatRowIndex = e.rowIndex;
171
+ let domEl = state.floatRefsId[rowid];
172
+ let tdDom = domEl && domEl.closest("td");
173
+ if (!tdDom)
174
+ return;
175
+ let clientHeight = tdDom.clientHeight - 1 + "px";
176
+ let trDoms = document.querySelectorAll(`[rowid='${rowid}']`);
177
+ state.trNodes = trDoms;
178
+ let top = e.cell.getBoundingClientRect().top;
179
+ let parentTop = floatTable.value.getBoundingClientRect().top;
180
+ top = top - parentTop + "px";
181
+ state.floatPosition = {
182
+ top,
183
+ height: clientHeight
184
+ };
185
+ if (!state.atVisible && !state.inMaxScorllX) {
186
+ state.isShowFloatHandle = true;
187
+ }
188
+ vue.nextTick(() => {
189
+ let $floatHandle = document.querySelector(".floatHandle");
190
+ if ($floatHandle.clientWidth === 32) {
191
+ $floatHandle.style.padding = 0;
192
+ }
193
+ });
194
+ }, 200);
195
+ }
196
+ propscellMouseenter && propscellMouseenter(e);
197
+ };
198
+ extraFn.scroll = (e) => {
199
+ let propsscroll = props.events.scroll;
200
+ if (e.isY && props.isNeedFloatHandle) {
201
+ scrollNotShowFloat();
202
+ }
203
+ if (e.isX && props.isNeedFloatHandle && state.floatHandleDomCol && gridOptions.value.data && gridOptions.value.data.length > 0) {
204
+ if (e.scrollLeft + e.$event.target.clientWidth >= e.$event.target.scrollWidth - state.floatHandleDomCol.clientWidth) {
205
+ state.inMaxScorllX = true;
206
+ state.isShowFloatHandle = false;
207
+ } else {
208
+ state.inMaxScorllX = false;
209
+ state.isShowFloatHandle = true;
210
+ }
211
+ }
212
+ propsscroll && propsscroll(e);
213
+ };
214
+ extraFn.cellMouseleave = (e) => {
215
+ let propsCellMouseLeave = props.events.cellMouseleave;
216
+ floatMouseLeave();
217
+ propsCellMouseLeave && propsCellMouseLeave(e);
218
+ };
219
+ }
220
+ return {
221
+ ...state.gridEvents,
222
+ ...props.events,
223
+ ...extraFn
224
+ };
225
+ });
226
+ const pager = vue.computed(() => {
227
+ let pager2 = {
228
+ size: "small",
229
+ showTotal: (total) => `\u5171 ${total} \u6761`,
230
+ showQuickJumper: true,
231
+ showSizeChanger: true,
232
+ current: 1,
233
+ pageSize: 10,
234
+ total: 0,
235
+ hideOnSinglePage: false,
236
+ pageSizeOptions: ["10", "30", "50", "100"]
237
+ };
238
+ return {
239
+ ...pager2,
240
+ ...props.pagerProps
241
+ };
242
+ });
243
+ const setItemRef = (el, column, rowid) => {
244
+ if (!props.isNeedFloatHandle)
245
+ return;
246
+ state.floatRefsId[rowid] = el;
247
+ if (state.floatHandleDomCol)
248
+ return;
249
+ let id = column.id;
250
+ state.floatHandleDomCol = floatTable.value.querySelector(`.vxe-table--header-wrapper .vxe-header--row .${id}`);
251
+ };
252
+ const leaveFloatTable = () => {
253
+ let timer = setTimeout(() => {
254
+ state.isShowFloatHandle = false;
255
+ state.floatId = "";
256
+ clearTimeout(timer);
257
+ }, 210);
258
+ };
259
+ const scrollTo = (config = {}) => {
260
+ config = {
261
+ top: 0,
262
+ ...config
263
+ };
264
+ floatTable.value?.querySelectorAll(".vxe-table--body-wrapper")?.forEach((table) => table?.scrollTo?.(config));
265
+ };
266
+ expose({ scrollTo });
267
+ const pageNoChange = async (val) => {
268
+ await emits("pageChange", val);
269
+ scrollTo();
270
+ };
271
+ const pageSizeChange = async (val, size) => {
272
+ await emits("pageSizeChange", size);
273
+ scrollTo();
274
+ };
275
+ const floatMouseLeave = () => {
276
+ if (!state.trNodes || state.trNodes?.length === 0)
277
+ return;
278
+ state.trNodes.forEach((item) => {
279
+ if (item && item.className.includes("floatHoverTr")) {
280
+ item.className = `${item.className.replace(/floatHoverTr/g, "")}`;
281
+ }
282
+ });
283
+ };
284
+ const floatOverMouse = () => {
285
+ if (!state.trNodes || state.trNodes?.length === 0)
286
+ return;
287
+ state.trNodes.forEach((item) => {
288
+ if (item && !item.className.includes("floatHoverTr")) {
289
+ item.className = `${item.className} floatHoverTr`;
290
+ }
291
+ });
292
+ };
293
+ const goAnimationEndFn = () => {
294
+ state.goAnimationEnd = true;
295
+ };
296
+ let scrollNotShowFloatTime;
297
+ const scrollNotShowFloat = () => {
298
+ state.isInScroll = true;
299
+ state.isShowFloatHandle = false;
300
+ clearTimeout(scrollNotShowFloatTime);
301
+ if (!state.atVisible) {
302
+ scrollNotShowFloatTime = setTimeout(function() {
303
+ state.isInScroll = false;
304
+ }, 300);
305
+ }
306
+ };
307
+ let inObserverDom;
308
+ let isHasOver;
309
+ let closeSetRow;
310
+ let headerWarpper;
311
+ if (props.isNeedFloatHandle) {
312
+ inObserverDom = new IntersectionObserver((entries) => {
313
+ entries.forEach((item) => {
314
+ if (item.intersectionRatio > 0.1) {
315
+ closeSetRow = closeSetRow || item.target.closest(".vxe-header--row");
316
+ headerWarpper = headerWarpper || item.target.closest(".vxe-table--header-wrapper");
317
+ if (closeSetRow.clientWidth <= headerWarpper.clientWidth && !isHasOver) {
318
+ inObserverDom.disconnect();
319
+ } else {
320
+ isHasOver = true;
321
+ }
322
+ state.isShowFloatHandle = false;
323
+ state.atVisible = true;
324
+ } else {
325
+ if (gridOptions.value.data && gridOptions.value.data.length > 0) {
326
+ state.goAnimationEnd = false;
327
+ state.isShowFloatHandle = true;
328
+ state.atVisible = false;
329
+ }
330
+ }
331
+ });
332
+ }, {
333
+ threshold: 0.1
334
+ });
335
+ vue.watch(() => state.floatHandleDomCol, function(col) {
336
+ if (col) {
337
+ inObserverDom.observe(col);
338
+ }
339
+ }, {
340
+ immediate: true
341
+ });
342
+ }
343
+ vue.onBeforeUnmount(function() {
344
+ inObserverDom && inObserverDom.disconnect();
345
+ scrollNotShowFloatTime && clearTimeout(scrollNotShowFloatTime);
346
+ });
347
+ return (_ctx, _cache) => {
348
+ const _component_vxe_grid = vue.resolveComponent("vxe-grid");
349
+ return vue.openBlock(), vue.createElementBlock("div", {
350
+ ref_key: "floatTable",
351
+ ref: floatTable,
352
+ class: vue.normalizeClass(vue.unref(classes)),
353
+ onMouseleave: leaveFloatTable
354
+ }, [
355
+ vue.createVNode(_component_vxe_grid, vue.mergeProps({
356
+ ref_key: "xGrid",
357
+ ref: xGrid
358
+ }, vue.unref(gridOptions), vue.toHandlers(vue.unref(gridEvents))), vue.createSlots({
359
+ pager: vue.withCtx(() => [
360
+ vue.unref(pager).total && !vue.unref(pager).hideOnSinglePage ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
361
+ vue.createVNode(vue.unref(Pagination__default["default"]), vue.mergeProps(vue.unref(pager), {
362
+ onChange: pageNoChange,
363
+ onShowSizeChange: pageSizeChange
364
+ }), null, 16)
365
+ ])) : vue.createCommentVNode("v-if", true)
366
+ ]),
367
+ empty: vue.withCtx(() => [
368
+ vue.createElementVNode("div", null, [
369
+ vue.createVNode(vue.unref(AEmpty), {
370
+ image: vue.unref(state).emptyImg
371
+ }, null, 8, ["image"])
372
+ ])
373
+ ]),
374
+ _: 2
375
+ }, [
376
+ vue.renderList(_ctx.$slots, (slot, key) => {
377
+ return {
378
+ name: key,
379
+ fn: vue.withCtx((data) => [
380
+ key !== "floatHandle" ? vue.renderSlot(_ctx.$slots, key, {
381
+ key: 0,
382
+ rowIndex: data.rowIndex,
383
+ row: data.row,
384
+ column: data.column
385
+ }) : (vue.openBlock(), vue.createElementBlock("div", {
386
+ key: 1,
387
+ ref: (el) => setItemRef(el, data.column, data.rowid)
388
+ }, [
389
+ vue.renderSlot(_ctx.$slots, "floatHandle", {
390
+ row: data.row,
391
+ rowIndex: data.rowIndex,
392
+ column: data.column
393
+ })
394
+ ], 512))
395
+ ])
396
+ };
397
+ })
398
+ ]), 1040),
399
+ vue.withDirectives(vue.createElementVNode("div", {
400
+ ref: "floatHandle",
401
+ class: vue.normalizeClass(["floatHandle", {
402
+ floatRightIn: vue.unref(state).isShowFloatHandle && !vue.unref(state).goAnimationEnd
403
+ }]),
404
+ style: vue.normalizeStyle({
405
+ top: vue.unref(state).floatPosition?.top,
406
+ height: vue.unref(state).floatPosition?.height
407
+ }),
408
+ onAnimationend: goAnimationEndFn,
409
+ onMouseenter: floatOverMouse,
410
+ onMouseleave: floatMouseLeave
411
+ }, [
412
+ vue.createElementVNode("div", null, [
413
+ vue.renderSlot(_ctx.$slots, "floatHandle", {
414
+ row: vue.unref(state).floatRow,
415
+ rowIndex: vue.unref(state).floatRowIndex
416
+ })
417
+ ])
418
+ ], 38), [
419
+ [
420
+ vue.vShow,
421
+ vue.unref(state).floatPosition?.top && __props.isNeedFloatHandle && vue.unref(state).isShowFloatHandle
422
+ ]
423
+ ])
424
+ ], 34);
425
+ };
426
+ }
427
+ });
428
+ var FloatTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "float-table.vue"]]);
429
+
430
+ vxeTable.VXETable.setup({
431
+ i18n: (key, args) => XEUtils__default["default"].toFormatString(XEUtils__default["default"].get(zhCN__default["default"], key), args),
432
+ });
433
+ const BmTable = withInstall.withInstall(FloatTable);
434
+ const BmFloatTable = {
435
+ install(app) {
436
+ app.component('BmTable', BmTable);
437
+ app
438
+ .use(vxeTable.Header)
439
+ .use(vxeTable.Footer)
440
+ .use(vxeTable.Column)
441
+ .use(vxeTable.Table)
442
+ .use(vxeTable.Grid)
443
+ .use(vxeTable.Pager)
444
+ .use(vxeTable.Checkbox)
445
+ .use(vxeTable.CheckboxGroup)
446
+ .use(vxeTable.Radio)
447
+ .use(vxeTable.RadioGroup)
448
+ .use(vxeTable.Select)
449
+ .use(vxeTable.Input)
450
+ .use(vxeTable.Tooltip)
451
+ .use(vxeTable.Keyboard)
452
+ .use(vxeTable.Toolbar)
453
+ .use(vxeTable.Button)
454
+ .use(vxeTable.Icon);
455
+ },
456
+ };
457
+
458
+ exports.BmFloatTable = BmFloatTable;
459
+ exports["default"] = BmFloatTable;