ваше сообщение коммита

This commit is contained in:
2025-07-09 01:18:58 +03:00
parent c18b674364
commit 81dced1f11
54 changed files with 15732 additions and 214 deletions

View File

@@ -145,7 +145,7 @@ const handleWalletAuth = async () => {
const disconnectWallet = async () => {
console.log('[BaseLayout] Выполняется выход из системы...');
try {
await api.post('/api/auth/logout');
await api.post('/auth/logout');
showSuccessMessage('Вы успешно вышли из системы');
removeFromStorage('guestMessages');
removeFromStorage('hasUserSentMessage');

View File

@@ -488,6 +488,33 @@ async function handleAiReply() {
</script>
<style scoped>
.chat-container {
display: flex;
flex-direction: column;
height: 100vh;
max-height: 100vh;
min-height: 0;
position: relative;
}
.chat-messages {
flex: 1 1 auto;
overflow-y: auto;
position: relative;
padding-bottom: 8px;
}
.chat-input {
position: relative;
width: 100%;
margin-bottom: 12px;
margin-top: 8px;
left: 0;
right: 0;
border-radius: 12px 12px 0 0;
box-shadow: 0 -2px 8px rgba(0,0,0,0.04);
}
.chat-container {
flex: 1;
display: flex;
@@ -714,33 +741,61 @@ async function handleAiReply() {
}
@media (max-width: 480px) {
.chat-container {
margin: var(--spacing-xs) auto;
.chat-input {
position: fixed !important;
left: 0 !important;
right: 0 !important;
bottom: 0 !important;
width: 100vw !important;
z-index: 1000 !important;
margin: 0 !important;
border-radius: 12px 12px 0 0 !important;
}
.chat-messages {
padding: var(--spacing-sm);
padding-bottom: 70px !important; /* чтобы сообщения не перекрывались input */
max-height: calc(100vh - 70px) !important;
overflow-y: auto !important;
}
.input-area {
gap: 4px;
}
@media (max-width: 600px) {
.chat-input {
position: fixed !important;
left: 0 !important;
right: 0 !important;
bottom: 0 !important;
width: 100vw !important;
z-index: 1000 !important;
margin: 0 !important;
border-radius: 12px 12px 0 0 !important;
padding: 8px 12px !important;
background: #f8f8f8 !important;
border-top: 1px solid #eee !important;
box-sizing: border-box !important;
}
.chat-icon-btn {
width: 28px;
height: 28px;
.chat-messages {
padding-bottom: 70px !important; /* чтобы сообщения не перекрывались input */
max-height: calc(100vh - 70px) !important;
overflow-y: auto !important;
box-sizing: border-box !important;
}
.chat-icon-btn svg {
width: 18px;
height: 18px;
}
.preview-item {
font-size: var(--font-size-xs);
.chat-container {
padding: 0 !important;
margin: 0 !important;
height: 100vh !important;
max-height: 100vh !important;
min-height: 0 !important;
box-sizing: border-box !important;
}
}
.input-area textarea {
flex: 1 1 0%;
min-width: 0;
width: 100%;
box-sizing: border-box;
}
.ai-spinner {
animation: ai-spin 1s linear infinite;
}

View File

@@ -182,11 +182,25 @@ onBeforeUnmount(() => {
}
@media (max-width: 480px) {
.header-text {
display: none; /* Hide text on very small screens */
.title {
font-size: 1em;
text-align: left;
word-break: break-word;
}
.subtitle {
font-size: 0.7em;
text-align: left;
word-break: break-word;
}
.header-content {
justify-content: flex-end; /* Align button to the right */
flex-direction: row;
align-items: center;
}
.header-text {
flex: 1;
min-width: 0;
text-align: left;
width: auto;
}
}

View File

@@ -127,7 +127,7 @@ async function submitImport() {
return obj;
});
try {
const resp = await fetch('/api/users/import', {
const resp = await fetch('/users/import', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(contacts)

View File

@@ -58,9 +58,9 @@ async function save() {
return;
}
if (props.rule && props.rule.id) {
await axios.put(`/api/settings/ai-assistant-rules/${props.rule.id}`, { name: name.value, description: description.value, rules });
await axios.put(`/settings/ai-assistant-rules/${props.rule.id}`, { name: name.value, description: description.value, rules });
} else {
await axios.post('/api/settings/ai-assistant-rules', { name: name.value, description: description.value, rules });
await axios.post('/settings/ai-assistant-rules', { name: name.value, description: description.value, rules });
}
emit('close', true);
}

View File

@@ -118,7 +118,7 @@ const getRagResultClass = () => {
const refreshStatus = async () => {
loading.value = true;
try {
const response = await axios.get('/api/monitoring');
const response = await axios.get('/monitoring');
monitoringData.value = response.data;
lastUpdate.value = new Date().toLocaleString('ru-RU');
} catch (e) {
@@ -133,7 +133,7 @@ const testRAG = async () => {
ragTesting.value = true;
ragResult.value = null;
try {
const response = await axios.post('/api/rag/answer', {
const response = await axios.post('/rag/answer', {
tableId: 28,
question: ragQuestion.value,
userTags: [],

View File

@@ -57,7 +57,7 @@ const emit = defineEmits(['close', 'success']);
try {
isLoading.value = true;
error.value = '';
const response = await axios.post('/api/auth/email/request', {
const response = await axios.post('/auth/email/request', {
email: email.value,
});
if (response.data.success) {
@@ -76,7 +76,7 @@ const emit = defineEmits(['close', 'success']);
try {
isLoading.value = true;
error.value = '';
const response = await axios.post('/api/auth/email/verify-code', {
const response = await axios.post('/auth/email/verify-code', {
email: email.value,
code: code.value,
});