|
|
|
@ -1,20 +1,25 @@ |
|
|
|
<template> |
|
|
|
<div class="table-settings"> |
|
|
|
<RedoSetting v-if="getSetting.redo" /> |
|
|
|
<SizeSetting v-if="getSetting.size" /> |
|
|
|
<ColumnSetting v-if="getSetting.setting" @columns-change="handleColumnChange" /> |
|
|
|
<FullScreenSetting v-if="getSetting.fullScreen" /> |
|
|
|
<RedoSetting v-if="getSetting.redo" :getPopupContainer="getTableContainer" /> |
|
|
|
<SizeSetting v-if="getSetting.size" :getPopupContainer="getTableContainer" /> |
|
|
|
<ColumnSetting |
|
|
|
v-if="getSetting.setting" |
|
|
|
@columns-change="handleColumnChange" |
|
|
|
:getPopupContainer="getTableContainer" |
|
|
|
/> |
|
|
|
<FullScreenSetting v-if="getSetting.fullScreen" :getPopupContainer="getTableContainer" /> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<script lang="ts"> |
|
|
|
import type { PropType } from 'vue'; |
|
|
|
import type { TableSetting, ColumnChangeParam } from '../../types/table'; |
|
|
|
import { defineComponent, computed } from 'vue'; |
|
|
|
import { defineComponent, computed, unref } from 'vue'; |
|
|
|
import ColumnSetting from './ColumnSetting.vue'; |
|
|
|
import SizeSetting from './SizeSetting.vue'; |
|
|
|
import RedoSetting from './RedoSetting.vue'; |
|
|
|
import FullScreenSetting from './FullScreenSetting.vue'; |
|
|
|
import { useI18n } from '/@/hooks/web/useI18n'; |
|
|
|
import { useTableContext } from '../../hooks/useTableContext'; |
|
|
|
|
|
|
|
export default defineComponent({ |
|
|
|
name: 'TableSetting', |
|
|
|
@ -33,6 +38,7 @@ |
|
|
|
emits: ['columns-change'], |
|
|
|
setup(props, { emit }) { |
|
|
|
const { t } = useI18n(); |
|
|
|
const table = useTableContext(); |
|
|
|
|
|
|
|
const getSetting = computed((): TableSetting => { |
|
|
|
return { |
|
|
|
@ -48,7 +54,11 @@ |
|
|
|
emit('columns-change', data); |
|
|
|
} |
|
|
|
|
|
|
|
return { getSetting, t, handleColumnChange }; |
|
|
|
function getTableContainer() { |
|
|
|
return table ? unref(table.wrapRef) : document.body; |
|
|
|
} |
|
|
|
|
|
|
|
return { getSetting, t, handleColumnChange, getTableContainer }; |
|
|
|
}, |
|
|
|
}); |
|
|
|
</script> |
|
|
|
|