add show element name
This commit is contained in:
parent
66a298e101
commit
43668907f0
|
@ -88,7 +88,7 @@ class InventoryItemViewSet(viewsets.ModelViewSet):
|
||||||
if partner is not None:
|
if partner is not None:
|
||||||
queryset = queryset.filter(partner=partner)
|
queryset = queryset.filter(partner=partner)
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
def create(self, request, **kwargs):
|
def create(self, request, **kwargs):
|
||||||
data = request.data
|
data = request.data
|
||||||
|
|
||||||
|
@ -101,13 +101,13 @@ class InventoryItemViewSet(viewsets.ModelViewSet):
|
||||||
name=data["partner_name"],
|
name=data["partner_name"],
|
||||||
)
|
)
|
||||||
partner_serializer = PartnerSerializer(partner_object, many=False)
|
partner_serializer = PartnerSerializer(partner_object, many=False)
|
||||||
|
|
||||||
inventory_object = InventoryItem.objects.create(
|
inventory_object = InventoryItem.objects.create(
|
||||||
partner=partner_object,
|
partner=partner_object,
|
||||||
name=f"{data['partner_name']} {datetime.datetime.now()}",
|
name=f"{data['partner_name']} {datetime.datetime.now()}",
|
||||||
)
|
)
|
||||||
inventory_serializer = InventorySerializer(inventory_object, many=False)
|
inventory_serializer = InventorySerializer(inventory_object, many=False)
|
||||||
|
|
||||||
return Response(
|
return Response(
|
||||||
{
|
{
|
||||||
"partner": partner_serializer.data,
|
"partner": partner_serializer.data,
|
||||||
|
@ -221,3 +221,23 @@ class ElementViewSet(viewsets.ModelViewSet):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(e)
|
logger.error(e)
|
||||||
return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
||||||
|
|
||||||
|
@action(detail=False, methods=["get"], url_path=r"external/id/(?P<cat_id>[^/.]+)")
|
||||||
|
def get_remote_element_by_id(self, request, pk=None, cat_id=None):
|
||||||
|
try:
|
||||||
|
params = {
|
||||||
|
"$format": "json",
|
||||||
|
"$select": ",".join(["Description", "Ref_Key", "Parent_Key"]),
|
||||||
|
}
|
||||||
|
remote_url = (
|
||||||
|
f"https://1c.svs-tech.pro/UNF/odata/standard.odata/Catalog_Номенклатура(guid'{cat_id}')?"
|
||||||
|
+ "&".join([f"{p}={params[p]}" for p in params])
|
||||||
|
)
|
||||||
|
data = requests.get(
|
||||||
|
remote_url, headers={"Authorization": settings.ODATA_AUTH}
|
||||||
|
)
|
||||||
|
parsed_data = data.json()
|
||||||
|
return Response(parsed_data)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(e)
|
||||||
|
return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
@apply col-span-12 flex gap-2 p-2.5;
|
@apply col-span-12 flex gap-2 p-2.5;
|
||||||
|
|
||||||
.logo {
|
.logo {
|
||||||
@apply text-primary text-2xl
|
@apply text-primary text-2xl
|
||||||
}
|
}
|
||||||
|
@ -37,4 +38,16 @@
|
||||||
.content {
|
.content {
|
||||||
@apply col-span-10
|
@apply col-span-10
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dl {
|
||||||
|
// @apply grid grid-cols-4;
|
||||||
|
dt {
|
||||||
|
// @apply col-span-1
|
||||||
|
}
|
||||||
|
dd {
|
||||||
|
@apply mb-2
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -36,6 +36,21 @@ const external_data = reactive<ExternalDataType>({
|
||||||
categories: [],
|
categories: [],
|
||||||
element: [],
|
element: [],
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const external_elements = reactive<any>({})
|
||||||
|
const loadOneElement = async (id: string) => {
|
||||||
|
const data = await $fetch<ApiTypeExternal>(`${apiBase}/element/external/id/${id}`)
|
||||||
|
external_elements[id] = data.Description
|
||||||
|
|
||||||
|
}
|
||||||
|
const getExternalElementName = (id: string) => {
|
||||||
|
if (!external_elements[id]) {
|
||||||
|
loadOneElement(id)
|
||||||
|
return id
|
||||||
|
}
|
||||||
|
return external_elements[id]
|
||||||
|
}
|
||||||
|
|
||||||
const elements = ref(props.elements)
|
const elements = ref(props.elements)
|
||||||
const validate = (state: any): FormError[] => {
|
const validate = (state: any): FormError[] => {
|
||||||
const errors = []
|
const errors = []
|
||||||
|
@ -168,12 +183,12 @@ onMounted(async () => {
|
||||||
<h2>{{ external_data.partner?.find(el => el["Ref_Key"] == state.partner)?.Description }}</h2>
|
<h2>{{ external_data.partner?.find(el => el["Ref_Key"] == state.partner)?.Description }}</h2>
|
||||||
<dl v-if="elements?.length">
|
<dl v-if="elements?.length">
|
||||||
<template v-for="item in elements">
|
<template v-for="item in elements">
|
||||||
<dt>
|
<dt>Название</dt>
|
||||||
{{ item.external_id }}
|
<dd>{{ getExternalElementName(item.external_id) }}</dd>
|
||||||
</dt>
|
<dt>ID</dt>
|
||||||
<dt>
|
<dd>{{ item.element_id }}</dd>
|
||||||
{{ item.element_id }}
|
<dt>Дополнительные сведения</dt>
|
||||||
</dt>
|
<dd>{{ item.additional_data }}</dd>
|
||||||
</template>
|
</template>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue