mirror of https://github.com/nocodb/nocodb
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.
40 lines
1.3 KiB
40 lines
1.3 KiB
<script lang="ts" setup> |
|
import { ColumnType, LinkToAnotherRecordType, LookupType, isVirtualCol } from 'nocodb-sdk' |
|
import { useColumn } from '~/composables' |
|
import { ColumnInj, EditModeInj, MetaInj, ReadonlyInj, ValueInj } from '~/context' |
|
|
|
|
|
const {metas, getMeta} = useMetas(); |
|
|
|
provide(ReadonlyInj, true); |
|
|
|
const column = inject(ColumnInj) as ColumnType & { colOptions: LookupType }; |
|
const meta = inject(MetaInj); |
|
const value = inject(ValueInj); |
|
|
|
const relationColumn = meta?.value.columns?.find(c => c.id === column.colOptions.fk_relation_column_id) as ColumnType & { colOptions: LinkToAnotherRecordType }; |
|
await getMeta(relationColumn.colOptions.fk_related_model_id as string); |
|
const lookupTableMeta = metas?.value[relationColumn.colOptions.fk_related_model_id as string]; |
|
const lookupColumn = lookupTableMeta?.columns?.find(c => c.id === column.colOptions.fk_lookup_column_id) as ColumnType; |
|
|
|
provide(MetaInj, ref(lookupTableMeta)); |
|
|
|
const lookupColumnMetaProps = useColumn(lookupColumn) |
|
|
|
</script> |
|
|
|
<template> |
|
<div class="w-full h-full"> |
|
{{lookupColumnMetaProps}} |
|
<SmartsheetVirtualCell |
|
:edit-enabled="false" v-if="isVirtualCol(lookupColumn)" v-model="value" :column="lookupColumn" |
|
/> |
|
|
|
<SmartsheetCell |
|
v-else |
|
v-model="value" |
|
:column="lookupColumn" |
|
:edit-enabled="false" |
|
/> |
|
</div> |
|
</template>
|
|
|