+
+
+
@@ -238,10 +256,9 @@ const teamColumns = [
const projects = ref([])
const loadingProjects = ref(false)
const projectColumns = [
- { name: 'name', label: 'Название проекта', field: 'name', sortable: true },
- { name: 'summary', label: 'Описание', field: 'summary', sortable: true },
- { name: 'deadline', label: 'Дедлайн', field: 'deadline', sortable: true },
- // добавьте нужные поля
+ { name: 'title', label: 'Название проекта', field: 'title', sortable: true },
+ { name: 'description', label: 'Описание', field: 'description', sortable: true },
+ { name: 'repository_url', label: 'Репозиторий', field: 'repository_url', sortable: true },
]
// Общие состояния для диалогов
diff --git a/WEB/src/pages/HomePage.vue b/WEB/src/pages/HomePage.vue
index 0e81331..0251249 100644
--- a/WEB/src/pages/HomePage.vue
+++ b/WEB/src/pages/HomePage.vue
@@ -1,46 +1,329 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ teamName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ member.name }}
+ {{ member.role }}
+
+
+
+
+
+
+
+
+ {{ contest.title }}
+ {{ contest.description }}
+
+
+
+
+
+
+
+
+
+
+
+
+ Активность команды и история коммитов
+
+
+
+
+ {{ item.date.slice(5) }}
+
+
+
+
+
+
+
+
+ {{ commit.date }}: {{ commit.message }}
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
Добро пожаловать!
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+.team-logo:hover {
+ transform: scale(1.1);
+ box-shadow: 0 0 14px #a287ffaa;
+}
+
+.team-name-card {
+ border-radius: 20px;
+ background: #ede9fe;
+ box-shadow:
+ 0 8px 24px rgba(124, 58, 237, 0.18),
+ 0 2px 8px rgba(124, 58, 237, 0.12);
+ max-width: 900px;
+}
+
+.violet-card {
+ border-radius: 22px;
+ background: #ede9fe;
+ box-shadow:
+ 0 8px 24px rgba(124, 58, 237, 0.18),
+ 0 2px 8px rgba(124, 58, 237, 0.12);
+ transition: box-shadow 0.3s ease, transform 0.3s ease;
+}
+
+.violet-card:hover {
+ box-shadow:
+ 0 14px 40px rgba(124, 58, 237, 0.30),
+ 0 6px 16px rgba(124, 58, 237, 0.20);
+ transform: translateY(-6px);
+ cursor: pointer;
+}
+
+.member-card, .contest-card {
+ min-height: 140px;
+ padding: 8px 12px;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+}
+
+.horizontal-scroll {
+ display: flex;
+ overflow-x: auto;
+ padding-bottom: 6px;
+ -webkit-overflow-scrolling: touch;
+}
+.horizontal-scroll::-webkit-scrollbar {
+ height: 6px;
+}
+.horizontal-scroll::-webkit-scrollbar-thumb {
+ background: rgba(124, 58, 237, 0.4);
+ border-radius: 3px;
+}
+
+.activity-card {
+ max-width: 920px;
+ border-radius: 20px;
+ padding: 16px;
+}
+
+.activity-container {
+ /* align-items: center; */
+}
+
+.dates-column {
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-start;
+ color: #5e35b1;
+ font-weight: 600;
+ user-select: none;
+ font-size: 11px;
+}
+
+.activity-date {
+ margin-bottom: 4px;
+ text-align: right;
+ white-space: nowrap;
+}
+
+.activity-grid {
+ display: flex;
+ flex-wrap: nowrap;
+ overflow-x: auto;
+ user-select: none;
+ scrollbar-width: thin;
+ scrollbar-color: rgba(124, 58, 237, 0.4) transparent;
+}
+.activity-grid::-webkit-scrollbar {
+ height: 10px;
+}
+.activity-grid::-webkit-scrollbar-thumb {
+ background: rgba(124, 58, 237, 0.4);
+ border-radius: 5px;
+}
+
+.activity-square {
+ width: 16px;
+ height: 16px;
+ border-radius: 4px;
+ margin-right: 2px;
+ box-shadow: 0 0 3px rgba(124, 58, 237, 0.3);
+ cursor: default;
+ transition: background-color 0.3s ease;
+}
+
+.commits-list {
+ background: #f5f3ff;
+ border-radius: 12px;
+ padding: 8px 12px;
+ font-family: 'Courier New', Courier, monospace;
+ color: #4b0082;
+ box-shadow: inset 0 0 6px #c7b3f7;
+}
+.commit-item strong {
+ color: #7c3aed;
+}
+
diff --git a/WEB/src/pages/LoginPage.vue b/WEB/src/pages/LoginPage.vue
index 5ae0083..a849e0d 100644
--- a/WEB/src/pages/LoginPage.vue
+++ b/WEB/src/pages/LoginPage.vue
@@ -61,20 +61,16 @@ const authorisation = async () => {
icon: 'check_circle'
})
- console.log('Role ID:', roleId)
if (roleId === 1) {
- console.log('Переход на /admin')
- router.push('/admin')
+ await router.push('/admin')
} else {
- console.log('Переход на /')
- router.push('/')
+ await router.push('/')
}
-
if (roleId === 1) {
- router.push('/admin')
+ await router.push('/admin')
} else {
- router.push('/')
+ await router.push('/')
}
} catch (error) {
Notify.create({
@@ -230,13 +226,6 @@ const authorisation = async () => {
100% { transform: translateX(calc(-1 * var(--marquee-width, 370px))); }
}
-.q-input,
-.q-field__control,
-.q-field__native,
-.q-field__inner {
- border-radius: 14px !important;
-}
-
.btn-rounded {
border-radius: 16px;
}
@@ -279,12 +268,6 @@ const authorisation = async () => {
background: #ede9fe !important;
}
-.lavender-input .q-field__control,
-.lavender-input .q-field__native,
-.lavender-input .q-field__inner {
- background: #f6f0ff !important;
-}
-
.text-violet-strong {
color: #4f046f;
}