@lx-frontend/wrap-element-ui 1.0.1-beta.5 → 1.0.1-beta.7

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 (29) hide show
  1. package/README.md +45 -45
  2. package/package.json +14 -14
  3. package/src/components/AddMembers/index.vue +157 -157
  4. package/src/components/AuditSteps/index.vue +140 -140
  5. package/src/components/DemoComponent/index.vue +20 -20
  6. package/src/components/EditableTable/README.md +147 -147
  7. package/src/components/EditableTable/bizHooks/index.ts +17 -0
  8. package/src/components/EditableTable/{useCellHover.ts → bizHooks/useCellHover.ts} +71 -71
  9. package/src/components/EditableTable/{useColumnHeaderOperation.ts → bizHooks/useColumnHeaderOperation.ts} +326 -325
  10. package/src/components/EditableTable/{useDefaultOperation.ts → bizHooks/useDefaultOperation.ts} +95 -95
  11. package/src/components/EditableTable/{useDragSort.ts → bizHooks/useDragSort.ts} +290 -290
  12. package/src/components/EditableTable/{usePagination.ts → bizHooks/usePagination.ts} +30 -30
  13. package/src/components/EditableTable/{useRowBgColor.ts → bizHooks/useRowBgColor.ts} +43 -50
  14. package/src/components/EditableTable/{useViewSetting.ts → bizHooks/useViewSetting.ts} +118 -119
  15. package/src/components/EditableTable/features/bizColorSelect.vue +65 -0
  16. package/src/components/EditableTable/features/bizEditCell.vue +44 -0
  17. package/src/components/EditableTable/features/bizTableHeaderPopover.vue +202 -0
  18. package/src/components/EditableTable/features/bizViewSettingDialog.vue +137 -0
  19. package/src/components/EditableTable/index.less +733 -724
  20. package/src/components/EditableTable/index.vue +630 -914
  21. package/src/components/Ellipsis/MultilineEllipsis.vue +141 -141
  22. package/src/components/Ellipsis/index.vue +119 -119
  23. package/src/components/LxTable/index.vue +296 -296
  24. package/src/components/PopoverForm/index.vue +66 -66
  25. package/src/components/SearchForm/index.vue +243 -243
  26. package/src/components/SearchSelect/index.vue +153 -153
  27. package/src/components/index.ts +24 -24
  28. package/src/components/singleMessage/index.ts +44 -44
  29. /package/src/components/EditableTable/{types.ts → types/index.ts} +0 -0
@@ -1,72 +1,72 @@
1
- import debounce from 'lodash/debounce';
2
- import throttle from 'lodash/throttle';
3
- import { onBeforeUnmount, onMounted, ref } from 'vue'
4
-
5
- export default function useCellHover(tableDomRef) {
6
-
7
- // 鼠标悬浮的行
8
- const hoveringCellInfo = ref<{
9
- rowIndex: number;
10
- columnProperty: string;
11
- }>({ rowIndex: -1, columnProperty: ''});
12
-
13
- const isMouseWheeling = ref(false);
14
-
15
- onMounted(() => {
16
- tableDomRef.value.$el.addEventListener('mouseleave', resetHoveringCellInfo);
17
- document.addEventListener('wheel', throttledHandleMouseWheel);
18
- })
19
-
20
- onBeforeUnmount(() => {
21
- tableDomRef.value.$el.removeEventListener('mouseleave', resetHoveringCellInfo);
22
- document.removeEventListener('wheel', throttledHandleMouseWheel);
23
- })
24
-
25
- const setCellClassName = ({ column, rowIndex }) => {
26
- // hoving-cell-[name]-[rowIndex]
27
- if (!column.property) return '';
28
- return `hoving-cell-(${column.property})-(${rowIndex})`;
29
- }
30
-
31
- const resetHoveringCellInfo = () => {
32
- hoveringCellInfo.value = {
33
- rowIndex: -1,
34
- columnProperty: ''
35
- };
36
- }
37
-
38
- let timerHandler: any = null
39
- // 性能考虑,在鼠标滚动时,停止处理cell的hover事件
40
- const handleMouseWheel = () => {
41
- isMouseWheeling.value = true;
42
- clearTimeout(timerHandler);
43
- // 停止滚动后,恢复hover事件
44
- timerHandler = setTimeout(() => {
45
- isMouseWheeling.value = false;
46
- }, 100)
47
- }
48
- const throttledHandleMouseWheel = throttle(handleMouseWheel, 50);
49
-
50
- const handleCellMouseEnter = (row, column, cell, event) => {
51
- // 性能考虑,表格滚动时会不断触发该事件,导致滚动性能变差
52
- if (isMouseWheeling.value) return
53
-
54
- const className = [...event.target.classList].find(c => /hoving-cell-\(\w+\)-\(\d+\)/.test(c))
55
- if (!className) return;
56
- // 正则匹配括号中的内容
57
- const matchArr = className.match(/hoving-cell-\((\w+)\)-\((\d+)\)/);
58
-
59
- hoveringCellInfo.value = {
60
- rowIndex: +matchArr?.[2],
61
- columnProperty: matchArr?.[1]
62
- }
63
- }
64
-
65
- const debouncedHoverHandler = debounce(handleCellMouseEnter, 10);
66
-
67
- return {
68
- hoveringCellInfo,
69
- setCellClassName,
70
- debouncedHoverHandler
71
- }
1
+ import debounce from 'lodash/debounce';
2
+ import throttle from 'lodash/throttle';
3
+ import { onBeforeUnmount, onMounted, ref } from 'vue'
4
+
5
+ export default function useCellHover(tableDomRef) {
6
+
7
+ // 鼠标悬浮的行
8
+ const hoveringCellInfo = ref<{
9
+ rowIndex: number;
10
+ columnProperty: string;
11
+ }>({ rowIndex: -1, columnProperty: ''});
12
+
13
+ const isMouseWheeling = ref(false);
14
+
15
+ onMounted(() => {
16
+ tableDomRef.value.$el.addEventListener('mouseleave', resetHoveringCellInfo);
17
+ document.addEventListener('wheel', throttledHandleMouseWheel);
18
+ })
19
+
20
+ onBeforeUnmount(() => {
21
+ tableDomRef.value.$el.removeEventListener('mouseleave', resetHoveringCellInfo);
22
+ document.removeEventListener('wheel', throttledHandleMouseWheel);
23
+ })
24
+
25
+ const setCellClassName = ({ column, rowIndex }) => {
26
+ // hoving-cell-[name]-[rowIndex]
27
+ if (!column.property) return '';
28
+ return `hoving-cell-(${column.property})-(${rowIndex})`;
29
+ }
30
+
31
+ const resetHoveringCellInfo = () => {
32
+ hoveringCellInfo.value = {
33
+ rowIndex: -1,
34
+ columnProperty: ''
35
+ };
36
+ }
37
+
38
+ let timerHandler: any = null
39
+ // 性能考虑,在鼠标滚动时,停止处理cell的hover事件
40
+ const handleMouseWheel = () => {
41
+ isMouseWheeling.value = true;
42
+ clearTimeout(timerHandler);
43
+ // 停止滚动后,恢复hover事件
44
+ timerHandler = setTimeout(() => {
45
+ isMouseWheeling.value = false;
46
+ }, 100)
47
+ }
48
+ const throttledHandleMouseWheel = throttle(handleMouseWheel, 50);
49
+
50
+ const handleCellMouseEnter = (row, column, cell, event) => {
51
+ // 性能考虑,表格滚动时会不断触发该事件,导致滚动性能变差
52
+ if (isMouseWheeling.value) return
53
+
54
+ const className = [...event.target.classList].find(c => /hoving-cell-\(\w+\)-\(\d+\)/.test(c))
55
+ if (!className) return;
56
+ // 正则匹配括号中的内容
57
+ const matchArr = className.match(/hoving-cell-\((\w+)\)-\((\d+)\)/);
58
+
59
+ hoveringCellInfo.value = {
60
+ rowIndex: +matchArr?.[2],
61
+ columnProperty: matchArr?.[1]
62
+ }
63
+ }
64
+
65
+ const debouncedHoverHandler = debounce(handleCellMouseEnter, 10);
66
+
67
+ return {
68
+ hoveringCellInfo,
69
+ setCellClassName,
70
+ debouncedHoverHandler
71
+ }
72
72
  }