@ozdao/martyrs 0.2.445 → 0.2.446
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/martyrs/src/components/Chips/{Chips.vue2.cjs → Chips.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Chips/{Chips.vue2.js → Chips.vue.js} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue.js.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.cjs → Dropdown.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js.map → Dropdown.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Popup/{Popup.vue.cjs → Popup.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Popup/{Popup.vue.js → Popup.vue2.js} +2 -2
- package/dist/martyrs/src/components/Popup/{Popup.vue.cjs.map → Popup.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.cjs → SelectMulti.vue.cjs} +2 -2
- package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.js.map → SelectMulti.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.js → SelectMulti.vue.js} +2 -2
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js.map +1 -0
- package/dist/martyrs/src/components/Tab/{Tab.vue2.cjs → Tab.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Tab/{Tab.vue2.js.map → Tab.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Tab/{Tab.vue2.js → Tab.vue.js} +2 -2
- package/dist/martyrs/src/components/Tab/Tab.vue.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs +1 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.cjs +34 -8
- package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js +34 -8
- package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +27 -18
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +28 -19
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +13 -17
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +14 -18
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +3 -3
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +3 -3
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs +12 -4
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js +25 -17
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/store/orders.cjs +11 -0
- package/dist/martyrs/src/modules/orders/store/orders.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/store/orders.js +11 -0
- package/dist/martyrs/src/modules/orders/store/orders.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +6 -6
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +6 -6
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
- package/dist/style.css +3 -3
- package/package.json +1 -1
- package/src/modules/globals/views/components/blocks/BlockFilter.vue +1 -1
- package/src/modules/orders/components/elements/PriceTotal.vue +28 -2
- package/src/modules/orders/components/pages/OrderBackoffice.vue +14 -2
- package/src/modules/orders/components/pages/OrderCreate.vue +13 -19
- package/src/modules/orders/components/partials/ShopCart.vue +12 -5
- package/src/modules/orders/store/orders.js +14 -0
- package/src/modules/products/components/pages/Product.vue +6 -5
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
- package/dist/martyrs/src/components/Popup/Popup.vue.js.map +0 -1
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
|
-
const Tab = require("../../../../../components/Tab/Tab.
|
|
4
|
+
const Tab = require("../../../../../components/Tab/Tab.vue.cjs");
|
|
5
5
|
const _hoisted_1 = { class: "flex-v-center flex-nowrap flex" };
|
|
6
6
|
const _hoisted_2 = { class: "h2 mn-r-auto" };
|
|
7
7
|
const _hoisted_3 = ["onClick"];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { resolveComponent, createElementBlock, openBlock, createElementVNode, createBlock, createCommentVNode, toDisplayString, Fragment, renderList, normalizeClass, withCtx, createTextVNode } from "vue";
|
|
2
|
-
import _sfc_main$1 from "../../../../../components/Tab/Tab.
|
|
2
|
+
import _sfc_main$1 from "../../../../../components/Tab/Tab.vue.js";
|
|
3
3
|
const _hoisted_1 = { class: "flex-v-center flex-nowrap flex" };
|
|
4
4
|
const _hoisted_2 = { class: "h2 mn-r-auto" };
|
|
5
5
|
const _hoisted_3 = ["onClick"];
|
|
@@ -14,13 +14,19 @@ const _hoisted_6 = { class: "w-100 t-transp" };
|
|
|
14
14
|
const _hoisted_7 = { class: "w-100 t-right" };
|
|
15
15
|
const _hoisted_8 = {
|
|
16
16
|
key: 1,
|
|
17
|
-
class: "flex flex-nowrap
|
|
17
|
+
class: "flex flex-nowrap pd-t-small"
|
|
18
18
|
};
|
|
19
19
|
const _hoisted_9 = { class: "w-100 t-transp" };
|
|
20
20
|
const _hoisted_10 = { class: "w-100 t-right" };
|
|
21
|
-
const _hoisted_11 = {
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
const _hoisted_11 = {
|
|
22
|
+
key: 2,
|
|
23
|
+
class: "flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small"
|
|
24
|
+
};
|
|
25
|
+
const _hoisted_12 = { class: "w-100 t-transp" };
|
|
26
|
+
const _hoisted_13 = { class: "w-100 t-right" };
|
|
27
|
+
const _hoisted_14 = { class: "p-big flex flex-nowrap pd-b-small pd-t-small" };
|
|
28
|
+
const _hoisted_15 = { class: "w-100 t-medium" };
|
|
29
|
+
const _hoisted_16 = { class: "w-100 t-main t-medium t-right" };
|
|
24
30
|
const _sfc_main = {
|
|
25
31
|
__name: "PriceTotal",
|
|
26
32
|
props: {
|
|
@@ -47,6 +53,14 @@ const _sfc_main = {
|
|
|
47
53
|
vatRate: {
|
|
48
54
|
type: Number,
|
|
49
55
|
default: 0
|
|
56
|
+
},
|
|
57
|
+
showDeliveryFee: {
|
|
58
|
+
type: Boolean,
|
|
59
|
+
default: false
|
|
60
|
+
},
|
|
61
|
+
deliveryRate: {
|
|
62
|
+
type: Number,
|
|
63
|
+
default: 0
|
|
50
64
|
}
|
|
51
65
|
},
|
|
52
66
|
setup(__props) {
|
|
@@ -57,12 +71,14 @@ const _sfc_main = {
|
|
|
57
71
|
subtotal: "Subtotal",
|
|
58
72
|
feesRate: "Platform Fee",
|
|
59
73
|
vat: "VAT ({rate}%)",
|
|
74
|
+
delivery: "Delivery",
|
|
60
75
|
intotal: "In Total"
|
|
61
76
|
},
|
|
62
77
|
ru: {
|
|
63
78
|
subtotal: "Подытог",
|
|
64
79
|
feesRate: "Плата за платформу",
|
|
65
80
|
vat: "НДС ({rate}%)",
|
|
81
|
+
delivery: "Доставка",
|
|
66
82
|
intotal: "Итого"
|
|
67
83
|
}
|
|
68
84
|
}
|
|
@@ -77,8 +93,14 @@ const _sfc_main = {
|
|
|
77
93
|
if (!props.showFees) return 0;
|
|
78
94
|
return formatPrice(props.totalPrice * props.feesRate);
|
|
79
95
|
});
|
|
96
|
+
const deliveryAmount = vue.computed(() => {
|
|
97
|
+
if (!props.showDeliveryFee) return 0;
|
|
98
|
+
return formatPrice(props.deliveryRate);
|
|
99
|
+
});
|
|
80
100
|
const grandTotal = vue.computed(() => {
|
|
81
|
-
return formatPrice(
|
|
101
|
+
return formatPrice(
|
|
102
|
+
parseFloat(props.totalPrice) + parseFloat(feesRate.value) + parseFloat(vatAmount.value) + parseFloat(deliveryAmount.value)
|
|
103
|
+
);
|
|
82
104
|
});
|
|
83
105
|
return (_ctx, _cache) => {
|
|
84
106
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
@@ -94,9 +116,13 @@ const _sfc_main = {
|
|
|
94
116
|
vue.createElementVNode("span", _hoisted_9, vue.toDisplayString(vue.unref(t)("vat", { rate: __props.vatRate * 100 })), 1),
|
|
95
117
|
vue.createElementVNode("span", _hoisted_10, vue.toDisplayString(__props.currency) + vue.toDisplayString(vatAmount.value), 1)
|
|
96
118
|
])) : vue.createCommentVNode("", true),
|
|
97
|
-
vue.
|
|
98
|
-
vue.createElementVNode("span", _hoisted_12, vue.toDisplayString(vue.unref(t)("
|
|
99
|
-
vue.createElementVNode("span", _hoisted_13, vue.toDisplayString(__props.currency) + vue.toDisplayString(
|
|
119
|
+
__props.showDeliveryFee ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_11, [
|
|
120
|
+
vue.createElementVNode("span", _hoisted_12, vue.toDisplayString(vue.unref(t)("delivery")), 1),
|
|
121
|
+
vue.createElementVNode("span", _hoisted_13, vue.toDisplayString(__props.currency) + vue.toDisplayString(deliveryAmount.value), 1)
|
|
122
|
+
])) : vue.createCommentVNode("", true),
|
|
123
|
+
vue.createElementVNode("p", _hoisted_14, [
|
|
124
|
+
vue.createElementVNode("span", _hoisted_15, vue.toDisplayString(vue.unref(t)("intotal")), 1),
|
|
125
|
+
vue.createElementVNode("span", _hoisted_16, vue.toDisplayString(__props.currency) + vue.toDisplayString(grandTotal.value), 1)
|
|
100
126
|
])
|
|
101
127
|
]);
|
|
102
128
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PriceTotal.vue.cjs","sources":["../../../../../../../src/modules/orders/components/elements/PriceTotal.vue"],"sourcesContent":["<template>\n <div class=\"total-calculations\">\n <!-- Base price calculation -->\n <p class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('subtotal') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{totalPrice}}</span>\n </p>\n \n <!-- Platform fee (conditional) -->\n <p v-if=\"showFees\" class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('feesRate') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{feesRate}}</span>\n </p>\n \n <!-- VAT calculation (conditional) -->\n <p v-if=\"showVat\" class=\"flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('
|
|
1
|
+
{"version":3,"file":"PriceTotal.vue.cjs","sources":["../../../../../../../src/modules/orders/components/elements/PriceTotal.vue"],"sourcesContent":["<template>\n <div class=\"total-calculations\">\n <!-- Base price calculation -->\n <p class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('subtotal') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{totalPrice}}</span>\n </p>\n \n <!-- Platform fee (conditional) -->\n <p v-if=\"showFees\" class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('feesRate') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{feesRate}}</span>\n </p>\n \n <!-- VAT calculation (conditional) -->\n <p v-if=\"showVat\" class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('vat', { rate: vatRate * 100 }) }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{vatAmount}}</span>\n </p>\n\n <!-- Delivery fee (conditional) -->\n <p v-if=\"showDeliveryFee\" class=\"flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('delivery') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{deliveryAmount}}</span>\n </p>\n \n <!-- Grand total -->\n <p class=\"p-big flex flex-nowrap pd-b-small pd-t-small\">\n <span class=\"w-100 t-medium\">{{ t('intotal') }}</span>\n <span class=\"w-100 t-main t-medium t-right\">{{currency}}{{grandTotal}}</span>\n </p>\n </div>\n</template>\n\n\n<script setup>\nimport { computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\n\nconst props = defineProps({\n totalPrice: {\n type: Number,\n required: true\n },\n currency: {\n type: String,\n required: true\n },\n showFees: {\n type: Boolean,\n default: false\n },\n feesRate: {\n type: Number,\n default: 0\n },\n showVat: {\n type: Boolean,\n default: false\n },\n vatRate: {\n type: Number,\n default: 0\n },\n showDeliveryFee: {\n type: Boolean,\n default: false\n },\n deliveryRate: {\n type: Number,\n default: 0\n }\n});\n\nconst text = {\n messages: {\n en: {\n subtotal: 'Subtotal',\n feesRate: 'Platform Fee',\n vat: 'VAT ({rate}%)',\n delivery: 'Delivery',\n intotal: 'In Total'\n },\n ru: {\n subtotal: 'Подытог',\n feesRate: 'Плата за платформу',\n vat: 'НДС ({rate}%)',\n delivery: 'Доставка',\n intotal: 'Итого'\n }\n }\n};\n\nconst { t } = useI18n(text);\n\nconst formatPrice = (value) => value.toFixed(0);\n\nconst vatAmount = computed(() => {\n if (!props.showVat) return 0;\n return formatPrice(props.totalPrice * props.vatRate);\n});\n\nconst feesRate = computed(() => {\n if (!props.showFees) return 0;\n return formatPrice(props.totalPrice * props.feesRate);\n});\n\nconst deliveryAmount = computed(() => {\n if (!props.showDeliveryFee) return 0;\n return formatPrice(props.deliveryRate);\n});\n\nconst grandTotal = computed(() => {\n return formatPrice(\n parseFloat(props.totalPrice) +\n parseFloat(feesRate.value) +\n parseFloat(vatAmount.value) +\n parseFloat(deliveryAmount.value)\n );\n});\n</script>\n"],"names":["useI18n","computed"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,UAAM,QAAQ;AAmCd,UAAM,OAAO;AAAA,MACX,UAAU;AAAA,QACR,IAAI;AAAA,UACF,UAAU;AAAA,UACV,UAAU;AAAA,UACV,KAAK;AAAA,UACL,UAAU;AAAA,UACV,SAAS;AAAA,QACV;AAAA,QACD,IAAI;AAAA,UACF,UAAU;AAAA,UACV,UAAU;AAAA,UACV,KAAK;AAAA,UACL,UAAU;AAAA,UACV,SAAS;AAAA,QACf;AAAA,MACA;AAAA,IACA;AAEA,UAAM,EAAE,EAAC,IAAKA,QAAO,QAAC,IAAI;AAE1B,UAAM,cAAc,CAAC,UAAU,MAAM,QAAQ,CAAC;AAE9C,UAAM,YAAYC,IAAQ,SAAC,MAAM;AAC/B,UAAI,CAAC,MAAM,QAAS,QAAO;AAC3B,aAAO,YAAY,MAAM,aAAa,MAAM,OAAO;AAAA,IACrD,CAAC;AAED,UAAM,WAAWA,IAAQ,SAAC,MAAM;AAC9B,UAAI,CAAC,MAAM,SAAU,QAAO;AAC5B,aAAO,YAAY,MAAM,aAAa,MAAM,QAAQ;AAAA,IACtD,CAAC;AAED,UAAM,iBAAiBA,IAAQ,SAAC,MAAM;AACpC,UAAI,CAAC,MAAM,gBAAiB,QAAO;AACnC,aAAO,YAAY,MAAM,YAAY;AAAA,IACvC,CAAC;AAED,UAAM,aAAaA,IAAQ,SAAC,MAAM;AAChC,aAAO;AAAA,QACL,WAAW,MAAM,UAAU,IAC3B,WAAW,SAAS,KAAK,IACzB,WAAW,UAAU,KAAK,IAC1B,WAAW,eAAe,KAAK;AAAA,MAChC;AAAA,IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -12,13 +12,19 @@ const _hoisted_6 = { class: "w-100 t-transp" };
|
|
|
12
12
|
const _hoisted_7 = { class: "w-100 t-right" };
|
|
13
13
|
const _hoisted_8 = {
|
|
14
14
|
key: 1,
|
|
15
|
-
class: "flex flex-nowrap
|
|
15
|
+
class: "flex flex-nowrap pd-t-small"
|
|
16
16
|
};
|
|
17
17
|
const _hoisted_9 = { class: "w-100 t-transp" };
|
|
18
18
|
const _hoisted_10 = { class: "w-100 t-right" };
|
|
19
|
-
const _hoisted_11 = {
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
const _hoisted_11 = {
|
|
20
|
+
key: 2,
|
|
21
|
+
class: "flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small"
|
|
22
|
+
};
|
|
23
|
+
const _hoisted_12 = { class: "w-100 t-transp" };
|
|
24
|
+
const _hoisted_13 = { class: "w-100 t-right" };
|
|
25
|
+
const _hoisted_14 = { class: "p-big flex flex-nowrap pd-b-small pd-t-small" };
|
|
26
|
+
const _hoisted_15 = { class: "w-100 t-medium" };
|
|
27
|
+
const _hoisted_16 = { class: "w-100 t-main t-medium t-right" };
|
|
22
28
|
const _sfc_main = {
|
|
23
29
|
__name: "PriceTotal",
|
|
24
30
|
props: {
|
|
@@ -45,6 +51,14 @@ const _sfc_main = {
|
|
|
45
51
|
vatRate: {
|
|
46
52
|
type: Number,
|
|
47
53
|
default: 0
|
|
54
|
+
},
|
|
55
|
+
showDeliveryFee: {
|
|
56
|
+
type: Boolean,
|
|
57
|
+
default: false
|
|
58
|
+
},
|
|
59
|
+
deliveryRate: {
|
|
60
|
+
type: Number,
|
|
61
|
+
default: 0
|
|
48
62
|
}
|
|
49
63
|
},
|
|
50
64
|
setup(__props) {
|
|
@@ -55,12 +69,14 @@ const _sfc_main = {
|
|
|
55
69
|
subtotal: "Subtotal",
|
|
56
70
|
feesRate: "Platform Fee",
|
|
57
71
|
vat: "VAT ({rate}%)",
|
|
72
|
+
delivery: "Delivery",
|
|
58
73
|
intotal: "In Total"
|
|
59
74
|
},
|
|
60
75
|
ru: {
|
|
61
76
|
subtotal: "Подытог",
|
|
62
77
|
feesRate: "Плата за платформу",
|
|
63
78
|
vat: "НДС ({rate}%)",
|
|
79
|
+
delivery: "Доставка",
|
|
64
80
|
intotal: "Итого"
|
|
65
81
|
}
|
|
66
82
|
}
|
|
@@ -75,8 +91,14 @@ const _sfc_main = {
|
|
|
75
91
|
if (!props.showFees) return 0;
|
|
76
92
|
return formatPrice(props.totalPrice * props.feesRate);
|
|
77
93
|
});
|
|
94
|
+
const deliveryAmount = computed(() => {
|
|
95
|
+
if (!props.showDeliveryFee) return 0;
|
|
96
|
+
return formatPrice(props.deliveryRate);
|
|
97
|
+
});
|
|
78
98
|
const grandTotal = computed(() => {
|
|
79
|
-
return formatPrice(
|
|
99
|
+
return formatPrice(
|
|
100
|
+
parseFloat(props.totalPrice) + parseFloat(feesRate.value) + parseFloat(vatAmount.value) + parseFloat(deliveryAmount.value)
|
|
101
|
+
);
|
|
80
102
|
});
|
|
81
103
|
return (_ctx, _cache) => {
|
|
82
104
|
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
@@ -92,9 +114,13 @@ const _sfc_main = {
|
|
|
92
114
|
createElementVNode("span", _hoisted_9, toDisplayString(unref(t)("vat", { rate: __props.vatRate * 100 })), 1),
|
|
93
115
|
createElementVNode("span", _hoisted_10, toDisplayString(__props.currency) + toDisplayString(vatAmount.value), 1)
|
|
94
116
|
])) : createCommentVNode("", true),
|
|
95
|
-
|
|
96
|
-
createElementVNode("span", _hoisted_12, toDisplayString(unref(t)("
|
|
97
|
-
createElementVNode("span", _hoisted_13, toDisplayString(__props.currency) + toDisplayString(
|
|
117
|
+
__props.showDeliveryFee ? (openBlock(), createElementBlock("p", _hoisted_11, [
|
|
118
|
+
createElementVNode("span", _hoisted_12, toDisplayString(unref(t)("delivery")), 1),
|
|
119
|
+
createElementVNode("span", _hoisted_13, toDisplayString(__props.currency) + toDisplayString(deliveryAmount.value), 1)
|
|
120
|
+
])) : createCommentVNode("", true),
|
|
121
|
+
createElementVNode("p", _hoisted_14, [
|
|
122
|
+
createElementVNode("span", _hoisted_15, toDisplayString(unref(t)("intotal")), 1),
|
|
123
|
+
createElementVNode("span", _hoisted_16, toDisplayString(__props.currency) + toDisplayString(grandTotal.value), 1)
|
|
98
124
|
])
|
|
99
125
|
]);
|
|
100
126
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PriceTotal.vue.js","sources":["../../../../../../../src/modules/orders/components/elements/PriceTotal.vue"],"sourcesContent":["<template>\n <div class=\"total-calculations\">\n <!-- Base price calculation -->\n <p class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('subtotal') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{totalPrice}}</span>\n </p>\n \n <!-- Platform fee (conditional) -->\n <p v-if=\"showFees\" class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('feesRate') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{feesRate}}</span>\n </p>\n \n <!-- VAT calculation (conditional) -->\n <p v-if=\"showVat\" class=\"flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('
|
|
1
|
+
{"version":3,"file":"PriceTotal.vue.js","sources":["../../../../../../../src/modules/orders/components/elements/PriceTotal.vue"],"sourcesContent":["<template>\n <div class=\"total-calculations\">\n <!-- Base price calculation -->\n <p class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('subtotal') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{totalPrice}}</span>\n </p>\n \n <!-- Platform fee (conditional) -->\n <p v-if=\"showFees\" class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('feesRate') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{feesRate}}</span>\n </p>\n \n <!-- VAT calculation (conditional) -->\n <p v-if=\"showVat\" class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('vat', { rate: vatRate * 100 }) }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{vatAmount}}</span>\n </p>\n\n <!-- Delivery fee (conditional) -->\n <p v-if=\"showDeliveryFee\" class=\"flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('delivery') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{deliveryAmount}}</span>\n </p>\n \n <!-- Grand total -->\n <p class=\"p-big flex flex-nowrap pd-b-small pd-t-small\">\n <span class=\"w-100 t-medium\">{{ t('intotal') }}</span>\n <span class=\"w-100 t-main t-medium t-right\">{{currency}}{{grandTotal}}</span>\n </p>\n </div>\n</template>\n\n\n<script setup>\nimport { computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\n\nconst props = defineProps({\n totalPrice: {\n type: Number,\n required: true\n },\n currency: {\n type: String,\n required: true\n },\n showFees: {\n type: Boolean,\n default: false\n },\n feesRate: {\n type: Number,\n default: 0\n },\n showVat: {\n type: Boolean,\n default: false\n },\n vatRate: {\n type: Number,\n default: 0\n },\n showDeliveryFee: {\n type: Boolean,\n default: false\n },\n deliveryRate: {\n type: Number,\n default: 0\n }\n});\n\nconst text = {\n messages: {\n en: {\n subtotal: 'Subtotal',\n feesRate: 'Platform Fee',\n vat: 'VAT ({rate}%)',\n delivery: 'Delivery',\n intotal: 'In Total'\n },\n ru: {\n subtotal: 'Подытог',\n feesRate: 'Плата за платформу',\n vat: 'НДС ({rate}%)',\n delivery: 'Доставка',\n intotal: 'Итого'\n }\n }\n};\n\nconst { t } = useI18n(text);\n\nconst formatPrice = (value) => value.toFixed(0);\n\nconst vatAmount = computed(() => {\n if (!props.showVat) return 0;\n return formatPrice(props.totalPrice * props.vatRate);\n});\n\nconst feesRate = computed(() => {\n if (!props.showFees) return 0;\n return formatPrice(props.totalPrice * props.feesRate);\n});\n\nconst deliveryAmount = computed(() => {\n if (!props.showDeliveryFee) return 0;\n return formatPrice(props.deliveryRate);\n});\n\nconst grandTotal = computed(() => {\n return formatPrice(\n parseFloat(props.totalPrice) +\n parseFloat(feesRate.value) +\n parseFloat(vatAmount.value) +\n parseFloat(deliveryAmount.value)\n );\n});\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,UAAM,QAAQ;AAmCd,UAAM,OAAO;AAAA,MACX,UAAU;AAAA,QACR,IAAI;AAAA,UACF,UAAU;AAAA,UACV,UAAU;AAAA,UACV,KAAK;AAAA,UACL,UAAU;AAAA,UACV,SAAS;AAAA,QACV;AAAA,QACD,IAAI;AAAA,UACF,UAAU;AAAA,UACV,UAAU;AAAA,UACV,KAAK;AAAA,UACL,UAAU;AAAA,UACV,SAAS;AAAA,QACf;AAAA,MACA;AAAA,IACA;AAEA,UAAM,EAAE,EAAC,IAAK,QAAQ,IAAI;AAE1B,UAAM,cAAc,CAAC,UAAU,MAAM,QAAQ,CAAC;AAE9C,UAAM,YAAY,SAAS,MAAM;AAC/B,UAAI,CAAC,MAAM,QAAS,QAAO;AAC3B,aAAO,YAAY,MAAM,aAAa,MAAM,OAAO;AAAA,IACrD,CAAC;AAED,UAAM,WAAW,SAAS,MAAM;AAC9B,UAAI,CAAC,MAAM,SAAU,QAAO;AAC5B,aAAO,YAAY,MAAM,aAAa,MAAM,QAAQ;AAAA,IACtD,CAAC;AAED,UAAM,iBAAiB,SAAS,MAAM;AACpC,UAAI,CAAC,MAAM,gBAAiB,QAAO;AACnC,aAAO,YAAY,MAAM,YAAY;AAAA,IACvC,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,aAAO;AAAA,QACL,WAAW,MAAM,UAAU,IAC3B,WAAW,SAAS,KAAK,IACzB,WAAW,UAAU,KAAK,IAC1B,WAAW,eAAe,KAAK;AAAA,MAChC;AAAA,IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -4,7 +4,7 @@ const vue = require("vue");
|
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
5
|
const Button = require("../../../../components/Button/Button.vue.cjs");
|
|
6
6
|
const Select = require("../../../../components/Select/Select.vue.cjs");
|
|
7
|
-
const Popup = require("../../../../components/Popup/Popup.
|
|
7
|
+
const Popup = require("../../../../components/Popup/Popup.vue2.cjs");
|
|
8
8
|
const IconTime = require("../../../icons/entities/IconTime.vue.cjs");
|
|
9
9
|
const CardOrderItem = require("../blocks/CardOrderItem.vue.cjs");
|
|
10
10
|
const CardOrganization = require("../../../organizations/components/blocks/CardOrganization.vue.cjs");
|
|
@@ -112,6 +112,13 @@ const _sfc_main = {
|
|
|
112
112
|
lookup: ["spots"]
|
|
113
113
|
});
|
|
114
114
|
});
|
|
115
|
+
const deliveryCost = vue.computed(() => {
|
|
116
|
+
var _a2, _b2, _c2;
|
|
117
|
+
const type = orders.state.current.delivery.type;
|
|
118
|
+
const distance = ((_a2 = orderOrganization.value[0]) == null ? void 0 : _a2.distance) || 0;
|
|
119
|
+
const config = ((_c2 = (_b2 = globals.state.options) == null ? void 0 : _b2.orders) == null ? void 0 : _c2.delivery_formula) || {};
|
|
120
|
+
return orders.getters.getDeliveryPrice(type, distance, config);
|
|
121
|
+
});
|
|
115
122
|
let cartTotalPrice = vue.computed(() => {
|
|
116
123
|
var _a2;
|
|
117
124
|
return Number((_a2 = order.value) == null ? void 0 : _a2.positions.reduce((total, product) => {
|
|
@@ -161,12 +168,12 @@ const _sfc_main = {
|
|
|
161
168
|
closeStatusPopup();
|
|
162
169
|
}
|
|
163
170
|
return (_ctx, _cache) => {
|
|
164
|
-
var _a2, _b2, _c2, _d2, _e2, _f, _g, _h, _i, _j, _k;
|
|
171
|
+
var _a2, _b2, _c2, _d2, _e2, _f, _g, _h, _i, _j, _k, _l;
|
|
165
172
|
return order.value && orderOrganization.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
166
173
|
order.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
|
|
167
174
|
vue.createElementVNode("div", _hoisted_3, [
|
|
168
175
|
vue.createElementVNode("p", _hoisted_4, [
|
|
169
|
-
_cache[
|
|
176
|
+
_cache[3] || (_cache[3] = vue.createTextVNode(" Order No: ")),
|
|
170
177
|
vue.createElementVNode("span", _hoisted_5, "#" + vue.toDisplayString(order.value._id), 1)
|
|
171
178
|
])
|
|
172
179
|
]),
|
|
@@ -230,7 +237,7 @@ const _sfc_main = {
|
|
|
230
237
|
submit: changePaymentStatus,
|
|
231
238
|
class: "t-white w-100 bg-second"
|
|
232
239
|
}, {
|
|
233
|
-
default: vue.withCtx(() => _cache[
|
|
240
|
+
default: vue.withCtx(() => _cache[4] || (_cache[4] = [
|
|
234
241
|
vue.createElementVNode("span", null, "Change Status", -1)
|
|
235
242
|
])),
|
|
236
243
|
_: 1
|
|
@@ -295,41 +302,41 @@ const _sfc_main = {
|
|
|
295
302
|
vue.createElementVNode("div", _hoisted_10, [
|
|
296
303
|
vue.createElementVNode("div", _hoisted_11, [
|
|
297
304
|
vue.createElementVNode("div", _hoisted_12, [
|
|
298
|
-
_cache[
|
|
305
|
+
_cache[5] || (_cache[5] = vue.createElementVNode("span", { class: "d-block t-medium p-medium" }, "Order is", -1)),
|
|
299
306
|
vue.createElementVNode("span", _hoisted_13, vue.toDisplayString(order.value.status), 1),
|
|
300
307
|
vue.createElementVNode("p", _hoisted_14, vue.toDisplayString(_ctx.formatDate(order.value.updatedAt, { language: vue.unref(locale) })), 1)
|
|
301
308
|
])
|
|
302
309
|
]),
|
|
303
310
|
((_a2 = order.value.customer.target) == null ? void 0 : _a2.number) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15, [
|
|
304
|
-
_cache[
|
|
311
|
+
_cache[6] || (_cache[6] = vue.createElementVNode("p", { class: "w-100 t-medium p-medium" }, " Phone ", -1)),
|
|
305
312
|
vue.createElementVNode("p", _hoisted_16, vue.toDisplayString(((_b2 = order.value.customer.target) == null ? void 0 : _b2.number) || "Not specified"), 1)
|
|
306
313
|
])) : vue.createCommentVNode("", true),
|
|
307
314
|
vue.createElementVNode("div", _hoisted_17, [
|
|
308
|
-
_cache[
|
|
315
|
+
_cache[7] || (_cache[7] = vue.createElementVNode("p", { class: "t-medium p-medium" }, " Address ", -1)),
|
|
309
316
|
vue.createElementVNode("p", _hoisted_18, vue.toDisplayString(order.value.delivery.address || order.value.delivery.spot[0].profile.name + ", " + order.value.delivery.spot[0].address || "Not specified"), 1)
|
|
310
317
|
]),
|
|
311
318
|
vue.createElementVNode("div", _hoisted_19, [
|
|
312
|
-
_cache[
|
|
319
|
+
_cache[8] || (_cache[8] = vue.createElementVNode("p", { class: "t-medium p-medium" }, " Delivery ", -1)),
|
|
313
320
|
vue.createElementVNode("p", _hoisted_20, vue.toDisplayString(order.value.delivery.type ? order.value.delivery.type : "Not specified"), 1)
|
|
314
321
|
]),
|
|
315
322
|
vue.createElementVNode("div", _hoisted_21, [
|
|
316
|
-
_cache[
|
|
323
|
+
_cache[9] || (_cache[9] = vue.createElementVNode("p", { class: "mn-r-auto t-medium p-medium" }, " Payment ", -1)),
|
|
317
324
|
vue.createElementVNode("p", _hoisted_22, vue.toDisplayString(order.value.payment.type ? order.value.payment.type : "Not specified"), 1),
|
|
318
325
|
vue.createElementVNode("p", {
|
|
319
|
-
onClick: openPaymentPopup,
|
|
326
|
+
onClick: _cache[2] || (_cache[2] = ($event) => vue.unref(route).meta.context !== "user" && vue.unref(route).meta.context !== "root" ? openPaymentPopup : console.log("hello")),
|
|
320
327
|
class: "w-max pd-thin radius-small bg-second t-white mn-l-thin cursor-pointer hover-bg-black t-right"
|
|
321
328
|
}, vue.toDisplayString(order.value.payment.status ? order.value.payment.status : "Unpaid"), 1)
|
|
322
329
|
])
|
|
323
330
|
]),
|
|
324
|
-
vue.unref(route).meta.context !== "user" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_23, [
|
|
331
|
+
vue.unref(route).meta.context !== "user" && vue.unref(route).meta.context !== "root" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_23, [
|
|
325
332
|
vue.createElementVNode("div", _hoisted_24, [
|
|
326
333
|
vue.createVNode(IconTime.default, {
|
|
327
334
|
class: "i-semi t-transp",
|
|
328
335
|
fill: "rgb(var(--black)"
|
|
329
336
|
}),
|
|
330
337
|
vue.createElementVNode("p", _hoisted_25, [
|
|
331
|
-
_cache[
|
|
332
|
-
_cache[
|
|
338
|
+
_cache[10] || (_cache[10] = vue.createElementVNode("span", { class: "p-small t-transp" }, "Estimated Reaction", -1)),
|
|
339
|
+
_cache[11] || (_cache[11] = vue.createElementVNode("br", null, null, -1)),
|
|
333
340
|
vue.createTextVNode(vue.toDisplayString(_ctx.formatDate(order.value.deadline, { language: vue.unref(locale) })), 1)
|
|
334
341
|
])
|
|
335
342
|
]),
|
|
@@ -340,7 +347,7 @@ const _sfc_main = {
|
|
|
340
347
|
}, " Mark as " + vue.toDisplayString(getNextStatus(order.value.status).label), 1)) : vue.createCommentVNode("", true)
|
|
341
348
|
])) : vue.createCommentVNode("", true),
|
|
342
349
|
vue.createElementVNode("div", _hoisted_26, [
|
|
343
|
-
_cache[
|
|
350
|
+
_cache[12] || (_cache[12] = vue.createElementVNode("h3", { class: "mn-b-small" }, "Chat With Us", -1)),
|
|
344
351
|
vue.createVNode(ChatPage.default, {
|
|
345
352
|
username: ["Order", "UserOrder"].includes(vue.unref(route).name) ? ((_c2 = order.value.user) == null ? void 0 : _c2.name) || "User" : "Support",
|
|
346
353
|
user: auth.state.user._id,
|
|
@@ -351,7 +358,7 @@ const _sfc_main = {
|
|
|
351
358
|
_ctx.payment && _ctx.payment.Status === "CONFIRMED" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_27, "Paid")) : vue.createCommentVNode("", true)
|
|
352
359
|
]),
|
|
353
360
|
vue.createElementVNode("div", _hoisted_28, [
|
|
354
|
-
_cache[
|
|
361
|
+
_cache[13] || (_cache[13] = vue.createElementVNode("h3", { class: "mn-b-small" }, "Order Summary", -1)),
|
|
355
362
|
vue.createElementVNode("ul", _hoisted_29, [
|
|
356
363
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(order.value.positions, (product, index) => {
|
|
357
364
|
return vue.openBlock(), vue.createBlock(CardOrderItem.default, {
|
|
@@ -364,18 +371,20 @@ const _sfc_main = {
|
|
|
364
371
|
]),
|
|
365
372
|
vue.createVNode(PriceTotal.default, {
|
|
366
373
|
totalPrice: vue.unref(cartTotalPrice),
|
|
374
|
+
deliveryRate: deliveryCost.value,
|
|
367
375
|
currency: _ctx.returnCurrency(),
|
|
368
376
|
showFees: (_e2 = (_d2 = globals.state.options) == null ? void 0 : _d2.orders) == null ? void 0 : _e2.showFees,
|
|
369
377
|
feesRate: ((_g = (_f = globals.state.options) == null ? void 0 : _f.orders) == null ? void 0 : _g.feesRate) || 0,
|
|
370
378
|
showVat: (_i = (_h = globals.state.options) == null ? void 0 : _h.orders) == null ? void 0 : _i.showVat,
|
|
371
|
-
vatRate: ((_k = (_j = globals.state.options) == null ? void 0 : _j.orders) == null ? void 0 : _k.vatRate) || 0
|
|
372
|
-
|
|
379
|
+
vatRate: ((_k = (_j = globals.state.options) == null ? void 0 : _j.orders) == null ? void 0 : _k.vatRate) || 0,
|
|
380
|
+
showDeliveryFee: (_l = globals.state.options) == null ? void 0 : _l.orders.showDeliveryFee
|
|
381
|
+
}, null, 8, ["totalPrice", "deliveryRate", "currency", "showFees", "feesRate", "showVat", "vatRate", "showDeliveryFee"])
|
|
373
382
|
])
|
|
374
383
|
])) : vue.createCommentVNode("", true)
|
|
375
384
|
])) : vue.createCommentVNode("", true);
|
|
376
385
|
};
|
|
377
386
|
}
|
|
378
387
|
};
|
|
379
|
-
const OrderBackoffice = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-
|
|
388
|
+
const OrderBackoffice = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-529cceb6"]]);
|
|
380
389
|
exports.default = OrderBackoffice;
|
|
381
390
|
//# sourceMappingURL=OrderBackoffice.vue.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrderBackoffice.vue.cjs","sources":["../../../../../../../src/modules/orders/components/pages/OrderBackoffice.vue"],"sourcesContent":["<template>\n\t<div v-if=\"order && orderOrganization\" class=\"pd-thin bg-white\"> \n\n\t <div v-if=\"order\" class=\"mn-b-thin pos-relative w-100 bg-main radius-medium pd-medium\">\n\t \t<div class=\"mn-b-small flex-nowrap flex\">\n\t\t \t<p class=\"t-medium p-medium\">\n\t\t \tOrder No: <span class=\"p-small t-transp\">#{{order._id}}</span>\n\t\t </p>\n\t\t\t</div>\n\n \t<div class=\"flex-nowrap flex gap-thin pos-relative \">\n\t <div v-for=\"(status, index) in globals.state.options.orders.statuses\" :key=\"index\" class=\"w-20\">\n\t <div\n\t \tclass=\"bg-white br-anim br-glow radius-extra h-1r w-100\"\n\t :class=\"\n\t\t\t\t { 'br-glow-anim': isActiveStatus(index) },\n\t\t\t\t { 't-transp': !isActiveStatus(index) },\n\t\t\t\t { 'blink': order.status === status.value && getNextStatus(order.status) }\n\t\t\t\t \"\n\t />\n\t <div \n\t \t:class=\"{ 't-transp': !isActiveStatus(index) }\"\n\t\t\t\t class=\"mn-t-thin p-small t-medium uppercase\">{{ status.value }}</div>\n\t \t</div>\n\t\t </div>\n\t </div>\n\n \t <Popup \n title=\"Change payment\" \n @close-popup=\"closePaymentPopup\" \n :isPopupOpen=\"isOpenPaymentPopup\"\n class=\"bg-light w-min-25r w-max-25r radius-medium pd-big\"\n >\n \t<Select \n v-model:select=\"selectedPayments.type\"\n :property=\"'value'\"\n label=\"Type\"\n :options=\"[\n {name: 'Cash', value: 'cash'}, \n {name: 'Card', value: 'card'}, \n {name: 'Bank Transfer', value: 'bank'},\n ]\"\n placeholder=\"Select type of payment\" \n size=\"small\"\n class=\"bg-white mn-b-thin pd-regular radius-small w-100\"\n />\n\n <Select \n v-model:select=\"selectedPayments.status\"\n :property=\"'value'\"\n label=\"Status\"\n :options=\"[\n {name: 'Unpaid', value: 'unpaid'}, \n {name: 'Paid', value: 'paid'}, \n {name: 'Refunded', value: 'refunded'},\n ]\"\n placeholder=\"Select status of payment\" \n size=\"small\"\n class=\"bg-white mn-b-small pd-regular radius-small w-100\"\n />\n\n\n <Button :submit=\"changePaymentStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>Change Status</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\t <Popup \n title=\"Change order status\" \n @close-popup=\"closeStatusPopup\" \n :isPopupOpen=\"isOpeStatusPopup\"\n class=\"bg-light w-min-30r w-max-30r radius-medium pd-big\"\n >\n\n\t\t\t<!-- Добавить выбор примерного времени -->\n\n \t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n \t\t\t<CardOrderItem\n \t\t\t\tv-for=\"(product, index) in order.positions\" :key=\"product._id\"\n \t\t\t\t:editable=\"true\" \n \t\t\t\t:product=\"product\" \n \t\t\t\t:increase=\"product => orders.mutations.incrementItemQuantity(order, product._id)\"\n\t :decrease=\"product => orders.mutations.decrementItemQuantity(order, product._id)\"\n\t :remove=\"product => orders.mutations.removeProduct(order, product._id)\"\n\t @updateRentDates=\"(product, dates) => shopcart.actions.updateRentDates({ positions: order.positions, productId: product._id, dates })\"\n \t\t\t\tclass=\"bg-white radius-small pd-small\"\n \t\t\t/>\n </ul>\n \n <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n />\n\n \t<Button :submit=\"setNextStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>{{'Confirm Changing to ' + (getNextStatus(order.status)).label}}</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\n\t \n\t <div v-if=\"order\" class=\"gap-thin cols-2\">\n\n\t <div class=\"w-100\">\n\n\n\t\t <CardOrganization \n\t\t \tv-if=\"orderOrganization[0]\"\n\t\t :organization=\"orderOrganization[0]\"\n\t\t :showRating=\"true\"\n\t\t :showFollowers=\"false\"\n\t\t :showProducts=\"false\"\n\t\t class=\"bg-light mn-b-thin w-100 o-hidden radius-medium pd-small \"\n\t\t />\n\n\n\t\t <div \n\t\t \tclass=\"mn-b-thin bg-light w-100 o-hidden radius-medium \"\n\t\t >\n\t\t \t<div class=\"pd-small flex-nowrap flex\">\n\t\t\t \t<div class=\"mn-r-auto\">\n\t\t\t\t \t<span class=\"d-block t-medium p-medium\">Order is</span>\n\t\t\t\t\t <span class=\" t-lh-075 h2 d-block mn-b-small\">{{order.status}}</span>\n\t\t\t\t\t <p class=\"pd-t-nano pd-b-nano pd-r-thin pd-l-thin radius-extra bg-black t-white w-max\">{{formatDate(order.updatedAt, {language: locale })}}</p>\n\t\t\t\t\t </div>\n\t\t\t\t\t <!-- <div class=\"t-right\">\n\t\t\t\t\t \tCancel order<br>\n\t\t\t\t\t \tExchange item\n\t\t\t\t\t \t<hr class=\"mn-b-thin mn-t-thin\">\n\t\t\t\t\t \tFor Delivery Queries Contact Us\n\t\t\t\t\t \t\n\t\t\t\t\t </div> -->\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div v-if=\"order.customer.target?.number\" class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"w-100 t-medium p-medium\">\n\t\t\t \tPhone\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t \t{{order.customer.target?.number || 'Not specified'}}\n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tAddress\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right\">\n\t\t\t {{order.delivery.address || (order.delivery.spot[0].profile.name + ', ' + order.delivery.spot[0].address) || 'Not specified'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tDelivery\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t {{order.delivery.type ? order.delivery.type : 'Not specified'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"mn-r-auto t-medium p-medium\">\n\t\t\t \tPayment\n\t\t\t </p>\n\n\n\t\t\t <p class=\"w-max t-right\">\n\t\t\t {{order.payment.type ? order.payment.type : 'Not specified'}} \n\t\t\t </p>\n\n\t\t\t <p @click=\"openPaymentPopup\" class=\"w-max pd-thin radius-small bg-second t-white mn-l-thin cursor-pointer hover-bg-black t-right\">\n\t\t\t {{order.payment.status ? order.payment.status : 'Unpaid'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\n\t\t\t\t</div>\n\n\t\t\t\t<div v-if=\"route.meta.context !== 'user'\" class=\"o-y-scroll bg-light pd-thin mn-b-thin pd-thin radius-medium flex-nowrap flex\">\n\t\t \t\t<div class=\"flex-child-default mn-r-small w-max flex-v-center gap-thin flex-nowrap flex pd-thin radius-small bg-light-transp-20\">\n\t\t \t\t\t<IconTime class=\"i-semi t-transp\" fill=\"rgb(var(--black)\" />\n\t\t <p class=\"t-medium mn-r-auto\"><span class=\"p-small t-transp\">Estimated Reaction</span><br>{{formatDate(order.deadline, { language: locale })}}</p>\n\t\t\t \t</div>\n\t\t\t \t<button v-if=\"getNextStatus(order.status)\" @click=\"openStatusPopup\" class=\"flex-child-default mn-l-auto bg-black t-white button\"> \n\t\t\t\t Mark as {{ (getNextStatus(order.status)).label }} \n\t\t\t\t </button>\n\t\t \t</div>\n\n\t\t\t<div class=\"bg-light radius-medium pd-medium mn-r-bold w-100\">\n\t\t <h3 class=\"mn-b-small\">Chat With Us</h3>\n\n\t\t <ChatPage\n\t\t \t:username=\"['Order', 'UserOrder'].includes(route.name) ? (order.user?.name || 'User') : 'Support'\"\n\t\t \t:user=\"auth.state.user._id\"\n\t\t \t:chatID=\"route.params.order\"\n\t\t \tclass=\"radius-semi bs-black bg-light o-hidden\"\n\t\t />\n\n\t </div>\n\t \t<!-- <StatusHistory \n\t \t\tv-if=\"orders.state.current.status_history\"\n\t \t\t:statuses=\"statuses\"\n\t \t\t:statusHistory=\"orders.state.current.status_history\"\n\t \t\t:statusCurrent=\"orders.state.current.status\"\n\t \t\t:edit=\"route.name === 'Order Edit'\"\n\t \t/> -->\n\n\t <!-- \t<button \n\t \t@click=\"requestPayment(order)\"\n\t \tv-if=\"\n\t \t\torder.status === 'Подтвержден' \n\t \t\t&& order.payment.type === 'Online'\n\t \t\t&& payment.Status !== 'CONFIRMED'\n\t \t\t&& payment.Status !== 'REFUNDED'\n\t \t\" \n\t \tclass='w-100 button'>Оплатить заказ</button> -->\n\t \t<span class=\"t-transp\" v-if=\"payment && payment.Status === 'CONFIRMED'\">Paid</span> \n\t </div> \n\n\t <div class=\"bg-light radius-medium pd-medium w-100\">\n\t \t\t<h3 class=\"mn-b-small\">Order Summary</h3>\n\n\t \t\t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n\t \t\t\t<CardOrderItem\n\t \t\t\t\tv-for=\"(product, index) in order.positions\" :key=\"product._id\"\n\t \t\t\t\t:editable=\"false\" \n\t \t\t\t\t:product=\"product\" \n\t \t\t\t\tclass=\"bg-white radius-small pd-small\"\n\t \t\t\t/>\n\t </ul>\n\t \n\t <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n />\n \t</div>\n\n\t \n\t </div>\n\t</div>\t\t\n\n</template>\n\n\n<script setup=\"props\">\n\timport { computed, ref, onMounted } from 'vue'\n\timport { useRouter, useRoute } from 'vue-router'\n\n\timport Button from '@martyrs/src/components/Button/Button.vue'\n\timport Select from '@martyrs/src/components/Select/Select.vue'\n\timport Popup from \"@martyrs/src/components/Popup/Popup.vue\";\n\n\timport IconTime from '@martyrs/src/modules/icons/entities/IconTime.vue'\n\n\t// Block\n\timport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue'\n\timport CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\n\timport ChatPage from '@martyrs/src/modules/chats/components/pages/ChatPage.vue';\n\n\timport StatusHistory from '@martyrs/src/modules/orders/components/blocks/StatusHistory.vue'\n\timport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue';\n\timport FormPayment from '@martyrs/src/modules/orders/components/sections/FormPayment.vue'\n\n\timport * as globals \tfrom '@martyrs/src/modules/globals/views/store/globals'\n\timport * as auth from '@martyrs/src/modules/auth/views/store/auth'\n\timport * as orders \tfrom '@martyrs/src/modules/orders/store/orders'\n\timport * as products \tfrom '@martyrs/src/modules/products/store/products'\n\timport * as organizations \tfrom '@martyrs/src/modules/organizations/store/organizations'\n\n\timport { useI18n } from 'vue-i18n';\n\t\n\tconst { locale } = useI18n();\n\n\tconst router = useRouter()\n\tconst route = useRoute()\n\n\tconst order = ref(null)\n\tconst productsOrganization = ref(null)\n\tconst orderOrganization = ref(null)\n\n\tconst statuses = globals.state.options.orders.statuses\n\tconst statusLabels = ['Created', 'Confirmed', 'Preparing', 'In use', 'Finished'];\n\n if (route.meta.context === 'user' && \n auth.state.user && \n route.params._id !== auth.state.user?._id && \n !auth.state.access?.roles?.includes('ROLE_MODERATOR') && \n !auth.state.access?.roles?.includes('ROLE_ADMIN')) {\n router.push('/401');\n }\n\n\tconst isOpeStatusPopup = ref(false);\n\tconst selectedMember = ref(null);\n\n\tfunction openStatusPopup(member) {\n\t isOpeStatusPopup.value = true;\n\t if (typeof member === \"number\") selectedMember.value = member;\n\t}\n\n\tfunction closeStatusPopup() {\n\t isOpeStatusPopup.value = false;\n\t selectedMember.value = null;\n\t}\n\n\tconst isOpenPaymentPopup = ref(false);\n\n\tconst selectedPayments = ref({\n\t\ttype: null,\n\t\tstatus: null\n\t});\n\n\tfunction openPaymentPopup() {\n\t selectedPayments.value.type = order.value.payment.type\n\t selectedPayments.value.status = order.value.payment.status\n\n\t isOpenPaymentPopup.value = true;\n\t}\n\n\tfunction closePaymentPopup() {\n\t isOpenPaymentPopup.value = false;\n\t}\n\n\tonMounted(async()=>{\n\t\torder.value = await orders.actions.read({_id: route.params.order})\n\t\torder.value = order.value[0]\n\n\t orderOrganization.value = await organizations.actions.read({\n\t _id: order.value?.owner.target._id,\n\t location: globals.state.position?.location,\n\t lookup: ['spots']\n\t });\n\n\t})\n\n\tlet cartTotalPrice = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n // Проверяем тип листинга\n if (product.listing === 'rent') {\n const start = new Date(product.date.start)\n const end = new Date(product.date.end)\n const diffTime = Math.abs(end - start)\n return total + product.price * (Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + 1);\n } else {\n // Для обычных товаров умножаем на количество\n return total + product.price * (product.quantity || 1);\n }\n }, 0));\n })\n\n\n let cartTotalAmount = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n return total + product.quantity;\n }, 0));\n })\n\n // Функция установки нового статуса\n\tasync function setStatus (newStatus) {\n\t orders.state.current.status = newStatus\n\n\t await orders.actions.update(orders.state.current)\n\t} \n\n\n\tfunction getNextStatus(currentStatus) {\n\t const currentIndex = globals.state.options.orders.statuses.findIndex(status => status.value === currentStatus);\n\n\t if (currentIndex !== -1 && currentIndex + 1 < statuses.length) {\n\t return globals.state.options.orders.statuses[currentIndex + 1];\n\t }\n\t return null; // If next status doesn't exist\n\t}\n\n\tconst isActiveStatus = (index) => {\n\t return globals.state.options.orders.statuses.slice(index).some(status => status.value === order.value.status);\n\t};\n\n async function changePaymentStatus() {\n if (selectedPayments.value.status && selectedPayments.value.type) {\n orders.state.current.payment = selectedPayments.value;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Payment status is void. Must handle somehow.');\n }\n\n\t\tclosePaymentPopup()\n }\n\n async function setNextStatus() {\n const nextStatus = getNextStatus(orders.state.current.status);\n\n if (nextStatus) {\n orders.state.current.status = nextStatus.value;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Next status is void. Must handle somehow.');\n }\n\n\t\tcloseStatusPopup()\n }\n\n async function cancelOrder() {\n \talert()\n\n orders.state.current.status = 'canceled';\n\n await orders.actions.update(orders.state.current)\n}\n\n\n async function confirmOrder() {\n \talert()\n\n orders.state.current.status = 'confirmed';\n\n await orders.actions.update(orders.state.current)\n\t}\n\n\tfunction calculateDeliveryTime(distance, date) {\n\t if (!distance) {\n\t return null;\n\t }\n\n\t const basePreparationTime = 10 * 60 * 1000; // Convert to milliseconds\n\t const travelTime = Math.ceil((15 + 5 + 3 * distance) / 5) * 5 * 60 * 1000;\n\n\t // Преобразование даты начала в миллисекунды и добавление времени подготовки и доставки\n\t const startTime = new Date(date).getTime();\n\t const estimatedDeliveryTime = new Date(startTime + basePreparationTime + travelTime);\n\n\t return estimatedDeliveryTime;\n\t}\n\n\n</script>\n\n<style lang=\"scss\" scoped>\n\t.blink {\n\t animation: blink-animation 1s ease infinite;\n\t}\n\n\t@keyframes blink-animation {\n\t 0%, 100% {\n\t opacity: 1;\n\t }\n\t 50% {\n\t opacity: 0.8;\n\t }\n\t}\n</style>"],"names":["useI18n","useRouter","useRoute","ref","globals.state","auth.state","onMounted","orders.actions","organizations.actions","_a","computed","orders.state"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OrderBackoffice.vue.cjs","sources":["../../../../../../../src/modules/orders/components/pages/OrderBackoffice.vue"],"sourcesContent":["<template>\n\t<div v-if=\"order && orderOrganization\" class=\"pd-thin bg-white\"> \n\n\t <div v-if=\"order\" class=\"mn-b-thin pos-relative w-100 bg-main radius-medium pd-medium\">\n\t \t<div class=\"mn-b-small flex-nowrap flex\">\n\t\t \t<p class=\"t-medium p-medium\">\n\t\t \tOrder No: <span class=\"p-small t-transp\">#{{order._id}}</span>\n\t\t </p>\n\t\t\t</div>\n\n \t<div class=\"flex-nowrap flex gap-thin pos-relative \">\n\t <div v-for=\"(status, index) in globals.state.options.orders.statuses\" :key=\"index\" class=\"w-20\">\n\t <div\n\t \tclass=\"bg-white br-anim br-glow radius-extra h-1r w-100\"\n\t :class=\"\n\t\t\t\t { 'br-glow-anim': isActiveStatus(index) },\n\t\t\t\t { 't-transp': !isActiveStatus(index) },\n\t\t\t\t { 'blink': order.status === status.value && getNextStatus(order.status) }\n\t\t\t\t \"\n\t />\n\t <div \n\t \t:class=\"{ 't-transp': !isActiveStatus(index) }\"\n\t\t\t\t class=\"mn-t-thin p-small t-medium uppercase\">{{ status.value }}</div>\n\t \t</div>\n\t\t </div>\n\t </div>\n\n \t <Popup \n title=\"Change payment\" \n @close-popup=\"closePaymentPopup\" \n :isPopupOpen=\"isOpenPaymentPopup\"\n class=\"bg-light w-min-25r w-max-25r radius-medium pd-big\"\n >\n \t<Select \n v-model:select=\"selectedPayments.type\"\n :property=\"'value'\"\n label=\"Type\"\n :options=\"[\n {name: 'Cash', value: 'cash'}, \n {name: 'Card', value: 'card'}, \n {name: 'Bank Transfer', value: 'bank'},\n ]\"\n placeholder=\"Select type of payment\" \n size=\"small\"\n class=\"bg-white mn-b-thin pd-regular radius-small w-100\"\n />\n\n <Select \n v-model:select=\"selectedPayments.status\"\n :property=\"'value'\"\n label=\"Status\"\n :options=\"[\n {name: 'Unpaid', value: 'unpaid'}, \n {name: 'Paid', value: 'paid'}, \n {name: 'Refunded', value: 'refunded'},\n ]\"\n placeholder=\"Select status of payment\" \n size=\"small\"\n class=\"bg-white mn-b-small pd-regular radius-small w-100\"\n />\n\n\n <Button :submit=\"changePaymentStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>Change Status</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\t <Popup \n title=\"Change order status\" \n @close-popup=\"closeStatusPopup\" \n :isPopupOpen=\"isOpeStatusPopup\"\n class=\"bg-light w-min-30r w-max-30r radius-medium pd-big\"\n >\n\n\t\t\t<!-- Добавить выбор примерного времени -->\n\n \t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n \t\t\t<CardOrderItem\n \t\t\t\tv-for=\"(product, index) in order.positions\" :key=\"product._id\"\n \t\t\t\t:editable=\"true\" \n \t\t\t\t:product=\"product\" \n \t\t\t\t:increase=\"product => orders.mutations.incrementItemQuantity(order, product._id)\"\n\t :decrease=\"product => orders.mutations.decrementItemQuantity(order, product._id)\"\n\t :remove=\"product => orders.mutations.removeProduct(order, product._id)\"\n\t @updateRentDates=\"(product, dates) => shopcart.actions.updateRentDates({ positions: order.positions, productId: product._id, dates })\"\n \t\t\t\tclass=\"bg-white radius-small pd-small\"\n \t\t\t/>\n </ul>\n \n <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n />\n\n \t<Button :submit=\"setNextStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>{{'Confirm Changing to ' + (getNextStatus(order.status)).label}}</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\n\t \n\t <div v-if=\"order\" class=\"gap-thin cols-2\">\n\n\t <div class=\"w-100\">\n\n\n\t\t <CardOrganization \n\t\t \tv-if=\"orderOrganization[0]\"\n\t\t :organization=\"orderOrganization[0]\"\n\t\t :showRating=\"true\"\n\t\t :showFollowers=\"false\"\n\t\t :showProducts=\"false\"\n\t\t class=\"bg-light mn-b-thin w-100 o-hidden radius-medium pd-small \"\n\t\t />\n\n\n\t\t <div \n\t\t \tclass=\"mn-b-thin bg-light w-100 o-hidden radius-medium \"\n\t\t >\n\t\t \t<div class=\"pd-small flex-nowrap flex\">\n\t\t\t \t<div class=\"mn-r-auto\">\n\t\t\t\t \t<span class=\"d-block t-medium p-medium\">Order is</span>\n\t\t\t\t\t <span class=\" t-lh-075 h2 d-block mn-b-small\">{{order.status}}</span>\n\t\t\t\t\t <p class=\"pd-t-nano pd-b-nano pd-r-thin pd-l-thin radius-extra bg-black t-white w-max\">{{formatDate(order.updatedAt, {language: locale })}}</p>\n\t\t\t\t\t </div>\n\t\t\t\t\t <!-- <div class=\"t-right\">\n\t\t\t\t\t \tCancel order<br>\n\t\t\t\t\t \tExchange item\n\t\t\t\t\t \t<hr class=\"mn-b-thin mn-t-thin\">\n\t\t\t\t\t \tFor Delivery Queries Contact Us\n\t\t\t\t\t \t\n\t\t\t\t\t </div> -->\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div v-if=\"order.customer.target?.number\" class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"w-100 t-medium p-medium\">\n\t\t\t \tPhone\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t \t{{order.customer.target?.number || 'Not specified'}}\n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tAddress\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right\">\n\t\t\t {{order.delivery.address || (order.delivery.spot[0].profile.name + ', ' + order.delivery.spot[0].address) || 'Not specified'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tDelivery\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t {{order.delivery.type ? order.delivery.type : 'Not specified'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"mn-r-auto t-medium p-medium\">\n\t\t\t \tPayment\n\t\t\t </p>\n\n\n\t\t\t <p class=\"w-max t-right\">\n\t\t\t {{order.payment.type ? order.payment.type : 'Not specified'}} \n\t\t\t </p>\n\n\t\t\t <p @click=\"route.meta.context !== 'user' && route.meta.context !== 'root' ? openPaymentPopup : console.log('hello')\" class=\"w-max pd-thin radius-small bg-second t-white mn-l-thin cursor-pointer hover-bg-black t-right\">\n\t\t\t {{order.payment.status ? order.payment.status : 'Unpaid'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\n\t\t\t\t</div>\n\n\t\t\t\t<div v-if=\"route.meta.context !== 'user' && route.meta.context !== 'root'\" class=\"o-y-scroll bg-light pd-thin mn-b-thin pd-thin radius-medium flex-nowrap flex\">\n\t\t \t\t<div class=\"flex-child-default mn-r-small w-max flex-v-center gap-thin flex-nowrap flex pd-thin radius-small bg-light-transp-20\">\n\t\t \t\t\t<IconTime class=\"i-semi t-transp\" fill=\"rgb(var(--black)\" />\n\t\t <p class=\"t-medium mn-r-auto\"><span class=\"p-small t-transp\">Estimated Reaction</span><br>{{formatDate(order.deadline, { language: locale })}}</p>\n\t\t\t \t</div>\n\t\t\t \t<button v-if=\"getNextStatus(order.status)\" @click=\"openStatusPopup\" class=\"flex-child-default mn-l-auto bg-black t-white button\"> \n\t\t\t\t Mark as {{ (getNextStatus(order.status)).label }} \n\t\t\t\t </button>\n\t\t \t</div>\n\n\t\t\t<div class=\"bg-light radius-medium pd-medium mn-r-bold w-100\">\n\t\t <h3 class=\"mn-b-small\">Chat With Us</h3>\n\n\t\t <ChatPage\n\t\t \t:username=\"['Order', 'UserOrder'].includes(route.name) ? (order.user?.name || 'User') : 'Support'\"\n\t\t \t:user=\"auth.state.user._id\"\n\t\t \t:chatID=\"route.params.order\"\n\t\t \tclass=\"radius-semi bs-black bg-light o-hidden\"\n\t\t />\n\n\t </div>\n\t \t<!-- <StatusHistory \n\t \t\tv-if=\"orders.state.current.status_history\"\n\t \t\t:statuses=\"statuses\"\n\t \t\t:statusHistory=\"orders.state.current.status_history\"\n\t \t\t:statusCurrent=\"orders.state.current.status\"\n\t \t\t:edit=\"route.name === 'Order Edit'\"\n\t \t/> -->\n\n\t <!-- \t<button \n\t \t@click=\"requestPayment(order)\"\n\t \tv-if=\"\n\t \t\torder.status === 'Подтвержден' \n\t \t\t&& order.payment.type === 'Online'\n\t \t\t&& payment.Status !== 'CONFIRMED'\n\t \t\t&& payment.Status !== 'REFUNDED'\n\t \t\" \n\t \tclass='w-100 button'>Оплатить заказ</button> -->\n\t \t<span class=\"t-transp\" v-if=\"payment && payment.Status === 'CONFIRMED'\">Paid</span> \n\t </div> \n\n\t <div class=\"bg-light radius-medium pd-medium w-100\">\n\t \t\t<h3 class=\"mn-b-small\">Order Summary</h3>\n\n\t \t\t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n\t \t\t\t<CardOrderItem\n\t \t\t\t\tv-for=\"(product, index) in order.positions\" :key=\"product._id\"\n\t \t\t\t\t:editable=\"false\" \n\t \t\t\t\t:product=\"product\" \n\t \t\t\t\tclass=\"bg-white radius-small pd-small\"\n\t \t\t\t/>\n\t </ul>\n\t \n\t <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :deliveryRate=\"deliveryCost\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n\t\t\t\t :showDeliveryFee=\"globals.state.options?.orders.showDeliveryFee\"\n\n />\n \t</div>\n\n\t \n\t </div>\n\t</div>\t\t\n\n</template>\n\n\n<script setup=\"props\">\n\timport { computed, ref, onMounted } from 'vue'\n\timport { useRouter, useRoute } from 'vue-router'\n\n\timport Button from '@martyrs/src/components/Button/Button.vue'\n\timport Select from '@martyrs/src/components/Select/Select.vue'\n\timport Popup from \"@martyrs/src/components/Popup/Popup.vue\";\n\n\timport IconTime from '@martyrs/src/modules/icons/entities/IconTime.vue'\n\n\t// Block\n\timport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue'\n\timport CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\n\timport ChatPage from '@martyrs/src/modules/chats/components/pages/ChatPage.vue';\n\n\timport StatusHistory from '@martyrs/src/modules/orders/components/blocks/StatusHistory.vue'\n\timport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue';\n\timport FormPayment from '@martyrs/src/modules/orders/components/sections/FormPayment.vue'\n\n\timport * as globals \tfrom '@martyrs/src/modules/globals/views/store/globals'\n\timport * as auth from '@martyrs/src/modules/auth/views/store/auth'\n\timport * as orders \tfrom '@martyrs/src/modules/orders/store/orders'\n\timport * as products \tfrom '@martyrs/src/modules/products/store/products'\n\timport * as organizations \tfrom '@martyrs/src/modules/organizations/store/organizations'\n\n\timport { useI18n } from 'vue-i18n';\n\t\n\tconst { locale } = useI18n();\n\n\tconst router = useRouter()\n\tconst route = useRoute()\n\n\tconst order = ref(null)\n\tconst productsOrganization = ref(null)\n\tconst orderOrganization = ref(null)\n\n\tconst statuses = globals.state.options.orders.statuses\n\tconst statusLabels = ['Created', 'Confirmed', 'Preparing', 'In use', 'Finished'];\n\n if (route.meta.context === 'user' && \n auth.state.user && \n route.params._id !== auth.state.user?._id && \n !auth.state.access?.roles?.includes('ROLE_MODERATOR') && \n !auth.state.access?.roles?.includes('ROLE_ADMIN')) {\n router.push('/401');\n }\n\n\tconst isOpeStatusPopup = ref(false);\n\tconst selectedMember = ref(null);\n\n\tfunction openStatusPopup(member) {\n\t isOpeStatusPopup.value = true;\n\t if (typeof member === \"number\") selectedMember.value = member;\n\t}\n\n\tfunction closeStatusPopup() {\n\t isOpeStatusPopup.value = false;\n\t selectedMember.value = null;\n\t}\n\n\tconst isOpenPaymentPopup = ref(false);\n\n\tconst selectedPayments = ref({\n\t\ttype: null,\n\t\tstatus: null\n\t});\n\n\tfunction openPaymentPopup() {\n\t selectedPayments.value.type = order.value.payment.type\n\t selectedPayments.value.status = order.value.payment.status\n\n\t isOpenPaymentPopup.value = true;\n\t}\n\n\tfunction closePaymentPopup() {\n\t isOpenPaymentPopup.value = false;\n\t}\n\n\tonMounted(async()=>{\n\t\torder.value = await orders.actions.read({_id: route.params.order})\n\t\torder.value = order.value[0]\n\n\t orderOrganization.value = await organizations.actions.read({\n\t _id: order.value?.owner.target._id,\n\t location: globals.state.position?.location,\n\t lookup: ['spots']\n\t });\n\n\t})\n\n\nconst deliveryCost = computed(() => {\n const type = orders.state.current.delivery.type\n const distance = orderOrganization.value[0]?.distance || 0\n const config = globals.state.options?.orders?.delivery_formula || {}\n\n return orders.getters.getDeliveryPrice(type, distance, config)\n})\n\n\tlet cartTotalPrice = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n // Проверяем тип листинга\n if (product.listing === 'rent') {\n const start = new Date(product.date.start)\n const end = new Date(product.date.end)\n const diffTime = Math.abs(end - start)\n return total + product.price * (Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + 1);\n } else {\n // Для обычных товаров умножаем на количество\n return total + product.price * (product.quantity || 1);\n }\n }, 0));\n })\n\n\n let cartTotalAmount = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n return total + product.quantity;\n }, 0));\n })\n\n // Функция установки нового статуса\n\tasync function setStatus (newStatus) {\n\t orders.state.current.status = newStatus\n\n\t await orders.actions.update(orders.state.current)\n\t} \n\n\n\tfunction getNextStatus(currentStatus) {\n\t const currentIndex = globals.state.options.orders.statuses.findIndex(status => status.value === currentStatus);\n\n\t if (currentIndex !== -1 && currentIndex + 1 < statuses.length) {\n\t return globals.state.options.orders.statuses[currentIndex + 1];\n\t }\n\t return null; // If next status doesn't exist\n\t}\n\n\tconst isActiveStatus = (index) => {\n\t return globals.state.options.orders.statuses.slice(index).some(status => status.value === order.value.status);\n\t};\n\n async function changePaymentStatus() {\n if (selectedPayments.value.status && selectedPayments.value.type) {\n orders.state.current.payment = selectedPayments.value;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Payment status is void. Must handle somehow.');\n }\n\n\t\tclosePaymentPopup()\n }\n\n async function setNextStatus() {\n const nextStatus = getNextStatus(orders.state.current.status);\n\n if (nextStatus) {\n orders.state.current.status = nextStatus.value;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Next status is void. Must handle somehow.');\n }\n\n\t\tcloseStatusPopup()\n }\n\n async function cancelOrder() {\n \talert()\n\n orders.state.current.status = 'canceled';\n\n await orders.actions.update(orders.state.current)\n}\n\n\n async function confirmOrder() {\n \talert()\n\n orders.state.current.status = 'confirmed';\n\n await orders.actions.update(orders.state.current)\n\t}\n\n\tfunction calculateDeliveryTime(distance, date) {\n\t if (!distance) {\n\t return null;\n\t }\n\n\t const basePreparationTime = 10 * 60 * 1000; // Convert to milliseconds\n\t const travelTime = Math.ceil((15 + 5 + 3 * distance) / 5) * 5 * 60 * 1000;\n\n\t // Преобразование даты начала в миллисекунды и добавление времени подготовки и доставки\n\t const startTime = new Date(date).getTime();\n\t const estimatedDeliveryTime = new Date(startTime + basePreparationTime + travelTime);\n\n\t return estimatedDeliveryTime;\n\t}\n\n\n</script>\n\n<style lang=\"scss\" scoped>\n\t.blink {\n\t animation: blink-animation 1s ease infinite;\n\t}\n\n\t@keyframes blink-animation {\n\t 0%, 100% {\n\t opacity: 1;\n\t }\n\t 50% {\n\t opacity: 0.8;\n\t }\n\t}\n</style>"],"names":["useI18n","useRouter","useRoute","ref","globals.state","auth.state","onMounted","orders.actions","organizations.actions","_a","computed","orders.state","orders.getters"],"mappings":"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"}
|