external el

This commit is contained in:
Kseninia Mikhaylova 2024-05-31 09:05:23 +03:00
parent 43668907f0
commit 642b8ca73d
2 changed files with 39 additions and 1 deletions

View File

@ -0,0 +1,34 @@
<script setup lang="ts">
import { apiBase } from '~/helpers';
import type { ApiTypeExternal } from '~/helpers';
type ExternalNameType = { [s: string]: string; }
const props = defineProps(['id'])
const id = props.id
const external_elements = useState<ExternalNameType>('external_elements', () => { return {} })
const name = ref()
const loadOneElement = async (id: string) => {
external_elements.value[id] = 'loading'
const data = await $fetch<ApiTypeExternal>(`${apiBase}/element/external/id/${id}`)
external_elements.value[id] = data.Description
name.value = external_elements.value[id]
}
if (external_elements.value[id]) {
name.value = external_elements.value[id]
} else {
await loadOneElement(id)
}
watch(external_elements, () => {
if (name.value !== external_elements.value[id]) {
name.value = external_elements.value[id]
}
}, { deep: true })
</script>
<template>
<Suspense>
{{ name }}
</Suspense>
</template>

View File

@ -33,6 +33,10 @@ onMounted(async () => {
</UCard> </UCard>
<div class="mb-4"> <div class="mb-4">
<UTable :rows="elements?.results" <UTable :rows="elements?.results"
:columns="makeColumns(['id', 'external_id', 'element_id', 'photo', 'additional_text'])" /> :columns="makeColumns(['id', 'external_id', 'element_id', 'photo', 'additional_text'])">
<template #external_id-data="{ row }">
<Element :id="row.external_id" />
</template>
</UTable>
</div> </div>
</template> </template>