@crm-market/template-shared 1.0.0
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/css/custom.css +70 -0
- package/assets/css/remixicon.css +2782 -0
- package/assets/css/satoshi-font.css +31 -0
- package/assets/fonts/flaticon.css +463 -0
- package/assets/fonts/flaticon.eot +0 -0
- package/assets/fonts/flaticon.html +2153 -0
- package/assets/fonts/flaticon.svg +441 -0
- package/assets/fonts/flaticon.ttf +0 -0
- package/assets/fonts/flaticon.woff +0 -0
- package/assets/fonts/flaticon.woff2 +0 -0
- package/assets/fonts/remixicon.eot +0 -0
- package/assets/fonts/remixicon.svg +8230 -0
- package/assets/fonts/remixicon.ttf +0 -0
- package/assets/fonts/remixicon.woff +0 -0
- package/assets/fonts/remixicon.woff2 +0 -0
- package/assets/scss/_variables.scss +31 -0
- package/assets/scss/components/_about.scss +58 -0
- package/assets/scss/components/_authentication.scss +124 -0
- package/assets/scss/components/_backtoptop.scss +27 -0
- package/assets/scss/components/_banner.scss +396 -0
- package/assets/scss/components/_best-deals.scss +74 -0
- package/assets/scss/components/_blank.scss +40 -0
- package/assets/scss/components/_blog.scss +193 -0
- package/assets/scss/components/_cart.scss +108 -0
- package/assets/scss/components/_categories.scss +82 -0
- package/assets/scss/components/_checkout.scss +110 -0
- package/assets/scss/components/_dashboard.scss +388 -0
- package/assets/scss/components/_faq.scss +22 -0
- package/assets/scss/components/_filter-rang.scss +109 -0
- package/assets/scss/components/_footer.scss +270 -0
- package/assets/scss/components/_global.scss +550 -0
- package/assets/scss/components/_header.scss +587 -0
- package/assets/scss/components/_hurry.scss +52 -0
- package/assets/scss/components/_navbar.scss +1008 -0
- package/assets/scss/components/_offers.scss +689 -0
- package/assets/scss/components/_pagination.scss +71 -0
- package/assets/scss/components/_popup.scss +172 -0
- package/assets/scss/components/_preloader.scss +108 -0
- package/assets/scss/components/_products.scss +1147 -0
- package/assets/scss/components/_rtl.scss +806 -0
- package/assets/scss/components/_services.scss +16 -0
- package/assets/scss/components/_sidebar.scss +259 -0
- package/assets/scss/style.css +6676 -0
- package/assets/scss/style.css.map +1 -0
- package/assets/scss/style.scss +40 -0
- package/assets/webfonts/Satoshi-Bold.eot +0 -0
- package/assets/webfonts/Satoshi-Bold.woff +0 -0
- package/assets/webfonts/Satoshi-Bold.woff2 +0 -0
- package/assets/webfonts/Satoshi-Medium.eot +0 -0
- package/assets/webfonts/Satoshi-Medium.woff +0 -0
- package/assets/webfonts/Satoshi-Medium.woff2 +0 -0
- package/assets/webfonts/Satoshi-Regular.eot +0 -0
- package/assets/webfonts/Satoshi-Regular.woff +0 -0
- package/assets/webfonts/Satoshi-Regular.woff2 +0 -0
- package/components/AboutUs/AboutUsTuan.vue +25 -0
- package/components/AboutUs/Statistics.vue +42 -0
- package/components/AboutUs/SubscribeToTheNewsletter.vue +57 -0
- package/components/AddAddress/index.vue +70 -0
- package/components/BestSellers/Products.vue +1562 -0
- package/components/BestSellers/RecentlyViewed.vue +304 -0
- package/components/Cart/ProductQuantity.vue +29 -0
- package/components/Cart/index.vue +167 -0
- package/components/Categories/index.vue +305 -0
- package/components/ChangePassword/index.vue +71 -0
- package/components/Checkout/index.vue +192 -0
- package/components/Common/DashboardNavigation.vue +37 -0
- package/components/Common/PageBanner.vue +28 -0
- package/components/Common/ProductCard.vue +152 -0
- package/components/Common/Services.vue +58 -0
- package/components/Contact/ContactForm.vue +91 -0
- package/components/Contact/ContactInfo.vue +74 -0
- package/components/Dashboard/RecentOrder.vue +173 -0
- package/components/Dashboard/index.vue +79 -0
- package/components/EditAddress/index.vue +119 -0
- package/components/EditProfile/index.vue +97 -0
- package/components/FAQ/index.vue +121 -0
- package/components/FeaturedProduct/FeaturedProducts.vue +304 -0
- package/components/FeaturedProduct/Products.vue +1562 -0
- package/components/ForgotPassword/index.vue +51 -0
- package/components/Layout/BackToUp.vue +38 -0
- package/components/Layout/Copyright.vue +25 -0
- package/components/Layout/Footer.vue +183 -0
- package/components/Layout/FooterTwo.vue +165 -0
- package/components/Layout/LocationOption.vue +178 -0
- package/components/Layout/MiddleHeader.vue +229 -0
- package/components/Layout/MiddleHeaderThree.vue +204 -0
- package/components/Layout/MiddleHeaderTwo.vue +240 -0
- package/components/Layout/Navbar.vue +185 -0
- package/components/Layout/NavbarStyleFour.vue +334 -0
- package/components/Layout/NavbarStyleThree.vue +188 -0
- package/components/Layout/NavbarStyleTwo.vue +108 -0
- package/components/Layout/Preloader.vue +18 -0
- package/components/Layout/RTLSwitchBtn.vue +40 -0
- package/components/Layout/ResponsiveNavbar.vue +431 -0
- package/components/Layout/TopHeader.vue +130 -0
- package/components/Login/index.vue +94 -0
- package/components/MyAccount/index.vue +154 -0
- package/components/NewArrivals/Products.vue +1969 -0
- package/components/NewArrivals/RecentlyViewed.vue +304 -0
- package/components/OrderDetails/index.vue +77 -0
- package/components/OrderHistory/index.vue +197 -0
- package/components/PrivacyPolicy/index.vue +112 -0
- package/components/ProductDetails/ProductDetailsTab.vue +343 -0
- package/components/ProductDetails/ProductQuantity.vue +29 -0
- package/components/ProductDetails/RecentlyViewed.vue +304 -0
- package/components/ProductDetails/index.vue +268 -0
- package/components/Products/RecentlyViewed.vue +304 -0
- package/components/Products/index.vue +292 -0
- package/components/Register/index.vue +88 -0
- package/components/TermsConditions/index.vue +112 -0
- package/components/TrendingProducts/FeaturedProducts.vue +304 -0
- package/components/TrendingProducts/Products.vue +1564 -0
- package/components/Wishlist/ProductQuantity.vue +29 -0
- package/components/Wishlist/index.vue +128 -0
- package/composables/useCart.ts +149 -0
- package/composables/useCategories.ts +87 -0
- package/composables/useCheckout.ts +131 -0
- package/composables/useProducts.ts +162 -0
- package/composables/useSiteConfig.ts +236 -0
- package/composables/useTemplateSections.ts +74 -0
- package/e2e/cart.spec.ts +71 -0
- package/e2e/fixtures/mock-api.ts +166 -0
- package/e2e/homepage.spec.ts +65 -0
- package/e2e/layout.spec.ts +73 -0
- package/e2e/navigation.spec.ts +61 -0
- package/e2e/pages/cart.page.ts +44 -0
- package/e2e/pages/homepage.page.ts +46 -0
- package/e2e/playwright.config.ts +32 -0
- package/e2e/products.spec.ts +33 -0
- package/layouts/default.vue +94 -0
- package/layouts/inner.vue +70 -0
- package/nuxt.config.ts +86 -0
- package/package.json +38 -0
- package/pages/about-us.vue +12 -0
- package/pages/address.vue +10 -0
- package/pages/cart.vue +10 -0
- package/pages/categories.vue +10 -0
- package/pages/change-password.vue +10 -0
- package/pages/checkout.vue +10 -0
- package/pages/contact.vue +11 -0
- package/pages/dashboard.vue +10 -0
- package/pages/edit-address.vue +10 -0
- package/pages/edit-profile.vue +10 -0
- package/pages/faq.vue +10 -0
- package/pages/forgot-password.vue +10 -0
- package/pages/login.vue +10 -0
- package/pages/my-account.vue +10 -0
- package/pages/order-details.vue +10 -0
- package/pages/order-history.vue +10 -0
- package/pages/privacy-policy.vue +10 -0
- package/pages/product-details.vue +10 -0
- package/pages/products.vue +10 -0
- package/pages/register.vue +10 -0
- package/pages/terms-conditions.vue +10 -0
- package/pages/wishlist.vue +10 -0
- package/plugins/site-init.client.ts +24 -0
- package/plugins/vuetify.ts +18 -0
- package/types/index.ts +121 -0
- package/utils/image.ts +13 -0
- package/utils/store.ts +21 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="product-card">
|
|
3
|
+
<div class="product-img position-relative">
|
|
4
|
+
<NuxtLink :to="`/product-details?id=${product.id}`">
|
|
5
|
+
<img
|
|
6
|
+
:src="productImage"
|
|
7
|
+
:alt="product.name"
|
|
8
|
+
class="w-100 object-fit-cover"
|
|
9
|
+
style="height: 200px;"
|
|
10
|
+
/>
|
|
11
|
+
</NuxtLink>
|
|
12
|
+
<div class="product-badges" v-if="hasDiscount">
|
|
13
|
+
<span class="badge bg-danger">
|
|
14
|
+
-{{ discountPercent }}%
|
|
15
|
+
</span>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="product-actions">
|
|
18
|
+
<button
|
|
19
|
+
class="btn btn-sm"
|
|
20
|
+
:class="inCart ? 'btn-success' : 'btn-outline-primary'"
|
|
21
|
+
@click="handleAddToCart"
|
|
22
|
+
:title="inCart ? 'In cart' : 'Add to cart'"
|
|
23
|
+
>
|
|
24
|
+
<i :class="inCart ? 'ri-check-line' : 'ri-shopping-cart-line'"></i>
|
|
25
|
+
</button>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
<div class="product-info p-2">
|
|
29
|
+
<NuxtLink :to="`/product-details?id=${product.id}`" class="text-decoration-none">
|
|
30
|
+
<h6 class="product-name mb-1 text-truncate">{{ product.name }}</h6>
|
|
31
|
+
</NuxtLink>
|
|
32
|
+
<div class="product-rating mb-1" v-if="product.rating">
|
|
33
|
+
<i
|
|
34
|
+
v-for="star in 5"
|
|
35
|
+
:key="star"
|
|
36
|
+
:class="star <= Math.round(product.rating) ? 'ri-star-fill text-warning' : 'ri-star-line text-muted'"
|
|
37
|
+
class="fs-12"
|
|
38
|
+
></i>
|
|
39
|
+
<span class="text-muted fs-12 ms-1">({{ product.reviews || 0 }})</span>
|
|
40
|
+
</div>
|
|
41
|
+
<div class="product-price">
|
|
42
|
+
<span v-if="hasDiscount" class="text-decoration-line-through text-muted me-1 fs-13">
|
|
43
|
+
${{ product.price.toFixed(2) }}
|
|
44
|
+
</span>
|
|
45
|
+
<span class="fw-bold" :class="hasDiscount ? 'text-danger' : ''">
|
|
46
|
+
${{ effectivePrice.toFixed(2) }}
|
|
47
|
+
</span>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
</template>
|
|
52
|
+
|
|
53
|
+
<script lang="ts">
|
|
54
|
+
import { defineComponent, computed } from "vue";
|
|
55
|
+
import { resolveImageUrl } from "~/utils/image";
|
|
56
|
+
|
|
57
|
+
export default defineComponent({
|
|
58
|
+
name: "ProductCard",
|
|
59
|
+
props: {
|
|
60
|
+
product: {
|
|
61
|
+
type: Object,
|
|
62
|
+
required: true,
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
setup(props) {
|
|
66
|
+
const { addToCart, isInCart } = useCart();
|
|
67
|
+
|
|
68
|
+
const productImage = computed(() => {
|
|
69
|
+
const images = props.product.images;
|
|
70
|
+
if (images && images.length > 0) {
|
|
71
|
+
return resolveImageUrl(images[0]);
|
|
72
|
+
}
|
|
73
|
+
return '';
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
const hasDiscount = computed(() =>
|
|
77
|
+
props.product.discountPrice && props.product.discountPrice < props.product.price
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
const effectivePrice = computed(() =>
|
|
81
|
+
hasDiscount.value ? props.product.discountPrice : props.product.price
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
const discountPercent = computed(() => {
|
|
85
|
+
if (!hasDiscount.value) return 0;
|
|
86
|
+
return Math.round(((props.product.price - props.product.discountPrice) / props.product.price) * 100);
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
const inCart = computed(() => isInCart(props.product.id));
|
|
90
|
+
|
|
91
|
+
const handleAddToCart = () => {
|
|
92
|
+
if (!inCart.value) {
|
|
93
|
+
addToCart({
|
|
94
|
+
productId: props.product.id,
|
|
95
|
+
name: props.product.name,
|
|
96
|
+
price: props.product.price,
|
|
97
|
+
discountPrice: props.product.discountPrice,
|
|
98
|
+
image: props.product.images?.[0] || '',
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
return {
|
|
104
|
+
productImage,
|
|
105
|
+
hasDiscount,
|
|
106
|
+
effectivePrice,
|
|
107
|
+
discountPercent,
|
|
108
|
+
inCart,
|
|
109
|
+
handleAddToCart,
|
|
110
|
+
};
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
</script>
|
|
114
|
+
|
|
115
|
+
<style scoped>
|
|
116
|
+
.product-card {
|
|
117
|
+
border: 1px solid #eee;
|
|
118
|
+
border-radius: 8px;
|
|
119
|
+
overflow: hidden;
|
|
120
|
+
transition: box-shadow 0.3s;
|
|
121
|
+
background: #fff;
|
|
122
|
+
}
|
|
123
|
+
.product-card:hover {
|
|
124
|
+
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
|
|
125
|
+
}
|
|
126
|
+
.product-img {
|
|
127
|
+
overflow: hidden;
|
|
128
|
+
background: #f8f9fa;
|
|
129
|
+
}
|
|
130
|
+
.product-badges {
|
|
131
|
+
position: absolute;
|
|
132
|
+
top: 8px;
|
|
133
|
+
left: 8px;
|
|
134
|
+
}
|
|
135
|
+
.product-actions {
|
|
136
|
+
position: absolute;
|
|
137
|
+
top: 8px;
|
|
138
|
+
right: 8px;
|
|
139
|
+
opacity: 0;
|
|
140
|
+
transition: opacity 0.3s;
|
|
141
|
+
}
|
|
142
|
+
.product-card:hover .product-actions {
|
|
143
|
+
opacity: 1;
|
|
144
|
+
}
|
|
145
|
+
.product-name {
|
|
146
|
+
font-size: 14px;
|
|
147
|
+
color: #333;
|
|
148
|
+
}
|
|
149
|
+
.product-name:hover {
|
|
150
|
+
color: var(--primary-color, #0d6efd);
|
|
151
|
+
}
|
|
152
|
+
</style>
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="services-area pt-60 pb-35">
|
|
3
|
+
<div class="container">
|
|
4
|
+
<v-row class="justify-content-center">
|
|
5
|
+
<v-col cols="12" lg="3" sm="6">
|
|
6
|
+
<div class="d-flex align-items-center single-servives-item">
|
|
7
|
+
<div class="flex-shrink-0">
|
|
8
|
+
<img src="~/assets/images/shipped.png" alt="shipped" />
|
|
9
|
+
</div>
|
|
10
|
+
<div class="flex-grow-1 ms-3">
|
|
11
|
+
<h3>Fast Delivery</h3>
|
|
12
|
+
<span>Experience Lightning-Fast Delivery</span>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
</v-col>
|
|
16
|
+
<v-col cols="12" lg="3" sm="6">
|
|
17
|
+
<div class="d-flex align-items-center single-servives-item">
|
|
18
|
+
<div class="flex-shrink-0">
|
|
19
|
+
<img src="~/assets/images/credit.png" alt="shipped" />
|
|
20
|
+
</div>
|
|
21
|
+
<div class="flex-grow-1 ms-3">
|
|
22
|
+
<h3>Secured Payment</h3>
|
|
23
|
+
<span>Shop with Confidence</span>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</v-col>
|
|
27
|
+
<v-col cols="12" lg="3" sm="6">
|
|
28
|
+
<div class="d-flex align-items-center single-servives-item">
|
|
29
|
+
<div class="flex-shrink-0">
|
|
30
|
+
<img src="~/assets/images/wallet.png" alt="shipped" />
|
|
31
|
+
</div>
|
|
32
|
+
<div class="flex-grow-1 ms-3">
|
|
33
|
+
<h3>Money Back</h3>
|
|
34
|
+
<span>100% Money-Back Guarantee</span>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
</v-col>
|
|
38
|
+
<v-col cols="12" lg="3" sm="6">
|
|
39
|
+
<div class="d-flex align-items-center single-servives-item">
|
|
40
|
+
<div class="flex-shrink-0">
|
|
41
|
+
<img src="~/assets/images/headphones.png" alt="shipped" />
|
|
42
|
+
</div>
|
|
43
|
+
<div class="flex-grow-1 ms-3">
|
|
44
|
+
<h3>24/7 Support</h3>
|
|
45
|
+
<span>Always Here for You</span>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
</v-col>
|
|
49
|
+
</v-row>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
</template>
|
|
53
|
+
|
|
54
|
+
<script>
|
|
55
|
+
export default {
|
|
56
|
+
name: "Services",
|
|
57
|
+
};
|
|
58
|
+
</script>
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="contact-area pb-60">
|
|
3
|
+
<div class="container">
|
|
4
|
+
<div class="authentication-content p-50 mw-100">
|
|
5
|
+
<div class="row">
|
|
6
|
+
<div class="col-lg-5 mb-4 mb-lg-0">
|
|
7
|
+
<div class="login h-100 text-center">
|
|
8
|
+
<img
|
|
9
|
+
src="~/assets/images/contact-us.png"
|
|
10
|
+
class="h-100 object-fit-cover"
|
|
11
|
+
alt="contact-us"
|
|
12
|
+
/>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="col-lg-7">
|
|
16
|
+
<div class="authentication-form form-wrap">
|
|
17
|
+
<h3 class="title mb-2">Get In Touch</h3>
|
|
18
|
+
<p>
|
|
19
|
+
Your Gateway to Excellence: Contact Us and Unlock a World of
|
|
20
|
+
Possibilities
|
|
21
|
+
</p>
|
|
22
|
+
|
|
23
|
+
<form>
|
|
24
|
+
<div class="row">
|
|
25
|
+
<div class="col-lg-6">
|
|
26
|
+
<div class="form-group mb-4">
|
|
27
|
+
<label class="label">Your Name *</label>
|
|
28
|
+
<input
|
|
29
|
+
type="text"
|
|
30
|
+
class="form-control"
|
|
31
|
+
placeholder="Enter your name"
|
|
32
|
+
/>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
<div class="col-lg-6">
|
|
36
|
+
<div class="form-group mb-4">
|
|
37
|
+
<label class="label">Your Email *</label>
|
|
38
|
+
<input
|
|
39
|
+
type="email"
|
|
40
|
+
class="form-control"
|
|
41
|
+
placeholder="Enter your email"
|
|
42
|
+
/>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
<div class="col-lg-12">
|
|
46
|
+
<div class="form-group mb-4">
|
|
47
|
+
<label class="label">Your Subject *</label>
|
|
48
|
+
<input
|
|
49
|
+
type="text"
|
|
50
|
+
class="form-control"
|
|
51
|
+
placeholder="Your subject"
|
|
52
|
+
/>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
<div class="col-lg-12">
|
|
56
|
+
<div class="form-group mb-4">
|
|
57
|
+
<label class="label">Your Message *</label>
|
|
58
|
+
<textarea
|
|
59
|
+
class="form-control"
|
|
60
|
+
placeholder="Write message"
|
|
61
|
+
cols="30"
|
|
62
|
+
rows="5"
|
|
63
|
+
></textarea>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
|
|
67
|
+
<div class="col-lg-12">
|
|
68
|
+
<div class="form-group mb-0">
|
|
69
|
+
<button
|
|
70
|
+
type="submit"
|
|
71
|
+
class="btn btn-warning btn-pill text-white"
|
|
72
|
+
>
|
|
73
|
+
Submit Now
|
|
74
|
+
</button>
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
</form>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
</template>
|
|
86
|
+
|
|
87
|
+
<script>
|
|
88
|
+
export default {
|
|
89
|
+
name: "ContactForm",
|
|
90
|
+
};
|
|
91
|
+
</script>
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="contact-info-area pt-60 pb-35">
|
|
3
|
+
<div class="container">
|
|
4
|
+
<div class="row justify-content-center">
|
|
5
|
+
<div class="col-lg-4 col-md-6">
|
|
6
|
+
<div class="single-contact-info-item">
|
|
7
|
+
<div class="d-sm-flex">
|
|
8
|
+
<div class="flex-shrink-0">
|
|
9
|
+
<i class="flaticon-placeholder"></i>
|
|
10
|
+
</div>
|
|
11
|
+
<div class="flex-grow-1 ms-sm-3 mt-3 mt-sm-0">
|
|
12
|
+
<h3>United Kingdom</h3>
|
|
13
|
+
<p>6391 Elgin St. Celina, Delaware 10299</p>
|
|
14
|
+
<a href="#" class="tell">(208) 555-0112</a>
|
|
15
|
+
<a
|
|
16
|
+
href="mailto:support@tuaninfo.com"
|
|
17
|
+
class="text-decoration-underline text-primary"
|
|
18
|
+
>
|
|
19
|
+
support@tuaninfo.com
|
|
20
|
+
</a>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="col-lg-4 col-md-6">
|
|
26
|
+
<div class="single-contact-info-item">
|
|
27
|
+
<div class="d-sm-flex">
|
|
28
|
+
<div class="flex-shrink-0">
|
|
29
|
+
<i class="flaticon-placeholder"></i>
|
|
30
|
+
</div>
|
|
31
|
+
<div class="flex-grow-1 ms-sm-3 mt-3 mt-sm-0">
|
|
32
|
+
<h3>Toronto Canada</h3>
|
|
33
|
+
<p>1901 Thornridge Cir. Shiloh, Hawaii</p>
|
|
34
|
+
<a href="tel:(252)555-0126" class="tell">(252) 555-0126</a>
|
|
35
|
+
<a
|
|
36
|
+
href="mailto:support@tuaninfo.com"
|
|
37
|
+
class="text-decoration-underline text-primary"
|
|
38
|
+
>
|
|
39
|
+
support@tuaninfo.com
|
|
40
|
+
</a>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
<div class="col-lg-4 col-md-6">
|
|
46
|
+
<div class="single-contact-info-item">
|
|
47
|
+
<div class="d-sm-flex">
|
|
48
|
+
<div class="flex-shrink-0">
|
|
49
|
+
<i class="flaticon-placeholder"></i>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="flex-grow-1 ms-sm-3 mt-3 mt-sm-0">
|
|
52
|
+
<h3>Saint Barthélemy</h3>
|
|
53
|
+
<p>4517 Washington Ave. Manchester</p>
|
|
54
|
+
<a href="tel:(505)555-0125" class="tell">(505)555-0125</a>
|
|
55
|
+
<a
|
|
56
|
+
href="mailto:support@tuaninfo.com"
|
|
57
|
+
class="text-decoration-underline text-primary"
|
|
58
|
+
>
|
|
59
|
+
support@tuaninfo.com
|
|
60
|
+
</a>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
</template>
|
|
69
|
+
|
|
70
|
+
<script>
|
|
71
|
+
export default {
|
|
72
|
+
name: "ContactInfo",
|
|
73
|
+
};
|
|
74
|
+
</script>
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="cart-area recent-order">
|
|
3
|
+
<h3 class="mb-3">Recent Order</h3>
|
|
4
|
+
<form class="cart-controller mb-0">
|
|
5
|
+
<div class="cart-table table-responsive">
|
|
6
|
+
<table class="table table-bordered align-middle">
|
|
7
|
+
<thead>
|
|
8
|
+
<tr>
|
|
9
|
+
<th scope="col">Trash</th>
|
|
10
|
+
<th scope="col">Product</th>
|
|
11
|
+
<th scope="col"></th>
|
|
12
|
+
<th scope="col">Order</th>
|
|
13
|
+
<th scope="col">Quantity</th>
|
|
14
|
+
<th scope="col">Status</th>
|
|
15
|
+
<th scope="col">Total</th>
|
|
16
|
+
</tr>
|
|
17
|
+
</thead>
|
|
18
|
+
|
|
19
|
+
<tbody>
|
|
20
|
+
<tr>
|
|
21
|
+
<td class="trash">
|
|
22
|
+
<a href="#" class="remove">
|
|
23
|
+
<i class="ri-delete-bin-line"></i>
|
|
24
|
+
</a>
|
|
25
|
+
</td>
|
|
26
|
+
<td class="product-thumbnail">
|
|
27
|
+
<NuxtLink to="/product-details">
|
|
28
|
+
<img src="~/assets/images/product-6.png" alt="Image" />
|
|
29
|
+
</NuxtLink>
|
|
30
|
+
</td>
|
|
31
|
+
|
|
32
|
+
<td class="product-name">
|
|
33
|
+
<NuxtLink to="/product-details" class="title">
|
|
34
|
+
Multiplatform Wireless Noise-Cancelling Gaming Headset
|
|
35
|
+
</NuxtLink>
|
|
36
|
+
</td>
|
|
37
|
+
|
|
38
|
+
<td class="product-price">
|
|
39
|
+
<span class="unit-amount">#001</span>
|
|
40
|
+
</td>
|
|
41
|
+
|
|
42
|
+
<td class="product-price">
|
|
43
|
+
<span class="unit-amount">01</span>
|
|
44
|
+
</td>
|
|
45
|
+
|
|
46
|
+
<td class="product-subtotal">
|
|
47
|
+
<span class="subtotal-amount">Paid</span>
|
|
48
|
+
</td>
|
|
49
|
+
|
|
50
|
+
<td class="product-subtotal">
|
|
51
|
+
<span class="subtotal-amount">$279.00</span>
|
|
52
|
+
</td>
|
|
53
|
+
</tr>
|
|
54
|
+
|
|
55
|
+
<tr>
|
|
56
|
+
<td class="trash">
|
|
57
|
+
<a href="#" class="remove">
|
|
58
|
+
<i class="ri-delete-bin-line"></i>
|
|
59
|
+
</a>
|
|
60
|
+
</td>
|
|
61
|
+
|
|
62
|
+
<td class="product-thumbnail">
|
|
63
|
+
<NuxtLink to="/product-details">
|
|
64
|
+
<img src="~/assets/images/product-7.png" alt="Image" />
|
|
65
|
+
</NuxtLink>
|
|
66
|
+
</td>
|
|
67
|
+
|
|
68
|
+
<td class="product-name">
|
|
69
|
+
<NuxtLink to="/product-details" class="title">
|
|
70
|
+
GPS Smartwatch with Bright Touchscreen Display
|
|
71
|
+
</NuxtLink>
|
|
72
|
+
</td>
|
|
73
|
+
|
|
74
|
+
<td class="product-price">
|
|
75
|
+
<span class="unit-amount">#005</span>
|
|
76
|
+
</td>
|
|
77
|
+
|
|
78
|
+
<td class="product-price">
|
|
79
|
+
<span class="unit-amount">02</span>
|
|
80
|
+
</td>
|
|
81
|
+
|
|
82
|
+
<td class="product-subtotal">
|
|
83
|
+
<span class="subtotal-amount">Pending</span>
|
|
84
|
+
</td>
|
|
85
|
+
|
|
86
|
+
<td class="product-subtotal">
|
|
87
|
+
<span class="subtotal-amount">$119.00</span>
|
|
88
|
+
</td>
|
|
89
|
+
</tr>
|
|
90
|
+
|
|
91
|
+
<tr>
|
|
92
|
+
<td class="trash">
|
|
93
|
+
<a href="#" class="remove">
|
|
94
|
+
<i class="ri-delete-bin-line"></i>
|
|
95
|
+
</a>
|
|
96
|
+
</td>
|
|
97
|
+
|
|
98
|
+
<td class="product-thumbnail">
|
|
99
|
+
<NuxtLink to="/product-details">
|
|
100
|
+
<img src="~/assets/images/product-8.png" alt="Image" />
|
|
101
|
+
</NuxtLink>
|
|
102
|
+
</td>
|
|
103
|
+
|
|
104
|
+
<td class="product-name">
|
|
105
|
+
<NuxtLink to="/product-details" class="title">
|
|
106
|
+
SAMSUNG 32-Inch Class QLED 4K Q60C Series Quantum HDR
|
|
107
|
+
</NuxtLink>
|
|
108
|
+
</td>
|
|
109
|
+
|
|
110
|
+
<td class="product-price">
|
|
111
|
+
<span class="unit-amount">#009</span>
|
|
112
|
+
</td>
|
|
113
|
+
|
|
114
|
+
<td class="product-price">
|
|
115
|
+
<span class="unit-amount">02</span>
|
|
116
|
+
</td>
|
|
117
|
+
|
|
118
|
+
<td class="product-subtotal">
|
|
119
|
+
<span class="subtotal-amount">Failed</span>
|
|
120
|
+
</td>
|
|
121
|
+
|
|
122
|
+
<td class="product-subtotal">
|
|
123
|
+
<span class="subtotal-amount">$397.00</span>
|
|
124
|
+
</td>
|
|
125
|
+
</tr>
|
|
126
|
+
|
|
127
|
+
<tr>
|
|
128
|
+
<td class="trash">
|
|
129
|
+
<a href="#" class="remove">
|
|
130
|
+
<i class="ri-delete-bin-line"></i>
|
|
131
|
+
</a>
|
|
132
|
+
</td>
|
|
133
|
+
|
|
134
|
+
<td class="product-thumbnail">
|
|
135
|
+
<NuxtLink to="/product-details">
|
|
136
|
+
<img src="~/assets/images/product-9.png" alt="Image" />
|
|
137
|
+
</NuxtLink>
|
|
138
|
+
</td>
|
|
139
|
+
|
|
140
|
+
<td class="product-name">
|
|
141
|
+
<NuxtLink to="/product-details" class="title">
|
|
142
|
+
Apple MacBook Pro 16.2" with Liquid Retina XDR Display
|
|
143
|
+
</NuxtLink>
|
|
144
|
+
</td>
|
|
145
|
+
|
|
146
|
+
<td class="product-price">
|
|
147
|
+
<span class="unit-amount">#0062</span>
|
|
148
|
+
</td>
|
|
149
|
+
|
|
150
|
+
<td class="product-price">
|
|
151
|
+
<span class="unit-amount">02</span>
|
|
152
|
+
</td>
|
|
153
|
+
|
|
154
|
+
<td class="product-subtotal">
|
|
155
|
+
<span class="subtotal-amount">Paid</span>
|
|
156
|
+
</td>
|
|
157
|
+
|
|
158
|
+
<td class="product-subtotal">
|
|
159
|
+
<span class="subtotal-amount">$3499.00</span>
|
|
160
|
+
</td>
|
|
161
|
+
</tr>
|
|
162
|
+
</tbody>
|
|
163
|
+
</table>
|
|
164
|
+
</div>
|
|
165
|
+
</form>
|
|
166
|
+
</div>
|
|
167
|
+
</template>
|
|
168
|
+
|
|
169
|
+
<script>
|
|
170
|
+
export default {
|
|
171
|
+
name: "RecentOrder",
|
|
172
|
+
};
|
|
173
|
+
</script>
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="dashboard-area ptb-60">
|
|
3
|
+
<div class="container">
|
|
4
|
+
<div class="row">
|
|
5
|
+
<div class="col-lg-4">
|
|
6
|
+
<CommonDashboardNavigation />
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
<div class="col-lg-8">
|
|
10
|
+
<div class="row">
|
|
11
|
+
<div class="col-lg-6">
|
|
12
|
+
<div class="profile-bar">
|
|
13
|
+
<div class="profile-info">
|
|
14
|
+
<img src="~/assets/images/user-9.jpg" alt="user" />
|
|
15
|
+
|
|
16
|
+
<h3>
|
|
17
|
+
<NuxtLink to="/edit-profile">Amanda McCarter</NuxtLink>
|
|
18
|
+
</h3>
|
|
19
|
+
<a href="mailto:contact@tuan.com">contact@tuan.com</a>
|
|
20
|
+
<a href="tel:973-635-8147">973-635-8147</a>
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
<div class="edit-profiles">
|
|
24
|
+
<NuxtLink
|
|
25
|
+
to="/edit-profile"
|
|
26
|
+
class="btn btn-warning text-white"
|
|
27
|
+
>
|
|
28
|
+
Edit Profile
|
|
29
|
+
</NuxtLink>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<div class="col-lg-6">
|
|
35
|
+
<div class="billing-address-bar">
|
|
36
|
+
<h3>Default</h3>
|
|
37
|
+
<ul>
|
|
38
|
+
<li class="p-0">Amanda McCarter</li>
|
|
39
|
+
<li>
|
|
40
|
+
<span>Address:</span>
|
|
41
|
+
4 Shady Pines Drive Bowling Green
|
|
42
|
+
</li>
|
|
43
|
+
</ul>
|
|
44
|
+
|
|
45
|
+
<ul>
|
|
46
|
+
<li>
|
|
47
|
+
<span>Phone:</span>
|
|
48
|
+
<a href="tel:270-957-9995">270-957-9995</a>
|
|
49
|
+
</li>
|
|
50
|
+
<li>
|
|
51
|
+
<span>Email:</span>
|
|
52
|
+
<a href="mailto:contact@tuan.com">contact@tuan.com</a>
|
|
53
|
+
</li>
|
|
54
|
+
</ul>
|
|
55
|
+
|
|
56
|
+
<div class="edit-address">
|
|
57
|
+
<NuxtLink
|
|
58
|
+
to="/edit-address"
|
|
59
|
+
class="btn btn-warning text-white"
|
|
60
|
+
>
|
|
61
|
+
Edit Address
|
|
62
|
+
</NuxtLink>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
<DashboardRecentOrder />
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
</template>
|
|
74
|
+
|
|
75
|
+
<script>
|
|
76
|
+
export default {
|
|
77
|
+
name: "Dashboard",
|
|
78
|
+
};
|
|
79
|
+
</script>
|