1234567891011121314151617181920212223242526272829 |
- import { Ref } from 'vue'
- import { CommonTableColumn } from '~/common'
- export default function useTableColumnSet(
- tableColumns: Ref<CommonTableColumn[]>
- ) {
- const filterColumnKeys = ref<string[]>([])
- const filteredColumns = ref<CommonTableColumn[]>([])
- watchEffect(() => {
- filteredColumns.value = tableColumns.value.filter(column => {
- if (
- column.needShow &&
- filterColumnKeys.value.includes(column.columnName)
- ) {
- column.hidden = false
- return column
- } else {
- column.hidden = true
- }
- })
- })
- const columnChecked = (checkedColumnKeys: string[]) => {
- filterColumnKeys.value = checkedColumnKeys
- }
- return {
- filteredColumns,
- columnChecked,
- }
- }
|