多维表格
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

76 lines
1.5 KiB

<script lang="ts" setup>
import {
ActiveViewInj,
FieldsInj,
IsPublicInj,
MetaInj,
ReadonlyInj,
ReloadViewDataHookInj,
createEventHook,
extractSdkResponseErrorMsg,
message,
provide,
ref,
useBase,
useGlobal,
useProvideSmartsheetStore,
useSharedView,
} from '#imports'
const { sharedView, meta, nestedFilters } = useSharedView()
const { signedIn } = useGlobal()
const { loadProject } = useBase()
const { isLocked } = useProvideSmartsheetStore(sharedView, meta, true, ref([]), nestedFilters)
useProvideKanbanViewStore(meta, sharedView)
useProvideCalendarViewStore(meta, sharedView)
const reloadEventHook = createEventHook()
const columns = ref(meta.value?.columns || [])
provide(ReloadViewDataHookInj, reloadEventHook)
provide(ReadonlyInj, ref(true))
provide(MetaInj, meta)
provide(ActiveViewInj, sharedView)
provide(FieldsInj, columns)
provide(IsPublicInj, ref(true))
provide(IsLockedInj, isLocked)
useProvideViewColumns(sharedView, meta, () => reloadEventHook?.trigger(), true)
if (signedIn.value) {
try {
await loadProject()
} catch (e: any) {
console.error(e)
message.error(await extractSdkResponseErrorMsg(e))
}
}
watch(
() => meta.value?.columns,
() => (columns.value = meta.value?.columns || []),
{
immediate: true,
},
)
</script>
<template>
<div class="nc-container flex flex-col h-full mt-1.5 px-12">
<LazySmartsheetToolbar />
<LazySmartsheetGrid />
</div>
</template>
<style scoped>
.nc-container {
height: 100%;
padding-bottom: 0.5rem;
flex: 1 1 100%;
}
</style>