@ozdao/prometheus-framework 0.2.317 → 0.2.318
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/products.server.js +4 -0
- package/dist/products.server.mjs +4 -0
- package/dist/prometheus-framework/src/components/Button/Button.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/components/Button/Button.vue2.js +1 -1
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.cjs +0 -93
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.js +1 -94
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.js.map +1 -1
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.cjs +93 -0
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.js +94 -1
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.js.map +1 -1
- package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/Feed/Feed.vue.js +1 -1
- package/dist/prometheus-framework/src/components/LocationMarker/LocationMarker.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/components/LocationMarker/LocationMarker.vue2.js +1 -1
- package/dist/prometheus-framework/src/components/Slider/Slider.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/Slider/Slider.vue.js +1 -1
- package/dist/prometheus-framework/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.cjs +4 -4
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.js +4 -4
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/events/components/sections/Feed.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/Feed.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +4 -4
- package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +4 -4
- package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockFilter.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.cjs +48 -48
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.js +48 -48
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionOverview.vue.cjs +57 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionOverview.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionOverview.vue.js +57 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionOverview.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/landing/landing.client.cjs +2 -0
- package/dist/prometheus-framework/src/modules/landing/landing.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/landing.client.js +6 -4
- package/dist/prometheus-framework/src/modules/landing/landing.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/marketplace/marketplace.client.cjs +13 -0
- package/dist/prometheus-framework/src/modules/marketplace/marketplace.client.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/marketplace.client.js +13 -0
- package/dist/prometheus-framework/src/modules/marketplace/marketplace.client.js.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +179 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +179 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/pages/Catalog.vue.cjs +67 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/pages/Catalog.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/pages/Catalog.vue.js +67 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/pages/Catalog.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs +121 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +121 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/sections/SectionMenu.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/store/marketplace.cjs +57 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/store/marketplace.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/store/marketplace.js +57 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/store/marketplace.js.map +1 -0
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/pages/pages.client.cjs +859 -859
- package/dist/prometheus-framework/src/modules/pages/pages.client.js +859 -859
- package/dist/prometheus-framework/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/Images360.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/Images360.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs +30 -20
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js +33 -23
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductRecommmendation.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/products.client.cjs +3 -19
- package/dist/prometheus-framework/src/modules/products/products.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/products.client.js +26 -42
- package/dist/prometheus-framework/src/modules/products/products.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/store/categories.cjs +3 -0
- package/dist/prometheus-framework/src/modules/products/store/categories.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/store/categories.js +3 -0
- package/dist/prometheus-framework/src/modules/products/store/categories.js.map +1 -1
- package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/Spot.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/Spot.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
- package/package.json +5 -1
- package/src/modules/auth/models/role.model.js +1 -1
- package/src/modules/globals/views/core/event.js +48 -0
- package/src/modules/globals/views/core/module-manager.js +91 -0
- package/src/modules/globals/views/core/module.js +106 -0
- package/src/modules/landing/components/sections/SectionGuide.vue +48 -48
- package/src/modules/landing/components/sections/SectionOverview.vue +40 -0
- package/src/modules/landing/landing.client.js +2 -0
- package/src/modules/marketplace/marketplace.client.js +59 -0
- package/src/modules/{products → marketplace/views}/components/layouts/Marketplace.vue +3 -1
- package/src/modules/{products → marketplace/views}/components/pages/Catalog.vue +4 -3
- package/src/modules/{products/components/sections/MenuSection.vue → marketplace/views/components/sections/SectionMenu.vue} +25 -35
- package/src/modules/{products → marketplace/views}/router/marketplace.router.js +1 -2
- package/src/modules/products/components/pages/CategoryEdit.vue +23 -7
- package/src/modules/products/components/pages/Products.vue +1 -1
- package/src/modules/products/components/sections/FilterProducts.vue +1 -1
- package/src/modules/products/models/category.model.js +5 -0
- package/src/modules/products/products.client.js +0 -16
- package/src/modules/products/store/categories.js +6 -0
- package/src/modules/spots/components/layouts/Spots.vue +1 -4
- package/src/modules/spots/components/pages/Map.vue +1 -1
- package/src/modules/landing/components/sections/SectionsSection.vue +0 -66
- package/src/modules/products/components/sections/Filters.vue +0 -152
- /package/src/modules/{products → marketplace/views}/store/marketplace.js +0 -0
@@ -11,38 +11,33 @@
|
|
11
11
|
|
12
12
|
<ul v-else class="gap-thin grid-container">
|
13
13
|
<router-link :to="getMarketplaceLink([category.url])"
|
14
|
-
v-for="(category,index) in
|
14
|
+
v-for="(category,index) in categoriesRoot.slice(0,5)"
|
15
15
|
:key="category"
|
16
16
|
class="cursor-pointer hover-scale-0 flex-v-center flex-h-center flex-nowrap flex-row flex bg-light radius-big pd-medium grid-item"
|
17
17
|
>
|
18
18
|
|
19
19
|
<video
|
20
|
-
v-if="category.url === 'buds'"
|
20
|
+
v-if="category.url === 'buds' && category.photo"
|
21
21
|
class="w-33 radius-100 o-hidden mn-r-medium"
|
22
22
|
autoplay loop muted
|
23
23
|
>
|
24
24
|
<source
|
25
|
-
:src="
|
25
|
+
:src="category.photo"
|
26
26
|
type="video/webm"
|
27
27
|
>
|
28
28
|
</video>
|
29
29
|
|
30
|
-
<
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
{{category.name}}
|
36
|
-
</h3>
|
30
|
+
<img loading="lazy"
|
31
|
+
v-if="category.url !== 'buds' && category.photo"
|
32
|
+
:src="category.photo"
|
33
|
+
class="i-extra t-transp mn-r-thin"
|
34
|
+
>
|
37
35
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
</div>
|
45
|
-
|
36
|
+
<div class="w-100" :class="{'mn-r-auto':category.url === 'buds'}">
|
37
|
+
<h3 class="t-black capitalize h3">
|
38
|
+
{{category.name}}
|
39
|
+
</h3>
|
40
|
+
|
46
41
|
<p v-if="category.url === 'buds'" class="mn-t-thin mn-b-thin t-transp t-black p-medium">
|
47
42
|
Unveiling the Exceptional User Curated Best Buds
|
48
43
|
</p>
|
@@ -53,7 +48,6 @@
|
|
53
48
|
>
|
54
49
|
<span>Check {{countProduct.count}} products →</span>
|
55
50
|
</button>
|
56
|
-
|
57
51
|
</div>
|
58
52
|
</router-link>
|
59
53
|
|
@@ -65,6 +59,7 @@
|
|
65
59
|
|
66
60
|
<script setup>
|
67
61
|
import { ref, onMounted,computed } from 'vue'
|
62
|
+
|
68
63
|
import Loader from '@pf/src/components/Loader/Loader.vue'
|
69
64
|
|
70
65
|
import { useRouter } from 'vue-router'
|
@@ -74,36 +69,31 @@
|
|
74
69
|
import * as products from '@pf/src/modules/products/store/products';
|
75
70
|
|
76
71
|
const router = useRouter()
|
72
|
+
|
73
|
+
const categoriesRoot = ref(null)
|
77
74
|
|
78
75
|
const text = {
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
ru: {
|
85
|
-
categories: []
|
86
|
-
}
|
76
|
+
en: {
|
77
|
+
categories: []
|
78
|
+
},
|
79
|
+
ru: {
|
80
|
+
categories: []
|
87
81
|
}
|
88
82
|
}
|
89
83
|
|
90
|
-
categories.state.all.forEach( category => {
|
91
|
-
category.localization.forEach( localization => {
|
92
|
-
text.messages[localization.locale].categories.push(localization.text)
|
93
|
-
})
|
94
|
-
})
|
95
84
|
|
96
|
-
const { t
|
85
|
+
const { t } = useI18n({
|
86
|
+
messages: text
|
87
|
+
})
|
97
88
|
|
98
89
|
const countProduct = ref(0)
|
99
90
|
const menu = ref(false)
|
100
91
|
|
101
92
|
onMounted( async () => {
|
102
93
|
countProduct.value = await products.actions.read({count: true})
|
103
|
-
await categories.actions.read()
|
94
|
+
categoriesRoot.value = await categories.actions.read({rootOnly: true})
|
104
95
|
menu.value = true
|
105
96
|
})
|
106
|
-
|
107
97
|
</script>
|
108
98
|
|
109
99
|
<style lang="scss">
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import layoutEmpty from '@pf/src/modules/globals/views/components/layouts/Empty.vue'
|
2
|
+
|
2
3
|
import layoutMarketplace from '../components/layouts/Marketplace.vue'
|
3
4
|
|
4
5
|
const marketplace = {
|
@@ -33,6 +34,4 @@ const marketplace = {
|
|
33
34
|
],
|
34
35
|
}
|
35
36
|
|
36
|
-
|
37
|
-
|
38
37
|
export default marketplace;
|
@@ -18,7 +18,27 @@
|
|
18
18
|
title="Profile"
|
19
19
|
class="mn-b-thin"
|
20
20
|
>
|
21
|
-
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
<div class="mn-b-medium w-100 flex-nowrap gap-thin flex">
|
26
|
+
<UploadImage
|
27
|
+
v-model:photo="categories.state.current.photo"
|
28
|
+
:uploadPath="'categories'"
|
29
|
+
class="w-8r aspect-1x1 o-hidden mn-r-small radius-extra"
|
30
|
+
/>
|
31
|
+
<Field
|
32
|
+
v-model:field="categories.state.current.name"
|
33
|
+
label="Name"
|
34
|
+
placeholder="Enter category name"
|
35
|
+
class="w-100 mn-b-small bg-white radius-small pd-medium"
|
36
|
+
/>
|
37
|
+
</div>
|
38
|
+
|
39
|
+
<div class="mn-b-medium w-100 flex-nowrap gap-thin flex">
|
40
|
+
|
41
|
+
|
22
42
|
<Field
|
23
43
|
v-model:field="categories.state.current.order"
|
24
44
|
label="Order"
|
@@ -33,12 +53,6 @@
|
|
33
53
|
/>
|
34
54
|
|
35
55
|
</div>
|
36
|
-
<Field
|
37
|
-
v-model:field="categories.state.current.name"
|
38
|
-
label="Name"
|
39
|
-
placeholder="Enter category name"
|
40
|
-
class="w-100 mn-b-small bg-white radius-small pd-medium"
|
41
|
-
/>
|
42
56
|
|
43
57
|
<Select
|
44
58
|
v-model:select="categories.state.current.status"
|
@@ -173,9 +187,11 @@
|
|
173
187
|
|
174
188
|
import Button from "@pf/src/components/Button/Button.vue";
|
175
189
|
import Select from "@pf/src/components/Select/Select.vue";
|
190
|
+
import UploadImage from '@pf/src/components/UploadImage/UploadImage.vue';
|
176
191
|
import Field from "@pf/src/components/Field/Field.vue";
|
177
192
|
import Feed from '@pf/src/components/Feed/Feed.vue'
|
178
193
|
|
194
|
+
|
179
195
|
import Block from '@pf/src/components/Block/Block.vue';
|
180
196
|
|
181
197
|
import IconCheckmark from '@pf/src/modules/icons/navigation/IconCheckmark.vue'
|
@@ -124,7 +124,7 @@
|
|
124
124
|
import * as auth from '@pf/src/modules/auth/views/store/auth';
|
125
125
|
import * as globals from '@pf/src/modules/globals/views/store/globals';
|
126
126
|
import * as products from '@pf/src/modules/products/store/products';
|
127
|
-
import * as marketplace from '@pf/src/modules/
|
127
|
+
import * as marketplace from '@pf/src/modules/marketplace/views/store/marketplace';
|
128
128
|
import * as categories from '@pf/src/modules/products/store/categories';
|
129
129
|
|
130
130
|
const route = useRoute()
|
@@ -89,7 +89,7 @@ const route = useRoute()
|
|
89
89
|
const router = useRouter()
|
90
90
|
|
91
91
|
import * as categories from '@pf/src/modules/products/store/categories';
|
92
|
-
import * as marketplace from '@pf/src/modules/
|
92
|
+
import * as marketplace from '@pf/src/modules/marketplace/views/store/marketplace';
|
93
93
|
|
94
94
|
let options = {
|
95
95
|
status: 'published'
|
@@ -1,6 +1,10 @@
|
|
1
1
|
module.exports = (db) => {
|
2
2
|
const CategorySchema = new db.mongoose.Schema({
|
3
3
|
name: { type: String, required: true, trim: true },
|
4
|
+
description: { type: String, trim: true },
|
5
|
+
photo: {
|
6
|
+
type: String
|
7
|
+
},
|
4
8
|
status: {
|
5
9
|
type: String,
|
6
10
|
enum: ['draft','internal','published','removed'],
|
@@ -20,5 +24,6 @@ module.exports = (db) => {
|
|
20
24
|
CategorySchema.index({ 'owner.target': 1, 'creator.target': 1});
|
21
25
|
|
22
26
|
const Category = db.mongoose.model('Category', CategorySchema, 'categories');
|
27
|
+
|
23
28
|
return Category;
|
24
29
|
};
|
@@ -1,15 +1,12 @@
|
|
1
1
|
// Router
|
2
2
|
import { createProductRoutes } from './router/products.router';
|
3
|
-
import routerMarketplace from './router/marketplace.router.js';
|
4
3
|
|
5
4
|
//Store
|
6
5
|
import * as storeCategories from './store/categories.js';
|
7
6
|
import * as storeLeftovers from './store/leftovers.js';
|
8
7
|
import * as storeProducts from './store/products.js';
|
9
|
-
import * as storeMarketplace from './store/marketplace.js';
|
10
8
|
|
11
9
|
// Layouts
|
12
|
-
import Marketplace from './components/layouts/Marketplace.vue';
|
13
10
|
|
14
11
|
// Blocks
|
15
12
|
import ImagesThumbnails from './components/blocks/ImagesThumbnails.vue';
|
@@ -25,11 +22,9 @@ import CardPosition from './components/blocks/CardPosition.vue';
|
|
25
22
|
import SectionProduct from './components/sections/SectionProduct.vue';
|
26
23
|
import HeroRecommendation from './components/sections/HeroRecommendation.vue';
|
27
24
|
import FilterProducts from './components/sections/FilterProducts.vue';
|
28
|
-
import MenuSection from './components/sections/MenuSection.vue';
|
29
25
|
import EditModifications from './components/sections/EditModifications.vue';
|
30
26
|
import PopularProducts from './components/sections/PopularProducts.vue';
|
31
27
|
import EditProductInfo from './components/sections/EditProductInfo.vue';
|
32
|
-
import Filters from './components/sections/Filters.vue';
|
33
28
|
|
34
29
|
// Elements
|
35
30
|
import Price from './components/elements/Price.vue';
|
@@ -42,7 +37,6 @@ import EditLeftover from './components/pages/EditLeftover.vue';
|
|
42
37
|
import ProductRecommendation from './components/pages/ProductRecommmendation.vue';
|
43
38
|
import Products from './components/pages/Products.vue';
|
44
39
|
import Leftovers from './components/pages/Leftovers.vue';
|
45
|
-
import Catalog from './components/pages/Catalog.vue';
|
46
40
|
|
47
41
|
// Пример функции инициализации для модуля продуктов
|
48
42
|
function initializeProducts(app, store, router, options = {}) {
|
@@ -51,12 +45,10 @@ function initializeProducts(app, store, router, options = {}) {
|
|
51
45
|
const routesProducts = createProductRoutes();
|
52
46
|
|
53
47
|
router.addRoute(route, routesProducts);
|
54
|
-
router.addRoute(route, routerMarketplace);
|
55
48
|
|
56
49
|
store.addStore('categories', storeCategories);
|
57
50
|
store.addStore('leftovers', storeLeftovers);
|
58
51
|
store.addStore('products', storeProducts);
|
59
|
-
store.addStore('marketplace', storeMarketplace);
|
60
52
|
}
|
61
53
|
|
62
54
|
const ModuleProducts = {
|
@@ -89,11 +81,9 @@ const ModuleProducts = {
|
|
89
81
|
SectionProduct,
|
90
82
|
HeroRecommendation,
|
91
83
|
FilterProducts,
|
92
|
-
MenuSection,
|
93
84
|
EditModifications,
|
94
85
|
PopularProducts,
|
95
86
|
EditProductInfo,
|
96
|
-
Filters,
|
97
87
|
// Pages
|
98
88
|
Product,
|
99
89
|
ProductEdit,
|
@@ -101,9 +91,7 @@ const ModuleProducts = {
|
|
101
91
|
ProductRecommendation,
|
102
92
|
Products,
|
103
93
|
Leftovers,
|
104
|
-
Catalog,
|
105
94
|
// Layouts
|
106
|
-
Marketplace
|
107
95
|
}
|
108
96
|
}
|
109
97
|
}
|
@@ -122,11 +110,9 @@ export {
|
|
122
110
|
SectionProduct,
|
123
111
|
HeroRecommendation,
|
124
112
|
FilterProducts,
|
125
|
-
MenuSection,
|
126
113
|
EditModifications,
|
127
114
|
PopularProducts,
|
128
115
|
EditProductInfo,
|
129
|
-
Filters,
|
130
116
|
// Elements
|
131
117
|
Price,
|
132
118
|
THC,
|
@@ -137,9 +123,7 @@ export {
|
|
137
123
|
ProductRecommendation,
|
138
124
|
Products,
|
139
125
|
Leftovers,
|
140
|
-
Catalog,
|
141
126
|
// Layouts
|
142
|
-
Marketplace
|
143
127
|
};
|
144
128
|
|
145
129
|
export default ModuleProducts;
|
@@ -7,12 +7,14 @@ import $axios from '@pf/src/modules/globals/views/utils/axios-instance.js';
|
|
7
7
|
// State
|
8
8
|
const state = reactive({
|
9
9
|
all: [],
|
10
|
+
|
10
11
|
filter: {
|
11
12
|
status: null,
|
12
13
|
search: null
|
13
14
|
},
|
14
15
|
current: {
|
15
16
|
order: 1,
|
17
|
+
photo: null,
|
16
18
|
name: "",
|
17
19
|
url: "",
|
18
20
|
status: "draft",
|
@@ -57,6 +59,10 @@ const actions = {
|
|
57
59
|
// Handle both single category and bulk update
|
58
60
|
const isArray = Array.isArray(categories);
|
59
61
|
|
62
|
+
console.log(isArray)
|
63
|
+
|
64
|
+
console.log(isArray ? categories : [categories])
|
65
|
+
|
60
66
|
const response = await $axios.post('/api/categories/update', {
|
61
67
|
categories: isArray ? categories : [categories],
|
62
68
|
});
|
@@ -56,12 +56,9 @@
|
|
56
56
|
import Breadcrumbs from '@pf/src/components/Breadcrumbs/Breadcrumbs.vue'
|
57
57
|
import Dropdown from "@pf/src/components/Dropdown/Dropdown.vue";
|
58
58
|
|
59
|
-
// import Filters from '@pf/src/modules/marketplace/components/sections/Filters.vue'
|
60
|
-
|
61
|
-
|
62
59
|
import * as globals from '@pf/src/modules/globals/views/store/globals';
|
63
60
|
import * as categories from '@pf/src/modules/products/store/categories';
|
64
|
-
import * as marketplace from '@pf/src/modules/
|
61
|
+
import * as marketplace from '@pf/src/modules/marketplace/views/store/marketplace';
|
65
62
|
|
66
63
|
// Accessing router and store
|
67
64
|
const route = useRoute()
|
@@ -25,7 +25,7 @@ import Button from '@pf/src/components/Button/Button.vue'
|
|
25
25
|
import { state, actions } from '@pf/src/modules/organizations/store/organizations'
|
26
26
|
|
27
27
|
import * as globals from '@pf/src/modules/globals/views/store/globals';
|
28
|
-
import * as marketplace from '@pf/src/modules/
|
28
|
+
import * as marketplace from '@pf/src/modules/marketplace/views/store/marketplace';
|
29
29
|
|
30
30
|
const router = useRouter();
|
31
31
|
const route = useRoute();
|
@@ -1,66 +0,0 @@
|
|
1
|
-
<template>
|
2
|
-
<div id="sections" class="pd-thin">
|
3
|
-
<h2 class="mn-auto pd-t-big pd-b-big t-center" v-html="t('title')"/>
|
4
|
-
|
5
|
-
<div class="cols-4 gap-thin">
|
6
|
-
<router-link to="/marketplace" class="t-center cursor-pointer hover-scale-0 transition-ease-in pd-big bg-light t-black radius-big">
|
7
|
-
<img loading="lazy" src="/sections/1.png" alt="" class="w-100 object-fit-cover">
|
8
|
-
<h3 class="mn-b-medium">{{t('section1.title')}}</h3>
|
9
|
-
<p class="t-transp">{{t('section1.text')}}</p>
|
10
|
-
</router-link >
|
11
|
-
|
12
|
-
<router-link to="/spots" class="t-center cursor-pointer hover-scale-0 transition-ease-in pd-big bg-light t-black radius-big">
|
13
|
-
<img loading="lazy" src="/sections/2.png" alt="" class="w-100 object-fit-cover">
|
14
|
-
<h3 class="mn-b-medium">{{t('section2.title')}}</h3>
|
15
|
-
<p class="t-transp">{{t('section2.text')}}</p>
|
16
|
-
</router-link>
|
17
|
-
|
18
|
-
<router-link to="/community" class="t-center cursor-pointer hover-scale-0 transition-ease-in pd-big bg-light t-black radius-big">
|
19
|
-
<img loading="lazy" src="/sections/3.png" alt="" class="w-100 object-fit-cover">
|
20
|
-
<h3 class="mn-b-medium">{{t('section3.title')}}</h3>
|
21
|
-
<p class="t-transp">{{t('section3.text')}}</p>
|
22
|
-
</router-link>
|
23
|
-
|
24
|
-
<router-link to="/governance" class="t-center cursor-pointer hover-scale-0 transition-ease-in pd-big bg-light t-black radius-big">
|
25
|
-
<img loading="lazy" src="/sections/4.png" alt="" class="w-100 object-fit-cover">
|
26
|
-
<h3 class="mn-b-medium">{{t('section4.title')}}</h3>
|
27
|
-
<p class="t-transp">{{t('section4.text')}}</p>
|
28
|
-
</router-link>
|
29
|
-
</div>
|
30
|
-
|
31
|
-
</div>
|
32
|
-
</template>
|
33
|
-
|
34
|
-
<script setup>
|
35
|
-
import { useI18n } from 'vue-i18n'
|
36
|
-
|
37
|
-
const text = {
|
38
|
-
messages: {
|
39
|
-
en: {
|
40
|
-
title: 'Dive Deeper Into <b> Weeder Platform</b>',
|
41
|
-
section1: {
|
42
|
-
title: 'Marketplace',
|
43
|
-
text: 'A simple platform for buying and selling weed, joints, and everything else from seeds to grow boxes'
|
44
|
-
},
|
45
|
-
section2: {
|
46
|
-
title: 'Spots',
|
47
|
-
text: 'Discover the top spots for purchasing or sharing a smoke with like-minded cannabis enthusiasts'
|
48
|
-
},
|
49
|
-
section3: {
|
50
|
-
title: 'Community',
|
51
|
-
text: 'Engage with our community to discuss cannabis news and innovations'
|
52
|
-
},
|
53
|
-
section4: {
|
54
|
-
title: 'Governance',
|
55
|
-
text: 'Join platform stakeholders in governance, playing an active role in molding our collective future'
|
56
|
-
}
|
57
|
-
}
|
58
|
-
}
|
59
|
-
}
|
60
|
-
|
61
|
-
const { t } = useI18n(text)
|
62
|
-
</script>
|
63
|
-
|
64
|
-
<style lang="scss">
|
65
|
-
|
66
|
-
</style>
|
@@ -1,152 +0,0 @@
|
|
1
|
-
<template>
|
2
|
-
<div class="z-index-1 pos-relative radius-big bg-black t-white pd-medium flex-v-center flex-nowrap flex">
|
3
|
-
<div class="mn-r-auto pd-micro gap-micro br-solid br-2px br-white radius-extra flex-nowrap flex"
|
4
|
-
>
|
5
|
-
<Dropdown
|
6
|
-
id="fitlerCategory"
|
7
|
-
:label="t('categoriesTitle')"
|
8
|
-
class="cursor-pointer pd-thin t-semi radius-extra uppercase p-medium"
|
9
|
-
:class="[
|
10
|
-
marketplace.state.filter.categories.length > 0 ? 'bg-white t-black' : ''
|
11
|
-
]"
|
12
|
-
>
|
13
|
-
<div class="w-100 h-100 radius-semi o-hidden bg-black">
|
14
|
-
<Checkbox
|
15
|
-
v-for="(category, index) in categories"
|
16
|
-
:label="category.name"
|
17
|
-
name="categories"
|
18
|
-
:value="category.url"
|
19
|
-
class="cursor-pointer w-100 bg-black t-white radius-small pd-small"
|
20
|
-
:radio="marketplace.state.filter.categories"
|
21
|
-
@update:radio="event => marketplace.state.filter.categories = event"
|
22
|
-
/>
|
23
|
-
</div>
|
24
|
-
</Dropdown>
|
25
|
-
|
26
|
-
<Dropdown
|
27
|
-
id="fitlerPrice"
|
28
|
-
:label="t('filters.price.title')"
|
29
|
-
class="cursor-pointer pd-thin t-semi radius-extra uppercase p-medium"
|
30
|
-
:class="[
|
31
|
-
marketplace.state.filter.prices.length > 0 ? 'bg-white t-black' : ''
|
32
|
-
]"
|
33
|
-
>
|
34
|
-
<div class="w-100 h-100 radius-semi o-hidden bg-black">
|
35
|
-
<Checkbox
|
36
|
-
v-for="(price, index) in prices"
|
37
|
-
:label="price.label"
|
38
|
-
name="prices"
|
39
|
-
:value="price.value"
|
40
|
-
class="cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small"
|
41
|
-
:radio="marketplace.state.filter.prices"
|
42
|
-
@update:radio="event => marketplace.state.filter.prices = event"
|
43
|
-
/>
|
44
|
-
</div>
|
45
|
-
</Dropdown>
|
46
|
-
|
47
|
-
<Dropdown
|
48
|
-
label="Delivery"
|
49
|
-
id="fitlerDelivery"
|
50
|
-
class="cursor-pointer pd-thin t-semi radius-extra uppercase p-medium"
|
51
|
-
:class="[
|
52
|
-
marketplace.state.filter.delivery.length > 0 ? 'bg-white t-black' : ''
|
53
|
-
]"
|
54
|
-
>
|
55
|
-
<div class="w-100 h-100 radius-semi o-hidden bg-black">
|
56
|
-
<Checkbox
|
57
|
-
v-for="(delivery, index) in delivery"
|
58
|
-
:label="delivery.label"
|
59
|
-
name="prices"
|
60
|
-
:value="delivery.value"
|
61
|
-
class="cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small"
|
62
|
-
:radio="marketplace.state.filter.delivery"
|
63
|
-
@update:radio="event => marketplace.state.filter.delivery = event"
|
64
|
-
/>
|
65
|
-
</div>
|
66
|
-
</Dropdown>
|
67
|
-
</div>
|
68
|
-
</div>
|
69
|
-
|
70
|
-
</template>
|
71
|
-
|
72
|
-
<script setup>
|
73
|
-
import { computed, onMounted, ref } from 'vue'
|
74
|
-
|
75
|
-
import Checkbox from "@pf/src/components/Checkbox/Checkbox.vue";
|
76
|
-
import Radio from "@pf/src/components/Radio/Radio.vue";
|
77
|
-
import Select from "@pf/src/components/Select/Select.vue";
|
78
|
-
import Dropdown from "@pf/src/components/Dropdown/Dropdown.vue";
|
79
|
-
|
80
|
-
import { useI18n } from 'vue-i18n'
|
81
|
-
|
82
|
-
import * as marketplace from '@pf/src/modules/products/store/marketplace';
|
83
|
-
import * as categories from '@pf/src/modules/products/store/categories';
|
84
|
-
|
85
|
-
const delivery = [
|
86
|
-
{ label: 'Pickup', value: 'pickup' },
|
87
|
-
{ label: 'Courier', value: 'courier' },
|
88
|
-
{ label: 'Post', value: 'post' }
|
89
|
-
]
|
90
|
-
|
91
|
-
const prices = [
|
92
|
-
{ label: 'Under 300฿', value: '<300' },
|
93
|
-
{ label: '300฿ to 600฿', value: '300-600' },
|
94
|
-
{ label: '600฿ to 1200฿', value: '600-1200' },
|
95
|
-
{ label: '$1200 and above', value: '>1200' }
|
96
|
-
]
|
97
|
-
|
98
|
-
const text = {
|
99
|
-
locale: 'en',
|
100
|
-
messages: {
|
101
|
-
en: {
|
102
|
-
categoriesTitle: 'Category',
|
103
|
-
categories: [],
|
104
|
-
sort: {
|
105
|
-
price: 'By price',
|
106
|
-
newest: 'By newest',
|
107
|
-
popularity: 'By popularity'
|
108
|
-
},
|
109
|
-
filters: {
|
110
|
-
title: 'Filters',
|
111
|
-
price: {
|
112
|
-
title: 'Price',
|
113
|
-
from: 'From',
|
114
|
-
to: 'To'
|
115
|
-
},
|
116
|
-
filters: [],
|
117
|
-
reset: 'Reset Filters'
|
118
|
-
}
|
119
|
-
},
|
120
|
-
ru: {
|
121
|
-
categoriesTitle: 'Категория',
|
122
|
-
sort: {
|
123
|
-
price: 'По цене',
|
124
|
-
newest: 'По новизне',
|
125
|
-
popularity: 'По популярности'
|
126
|
-
},
|
127
|
-
filters: {
|
128
|
-
title: 'Фильтры',
|
129
|
-
price: {
|
130
|
-
title: 'Цена',
|
131
|
-
from: 'От',
|
132
|
-
to: 'До'
|
133
|
-
},
|
134
|
-
filters: [],
|
135
|
-
reset: 'Сбросить фильтры',
|
136
|
-
}
|
137
|
-
}
|
138
|
-
}
|
139
|
-
}
|
140
|
-
|
141
|
-
const { t } = useI18n(text)
|
142
|
-
|
143
|
-
onMounted(async () => {
|
144
|
-
let options = {
|
145
|
-
status: 'published'
|
146
|
-
}
|
147
|
-
|
148
|
-
await categories.actions.read(options)
|
149
|
-
})
|
150
|
-
|
151
|
-
|
152
|
-
</script>
|
File without changes
|