@lancom/shared 0.0.252 → 0.0.253
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/assets/js/api/admin.js +11 -11
- package/assets/js/constants/country.js +1 -1
- package/assets/scss/ui_kit/_forms.scss +2 -2
- package/assets/scss/ui_kit/_tooltip.scss +3 -1
- package/assets/scss/variables/_theme.scss +3 -3
- package/components/checkout/cart/cart_entity/cart-entity.vue +6 -6
- package/components/checkout/order/address-form/address-form.vue +2 -1
- package/components/checkout/order/order.vue +1 -1
- package/components/common/breadcrumbs/breadcrumbs.vue +6 -6
- package/components/common/btn.vue +2 -2
- package/components/common/payment/payment_card/pinpayment/pinpayment.vue +34 -5
- package/components/common/postcode_select/postcode-select.vue +5 -1
- package/components/customer/signin_form/signin-form.vue +3 -3
- package/components/design/approve_design_header/approve-design-header.vue +1 -1
- package/components/editor/editor.vue +8 -2
- package/components/editor/editor_product_details/editor-product-details.scss +6 -0
- package/components/editor/editor_product_details/editor-product-details.vue +12 -2
- package/components/errors/404.vue +3 -3
- package/components/errors/500.vue +3 -3
- package/components/faq/faq.vue +2 -2
- package/components/modals/order_modal/order-modal.vue +16 -2
- package/components/news/news_list_item/news-list-item.vue +9 -9
- package/components/pricing/pricing_example/pricing-example.vue +3 -3
- package/components/product/printed_product_images/printed_product_image/printed-product-image.vue +5 -5
- package/components/products/product_list_product/product-list-product.vue +5 -5
- package/components/products/product_list_product_placeholder/product-list-product-placeholder.vue +3 -3
- package/components/products/products_autocomplete/products-autocomplete.scss +10 -12
- package/components/products/products_autocomplete/products-autocomplete.vue +3 -3
- package/components/products/products_autocomplete/products_autocomplete-item/products-autocomplete-item.vue +3 -3
- package/components/products/products_link/products-link.vue +3 -3
- package/components/products/products_types/products-types.vue +3 -3
- package/components/quotes/quote_request/quote-request.vue +1 -1
- package/components/quotes/quote_view/quote_view_product/quote-view-product.vue +3 -3
- package/components/the_breadcrumbs/the-breadcrumbs.vue +3 -3
- package/components/the_footer/the-footer.vue +8 -8
- package/mixins/meta-info.js +4 -1
- package/package.json +1 -1
- package/store/product.js +1 -0
package/assets/js/api/admin.js
CHANGED
|
@@ -132,34 +132,34 @@ export default {
|
|
|
132
132
|
return _post(`admin/orders/pick-pdf`, { orders });
|
|
133
133
|
},
|
|
134
134
|
saveOrderSubsequentInvoice(order, invoice) {
|
|
135
|
-
return invoice._id ? _put(`admin/shop/${order.shop}/order/${order._id}/invoice/${invoice._id}`, invoice) : _post(`admin/shop/${order.shop}/order/${order._id}/invoice`, invoice);
|
|
135
|
+
return invoice._id ? _put(`admin/shop/${order.shop?._id || order.shop}/order/${order._id}/invoice/${invoice._id}`, invoice) : _post(`admin/shop/${order.shop?._id || order.shop}/order/${order._id}/invoice`, invoice);
|
|
136
136
|
},
|
|
137
137
|
sendOrderSubsequentInvoice(order, invoice) {
|
|
138
|
-
return _post(`admin/shop/${order.shop}/order/${order._id}/invoice/${invoice}/send`);
|
|
138
|
+
return _post(`admin/shop/${order.shop?._id || order.shop}/order/${order._id}/invoice/${invoice}/send`);
|
|
139
139
|
},
|
|
140
|
-
|
|
141
|
-
return _post(`admin/shop/${order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}/export-to-
|
|
140
|
+
exportOrderToShippingService(order, shipment) {
|
|
141
|
+
return _post(`admin/shop/${order.shop?._id || order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}/export-to-shipping-service`, shipment);
|
|
142
142
|
},
|
|
143
143
|
markShipmentAsDispatched(order, shipment) {
|
|
144
|
-
return _post(`admin/shop/${order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}/dispatched`, shipment);
|
|
144
|
+
return _post(`admin/shop/${order.shop?._id || order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}/dispatched`, shipment);
|
|
145
145
|
},
|
|
146
146
|
markSubOrderAsDispatched(order, subOrder) {
|
|
147
|
-
return _post(`admin/shop/${order.shop}/order/${order._id}/sub-order/${subOrder._id}/dispatched`, subOrder);
|
|
147
|
+
return _post(`admin/shop/${order.shop?._id || order.shop}/order/${order._id}/sub-order/${subOrder._id}/dispatched`, subOrder);
|
|
148
148
|
},
|
|
149
149
|
generateDuplicateOrderCode(order) {
|
|
150
150
|
return _get(`admin/order/${order}/duplicate-code`);
|
|
151
151
|
},
|
|
152
152
|
sendShipmentTracking(order, shipment, tracking) {
|
|
153
|
-
return _post(`admin/shop/${order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}/tracking/${tracking._id}/send`, tracking);
|
|
153
|
+
return _post(`admin/shop/${order.shop?._id || order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}/tracking/${tracking._id}/send`, tracking);
|
|
154
154
|
},
|
|
155
|
-
|
|
156
|
-
return _delete(`admin/shop/${order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}`);
|
|
155
|
+
removeShipment(order, shipment) {
|
|
156
|
+
return _delete(`admin/shop/${order.shop?._id || order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}`);
|
|
157
157
|
},
|
|
158
158
|
calculateShipmentRates(order, shipment) {
|
|
159
|
-
return _get(`admin/shop/${order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}/calculate-shipping`);
|
|
159
|
+
return _get(`admin/shop/${order.shop?._id || order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}/calculate-shipping`);
|
|
160
160
|
},
|
|
161
161
|
createPrintLabels(order, shipment, rate) {
|
|
162
|
-
return _post(`admin/shop/${order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}/print-labels`, rate);
|
|
162
|
+
return _post(`admin/shop/${order.shop?._id || order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}/print-labels`, rate);
|
|
163
163
|
},
|
|
164
164
|
createOrderRefund(order, refund, shop) {
|
|
165
165
|
return _post(`shop/${shop}/order/${order}/refund`, refund);
|
|
@@ -177,7 +177,7 @@ html[dir=rtl] .form-icon-left {
|
|
|
177
177
|
height: 50px;
|
|
178
178
|
border-width: 1px;
|
|
179
179
|
border-style: solid;
|
|
180
|
-
border-color:
|
|
180
|
+
border-color: $grey_3;
|
|
181
181
|
border-radius: 5px;
|
|
182
182
|
font-style: normal;
|
|
183
183
|
font-weight: normal;
|
|
@@ -424,7 +424,7 @@ html[dir=rtl] .textarea {
|
|
|
424
424
|
}
|
|
425
425
|
&__tags {
|
|
426
426
|
min-height: 50px;
|
|
427
|
-
border: 1px solid
|
|
427
|
+
border: 1px solid $grey_3;
|
|
428
428
|
border-radius: 8px !important;
|
|
429
429
|
padding: 19px 3px 4px 20px;
|
|
430
430
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@import "@/assets/scss/variables";
|
|
2
|
+
|
|
1
3
|
.tooltip {
|
|
2
4
|
display: block !important;
|
|
3
5
|
z-index: 10000;
|
|
@@ -25,7 +27,7 @@
|
|
|
25
27
|
&.white &-inner {
|
|
26
28
|
background: #FFF !important;
|
|
27
29
|
color: #575872 !important;
|
|
28
|
-
border: 1px solid
|
|
30
|
+
border: 1px solid $grey_3 !important;
|
|
29
31
|
}
|
|
30
32
|
&.white &-arrow {
|
|
31
33
|
border-color: #FFF !important;
|
|
@@ -15,7 +15,7 @@ $white_high_emphasis: #FFFFFF;
|
|
|
15
15
|
$white_medium_emphasis: rgba(255, 255, 255, .66);
|
|
16
16
|
$gray: #575872 !default;
|
|
17
17
|
$medium_gray: #B0B0BA !default;
|
|
18
|
-
$light_gray: #F9F9FC
|
|
18
|
+
$light_gray: #F9F9FC;
|
|
19
19
|
$link: #5D89A9;
|
|
20
20
|
$error: #E44868;
|
|
21
21
|
$secondary_900: #20303C;
|
|
@@ -52,8 +52,8 @@ $black: #343750 !default;
|
|
|
52
52
|
$gray_main: #616277 !default;
|
|
53
53
|
$grey_1: #616277 !default;
|
|
54
54
|
$grey_2: #B0B0BA !default;
|
|
55
|
-
$grey_3: #EFF1F2
|
|
56
|
-
$grey_4: #F9F9FC
|
|
55
|
+
$grey_3: #EFF1F2;
|
|
56
|
+
$grey_4: #F9F9FC;
|
|
57
57
|
$grey_5: #9898A5 !default;
|
|
58
58
|
|
|
59
59
|
$white: #fff;
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
<div class="CartEntity__wrapper">
|
|
3
3
|
<div class="CartEntity__info">
|
|
4
4
|
<div class="lc_title">
|
|
5
|
-
<
|
|
5
|
+
<a
|
|
6
6
|
class="CartEntity__link"
|
|
7
|
-
:
|
|
7
|
+
:href="productLink">
|
|
8
8
|
{{ product.name }}
|
|
9
|
-
</
|
|
9
|
+
</a>
|
|
10
10
|
</div>
|
|
11
11
|
<div
|
|
12
12
|
v-if="product.sameDayDispatch"
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
<span class="CartEntity__same-day-dispatch"></span>
|
|
16
16
|
<span>
|
|
17
17
|
This product qualifies for same day dispatch.
|
|
18
|
-
<
|
|
18
|
+
<a
|
|
19
19
|
class="lc_black"
|
|
20
|
-
|
|
20
|
+
href="/faq?group=delivery&id=636f6b3fc305bd0304700d1f">
|
|
21
21
|
read more
|
|
22
|
-
</
|
|
22
|
+
</a>
|
|
23
23
|
</span>
|
|
24
24
|
</div>
|
|
25
25
|
</div>
|
|
@@ -203,7 +203,7 @@
|
|
|
203
203
|
<input
|
|
204
204
|
id="country"
|
|
205
205
|
ref="country"
|
|
206
|
-
value="Only Australia"
|
|
206
|
+
:value="address.country === 'Australia' ? 'Only Australia' : address.country"
|
|
207
207
|
name="country"
|
|
208
208
|
type="country"
|
|
209
209
|
class="form-field filled labelless"
|
|
@@ -296,6 +296,7 @@ export default {
|
|
|
296
296
|
this.$set(this.address, 'state', suburb.state);
|
|
297
297
|
this.$set(this.address, 'postcode', suburb.postcode);
|
|
298
298
|
this.$set(this.address, 'city', suburb.locality);
|
|
299
|
+
this.$set(this.address, 'country', suburb.country);
|
|
299
300
|
}
|
|
300
301
|
},
|
|
301
302
|
handleSuburbChange(suburb) {
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
v-if="hasBreadcrumbs"
|
|
4
4
|
class="Breadcrumbs__wrapper">
|
|
5
5
|
<div class="Breadcrumbs__item-wrapper">
|
|
6
|
-
<
|
|
6
|
+
<a
|
|
7
7
|
class="Breadcrumbs__item"
|
|
8
|
-
|
|
8
|
+
href="/">
|
|
9
9
|
Home
|
|
10
|
-
</
|
|
10
|
+
</a>
|
|
11
11
|
<span class="Breadcrumbs__divider">
|
|
12
12
|
{{ divider }}
|
|
13
13
|
</span>
|
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
v-for="(item, index) in items"
|
|
17
17
|
:key="index"
|
|
18
18
|
class="Breadcrumbs__item-wrapper">
|
|
19
|
-
<
|
|
19
|
+
<a
|
|
20
20
|
v-if="item.to"
|
|
21
21
|
class="Breadcrumbs__item"
|
|
22
|
-
:
|
|
22
|
+
:href="item.to">
|
|
23
23
|
{{ item.text }}
|
|
24
|
-
</
|
|
24
|
+
</a>
|
|
25
25
|
<span
|
|
26
26
|
v-else
|
|
27
27
|
class="Breadcrumbs__item">
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<component
|
|
3
|
-
:is="to ? '
|
|
3
|
+
:is="to ? 'a' : (btnType || btnTag || 'div')"
|
|
4
4
|
:type="btnType"
|
|
5
5
|
class="Btn__wrapper"
|
|
6
6
|
:class="{
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
'icon-after': $slots['icon-after'],
|
|
13
13
|
icon: $slots.icon
|
|
14
14
|
}"
|
|
15
|
-
:
|
|
15
|
+
:href="to"
|
|
16
16
|
@click.stop="$emit('onclick');">
|
|
17
17
|
<transition name="scale" mode="out-in" appear>
|
|
18
18
|
<div
|
|
@@ -86,6 +86,8 @@
|
|
|
86
86
|
</template>
|
|
87
87
|
|
|
88
88
|
<script>
|
|
89
|
+
let interval = null;
|
|
90
|
+
|
|
89
91
|
export default {
|
|
90
92
|
name: 'Payment',
|
|
91
93
|
props: {
|
|
@@ -108,14 +110,17 @@ export default {
|
|
|
108
110
|
fields: null
|
|
109
111
|
};
|
|
110
112
|
},
|
|
111
|
-
mounted() {
|
|
113
|
+
async mounted() {
|
|
112
114
|
this.loading = true;
|
|
115
|
+
|
|
116
|
+
await this.preloadPinpayments();
|
|
117
|
+
|
|
113
118
|
if (window.HostedFields) {
|
|
114
|
-
this.initHostedPayment();
|
|
119
|
+
await this.initHostedPayment();
|
|
115
120
|
} else {
|
|
116
|
-
window.addEventListener('load', () => {
|
|
121
|
+
window.addEventListener('load', async () => {
|
|
117
122
|
if (!this.fields) {
|
|
118
|
-
this.initHostedPayment();
|
|
123
|
+
await this.initHostedPayment();
|
|
119
124
|
}
|
|
120
125
|
});
|
|
121
126
|
}
|
|
@@ -194,7 +199,31 @@ export default {
|
|
|
194
199
|
}
|
|
195
200
|
);
|
|
196
201
|
});
|
|
197
|
-
}
|
|
202
|
+
},
|
|
203
|
+
async preloadPinpayments() {
|
|
204
|
+
if (!window.HostedFields) {
|
|
205
|
+
clearInterval(interval);
|
|
206
|
+
await this.loadPinpayments();
|
|
207
|
+
await new Promise((resolve, reject) => {
|
|
208
|
+
interval = setInterval(() => {
|
|
209
|
+
if (window.HostedFields) {
|
|
210
|
+
clearInterval(interval);
|
|
211
|
+
resolve()
|
|
212
|
+
}
|
|
213
|
+
}, 100);
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
loadPinpayments() {
|
|
218
|
+
return new Promise((resolve) => {
|
|
219
|
+
const script = document.createElement('script');
|
|
220
|
+
script.type = "text/javascript";
|
|
221
|
+
script.src = 'https://cdn.pinpayments.com/pin.hosted_fields.v1.js';
|
|
222
|
+
script.onload = () => resolve();
|
|
223
|
+
const body = document.getElementsByTagName('body')[0];
|
|
224
|
+
body.appendChild(script);
|
|
225
|
+
});
|
|
226
|
+
}
|
|
198
227
|
}
|
|
199
228
|
};
|
|
200
229
|
</script>
|
|
@@ -88,6 +88,9 @@ export default {
|
|
|
88
88
|
},
|
|
89
89
|
filters: { highlight },
|
|
90
90
|
props: {
|
|
91
|
+
country: {
|
|
92
|
+
type: Object
|
|
93
|
+
},
|
|
91
94
|
value: {
|
|
92
95
|
type: String
|
|
93
96
|
},
|
|
@@ -147,7 +150,8 @@ export default {
|
|
|
147
150
|
async handleSearch(query) {
|
|
148
151
|
if (query.length) {
|
|
149
152
|
this.isLoading = true;
|
|
150
|
-
this.
|
|
153
|
+
const country = this.country ? (this.country.isoCode === 'GB' ? 'England' : (this.country.name || this.country)) : 'Australia';
|
|
154
|
+
this.suburbs = await api.fetchSuburbs({ query, country });
|
|
151
155
|
this.options = this.suburbs.map(this.createOptionFromSuburb);
|
|
152
156
|
this.isLoading = false;
|
|
153
157
|
} else {
|
|
@@ -68,11 +68,11 @@
|
|
|
68
68
|
</validation-provider>
|
|
69
69
|
</div>
|
|
70
70
|
</div>
|
|
71
|
-
<
|
|
72
|
-
|
|
71
|
+
<a
|
|
72
|
+
href="/customer/recovery"
|
|
73
73
|
class="SignInFrom__recovery">
|
|
74
74
|
Forgot Password?
|
|
75
|
-
</
|
|
75
|
+
</a>
|
|
76
76
|
</div>
|
|
77
77
|
<div class="form__footer">
|
|
78
78
|
<div
|
|
@@ -18,7 +18,9 @@
|
|
|
18
18
|
</component>
|
|
19
19
|
</template>
|
|
20
20
|
</tabs>
|
|
21
|
-
<div
|
|
21
|
+
<div
|
|
22
|
+
v-if="productAvailableInCurrentCountry"
|
|
23
|
+
class="Editor__footer">
|
|
22
24
|
<btn
|
|
23
25
|
btn-label="Start again"
|
|
24
26
|
btn-class="white"
|
|
@@ -135,8 +137,12 @@ export default {
|
|
|
135
137
|
...mapGetters('layers', [
|
|
136
138
|
'layerThumbnails'
|
|
137
139
|
]),
|
|
140
|
+
productAvailableInCurrentCountry() {
|
|
141
|
+
const { countries } = this.product;
|
|
142
|
+
return !(countries || []).length || countries.includes(this.country._id);
|
|
143
|
+
},
|
|
138
144
|
addToCartDisabled() {
|
|
139
|
-
return !
|
|
145
|
+
return !this.usedSimpleProducts.length || (this.product.printOnly && !this.template.layers.length);
|
|
140
146
|
}
|
|
141
147
|
},
|
|
142
148
|
watch: {
|
|
@@ -61,8 +61,13 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</div>
|
|
63
63
|
</div>
|
|
64
|
+
<div
|
|
65
|
+
v-if="!productAvailableInCurrentCountry"
|
|
66
|
+
class="EditorProductDetails__available-warning">
|
|
67
|
+
Product Not Available in {{ country.name }}
|
|
68
|
+
</div>
|
|
64
69
|
<fragment
|
|
65
|
-
v-if="productDetailsLoaded">
|
|
70
|
+
v-if="productDetailsLoaded && productAvailableInCurrentCountry">
|
|
66
71
|
<div class="EditorProductDetails__section">
|
|
67
72
|
<product-colors-selector />
|
|
68
73
|
</div>
|
|
@@ -112,8 +117,13 @@ export default {
|
|
|
112
117
|
'layerThumbnails'
|
|
113
118
|
]),
|
|
114
119
|
...mapGetters([
|
|
115
|
-
'pricingSettings'
|
|
120
|
+
'pricingSettings',
|
|
121
|
+
'country'
|
|
116
122
|
]),
|
|
123
|
+
productAvailableInCurrentCountry() {
|
|
124
|
+
const { countries } = this.product;
|
|
125
|
+
return !(countries || []).length || countries.includes(this.country._id);
|
|
126
|
+
},
|
|
117
127
|
productLink() {
|
|
118
128
|
return generateProductLink(this.product);
|
|
119
129
|
},
|
package/components/faq/faq.vue
CHANGED
|
@@ -111,7 +111,7 @@ export default {
|
|
|
111
111
|
</script>
|
|
112
112
|
|
|
113
113
|
<style lang="scss">
|
|
114
|
-
@import "
|
|
114
|
+
@import "@/assets/scss/variables";
|
|
115
115
|
$types: delivery, general, other, printing, garments;
|
|
116
116
|
.FAQ {
|
|
117
117
|
&__wrapper {
|
|
@@ -218,7 +218,7 @@ $types: delivery, general, other, printing, garments;
|
|
|
218
218
|
&-body {
|
|
219
219
|
padding: 6px 30px 24px 30px;
|
|
220
220
|
line-height: 27px;
|
|
221
|
-
color: $
|
|
221
|
+
color: $grey_1;
|
|
222
222
|
overflow: hidden;
|
|
223
223
|
@import "@lancom/shared/assets/scss/normalize";
|
|
224
224
|
}
|
|
@@ -127,11 +127,11 @@
|
|
|
127
127
|
{{ errors[0] }}
|
|
128
128
|
</span>
|
|
129
129
|
</validation-provider>
|
|
130
|
-
<div class="form-row">
|
|
130
|
+
<div v-if="suburb" class="form-row">
|
|
131
131
|
<input
|
|
132
132
|
id="country"
|
|
133
133
|
ref="country"
|
|
134
|
-
value="
|
|
134
|
+
:value="suburb.country"
|
|
135
135
|
name="country"
|
|
136
136
|
type="country"
|
|
137
137
|
class="form-field filled labelless"
|
|
@@ -303,6 +303,9 @@ export default {
|
|
|
303
303
|
mounted() {
|
|
304
304
|
if (this.orderData) {
|
|
305
305
|
this.form = {
|
|
306
|
+
state: null,
|
|
307
|
+
country: null,
|
|
308
|
+
postcode: null,
|
|
306
309
|
city: this.orderData.city,
|
|
307
310
|
phone: this.orderData.phone,
|
|
308
311
|
addressLine1: this.orderData.addressLine1,
|
|
@@ -325,8 +328,18 @@ export default {
|
|
|
325
328
|
...mapActions('cart', [
|
|
326
329
|
'calculateCartPrice'
|
|
327
330
|
]),
|
|
331
|
+
setAddressSuburb(suburb) {
|
|
332
|
+
this.$set(this.form, 'suburb', suburb);
|
|
333
|
+
if (suburb) {
|
|
334
|
+
this.$set(this.form, 'state', suburb.state);
|
|
335
|
+
this.$set(this.form, 'postcode', suburb.postcode);
|
|
336
|
+
this.$set(this.form, 'city', suburb.locality);
|
|
337
|
+
this.$set(this.form, 'country', suburb.country);
|
|
338
|
+
}
|
|
339
|
+
},
|
|
328
340
|
handleSuburbChange(suburb) {
|
|
329
341
|
this.form.suburb = suburb;
|
|
342
|
+
this.setAddressSuburb(suburb);
|
|
330
343
|
this.setSuburb(suburb);
|
|
331
344
|
this.calculateCartPrice({ shop: this.shop });
|
|
332
345
|
},
|
|
@@ -335,6 +348,7 @@ export default {
|
|
|
335
348
|
},
|
|
336
349
|
async submit() {
|
|
337
350
|
try {
|
|
351
|
+
debugger;
|
|
338
352
|
this.processing = true;
|
|
339
353
|
const recaptchaToken = await this.getRecaptcha('create_order');
|
|
340
354
|
await this.createOrder({
|
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
<article
|
|
3
3
|
class="NewsListItem__wrapper"
|
|
4
4
|
:style="{ backgroundImage }">
|
|
5
|
-
<
|
|
5
|
+
<a
|
|
6
6
|
class="NewsListItem__overlay"
|
|
7
|
-
:
|
|
8
|
-
:title="item.title"></
|
|
7
|
+
:href="linkToNews"
|
|
8
|
+
:title="item.title"></a>
|
|
9
9
|
<div class="NewsListItem__info">
|
|
10
10
|
<template v-if="!item.isHiddenThumbLink">
|
|
11
11
|
<h3>
|
|
12
|
-
<
|
|
13
|
-
:
|
|
12
|
+
<a
|
|
13
|
+
:href="linkToNews"
|
|
14
14
|
class="NewsListItem__link"
|
|
15
15
|
:style="{ color: item.color }"
|
|
16
16
|
:title="item.title">
|
|
17
17
|
{{ item.title }}
|
|
18
|
-
</
|
|
18
|
+
</a>
|
|
19
19
|
</h3>
|
|
20
20
|
<div
|
|
21
21
|
class="NewsListItem__text"
|
|
@@ -29,12 +29,12 @@
|
|
|
29
29
|
{{ item.createdAt | date }}
|
|
30
30
|
</div>
|
|
31
31
|
</div>
|
|
32
|
-
<
|
|
33
|
-
:
|
|
32
|
+
<a
|
|
33
|
+
:href="linkToNews"
|
|
34
34
|
class="NewsListItem__more"
|
|
35
35
|
:title="item.title">
|
|
36
36
|
<span>Read More</span>
|
|
37
|
-
</
|
|
37
|
+
</a>
|
|
38
38
|
</article>
|
|
39
39
|
</template>
|
|
40
40
|
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
</div>
|
|
30
30
|
<div class="PricingExample__faq-link-container">
|
|
31
31
|
Check our
|
|
32
|
-
<
|
|
33
|
-
|
|
32
|
+
<a
|
|
33
|
+
href="/faq?group=pricing&id=1"
|
|
34
34
|
class="PricingExample__faq-link">
|
|
35
35
|
Pricing FAQ
|
|
36
|
-
</
|
|
36
|
+
</a>
|
|
37
37
|
</div>
|
|
38
38
|
</div>
|
|
39
39
|
<div
|
package/components/product/printed_product_images/printed_product_image/printed-product-image.vue
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
3
|
class="PrintedProductImage__wrapper">
|
|
4
|
-
<
|
|
5
|
-
:
|
|
4
|
+
<a
|
|
5
|
+
:href="imageLink"
|
|
6
6
|
class="PrintedProductImage__link">
|
|
7
7
|
<div
|
|
8
8
|
v-if="productСover"
|
|
9
9
|
class="PrintedProductImage__link-cover"
|
|
10
10
|
:style="productСoverBg"></div>
|
|
11
|
-
</
|
|
11
|
+
</a>
|
|
12
12
|
<div class="PrintedProductImage__content">
|
|
13
|
-
<
|
|
13
|
+
<a :href="imageLink">
|
|
14
14
|
{{ image.description }}
|
|
15
|
-
</
|
|
15
|
+
</a>
|
|
16
16
|
</div>
|
|
17
17
|
</div>
|
|
18
18
|
</template>
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
:class="{
|
|
5
5
|
'ProductListProduct__wrapper--full': full,
|
|
6
6
|
}">
|
|
7
|
-
<
|
|
8
|
-
:
|
|
7
|
+
<a
|
|
8
|
+
:href="productLink"
|
|
9
9
|
class="ProductListProduct__link">
|
|
10
10
|
<img
|
|
11
11
|
v-if="productBrand"
|
|
@@ -38,10 +38,10 @@
|
|
|
38
38
|
<div class="ProductListProduct__gender">
|
|
39
39
|
<span>{{ product.gender }}</span>
|
|
40
40
|
</div>
|
|
41
|
-
</
|
|
41
|
+
</a>
|
|
42
42
|
<div class="ProductListProduct__info">
|
|
43
43
|
<div class="ProductListProduct__info-item">
|
|
44
|
-
<
|
|
44
|
+
<a :href="productLink" class="lc_h4 row">
|
|
45
45
|
<div>
|
|
46
46
|
<v-popover trigger="hover">
|
|
47
47
|
<span class="ProductListProduct__info-name">
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
<div>
|
|
56
56
|
| {{ product.SKU }}
|
|
57
57
|
</div>
|
|
58
|
-
</
|
|
58
|
+
</a>
|
|
59
59
|
</div>
|
|
60
60
|
<div
|
|
61
61
|
v-if="product.minPrice === product.maxPrice"
|
package/components/products/product_list_product_placeholder/product-list-product-placeholder.vue
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="ProductListProductPlaceholder__wrapper">
|
|
3
|
-
<
|
|
4
|
-
:
|
|
3
|
+
<a
|
|
4
|
+
:href="productLink"
|
|
5
5
|
class="ProductListProductPlaceholder__link">
|
|
6
6
|
<span class="ProductListProductPlaceholder__image"></span>
|
|
7
7
|
<span class="ProductListProductPlaceholder__info ProductListProductPlaceholder__info--large"></span>
|
|
8
8
|
<span class="ProductListProductPlaceholder__info ProductListProductPlaceholder__info--medium"></span>
|
|
9
9
|
<span class="ProductListProductPlaceholder__info ProductListProductPlaceholder__info--small"></span>
|
|
10
10
|
{{ product.name }}
|
|
11
|
-
</
|
|
11
|
+
</a>
|
|
12
12
|
</div>
|
|
13
13
|
</template>
|
|
14
14
|
|
|
@@ -10,20 +10,21 @@
|
|
|
10
10
|
right: 0;
|
|
11
11
|
top: 41px;
|
|
12
12
|
padding: 10px;
|
|
13
|
-
background-color:
|
|
14
|
-
|
|
13
|
+
background-color: white;
|
|
14
|
+
border: 1px solid $medium_gray;
|
|
15
|
+
z-index: 999;
|
|
15
16
|
}
|
|
16
17
|
&__result-item {
|
|
17
18
|
padding-bottom: 10px;
|
|
18
19
|
margin-bottom: 10px;
|
|
19
|
-
border-bottom: 1px solid $
|
|
20
|
+
border-bottom: 1px solid $medium_gray;
|
|
20
21
|
&:last-child {
|
|
21
22
|
border-bottom: none;
|
|
22
23
|
margin-bottom: 0px;
|
|
23
24
|
}
|
|
24
25
|
::v-deep {
|
|
25
26
|
a {
|
|
26
|
-
color: $
|
|
27
|
+
color: $gray_main;
|
|
27
28
|
font-size: 13px;
|
|
28
29
|
text-decoration: none;
|
|
29
30
|
}
|
|
@@ -33,24 +34,22 @@
|
|
|
33
34
|
padding: 10px;
|
|
34
35
|
text-align: center;
|
|
35
36
|
display: block;
|
|
36
|
-
background-color: $
|
|
37
|
+
background-color: $black;
|
|
38
|
+
color: $white !important;
|
|
37
39
|
&:hover {
|
|
38
|
-
background-color: $
|
|
39
|
-
color: $
|
|
40
|
+
background-color: $white;
|
|
41
|
+
color: $black !important;
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
44
|
}
|
|
43
45
|
&__input {
|
|
44
46
|
input {
|
|
45
|
-
|
|
46
|
-
border: none;
|
|
47
|
+
border-color: $medium_gray;
|
|
47
48
|
border-radius: 0px;
|
|
48
|
-
color: $white;
|
|
49
49
|
height: 41px;
|
|
50
50
|
position: relative;
|
|
51
51
|
z-index: 1;
|
|
52
52
|
&::placeholder {
|
|
53
|
-
font-weight: 600;
|
|
54
53
|
font-size: 14px;
|
|
55
54
|
color: $grey_3;
|
|
56
55
|
}
|
|
@@ -61,7 +60,6 @@
|
|
|
61
60
|
right: 10px;
|
|
62
61
|
font-size: 17px;
|
|
63
62
|
pointer-events: none;
|
|
64
|
-
color: $white;
|
|
65
63
|
&.icon-search {
|
|
66
64
|
z-index: 2;
|
|
67
65
|
pointer-events: all;
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
</div>
|
|
29
29
|
<div v-if="hasProducts">
|
|
30
30
|
<div class="ProductsAutocomplete__result-item">
|
|
31
|
-
<
|
|
31
|
+
<a
|
|
32
32
|
class="ProductsAutocomplete__result-item-all"
|
|
33
|
-
:
|
|
33
|
+
:href="fullSearchLink">
|
|
34
34
|
click to see all results
|
|
35
|
-
</
|
|
35
|
+
</a>
|
|
36
36
|
</div>
|
|
37
37
|
<products-autocomplete-item
|
|
38
38
|
v-for="product of products"
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
:class="{
|
|
9
9
|
'ProductsTypes__item--active': type.alias === currentType
|
|
10
10
|
}">
|
|
11
|
-
<
|
|
12
|
-
:
|
|
11
|
+
<a
|
|
12
|
+
:href="`/products${type.alias === currentType ? '' : `/${type.alias}`}`"
|
|
13
13
|
class="ProductsTypes__more">
|
|
14
14
|
<checked-icon
|
|
15
15
|
v-if="hasSelectedIcon"
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
v-else-if="hasThumbs"
|
|
26
26
|
:class="`icon-${type.alias}`"></i>
|
|
27
27
|
{{ type.name }}
|
|
28
|
-
</
|
|
28
|
+
</a>
|
|
29
29
|
</div>
|
|
30
30
|
</toggle-content>
|
|
31
31
|
</div>
|
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
class="lc_title">
|
|
7
7
|
{{ product.SKU }}
|
|
8
8
|
</div>
|
|
9
|
-
<
|
|
9
|
+
<a
|
|
10
10
|
v-else
|
|
11
11
|
class="QuoteViewProduct__link lc_title"
|
|
12
|
-
:
|
|
12
|
+
:href="productLink">
|
|
13
13
|
{{ product.product.name }}
|
|
14
|
-
</
|
|
14
|
+
</a>
|
|
15
15
|
<div
|
|
16
16
|
v-if="!product.isCustom"
|
|
17
17
|
class="QuoteViewProduct__features">
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
:key="i"
|
|
13
13
|
class="TheBreadcrumbs__step lc_regular14"
|
|
14
14
|
:class="item.classes">
|
|
15
|
-
<
|
|
15
|
+
<a
|
|
16
16
|
v-if="item.path"
|
|
17
|
-
:
|
|
17
|
+
:href="item.path">
|
|
18
18
|
{{ item.name }}
|
|
19
|
-
</
|
|
19
|
+
</a>
|
|
20
20
|
<span v-else>
|
|
21
21
|
{{ item.name }}
|
|
22
22
|
</span>
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
<div class="row">
|
|
5
5
|
<div class="col-sm-4 col-12">
|
|
6
6
|
<div class="TheFooter__col--left">
|
|
7
|
-
<
|
|
7
|
+
<a href="/">
|
|
8
8
|
<img
|
|
9
9
|
class="TheFooter__logo"
|
|
10
10
|
src="~static/images/logo.svg" />
|
|
11
|
-
</
|
|
11
|
+
</a>
|
|
12
12
|
<div class="TheFooter__payment-methods">
|
|
13
13
|
<span class="TheFooter__payment-methods-label">
|
|
14
14
|
Payment methods we accept:
|
|
@@ -29,22 +29,22 @@
|
|
|
29
29
|
<div class="TheFooter__nav-wrapper">
|
|
30
30
|
<ul class="TheFooter__nav">
|
|
31
31
|
<li>
|
|
32
|
-
<
|
|
33
|
-
|
|
32
|
+
<a
|
|
33
|
+
href="/pricing"
|
|
34
34
|
active-class="active"
|
|
35
35
|
class="TheFooter__nav-item">
|
|
36
36
|
Pricing
|
|
37
|
-
</
|
|
37
|
+
</a>
|
|
38
38
|
</li>
|
|
39
39
|
</ul>
|
|
40
40
|
<ul class="TheFooter__nav">
|
|
41
41
|
<li>
|
|
42
|
-
<
|
|
43
|
-
|
|
42
|
+
<a
|
|
43
|
+
href="/faq"
|
|
44
44
|
active-class="active"
|
|
45
45
|
class="TheFooter__nav-item">
|
|
46
46
|
FAQ
|
|
47
|
-
</
|
|
47
|
+
</a>
|
|
48
48
|
</li>
|
|
49
49
|
</ul>
|
|
50
50
|
</div>
|
package/mixins/meta-info.js
CHANGED
|
@@ -34,7 +34,10 @@ const metaInfo = {
|
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
head() {
|
|
37
|
-
const hasQueryParams = Object
|
|
37
|
+
const hasQueryParams = Object
|
|
38
|
+
.keys(this.$route.query || {})
|
|
39
|
+
.filter(key => !['color', 'store'].includes(`${key || ''}`.toLowerCase()))
|
|
40
|
+
.length > 0;
|
|
38
41
|
|
|
39
42
|
const { short_text: shortText, image, meta = {} } = this.routeInfo || {};
|
|
40
43
|
const pageItemMeta = this.pageItem?.meta || {};
|
package/package.json
CHANGED
package/store/product.js
CHANGED
|
@@ -160,6 +160,7 @@ export const actions = {
|
|
|
160
160
|
commit('setSelectedPrintArea', { printArea: first._id, size: first.printSize });
|
|
161
161
|
}
|
|
162
162
|
} catch (e) {
|
|
163
|
+
console.log(e);
|
|
163
164
|
const { status, data } = e?.response || {};
|
|
164
165
|
const statusCode = status || 500;
|
|
165
166
|
commit('setLoadError', {
|