@ozdao/prometheus-framework 0.1.35 → 0.1.37
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/BackofficeGallery-568b55bb.js +1 -0
- package/dist/BackofficeGallery-b4105137.mjs +306 -0
- package/dist/BlockTags-8cddaef7.js +1 -0
- package/dist/BlockTags-ee310572.mjs +853 -0
- package/dist/Breadcrumbs.vue_vue_type_style_index_0_lang-0ea8fbf8.js +1 -0
- package/dist/Breadcrumbs.vue_vue_type_style_index_0_lang-4ed993c7.mjs +1 -0
- package/dist/Button-7643c9aa.js +1 -0
- package/dist/Button-9e1a9284.mjs +226 -0
- package/dist/ButtonToggleMembership-15f149cb.js +1 -0
- package/dist/ButtonToggleMembership-3bb9139e.mjs +90 -0
- package/dist/CardBlogpost-38016b80.mjs +246 -0
- package/dist/CardBlogpost-cc208f93.js +1 -0
- package/dist/CardOrganization-d93c9bdb.js +1 -0
- package/dist/CardOrganization-e920be73.mjs +234 -0
- package/dist/CardProduct-92affca1.js +1 -0
- package/dist/CardProduct-fca53299.mjs +193 -0
- package/dist/Checkbox-5dbe7b23.mjs +62 -0
- package/dist/Checkbox-76f09248.js +1 -0
- package/dist/Chips-9d81b215.mjs +214 -0
- package/dist/Chips-d47704e6.js +1 -0
- package/dist/Community-87522a04.mjs +132 -0
- package/dist/Community-aef23aee.js +1 -0
- package/dist/Dashboard-91d73bc5.js +1 -0
- package/dist/Dashboard-ea9035bc.mjs +152 -0
- package/dist/Dropdown-31115457.js +1 -0
- package/dist/Dropdown-cab3605b.mjs +146 -0
- package/dist/EULA-aba6a807.js +1 -0
- package/dist/EditOrder-94bbebff.mjs +221 -0
- package/dist/EditOrder-c070d474.js +1 -0
- package/dist/EmptyState-d65bab5b.js +1 -0
- package/dist/EmptyState-e404b05d.mjs +36 -0
- package/dist/Events-cdfbca78.js +1 -0
- package/dist/Events-e9dd58f7.mjs +123 -0
- package/dist/Feed-22464fcd.js +1 -0
- package/dist/Feed-6e96d3dd.mjs +124 -0
- package/dist/Feed-793b3eef.mjs +146 -0
- package/dist/Feed-7b80704d.mjs +361 -0
- package/dist/Feed-98b47c6f.js +1 -0
- package/dist/Feed-b30ef609.js +1 -0
- package/dist/Feed-c5d4390a.js +1 -0
- package/dist/Feed-d114330c.mjs +112 -0
- package/dist/Field-e2a43424.js +1 -0
- package/dist/Field-e5ad88d3.mjs +75 -0
- package/dist/Field.vue_vue_type_style_index_0_scoped_f4a29b0d_lang-0ea8fbf8.js +1 -0
- package/dist/Field.vue_vue_type_style_index_0_scoped_f4a29b0d_lang-4ed993c7.mjs +1 -0
- package/dist/IconChevronRight-a55f838e.js +1 -0
- package/dist/IconChevronRight-fae9d012.mjs +28 -0
- package/dist/IconCommunity-468dc457.mjs +65 -0
- package/dist/IconCommunity-b339e806.js +1 -0
- package/dist/IconCross-5bf93179.js +1 -0
- package/dist/IconCross-84cb1292.mjs +28 -0
- package/dist/IconEdit-9edfd74d.mjs +21 -0
- package/dist/IconEdit-c0469b45.js +1 -0
- package/dist/Image-245c003d.mjs +480 -0
- package/dist/Image-35d31936.js +9 -0
- package/dist/LabelGooglePlay-24feb437.mjs +31 -0
- package/dist/LabelGooglePlay-f80e5ff0.js +1 -0
- package/dist/LeftoverAdd-08d9fb54.mjs +228 -0
- package/dist/LeftoverAdd-fc673884.js +1 -0
- package/dist/Leftovers-296c0042.js +1 -0
- package/dist/Leftovers-685d9f19.mjs +136 -0
- package/dist/Loader-21f016da.js +1 -0
- package/dist/Loader-cd422786.mjs +41 -0
- package/dist/Loader.vue_vue_type_style_index_0_lang-0ea8fbf8.js +1 -0
- package/dist/Loader.vue_vue_type_style_index_0_lang-4ed993c7.mjs +1 -0
- package/dist/Members-2cb2ff58.mjs +114 -0
- package/dist/Members-85534d1f.js +1 -0
- package/dist/Menu-b5d6a0c7.js +1 -0
- package/dist/Menu-dd7645c1.mjs +13 -0
- package/dist/MenuItem-56ae7f94.js +1 -0
- package/dist/MenuItem-6296d02f.mjs +63 -0
- package/dist/Orders-b64e8cb9.js +1 -0
- package/dist/Orders-ff30db05.mjs +75 -0
- package/dist/Organizations-0cb37d68.js +1 -0
- package/dist/Organizations-d6ef2113.mjs +73 -0
- package/dist/Payments-53e5fecf.js +1 -0
- package/dist/Payments-82e545e1.mjs +87 -0
- package/dist/PlaceholderUserpic-47f6f319.js +1 -0
- package/dist/Popup-0915427c.mjs +74 -0
- package/dist/Popup-795f5c88.js +1 -0
- package/dist/Popup.vue_vue_type_style_index_0_lang-0ea8fbf8.js +1 -0
- package/dist/Popup.vue_vue_type_style_index_0_lang-4ed993c7.mjs +1 -0
- package/dist/Product-5994a8c9.mjs +653 -0
- package/dist/Product-68fa1e9e.js +7 -0
- package/dist/ProductEdit-64207814.mjs +296 -0
- package/dist/ProductEdit-a434240f.js +1 -0
- package/dist/ProductsBackoffice-0c93f9b6.js +1 -0
- package/dist/ProductsBackoffice-3d987c60.mjs +86 -0
- package/dist/ProfileBlogposts-0b81d964.js +1 -0
- package/dist/ProfileBlogposts-b59992cf.mjs +79 -0
- package/dist/ProfileEvents-3f7ca2c1.js +1 -0
- package/dist/ProfileEvents-bbdd62e7.mjs +70 -0
- package/dist/ProfileOrganizations-4734c02e.mjs +73 -0
- package/dist/ProfileOrganizations-d55ee487.js +1 -0
- package/dist/Publics-0762210a.js +1 -0
- package/dist/Publics-660e851c.mjs +45 -0
- package/dist/SelectMulti-58704d69.mjs +1038 -0
- package/dist/SelectMulti-c25765cf.js +1 -0
- package/dist/SkeletonBlogpost-95db0fa9.js +1 -0
- package/dist/SkeletonBlogpost-e0621af7.mjs +16 -0
- package/dist/SkeletonEvent-8690422d.mjs +16 -0
- package/dist/SkeletonEvent-eb284de8.js +1 -0
- package/dist/SkeletonEventShort-6c9e3940.js +1 -0
- package/dist/SkeletonEventShort-f030e56f.mjs +16 -0
- package/dist/SkeletonOrganization-5c09cfc5.js +1 -0
- package/dist/SkeletonOrganization-8690422d.mjs +16 -0
- package/dist/Socials-31c06635.mjs +74 -0
- package/dist/Socials-cceaeaf2.js +1 -0
- package/dist/Tab-054b61f7.mjs +46 -0
- package/dist/Tab-2c1e4224.js +1 -0
- package/dist/Tab.vue_vue_type_style_index_0_lang-0ea8fbf8.js +1 -0
- package/dist/Tab.vue_vue_type_style_index_0_lang-4ed993c7.mjs +1 -0
- package/dist/addMembersQuantity-7147aa4a.js +89 -0
- package/dist/addMembersQuantity-eac999f0.mjs +90 -0
- package/dist/auth-06d35b82.js +7 -0
- package/dist/auth-ec618cb3.mjs +627 -0
- package/dist/auth.client.cjs +7 -7
- package/dist/auth.client.js +22 -19
- package/dist/auth.server.js +7 -7
- package/dist/auth.server.mjs +7 -7
- package/dist/auth.validation-0ce9e326.js +1 -0
- package/dist/auth.validation-ba3606bf.mjs +24 -0
- package/dist/backoffice.client.cjs +1 -1
- package/dist/backoffice.client.js +235 -59
- package/dist/categories-82b28618.js +1 -0
- package/dist/categories-df3240a7.mjs +122 -0
- package/dist/community.client.cjs +1 -1
- package/dist/community.client.js +233 -227
- package/dist/community.server.js +223 -195
- package/dist/community.server.mjs +223 -195
- package/dist/components/Field/Field.vue.d.ts +58 -2
- package/dist/components/Field/Field.vue.d.ts.map +1 -1
- package/dist/components/UploadImage/UploadImage.vue.d.ts +1 -1
- package/dist/dribbble-8e8e169b.js +1 -0
- package/dist/dribbble-ae37c2ac.mjs +127 -0
- package/dist/events.client.cjs +2 -2
- package/dist/events.client.js +1793 -1888
- package/dist/events.server.js +106 -216
- package/dist/events.server.mjs +106 -216
- package/dist/globals.server.js +1 -1
- package/dist/globals.server.mjs +1 -1
- package/dist/icons.client.cjs +1 -0
- package/dist/icons.client.js +84 -0
- package/dist/inputs.validation-d7cef32b.js +1 -0
- package/dist/inputs.validation-db65277a.mjs +83 -0
- package/dist/landing.client.cjs +1 -1
- package/dist/landing.client.js +40 -64
- package/dist/leftovers-66951de6.js +1 -0
- package/dist/leftovers-be37c7a5.mjs +67 -0
- package/dist/legal.client.cjs +1 -1
- package/dist/legal.client.js +7 -4
- package/dist/mailing-76895d59.mjs +50 -0
- package/dist/mailing-9659b3c4.js +49 -0
- package/dist/main.css +1 -1
- package/dist/memberships-12210953.mjs +68 -0
- package/dist/memberships-393765d8.js +1 -0
- package/dist/metadata.schema-147f9902.mjs +212 -0
- package/dist/metadata.schema-93397f9f.js +211 -0
- package/dist/metadata.schema-a539dd65.mjs +210 -0
- package/dist/metadata.schema-e4fe5c57.js +209 -0
- package/dist/modules/community/components/blocks/FooterBlogpost.vue.d.ts +1 -1
- package/dist/modules/community/components/sections/Feed.vue.d.ts +4 -3
- package/dist/modules/events/components/sections/Feed.vue.d.ts +4 -4
- package/dist/modules/events/components/sections/List.vue.d.ts +3 -3
- package/dist/modules/globals/components/blocks/CardFooter.vue.d.ts +8 -0
- package/dist/modules/globals/components/blocks/CardHeader.vue.d.ts +15 -0
- package/dist/modules/globals/components/sections/Feed.vue.d.ts +69 -0
- package/dist/modules/orders/components/pages/EditOrder.vue.d.ts +6 -0
- package/dist/modules/orders/components/pages/Favorites.vue.d.ts +6 -0
- package/dist/modules/orders/components/pages/History.vue.d.ts +6 -0
- package/dist/modules/orders/components/pages/Orders.vue.d.ts +2 -0
- package/dist/modules/orders/components/pages/ViewOrder.vue.d.ts +6 -0
- package/dist/modules/orders/components/sections/Form.vue.d.ts +1 -0
- package/dist/modules/organizations/components/blocks/CardDepartment.vue.d.ts +7 -0
- package/dist/modules/organizations/components/blocks/User.vue.d.ts +1 -1
- package/dist/modules/organizations/components/elements/ButtonToggleMembership.vue.d.ts +1 -1
- package/dist/modules/organizations/components/pages/Members.vue.d.ts +2 -0
- package/dist/modules/organizations/components/sections/Department2.vue.d.ts +7 -0
- package/dist/modules/organizations/components/sections/Feed.vue.d.ts +4 -4
- package/dist/modules/organizations/components/sections/FeedDepartments.vue.d.ts +8 -0
- package/dist/modules/payments/components/pages/Payments.vue.d.ts +2 -0
- package/dist/modules/products/components/blocks/CardLeftover.vue.d.ts +6 -0
- package/dist/modules/products/components/blocks/CardPosition.vue.d.ts +11 -0
- package/dist/modules/products/components/blocks/CardProduct.vue.d.ts +6 -0
- package/dist/modules/products/components/blocks/LeftoverPositions.vue.d.ts +0 -1
- package/dist/modules/products/components/pages/ProductsBackoffice.vue.d.ts +2 -0
- package/dist/modules/products/components/sections/FilterProducts.vue.d.ts +9 -0
- package/dist/modules/products/components/sections/SortProducts.vue.d.ts +10 -0
- package/dist/modules/reports/components/sections/FormReport.vue.d.ts +3 -3
- package/dist/modules/spots/components/blocks/CardSpot.vue.d.ts +7 -0
- package/dist/modules/spots/components/blocks/SpotMemberModify.vue.d.ts +11 -0
- package/dist/modules/spots/components/blocks/SpotSub.vue.d.ts +6 -0
- package/dist/modules/spots/components/pages/Spot.vue.d.ts +7 -0
- package/dist/modules/spots/components/pages/SpotEdit.vue.d.ts +2 -0
- package/dist/modules/spots/components/sections/Feed.vue.d.ts +8 -0
- package/dist/modules/spots/components/sections/PlaceModify.vue.d.ts +9 -0
- package/dist/modules/spots/components/sections/Places.vue.d.ts +9 -0
- package/dist/modules/wallet/components/pages/Wallet.vue.d.ts +2 -0
- package/dist/orders-13c10d49.mjs +85 -0
- package/dist/orders-37f041aa.js +1 -0
- package/dist/organizations-4d18a2e2.js +1 -0
- package/dist/organizations-6ed907e3.mjs +122 -0
- package/dist/organizations.client-01593e4d.js +3 -0
- package/dist/organizations.client-1b9fa66e.mjs +2997 -0
- package/dist/organizations.client.cjs +1 -1
- package/dist/organizations.client.js +75 -51
- package/dist/organizations.server.js +9 -20
- package/dist/organizations.server.mjs +9 -20
- package/dist/products-7960bbd4.js +1 -0
- package/dist/products-bf5783aa.mjs +108 -0
- package/dist/prometheus-framework.cjs.js +17 -17
- package/dist/prometheus-framework.es.js +771 -758
- package/dist/states.validation-03f7cd49.js +1 -0
- package/dist/states.validation-50e3a5a0.mjs +13 -0
- package/dist/style.css +1 -1
- package/dist/users.client.cjs +1 -1
- package/dist/users.client.js +214 -258
- package/dist/users.server.js +1 -1
- package/dist/users.server.mjs +1 -1
- package/package.json +2 -119
- package/src/components/Field/Field.vue +34 -9
- package/src/components/SelectMulti/SelectMulti.vue +18 -22
- package/src/modules/auth/routes/auth.routes.js +9 -6
- package/src/modules/auth/store/auth.js +34 -15
- package/src/modules/backoffice/components/pages/Dashboard.vue +91 -0
- package/src/modules/backoffice/router/admin.js +0 -28
- package/src/modules/backoffice/router/backoffice.js +131 -4
- package/src/modules/community/components/blocks/CardBlogpost.vue +1 -1
- package/src/modules/community/components/pages/Blog.vue +1 -0
- package/src/modules/community/components/sections/Comments.vue +1 -1
- package/src/modules/community/components/sections/Feed.vue +6 -0
- package/src/modules/community/controllers/blog.controller.js +129 -285
- package/src/modules/community/controllers/reactions.controller.js +2 -0
- package/src/modules/community/controllers/utils/queryProcessor.js +56 -0
- package/src/modules/community/controllers/utils/queryProcessorReactions.js +63 -0
- package/src/modules/community/routes/blog.routes.js +10 -6
- package/src/modules/community/store/blogposts.js +5 -5
- package/src/modules/events/components/blocks/CardEvent.vue +2 -3
- package/src/modules/events/components/pages/Events.vue +4 -4
- package/src/modules/events/components/sections/Feed.vue +4 -4
- package/src/modules/events/components/sections/List.vue +2 -2
- package/src/modules/events/controllers/events.controller.js +8 -6
- package/src/modules/events/controllers/utils/queryProcessor.js +111 -1
- package/src/modules/events/models/event.model.js +0 -4
- package/src/modules/events/routes/events.routes.js +9 -6
- package/src/modules/events/store/events.js +5 -7
- package/src/{components/CardHeader → modules/globals/components/blocks}/CardHeader.vue +31 -4
- package/src/modules/globals/components/sections/Feed.vue +136 -0
- package/src/modules/globals/controllers/utils/queryProcessor.js +19 -117
- package/src/modules/globals/models/engagement.schema.js +29 -25
- package/src/modules/globals/utils/mailing.js +1 -1
- package/src/modules/icons/icons.client.js +51 -0
- package/src/modules/marketplace/components/layouts/Marketplace.vue +1 -1
- package/src/modules/marketplace/components/pages/Catalog.vue +3 -4
- package/src/modules/marketplace/router/marketplace.js +0 -11
- package/src/modules/middlewares/client/auth.validation.js +1 -1
- package/src/modules/orders/components/blocks/CardOrderItem.vue +1 -2
- package/src/modules/orders/components/pages/EditOrder.vue +238 -0
- package/src/modules/{backoffice → orders}/components/pages/Favorites.vue +2 -2
- package/src/modules/orders/components/pages/Order.vue +28 -34
- package/src/modules/orders/components/pages/Orders.vue +90 -0
- package/src/modules/{backoffice/components/pages/History.vue → orders/components/pages/ViewOrder.vue} +0 -8
- package/src/modules/orders/components/sections/Form.vue +52 -34
- package/src/modules/orders/controllers/orders.controller.js +102 -72
- package/src/modules/orders/models/order.model.js +30 -22
- package/src/modules/orders/router/orders.router.js +30 -0
- package/src/modules/orders/routes/orders.routes.js +23 -13
- package/src/modules/orders/store/orders.js +67 -40
- package/src/modules/organizations/components/{sections/Department.vue → blocks/CardDepartment.vue} +1 -10
- package/src/modules/organizations/components/blocks/CardOrganization.vue +13 -9
- package/src/modules/organizations/components/pages/DepartmentEdit.vue +3 -3
- package/src/modules/organizations/components/{sections/MembersTab.vue → pages/Members.vue} +23 -8
- package/src/modules/organizations/components/pages/Organization.vue +80 -46
- package/src/modules/organizations/components/pages/Organizations.vue +45 -90
- package/src/modules/organizations/components/sections/{StructureTab.vue → FeedDepartments.vue} +5 -5
- package/src/modules/organizations/components/sections/Organizations.vue +1 -2
- package/src/modules/organizations/components/sections/Publics.vue +3 -2
- package/src/modules/organizations/controllers/organizations.controller.js +8 -21
- package/src/modules/organizations/controllers/organizations.new.controller.js +372 -0
- package/src/modules/organizations/controllers/utils/addUserStatusFields.js +53 -48
- package/src/modules/organizations/controllers/utils/queryProcessor.js +87 -0
- package/src/modules/organizations/controllers/utils/queryProcessorOrganizations.js +25 -0
- package/src/modules/organizations/organizations.client.js +42 -46
- package/src/modules/organizations/router/departments.router.js +29 -0
- package/src/modules/organizations/router/members.router.js +19 -0
- package/src/modules/organizations/router/organizations.js +12 -88
- package/src/modules/organizations/router/organizations.router.js +38 -0
- package/src/modules/organizations/router/products.router.js +24 -0
- package/src/modules/organizations/store/departments.js +108 -0
- package/src/modules/{backoffice/components/admin/Orders.vue → payments/components/pages/Payments.vue} +0 -15
- package/src/modules/products/components/blocks/{Leftover.vue → CardLeftover.vue} +21 -12
- package/src/modules/products/components/blocks/CardPosition.vue +84 -0
- package/src/modules/products/components/blocks/LeftoverPositions.vue +65 -136
- package/src/modules/products/components/pages/LeftoverAdd.vue +133 -88
- package/src/modules/products/components/pages/Leftovers.vue +91 -64
- package/src/modules/products/components/pages/Product.vue +3 -3
- package/src/modules/products/components/pages/Products.vue +42 -263
- package/src/modules/products/components/pages/ProductsBackoffice.vue +92 -0
- package/src/modules/products/components/sections/FilterProducts.vue +180 -0
- package/src/modules/products/components/sections/PopularProducts.vue +2 -2
- package/src/modules/products/components/sections/SectionProduct.vue +18 -3
- package/src/modules/products/components/sections/SortProducts.vue +76 -0
- package/src/modules/products/controllers/leftovers.controller.js +51 -45
- package/src/modules/products/controllers/modifications.controller.js +66 -0
- package/src/modules/products/controllers/products.controller.js +67 -111
- package/src/modules/products/models/leftover.model.js +12 -9
- package/src/modules/products/models/product.model.js +1 -0
- package/src/modules/products/router/products.router.js +46 -0
- package/src/modules/products/routes/products.routes.js +4 -9
- package/src/modules/products/store/leftovers.js +56 -59
- package/src/modules/products/store/products.js +21 -22
- package/src/modules/spots/components/blocks/CardSpot.vue +104 -0
- package/src/modules/spots/components/blocks/SpotMemberModify.vue +92 -0
- package/src/modules/spots/components/blocks/SpotSub.vue +24 -0
- package/src/modules/spots/components/pages/Map.vue +2 -2
- package/src/modules/spots/components/pages/Spot.vue +107 -0
- package/src/modules/spots/components/pages/SpotEdit.vue +319 -0
- package/src/modules/spots/components/sections/Feed.vue +64 -0
- package/src/modules/spots/controllers/spots.controller.js +83 -0
- package/src/modules/spots/models/spot.model.js +72 -0
- package/src/modules/spots/router/spots.js +34 -1
- package/src/modules/spots/routes/spots.routes.js +31 -0
- package/src/modules/spots/store/spots.js +15 -15
- package/src/modules/users/components/pages/Profile.vue +2 -3
- package/src/modules/users/components/pages/ProfileBlogposts.vue +1 -1
- package/src/styles/components/block.scss +2 -4
- package/src/modules/backoffice/components/admin/LeftoverAdd.vue +0 -157
- package/src/modules/backoffice/components/admin/Leftovers.vue +0 -119
- package/src/modules/backoffice/components/admin/Order.vue +0 -199
- package/src/modules/backoffice/components/admin/Product.vue +0 -28
- package/src/modules/backoffice/components/admin/Products.vue +0 -82
- package/src/modules/backoffice/components/pages/Organizations.vue +0 -104
- package/src/modules/community/controllers/blog.new.controller.js +0 -290
- package/src/modules/organizations/components/blocks/DepartmentSubDepartmentModify.vue +0 -92
- package/src/modules/organizations/components/elements/ButtonFollow.vue +0 -84
- package/src/modules/organizations/components/pages/OrganizationsAccount.vue +0 -110
- package/src/modules/organizations/controllers/utils/excludeBlockedMembers.js +0 -18
- /package/src/{components/CardFooter → modules/globals/components/blocks}/CardFooter.vue +0 -0
- /package/src/modules/{orders/controllers → payments/controller}/payments.controller.js +0 -0
- /package/src/modules/{orders → payments}/routes/payments.routes.js +0 -0
- /package/src/modules/{orders → payments}/store/payments.js +0 -0
- /package/src/modules/products/components/blocks/{ProductCard.vue → CardProduct.vue} +0 -0
- /package/src/modules/{organizations → spots}/components/sections/PlaceModify.vue +0 -0
- /package/src/modules/{organizations → spots}/components/sections/Places.vue +0 -0
- /package/src/modules/{backoffice → wallet}/components/pages/Wallet.vue +0 -0
@@ -1,285 +1,64 @@
|
|
1
1
|
<template>
|
2
|
-
<div class="">
|
3
|
-
<
|
4
|
-
<Breadcrumbs class="pd-medium bg-grey radius-big"/>
|
5
|
-
</div>
|
2
|
+
<div class="cols-2-1_3 gap-thin pd-thin">
|
3
|
+
<FilterProducts
|
6
4
|
|
7
|
-
|
8
|
-
<div class="cols-2-1_3 gap-thin pd-thin">
|
5
|
+
/>
|
9
6
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
</Spoiler>
|
44
|
-
|
45
|
-
<hr class="mn-small">
|
46
|
-
|
47
|
-
<Spoiler
|
48
|
-
class="
|
49
|
-
radius-small
|
50
|
-
o-hidden
|
51
|
-
br-1px br-solid br-grey
|
52
|
-
mn-small
|
53
|
-
"
|
54
|
-
:status="false"
|
55
|
-
>
|
56
|
-
<template #header class="flex-nowrap flex">
|
57
|
-
<p class="mn-r-auto t-medium p-big">{{t('filters.price.title')}}</p>
|
58
|
-
<svg class="i-medium" width="14" height="9" viewBox="0 0 14 9" fill="none" xmlns="http://www.w3.org/2000/svg">
|
59
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.4697 0.469727L13.5304 1.53039L7.00006 8.06072L0.469727 1.53039L1.53039 0.469727L7.00006 5.9394L12.4697 0.469727Z" fill="#8A8A8A"/>
|
60
|
-
</svg>
|
61
|
-
</template>
|
62
|
-
<template #content>
|
63
|
-
<Checkbox
|
64
|
-
v-for="(price, index) in prices"
|
65
|
-
:label="price.label"
|
66
|
-
name="prices"
|
67
|
-
:value="price.value"
|
68
|
-
class="w-100 mn-t-small bg-white radius-small pd-small"
|
69
|
-
:radio="store.marketplace.state.filter.prices"
|
70
|
-
/>
|
71
|
-
<!-- t('categories[' + index + ']') -->
|
72
|
-
</template>
|
73
|
-
</Spoiler>
|
74
|
-
|
75
|
-
<hr class="mn-small">
|
76
|
-
|
77
|
-
<Spoiler
|
78
|
-
class="
|
79
|
-
radius-small
|
80
|
-
o-hidden
|
81
|
-
br-1px br-solid br-grey
|
82
|
-
mn-small
|
83
|
-
"
|
84
|
-
:status="false"
|
85
|
-
>
|
86
|
-
<template #header class="flex-nowrap flex">
|
87
|
-
<p class="mn-r-auto t-medium p-big">Delivery</p>
|
88
|
-
<svg class="i-medium" width="14" height="9" viewBox="0 0 14 9" fill="none" xmlns="http://www.w3.org/2000/svg">
|
89
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.4697 0.469727L13.5304 1.53039L7.00006 8.06072L0.469727 1.53039L1.53039 0.469727L7.00006 5.9394L12.4697 0.469727Z" fill="#8A8A8A"/>
|
90
|
-
</svg>
|
91
|
-
</template>
|
92
|
-
<template #content>
|
93
|
-
<Checkbox
|
94
|
-
v-for="(delivery, index) in delivery"
|
95
|
-
:label="delivery.label"
|
96
|
-
name="prices"
|
97
|
-
:value="delivery.value"
|
98
|
-
class="w-100 mn-t-small bg-white radius-small pd-small"
|
99
|
-
:radio="store.marketplace.state.filter.delivery"
|
100
|
-
/>
|
101
|
-
<!-- t('categories[' + index + ']') -->
|
102
|
-
</template>
|
103
|
-
</Spoiler>
|
104
|
-
<hr class="mn-semi">
|
105
|
-
<!-- Reset filter -->
|
106
|
-
<button @click="resetFilterButton()" class="bg-main w-100 button">{{t('filters.reset')}}</button>
|
107
|
-
|
108
|
-
</div>
|
109
|
-
|
110
|
-
<!-- Products wrapper -->
|
111
|
-
<div class="products-wrapper">
|
112
|
-
|
113
|
-
|
114
|
-
<!-- Sorting section -->
|
115
|
-
<div class="pd-medium mn-thin bg-grey radius-big">
|
116
|
-
<div class="flex-nowrap flex flex-v-center">
|
117
|
-
<header class="mn-r-auto flex-v-center t-left flex-nowrap flex">
|
118
|
-
<h2 class="t-left">
|
119
|
-
<span class="">Weed in </span>
|
120
|
-
<span class="t-semi t-main">Phuket, TH</span>
|
121
|
-
</h2>
|
122
|
-
</header>
|
123
|
-
|
124
|
-
<button class="bg-main button">See on map</button>
|
125
|
-
</div>
|
126
|
-
</div>
|
127
|
-
|
128
|
-
<div class="pd-medium mn-thin bg-grey radius-big">
|
129
|
-
<div class="flex-nowrap flex flex-v-center">
|
130
|
-
<p class="mn-r-auto p-big t-semi t-transp">2,982 results</p>
|
131
|
-
|
132
|
-
<button
|
133
|
-
@click="setSort('price')"
|
134
|
-
class="button-active button-sort button">
|
135
|
-
{{t('sort.price')}}
|
136
|
-
</button>
|
137
|
-
<button
|
138
|
-
@click="setSort('createdAt')"
|
139
|
-
class="button-sort button">
|
140
|
-
{{t('sort.newest')}}
|
141
|
-
</button>
|
142
|
-
<button
|
143
|
-
@click="setSort('popularity')"
|
144
|
-
class="button-sort button">
|
145
|
-
{{t('sort.popularity')}}
|
146
|
-
</button>
|
147
|
-
</div>
|
148
|
-
|
149
|
-
</div>
|
150
|
-
|
151
|
-
<!-- Products section -->
|
152
|
-
<div class="w-100 cols-3 gap-thin">
|
153
|
-
<ProductCard v-for="product in products.state.all" :product="product" :key="product._id" @click="$router.push({name: 'Product Organization', params: { _id: organization._id, product: product._id } })" class="w-100"></ProductCard>
|
154
|
-
</div>
|
155
|
-
</div>
|
7
|
+
<Feed
|
8
|
+
:states="{
|
9
|
+
empty: {
|
10
|
+
title: 'No Products Found',
|
11
|
+
description: 'Currently, there are no products available.'
|
12
|
+
}
|
13
|
+
}"
|
14
|
+
:store="{
|
15
|
+
read: (options) => products.actions.read(options),
|
16
|
+
state: products.state
|
17
|
+
}"
|
18
|
+
:options="{
|
19
|
+
limit: 15,
|
20
|
+
organization: route.params._id,
|
21
|
+
// user: user
|
22
|
+
}"
|
23
|
+
v-slot="{
|
24
|
+
items
|
25
|
+
}"
|
26
|
+
>
|
27
|
+
<CardProduct
|
28
|
+
v-for="product in items"
|
29
|
+
:key="product._id"
|
30
|
+
:product="product"
|
31
|
+
@click="$router.push({
|
32
|
+
name: 'Product Organization',
|
33
|
+
params: {
|
34
|
+
_id: route.params._id,
|
35
|
+
product: product._id
|
36
|
+
}
|
37
|
+
})"
|
38
|
+
/>
|
39
|
+
</Feed>
|
156
40
|
|
157
|
-
</div>
|
158
|
-
<!-- <Footer/> -->
|
159
41
|
</div>
|
160
42
|
</template>
|
161
43
|
|
162
44
|
|
163
45
|
<script setup="props">
|
164
46
|
// Import libs
|
165
|
-
import { computed, onMounted
|
166
|
-
import { useRoute, useRouter,onBeforeRouteLeave } from 'vue-router'
|
167
|
-
import { useI18n } from 'vue-i18n'
|
168
|
-
import { useMeta } from 'vue-meta'
|
169
|
-
|
170
|
-
import Spoiler from "@pf/src/components/Spoiler/Spoiler.vue";
|
171
|
-
import Checkbox from "@pf/src/components/Checkbox/Checkbox.vue";
|
172
|
-
import Field from "@pf/src/components/Field/Field.vue";
|
47
|
+
import { computed, onMounted } from 'vue'
|
173
48
|
|
174
|
-
import
|
175
|
-
import Footer from '@pf/src/components/Footer/Footer.vue'
|
49
|
+
import { useRoute, useRouter } from 'vue-router'
|
176
50
|
|
177
51
|
// Import components
|
178
|
-
import
|
52
|
+
import FilterProducts from '@pf/src/modules/products/components/sections/FilterProducts.vue'
|
53
|
+
|
54
|
+
import Feed from '@pf/src/modules/globals/components/sections/Feed.vue'
|
55
|
+
import CardProduct from '@pf/src/modules/products/components/blocks/CardProduct.vue'
|
179
56
|
|
180
57
|
// Accessing router and store
|
181
58
|
import * as products from '@pf/src/modules/products/store/products';
|
182
|
-
import * as categories from '@pf/src/modules/products/store/categories';
|
183
59
|
|
184
60
|
const route = useRoute()
|
185
61
|
const router = useRouter()
|
186
|
-
|
187
|
-
// Data fetching
|
188
|
-
await products.actions.read({ organization: route.params._id });
|
189
|
-
await categories.actions.fetchCategories()
|
190
|
-
|
191
|
-
// Accessing state
|
192
|
-
const category = computed(() => categories.state.current)
|
193
|
-
|
194
|
-
const delivery = [
|
195
|
-
{ label: 'Pickup', value: { min: 0, max: 25 } },
|
196
|
-
{ label: 'Courier', value: { min: 25, max: 50 } },
|
197
|
-
{ label: 'Post', value: { min: 50, max: 100 } }
|
198
|
-
]
|
199
|
-
|
200
|
-
const prices = [
|
201
|
-
{ label: 'Under $5', value: { min: 0, max: 25 } },
|
202
|
-
{ label: '$5 to $10', value: { min: 25, max: 50 } },
|
203
|
-
{ label: '$10 to $20', value: { min: 50, max: 100 } },
|
204
|
-
{ label: '$20 and above', value: { min: 200, max: Infinity} }
|
205
|
-
]
|
206
|
-
|
207
|
-
const text = {
|
208
|
-
locale: 'en',
|
209
|
-
messages: {
|
210
|
-
en: {
|
211
|
-
meta: {
|
212
|
-
title: "Marketplace – Shop Our Wide Selection of Quality Weed for Delivery",
|
213
|
-
description: "Browse our marketplace of top-grade weed strains and choose from a variety of delivery options. Order now and have your favorite strains delivered straight to your door. Safe, fast, and reliable.",
|
214
|
-
},
|
215
|
-
breadcrumbs: {
|
216
|
-
home: 'Home',
|
217
|
-
store: 'Marketplace',
|
218
|
-
},
|
219
|
-
categoriesTitle: 'Category',
|
220
|
-
categories: [],
|
221
|
-
sort: {
|
222
|
-
price: 'By price',
|
223
|
-
newest: 'By newest',
|
224
|
-
popularity: 'By popularity'
|
225
|
-
},
|
226
|
-
filters: {
|
227
|
-
title: 'Filters',
|
228
|
-
price: {
|
229
|
-
title: 'Price',
|
230
|
-
from: 'From',
|
231
|
-
to: 'To'
|
232
|
-
},
|
233
|
-
filters: [],
|
234
|
-
reset: 'Reset Filters'
|
235
|
-
}
|
236
|
-
},
|
237
|
-
ru: {
|
238
|
-
meta: {
|
239
|
-
title: "Маркетплейс – Выбирайте из нашего ассортимента качественной травки для доставки",
|
240
|
-
description: "Маркетплейс – Изучите наши продукты высокого качества и выбирайте из различных вариантов доставки. Закажите сейчас и получите свои любимые сорта на дом. Безопасно, быстро и надежно.",
|
241
|
-
},
|
242
|
-
breadcrumbs: {
|
243
|
-
home: 'Главная',
|
244
|
-
store: 'Маркетплейс',
|
245
|
-
},
|
246
|
-
categoriesTitle: 'Категория',
|
247
|
-
categories: [],
|
248
|
-
sort: {
|
249
|
-
price: 'По цене',
|
250
|
-
newest: 'По новизне',
|
251
|
-
popularity: 'По популярности'
|
252
|
-
},
|
253
|
-
filters: {
|
254
|
-
title: 'Фильтры',
|
255
|
-
price: {
|
256
|
-
title: 'Цена',
|
257
|
-
from: 'От',
|
258
|
-
to: 'До'
|
259
|
-
},
|
260
|
-
filters: [],
|
261
|
-
reset: 'Сбросить фильтры',
|
262
|
-
}
|
263
|
-
}
|
264
|
-
}
|
265
|
-
}
|
266
|
-
|
267
|
-
categories.state.all.forEach( category => {
|
268
|
-
category.localization.forEach( localization => {
|
269
|
-
text.messages[localization.locale].categories.push(localization.text)
|
270
|
-
})
|
271
|
-
})
|
272
|
-
|
273
|
-
const { t } = useI18n(text)
|
274
|
-
|
275
|
-
const computedMeta = computed(() => ({
|
276
|
-
title: t('meta.title'),
|
277
|
-
description: t('meta.description')
|
278
|
-
}))
|
279
|
-
|
280
|
-
const { meta, onRemoved } = useMeta(computedMeta)
|
281
|
-
|
282
|
-
|
283
62
|
</script>
|
284
63
|
|
285
64
|
<style lang="scss">
|
@@ -0,0 +1,92 @@
|
|
1
|
+
<template>
|
2
|
+
<header class="mn-medium flex-v-center flex-nowrap flex">
|
3
|
+
<h2 class="mn-r-medium">Products</h2>
|
4
|
+
<button
|
5
|
+
@click="$router.push({
|
6
|
+
name: 'AddProduct'
|
7
|
+
})"
|
8
|
+
class="radius-100p i-big hover-scale-1 cursor-pointer t-white bg-second">
|
9
|
+
+
|
10
|
+
</button>
|
11
|
+
</header>
|
12
|
+
|
13
|
+
<Tab
|
14
|
+
v-model:selected="tab"
|
15
|
+
:tabs="[
|
16
|
+
{ name: 'All', value: 'all' },
|
17
|
+
{ name: 'Published', value: 'published' },
|
18
|
+
{ name: 'Unpublished', value: 'unpublished' },
|
19
|
+
{ name: 'Archivied', value: 'archivied' }
|
20
|
+
]"
|
21
|
+
class="mn-small o-hidden h5 radius-big bg-grey"
|
22
|
+
/>
|
23
|
+
|
24
|
+
<Feed
|
25
|
+
:states="{
|
26
|
+
empty: {
|
27
|
+
title: 'No Products Found',
|
28
|
+
description: 'Currently, there are no products available.'
|
29
|
+
}
|
30
|
+
}"
|
31
|
+
:store="{
|
32
|
+
read: (options) => products.actions.read(options),
|
33
|
+
state: products.state
|
34
|
+
}"
|
35
|
+
:options="{
|
36
|
+
limit: 15,
|
37
|
+
organization: route.params._id,
|
38
|
+
status: tab
|
39
|
+
// user: user
|
40
|
+
}"
|
41
|
+
v-slot="{
|
42
|
+
items
|
43
|
+
}"
|
44
|
+
>
|
45
|
+
<CardProduct
|
46
|
+
v-for="product in items"
|
47
|
+
:key="product._id"
|
48
|
+
:product="product"
|
49
|
+
@click="$router.push({
|
50
|
+
name: 'Product Organization',
|
51
|
+
params: {
|
52
|
+
_id:
|
53
|
+
route.params._id,
|
54
|
+
product: product._id
|
55
|
+
}
|
56
|
+
})"
|
57
|
+
/>
|
58
|
+
</Feed>
|
59
|
+
</template>
|
60
|
+
|
61
|
+
|
62
|
+
<script setup>
|
63
|
+
import { ref, watch, onMounted } from 'vue'
|
64
|
+
import { useRoute, useRouter } from 'vue-router'
|
65
|
+
|
66
|
+
import * as products from '@pf/src/modules/products/store/products' // Путь к вашему стору
|
67
|
+
|
68
|
+
// Import components
|
69
|
+
import Feed from '@pf/src/modules/globals/components/sections/Feed.vue'
|
70
|
+
import CardProduct from '@pf/src/modules/products/components/blocks/CardProduct.vue'
|
71
|
+
import Tab from '@pf/src/components/Tab/Tab.vue'
|
72
|
+
|
73
|
+
const route = useRoute()
|
74
|
+
const router = useRouter()
|
75
|
+
|
76
|
+
// Tab logic
|
77
|
+
const tab = ref(route.query.tab ? route.query.tab : 'posts')
|
78
|
+
|
79
|
+
route.query.tab = tab.value
|
80
|
+
|
81
|
+
watch(tab, (newValue) => {
|
82
|
+
router.replace({ query: { ...route.query, tab: newValue } });
|
83
|
+
});
|
84
|
+
|
85
|
+
onMounted(async () => {
|
86
|
+
await products.actions.fetchProducts()
|
87
|
+
})
|
88
|
+
</script>
|
89
|
+
|
90
|
+
<style lang="scss">
|
91
|
+
|
92
|
+
</style>
|
@@ -0,0 +1,180 @@
|
|
1
|
+
<template>
|
2
|
+
<div class="pd-medium bg-grey radius-big">
|
3
|
+
<h3 class="mn-small">{{ t('filters.title') }}</h3>
|
4
|
+
<hr class="mn-small">
|
5
|
+
|
6
|
+
<!-- Categories Filter -->
|
7
|
+
<Spoiler
|
8
|
+
class="radius-small o-hidden br-1px br-solid br-grey mn-small"
|
9
|
+
:status="true"
|
10
|
+
>
|
11
|
+
<template #header>
|
12
|
+
<p class="mn-r-auto t-medium p-big">{{ t('categoriesTitle') }}</p>
|
13
|
+
<!-- SVG Icon -->
|
14
|
+
</template>
|
15
|
+
<template #content>
|
16
|
+
<Checkbox
|
17
|
+
v-for="(category, index) in categories.state.all"
|
18
|
+
:key="index"
|
19
|
+
:label="category.name"
|
20
|
+
:value="category.url"
|
21
|
+
class="w-100 mn-t-small mn-small bg-white radius-small pd-small"
|
22
|
+
:radio="selectedFilters.categories"
|
23
|
+
@change="emitFilterChange('categories', category.url)"
|
24
|
+
/>
|
25
|
+
</template>
|
26
|
+
</Spoiler>
|
27
|
+
|
28
|
+
<hr class="mn-small">
|
29
|
+
|
30
|
+
<!-- Prices Filter -->
|
31
|
+
<Spoiler
|
32
|
+
class="radius-small o-hidden br-1px br-solid br-grey mn-small"
|
33
|
+
:status="false"
|
34
|
+
>
|
35
|
+
<template #header>
|
36
|
+
<p class="mn-r-auto t-medium p-big">{{ t('filters.price.title') }}</p>
|
37
|
+
<!-- SVG Icon -->
|
38
|
+
</template>
|
39
|
+
<template #content>
|
40
|
+
<Checkbox
|
41
|
+
v-for="(price, index) in prices"
|
42
|
+
:key="index"
|
43
|
+
:label="price.label"
|
44
|
+
:value="price.value"
|
45
|
+
class="w-100 mn-t-small bg-white radius-small pd-small"
|
46
|
+
:radio="selectedFilters.prices"
|
47
|
+
@change="emitFilterChange('prices', price.value)"
|
48
|
+
/>
|
49
|
+
</template>
|
50
|
+
</Spoiler>
|
51
|
+
|
52
|
+
<hr class="mn-small">
|
53
|
+
|
54
|
+
<!-- Delivery Filter -->
|
55
|
+
<Spoiler
|
56
|
+
class="radius-small o-hidden br-1px br-solid br-grey mn-small"
|
57
|
+
:status="false"
|
58
|
+
>
|
59
|
+
<template #header>
|
60
|
+
<p class="mn-r-auto t-medium p-big">Delivery</p>
|
61
|
+
<!-- SVG Icon -->
|
62
|
+
</template>
|
63
|
+
<template #content>
|
64
|
+
<Checkbox
|
65
|
+
v-for="(deliveryOption, index) in deliveryOptions"
|
66
|
+
:key="index"
|
67
|
+
:label="deliveryOption.label"
|
68
|
+
:value="deliveryOption.value"
|
69
|
+
class="w-100 mn-t-small bg-white radius-small pd-small"
|
70
|
+
:radio="selectedFilters.delivery"
|
71
|
+
@change="emitFilterChange('delivery', deliveryOption.value)"
|
72
|
+
/>
|
73
|
+
</template>
|
74
|
+
</Spoiler>
|
75
|
+
|
76
|
+
<hr class="mn-semi">
|
77
|
+
|
78
|
+
<!-- Reset filter -->
|
79
|
+
<button @click="resetFilters" class="bg-main w-100 button">{{ t('filters.reset') }}</button>
|
80
|
+
</div>
|
81
|
+
</template>
|
82
|
+
|
83
|
+
<script setup>
|
84
|
+
import { ref, watch } from 'vue'
|
85
|
+
import Spoiler from "@pf/src/components/Spoiler/Spoiler.vue"
|
86
|
+
import Checkbox from "@pf/src/components/Checkbox/Checkbox.vue"
|
87
|
+
import { useI18n } from 'vue-i18n'
|
88
|
+
|
89
|
+
import * as categories from '@pf/src/modules/products/store/categories';
|
90
|
+
|
91
|
+
await categories.actions.fetchCategories()
|
92
|
+
|
93
|
+
let selectedFilters = ref({
|
94
|
+
categories: [],
|
95
|
+
prices: [],
|
96
|
+
delivery: [],
|
97
|
+
extra: []
|
98
|
+
})
|
99
|
+
|
100
|
+
// Пропсы и данные, которые вы передаёте в компонент
|
101
|
+
const props = defineProps({
|
102
|
+
selectedFilters: Object,
|
103
|
+
prices: {
|
104
|
+
type: Array,
|
105
|
+
default: () => [
|
106
|
+
{ label: 'Under $5', value: { min: 0, max: 5 } },
|
107
|
+
{ label: '$5 to $10', value: { min: 5, max: 10 } },
|
108
|
+
{ label: '$10 to $20', value: { min: 10, max: 20 } },
|
109
|
+
{ label: '$20 and above', value: { min: 20, max: Infinity } }
|
110
|
+
]
|
111
|
+
},
|
112
|
+
deliveryOptions: {
|
113
|
+
type: Array,
|
114
|
+
default: () => [
|
115
|
+
{ label: 'Pickup', value: { min: 0, max: 25 } },
|
116
|
+
{ label: 'Courier', value: { min: 25, max: 50 } },
|
117
|
+
{ label: 'Post', value: { min: 50, max: 100 } }
|
118
|
+
]
|
119
|
+
}
|
120
|
+
})
|
121
|
+
|
122
|
+
const emit = defineEmits(['updateFilters', 'resetFilters'])
|
123
|
+
|
124
|
+
const emitFilterChange = (filterType, value) => {
|
125
|
+
emit('updateFilters', { filterType, value })
|
126
|
+
}
|
127
|
+
|
128
|
+
const resetFilters = () => {
|
129
|
+
emit('resetFilters')
|
130
|
+
}
|
131
|
+
const text = {
|
132
|
+
locale: 'en',
|
133
|
+
messages: {
|
134
|
+
en: {
|
135
|
+
categoriesTitle: 'Category',
|
136
|
+
categories: [],
|
137
|
+
filters: {
|
138
|
+
title: 'Filters',
|
139
|
+
price: {
|
140
|
+
title: 'Price',
|
141
|
+
from: 'From',
|
142
|
+
to: 'To'
|
143
|
+
},
|
144
|
+
filters: [],
|
145
|
+
reset: 'Reset Filters'
|
146
|
+
}
|
147
|
+
},
|
148
|
+
ru: {
|
149
|
+
categoriesTitle: 'Категория',
|
150
|
+
categories: [],
|
151
|
+
filters: {
|
152
|
+
title: 'Фильтры',
|
153
|
+
price: {
|
154
|
+
title: 'Цена',
|
155
|
+
from: 'От',
|
156
|
+
to: 'До'
|
157
|
+
},
|
158
|
+
filters: [],
|
159
|
+
reset: 'Сбросить фильтры',
|
160
|
+
}
|
161
|
+
}
|
162
|
+
}
|
163
|
+
}
|
164
|
+
|
165
|
+
categories.state.all.forEach( category => {
|
166
|
+
category.localization.forEach( localization => {
|
167
|
+
text.messages[localization.locale].categories.push(localization.text)
|
168
|
+
})
|
169
|
+
})
|
170
|
+
|
171
|
+
const { t } = useI18n(text)
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
// Добавьте свою локализацию и методы t, если они нужны
|
176
|
+
</script>
|
177
|
+
|
178
|
+
<style>
|
179
|
+
/* Ваши стили */
|
180
|
+
</style>
|
@@ -6,7 +6,7 @@
|
|
6
6
|
</div>
|
7
7
|
<carousel ref="myCarousel" :items-to-show="3" :transition="330" :wrapAround="true" :autoplay="3000" :pauseAutoplayOnHover="true" :breakpoints="breakpoints">
|
8
8
|
<slide class="pd-thin" v-for="(value, key, index) in products.state.all" :key="key">
|
9
|
-
<
|
9
|
+
<CardProduct class="carousel__item h-100 w-100" :product="value"/>
|
10
10
|
</slide>
|
11
11
|
</carousel>
|
12
12
|
</div>
|
@@ -23,7 +23,7 @@
|
|
23
23
|
import 'vue3-carousel/dist/carousel.css'
|
24
24
|
import { Carousel, Slide, Pagination, Navigation } from 'vue3-carousel'
|
25
25
|
|
26
|
-
import
|
26
|
+
import CardProduct from '@pf/src/modules/products/components/blocks/CardProduct.vue'
|
27
27
|
|
28
28
|
import * as products from '@pf/src/modules/products/store/products';
|
29
29
|
|
@@ -44,6 +44,18 @@
|
|
44
44
|
</div>
|
45
45
|
|
46
46
|
<div class="h-100 flex-justify flex col">
|
47
|
+
|
48
|
+
<IconEdit
|
49
|
+
@click="$router.push({
|
50
|
+
name: 'ProductEdit',
|
51
|
+
params: {
|
52
|
+
_id: product.organization,
|
53
|
+
product: product._id
|
54
|
+
}
|
55
|
+
})"
|
56
|
+
class="pos-absolute pos-t-regular pos-r-regular i-regular t-transp"
|
57
|
+
/>
|
58
|
+
|
47
59
|
<h2 v-if="recommendation" class="t-main t-semi p-big">{{t('airecommend')}}</h2>
|
48
60
|
<!-- Name -->
|
49
61
|
<h1 class="w-100 h1-product mn-thin">{{ product.name }}</h1>
|
@@ -83,6 +95,9 @@
|
|
83
95
|
import Images360 from '@pf/src/modules/products/components/blocks/Images360.vue'
|
84
96
|
import ImagesThumbnails from "@pf/src/modules/products/components/blocks/ImagesThumbnails.vue";
|
85
97
|
|
98
|
+
import IconEdit from '@pf/src/modules/icons/navigation/IconEdit.vue'
|
99
|
+
|
100
|
+
|
86
101
|
import THC from '@pf/src/modules/products/components/elements/THC.vue'
|
87
102
|
import Price from '@pf/src/modules/products/components/elements/Price.vue'
|
88
103
|
// import SelectElement from '@/components/elements/SelectElement.vue'
|
@@ -125,9 +140,9 @@ const text = {
|
|
125
140
|
}
|
126
141
|
}
|
127
142
|
|
128
|
-
props.product.localization.forEach(localization => {
|
129
|
-
text.messages[localization.locale].description = localization.text
|
130
|
-
})
|
143
|
+
// props.product.localization.forEach(localization => {
|
144
|
+
// if (localization) text.messages[localization.locale].description = localization.text
|
145
|
+
// })
|
131
146
|
|
132
147
|
const { t } = useI18n(text)
|
133
148
|
|