|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
<script setup lang="ts"> |
|
|
|
|
import type { TabItem } from '~/composables' |
|
|
|
|
import { TabType } from '~/composables' |
|
|
|
|
import { TabType, useProject } from '~/composables' |
|
|
|
|
import { TabMetaInj } from '~/context' |
|
|
|
|
import { useTabs, useUIPermission } from '#imports' |
|
|
|
|
import MdiPlusIcon from '~icons/mdi/plus' |
|
|
|
@ -17,6 +17,8 @@ const { tabs, activeTabIndex, activeTab, closeTab } = useTabs()
|
|
|
|
|
|
|
|
|
|
const { isUIAllowed } = useUIPermission() |
|
|
|
|
|
|
|
|
|
const { isSharedBase } = useProject() |
|
|
|
|
|
|
|
|
|
const tableCreateDialog = ref(false) |
|
|
|
|
const airtableImportDialog = ref(false) |
|
|
|
|
const quickImportDialog = ref(false) |
|
|
|
@ -43,7 +45,7 @@ const icon = (tab: TabItem) => {
|
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
<template> |
|
|
|
|
<div class="h-full w-full nc-container pt-[9px]"> |
|
|
|
|
<div class="h-full w-full nc-container pt-[9px]" :class="{ shared: isSharedBase }"> |
|
|
|
|
<div class="h-full w-full flex flex-col"> |
|
|
|
|
<div> |
|
|
|
|
<a-tabs v-model:activeKey="activeTabIndex" class="nc-root-tabs" type="editable-card" @edit="closeTab"> |
|
|
|
@ -156,8 +158,11 @@ const icon = (tab: TabItem) => {
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss"> |
|
|
|
|
.nc-container { |
|
|
|
|
height: calc(100% - var(--header-height)); |
|
|
|
|
height: calc(100vh - var(--header-height)); |
|
|
|
|
flex: 1 1 100%; |
|
|
|
|
&.shared { |
|
|
|
|
height: calc(100vh - var(--header-height) - 20px); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
:deep(.nc-root-tabs) { |
|
|
|
|