This commit is contained in:
xds
2026-03-23 12:48:37 +03:00
parent 11ae59b343
commit 39f071bc38
16 changed files with 42 additions and 42 deletions

2
.env
View File

@@ -5,7 +5,7 @@ TELEGRAM_CHAT_ID=-5185688679
MINIO_ENDPOINT=31.59.58.220:9000 MINIO_ENDPOINT=31.59.58.220:9000
MINIO_ACCESS_KEY=admin MINIO_ACCESS_KEY=admin
MINIO_SECRET_KEY=SuperSecretPassword123! MINIO_SECRET_KEY=SuperSecretPassword123!
MINIO_BUCKET=filam3d MINIO_BUCKET=bambu-russia
MINIO_SECURE=false MINIO_SECURE=false
AI_PROXY_URL=http://82.22.174.14:8001 AI_PROXY_URL=http://82.22.174.14:8001
AI_PROXY_SALT=AbVJUkwTPcUWJWhPzmjXb5p4SYyKmYC5m1uVW7Dhi7o AI_PROXY_SALT=AbVJUkwTPcUWJWhPzmjXb5p4SYyKmYC5m1uVW7Dhi7o

View File

@@ -5,5 +5,5 @@ TELEGRAM_CHAT_ID=567047
MINIO_ENDPOINT=localhost:9000 MINIO_ENDPOINT=localhost:9000
MINIO_ACCESS_KEY=minioadmin MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin MINIO_SECRET_KEY=minioadmin
MINIO_BUCKET=filam3d MINIO_BUCKET=bambu-russia
MINIO_SECURE=false MINIO_SECURE=false

View File

@@ -17,13 +17,13 @@ class Settings(BaseSettings):
MINIO_ENDPOINT: str = "localhost:9000" MINIO_ENDPOINT: str = "localhost:9000"
MINIO_ACCESS_KEY: str = "minioadmin" MINIO_ACCESS_KEY: str = "minioadmin"
MINIO_SECRET_KEY: str = "minioadmin" MINIO_SECRET_KEY: str = "minioadmin"
MINIO_BUCKET: str = "filam3d" MINIO_BUCKET: str = "bambu-russia"
MINIO_SECURE: bool = False MINIO_SECURE: bool = False
JWT_SECRET: str = "change-me-in-production-please" JWT_SECRET: str = "change-me-in-production-please"
JWT_ALGORITHM: str = "HS256" JWT_ALGORITHM: str = "HS256"
JWT_EXPIRE_HOURS: int = 24 JWT_EXPIRE_HOURS: int = 24
ADMIN_DEFAULT_EMAIL: str = "admin@filam3d.ru" ADMIN_DEFAULT_EMAIL: str = "admin@bamburussia.ru"
ADMIN_DEFAULT_PASSWORD: str = "admin123" ADMIN_DEFAULT_PASSWORD: str = "admin123"
model_config = {"env_file": ["../.env", ".env"]} model_config = {"env_file": ["../.env", ".env"]}

View File

@@ -539,7 +539,7 @@ DEFAULT_SETTINGS = [
{"key": "ai_proxy_url", "value": "", "description": "URL AI-прокси"}, {"key": "ai_proxy_url", "value": "", "description": "URL AI-прокси"},
{"key": "ai_proxy_salt", "value": "", "description": "Секретная соль для AI-прокси"}, {"key": "ai_proxy_salt", "value": "", "description": "Секретная соль для AI-прокси"},
{"key": "ai_direct_api_key", "value": "", "description": "Google API Key для прямого подключения"}, {"key": "ai_direct_api_key", "value": "", "description": "Google API Key для прямого подключения"},
{"key": "company_name", "value": "Filam3D", "description": "Название компании"}, {"key": "company_name", "value": "Bambu Russia", "description": "Название компании"},
{"key": "company_phone", "value": "", "description": "Телефон компании"}, {"key": "company_phone", "value": "", "description": "Телефон компании"},
{"key": "company_email", "value": "", "description": "Email компании"}, {"key": "company_email", "value": "", "description": "Email компании"},
] ]

View File

@@ -12,6 +12,6 @@ services:
MINIO_ENDPOINT: localhost:9000 MINIO_ENDPOINT: localhost:9000
MINIO_ACCESS_KEY: admin MINIO_ACCESS_KEY: admin
MINIO_SECRET_KEY: SuperSecretPassword123! MINIO_SECRET_KEY: SuperSecretPassword123!
MINIO_BUCKET: ${MINIO_BUCKET:-filam3d} MINIO_BUCKET: ${MINIO_BUCKET:-bambu-russia}
MINIO_SECURE: ${MINIO_SECURE:-false} MINIO_SECURE: ${MINIO_SECURE:-false}
QWEN_API_KEY: ${QWEN_API_KEY:-sk-991942d15b424cc89513498bb2946045} QWEN_API_KEY: ${QWEN_API_KEY:-sk-991942d15b424cc89513498bb2946045}

View File

@@ -32,31 +32,31 @@
<meta charset="UTF-8"/> <meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="description" <meta name="description"
content="Сервис 3D-печати на заказ. Мгновенный расчёт стоимости по 3D-модели. PLA, PETG, ABS, нейлон, поликарбонат, TPU, композиты. AI-подбор материала. Доставка по России."/> content="Сервис 3D-печати на заказ в Москве. Мгновенный расчёт стоимости по 3D-модели. PLA, PETG, ABS, нейлон, поликарбонат, TPU, композиты. AI-подбор материала. Доставка по Москве и России."/>
<meta name="keywords" <meta name="keywords"
content="3D печать, 3D печать на заказ, калькулятор 3D печати, стоимость 3D печати, FDM печать, PLA, PETG, ABS, нейлон, поликарбонат, TPU, прототипирование, корпуса для электроники, 3D печать деталей"/> content="3D печать, 3D печать на заказ, 3D печать Москва, калькулятор 3D печати, стоимость 3D печати, FDM печать, PLA, PETG, ABS, нейлон, поликарбонат, TPU, прототипирование, корпуса для электроники, 3D печать деталей, 3D печать в Москве"/>
<meta name="author" content="Filam3D"/> <meta name="author" content="Bambu Russia"/>
<meta name="robots" content="index, follow"/> <meta name="robots" content="index, follow"/>
<link rel="canonical" href="https://bambustore.ru/"/> <link rel="canonical" href="https://bamburussia.ru/"/>
<!-- Open Graph --> <!-- Open Graph -->
<meta property="og:type" content="website"/> <meta property="og:type" content="website"/>
<meta property="og:title" content="Filam3D — 3D-печать на заказ с мгновенным расчётом"/> <meta property="og:title" content="Bambu Russia — 3D-печать на заказ с мгновенным расчётом"/>
<meta property="og:description" <meta property="og:description"
content="Загрузите 3D-модель, выберите материал — получите цену за секунды. 7 материалов, AI-подбор, B2B."/> content="Загрузите 3D-модель, выберите материал — получите цену за секунды. 7 материалов, AI-подбор, B2B. Москва."/>
<meta property="og:locale" content="ru_RU"/> <meta property="og:locale" content="ru_RU"/>
<meta property="og:site_name" content="Filam3D"/> <meta property="og:site_name" content="Bambu Russia"/>
<!-- Twitter Card --> <!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image"/> <meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="Filam3D — Калькулятор 3D-печати"/> <meta name="twitter:title" content="Bambu Russia — Калькулятор 3D-печати"/>
<meta name="twitter:description" <meta name="twitter:description"
content="Мгновенный расчёт стоимости 3D-печати. Загрузите STL, выберите материал, получите цену."/> content="Мгновенный расчёт стоимости 3D-печати. Загрузите STL, выберите материал, получите цену."/>
<link rel="preconnect" href="https://fonts.googleapis.com"/> <link rel="preconnect" href="https://fonts.googleapis.com"/>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet"/> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet"/>
<title>Filam3D — 3D-печать на заказ | Калькулятор стоимости онлайн</title> <title>Bambu Russia — 3D-печать на заказ в Москве | Калькулятор стоимости онлайн</title>
</head> </head>
<body class="bg-gray-50 font-sans text-gray-900 antialiased"> <body class="bg-gray-50 font-sans text-gray-900 antialiased">

View File

@@ -1,11 +1,11 @@
{ {
"name": "filam3d-frontend", "name": "bambu-russia-frontend",
"version": "1.0.0", "version": "1.0.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "filam3d-frontend", "name": "bambu-russia-frontend",
"version": "1.0.0", "version": "1.0.0",
"dependencies": { "dependencies": {
"axios": "^1.7.9", "axios": "^1.7.9",

View File

@@ -1,5 +1,5 @@
{ {
"name": "filam3d-frontend", "name": "bambu-russia-frontend",
"private": true, "private": true,
"version": "1.0.0", "version": "1.0.0",
"type": "module", "type": "module",

View File

@@ -8,7 +8,7 @@
<path stroke-linecap="round" stroke-linejoin="round" d="M21 7.5l-9-5.25L3 7.5m18 0l-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9" /> <path stroke-linecap="round" stroke-linejoin="round" d="M21 7.5l-9-5.25L3 7.5m18 0l-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9" />
</svg> </svg>
</div> </div>
<span class="text-lg font-bold text-gray-900">Filam3D</span> <span class="text-lg font-bold text-gray-900">Bambu Russia</span>
</router-link> </router-link>
<nav class="flex items-center gap-1"> <nav class="flex items-center gap-1">
<router-link <router-link

View File

@@ -10,10 +10,10 @@
<path stroke-linecap="round" stroke-linejoin="round" d="M21 7.5l-9-5.25L3 7.5m18 0l-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9" /> <path stroke-linecap="round" stroke-linejoin="round" d="M21 7.5l-9-5.25L3 7.5m18 0l-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9" />
</svg> </svg>
</div> </div>
<span class="text-base font-bold text-gray-900">Filam3D</span> <span class="text-base font-bold text-gray-900">Bambu Russia</span>
</div> </div>
<p class="text-sm text-gray-500 leading-relaxed"> <p class="text-sm text-gray-500 leading-relaxed">
Сервис 3D-печати на заказ. Мгновенный расчёт стоимости, 7 материалов, AI-подбор, доставка по России. Сервис 3D-печати на заказ в Москве. Мгновенный расчёт стоимости, 7 материалов, AI-подбор, доставка по Москве и России.
</p> </p>
</div> </div>
@@ -54,7 +54,7 @@
</div> </div>
<div class="mt-8 border-t border-gray-100 pt-6 flex flex-col sm:flex-row items-center justify-between gap-3"> <div class="mt-8 border-t border-gray-100 pt-6 flex flex-col sm:flex-row items-center justify-between gap-3">
<p class="text-xs text-gray-400">&copy; {{ year }} Filam3D. 3D-печать на заказ.</p> <p class="text-xs text-gray-400">&copy; {{ year }} Bambu Russia. 3D-печать на заказ в Москве.</p>
<p class="text-xs text-gray-400">STL, 3MF, OBJ &middot; FDM-технология &middot; Bambu Lab</p> <p class="text-xs text-gray-400">STL, 3MF, OBJ &middot; FDM-технология &middot; Bambu Lab</p>
</div> </div>
</div> </div>

View File

@@ -20,25 +20,25 @@ const routes = [
path: '/', path: '/',
name: 'calculator', name: 'calculator',
component: CalculatorView, component: CalculatorView,
meta: { title: 'Калькулятор 3D-печати — Filam3D' }, meta: { title: 'Калькулятор 3D-печати в Москве — Bambu Russia' },
}, },
{ {
path: '/materials', path: '/materials',
name: 'materials', name: 'materials',
component: MaterialsView, component: MaterialsView,
meta: { title: 'Материалы для 3D-печати — Filam3D' }, meta: { title: 'Материалы для 3D-печати в Москве — Bambu Russia' },
}, },
{ {
path: '/order/:calcId', path: '/order/:calcId',
name: 'order', name: 'order',
component: OrderView, component: OrderView,
meta: { title: 'Оформление заказа — Filam3D' }, meta: { title: 'Оформление заказа — Bambu Russia' },
}, },
{ {
path: '/blog', path: '/blog',
name: 'blog', name: 'blog',
component: BlogView, component: BlogView,
meta: { title: 'Блог о 3D-печати — статьи и руководства — Filam3D' }, meta: { title: 'Блог о 3D-печати — статьи и руководства — Bambu Russia' },
}, },
{ {
path: '/blog/:slug', path: '/blog/:slug',
@@ -49,19 +49,19 @@ const routes = [
path: '/track', path: '/track',
name: 'track', name: 'track',
component: TrackView, component: TrackView,
meta: { title: 'Проверка заказа — Filam3D' }, meta: { title: 'Проверка заказа — Bambu Russia' },
}, },
{ {
path: '/account', path: '/account',
name: 'account', name: 'account',
component: AccountView, component: AccountView,
meta: { title: 'Личный кабинет — Filam3D' }, meta: { title: 'Личный кабинет — Bambu Russia' },
}, },
{ {
path: '/admin/login', path: '/admin/login',
name: 'admin-login', name: 'admin-login',
component: AdminLogin, component: AdminLogin,
meta: { title: 'Вход — Админ-панель Filam3D' }, meta: { title: 'Вход — Админ-панель Bambu Russia' },
}, },
{ {
path: '/admin', path: '/admin',
@@ -72,37 +72,37 @@ const routes = [
path: '', path: '',
name: 'admin-dashboard', name: 'admin-dashboard',
component: AdminDashboard, component: AdminDashboard,
meta: { title: 'Дашборд — Админ-панель Filam3D' }, meta: { title: 'Дашборд — Админ-панель Bambu Russia' },
}, },
{ {
path: 'orders', path: 'orders',
name: 'admin-orders', name: 'admin-orders',
component: AdminOrders, component: AdminOrders,
meta: { title: 'Заказы — Админ-панель Filam3D' }, meta: { title: 'Заказы — Админ-панель Bambu Russia' },
}, },
{ {
path: 'materials', path: 'materials',
name: 'admin-materials', name: 'admin-materials',
component: AdminMaterials, component: AdminMaterials,
meta: { title: 'Материалы — Админ-панель Filam3D' }, meta: { title: 'Материалы — Админ-панель Bambu Russia' },
}, },
{ {
path: 'settings', path: 'settings',
name: 'admin-settings', name: 'admin-settings',
component: AdminSettings, component: AdminSettings,
meta: { title: 'Настройки — Админ-панель Filam3D' }, meta: { title: 'Настройки — Админ-панель Bambu Russia' },
}, },
{ {
path: 'clients', path: 'clients',
name: 'admin-clients', name: 'admin-clients',
component: AdminClients, component: AdminClients,
meta: { title: 'Клиенты — Админ-панель Filam3D' }, meta: { title: 'Клиенты — Админ-панель Bambu Russia' },
}, },
{ {
path: 'users', path: 'users',
name: 'admin-users', name: 'admin-users',
component: AdminUsers, component: AdminUsers,
meta: { title: 'Администраторы — Админ-панель Filam3D' }, meta: { title: 'Администраторы — Админ-панель Bambu Russia' },
}, },
], ],
}, },

View File

@@ -80,7 +80,7 @@ const relatedArticles = computed(() => {
watch(() => route.params.slug, () => { watch(() => route.params.slug, () => {
window.scrollTo(0, 0) window.scrollTo(0, 0)
if (article.value) { if (article.value) {
document.title = `${article.value.title}Filam3D` document.title = `${article.value.title}Bambu Russia`
} }
}, { immediate: true }) }, { immediate: true })

View File

@@ -8,7 +8,7 @@
<path stroke-linecap="round" stroke-linejoin="round" d="M21 7.5l-9-5.25L3 7.5m18 0l-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9" /> <path stroke-linecap="round" stroke-linejoin="round" d="M21 7.5l-9-5.25L3 7.5m18 0l-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9" />
</svg> </svg>
</div> </div>
<span class="text-sm font-bold text-gray-900">Filam3D Admin</span> <span class="text-sm font-bold text-gray-900">Bambu Russia Admin</span>
</div> </div>
<nav class="p-3 space-y-0.5"> <nav class="p-3 space-y-0.5">

View File

@@ -8,14 +8,14 @@
</svg> </svg>
</div> </div>
<h1 class="text-xl font-bold text-gray-900">Админ-панель</h1> <h1 class="text-xl font-bold text-gray-900">Админ-панель</h1>
<p class="text-sm text-gray-500">Filam3D</p> <p class="text-sm text-gray-500">Bambu Russia</p>
</div> </div>
<form @submit.prevent="handleLogin" class="card"> <form @submit.prevent="handleLogin" class="card">
<div class="space-y-4"> <div class="space-y-4">
<div> <div>
<label class="mb-1.5 block text-sm font-medium text-gray-700">Email</label> <label class="mb-1.5 block text-sm font-medium text-gray-700">Email</label>
<input v-model="email" type="email" required class="input-field" placeholder="admin@filam3d.ru" /> <input v-model="email" type="email" required class="input-field" placeholder="admin@bamburussia.ru" />
</div> </div>
<div> <div>
<label class="mb-1.5 block text-sm font-medium text-gray-700">Пароль</label> <label class="mb-1.5 block text-sm font-medium text-gray-700">Пароль</label>

View File

@@ -123,9 +123,9 @@ const settingsGroups = [
title: 'Уведомления', title: 'Уведомления',
items: [ items: [
{ key: 'telegram_enabled', label: 'Telegram уведомления (true/false)', placeholder: 'true' }, { key: 'telegram_enabled', label: 'Telegram уведомления (true/false)', placeholder: 'true' },
{ key: 'company_name', label: 'Название компании', placeholder: 'Filam3D' }, { key: 'company_name', label: 'Название компании', placeholder: 'Bambu Russia' },
{ key: 'company_phone', label: 'Телефон', placeholder: '+7 (999) 123-45-67' }, { key: 'company_phone', label: 'Телефон', placeholder: '+7 (999) 123-45-67' },
{ key: 'company_email', label: 'Email', placeholder: 'info@filam3d.ru' }, { key: 'company_email', label: 'Email', placeholder: 'info@bamburussia.ru' },
], ],
}, },
] ]

View File

@@ -102,7 +102,7 @@
</div> </div>
<div> <div>
<label class="mb-1 block text-xs font-semibold uppercase text-gray-500">Email</label> <label class="mb-1 block text-xs font-semibold uppercase text-gray-500">Email</label>
<input v-model="form.email" type="email" required class="input-field" placeholder="admin@filam3d.ru" /> <input v-model="form.email" type="email" required class="input-field" placeholder="admin@bamburussia.ru" />
</div> </div>
<div v-if="!editingUser"> <div v-if="!editingUser">
<label class="mb-1 block text-xs font-semibold uppercase text-gray-500">Пароль</label> <label class="mb-1 block text-xs font-semibold uppercase text-gray-500">Пароль</label>