@ozdao/prometheus-framework 0.2.30 → 0.2.31
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/addMembersQuantity-3505b6f3.mjs +98 -0
- package/dist/addMembersQuantity-fb552ca0.js +97 -0
- package/dist/auth.server.js +6 -9
- package/dist/auth.server.mjs +6 -9
- package/dist/community.server.js +28 -21
- package/dist/community.server.mjs +28 -21
- package/dist/events.server.js +1 -1
- package/dist/events.server.mjs +1 -1
- package/dist/files.server.js +114 -111
- package/dist/files.server.mjs +114 -111
- package/dist/gallery.server.js +3 -3
- package/dist/gallery.server.mjs +3 -3
- package/dist/globals.server.js +1 -1
- package/dist/globals.server.mjs +1 -1
- package/dist/index-a8dffc0c.js +213 -0
- package/dist/index-d769324d.mjs +214 -0
- package/dist/mailing-37c2ba41.mjs +68 -0
- package/dist/mailing-fe16a26a.js +67 -0
- package/dist/main.css +1 -1
- package/dist/middlewares.server.js +1 -1
- package/dist/middlewares.server.mjs +1 -1
- package/dist/organizations.server.js +125 -25
- package/dist/organizations.server.mjs +125 -25
- package/dist/prometheus-framework.cjs.js +30 -29
- package/dist/prometheus-framework.es.js +2478 -2282
- package/dist/reports.server.js +1 -1
- package/dist/reports.server.mjs +1 -1
- package/dist/users.server.js +1 -1
- package/dist/users.server.mjs +1 -1
- package/package.json +4 -2
- package/src/assets/images/logo.svg +7 -7
- package/src/components/Block/Block.vue +77 -0
- package/src/components/Breadcrumbs/Breadcrumbs.vue +2 -2
- package/src/components/Button/Button.vue +32 -227
- package/src/components/Checkbox/Checkbox.vue +1 -1
- package/src/components/Chips/Chips.vue +8 -8
- package/src/components/DatePicker/DatePicker.vue +3 -4
- package/src/components/EditImages/EditImages.vue +32 -14
- package/src/{modules/globals/components/sections → components/Feed}/Feed.vue +60 -45
- package/src/components/FieldBig/FieldBig.vue +16 -5
- package/src/components/FieldPhone/FieldPhone.vue +2 -1
- package/src/components/Footer/Footer.vue +36 -27
- package/src/components/Header/Header.vue +161 -166
- package/src/components/Loader/Loader.vue +9 -2
- package/src/components/LocationMarker/LocationMarker.vue +38 -12
- package/src/components/LocationSelection/LocationSelection.vue +67 -75
- package/src/components/Magnifier/Magnifier.vue +3 -3
- package/src/components/Navigation/Navigation.vue +16 -16
- package/src/components/Popup/Popup.vue +8 -6
- package/src/components/Select/Select.vue +35 -6
- package/src/components/SelectMulti/SelectMulti.vue +5 -13
- package/src/components/Shader/Shader.vue +128 -0
- package/src/components/Sidebar/Sidebar.vue +71 -35
- package/src/components/Spoiler/Spoiler.vue +1 -1
- package/src/components/Tab/Tab.vue +1 -1
- package/src/components/Tooltip/Tooltip.vue +1 -1
- package/src/components/UploadImage/UploadImage.vue +4 -4
- package/src/components/UploadImageMultiple/UploadImageMultiple.vue +54 -10
- package/src/modules/applications/controllers/applications.controller.js +0 -1
- package/src/modules/auth/components/pages/EnterCode.vue +1 -1
- package/src/modules/auth/components/pages/EnterPassword.vue +3 -3
- package/src/modules/auth/components/pages/ResetPassword.vue +1 -2
- package/src/modules/auth/components/pages/SignIn.vue +26 -10
- package/src/modules/auth/components/pages/SignUp.vue +1 -2
- package/src/modules/auth/controllers/twofa.controller.js +4 -4
- package/src/modules/auth/localization/EnterCode.json +2 -2
- package/src/modules/auth/localization/EnterPassword.json +2 -2
- package/src/modules/auth/localization/ResetPassword.json +2 -2
- package/src/modules/auth/localization/SignIn.json +3 -3
- package/src/modules/auth/localization/SignUp.json +3 -3
- package/src/modules/auth/utils/server/verifyAppleIdToken.js +0 -1
- package/src/modules/backoffice/components/layouts/Backoffice.vue +1 -1
- package/src/modules/backoffice/components/pages/Dashboard.vue +171 -120
- package/src/modules/backoffice/router/backoffice.js +119 -129
- package/src/modules/chats/components/blocks/ChatMessage.vue +25 -0
- package/src/modules/chats/components/pages/ChatPage.vue +50 -0
- package/src/modules/chats/components/sections/ChatWindow.vue +38 -0
- package/src/modules/chats/controllers/chats.controller.js +32 -0
- package/src/modules/chats/models/chat.model.js +26 -0
- package/src/modules/chats/routes/chats.routes.js +53 -0
- package/src/modules/chats/store/chat.store.js +61 -0
- package/src/modules/community/components/blocks/CardBlogpost.vue +19 -4
- package/src/modules/community/components/layouts/Community.vue +96 -39
- package/src/modules/community/components/pages/Blog.vue +4 -3
- package/src/modules/community/components/pages/BlogPost.vue +10 -1
- package/src/modules/community/components/pages/CreateBlogPost.vue +36 -17
- package/src/modules/community/components/sections/HotPosts.vue +3 -3
- package/src/modules/community/components/sections/JoinUs.vue +19 -13
- package/src/modules/community/controllers/blog.controller.js +3 -4
- package/src/modules/community/controllers/utils/queryProcessor.js +16 -17
- package/src/modules/community/models/blogpost.model.js +6 -3
- package/src/modules/community/store/blogposts.js +1 -0
- package/src/modules/constructor/components/elements/Embed.vue +12 -1
- package/src/modules/constructor/components/elements/ImageUpload.vue +2 -2
- package/src/modules/constructor/components/elements/Textarea.vue +6 -1
- package/src/modules/constructor/components/elements/Video.vue +79 -0
- package/src/modules/constructor/components/elements/VideoPlayer.vue +59 -0
- package/src/modules/constructor/components/elements/Youtube.vue +52 -0
- package/src/modules/constructor/components/sections/Constructor.vue +27 -3
- package/src/modules/events/components/layouts/layoutEvents.vue +7 -28
- package/src/modules/files/controllers/files.controller.js +9 -22
- package/src/modules/files/middlewares/server/index.js +2 -2
- package/src/modules/files/middlewares/server/middlewareBusboy.js +137 -0
- package/src/modules/files/routes/files.routes.js +9 -9
- package/src/modules/globals/localization/vue-i18n.js +8 -1
- package/src/modules/globals/mixins/mixins.js +23 -13
- package/src/modules/globals/router/routerGuards.js +2 -2
- package/src/modules/globals/store/globals.js +86 -9
- package/src/modules/globals/utils/mailing.js +24 -3
- package/src/modules/icons/entities/IconCommunity.vue +4 -4
- package/src/modules/icons/entities/IconEvents.vue +1 -1
- package/src/modules/icons/entities/IconGroups.vue +1 -1
- package/src/modules/icons/entities/IconPrice.vue +5 -0
- package/src/modules/icons/entities/IconProfile.vue +5 -0
- package/src/modules/icons/entities/IconShopcart.vue +5 -0
- package/src/modules/icons/entities/IconTime.vue +5 -0
- package/src/modules/icons/icons.client.js +4 -0
- package/src/modules/icons/labels/LabelAppStore.vue +24 -24
- package/src/modules/icons/labels/LabelGooglePlay.vue +9 -9
- package/src/modules/icons/logos/Logotype.vue +20 -0
- package/src/modules/icons/navigation/IconAdd.vue +17 -0
- package/src/modules/icons/navigation/IconChevronBottom.vue +18 -0
- package/src/modules/icons/navigation/IconChevronRight.vue +3 -3
- package/src/modules/icons/navigation/IconDelete.vue +19 -0
- package/src/modules/icons/navigation/IconMinus.vue +15 -0
- package/src/modules/icons/navigation/IconSearch.vue +17 -0
- package/src/modules/icons/navigation/IconUpload.vue +16 -0
- package/src/modules/icons/placeholders/PlaceholderImage.vue +5 -0
- package/src/modules/icons/placeholders/PlaceholderOrganizationPic.vue +20 -0
- package/src/modules/icons/placeholders/PlaceholderUserpic.vue +4 -18
- package/src/modules/icons/socials/instagram.vue +1 -1
- package/src/modules/icons/socials/line.vue +1 -1
- package/src/modules/icons/socials/reddit.vue +1 -1
- package/src/modules/icons/socials/telegram.vue +1 -1
- package/src/modules/icons/socials/twitter.vue +1 -1
- package/src/modules/icons/socials/youtube.vue +1 -1
- package/src/modules/landing/components/sections/Guide.vue +92 -0
- package/src/modules/landing/components/sections/MobileApp.vue +23 -12
- package/src/modules/marketplace/components/layouts/Marketplace.vue +76 -188
- package/src/modules/marketplace/components/pages/Catalog.vue +65 -119
- package/src/modules/marketplace/components/sections/Filters.vue +195 -0
- package/src/modules/marketplace/store/marketplace.js +2 -2
- package/src/modules/middlewares/client/auth.validation.js +0 -6
- package/src/modules/middlewares/client/states.validation.js +2 -8
- package/src/modules/middlewares/server/authJwt.js +1 -1
- package/src/modules/mobile/components/Menu/MenuItem.vue +3 -6
- package/src/modules/openai/controllers/openai.controller.js +0 -1
- package/src/modules/orders/components/blocks/CardOrder.vue +166 -0
- package/src/modules/orders/components/blocks/CardOrderItem.vue +59 -66
- package/src/modules/orders/components/blocks/Positions.vue +4 -4
- package/src/modules/orders/components/pages/EditOrder.vue +78 -142
- package/src/modules/orders/components/pages/FormOrder.vue +192 -0
- package/src/modules/orders/components/pages/Order.vue +326 -120
- package/src/modules/orders/components/pages/Orders.vue +13 -9
- package/src/modules/orders/components/pages/{ViewOrder.vue → Orders_refact.vue} +13 -10
- package/src/modules/orders/components/partials/ShopCart.vue +22 -13
- package/src/modules/orders/components/sections/EmptyState.vue +1 -1
- package/src/modules/orders/components/sections/{Form.vue → FormOrderDetails.vue} +38 -106
- package/src/modules/orders/controllers/orders.controller.js +37 -28
- package/src/modules/orders/models/order.model.js +39 -9
- package/src/modules/orders/router/orders.router.js +23 -2
- package/src/modules/orders/routes/orders.routes.js +14 -17
- package/src/modules/orders/store/orders.js +24 -9
- package/src/modules/orders/store/shopcart.js +20 -19
- package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -1
- package/src/modules/organizations/components/blocks/CardOrganization.vue +98 -46
- package/src/modules/organizations/components/blocks/Rating.vue +1 -1
- package/src/modules/organizations/components/blocks/Socials.vue +11 -3
- package/src/modules/organizations/components/elements/ButtonToggleMembership.vue +1 -1
- package/src/modules/organizations/components/pages/Department.vue +1 -1
- package/src/modules/organizations/components/pages/DepartmentEdit.vue +4 -4
- package/src/modules/organizations/components/pages/Members.vue +6 -4
- package/src/modules/organizations/components/pages/Organization.vue +120 -49
- package/src/modules/organizations/components/pages/OrganizationEdit.vue +8 -1
- package/src/modules/organizations/components/pages/Organizations.vue +27 -6
- package/src/modules/organizations/components/sections/DetailsTab.vue +11 -9
- package/src/modules/organizations/components/sections/Feed.vue +0 -3
- package/src/modules/organizations/components/sections/FeedDepartments.vue +2 -2
- package/src/modules/organizations/controllers/organizations.controller.js +126 -15
- package/src/modules/organizations/controllers/utils/addMembersQuantity.js +19 -9
- package/src/modules/organizations/models/organization.model.js +5 -2
- package/src/modules/organizations/router/members.router.js +1 -3
- package/src/modules/organizations/router/organizations.js +8 -6
- package/src/modules/organizations/router/products.router.js +36 -2
- package/src/modules/organizations/store/organizations.js +38 -84
- package/src/modules/pages/controllers/pages.controller.js +0 -4
- package/src/modules/payments/controller/payments.controller.js +1 -1
- package/src/modules/products/components/blocks/CardLeftover.vue +17 -22
- package/src/modules/products/components/blocks/CardPosition.vue +96 -49
- package/src/modules/products/components/blocks/CardProduct.vue +24 -53
- package/src/modules/products/components/blocks/Images360.vue +4 -4
- package/src/modules/products/components/blocks/ImagesThumbnails.vue +2 -7
- package/src/modules/products/components/blocks/ListPositions.vue +74 -0
- package/src/modules/products/components/elements/Price.vue +11 -5
- package/src/modules/products/components/elements/THC.vue +6 -6
- package/src/modules/products/components/pages/{LeftoverAdd.vue → EditLeftover.vue} +93 -79
- package/src/modules/products/components/pages/Leftovers.vue +74 -70
- package/src/modules/products/components/pages/Product.vue +4 -7
- package/src/modules/products/components/pages/ProductEdit.vue +230 -88
- package/src/modules/products/components/pages/ProductRecommmendation.vue +1 -1
- package/src/modules/products/components/pages/Products.vue +6 -3
- package/src/modules/products/components/pages/ProductsBackoffice.vue +3 -5
- package/src/modules/products/components/sections/EditModifications.vue +3 -3
- package/src/modules/products/components/sections/EditProductInfo.vue +40 -50
- package/src/modules/products/components/sections/FilterProducts.vue +57 -18
- package/src/modules/products/components/sections/HeroRecommendation.vue +233 -99
- package/src/modules/products/components/sections/MenuSection.vue +127 -0
- package/src/modules/products/components/sections/PopularProducts.vue +81 -37
- package/src/modules/products/components/sections/SectionProduct.vue +21 -23
- package/src/modules/products/controllers/leftovers.controller.js +11 -1
- package/src/modules/products/controllers/products.controller.js +100 -97
- package/src/modules/products/models/leftover.model.js +6 -4
- package/src/modules/products/models/product.model.js +13 -1
- package/src/modules/products/routes/products.routes.js +4 -4
- package/src/modules/products/store/leftovers.js +4 -24
- package/src/modules/products/store/products.js +44 -30
- package/src/modules/spots/components/blocks/CardSpot.vue +43 -72
- package/src/modules/spots/components/layouts/Spots.vue +9 -91
- package/src/modules/spots/components/pages/Map.vue +171 -62
- package/src/modules/spots/components/pages/Spot.vue +1 -1
- package/src/modules/spots/components/pages/SpotEdit.vue +131 -174
- package/src/modules/spots/controllers/spots.controller.js +1 -0
- package/src/modules/spots/models/spot.model.js +6 -3
- package/src/modules/spots/store/spots.js +42 -48
- package/src/modules/users/components/pages/Profile.vue +6 -28
- package/src/modules/users/components/pages/ProfileBlogposts.vue +1 -1
- package/src/modules/users/components/pages/ProfileEdit.vue +1 -1
- package/src/modules/users/components/pages/ProfileEvents.vue +1 -1
- package/src/modules/users/components/pages/ProfileOrganizations.vue +1 -1
- package/src/modules/users/router/users.js +1 -1
- package/src/modules/wallet/components/pages/Wallet.vue +105 -109
- package/src/modules/wallet/controllers/crypto.controller.js +129 -0
- package/src/modules/wallet/models/reward.model.js +53 -0
- package/src/modules/wallet/routes/crypto.routes.js +36 -0
- package/src/modules/wallet/store/wallet.js +52 -49
- package/src/styles/base/all.scss +143 -11
- package/src/styles/base/backgrounds.scss +2 -34
- package/src/styles/base/borders.scss +18 -23
- package/src/styles/base/scrolling.scss +97 -29
- package/src/styles/base/{shadows.scss → shadow_transitions_hover_refactor.scss} +55 -2
- package/src/styles/config.scss +69 -17
- package/src/styles/layout.scss +12 -182
- package/src/styles/reset.scss +20 -21
- package/src/styles/responsive.scss +4 -67
- package/src/styles/theme.scss +3 -4
- package/src/styles/typography.scss +15 -17
- package/src/assets/fonts/AvenirNext-Bold.woff2 +0 -0
- package/src/assets/fonts/AvenirNext-DemiBold.woff2 +0 -0
- package/src/assets/fonts/AvenirNext-Heavy.woff2 +0 -0
- package/src/assets/fonts/AvenirNext-Medium.woff2 +0 -0
- package/src/assets/fonts/AvenirNext-Regular.woff2 +0 -0
- package/src/assets/fonts/AvenirNext-UltraLight.woff2 +0 -0
- package/src/modules/files/middlewares/server/md.js +0 -152
- package/src/modules/files/middlewares/server/middlewareMulter.js +0 -121
- package/src/modules/organizations/controllers/organizations.new.controller.js +0 -372
- package/src/modules/products/components/blocks/EditCategories.vue +0 -68
- package/src/modules/products/components/sections/EditParameters.vue +0 -58
- package/src/modules/products/components/sections/EditProductImages.vue +0 -67
- package/src/modules/spots/components/sections/Feed.vue +0 -64
- package/src/styles/base/border-radius.scss +0 -47
- package/src/styles/base/cursors.scss +0 -23
- package/src/styles/base/height.scss +0 -60
- package/src/styles/base/hovers.scss +0 -110
- package/src/styles/base/positions.scss +0 -192
- package/src/styles/base/transitions.scss +0 -137
- package/src/styles/base/width.scss +0 -2
- package/src/styles/components/block.scss +0 -18
- package/src/styles/components/breadcrumbs.scss +0 -0
- package/src/styles/components/input.scss +0 -319
@@ -1,14 +1,30 @@
|
|
1
1
|
<template>
|
2
|
-
<div
|
2
|
+
<div class="h-100 w-100 pos-relative">
|
3
|
+
<div class="pos-absolute z-index-1 w-100 pd-thin">
|
4
|
+
<Button
|
5
|
+
:submit="searchInCurrentLocation"
|
6
|
+
class="pos-l-5 pos-r-5 bg-black t-white w-100 button"
|
7
|
+
>
|
8
|
+
Search in This Location
|
9
|
+
</Button>
|
10
|
+
</div>
|
11
|
+
|
12
|
+
|
13
|
+
<div id="map" class="h-100 w-100 pos-relative radius-big o-hidden">
|
14
|
+
</div>
|
15
|
+
</div>
|
3
16
|
</template>
|
4
17
|
|
5
18
|
<script setup>
|
6
19
|
import { onMounted, watch, ref } from 'vue';
|
7
20
|
import { useRoute, useRouter } from 'vue-router'
|
8
21
|
|
22
|
+
import Button from '@pf/src/components/Button/Button.vue'
|
23
|
+
|
9
24
|
import { state, actions } from '@pf/src/modules/organizations/store/organizations'
|
10
25
|
|
11
26
|
import * as globals from '@pf/src/modules/globals/store/globals';
|
27
|
+
import * as marketplace from '@pf/src/modules/marketplace/store/marketplace';
|
12
28
|
|
13
29
|
let map = ref(null);
|
14
30
|
let markers = ref([]);
|
@@ -23,27 +39,86 @@ const props = defineProps({
|
|
23
39
|
localPosition: Object
|
24
40
|
});
|
25
41
|
|
42
|
+
let currentMapCenter = ref({lat: 0, lng: 0});
|
43
|
+
|
44
|
+
async function getCountry() {
|
45
|
+
try {
|
46
|
+
const response = await fetch('https://ip2c.org/s');
|
47
|
+
const result = await response.text();
|
48
|
+
|
49
|
+
if (!result || result[0] !== '1') {
|
50
|
+
throw new Error('Unable to fetch the country');
|
51
|
+
}
|
52
|
+
|
53
|
+
// Разделение строки и извлечение кода страны
|
54
|
+
const parts = result.split(';');
|
55
|
+
if (parts.length < 4) {
|
56
|
+
throw new Error('Invalid response format');
|
57
|
+
}
|
58
|
+
|
59
|
+
console.log(parts[3])
|
60
|
+
|
61
|
+
return parts[3]; // Возвращает двухбуквенный код страны
|
62
|
+
} catch (error) {
|
63
|
+
console.error(error);
|
64
|
+
throw error;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
|
68
|
+
|
26
69
|
onMounted(async () => {
|
27
|
-
let lat = parseFloat(route.query.lat || globals.state.position
|
28
|
-
let lng = parseFloat(route.query.lng || globals.state.position
|
70
|
+
let lat = parseFloat(route.query.lat || globals.state.position?.location?.lat);
|
71
|
+
let lng = parseFloat(route.query.lng || globals.state.position?.location?.lng);
|
29
72
|
|
30
73
|
let zoomLevel;
|
31
74
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
75
|
+
// Определите уровень зума в зависимости от доступной информации
|
76
|
+
if (route.params.location || globals.state.position?.location) {
|
77
|
+
zoomLevel = 12;
|
78
|
+
} else if (route.params.country || globals.state.position?.country) {
|
79
|
+
zoomLevel = 9;
|
80
|
+
} else if (route.params.state || globals.state.position?.state) {
|
81
|
+
zoomLevel = 6;
|
82
|
+
} else if (route.params.city || globals.state.position?.city) {
|
83
|
+
zoomLevel = 4;
|
84
|
+
} else {
|
85
|
+
zoomLevel = 2;
|
86
|
+
}
|
87
|
+
|
88
|
+
// Если координаты не заданы, попробуйте их получить
|
89
|
+
if (!lat || !lng) {
|
90
|
+
let country
|
91
|
+
|
92
|
+
const geocoder = new google.maps.Geocoder();
|
93
|
+
|
94
|
+
try {
|
95
|
+
country = await getCountry();
|
96
|
+
} catch {
|
97
|
+
country = 'Thailand'
|
98
|
+
console.log(error)
|
42
99
|
}
|
100
|
+
|
101
|
+
try {
|
102
|
+
const results = await geocoder.geocode({ 'address': country })
|
103
|
+
|
104
|
+
console.log(results);
|
105
|
+
|
106
|
+
if (results) {
|
107
|
+
lat = results.results[0].geometry.location.lat();
|
108
|
+
lng = results.results[0].geometry.location.lng();
|
109
|
+
zoomLevel = 6;
|
110
|
+
} else {
|
111
|
+
console.error('No results found for the country code.');
|
112
|
+
}
|
113
|
+
} catch (error) {
|
114
|
+
console.error('Error getting coordinates from country code:', error);
|
115
|
+
}
|
116
|
+
}
|
43
117
|
|
44
118
|
// If there's no lat/lng in the query, try to use country/state/city to get the lat/lng
|
45
119
|
if (!lat && !lng && (route.params.country || route.params.state || route.params.city)) {
|
46
120
|
const geocoder = new google.maps.Geocoder();
|
121
|
+
|
47
122
|
const address = [
|
48
123
|
route.params.city,
|
49
124
|
route.params.state,
|
@@ -52,10 +127,12 @@ onMounted(async () => {
|
|
52
127
|
|
53
128
|
try {
|
54
129
|
const results = await geocoder.geocode({ address });
|
130
|
+
|
55
131
|
if (results[0]) {
|
56
132
|
lat = results[0].geometry.location.lat();
|
57
133
|
lng = results[0].geometry.location.lng();
|
58
134
|
}
|
135
|
+
|
59
136
|
} catch (error) {
|
60
137
|
console.error('Error getting coordinates:', error);
|
61
138
|
}
|
@@ -64,7 +141,8 @@ onMounted(async () => {
|
|
64
141
|
map.value = new google.maps.Map(document.getElementById('map'), {
|
65
142
|
mapTypeControl: false,
|
66
143
|
fullscreenControl: false,
|
67
|
-
styles: [
|
144
|
+
styles: [
|
145
|
+
{
|
68
146
|
"elementType": "geometry",
|
69
147
|
"stylers": [
|
70
148
|
{
|
@@ -342,25 +420,37 @@ onMounted(async () => {
|
|
342
420
|
// categories: route.query.categories,
|
343
421
|
// prices: route.query.prices,
|
344
422
|
// delivery: route.query.delivery,
|
423
|
+
country: route.params.country,
|
424
|
+
state: route.params.state,
|
425
|
+
city: route.params.city,
|
426
|
+
categories: route.query.categories,
|
427
|
+
prices: route.query.prices,
|
428
|
+
delivery: route.query.delivery,
|
429
|
+
sortParam: route.query.sortParam || marketplace.state.sort.param,
|
430
|
+
sortOrder: route.query.sortOrder || marketplace.state.sort.order,
|
345
431
|
skip: skip.value,
|
346
|
-
limit:
|
347
|
-
location: {
|
348
|
-
|
349
|
-
coordinates: [lng, lat] // note that it's longitude first, then latitude
|
350
|
-
}
|
432
|
+
limit: 100,
|
433
|
+
location: {coordinates: [lng,lat] },
|
434
|
+
locationRadius: 500,
|
351
435
|
};
|
352
436
|
|
437
|
+
console.log(params)
|
438
|
+
|
353
439
|
const data = await actions.read(params);
|
440
|
+
|
354
441
|
state.all = [...state.all, ...data];
|
355
442
|
|
356
443
|
for (let marker of markers.value) {
|
357
444
|
marker.setMap(null);
|
358
445
|
}
|
359
446
|
|
447
|
+
markers.value = [];
|
448
|
+
|
360
449
|
// Add new markers
|
361
450
|
markers.value = data.map(org => {
|
362
451
|
// Get the first spot's location
|
363
452
|
let location = org.spots[0]?.location;
|
453
|
+
|
364
454
|
if (location && location.type === 'Point') {
|
365
455
|
let [lng, lat] = location.coordinates; // Note that coordinates are in [lng, lat] format
|
366
456
|
|
@@ -391,52 +481,71 @@ onMounted(async () => {
|
|
391
481
|
return null;
|
392
482
|
}).filter(marker => marker !== null); // Remove null markers
|
393
483
|
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
// ...route.query,
|
402
|
-
// lat: map.value.getCenter().lat(),
|
403
|
-
// lng: map.value.getCenter().lng(),
|
404
|
-
// zoom: map.value.getZoom()
|
405
|
-
// }
|
406
|
-
// });
|
407
|
-
|
408
|
-
// skip.value += limit.value;
|
409
|
-
|
410
|
-
// const params = {
|
411
|
-
// country: route.params.country,
|
412
|
-
// state: route.params.state,
|
413
|
-
// city: route.params.city,
|
414
|
-
// categories: route.query.categories,
|
415
|
-
// prices: route.query.prices,
|
416
|
-
// delivery: route.query.delivery,
|
417
|
-
// skip: skip.value,
|
418
|
-
// limit: limit.value,
|
419
|
-
// location: `${SW.lat()},${SW.lng()},${NE.lat()},${NE.lng()}`
|
420
|
-
// };
|
421
|
-
|
422
|
-
// // const data = await actions.read(params);
|
423
|
-
// // state.all = [...state.all, ...data];
|
424
|
-
|
425
|
-
// // Clear old markers
|
426
|
-
|
427
|
-
// });
|
484
|
+
google.maps.event.addListener(map.value, 'center_changed', () => {
|
485
|
+
let center = map.value.getCenter();
|
486
|
+
currentMapCenter.value = {
|
487
|
+
lat: center.lat(),
|
488
|
+
lng: center.lng()
|
489
|
+
};
|
490
|
+
});
|
428
491
|
});
|
429
492
|
|
430
|
-
|
431
|
-
//
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
493
|
+
const searchInCurrentLocation = async () => {
|
494
|
+
// Use currentMapCenter for the location
|
495
|
+
const params = {
|
496
|
+
country: route.params.country,
|
497
|
+
state: route.params.state,
|
498
|
+
city: route.params.city,
|
499
|
+
categories: route.query.categories,
|
500
|
+
prices: route.query.prices,
|
501
|
+
delivery: route.query.delivery,
|
502
|
+
location: {
|
503
|
+
type: "Point",
|
504
|
+
coordinates: [currentMapCenter.value.lng, currentMapCenter.value.lat]
|
505
|
+
}
|
506
|
+
};
|
507
|
+
|
508
|
+
try {
|
509
|
+
const data = await actions.read(params);
|
510
|
+
// Remove old markers
|
511
|
+
for (let marker of markers.value) {
|
512
|
+
marker.setMap(null);
|
513
|
+
}
|
514
|
+
markers.value = [];
|
515
|
+
|
516
|
+
// Add new markers
|
517
|
+
markers.value = data.map(org => {
|
518
|
+
let location = org.spots[0]?.location;
|
519
|
+
if (location && location.type === 'Point') {
|
520
|
+
let [lng, lat] = location.coordinates; // Note that coordinates are in [lng, lat] format
|
521
|
+
let markerIcon = org.products && org.products.length > 0 ? '/marker_2.png' : '/marker.png';
|
522
|
+
|
523
|
+
const marker = new google.maps.Marker({
|
524
|
+
position: { lng, lat },
|
525
|
+
map: map.value,
|
526
|
+
icon: {
|
527
|
+
url: markerIcon, // URL to the icon
|
528
|
+
scaledSize: new google.maps.Size(34, 45), // icon dimensions
|
529
|
+
origin: new google.maps.Point(0,0), // coordinate origin for this icon
|
530
|
+
anchor: new google.maps.Point(0, 0) // point on the icon that corresponds to the geographic location of the marker
|
531
|
+
}
|
532
|
+
});
|
533
|
+
|
534
|
+
// Add click listener to the marker
|
535
|
+
marker.addListener('click', () => {
|
536
|
+
router.push({ name: 'Organization', params: { _id: org._id } });
|
537
|
+
});
|
538
|
+
|
539
|
+
return marker;
|
540
|
+
}
|
541
|
+
return null;
|
542
|
+
}).filter(marker => marker !== null); // Remove null markers
|
543
|
+
} catch (error) {
|
544
|
+
console.error('Error fetching organizations:', error);
|
545
|
+
}
|
546
|
+
};
|
547
|
+
|
436
548
|
|
437
|
-
// map.value.setZoom(parseInt(newQuery.zoom || '8'));
|
438
|
-
// }
|
439
|
-
// }, { deep: true });
|
440
549
|
|
441
550
|
</script>
|
442
551
|
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
<div class="pd-medium w-100">
|
6
6
|
<svg @click="$router.push(`/app/organization/${props.organization._id}/spots/${spot._id}/edit`)" class="i-regular pos-absolute pos-r-0 pos-t-0 t-transp" width="652" height="652" viewBox="0 0 652 652" fill="none" xmlns="http://www.w3.org/2000/svg">
|
7
|
-
<path d="M515.693 9.52082C510.095 3.91669 502.49 0.765625 494.563 0.765625C486.635 0.765625 479.036 3.91669 473.432 9.52082L48.7255 434.307C44.8244 438.214 42.0848 443.125 40.8088 448.496L0.939444 615.069C-1.47202 625.168 1.528 635.788 8.86652 643.132C16.2103 650.47 26.8305 653.47 36.9292 651.059L203.516 611.261H203.511C208.88 609.985 213.792 607.246 217.699 603.35L642.485 178.496C648.089 172.892 651.241 165.293 651.241 157.366C651.241 149.439 648.089 141.835 642.485 136.235L515.693 9.52082ZM113.76 453.708L388.307 179.161L472.828 263.682L198.281 538.229L113.76 453.708ZM87.1041 511.5L140.416 564.812L70.3014 581.614L87.1041 511.5ZM515.091 221.793L430.195 136.897L494.184 72.9075L579.08 157.429L515.091 221.793Z" fill="black"/>
|
7
|
+
<path d="M515.693 9.52082C510.095 3.91669 502.49 0.765625 494.563 0.765625C486.635 0.765625 479.036 3.91669 473.432 9.52082L48.7255 434.307C44.8244 438.214 42.0848 443.125 40.8088 448.496L0.939444 615.069C-1.47202 625.168 1.528 635.788 8.86652 643.132C16.2103 650.47 26.8305 653.47 36.9292 651.059L203.516 611.261H203.511C208.88 609.985 213.792 607.246 217.699 603.35L642.485 178.496C648.089 172.892 651.241 165.293 651.241 157.366C651.241 149.439 648.089 141.835 642.485 136.235L515.693 9.52082ZM113.76 453.708L388.307 179.161L472.828 263.682L198.281 538.229L113.76 453.708ZM87.1041 511.5L140.416 564.812L70.3014 581.614L87.1041 511.5ZM515.091 221.793L430.195 136.897L494.184 72.9075L579.08 157.429L515.091 221.793Z" fill="rgb(var(--black))"/>
|
8
8
|
</svg>
|
9
9
|
|
10
10
|
<h3
|