@ozdao/prometheus-framework 0.2.48 → 0.2.50
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/auth.server.js +27 -25
- package/dist/auth.server.mjs +27 -25
- package/dist/community.server.js +1 -1
- package/dist/community.server.mjs +1 -1
- package/dist/events.server.js +1 -1
- package/dist/events.server.mjs +1 -1
- package/dist/files.server.js +1 -1
- package/dist/files.server.mjs +1 -1
- package/dist/gallery.server.js +1 -1
- package/dist/gallery.server.mjs +1 -1
- package/dist/index-3981e903.mjs +217 -0
- package/dist/index-4eecfdb9.js +216 -0
- package/dist/main-203b36b6.mjs +13628 -0
- package/dist/main-_b1_i8mt.mjs +13606 -0
- package/dist/main-a7ae4ce5.js +91 -0
- package/dist/main-uiQFxEks.js +91 -0
- package/dist/middlewares.server.js +1 -1
- package/dist/middlewares.server.mjs +1 -1
- package/dist/node_modules/vue-select/dist/vue-select.es.cjs +1 -3
- package/dist/node_modules/vue-select/dist/vue-select.es.js +49 -645
- package/dist/organizations.server.js +13 -27
- package/dist/organizations.server.mjs +13 -27
- package/dist/products.server.js +95 -15
- package/dist/products.server.mjs +95 -15
- package/dist/prometheus-framework/src/components/Button/Button.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/Button/Button.vue.js +2 -225
- package/dist/prometheus-framework/src/components/Button/Button.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/components/Button/Button.vue2.js +225 -2
- package/dist/prometheus-framework/src/components/Checkbox/Checkbox.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/Checkbox/Checkbox.vue.js +61 -2
- package/dist/prometheus-framework/src/components/Checkbox/Checkbox.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/components/Checkbox/Checkbox.vue2.js +2 -61
- package/dist/prometheus-framework/src/components/Field/Field.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/Field/Field.vue.js +2 -76
- package/dist/prometheus-framework/src/components/Field/Field.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/components/Field/Field.vue2.js +76 -2
- package/dist/prometheus-framework/src/components/FieldBig/FieldBig.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/FieldBig/FieldBig.vue.js +1 -1
- package/dist/prometheus-framework/src/components/SelectMulti/SelectMulti.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/SelectMulti/SelectMulti.vue.js +6 -6
- package/dist/prometheus-framework/src/components/Tab/Tab.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/Tab/Tab.vue.js +2 -44
- package/dist/prometheus-framework/src/components/Tab/Tab.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/components/Tab/Tab.vue2.js +44 -2
- package/dist/prometheus-framework/src/modules/auth/components/layouts/Auth.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/components/layouts/Auth.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/auth/components/pages/EnterCode.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/components/pages/EnterCode.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/auth/components/pages/EnterPassword.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/components/pages/EnterPassword.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/auth/components/pages/Invite.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/components/pages/Invite.vue.js +44 -32
- package/dist/prometheus-framework/src/modules/auth/components/pages/ResetPassword.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/components/pages/ResetPassword.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/auth/components/pages/SignIn.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/components/pages/SignIn.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/auth/components/pages/SignUp.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/components/pages/SignUp.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/auth/store/auth.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/store/auth.js +45 -44
- package/dist/prometheus-framework/src/modules/auth/store/invites.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/store/invites.js +5 -5
- 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/community/components/pages/CreateBlogPost.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Embed.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/gallery/components/sections/GalleryWithCategories.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/sections/GalleryWithCategories.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/globals/components/blocks/CardHeader.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/globals/components/blocks/CardHeader.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/globals/store/globals.cjs +1 -1
- package/dist/prometheus-framework/src/modules/globals/store/globals.js +22 -21
- package/dist/prometheus-framework/src/modules/legal/components/pages/Legal.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/legal/components/pages/Legal.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/mobile/components/Menu/Menu.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/mobile/components/Menu/Menu.vue.js +11 -2
- package/dist/prometheus-framework/src/modules/mobile/components/Menu/Menu.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/modules/mobile/components/Menu/Menu.vue2.js +2 -11
- package/dist/prometheus-framework/src/modules/orders/components/pages/EditOrder.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/EditOrder.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/Orders.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormOrderDetails.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormOrderDetails.vue.js +1 -1
- 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 +17 -17
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/DepartmentMemberModify.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/DepartmentMemberModify.vue.js +49 -42
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/User.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/User.vue.js +47 -15
- package/dist/prometheus-framework/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/elements/ButtonToggleMembership.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 +38 -37
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +249 -61
- 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 +78 -45
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.js +161 -86
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.js +52 -54
- 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 +20 -26
- package/dist/prometheus-framework/src/modules/organizations/organizations.client.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/organizations.client.js +40 -46
- package/dist/prometheus-framework/src/modules/organizations/store/departments.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/store/departments.js +34 -30
- package/dist/prometheus-framework/src/modules/organizations/store/memberships.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/store/memberships.js +30 -28
- 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 +18 -18
- package/dist/prometheus-framework/src/modules/products/components/blocks/LeftoverPositions.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/LeftoverPositions.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/ListPositions.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/ListPositions.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Leftovers.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.js +33 -28
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.js +123 -113
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductsBackoffice.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductsBackoffice.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/EditModifications.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/EditModifications.vue.js +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 +2 -2
- package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/store/products.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/store/products.js +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/users/components/pages/Profile.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/users/components/pages/Profile.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/users/components/pages/ProfileBlogposts.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/users/components/pages/ProfileBlogposts.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/users/components/pages/ProfileEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/users/components/pages/ProfileEdit.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/users/components/pages/ProfileEvents.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/users/components/pages/ProfileEvents.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/wallet/components/pages/Wallet.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/wallet/components/pages/Wallet.vue.js +1 -1
- package/dist/prometheus-framework.cjs.js +1 -1
- package/dist/prometheus-framework.es.js +1 -1
- package/dist/reports.server.js +1 -1
- package/dist/reports.server.mjs +1 -1
- package/dist/style.css +1 -1
- package/dist/web-7p76PGnO.mjs +55 -0
- package/dist/web-c63f0ecc.js +1 -0
- package/dist/web-d8173758.mjs +55 -0
- package/dist/web-dn8vgptQ.js +1 -0
- package/package.json +1 -1
- package/src/components/SelectMulti/SelectMulti.vue +1 -1
- package/src/modules/auth/components/pages/Invite.vue +17 -6
- package/src/modules/auth/controllers/auth.controller.js +24 -16
- package/src/modules/auth/controllers/invites.controller.js +17 -8
- package/src/modules/auth/store/auth.js +8 -1
- package/src/modules/auth/store/invites.js +1 -0
- package/src/modules/globals/store/globals.js +5 -1
- package/src/modules/landing/components/blocks/MapBlock.vue +37 -0
- package/src/modules/landing/components/pages/404.vue +3 -0
- package/src/modules/landing/components/pages/Governance.vue +155 -0
- package/src/modules/landing/components/pages/Home.vue +52 -0
- package/src/modules/landing/components/pages/Hotel.vue +54 -0
- package/src/modules/landing/components/pages/Page.vue +184 -0
- package/src/modules/landing/components/sections/AboutSection.vue +69 -0
- package/src/modules/landing/components/sections/Examples.vue +90 -0
- package/src/modules/landing/components/sections/FeatureSection.vue +80 -0
- package/src/modules/landing/components/sections/GiftSection.vue +63 -0
- package/src/modules/landing/components/sections/HeroSection.vue +74 -0
- package/src/modules/landing/components/sections/HowItWorksSection.vue +88 -0
- package/src/modules/landing/components/sections/HowToBuyWDR.vue +131 -0
- package/src/modules/landing/components/sections/InstagramSection.vue +181 -0
- package/src/modules/landing/components/sections/MapSection.vue +91 -0
- package/src/modules/landing/components/sections/SectionsSection.vue +69 -0
- package/src/modules/landing/components/sections/SliderFeatures.vue +131 -0
- package/src/modules/landing/components/sections/WhatIsWDRSection.vue +116 -0
- package/src/modules/landing/router/landing.js +34 -0
- package/src/modules/middlewares/server/verifySignUp.js +4 -0
- package/src/modules/organizations/components/blocks/CardDepartment.vue +3 -3
- package/src/modules/organizations/components/blocks/DepartmentMemberModify.vue +52 -44
- package/src/modules/organizations/components/blocks/User.vue +42 -10
- package/src/modules/organizations/components/pages/Department.vue +7 -6
- package/src/modules/organizations/components/pages/DepartmentEdit.vue +110 -134
- package/src/modules/organizations/components/pages/Members.vue +85 -26
- package/src/modules/organizations/components/pages/Organization.vue +60 -4
- package/src/modules/organizations/components/sections/MembersAdd.vue +27 -34
- package/src/modules/organizations/components/sections/Organizations.vue +0 -1
- package/src/modules/organizations/controllers/memberships.controller.js +6 -2
- package/src/modules/organizations/controllers/organizations.controller.js +1 -1
- package/src/modules/organizations/models/department.model.js +0 -19
- package/src/modules/organizations/models/membership.model.js +4 -0
- package/src/modules/organizations/organizations.client.js +1 -6
- package/src/modules/organizations/store/departments.js +48 -44
- package/src/modules/organizations/store/memberships.js +11 -3
- package/src/modules/products/components/blocks/CardPosition.vue +2 -2
- package/src/modules/products/components/pages/Product.vue +6 -1
- package/src/modules/products/components/pages/ProductEdit.vue +48 -28
- package/src/modules/products/controllers/products.controller.js +87 -24
- package/src/modules/products/models/product.model.js +16 -1
- package/src/modules/products/store/products.js +1 -1
- package/src/modules/users/components/pages/ProfileOrganizations.vue +41 -7
- package/src/modules/organizations/components/sections/FeedDepartments.vue +0 -64
- package/src/modules/organizations/components/sections/MembersList.vue +0 -85
- package/src/modules/organizations/store/invites.js +0 -93
@@ -9,7 +9,7 @@ const сontrollerFactory = (db) => {
|
|
9
9
|
|
10
10
|
const getOneByCode = async (req, res) => {
|
11
11
|
try {
|
12
|
-
const invite = await Invite.findOne({ code: req.params._id })
|
12
|
+
const invite = await Invite.findOne({ code: req.params._id })
|
13
13
|
if (!invite) {
|
14
14
|
return res.status(404).send({ message: "Приглашение не найдено" });
|
15
15
|
}
|
@@ -21,7 +21,7 @@ const сontrollerFactory = (db) => {
|
|
21
21
|
|
22
22
|
const read = async (req, res) => {
|
23
23
|
try {
|
24
|
-
const invites = await Invite.find({ organization: req.params._id })
|
24
|
+
const invites = await Invite.find({ organization: req.params._id })
|
25
25
|
if (!invites) {
|
26
26
|
return res.status(404).send({ message: "Invites not found" });
|
27
27
|
}
|
@@ -34,22 +34,29 @@ const сontrollerFactory = (db) => {
|
|
34
34
|
const create = async (req, res) => {
|
35
35
|
const userInviter = JSON.parse(req.cookies.user);
|
36
36
|
const organizationId = req.params._id;
|
37
|
+
|
37
38
|
try {
|
38
39
|
const invites = req.body;
|
39
40
|
for (let invite of invites) {
|
40
41
|
let user = null;
|
42
|
+
|
41
43
|
if (invite.contact.includes('@')) {
|
42
44
|
user = await User.findOne({ email: invite.contact });
|
43
45
|
} else {
|
44
46
|
user = await User.findOne({ phone: invite.contact });
|
45
47
|
}
|
48
|
+
|
46
49
|
if (user) {
|
50
|
+
|
51
|
+
console.log(invite)
|
52
|
+
|
47
53
|
const membership = new Membership({
|
48
54
|
user: user._id,
|
49
|
-
|
50
|
-
|
55
|
+
type: 'organization',
|
56
|
+
target: organizationId,
|
51
57
|
role: invite.role,
|
52
58
|
});
|
59
|
+
|
53
60
|
await membership.save();
|
54
61
|
res.status(200).json({ message: 'Invites sent successfully!' });
|
55
62
|
} else {
|
@@ -65,14 +72,15 @@ const сontrollerFactory = (db) => {
|
|
65
72
|
|
66
73
|
if (savedInvite.invitedEmail) {
|
67
74
|
const to = savedInvite.invitedEmail;
|
68
|
-
const subject = '
|
69
|
-
const text =
|
75
|
+
const subject = 'You have been added to the organization';
|
76
|
+
const text = `You have been invited to join an organization on ${process.env.APP_NAME}! Use this link to register: ${process.env.API_URL}/auth/invite?inviteCode=${newInvite.code}&type=email"`;
|
70
77
|
await sendEmail(to, subject, text);
|
71
78
|
}
|
72
79
|
|
73
80
|
if (savedInvite.invitedPhone !== null) {
|
74
81
|
const phone = savedInvite.invitedPhone;
|
75
|
-
const message =
|
82
|
+
const message = `You have been invited to join an organization on ${process.env.APP_NAME}! Use this link to register: ${process.env.API_URL}/auth/invite?inviteCode=${newInvite.code}&type=phone`;
|
83
|
+
|
76
84
|
await sendSms(phone, message);
|
77
85
|
}
|
78
86
|
|
@@ -87,7 +95,8 @@ const сontrollerFactory = (db) => {
|
|
87
95
|
|
88
96
|
const deleteInvite = async (req, res) => {
|
89
97
|
try {
|
90
|
-
const invite = await Invite.
|
98
|
+
const invite = await Invite.findOneAndDelete({ _id: req.params._id });
|
99
|
+
|
91
100
|
if (!invite) {
|
92
101
|
return res.status(404).send({ message: "Invite not found" });
|
93
102
|
}
|
@@ -86,8 +86,13 @@
|
|
86
86
|
},
|
87
87
|
|
88
88
|
async signup(user, type, invite) {
|
89
|
+
|
90
|
+
|
89
91
|
const { password, passwordRepeat } = state.user;
|
90
92
|
|
93
|
+
console.log(password)
|
94
|
+
console.log(passwordRepeat)
|
95
|
+
|
91
96
|
if (password !== passwordRepeat) {
|
92
97
|
const error = {
|
93
98
|
response: {
|
@@ -99,7 +104,7 @@
|
|
99
104
|
}
|
100
105
|
|
101
106
|
try {
|
102
|
-
user.phone = user.phone.number
|
107
|
+
if (user.phone?.number) user.phone = user.phone.number
|
103
108
|
|
104
109
|
const response = await $axios.post('/api/auth/signup', {
|
105
110
|
...user,
|
@@ -107,6 +112,8 @@
|
|
107
112
|
inviteCode: invite
|
108
113
|
});
|
109
114
|
|
115
|
+
console.log(response)
|
116
|
+
|
110
117
|
if (response.data.accessToken) {
|
111
118
|
setCookie('user', response.data);
|
112
119
|
}
|
@@ -128,7 +128,11 @@ i18n.global.mergeLocaleMessage('en', errorMessages.en);
|
|
128
128
|
|
129
129
|
// Mutations
|
130
130
|
function setError(error) {
|
131
|
-
let errorData
|
131
|
+
let errorData
|
132
|
+
|
133
|
+
errorData = error
|
134
|
+
|
135
|
+
if (error?.response?.data) errorData = error.response.data
|
132
136
|
|
133
137
|
if (error && errorData.errorCode) {
|
134
138
|
state.error.message = i18n.global.t(`errors.${errorData.errorCode}`);
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<template>
|
2
|
+
<div :class="{'cols-2-2_1': map }" class="o-hidden radius-medium bg-white flex-nowrap flex">
|
3
|
+
<!-- Left col -->
|
4
|
+
<div class="pd-medium col">
|
5
|
+
<h3 class="mn-b-small">{{name}}</h3>
|
6
|
+
<a :href="link" v-if="link" target="_blank" class="t-semi mn-b-medium t-main">Open Google Maps</a>
|
7
|
+
<p>{{text}}</p>
|
8
|
+
</div>
|
9
|
+
<!-- Right col -->
|
10
|
+
<div v-if="map" class="google-map col">
|
11
|
+
<iframe id="gmap_canvas" :src="map"></iframe>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
</template>
|
15
|
+
|
16
|
+
|
17
|
+
<script setup>
|
18
|
+
import { useRouter } from 'vue-router'
|
19
|
+
|
20
|
+
const router = useRouter()
|
21
|
+
|
22
|
+
const props = defineProps([
|
23
|
+
'name',
|
24
|
+
'adress',
|
25
|
+
'url',
|
26
|
+
'map',
|
27
|
+
'link',
|
28
|
+
'text'
|
29
|
+
])
|
30
|
+
|
31
|
+
|
32
|
+
</script>
|
33
|
+
|
34
|
+
<style lang="scss">
|
35
|
+
</style>
|
36
|
+
|
37
|
+
|
@@ -0,0 +1,155 @@
|
|
1
|
+
<template>
|
2
|
+
<div class="pd-thin">
|
3
|
+
<SectionHeroToken class="mn-b-extra h-min-100"/>
|
4
|
+
<WhatIsWDRSection class="mn-b-thin"/>
|
5
|
+
<SectionFeatures
|
6
|
+
:textData="{
|
7
|
+
messages: {
|
8
|
+
en: {
|
9
|
+
title: 'How Its Works?',
|
10
|
+
subtitle: 'Earn Weeder Tokens while you get lit on our dank buds. Use them to buy more weed or cash out and spend it on snacks.',
|
11
|
+
features: [{
|
12
|
+
icon: '1',
|
13
|
+
title: 'Join Our Stoned Community',
|
14
|
+
description: 'Find the dankest strains on the market and start your journey to the clouds!',
|
15
|
+
},{
|
16
|
+
icon: '2',
|
17
|
+
title: 'Shop While You are High',
|
18
|
+
description: 'Order our premium bud and accessories with just a few clicks and get them delivered right to your door!',
|
19
|
+
},{
|
20
|
+
icon: '3',
|
21
|
+
title: 'Get Your Share',
|
22
|
+
description: 'As a loyal customer, you earn exclusive Weeder tokens as cashback. Get high and get paid!',
|
23
|
+
}]
|
24
|
+
},
|
25
|
+
ru: {
|
26
|
+
title: 'Как Это Работает?',
|
27
|
+
subtitle: 'Зарабатывайте токены Weeder, когда вы курите наши лучшие сорта травы. Используйте их, чтобы купить еще травы или выведите и купите себе вкусняшки.',
|
28
|
+
features: [{
|
29
|
+
icon: '1',
|
30
|
+
title: 'Присоединяйтесь к нашему сообществу',
|
31
|
+
description: 'Найдите лучшие сорта травы на рынке и начните свой путь к облакам!',
|
32
|
+
},{
|
33
|
+
icon: '2',
|
34
|
+
title: 'Закупатейсь с удобством',
|
35
|
+
description: 'Закажите нашу премиум-траву и аксессуары всего несколькими кликами и получите их доставку прямо к двери!',
|
36
|
+
},{
|
37
|
+
icon: '3',
|
38
|
+
title: 'Получите свою долю от прибыли',
|
39
|
+
description: 'Как лояльный клиент, вы зарабатываете эксклюзивные токены Weeder на свой кошелек в качестве кэшбэка. Курите и зарабатывайте!',
|
40
|
+
}]
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}"
|
44
|
+
/>
|
45
|
+
<SectionRoadmap
|
46
|
+
class="mn-b-thin"
|
47
|
+
/>
|
48
|
+
<HowToBuyWDR
|
49
|
+
class="mn-b-thin"
|
50
|
+
/>
|
51
|
+
<SectionGuide
|
52
|
+
:textData="{
|
53
|
+
messages: {
|
54
|
+
en: {
|
55
|
+
title: 'If you still wonder?',
|
56
|
+
FAQ: [{
|
57
|
+
title: 'How does Weeder Token support the Weeder ecosystem?',
|
58
|
+
description: 'Weeder Token (WDT) is a fundamental component of the Weeder ecosystem, ensuring its operation, integration, and development. WDT tokens are used to pay for goods and services, participate in platform governance, and attract investments.'
|
59
|
+
},{
|
60
|
+
title: ' What security measures are in place to protect WDT tokens?',
|
61
|
+
description: 'WDT tokens are protected by modern cryptographic algorithms and blockchain technologies (Polygon Network), ensuring transaction security and asset storage. Users should also use reliable wallets and follow security recommendations for maximum protection of their tokens.'
|
62
|
+
},{
|
63
|
+
title: 'Can I use WDT tokens to pay on other platforms?',
|
64
|
+
description: 'Currently, WDT tokens are primarily used within the Weeder ecosystem. However, their use may be expanded to third-party platforms and services that Weeder collaborates or plans to collaborate with in the future.'
|
65
|
+
},{
|
66
|
+
title: 'What is the role of WDT in governing the Weeder platform?',
|
67
|
+
description: 'Weeder Token allows token holders to actively participate in platform governance. With its help, users can vote on various proposals, initiatives, and developments, influencing the future development of the Weeder ecosystem.'
|
68
|
+
},{
|
69
|
+
title: 'What are the benefits of using WDT for platform users?',
|
70
|
+
description: 'Using Weeder Token provides users with a range of benefits, such as the ability to purchase goods and services on the platform, participate in platform governance, invest in the Weeder ecosystem, and earn income from staking.'
|
71
|
+
},{
|
72
|
+
title: 'What is the perspective for WDT growth and development in the future?',
|
73
|
+
description: 'The growth and development of Weeder Token in the future depend on the success and expansion of the Weeder ecosystem. An increase in user numbers, collaboration with partners, and the implementation of new features and services can significantly increase the value and utility of Weeder Token.'
|
74
|
+
}]
|
75
|
+
},
|
76
|
+
ru: {
|
77
|
+
title: 'У вас еще есть вопросы?',
|
78
|
+
FAQ: [{
|
79
|
+
title: 'Как Weeder Token поддерживает экосистему Weeder?',
|
80
|
+
description: 'Weeder Token (WDT) является основным компонентом экосистемы Weeder, обеспечивая ее функционирование, интеграцию и развитие. Токены WDT используются для оплаты товаров и услуг, участия в управлении платформы и привлечения инвестиций.'
|
81
|
+
},{
|
82
|
+
title: 'Какие меры безопасности применяются для защиты токенов WDT?',
|
83
|
+
description: 'Токены WDT защищены современными криптографическими алгоритмами и технологиями блокчейна, обеспечивающими безопасность транзакций и хранения средств. Пользователи также должны использовать надежные кошельки и следовать рекомендациям по безопасности для максимальной защиты своих токенов.'
|
84
|
+
},{
|
85
|
+
title: 'Могу ли я использовать токены WDT для оплаты на других платформах?',
|
86
|
+
description: 'В настоящее время токены WDT преимущественно используются в рамках экосистемы Weeder. Однако в будущем их использование может быть расширено на сторонние платформы и сервисы, с которыми Weeder сотрудничает или планирует сотрудничать.'
|
87
|
+
},{
|
88
|
+
title: 'Какова роль WDT в управлении платформой Weeder?',
|
89
|
+
description: 'Weeder Token позволяет держателям токенов активно участвовать в управлении платформой. С его помощью пользователи могут голосовать по различным предложениям, инициативам и разработкам, влияя на будущее развитие экосистемы Weeder.'
|
90
|
+
},{
|
91
|
+
title: 'В чем преимущества использования WDT для пользователей платформы?',
|
92
|
+
description: 'Использование Weeder Token предоставляет пользователям ряд преимуществ, таких как возможность покупать товары и услуги на платформе, участвовать в управлении платформой, инвестировать в экосистему Weeder и получать доход от стейкинга.'
|
93
|
+
},{
|
94
|
+
title: 'Какова перспектива развития и роста WDT в будущем?',
|
95
|
+
description: 'Рост и развитие Weeder Token в будущем зависят от успешности и расширения экосистемы Weeder. Увеличение количества пользователей, сотрудничество с партнерами и внедрение новых возможностей и услуг могут существенно повысить спрос к токенам.'
|
96
|
+
}]
|
97
|
+
}
|
98
|
+
}
|
99
|
+
}"
|
100
|
+
/>
|
101
|
+
<!-- Partials (need to remove) -->
|
102
|
+
<Footer/>
|
103
|
+
</div>
|
104
|
+
</template>
|
105
|
+
|
106
|
+
<script setup>
|
107
|
+
import { computed } from 'vue'
|
108
|
+
|
109
|
+
import SectionHeroToken from '@pf/src/modules/landing/components/sections/SectionHeroToken.vue'
|
110
|
+
import SectionFeatures from '@pf/src/modules/landing/components/sections/SectionFeatures.vue'
|
111
|
+
import SectionGuide from '@pf/src/modules/landing/components/sections/SectionGuide.vue'
|
112
|
+
import SectionRoadmap from '@pf/src/modules/landing/components/sections/SectionRoadmap.vue'
|
113
|
+
|
114
|
+
import WhatIsWDRSection from '@pf/src/modules/landing/components/sections/WhatIsWDRSection.vue'
|
115
|
+
import HowToBuyWDR from '@pf/src/modules/landing/components/sections/HowToBuyWDR.vue'
|
116
|
+
|
117
|
+
|
118
|
+
import Footer from '@pf/src/components/Footer/Footer.vue'
|
119
|
+
|
120
|
+
|
121
|
+
import { useMeta } from 'vue-meta'
|
122
|
+
import { useI18n } from 'vue-i18n'
|
123
|
+
|
124
|
+
const description = {
|
125
|
+
messages: {
|
126
|
+
en: {
|
127
|
+
meta: {
|
128
|
+
title: "Governance – Fin.Kan House is Cannabis friendly hotel in Phuket",
|
129
|
+
description: "At Fingan House, we encourage the exploration of Phuket’s finest cannabis products and are proud to provide a fully stocked bar of our signature product offerings to those looking to enjoy their experience to the fullest.",
|
130
|
+
|
131
|
+
},
|
132
|
+
},
|
133
|
+
ru: {
|
134
|
+
meta: {
|
135
|
+
title: "Управление – Fin.Kan House это каннабис-френдли отель на Пхукете",
|
136
|
+
description: "Приходите полюбоваться удивительными закатами в 18:00 или увидеть ночные огни Пхукета во всей красе после захода солнца. Купите немного каннабиса и наслаждайтесь видами — это действительно так просто!",
|
137
|
+
}
|
138
|
+
}
|
139
|
+
}
|
140
|
+
}
|
141
|
+
|
142
|
+
const { t } = useI18n(description)
|
143
|
+
|
144
|
+
|
145
|
+
const computedMeta = computed(() => ({
|
146
|
+
title: t('meta.title'),
|
147
|
+
description: t('meta.description')
|
148
|
+
}))
|
149
|
+
|
150
|
+
const { meta, onRemoved } = useMeta(computedMeta)
|
151
|
+
</script>
|
152
|
+
|
153
|
+
<style lang="scss">
|
154
|
+
|
155
|
+
</style>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
<template>
|
2
|
+
<div>
|
3
|
+
<HeroRecommendation/>
|
4
|
+
<MenuSection/>
|
5
|
+
<PopularProducts/>
|
6
|
+
<HotPosts/>
|
7
|
+
<SectionsSection/>
|
8
|
+
<SectionEarn/>
|
9
|
+
<SectionFeatures/>
|
10
|
+
<MobileApp/>
|
11
|
+
<JoinUs/>
|
12
|
+
<SubscribeNewsletter/>
|
13
|
+
<div class="pd-thin">
|
14
|
+
<SectionGuide/>
|
15
|
+
</div>
|
16
|
+
<!-- <FeatureSection /> -->
|
17
|
+
<!-- <HowItWorksSection /> -->
|
18
|
+
<!-- <HeroSection /> -->
|
19
|
+
<Footer/>
|
20
|
+
</div>
|
21
|
+
</template>
|
22
|
+
|
23
|
+
<script setup="props">
|
24
|
+
// Need to refactor
|
25
|
+
import SectionsSection from '@pf/src/modules/landing/components/sections/SectionsSection.vue'
|
26
|
+
// Module landing
|
27
|
+
import SectionFeatures from '@pf/src/modules/landing/components/sections/SectionFeatures.vue'
|
28
|
+
import MobileApp from '@pf/src/modules/landing/components/sections/MobileApp.vue'
|
29
|
+
import SectionGuide from '@pf/src/modules/landing/components/sections/SectionGuide.vue'
|
30
|
+
import SectionEarn from '@pf/src/modules/landing/components/sections/SectionEarn.vue'
|
31
|
+
// Module community
|
32
|
+
import HotPosts from '@pf/src/modules/community/components/sections/HotPosts.vue'
|
33
|
+
// Module Products
|
34
|
+
import MenuSection from '@pf/src/modules/products/components/sections/MenuSection.vue'
|
35
|
+
import PopularProducts from '@pf/src/modules/products/components/sections/PopularProducts.vue'
|
36
|
+
import HeroRecommendation from '@pf/src/modules/products/components/sections/HeroRecommendation.vue'
|
37
|
+
// Not working
|
38
|
+
import JoinUs from '@pf/src/modules/community/components/sections/JoinUs.vue'
|
39
|
+
import SubscribeNewsletter from '@pf/src/modules/applications/components/sections/SubscribeNewsletter.vue'
|
40
|
+
import HeroSection from '@pf/src/modules/landing/components/sections/HeroSection.vue'
|
41
|
+
import AboutSection from '@pf/src/modules/landing/components/sections/AboutSection.vue'
|
42
|
+
import HowItWorksSection from '@pf/src/modules/landing/components/sections/HowItWorksSection.vue'
|
43
|
+
import MapSection from '@pf/src/modules/landing/components/sections/MapSection.vue'
|
44
|
+
|
45
|
+
import Footer from '@pf/src/components/Footer/Footer.vue'
|
46
|
+
|
47
|
+
|
48
|
+
</script>
|
49
|
+
|
50
|
+
<style lang="scss">
|
51
|
+
|
52
|
+
</style>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
<template>
|
2
|
+
<div>
|
3
|
+
<MapSection />
|
4
|
+
<AboutSection />
|
5
|
+
<SectionGuide />
|
6
|
+
<!-- Partials (need to remove) -->
|
7
|
+
<Footer/>
|
8
|
+
</div>
|
9
|
+
</template>
|
10
|
+
|
11
|
+
<script setup>
|
12
|
+
import { computed } from 'vue'
|
13
|
+
|
14
|
+
import AboutSection from '@pf/src/modules/landing/components/sections/AboutSection.vue'
|
15
|
+
import SectionGuide from '@pf/src/modules/landing/components/sections/SectionGuide.vue'
|
16
|
+
import MapSection from '@pf/src/modules/landing/components/sections/MapSection.vue'
|
17
|
+
import Footer from '@pf/src/components/Footer/Footer.vue'
|
18
|
+
|
19
|
+
import { useMeta } from 'vue-meta'
|
20
|
+
import { useI18n } from 'vue-i18n'
|
21
|
+
|
22
|
+
|
23
|
+
const text = {
|
24
|
+
messages: {
|
25
|
+
en: {
|
26
|
+
meta: {
|
27
|
+
title: "Hotel – Fin.Kan House is Cannabis friendly hotel in Phuket",
|
28
|
+
description: "At Fingan House, we encourage the exploration of Phuket’s finest cannabis products and are proud to provide a fully stocked bar of our signature product offerings to those looking to enjoy their experience to the fullest.",
|
29
|
+
|
30
|
+
},
|
31
|
+
},
|
32
|
+
ru: {
|
33
|
+
meta: {
|
34
|
+
title: "Отель – Fin.Kan House это каннабис-френдли отель на Пхукете",
|
35
|
+
description: "Приходите полюбоваться удивительными закатами в 18:00 или увидеть ночные огни Пхукета во всей красе после захода солнца. Купите немного каннабиса и наслаждайтесь видами — это действительно так просто!",
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
const { t } = useI18n(text)
|
42
|
+
|
43
|
+
|
44
|
+
const computedMeta = computed(() => ({
|
45
|
+
title: t('meta.title'),
|
46
|
+
description: t('meta.description')
|
47
|
+
}))
|
48
|
+
|
49
|
+
const { meta, onRemoved } = useMeta(computedMeta)
|
50
|
+
</script>
|
51
|
+
|
52
|
+
<style lang="scss">
|
53
|
+
|
54
|
+
</style>
|
@@ -0,0 +1,184 @@
|
|
1
|
+
<template>
|
2
|
+
<div >
|
3
|
+
|
4
|
+
<div class="breadcrumbs section">
|
5
|
+
<router-link to="/">
|
6
|
+
<svg class="home" viewBox="0 0 10 9" fill="none" xmlns="http://www.w3.org/2000/svg">
|
7
|
+
<path fill="rgb(var(--black))" d="M0.494141 4.26391C0.494141 4.48862 0.659906 4.66912 0.928813 4.66912C1.05037 4.66912 1.16825 4.6065 1.27139 4.52177L1.64344 4.20866V7.56448C1.64344 8.13545 1.98971 8.47803 2.5791 8.47803H7.56678C8.15616 8.47803 8.50243 8.13545 8.50243 7.56448V4.19392L8.8929 4.52177C8.99604 4.6065 9.11392 4.66912 9.23916 4.66912C9.48597 4.66912 9.67015 4.5144 9.67015 4.27128C9.67015 4.1313 9.61121 4.01343 9.5007 3.92133L8.50243 3.08146V1.47538C8.50243 1.30961 8.3956 1.1991 8.22984 1.1991H7.63308C7.46732 1.1991 7.35313 1.30961 7.35313 1.47538V2.11634L5.66969 0.70181C5.31606 0.403433 4.85928 0.403433 4.50197 0.70181L0.663589 3.92133C0.553079 4.01711 0.494141 4.14235 0.494141 4.26391ZM6.13752 5.26219C6.13752 5.08906 6.02701 4.97855 5.85387 4.97855H4.31779C4.14097 4.97855 4.02678 5.08906 4.02678 5.26219V7.63447H2.83327C2.60856 7.63447 2.48332 7.50922 2.48332 7.28084V3.5014L4.90349 1.47538C5.01768 1.37592 5.15029 1.37592 5.26817 1.47538L7.66255 3.48298V7.28084C7.66255 7.50922 7.53731 7.63447 7.3126 7.63447H6.13752V5.26219Z"/>
|
8
|
+
</svg>
|
9
|
+
<span>{{t('breadcrumbs.home')}}</span>
|
10
|
+
</router-link>
|
11
|
+
|
12
|
+
|
13
|
+
<svg class="chevron" viewBox="0 0 4 8" fill="none" xmlns="http://www.w3.org/2000/svg">
|
14
|
+
<path d="M4 3.99992C4 3.83673 3.94307 3.70391 3.81025 3.57867L0.899431 0.732369C0.800759 0.629902 0.679317 0.580566 0.531309 0.580566C0.239089 0.580566 0 0.815861 0 1.10808C0 1.25229 0.0607211 1.38512 0.166983 1.49138L2.74763 3.99613L0.166983 6.50846C0.0607211 6.61093 0 6.74375 0 6.89176C0 7.18398 0.239089 7.41928 0.531309 7.41928C0.675522 7.41928 0.800759 7.36994 0.899431 7.26747L3.81025 4.42117C3.94307 4.29594 4 4.15931 4 3.99992Z" fill="rgb(var(--black))"/>
|
15
|
+
</svg>
|
16
|
+
|
17
|
+
<router-link v-if="page" :to="'/pages/' + page.url">
|
18
|
+
<span v-if="$i18n.locale === 'en'">{{page.localization[0].text}}</span>
|
19
|
+
<span v-if="$i18n.locale === 'ru'">{{page.localization[1].text}}</span>
|
20
|
+
<!-- {{$i18n.locale}} -->
|
21
|
+
</router-link >
|
22
|
+
|
23
|
+
</div>
|
24
|
+
|
25
|
+
|
26
|
+
<div class="page-wrapper cols-2-1_3 gap-big section">
|
27
|
+
<ul class="w-100 pd-medium menu-tabs">
|
28
|
+
<p class="mn-b-medium t-semi p-medium">{{ t('information') }}</p>
|
29
|
+
<li v-for="(page,index) in pages" :class="{'product-tab-active':route.params.url === page.url}" class="product-tab">
|
30
|
+
|
31
|
+
<router-link :to="{ name: 'Page', params: { url: page.url}}" >
|
32
|
+
<span v-html="t('pages[' + index + ']')"></span>
|
33
|
+
</router-link>
|
34
|
+
</li>
|
35
|
+
</ul>
|
36
|
+
<section class="page ">
|
37
|
+
<h1 class="mn-b-small">
|
38
|
+
<span>{{ t('title') }}</span>
|
39
|
+
</h1>
|
40
|
+
<hr class="mn-b-semi">
|
41
|
+
<div class="page-content-wrapper">
|
42
|
+
{{t('content')}}
|
43
|
+
</div>
|
44
|
+
|
45
|
+
</section>
|
46
|
+
</div>
|
47
|
+
<!-- Partials (need to remove) -->
|
48
|
+
<Footer/>
|
49
|
+
|
50
|
+
</div>
|
51
|
+
</template>
|
52
|
+
|
53
|
+
<script setup>
|
54
|
+
// Import libs
|
55
|
+
import { computed, onMounted } from 'vue'
|
56
|
+
import { useStore } from '@/store'
|
57
|
+
import { useRoute } from 'vue-router'
|
58
|
+
import { useI18n } from 'vue-i18n'
|
59
|
+
import { useMeta } from 'vue-meta'
|
60
|
+
|
61
|
+
import * as marked from 'marked';
|
62
|
+
import Footer from '@pf/src/components/Footer/Footer.vue'
|
63
|
+
|
64
|
+
|
65
|
+
// const renderer = {
|
66
|
+
// image(image) {
|
67
|
+
// var imageRequired = require('../../..@/assets/images/cases/' + image)
|
68
|
+
// return `<img src='${imageRequired.default}' />`;
|
69
|
+
// }
|
70
|
+
// };
|
71
|
+
|
72
|
+
// marked.use({ renderer });
|
73
|
+
// Import components
|
74
|
+
// Accessing router and store
|
75
|
+
const text = {
|
76
|
+
locale: 'en',
|
77
|
+
messages: {
|
78
|
+
en: {
|
79
|
+
breadcrumbs: {
|
80
|
+
home: 'Home',
|
81
|
+
store: 'Store',
|
82
|
+
},
|
83
|
+
information: "Information",
|
84
|
+
adress: 'Adress',
|
85
|
+
support: 'Get Online Support',
|
86
|
+
request: 'Contact Number',
|
87
|
+
time: "24 / 7 Seven days a week",
|
88
|
+
copyright: "Weeder, 2022. Proudly created with OZ DAO.",
|
89
|
+
pages: [],
|
90
|
+
},
|
91
|
+
ru: {
|
92
|
+
breadcrumbs: {
|
93
|
+
home: 'Главная',
|
94
|
+
store: 'Store',
|
95
|
+
},
|
96
|
+
information: "Информация",
|
97
|
+
adress: 'Адресс',
|
98
|
+
support: 'Онлайн Поддержка',
|
99
|
+
request: 'Контактный Телефон',
|
100
|
+
time: "24 / 7 без перерывов",
|
101
|
+
copyright: "Weeder, 2022. С гордостью создано OZ DAO.",
|
102
|
+
pages: [],
|
103
|
+
title: '',
|
104
|
+
content: '',
|
105
|
+
}
|
106
|
+
}
|
107
|
+
}
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
const { t, locale } = useI18n(text)
|
112
|
+
const store = useStore()
|
113
|
+
const route = useRoute()
|
114
|
+
// Data prefetching
|
115
|
+
if (route.params.url) {
|
116
|
+
await store.dispatch('pages/fetch', route.params.url)
|
117
|
+
} else {
|
118
|
+
store.commit('pages/init');
|
119
|
+
}
|
120
|
+
|
121
|
+
await store.dispatch('pages/fetchAll')
|
122
|
+
|
123
|
+
const pages = computed(() => store.pages.state.all)
|
124
|
+
console.log(store.pages.state)
|
125
|
+
|
126
|
+
const page = computed(() => store.pages.state.current)
|
127
|
+
|
128
|
+
const content = computed(() => marked(t('content'), { sanitize: true }))
|
129
|
+
|
130
|
+
store.pages.state.all.forEach( page => {
|
131
|
+
page.localization.forEach( localization => {
|
132
|
+
text.messages[localization.locale].pages.push(localization.text)
|
133
|
+
})
|
134
|
+
})
|
135
|
+
|
136
|
+
store.pages.state.current.localization.forEach(localization => {
|
137
|
+
text.messages[localization.locale].title = localization.text
|
138
|
+
})
|
139
|
+
|
140
|
+
store.pages.state.current.localization.forEach(localization => {
|
141
|
+
text.messages[localization.locale].content = localization.content
|
142
|
+
})
|
143
|
+
|
144
|
+
const computedMeta = computed(() => ({
|
145
|
+
title: t('title'),
|
146
|
+
description: t('content').substring(0, 200)
|
147
|
+
}))
|
148
|
+
|
149
|
+
const { meta, onRemoved } = useMeta(computedMeta)
|
150
|
+
</script>
|
151
|
+
|
152
|
+
<style lang="scss">
|
153
|
+
.menu-tabs {
|
154
|
+
margin-right: 3rem;
|
155
|
+
.product-tab {
|
156
|
+
height: 2.5rem;
|
157
|
+
}
|
158
|
+
}
|
159
|
+
|
160
|
+
.page-wrapper {
|
161
|
+
.router-link-active, .router-link-exact-active {
|
162
|
+
color: rgb(var(--main));
|
163
|
+
}
|
164
|
+
}
|
165
|
+
.page {
|
166
|
+
width: 100%;
|
167
|
+
|
168
|
+
.page-content-wrapper {
|
169
|
+
> * {
|
170
|
+
margin-bottom: 1rem;
|
171
|
+
}
|
172
|
+
}
|
173
|
+
p {
|
174
|
+
opacity: 0.5;
|
175
|
+
}
|
176
|
+
ul {
|
177
|
+
li {
|
178
|
+
list-style-type: circle;
|
179
|
+
// height: 4rem;
|
180
|
+
margin-bottom: 0.5rem;
|
181
|
+
}
|
182
|
+
}
|
183
|
+
}
|
184
|
+
</style>
|