bx-1379-redesign #15
|
@ -47,6 +47,7 @@ class Element3D(models.Model):
|
|||
|
||||
class Scene3D(models.Model):
|
||||
name = models.CharField(max_length=120)
|
||||
description = models.TextField(blank=True, null=True)
|
||||
elements = models.ManyToManyField(Element3D)
|
||||
env = models.ForeignKey(Environment, models.RESTRICT, blank=True, null=True)
|
||||
|
||||
|
@ -73,33 +74,33 @@ def maximum_size_validator(image):
|
|||
|
||||
|
||||
class ClickableArea(models.Model):
|
||||
name = models.CharField("название", max_length=255)
|
||||
description = models.TextField("описание")
|
||||
object_name = models.CharField("название объекта", max_length=255)
|
||||
target_name = models.CharField(
|
||||
max_length=200,
|
||||
blank=True,
|
||||
null=True,
|
||||
name = models.CharField(
|
||||
"Название",
|
||||
max_length=255,
|
||||
help_text="Название кликабельной области",
|
||||
)
|
||||
description = models.TextField(
|
||||
"Описание",
|
||||
help_text="Описание кликабельной области",
|
||||
)
|
||||
|
||||
target = models.ForeignKey(
|
||||
Scene3D,
|
||||
on_delete=models.PROTECT,
|
||||
related_name="clickable_areas",
|
||||
blank=True,
|
||||
null=True,
|
||||
help_text="На какую сцену ведет клик",
|
||||
)
|
||||
source = models.ForeignKey(
|
||||
Element3D,
|
||||
on_delete=models.PROTECT,
|
||||
help_text="В каком элементе искать object_name",
|
||||
)
|
||||
image = models.ImageField(
|
||||
"Картинка",
|
||||
upload_to=group_based_upload_to,
|
||||
validators=[
|
||||
maximum_size_validator,
|
||||
],
|
||||
blank=True,
|
||||
null=True,
|
||||
object_name = models.CharField(
|
||||
"Название объекта",
|
||||
max_length=255,
|
||||
help_text="Имя mesh или group в элементе 3D",
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
|
|
|
@ -23,21 +23,9 @@ console.log(router)
|
|||
<i-mdi:video-3d />
|
||||
</RouterLink>
|
||||
</span>
|
||||
<span class="nav-icon" style="font-size: 1.375rem;" v-if="false">
|
||||
<i-mdi:vector-arrange-below />
|
||||
</span>
|
||||
</div>
|
||||
<div class="nav-group">
|
||||
<span class="nav-icon" :class="[{ disabled: router.options.history.state.back == null }]">
|
||||
<RouterLink :to="(router.options.history.state.back as string) ?? '/'"
|
||||
@click.native.prevent="router.back">
|
||||
<i-mdi:arrow-left />
|
||||
</RouterLink>
|
||||
</span>
|
||||
<span class="nav-icon" :class="[{ disabled: router.options.history.state.forward == null }]">
|
||||
<RouterLink :to="(router.options.history.state.forward as string) ?? '/'"
|
||||
@click.native.prevent="router.forward">
|
||||
<i-mdi:arrow-right />
|
||||
<span class="nav-icon" style="font-size: 1.375rem;">
|
||||
<RouterLink :to="`/${page.slug}/gallery`">
|
||||
<i-mdi:vector-arrange-below />
|
||||
</RouterLink>
|
||||
</span>
|
||||
</div>
|
||||
|
|
|
@ -53,13 +53,11 @@ interface clickableAreaType {
|
|||
image?: string;
|
||||
source: number;
|
||||
target: number;
|
||||
target_name?: string
|
||||
}
|
||||
interface PromoSidebarData {
|
||||
title?: string
|
||||
description?: string
|
||||
target?: string
|
||||
target_name?: string
|
||||
}
|
||||
interface PromoSidebar extends PromoSidebarData {
|
||||
id_clickable?: number
|
||||
|
|
|
@ -10,7 +10,7 @@ import PromoMain from './components/Promo/main.vue'
|
|||
|
||||
const routes = [
|
||||
{ path: '/', component: Promo, name: 'home_no' },
|
||||
{ path: '/:item', component: Promo, name: 'home' },
|
||||
{ path: '/:item/gallery', component: Promo, name: 'gallery' },
|
||||
{ path: '/:item/:target', component: PromoMain, name: 'scene' },
|
||||
]
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@ export const usePromoSidebar = defineStore('promo_sidebar', {
|
|||
title: undefined,
|
||||
description: undefined,
|
||||
target: undefined,
|
||||
target_name: undefined,
|
||||
loading: true,
|
||||
is_open: false,
|
||||
accordions: [],
|
||||
|
@ -28,7 +27,6 @@ export const usePromoSidebar = defineStore('promo_sidebar', {
|
|||
} as PromoSidebarData
|
||||
if (target?.target) {
|
||||
sidebar_data.target = target.target.toString()
|
||||
sidebar_data.target_name = target.target_name
|
||||
}
|
||||
this.accordions.push('desc')
|
||||
this.setData(sidebar_data)
|
||||
|
|
Loading…
Reference in New Issue