Skip to content

Commit 536e16f

Browse files
authored
Merge pull request #114 from liub1934/main
feat:表格列支持draggable配置是否能拖拽
2 parents bf0d294 + 42f2256 commit 536e16f

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

src/components/Table/src/components/settings/ColumnSetting.vue

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,26 @@
2525
</template>
2626
<div class="table-toolbar-inner">
2727
<n-checkbox-group v-model:value="checkList" @update:value="onChange">
28-
<Draggable v-model="columnsList" animation="300" item-key="key" @end="draggableEnd">
28+
<Draggable
29+
v-model="columnsList"
30+
animation="300"
31+
item-key="key"
32+
filter=".no-draggable"
33+
:move="onMove"
34+
@end="draggableEnd"
35+
>
2936
<template #item="{ element }">
3037
<div
3138
class="table-toolbar-inner-checkbox"
32-
:class="{ 'table-toolbar-inner-checkbox-dark': getDarkTheme === true }"
39+
:class="{
40+
'table-toolbar-inner-checkbox-dark': getDarkTheme === true,
41+
'no-draggable': element.draggable === false,
42+
}"
3343
>
34-
<span class="drag-icon">
44+
<span
45+
class="drag-icon"
46+
:class="{ 'drag-icon-hidden': element.draggable === false }"
47+
>
3548
<n-icon size="18">
3649
<DragOutlined />
3750
</n-icon>
@@ -211,6 +224,11 @@
211224
}
212225
}
213226
227+
function onMove(e) {
228+
if (e.draggedContext.element.draggable === false) return false;
229+
return true;
230+
}
231+
214232
//固定
215233
function fixedColumn(item, fixed) {
216234
if (!state.checkList.includes(item.key)) return;
@@ -232,6 +250,7 @@
232250
onChange,
233251
onCheckAll,
234252
onSelection,
253+
onMove,
235254
resetColumns,
236255
fixedColumn,
237256
draggableEnd,
@@ -275,6 +294,10 @@
275294
display: inline-flex;
276295
margin-right: 8px;
277296
cursor: move;
297+
&-hidden {
298+
visibility: hidden;
299+
cursor: default;
300+
}
278301
}
279302
280303
.fixed-item {

src/components/Table/src/types/table.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ export interface BasicColumn extends TableBaseColumn {
1414
auth?: string[];
1515
// 业务控制是否显示
1616
ifShow?: boolean | ((column: BasicColumn) => boolean);
17+
// 控制是否支持拖拽,默认支持
18+
draggable?: boolean;
1719
}
1820

1921
export interface TableActionType {

0 commit comments

Comments
 (0)