feat: новая функция

This commit is contained in:
2025-10-09 16:48:20 +03:00
parent dd2c9988a5
commit 13fb51e447
60 changed files with 7694 additions and 1157 deletions

View File

@@ -273,12 +273,22 @@ async function loadSettings() {
}
}
async function loadTelegramBots() {
const { data } = await axios.get('/settings/telegram-settings/list');
telegramBots.value = data.items || [];
try {
const { data } = await axios.get('/settings/telegram-settings/list');
telegramBots.value = data.items || [];
} catch (error) {
console.error('[AiAssistantSettings] Ошибка загрузки telegram bots:', error);
telegramBots.value = [];
}
}
async function loadEmailList() {
const { data } = await axios.get('/settings/email-settings/list');
emailList.value = data.items || [];
try {
const { data } = await axios.get('/settings/email-settings/list');
emailList.value = data.items || [];
} catch (error) {
console.error('[AiAssistantSettings] Ошибка загрузки email list:', error);
emailList.value = [];
}
}
async function loadLLMModels() {
const { data } = await axios.get('/settings/llm-models');
@@ -306,15 +316,15 @@ async function savePlaceholderEdit() {
await loadPlaceholders();
closeEditPlaceholder();
}
onMounted(() => {
loadSettings();
loadUserTables();
loadRules();
loadTelegramBots();
loadEmailList();
loadLLMModels();
loadEmbeddingModels();
loadPlaceholders();
onMounted(async () => {
await loadSettings();
await loadUserTables();
await loadRules();
await loadTelegramBots();
await loadEmailList();
await loadLLMModels();
await loadEmbeddingModels();
await loadPlaceholders();
// Подписка на глобальное событие обновления плейсхолдеров
window.addEventListener('placeholders-updated', loadPlaceholders);
});

View File

@@ -76,8 +76,9 @@
<script setup>
import BaseLayout from '@/components/BaseLayout.vue';
import { useRouter } from 'vue-router';
import { reactive, ref, onMounted } from 'vue';
import { reactive, ref, onMounted, watch } from 'vue';
import api from '@/api/axios';
import { useAuthContext } from '@/composables/useAuth';
const router = useRouter();
const goBack = () => router.push('/settings/ai');
@@ -96,7 +97,15 @@ const form = reactive({
const original = reactive({});
const editMode = ref(false);
const auth = useAuthContext();
const loadEmailSettings = async () => {
// Не загружаем если не авторизован
if (!auth.isAuthenticated.value) {
console.log('[EmailSettings] Пропуск загрузки - пользователь не авторизован');
return;
}
try {
const res = await api.get('/settings/email-settings');
if (res.data.success) {
@@ -113,12 +122,18 @@ const loadEmailSettings = async () => {
Object.assign(original, JSON.parse(JSON.stringify(form)));
}
} catch (e) {
// обработка ошибки
console.error('[EmailSettings] Ошибка загрузки:', e);
}
};
onMounted(async () => {
await loadEmailSettings();
// Отслеживаем изменение авторизации
watch(() => auth.isAuthenticated.value, async (isAuth) => {
if (isAuth) {
await loadEmailSettings();
}
}, { immediate: true }); // immediate: true - вызовется сразу при монтировании
onMounted(() => {
editMode.value = false;
});

View File

@@ -42,8 +42,9 @@
<script setup>
import BaseLayout from '@/components/BaseLayout.vue';
import { useRouter } from 'vue-router';
import { reactive, ref, onMounted } from 'vue';
import { reactive, ref, onMounted, watch } from 'vue';
import api from '@/api/axios';
import { useAuthContext } from '@/composables/useAuth';
const router = useRouter();
const goBack = () => router.push('/settings/ai');
@@ -55,7 +56,15 @@ const form = reactive({
const original = reactive({});
const editMode = ref(false);
const auth = useAuthContext();
const loadTelegramSettings = async () => {
// Не загружаем если не авторизован
if (!auth.isAuthenticated.value) {
console.log('[TelegramSettings] Пропуск загрузки - пользователь не авторизован');
return;
}
try {
const res = await api.get('/settings/telegram-settings');
if (res.data.success) {
@@ -65,12 +74,18 @@ const loadTelegramSettings = async () => {
Object.assign(original, JSON.parse(JSON.stringify(form)));
}
} catch (e) {
// обработка ошибки
console.error('[TelegramSettings] Ошибка загрузки:', e);
}
};
onMounted(async () => {
await loadTelegramSettings();
// Отслеживаем изменение авторизации
watch(() => auth.isAuthenticated.value, async (isAuth) => {
if (isAuth) {
await loadTelegramSettings();
}
}, { immediate: true }); // immediate: true - вызовется сразу при монтировании
onMounted(() => {
editMode.value = false;
});