180 lines
9.7 KiB
JavaScript
180 lines
9.7 KiB
JavaScript
import "../components/HeroBanner.vue.mjs";
|
|
import __nuxt_component_0 from "../node_modules/nuxt/dist/app/components/nuxt-link.mjs";
|
|
import { defineComponent, withCtx, createVNode, toDisplayString, createTextVNode } from "vue";
|
|
import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderList, ssrRenderClass } from "vue/server-renderer";
|
|
import { useI18n } from "vue-i18n";
|
|
import _sfc_main$1 from "../components/HeroBanner.vue2.mjs";
|
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
__name: "index",
|
|
__ssrInlineRender: true,
|
|
setup(__props) {
|
|
const { t } = useI18n();
|
|
const features = [
|
|
{
|
|
icon: "fas fa-shield-alt",
|
|
titleKey: "home.features.security.title",
|
|
descriptionKey: "home.features.security.description"
|
|
},
|
|
{
|
|
icon: "fas fa-bolt",
|
|
titleKey: "home.features.performance.title",
|
|
descriptionKey: "home.features.performance.description"
|
|
},
|
|
{
|
|
icon: "fas fa-dollar-sign",
|
|
titleKey: "home.features.cost.title",
|
|
descriptionKey: "home.features.cost.description"
|
|
}
|
|
];
|
|
const services = [
|
|
{
|
|
icon: "fas fa-check-circle",
|
|
titleKey: "home.services.official.title",
|
|
descriptionKey: "home.services.official.description"
|
|
},
|
|
{
|
|
icon: "fas fa-percentage",
|
|
titleKey: "home.services.price.title",
|
|
descriptionKey: "home.services.price.description"
|
|
},
|
|
{
|
|
icon: "fas fa-headset",
|
|
titleKey: "home.services.support.title",
|
|
descriptionKey: "home.services.support.description"
|
|
},
|
|
{
|
|
icon: "fas fa-graduation-cap",
|
|
titleKey: "home.services.training.title",
|
|
descriptionKey: "home.services.training.description"
|
|
}
|
|
];
|
|
const products = [
|
|
{
|
|
icon: "fas fa-server",
|
|
titleKey: "home.products.ec2.title",
|
|
descriptionKey: "home.products.ec2.description"
|
|
},
|
|
{
|
|
icon: "fas fa-database",
|
|
titleKey: "home.products.s3.title",
|
|
descriptionKey: "home.products.s3.description"
|
|
},
|
|
{
|
|
icon: "fas fa-network-wired",
|
|
titleKey: "home.products.rds.title",
|
|
descriptionKey: "home.products.rds.description"
|
|
}
|
|
];
|
|
const cases = [
|
|
{
|
|
titleKey: "home.cases.fintech.title",
|
|
descriptionKey: "home.cases.fintech.description"
|
|
},
|
|
{
|
|
titleKey: "home.cases.ecommerce.title",
|
|
descriptionKey: "home.cases.ecommerce.description"
|
|
}
|
|
];
|
|
return (_ctx, _push, _parent, _attrs) => {
|
|
const _component_HeroBanner = _sfc_main$1;
|
|
const _component_NuxtLink = __nuxt_component_0;
|
|
_push(`<div${ssrRenderAttrs(_attrs)}>`);
|
|
_push(ssrRenderComponent(_component_HeroBanner, {
|
|
title: _ctx.$t("home.hero.title"),
|
|
subtitle: _ctx.$t("home.hero.subtitle")
|
|
}, {
|
|
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
if (_push2) {
|
|
_push2(`<div class="flex flex-col sm:flex-row justify-center gap-4"${_scopeId}><a href="#features" class="btn-primary"${_scopeId}>${ssrInterpolate(_ctx.$t("home.hero.learnButton"))}</a><a href="#contact" class="btn-secondary"${_scopeId}>${ssrInterpolate(_ctx.$t("home.hero.contactButton"))}</a></div>`);
|
|
} else {
|
|
return [
|
|
createVNode("div", { class: "flex flex-col sm:flex-row justify-center gap-4" }, [
|
|
createVNode("a", {
|
|
href: "#features",
|
|
class: "btn-primary"
|
|
}, toDisplayString(_ctx.$t("home.hero.learnButton")), 1),
|
|
createVNode("a", {
|
|
href: "#contact",
|
|
class: "btn-secondary"
|
|
}, toDisplayString(_ctx.$t("home.hero.contactButton")), 1)
|
|
])
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent));
|
|
_push(`<section id="features" class="bg-light-gray py-20"><div class="container"><div class="max-w-4xl mx-auto text-center mb-16"><h2 class="text-4xl md:text-[40px] font-bold text-[#333333] mb-6 leading-tight">${ssrInterpolate(_ctx.$t("home.features.title"))}</h2><p class="text-xl md:text-[20px] font-light text-[#333333] mb-4 leading-relaxed">${ssrInterpolate(_ctx.$t("home.features.subtitle"))}</p><p class="text-base md:text-[16px] text-[#333333] leading-relaxed">${ssrInterpolate(_ctx.$t("home.features.description"))}</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
|
|
ssrRenderList(features, (feature, index) => {
|
|
_push(`<div class="bg-white p-8 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1"><div class="w-16 h-16 bg-secondary/10 rounded-full flex items-center justify-center mb-6"><i class="${ssrRenderClass(["text-secondary text-2xl", feature.icon])}"></i></div><h3 class="text-xl font-semibold mb-4">${ssrInterpolate(_ctx.$t(feature.titleKey))}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t(feature.descriptionKey))}</p></div>`);
|
|
});
|
|
_push(`<!--]--></div></div></section><section class="py-20 bg-gray-50"><div class="container"><div class="max-w-4xl mx-auto text-center mb-16"><h2 class="text-4xl font-bold text-[#333333] mb-4">${ssrInterpolate(_ctx.$t("home.services.title"))}</h2><p class="text-xl text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t("home.services.subtitle"))}</p></div><div class="grid md:grid-cols-2 gap-8"><!--[-->`);
|
|
ssrRenderList(services, (service, index) => {
|
|
_push(`<div class="bg-white p-8 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1"><div class="flex items-start"><div class="w-12 h-12 bg-accent/10 rounded-full flex items-center justify-center mr-4"><i class="${ssrRenderClass(["text-accent text-xl", service.icon])}"></i></div><div><h3 class="text-xl font-semibold mb-3">${ssrInterpolate(_ctx.$t(service.titleKey))}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t(service.descriptionKey))}</p></div></div></div>`);
|
|
});
|
|
_push(`<!--]--></div></div></section><section class="py-20"><div class="container"><div class="max-w-4xl mx-auto text-center mb-16"><h2 class="text-4xl font-bold text-[#333333] mb-4">${ssrInterpolate(_ctx.$t("home.products.title"))}</h2><p class="text-xl text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t("home.products.subtitle"))}</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
|
|
ssrRenderList(products, (product, index) => {
|
|
_push(`<div class="bg-white rounded-lg shadow-lg overflow-hidden hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1"><div class="h-48 bg-gradient-to-br from-secondary/20 to-secondary/10 flex items-center justify-center"><i class="${ssrRenderClass(["text-6xl text-secondary", product.icon])}"></i></div><div class="p-8"><h3 class="text-2xl font-semibold mb-4">${ssrInterpolate(_ctx.$t(product.titleKey))}</h3><p class="text-gray-600 leading-relaxed mb-6">${ssrInterpolate(_ctx.$t(product.descriptionKey))}</p>`);
|
|
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
to: "/products",
|
|
class: "inline-flex items-center text-secondary hover:text-secondary/90"
|
|
}, {
|
|
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
if (_push2) {
|
|
_push2(`${ssrInterpolate(_ctx.$t("home.products.detail"))} <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
|
|
} else {
|
|
return [
|
|
createTextVNode(toDisplayString(_ctx.$t("home.products.detail")) + " ", 1),
|
|
createVNode("i", { class: "fas fa-arrow-right ml-2" })
|
|
];
|
|
}
|
|
}),
|
|
_: 2
|
|
}, _parent));
|
|
_push(`</div></div>`);
|
|
});
|
|
_push(`<!--]--></div><div class="text-center mt-12">`);
|
|
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
to: "/products",
|
|
class: "inline-flex items-center text-secondary hover:text-secondary/90 text-lg"
|
|
}, {
|
|
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
if (_push2) {
|
|
_push2(`${ssrInterpolate(_ctx.$t("home.products.viewAll"))} <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
|
|
} else {
|
|
return [
|
|
createTextVNode(toDisplayString(_ctx.$t("home.products.viewAll")) + " ", 1),
|
|
createVNode("i", { class: "fas fa-arrow-right ml-2" })
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent));
|
|
_push(`</div></div></section><section class="py-16 bg-gray-50"><div class="container"><h2 class="text-3xl font-medium text-center mb-4">${ssrInterpolate(_ctx.$t("home.cases.title"))}</h2><p class="text-xl text-center text-gray-600 mb-12">${ssrInterpolate(_ctx.$t("home.cases.subtitle"))}</p><div class="grid md:grid-cols-2 gap-8"><!--[-->`);
|
|
ssrRenderList(cases, (case_item, index) => {
|
|
_push(`<div class="bg-white rounded-lg shadow-md overflow-hidden"><div class="h-48 bg-gray-200"></div><div class="p-6"><h3 class="text-2xl font-semibold mb-2">${ssrInterpolate(_ctx.$t(case_item.titleKey))}</h3><p class="text-gray-600 mb-4">${ssrInterpolate(_ctx.$t(case_item.descriptionKey))}</p>`);
|
|
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
to: "/cases",
|
|
class: "inline-block text-secondary hover:text-secondary/90"
|
|
}, {
|
|
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
if (_push2) {
|
|
_push2(`${ssrInterpolate(_ctx.$t("home.cases.readMore"))}`);
|
|
} else {
|
|
return [
|
|
createTextVNode(toDisplayString(_ctx.$t("home.cases.readMore")), 1)
|
|
];
|
|
}
|
|
}),
|
|
_: 2
|
|
}, _parent));
|
|
_push(`</div></div>`);
|
|
});
|
|
_push(`<!--]--></div></div></section></div>`);
|
|
};
|
|
}
|
|
});
|
|
export {
|
|
_sfc_main as default
|
|
};
|
|
//# sourceMappingURL=index.vue2.mjs.map
|