From 289e256286c4d9d49b642d96806edac33d8f3359 Mon Sep 17 00:00:00 2001 From: Kseninia Mikhaylova Date: Wed, 25 Jun 2025 12:52:50 +0300 Subject: [PATCH] show results --- front/components/table/files.vue | 41 ++++++++++ front/components/table/item.vue | 37 +++++++++ front/components/table/stats.vue | 32 ++++++++ front/pages/kompas.vue | 125 ++++++++++++++++++++----------- 4 files changed, 191 insertions(+), 44 deletions(-) create mode 100644 front/components/table/files.vue create mode 100644 front/components/table/item.vue create mode 100644 front/components/table/stats.vue diff --git a/front/components/table/files.vue b/front/components/table/files.vue new file mode 100644 index 0000000..3a289df --- /dev/null +++ b/front/components/table/files.vue @@ -0,0 +1,41 @@ + + + \ No newline at end of file diff --git a/front/components/table/item.vue b/front/components/table/item.vue new file mode 100644 index 0000000..93c7d72 --- /dev/null +++ b/front/components/table/item.vue @@ -0,0 +1,37 @@ + + diff --git a/front/components/table/stats.vue b/front/components/table/stats.vue new file mode 100644 index 0000000..e8e3c65 --- /dev/null +++ b/front/components/table/stats.vue @@ -0,0 +1,32 @@ + + + \ No newline at end of file diff --git a/front/pages/kompas.vue b/front/pages/kompas.vue index 6f82bc1..d8b087c 100644 --- a/front/pages/kompas.vue +++ b/front/pages/kompas.vue @@ -21,7 +21,9 @@ watch(selectedAction, () => { selectedTypes.value = availableActions.value[selectedAction.value].allowedTypes }) -const resultData = ref(null) // <-- Новое поле для результата +const statsData = ref(null) +const filesData = ref(null) +const resultData = ref(null) // Синхронизация с КОМПАС async function syncKompas() { @@ -52,15 +54,44 @@ async function syncKompas() { } catch (err) { console.error('Ошибка при синхронизации с КОМПАС:', err) - alert(`Не удалось получить список документов из КОМПАС\n(${err.message})`) + alert(`Не удалось получить список документов из КОМПАС\n(${err})`) } } const canRunAction = computed(() => { return selectedAction.value && filteredDocuments.value.length > 0 }) -function updateUIWithResult(data: any) { +function updateUIWithResult(data: any, action: any) { + // Обнуляем предыдущие данные + statsData.value = null + filesData.value = null + resultData.value = null + + // Сохраняем сырые данные на случай непредвиденного типа действия resultData.value = data + + if (!data || !data.result || !Array.isArray(data.result)) { + console.warn('Некорректный формат данных') + return + } + + console.warn(action) + console.warn(JSON.stringify(data)) + switch (action) { + case 'stats': + // Для статистики + statsData.value = data + break + + case 'iges': + // Для файлов IGES + filesData.value = data + break + + default: + console.warn(`Неизвестное действие: ${action}`) + break + } } async function runSelectedAction() { @@ -71,6 +102,11 @@ async function runSelectedAction() { try { // Отправляем команду на бэкенд + // Обнуляем предыдущие данные + statsData.value = null + filesData.value = null + resultData.value = null + const result = await sendCommandToPython(selectedAction.value) console.log('Полный ответ от сервера:', result) @@ -85,7 +121,7 @@ async function runSelectedAction() { // Теперь можно безопасно работать с result.status if (result.status === 'success') { // alert(`✅ Действие "${selectedAction.value}" выполнено успешно!`) - updateUIWithResult(result.data) // например, выводим данные в интерфейс + updateUIWithResult(result.data, selectedAction.value) // например, выводим данные в интерфейс } else if (result.status === 'error') { const errorMessage = result.error || 'Неизвестная ошибка' @@ -115,7 +151,6 @@ async function runSelectedAction() { ⚠️ Ещё рано отправлять запросы. Идёт инициализация...