|
|
|
@ -111,7 +111,10 @@ |
|
|
|
computed, |
|
|
|
} from 'vue'; |
|
|
|
import { Tooltip, Popover, Checkbox, Divider } from 'ant-design-vue'; |
|
|
|
import type { CheckboxChangeEvent } from 'ant-design-vue/lib/checkbox/interface'; |
|
|
|
import type { |
|
|
|
CheckboxChangeEvent, |
|
|
|
CheckboxValueType, |
|
|
|
} from 'ant-design-vue/lib/checkbox/interface'; |
|
|
|
import { SettingOutlined, DragOutlined } from '@ant-design/icons-vue'; |
|
|
|
import Icon from '@/components/Icon/Icon.vue'; |
|
|
|
import { ScrollContainer } from '/@/components/Container'; |
|
|
|
@ -278,17 +281,17 @@ |
|
|
|
}); |
|
|
|
|
|
|
|
// Trigger when check/uncheck a column |
|
|
|
function onChange(checkedList: string[]) { |
|
|
|
function onChange(checkedList: CheckboxValueType[]) { |
|
|
|
const len = plainSortOptions.value.length; |
|
|
|
state.checkAll = checkedList.length === len; |
|
|
|
const sortList = unref(plainSortOptions).map((item) => item.value); |
|
|
|
checkedList.sort((prev, next) => { |
|
|
|
return sortList.indexOf(prev) - sortList.indexOf(next); |
|
|
|
return sortList.indexOf(String(prev)) - sortList.indexOf(String(next)); |
|
|
|
}); |
|
|
|
unref(plainSortOptions).forEach((item) => { |
|
|
|
(item as BasicColumn).defaultHidden = !checkedList.includes(item.value); |
|
|
|
}); |
|
|
|
setColumns(checkedList); |
|
|
|
setColumns(checkedList as string[]); |
|
|
|
} |
|
|
|
|
|
|
|
let sortable: Sortable; |
|
|
|
|