modified: main_dc/yalarba/easySite/easySite/app/layouts/default.vue

modified:   main_dc/yalarba/easySite/easySite/app/pages/admin/objects.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/admin/settings.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/admin/users.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/auth/login.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/auth/register.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/index.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/objects/[id]/edit.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/objects/[id]/index.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/objects/create.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/objects/index.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/objects/my-objects.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/objects/search.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/profile/edit.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/profile/index.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/profile/settings.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/reviews/index.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/reviews/write.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/support/[id].vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/support/create.vue
	modified:   main_dc/yalarba/easySite/easySite/app/pages/support/index.vue
	modified:   main_dc/yalarba/easySite/easySite/nuxt.config.ts
	modified:   main_dc/yalarba/easySite/easySite/package-lock.json
	modified:   main_dc/yalarba/easySite/easySite/package.json
add project structure easySite
This commit is contained in:
2025-10-28 02:53:21 +05:00
parent 2a2475f13a
commit 9666d7d3a7
24 changed files with 431 additions and 2682 deletions
@@ -0,0 +1,52 @@
<template>
<div>
<!-- Header -->
<header class="bg-white shadow-sm">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between items-center py-4">
<NuxtLink to="/" class="text-xl font-bold text-gray-900">
EasySite
</NuxtLink>
<nav class="flex space-x-4">
<NuxtLink
to="/"
class="text-gray-600 hover:text-gray-900"
>
Главная
</NuxtLink>
<NuxtLink
to="/objects"
class="text-gray-600 hover:text-gray-900"
>
Объекты
</NuxtLink>
<NuxtLink
to="/auth/login"
class="text-gray-600 hover:text-gray-900"
>
Войти
</NuxtLink>
</nav>
</div>
</div>
</header>
<!-- Main Content -->
<main>
<NuxtPage />
</main>
<!-- Footer -->
<footer class="bg-gray-800 text-white mt-12">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
<p>&copy; 2024 EasySite. Все права защищены.</p>
</div>
</footer>
</div>
</template>
<style>
.router-link-active {
@apply text-blue-600 font-medium;
}
</style>
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Страница</h1>
<p>Содержимое страницы</p>
</div>
</template>
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Страница</h1>
<p>Содержимое страницы</p>
</div>
</template>
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Страница</h1>
<p>Содержимое страницы</p>
</div>
</template>
@@ -0,0 +1,66 @@
<template>
<div class="min-h-screen flex items-center justify-center bg-gray-50">
<div class="max-w-md w-full space-y-8">
<div>
<h2 class="mt-6 text-center text-3xl font-extrabold text-gray-900">
Вход в систему
</h2>
</div>
<form class="mt-8 space-y-6" @submit.prevent="handleLogin">
<div>
<label for="email" class="sr-only">Email</label>
<input
id="email"
v-model="form.email"
name="email"
type="email"
required
class="relative block w-full px-3 py-2 border border-gray-300 placeholder-gray-500 text-gray-900 rounded-md focus:outline-none focus:ring-indigo-500 focus:border-indigo-500"
placeholder="Email"
/>
</div>
<div>
<label for="password" class="sr-only">Пароль</label>
<input
id="password"
v-model="form.password"
name="password"
type="password"
required
class="relative block w-full px-3 py-2 border border-gray-300 placeholder-gray-500 text-gray-900 rounded-md focus:outline-none focus:ring-indigo-500 focus:border-indigo-500"
placeholder="Пароль"
/>
</div>
<div>
<button
type="submit"
class="group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"
>
Войти
</button>
</div>
</form>
<div class="text-center">
<NuxtLink to="/auth/register" class="text-indigo-600 hover:text-indigo-500">
Нет аккаунта? Зарегистрируйтесь
</NuxtLink>
</div>
</div>
</div>
</template>
<script setup lang="ts">
const form = ref({
email: '',
password: ''
})
const handleLogin = async () => {
// Логика входа
console.log('Login attempt:', form.value)
}
</script>
<style scoped>
/* Стили если нужны */
</style>
@@ -0,0 +1,65 @@
<template>
<div class="min-h-screen flex items-center justify-center bg-gray-50">
<div class="max-w-md w-full space-y-8">
<div>
<h2 class="mt-6 text-center text-3xl font-extrabold text-gray-900">
Регистрация
</h2>
</div>
<form class="mt-8 space-y-6" @submit.prevent="handleRegister">
<div>
<input
v-model="form.name"
type="text"
required
class="relative block w-full px-3 py-2 border border-gray-300 placeholder-gray-500 text-gray-900 rounded-md focus:outline-none focus:ring-indigo-500 focus:border-indigo-500"
placeholder="Имя"
/>
</div>
<div>
<input
v-model="form.email"
type="email"
required
class="relative block w-full px-3 py-2 border border-gray-300 placeholder-gray-500 text-gray-900 rounded-md focus:outline-none focus:ring-indigo-500 focus:border-indigo-500"
placeholder="Email"
/>
</div>
<div>
<input
v-model="form.password"
type="password"
required
class="relative block w-full px-3 py-2 border border-gray-300 placeholder-gray-500 text-gray-900 rounded-md focus:outline-none focus:ring-indigo-500 focus:border-indigo-500"
placeholder="Пароль"
/>
</div>
<div>
<button
type="submit"
class="group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"
>
Зарегистрироваться
</button>
</div>
</form>
<div class="text-center">
<NuxtLink to="/auth/login" class="text-indigo-600 hover:text-indigo-500">
Уже есть аккаунт? Войдите
</NuxtLink>
</div>
</div>
</div>
</template>
<script setup lang="ts">
const form = ref({
name: '',
email: '',
password: ''
})
const handleRegister = async () => {
console.log('Register attempt:', form.value)
}
</script>
@@ -1,44 +1,34 @@
<!-- pages/index.vue -->
<template>
<div class="container">
<h1>Добро пожаловать в мое приложение!</h1>
<div class="links">
<NuxtLink to="/register" class="btn">Регистрация</NuxtLink>
<NuxtLink to="/login" class="btn">Вход</NuxtLink>
<NuxtLink to="/profile" class="btn">Профиль</NuxtLink>
<div class="min-h-screen bg-gray-50">
<div class="max-w-7xl mx-auto py-12 px-4 sm:px-6 lg:px-8">
<div class="text-center">
<h1 class="text-4xl font-bold text-gray-900 mb-8">
Добро пожаловать в EasySite
</h1>
<p class="text-xl text-gray-600 mb-8">
Платформа для управления объектами недвижимости
</p>
<div class="space-x-4">
<NuxtLink
to="/auth/login"
class="bg-blue-600 text-white px-6 py-3 rounded-lg hover:bg-blue-700"
>
Войти
</NuxtLink>
<NuxtLink
to="/auth/register"
class="bg-green-600 text-white px-6 py-3 rounded-lg hover:bg-green-700"
>
Регистрация
</NuxtLink>
<NuxtLink
to="/objects"
class="bg-gray-600 text-white px-6 py-3 rounded-lg hover:bg-gray-700"
>
Смотреть объекты
</NuxtLink>
</div>
</div>
</div>
</div>
</template>
<script setup>
// Главная страница
</script>
<style scoped>
.container {
max-width: 1200px;
margin: 0 auto;
padding: 2rem;
text-align: center;
}
.links {
margin-top: 2rem;
display: flex;
gap: 1rem;
justify-content: center;
}
.btn {
padding: 0.75rem 1.5rem;
background: #3b82f6;
color: white;
text-decoration: none;
border-radius: 0.5rem;
transition: background 0.3s;
}
.btn:hover {
background: #2563eb;
}
</style>
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Страница</h1>
<p>Содержимое страницы</p>
</div>
</template>
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Страница</h1>
<p>Содержимое страницы</p>
</div>
</template>
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Страница</h1>
<p>Содержимое страницы</p>
</div>
</template>
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Страница</h1>
<p>Содержимое страницы</p>
</div>
</template>
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Страница</h1>
<p>Содержимое страницы</p>
</div>
</template>
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Страница</h1>
<p>Содержимое страницы</p>
</div>
</template>
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Страница</h1>
<p>Содержимое страницы</p>
</div>
</template>
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Страница</h1>
<p>Содержимое страницы</p>
</div>
</template>
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Страница</h1>
<p>Содержимое страницы</p>
</div>
</template>
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Страница</h1>
<p>Содержимое страницы</p>
</div>
</template>
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Страница</h1>
<p>Содержимое страницы</p>
</div>
</template>
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Страница</h1>
<p>Содержимое страницы</p>
</div>
</template>
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Страница</h1>
<p>Содержимое страницы</p>
</div>
</template>
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Страница</h1>
<p>Содержимое страницы</p>
</div>
</template>
@@ -4,9 +4,13 @@ export default defineNuxtConfig({
devtools: { enabled: true },
modules: [
'@nuxt/content',
'@nuxt/image',
'@nuxt/ui',
'@nuxt/eslint'
]
],
runtimeConfig: {
public: {
apiBase: process.env.API_BASE_URL
}
}
})
File diff suppressed because it is too large Load Diff
@@ -10,16 +10,16 @@
"postinstall": "nuxt prepare"
},
"dependencies": {
"@nuxt/content": "^3.7.1",
"@nuxt/eslint": "^1.9.0",
"@nuxt/image": "^1.11.0",
"@nuxt/ui": "^4.1.0",
"@pinia/nuxt": "^0.11.2",
"better-sqlite3": "^12.4.1",
"eslint": "^9.38.0",
"nuxt": "^4.2.0",
"pinia": "^3.0.3",
"typescript": "^5.9.3",
"vue": "^3.5.22",
"vue-router": "^4.6.3",
"@pinia/nuxt": "^1.0.0",
"pinia": "^2.0.0"
"vue-router": "^4.6.3"
}
}