mirror of
https://github.com/Dadechin/XRoomDashboardFront.git
synced 2025-07-04 17:24:35 +00:00
Now the sidebar, header, and footer are in the App.vue
This commit is contained in:
parent
b8985e7f96
commit
a6f9ac7e44
|
@ -1,26 +1,43 @@
|
||||||
<template>
|
<template>
|
||||||
<div id="app">
|
<div id="app">
|
||||||
<!-- Main App Layout -->
|
<!-- Dashboard LayOut -->
|
||||||
|
<template v-if="isDashboardLayout">
|
||||||
|
<SidebarMenu />
|
||||||
|
<div class="dashboard-page">
|
||||||
|
<div class="content">
|
||||||
|
<AppHeader :pageTitle="$route.meta.title" />
|
||||||
|
<router-view></router-view>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- Sample LayOut for SignUp .... -->
|
||||||
|
<template v-else>
|
||||||
|
<router-view></router-view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<Footer />
|
||||||
<!-- The router-view here will display the active route's component -->
|
|
||||||
<router-view></router-view>
|
|
||||||
</div>
|
</div>
|
||||||
<Footer />
|
|
||||||
|
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Footer from '@/components/Footer.vue'
|
import AppHeader from '@/components/Header.vue';
|
||||||
|
import SidebarMenu from '@/components/SidebarMenu.vue';
|
||||||
|
import Footer from '@/components/Footer.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'App',
|
name: 'App',
|
||||||
components: {
|
components: {
|
||||||
Footer
|
Footer,
|
||||||
}
|
SidebarMenu,
|
||||||
}
|
AppHeader,
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
isDashboardLayout() {
|
||||||
|
return this.$route.meta.requiresAuth === true;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
@ -35,12 +52,6 @@ body {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Styling for the header */
|
|
||||||
header {
|
|
||||||
background-color: #4A90E2; /* Blue color */
|
|
||||||
padding: 20px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-title {
|
.app-title {
|
||||||
color: white;
|
color: white;
|
||||||
|
@ -60,6 +71,12 @@ router-view {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
@ -75,4 +92,22 @@ router-view {
|
||||||
* {
|
* {
|
||||||
font-family: 'IRANSans', sans-serif !important;
|
font-family: 'IRANSans', sans-serif !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dashboard-page {
|
||||||
|
margin-right: 20rem;
|
||||||
|
padding: 20px;
|
||||||
|
direction: rtl;
|
||||||
|
font-family: IRANSansXFaNum, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
border-radius: 20px;
|
||||||
|
padding: 35px 80px !important;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
|
@ -209,6 +209,11 @@ export default {
|
||||||
this.$emit('upload-success');
|
this.$emit('upload-success');
|
||||||
this.$emit('close');
|
this.$emit('close');
|
||||||
alert('فایل با موفقیت آپلود شد');
|
alert('فایل با موفقیت آپلود شد');
|
||||||
|
|
||||||
|
// بررسی مسیر فعلی و هدایت به /dashboard/files در صورت نیاز
|
||||||
|
if (this.$route.path !== '/dashboard/files') {
|
||||||
|
this.$router.push('/dashboard/files');
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error uploading file:', error);
|
console.error('Error uploading file:', error);
|
||||||
alert('خطا در آپلود فایل');
|
alert('خطا در آپلود فایل');
|
||||||
|
|
|
@ -1,25 +1,21 @@
|
||||||
<template>
|
<template>
|
||||||
<SidebarMenu />
|
|
||||||
|
|
||||||
<div class="dashboard-page">
|
<div style="gap: 1.5rem;display: flex;flex-direction: column;">
|
||||||
<div class="content">
|
<div style="gap: 1.5rem;display: flex;flex-direction: column;">
|
||||||
<!-- Header -->
|
|
||||||
<AppHeader pageTitle="انتخاب آواتار" />
|
|
||||||
|
|
||||||
|
<div class="page-title"> آواتار خود را انتخاب کنید</div>
|
||||||
|
|
||||||
<div class="page-title"> آواتار خود را انتخاب کنید</div>
|
<h5>
|
||||||
|
نحوه ظاهر شدن خود را در طول جلسات در XRoom را سفارشی سازی کنید.
|
||||||
<h5>
|
نگران نباشید، شما می توانید ان را در هر زمان دیگری تغییر دهید.
|
||||||
نحوه ظاهر شدن خود را در طول جلسات در XRoom را سفارشی سازی کنید.
|
</h5>
|
||||||
نگران نباشید، شما می توانید ان را در هر زمان دیگری تغییر دهید.
|
|
||||||
</h5>
|
|
||||||
|
|
||||||
<router-link to="/dashboard/readyplayer">ساخت آواتار به دلخواه </router-link>
|
|
||||||
|
|
||||||
|
<router-link to="/dashboard/readyplayer">ساخت آواتار به دلخواه </router-link>
|
||||||
|
</div>
|
||||||
<div class="avatar-selection-container">
|
<div class="avatar-selection-container">
|
||||||
<!-- Left Column - Women Models -->
|
<!-- Left Column - Women Models -->
|
||||||
<div class="gender-column">
|
<div class="gender-column">
|
||||||
<h3 class="text-center mb-4">آواتارهای زنانه</h3>
|
<h3 class="mb-4 text-center">آواتارهای زنانه</h3>
|
||||||
<div class="avatar-grid">
|
<div class="avatar-grid">
|
||||||
<div v-for="(avatar, index) in femaleAvatars" :key="'female-' + index" class="avatar-card">
|
<div v-for="(avatar, index) in femaleAvatars" :key="'female-' + index" class="avatar-card">
|
||||||
<div class="model-preview-container">
|
<div class="model-preview-container">
|
||||||
|
@ -47,7 +43,7 @@
|
||||||
|
|
||||||
<!-- Right Column - Men Models -->
|
<!-- Right Column - Men Models -->
|
||||||
<div class="gender-column">
|
<div class="gender-column">
|
||||||
<h3 class="text-center mb-4">آواتارهای مردانه</h3>
|
<h3 class="mb-4 text-center">آواتارهای مردانه</h3>
|
||||||
<div class="avatar-grid">
|
<div class="avatar-grid">
|
||||||
<div v-for="(avatar, index) in maleAvatars" :key="'male-' + index" class="avatar-card">
|
<div v-for="(avatar, index) in maleAvatars" :key="'male-' + index" class="avatar-card">
|
||||||
<div class="model-preview-container">
|
<div class="model-preview-container">
|
||||||
|
@ -74,20 +70,15 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import SidebarMenu from '@/components/SidebarMenu.vue'
|
|
||||||
import axios from '@/axios';
|
import axios from '@/axios';
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import AppHeader from '@/components/Header.vue';
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ChangeAvatar',
|
name: 'ChangeAvatar',
|
||||||
components: {
|
components: {
|
||||||
SidebarMenu,
|
|
||||||
AppHeader,
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -271,21 +262,6 @@ export default {
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|
||||||
.dashboard-page {
|
|
||||||
margin-right: 360px;
|
|
||||||
padding: 20px;
|
|
||||||
direction: rtl;
|
|
||||||
font-family: IRANSansXFaNum, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content {
|
|
||||||
background-color: #f8f9fa;
|
|
||||||
border-radius: 20px;
|
|
||||||
padding: 35px 80px;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
gap: 32px;
|
|
||||||
}
|
|
||||||
.page-title {
|
.page-title {
|
||||||
font-size: 22px;
|
font-size: 22px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
@ -431,8 +407,11 @@ body, html {
|
||||||
|
|
||||||
/* Each gender column */
|
/* Each gender column */
|
||||||
.gender-column {
|
.gender-column {
|
||||||
flex: 1; /* Each column takes equal width */
|
flex: 1;
|
||||||
min-width: 0; /* Prevent flex items from overflowing */
|
min-width: 0;
|
||||||
|
gap: 1rem;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Grid layout inside each column */
|
/* Grid layout inside each column */
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
|
<div>
|
||||||
<SidebarMenu />
|
|
||||||
<div class="dashboard-page">
|
|
||||||
<div class="content">
|
|
||||||
<!-- Top Header -->
|
<!-- Top Header -->
|
||||||
<AppHeader pageTitle="دانلود ها" />
|
<AppHeader pageTitle="دانلود ها" />
|
||||||
|
|
||||||
|
@ -43,19 +40,13 @@
|
||||||
برای دستورالعملهای نصب ، حتماً از <router-link to="/dashboard/download" style="color: #3A57E8;">پایگاه دانش ما</router-link> دیدن کنید.
|
برای دستورالعملهای نصب ، حتماً از <router-link to="/dashboard/download" style="color: #3A57E8;">پایگاه دانش ما</router-link> دیدن کنید.
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import SidebarMenu from '@/components/SidebarMenu.vue'
|
|
||||||
import AppHeader from '@/components/Header.vue';
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DashboardPage',
|
name: 'DashboardPage',
|
||||||
components: {
|
components: {
|
||||||
SidebarMenu,
|
|
||||||
AppHeader,
|
|
||||||
|
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
|
@ -83,7 +74,7 @@ export default {
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|
||||||
.dashboard-page {
|
/* .dashboard-page {
|
||||||
margin-right: 360px;
|
margin-right: 360px;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
direction: rtl;
|
direction: rtl;
|
||||||
|
@ -97,7 +88,7 @@ export default {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 32px;
|
gap: 32px;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
.section-title {
|
.section-title {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
@ -124,6 +115,7 @@ export default {
|
||||||
|
|
||||||
.chose-device {
|
.chose-device {
|
||||||
margin-top: 2rem;
|
margin-top: 2rem;
|
||||||
|
margin-bottom: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cards {
|
.cards {
|
||||||
|
@ -237,7 +229,6 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
.instructions-text {
|
.instructions-text {
|
||||||
margin-top: 1.5rem;
|
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #4F5A69;
|
color: #4F5A69;
|
||||||
|
|
|
@ -1,12 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<SidebarMenu />
|
<div>
|
||||||
|
|
||||||
<div class="dashboard-page">
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<!-- Header -->
|
|
||||||
<AppHeader pageTitle="ویرایش پروفایل" />
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Two-Column Form Layout -->
|
<!-- Two-Column Form Layout -->
|
||||||
<div class="profile-edit-container">
|
<div class="profile-edit-container">
|
||||||
|
@ -96,19 +89,14 @@
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import SidebarMenu from '@/components/SidebarMenu.vue'
|
|
||||||
import axios from '@/axios';
|
import axios from '@/axios';
|
||||||
import AppHeader from '@/components/Header.vue';
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'EditProfile',
|
name: 'EditProfile',
|
||||||
components: {
|
components: {
|
||||||
SidebarMenu,
|
|
||||||
AppHeader,
|
|
||||||
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
@ -209,7 +197,7 @@ export default {
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|
||||||
.dashboard-page {
|
/* .dashboard-page {
|
||||||
margin-right: 360px;
|
margin-right: 360px;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
direction: rtl;
|
direction: rtl;
|
||||||
|
@ -223,7 +211,7 @@ export default {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 32px;
|
gap: 32px;
|
||||||
}
|
} */
|
||||||
.page-title {
|
.page-title {
|
||||||
font-size: 22px;
|
font-size: 22px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
|
|
@ -1,11 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<SidebarMenu />
|
<div>
|
||||||
|
|
||||||
<div class="dashboard-page">
|
|
||||||
<div class="content">
|
|
||||||
<!-- Top Header -->
|
|
||||||
<AppHeader pageTitle="جلسات" />
|
|
||||||
|
|
||||||
<!-- Description -->
|
<!-- Description -->
|
||||||
<div class="section-description">
|
<div class="section-description">
|
||||||
<div class="section-title">مدیریت جلسات</div>
|
<div class="section-title">مدیریت جلسات</div>
|
||||||
|
@ -133,19 +127,14 @@
|
||||||
@close="showModal = false"
|
@close="showModal = false"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import SidebarMenu from '@/components/SidebarMenu.vue';
|
|
||||||
import AppHeader from '@/components/Header.vue';
|
|
||||||
import CreateMeetingModal from '@/components/CreateMeetingModal.vue';
|
import CreateMeetingModal from '@/components/CreateMeetingModal.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DashboardPage',
|
name: 'DashboardPage',
|
||||||
components: {
|
components: {
|
||||||
SidebarMenu,
|
|
||||||
AppHeader,
|
|
||||||
CreateMeetingModal,
|
CreateMeetingModal,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
@ -222,7 +211,7 @@ export default {
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.dashboard-page {
|
/* .dashboard-page {
|
||||||
margin-right: 360px;
|
margin-right: 360px;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
direction: rtl;
|
direction: rtl;
|
||||||
|
@ -236,7 +225,7 @@ export default {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 32px;
|
gap: 32px;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
.section-title {
|
.section-title {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<SidebarMenu />
|
<div>
|
||||||
|
|
||||||
<div class="dashboard-page">
|
|
||||||
<div class="content">
|
|
||||||
<!-- Top Header -->
|
<!-- Top Header -->
|
||||||
<AppHeader pageTitle="فضاها" />
|
<AppHeader pageTitle="فضاها" />
|
||||||
|
|
||||||
|
@ -48,7 +45,6 @@
|
||||||
<p>هیچ فضایی با فیلترهای انتخابشده یافت نشد.</p>
|
<p>هیچ فضایی با فیلترهای انتخابشده یافت نشد.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -65,8 +61,6 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import SidebarMenu from '@/components/SidebarMenu.vue';
|
|
||||||
import AppHeader from '@/components/Header.vue';
|
|
||||||
import CreateSpaceModal from '@/components/CreateSpaceModal.vue';
|
import CreateSpaceModal from '@/components/CreateSpaceModal.vue';
|
||||||
import { Swiper, SwiperSlide } from 'swiper/vue';
|
import { Swiper, SwiperSlide } from 'swiper/vue';
|
||||||
import 'swiper/css';
|
import 'swiper/css';
|
||||||
|
@ -76,8 +70,6 @@ import axios from 'axios';
|
||||||
export default {
|
export default {
|
||||||
name: 'DashboardPage',
|
name: 'DashboardPage',
|
||||||
components: {
|
components: {
|
||||||
SidebarMenu,
|
|
||||||
AppHeader,
|
|
||||||
CreateSpaceModal,
|
CreateSpaceModal,
|
||||||
Swiper,
|
Swiper,
|
||||||
SwiperSlide,
|
SwiperSlide,
|
||||||
|
@ -175,7 +167,7 @@ export default {
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.dashboard-page {
|
/* .dashboard-page {
|
||||||
margin-right: 360px;
|
margin-right: 360px;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
direction: rtl;
|
direction: rtl;
|
||||||
|
@ -188,7 +180,7 @@ export default {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 32px;
|
gap: 32px;
|
||||||
}
|
} */
|
||||||
.section-title {
|
.section-title {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<SidebarMenu />
|
<div class="ef">
|
||||||
<div class="dashboard-page">
|
|
||||||
<div class="content">
|
|
||||||
<!-- Top Header -->
|
<!-- Top Header -->
|
||||||
<AppHeader pageTitle="فایلها" />
|
|
||||||
|
|
||||||
<!-- Description -->
|
<!-- Description -->
|
||||||
<div class="section-description">
|
<div class="section-description">
|
||||||
|
@ -64,7 +62,17 @@
|
||||||
:key="`${section.type}-${index}`"
|
:key="`${section.type}-${index}`"
|
||||||
@click="openPreviewDialog(section.type, index, getFullFileUrl(file[section.type]), file.id)"
|
@click="openPreviewDialog(section.type, index, getFullFileUrl(file[section.type]), file.id)"
|
||||||
>
|
>
|
||||||
<img :src="getFilePreviewImage(section.type, file)" class="file-image" />
|
<img
|
||||||
|
:src="getFilePreviewImage(section.type, file)"
|
||||||
|
:class="[
|
||||||
|
{
|
||||||
|
'file-image': section.type === 'image',
|
||||||
|
'file-pdf': section.type === 'pdf',
|
||||||
|
'file-video': section.type === 'video',
|
||||||
|
'file-glb': section.type === 'glb'
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
/>
|
||||||
<div class="file-card-info">
|
<div class="file-card-info">
|
||||||
<div class="file-title">{{ file.name }}</div>
|
<div class="file-title">{{ file.name }}</div>
|
||||||
<div class="file-meta">
|
<div class="file-meta">
|
||||||
|
@ -130,22 +138,17 @@
|
||||||
@close="closePreviewDialog"
|
@close="closePreviewDialog"
|
||||||
@delete-success="fetchUserData"
|
@delete-success="fetchUserData"
|
||||||
/>
|
/>
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import '@google/model-viewer';
|
import '@google/model-viewer';
|
||||||
import SidebarMenu from '@/components/SidebarMenu.vue';
|
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import AppHeader from '@/components/Header.vue';
|
|
||||||
import NewFileDialog from '@/components/NewFileDialog.vue';
|
import NewFileDialog from '@/components/NewFileDialog.vue';
|
||||||
import FilePreviewDialog from '@/components/FilePreviewDialog.vue';
|
import FilePreviewDialog from '@/components/FilePreviewDialog.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DashboardPage',
|
name: 'DashboardPage',
|
||||||
components: {
|
components: {
|
||||||
SidebarMenu,
|
|
||||||
AppHeader,
|
|
||||||
NewFileDialog,
|
NewFileDialog,
|
||||||
FilePreviewDialog,
|
FilePreviewDialog,
|
||||||
},
|
},
|
||||||
|
@ -423,20 +426,7 @@ export default {
|
||||||
margin-top: 1rem;
|
margin-top: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Layout and Containers */
|
|
||||||
.dashboard-page {
|
|
||||||
margin-right: 360px;
|
|
||||||
padding: 20px;
|
|
||||||
direction: rtl;
|
|
||||||
font-family: IRANSansXFaNum, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
background-color: #f8f9fa;
|
|
||||||
border-radius: 20px;
|
|
||||||
padding: 35px 80px;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
gap: 32px;
|
gap: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -530,7 +520,14 @@ export default {
|
||||||
height: 190px;
|
height: 190px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
object-fit: cover;
|
}
|
||||||
|
|
||||||
|
.file-image{
|
||||||
|
object-fit: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.file-pdf , .file-video , .file-glb{
|
||||||
|
object-fit: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
.file-card-info {
|
.file-card-info {
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<SidebarMenu />
|
<div>
|
||||||
<div class="dashboard-page">
|
|
||||||
<div class="content">
|
|
||||||
<!-- <AppHeader /> -->
|
<!-- <AppHeader /> -->
|
||||||
<AppHeader pageTitle="از این داشبورد، کار با XRoom را آغاز کنید." />
|
|
||||||
|
|
||||||
<div class="dashboard-grid">
|
<div class="dashboard-grid">
|
||||||
|
|
||||||
<!-- Right Section -->
|
<!-- Right Section -->
|
||||||
|
@ -43,8 +39,8 @@
|
||||||
<div class="files-header">
|
<div class="files-header">
|
||||||
<h1 style=" font-size: 24px;">آخرین فایل ها</h1>
|
<h1 style=" font-size: 24px;">آخرین فایل ها</h1>
|
||||||
<div class="file-buttons">
|
<div class="file-buttons">
|
||||||
<button class="white-button">بارگذاری فایل</button>
|
<button class="white-button" @click="openDialog('image')">بارگذاری فایل</button>
|
||||||
<button class="white-button">مدیریت فایلها</button>
|
<router-link class="white-button" to="/dashboard/files">مدیریت فایلها</router-link>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -100,8 +96,6 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Create Meeting Modal -->
|
<!-- Create Meeting Modal -->
|
||||||
<CreateMeetingModal
|
<CreateMeetingModal
|
||||||
:is-open="showModal"
|
:is-open="showModal"
|
||||||
|
@ -114,30 +108,40 @@
|
||||||
:is-open="tutorialShowModal"
|
:is-open="tutorialShowModal"
|
||||||
@close="tutorialShowModal = false"
|
@close="tutorialShowModal = false"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<!-- New File Dialog Component -->
|
||||||
|
<NewFileDialog
|
||||||
|
:is-open="isNewFileDialogOpen"
|
||||||
|
:initial-upload-type="currentUploadType"
|
||||||
|
:base-url="baseUrl"
|
||||||
|
@close="closeDialog"
|
||||||
|
@upload-success="fetchUserData"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import SidebarMenu from '@/components/SidebarMenu.vue'
|
|
||||||
import AppHeader from '@/components/Header.vue';
|
|
||||||
import CreateMeetingModal from '@/components/CreateMeetingModal.vue';
|
import CreateMeetingModal from '@/components/CreateMeetingModal.vue';
|
||||||
import TutorialShowModal from '@/components/TutorialShowModal.vue';
|
import TutorialShowModal from '@/components/TutorialShowModal.vue';
|
||||||
|
import NewFileDialog from '@/components/NewFileDialog.vue';
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DashboardPage',
|
name: 'DashboardPage',
|
||||||
components: {
|
components: {
|
||||||
SidebarMenu,
|
|
||||||
AppHeader,
|
|
||||||
CreateMeetingModal,
|
CreateMeetingModal,
|
||||||
TutorialShowModal,
|
TutorialShowModal,
|
||||||
|
NewFileDialog
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
showModal: false,
|
showModal: false,
|
||||||
tutorialShowModal: false,
|
tutorialShowModal: false,
|
||||||
|
isNewFileDialogOpen: false,
|
||||||
|
currentUploadType: 'image',
|
||||||
|
baseUrl: 'http://194.62.43.230:8000'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
createNewMeeting(meetingData) {
|
createNewMeeting(meetingData) {
|
||||||
const newMeeting = {
|
const newMeeting = {
|
||||||
id: this.meetings.length + 1,
|
id: this.meetings.length + 1,
|
||||||
|
@ -153,13 +157,22 @@ export default {
|
||||||
filterMeetings() {
|
filterMeetings() {
|
||||||
console.log('Filtering meetings');
|
console.log('Filtering meetings');
|
||||||
},
|
},
|
||||||
|
openDialog(type = 'image') {
|
||||||
|
this.currentUploadType = type;
|
||||||
|
this.isNewFileDialogOpen = true;
|
||||||
|
},
|
||||||
|
closeDialog() {
|
||||||
|
this.isNewFileDialogOpen = false;
|
||||||
|
},
|
||||||
|
fetchUserData() {
|
||||||
|
console.log('Fetching user data');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.dashboard-page {
|
/* .dashboard-page {
|
||||||
margin-right: 360px;
|
margin-right: 360px;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
direction: rtl;
|
direction: rtl;
|
||||||
|
@ -175,13 +188,13 @@ export default {
|
||||||
padding: 35px 80px;
|
padding: 35px 80px;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
} */
|
||||||
|
|
||||||
.dashboard-grid {
|
.dashboard-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr 1fr;
|
grid-template-columns: 1fr 1fr;
|
||||||
gap: 40px;
|
gap: 40px;
|
||||||
margin-top: 80px;
|
margin-top: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.left-section {
|
.left-section {
|
||||||
|
@ -374,6 +387,8 @@ export default {
|
||||||
font-family: "IRANSansXFaNum-Medium", Helvetica;
|
font-family: "IRANSansXFaNum-Medium", Helvetica;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: background-color 0.2s;
|
transition: background-color 0.2s;
|
||||||
|
color: #101010;
|
||||||
|
line-height: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
.white-button:hover {
|
.white-button:hover {
|
||||||
|
|
|
@ -1,11 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<SidebarMenu />
|
<div>
|
||||||
|
|
||||||
<div class="dashboard-page">
|
|
||||||
<div class="content">
|
|
||||||
<!-- Header -->
|
|
||||||
<AppHeader pageTitle="انتخاب آواتار" />
|
|
||||||
|
|
||||||
|
|
||||||
<div class="page-title">ساخت آواتار جدید</div>
|
<div class="page-title">ساخت آواتار جدید</div>
|
||||||
|
|
||||||
|
@ -19,19 +13,14 @@
|
||||||
|
|
||||||
></iframe>
|
></iframe>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import SidebarMenu from '@/components/SidebarMenu.vue'
|
|
||||||
import axios from '@/axios';
|
import axios from '@/axios';
|
||||||
import AppHeader from '@/components/Header.vue';
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ChangeAvatar',
|
name: 'ChangeAvatar',
|
||||||
components: {
|
components: {
|
||||||
SidebarMenu,
|
|
||||||
AppHeader,
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -234,7 +223,7 @@ import AppHeader from '@/components/Header.vue';
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Rest of your existing styles... */
|
/* Rest of your existing styles... */
|
||||||
.dashboard-page {
|
/* .dashboard-page {
|
||||||
margin-right: 360px;
|
margin-right: 360px;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
direction: rtl;
|
direction: rtl;
|
||||||
|
@ -248,7 +237,7 @@ import AppHeader from '@/components/Header.vue';
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 32px;
|
gap: 32px;
|
||||||
}
|
} */
|
||||||
|
|
||||||
.page-title {
|
.page-title {
|
||||||
font-size: 22px;
|
font-size: 22px;
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
<!-- DashboardPage.vue -->
|
<!-- DashboardPage.vue -->
|
||||||
<template>
|
<template>
|
||||||
<SidebarMenu />
|
<div>
|
||||||
|
|
||||||
<div class="dashboard-page">
|
|
||||||
<div class="content">
|
|
||||||
<!-- Top Header -->
|
|
||||||
<AppHeader pageTitle="تیم ها" />
|
|
||||||
<!-- Description -->
|
<!-- Description -->
|
||||||
<div class="section-description">
|
<div class="section-description">
|
||||||
<div class="section-title">مدیریت اعضا</div>
|
<div class="section-title">مدیریت اعضا</div>
|
||||||
|
@ -73,12 +68,9 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import SidebarMenu from '@/components/SidebarMenu.vue';
|
|
||||||
import AppHeader from '@/components/Header.vue';
|
|
||||||
import TeamUser from '@/components/TeamUser.vue';
|
import TeamUser from '@/components/TeamUser.vue';
|
||||||
import BuySubscription from '@/components/BuySubscription.vue';
|
import BuySubscription from '@/components/BuySubscription.vue';
|
||||||
import Membership from '@/components/Membership.vue';
|
import Membership from '@/components/Membership.vue';
|
||||||
|
@ -88,8 +80,6 @@ import axios from 'axios';
|
||||||
export default {
|
export default {
|
||||||
name: 'DashboardPage',
|
name: 'DashboardPage',
|
||||||
components: {
|
components: {
|
||||||
SidebarMenu,
|
|
||||||
AppHeader,
|
|
||||||
TeamUser,
|
TeamUser,
|
||||||
BuySubscription,
|
BuySubscription,
|
||||||
Membership,
|
Membership,
|
||||||
|
@ -507,7 +497,7 @@ export default {
|
||||||
margin-top: 1rem;
|
margin-top: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dashboard-page {
|
/* .dashboard-page {
|
||||||
margin-right: 360px;
|
margin-right: 360px;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
direction: rtl;
|
direction: rtl;
|
||||||
|
@ -522,7 +512,7 @@ export default {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
.tab-buttons {
|
.tab-buttons {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 25px;
|
gap: 25px;
|
||||||
|
|
|
@ -36,55 +36,55 @@ const routes = [
|
||||||
path: '/dashboard',
|
path: '/dashboard',
|
||||||
name: 'DashboardPage',
|
name: 'DashboardPage',
|
||||||
component: DashboardPage,
|
component: DashboardPage,
|
||||||
meta: { requiresAuth: true }
|
meta: { requiresAuth: true , title : 'از این داشبورد، کار با XRoom را آغاز کنید.'}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/dashboard/files',
|
path: '/dashboard/files',
|
||||||
name: 'files',
|
name: 'files',
|
||||||
component: FilesPage,
|
component: FilesPage,
|
||||||
meta: { requiresAuth: true }
|
meta: { requiresAuth: true , title : 'فایل ها'}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/dashboard/download',
|
path: '/dashboard/download',
|
||||||
name: 'download',
|
name: 'download',
|
||||||
component: DownloadPage,
|
component: DownloadPage,
|
||||||
meta: { requiresAuth: true }
|
meta: { requiresAuth: true , title : 'دانلود ها'}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/dashboard/spaces',
|
path: '/dashboard/spaces',
|
||||||
name: 'spaces',
|
name: 'spaces',
|
||||||
component: spacesPage,
|
component: spacesPage,
|
||||||
meta: { requiresAuth: true }
|
meta: { requiresAuth: true , title : 'فضاها'}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/dashboard/meetings',
|
path: '/dashboard/meetings',
|
||||||
name: 'meetings',
|
name: 'meetings',
|
||||||
component: MeetingPage,
|
component: MeetingPage,
|
||||||
meta: { requiresAuth: true }
|
meta: { requiresAuth: true , title : 'جلسات'}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/dashboard/teams',
|
path: '/dashboard/teams',
|
||||||
name: 'teams',
|
name: 'teams',
|
||||||
component: TeamsPage,
|
component: TeamsPage,
|
||||||
meta: { requiresAuth: true }
|
meta: { requiresAuth: true , title : 'تیم ها'}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/dashboard/edit-profile',
|
path: '/dashboard/edit-profile',
|
||||||
name: 'EditProfile',
|
name: 'EditProfile',
|
||||||
component: () => import('@/pages/dashboard/EditProfile.vue'),
|
component: () => import('@/pages/dashboard/EditProfile.vue'),
|
||||||
meta: { requiresAuth: true }
|
meta: { requiresAuth: true , title : 'ویرایش پروفایل'}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/dashboard/readyPlayer',
|
path: '/dashboard/readyPlayer',
|
||||||
name: 'ReadyPlayer',
|
name: 'ReadyPlayer',
|
||||||
component: () => import('@/pages/dashboard/readyPlayer.vue'),
|
component: () => import('@/pages/dashboard/readyPlayer.vue'),
|
||||||
meta: { requiresAuth: true }
|
meta: { requiresAuth: true , title : 'انتخاب آواتار'}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/dashboard/ChangeAvatar',
|
path: '/dashboard/ChangeAvatar',
|
||||||
name: 'ChangeAvatar',
|
name: 'ChangeAvatar',
|
||||||
component: () => import('@/pages/dashboard/ChangeAvatar.vue'),
|
component: () => import('@/pages/dashboard/ChangeAvatar.vue'),
|
||||||
meta: { requiresAuth: true }
|
meta: { requiresAuth: true , title : 'انتخاب آواتار'}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user