@lx-frontend/wrap-element-ui 1.0.1-beta.4 → 1.0.1-beta.6

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.
@@ -1,96 +1,96 @@
1
- import { Ref, ref } from "vue"
2
- import { IEmits, IProps } from "./types"
3
-
4
- interface IParams {
5
- emit: IEmits;
6
- pageSize: Ref<number>;
7
- props: IProps
8
- tableDomRef: Ref<any>;
9
- hasExpandRow: boolean
10
- }
11
-
12
- export default function useDefaultOperation({ emit, pageSize, props, tableDomRef, hasExpandRow }: IParams) {
13
- const operationPopoverRef = ref<any>(null);
14
- const editingRowData = ref<Record<string, any>>({});
15
- const editingRowIndex = ref<number>(-1);
16
-
17
- const handleDelete = (row, index) => {
18
- emit('row-delete', {
19
- row,
20
- index,
21
- page: props.currentPage,
22
- size: pageSize.value
23
- })
24
- closeOperationPopover();
25
- }
26
-
27
- const closeOperationPopover = () => {
28
- operationPopoverRef.value?.forEach((item) => item?.doClose());
29
- }
30
-
31
- const closeAllExpandedRows = () => {
32
- if (!hasExpandRow) return
33
- tableDomRef.value?.data.forEach((item) => {
34
- tableDomRef.value?.toggleRowExpansion(item, false)
35
- })
36
- }
37
-
38
- const handleEdit = (scope) => {
39
- // 折叠所有展开的行
40
- closeAllExpandedRows();
41
- const { row, $index: index } = scope;
42
- editingRowData.value = { ...row };
43
- editingRowIndex.value = index;
44
- emit('row-edit', { row, index, page: props.currentPage, size: pageSize.value });
45
- closeOperationPopover();
46
- }
47
-
48
- const handleRowPinToTop = (scope) => {
49
- const { row, $index: index, store } = scope;
50
- const dataList = store.states.data;
51
- const newList = [
52
- ...dataList.slice(0, index),
53
- ...dataList.slice(index + 1)
54
- ];
55
- newList.unshift({ ...row, isPinned: true });
56
- store.states.data = newList;
57
- emit('row-pin-to-top', { row, rawIndex: index, page: props.currentPage, size: pageSize.value });
58
- closeOperationPopover();
59
- }
60
-
61
- const handleEditSave = (row) => {
62
- editingRowIndex.value = -1;
63
- const changedData = {}
64
- for (const key of Object.keys(row)) {
65
- if (row[key] !== editingRowData.value[key]) {
66
- changedData[key] = editingRowData.value[key]
67
- }
68
- }
69
-
70
- emit('row-edit-save', {
71
- page: props.currentPage,
72
- size: pageSize.value,
73
- row,
74
- changedData
75
- });
76
- editingRowData.value = {};
77
- }
78
-
79
- const handleEditCancel = (row) => {
80
- editingRowIndex.value = -1;
81
- editingRowData.value = {};
82
- emit('row-edit-cancel', { row, page: props.currentPage, size: pageSize.value });
83
- }
84
-
85
- return {
86
- operationPopoverRef,
87
- editingRowData,
88
- editingRowIndex,
89
- handleDelete,
90
- closeAllExpandedRows,
91
- handleEdit,
92
- handleEditSave,
93
- handleEditCancel,
94
- handleRowPinToTop
95
- }
1
+ import { Ref, ref } from "vue"
2
+ import { IEmits, IProps } from "./types"
3
+
4
+ interface IParams {
5
+ emit: IEmits;
6
+ pageSize: Ref<number>;
7
+ props: IProps
8
+ tableDomRef: Ref<any>;
9
+ hasExpandRow: boolean
10
+ }
11
+
12
+ export default function useDefaultOperation({ emit, pageSize, props, tableDomRef, hasExpandRow }: IParams) {
13
+ const operationPopoverRef = ref<any>(null);
14
+ const editingRowData = ref<Record<string, any>>({});
15
+ const editingRowIndex = ref<number>(-1);
16
+
17
+ const handleDelete = (row, index) => {
18
+ emit('row-delete', {
19
+ row,
20
+ index,
21
+ page: props.currentPage,
22
+ size: pageSize.value
23
+ })
24
+ closeOperationPopover();
25
+ }
26
+
27
+ const closeOperationPopover = () => {
28
+ operationPopoverRef.value?.forEach((item) => item?.doClose());
29
+ }
30
+
31
+ const closeAllExpandedRows = () => {
32
+ if (!hasExpandRow) return
33
+ tableDomRef.value?.data.forEach((item) => {
34
+ tableDomRef.value?.toggleRowExpansion(item, false)
35
+ })
36
+ }
37
+
38
+ const handleEdit = (scope) => {
39
+ // 折叠所有展开的行
40
+ closeAllExpandedRows();
41
+ const { row, $index: index } = scope;
42
+ editingRowData.value = { ...row };
43
+ editingRowIndex.value = index;
44
+ emit('row-edit', { row, index, page: props.currentPage, size: pageSize.value });
45
+ closeOperationPopover();
46
+ }
47
+
48
+ const handleRowPinToTop = (scope) => {
49
+ const { row, $index: index, store } = scope;
50
+ const dataList = store.states.data;
51
+ const newList = [
52
+ ...dataList.slice(0, index),
53
+ ...dataList.slice(index + 1)
54
+ ];
55
+ newList.unshift({ ...row, isPinned: true });
56
+ store.states.data = newList;
57
+ emit('row-pin-to-top', { row, rawIndex: index, page: props.currentPage, size: pageSize.value });
58
+ closeOperationPopover();
59
+ }
60
+
61
+ const handleEditSave = (row) => {
62
+ editingRowIndex.value = -1;
63
+ const changedData = {}
64
+ for (const key of Object.keys(row)) {
65
+ if (row[key] !== editingRowData.value[key]) {
66
+ changedData[key] = editingRowData.value[key]
67
+ }
68
+ }
69
+
70
+ emit('row-edit-save', {
71
+ page: props.currentPage,
72
+ size: pageSize.value,
73
+ row,
74
+ changedData
75
+ });
76
+ editingRowData.value = {};
77
+ }
78
+
79
+ const handleEditCancel = (row) => {
80
+ editingRowIndex.value = -1;
81
+ editingRowData.value = {};
82
+ emit('row-edit-cancel', { row, page: props.currentPage, size: pageSize.value });
83
+ }
84
+
85
+ return {
86
+ operationPopoverRef,
87
+ editingRowData,
88
+ editingRowIndex,
89
+ handleDelete,
90
+ closeAllExpandedRows,
91
+ handleEdit,
92
+ handleEditSave,
93
+ handleEditCancel,
94
+ handleRowPinToTop
95
+ }
96
96
  }