实现国际化

This commit is contained in:
nike_zhiyun 2025-04-22 16:46:16 +08:00
parent 88615d2153
commit 9847a5a91e
124 changed files with 20929 additions and 1280 deletions

View File

@ -1011,7 +1011,7 @@ const _w68KPHUKUM8vpNTaO1jeKcVlhxbPvInFTau5wLvu5nA = (function(nitro) {
const rootDir = "D:/doc/workspace/web3";
const appHead = {"meta":[{"name":"viewport","content":"width=device-width, initial-scale=1"},{"charset":"utf-8"}],"link":[],"style":[],"script":[],"noscript":[]};
const appHead = {"meta":[{"name":"viewport","content":"width=device-width, initial-scale=1"},{"charset":"utf-8"},{"name":"description","content":"为您的企业提供专业的AWS云服务解决方案助力数字化转型"}],"link":[{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css"},{"rel":"preconnect","href":"https://fonts.googleapis.com"},{"rel":"preconnect","href":"https://fonts.gstatic.com","crossorigin":""},{"rel":"stylesheet","href":"https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;600;700&display=swap"}],"style":[],"script":[],"noscript":[],"charset":"utf-8","viewport":"width=device-width, initial-scale=1","title":"AWS云服务专家"};
const appRootTag = "div";

1
.nuxt/dist/client/_nuxt/B6lrqvh7.js vendored Normal file

File diff suppressed because one or more lines are too long

1
.nuxt/dist/client/_nuxt/CMPzECfg.js vendored Normal file
View File

@ -0,0 +1 @@
import{g as o,c as a,a as t,B as l,t as s,o as i}from"./DSWUVrVG.js";const n={class:"relative bg-gradient-to-b from-primary/80 to-primary/90 text-white py-24 md:py-32"},r={class:"container"},c={class:"max-w-3xl mx-auto text-center"},d={class:"text-4xl md:text-5xl lg:text-6xl font-bold mb-6 leading-tight"},m={class:"text-xl md:text-2xl text-white/90 mb-8 leading-relaxed"},h=o({__name:"HeroBanner",props:{title:{},subtitle:{}},setup(x){return(e,_)=>(i(),a("section",n,[t("div",r,[t("div",c,[t("h1",d,s(e.title),1),t("p",m,s(e.subtitle),1),l(e.$slots,"default")])])]))}});export{h as _};

1
.nuxt/dist/client/_nuxt/CMRHilQO.js vendored Normal file

File diff suppressed because one or more lines are too long

1
.nuxt/dist/client/_nuxt/CXatzjaf.js vendored Normal file
View File

@ -0,0 +1 @@
import{u as a,e as s,h as r,i as o,f as i}from"./DSWUVrVG.js";function u(n){var t;const e=n||s();return((t=e==null?void 0:e.ssrContext)==null?void 0:t.head)||(e==null?void 0:e.runWithContext(()=>{if(r())return o(i)}))}function d(n,e={}){const t=u(e.nuxt);if(t)return a(n,{head:t,...e})}export{d as u};

1
.nuxt/dist/client/_nuxt/CmLpmxYD.js vendored Normal file

File diff suppressed because one or more lines are too long

1
.nuxt/dist/client/_nuxt/D4Kwfg7p.js vendored Normal file

File diff suppressed because one or more lines are too long

1
.nuxt/dist/client/_nuxt/D4pWdZYp.js vendored Normal file

File diff suppressed because one or more lines are too long

1
.nuxt/dist/client/_nuxt/DCtL9BZ-.js vendored Normal file
View File

@ -0,0 +1 @@
import{_ as a}from"./D4Kwfg7p.js";import{_ as i,c as u,o as c,a as e,t as r,b as l,w as d,d as p}from"./DSWUVrVG.js";import{u as f}from"./CXatzjaf.js";const m={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},g={class:"max-w-520px text-center z-20"},h=["textContent"],b=["textContent"],x={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:404},statusMessage:{type:String,default:"Not Found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(t){const n=t;return f({title:`${n.statusCode} - ${n.statusMessage} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver((e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)})).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,o)=>{const s=a;return c(),u("div",m,[o[0]||(o[0]=e("div",{class:"fixed left-0 right-0 spotlight z-10"},null,-1)),e("div",g,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:r(t.statusCode)},null,8,h),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:r(t.description)},null,8,b),e("div",x,[l(s,{to:"/",class:"cursor-pointer gradient-border px-4 py-2 sm:px-6 sm:py-3 sm:text-xl text-md"},{default:d(()=>[p(r(t.backHome),1)]),_:1})])])])}}},z=i(y,[["__scopeId","data-v-3fc41134"]]);export{z as default};

1
.nuxt/dist/client/_nuxt/DGy46hw9.js vendored Normal file

File diff suppressed because one or more lines are too long

1
.nuxt/dist/client/_nuxt/DLEpXDj8.js vendored Normal file
View File

@ -0,0 +1 @@
import{_ as s,c as a,o as i,a as e,t as o}from"./DSWUVrVG.js";import{u}from"./CXatzjaf.js";const l={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},c={class:"max-w-520px text-center"},d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:500},statusMessage:{type:String,default:"Server error"},description:{type:String,default:"This page is temporarily unavailable."}},setup(t){const r=t;return u({title:`${r.statusCode} - ${r.statusMessage} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver((e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)})).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(g,n)=>(i(),a("div",l,[n[0]||(n[0]=e("div",{class:"-bottom-1/2 fixed h-1/2 left-0 right-0 spotlight"},null,-1)),e("div",c,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:o(t.statusCode)},null,8,d),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:o(t.description)},null,8,p)])]))}},h=s(f,[["__scopeId","data-v-bfd09c70"]]);export{h as default};

1
.nuxt/dist/client/_nuxt/DMaJR5zD.js vendored Normal file

File diff suppressed because one or more lines are too long

43
.nuxt/dist/client/_nuxt/DSWUVrVG.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
.nuxt/dist/client/_nuxt/toIENW8q.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,2 @@
import style_0 from './../entry-styles-3.mjs.mjs';
export default [style_0]

View File

@ -0,0 +1,3 @@
import style_0 from './../entry-styles-3.mjs.mjs';
import style_1 from './../entry-styles-3.mjs.mjs';
export default [style_0, style_1]

View File

@ -0,0 +1,4 @@
import style_0 from './../entry-styles-1.mjs.mjs';
import style_1 from './../entry-styles-2.mjs.mjs';
import style_2 from './../entry-styles-3.mjs.mjs';
export default [style_0, style_1, style_2]

View File

@ -2,12 +2,14 @@ import unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU from "../node_modules/
import plugin from "../node_modules/nuxt/dist/pages/runtime/plugins/router.mjs";
import revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms from "../node_modules/nuxt/dist/app/plugins/revive-payload.server.mjs";
import components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 from "./virtual_nuxt_D__doc_workspace_web3_.nuxt_components.plugin.mjs";
import i18n_M6WuPocwmDZfR2LKAqoIP7SPPiCebMfT5sB7ls3Be_c from "../plugins/i18n.mjs";
import prerender_server_sqIxOBipVr4FbVMA9kqWL0wT8FPop6sKAXLVfifsJzk from "../node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.mjs";
const plugins = [
unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU,
plugin,
revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms,
components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4,
i18n_M6WuPocwmDZfR2LKAqoIP7SPPiCebMfT5sB7ls3Be_c,
prerender_server_sqIxOBipVr4FbVMA9kqWL0wT8FPop6sKAXLVfifsJzk
];
export {

View File

@ -1 +1 @@
{"version":3,"file":"virtual_nuxt_D__doc_workspace_web3_.nuxt_plugins.server.mjs","sources":["../../../../virtual:nuxt:D%3A%2Fdoc%2Fworkspace%2Fweb3%2F.nuxt%2Fplugins.server.mjs"],"sourcesContent":["import unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU from \"D:/doc/workspace/web3/node_modules/nuxt/dist/head/runtime/plugins/unhead.js\";\nimport router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw from \"D:/doc/workspace/web3/node_modules/nuxt/dist/pages/runtime/plugins/router.js\";\nimport revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms from \"D:/doc/workspace/web3/node_modules/nuxt/dist/app/plugins/revive-payload.server.js\";\nimport components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 from \"D:/doc/workspace/web3/.nuxt/components.plugin.mjs\";\nimport prerender_server_sqIxOBipVr4FbVMA9kqWL0wT8FPop6sKAXLVfifsJzk from \"D:/doc/workspace/web3/node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.js\";\nexport default [\n unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU,\n router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw,\n revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms,\n components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4,\n prerender_server_sqIxOBipVr4FbVMA9kqWL0wT8FPop6sKAXLVfifsJzk\n]"],"names":["router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw"],"mappings":";;;;;AAKA,MAAe,UAAA;AAAA,EACb;AAAA,EACAA;AAAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;"}
{"version":3,"file":"virtual_nuxt_D__doc_workspace_web3_.nuxt_plugins.server.mjs","sources":["../../../../virtual:nuxt:D%3A%2Fdoc%2Fworkspace%2Fweb3%2F.nuxt%2Fplugins.server.mjs"],"sourcesContent":["import unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU from \"D:/doc/workspace/web3/node_modules/nuxt/dist/head/runtime/plugins/unhead.js\";\nimport router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw from \"D:/doc/workspace/web3/node_modules/nuxt/dist/pages/runtime/plugins/router.js\";\nimport revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms from \"D:/doc/workspace/web3/node_modules/nuxt/dist/app/plugins/revive-payload.server.js\";\nimport components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 from \"D:/doc/workspace/web3/.nuxt/components.plugin.mjs\";\nimport i18n_M6WuPocwmDZfR2LKAqoIP7SPPiCebMfT5sB7ls3Be_c from \"D:/doc/workspace/web3/plugins/i18n.ts\";\nimport prerender_server_sqIxOBipVr4FbVMA9kqWL0wT8FPop6sKAXLVfifsJzk from \"D:/doc/workspace/web3/node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.js\";\nexport default [\n unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU,\n router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw,\n revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms,\n components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4,\n i18n_M6WuPocwmDZfR2LKAqoIP7SPPiCebMfT5sB7ls3Be_c,\n prerender_server_sqIxOBipVr4FbVMA9kqWL0wT8FPop6sKAXLVfifsJzk\n]"],"names":["router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw"],"mappings":";;;;;;AAMA,MAAe,UAAA;AAAA,EACb;AAAA,EACAA;AAAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;"}

View File

@ -1 +1 @@
{"file":"virtual_nuxt_D__doc_workspace_web3_.nuxt_plugins.server.mjs","mappings":";;;;;AAKA,MAAe,UAAA;AAAA,EACb;AAAA,EACAA;AAAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":["router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw"],"sources":["../../../../virtual:nuxt:D%3A%2Fdoc%2Fworkspace%2Fweb3%2F.nuxt%2Fplugins.server.mjs"],"sourcesContent":["import unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU from \"D:/doc/workspace/web3/node_modules/nuxt/dist/head/runtime/plugins/unhead.js\";\nimport router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw from \"D:/doc/workspace/web3/node_modules/nuxt/dist/pages/runtime/plugins/router.js\";\nimport revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms from \"D:/doc/workspace/web3/node_modules/nuxt/dist/app/plugins/revive-payload.server.js\";\nimport components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 from \"D:/doc/workspace/web3/.nuxt/components.plugin.mjs\";\nimport prerender_server_sqIxOBipVr4FbVMA9kqWL0wT8FPop6sKAXLVfifsJzk from \"D:/doc/workspace/web3/node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.js\";\nexport default [\n unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU,\n router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw,\n revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms,\n components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4,\n prerender_server_sqIxOBipVr4FbVMA9kqWL0wT8FPop6sKAXLVfifsJzk\n]"],"version":3}
{"file":"virtual_nuxt_D__doc_workspace_web3_.nuxt_plugins.server.mjs","mappings":";;;;;;AAMA,MAAe,UAAA;AAAA,EACb;AAAA,EACAA;AAAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":["router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw"],"sources":["../../../../virtual:nuxt:D%3A%2Fdoc%2Fworkspace%2Fweb3%2F.nuxt%2Fplugins.server.mjs"],"sourcesContent":["import unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU from \"D:/doc/workspace/web3/node_modules/nuxt/dist/head/runtime/plugins/unhead.js\";\nimport router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw from \"D:/doc/workspace/web3/node_modules/nuxt/dist/pages/runtime/plugins/router.js\";\nimport revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms from \"D:/doc/workspace/web3/node_modules/nuxt/dist/app/plugins/revive-payload.server.js\";\nimport components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 from \"D:/doc/workspace/web3/.nuxt/components.plugin.mjs\";\nimport i18n_M6WuPocwmDZfR2LKAqoIP7SPPiCebMfT5sB7ls3Be_c from \"D:/doc/workspace/web3/plugins/i18n.ts\";\nimport prerender_server_sqIxOBipVr4FbVMA9kqWL0wT8FPop6sKAXLVfifsJzk from \"D:/doc/workspace/web3/node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.js\";\nexport default [\n unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU,\n router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw,\n revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms,\n components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4,\n i18n_M6WuPocwmDZfR2LKAqoIP7SPPiCebMfT5sB7ls3Be_c,\n prerender_server_sqIxOBipVr4FbVMA9kqWL0wT8FPop6sKAXLVfifsJzk\n]"],"version":3}

View File

@ -2,6 +2,7 @@ import __nuxt_component_0 from "./node_modules/nuxt/dist/app/components/nuxt-lay
import __nuxt_component_1 from "./node_modules/nuxt/dist/pages/runtime/page.mjs";
import { withCtx, createVNode, useSSRContext } from "vue";
import { ssrRenderComponent } from "vue/server-renderer";
/* empty css */
import _export_sfc from "./_virtual/_plugin-vue_export-helper.mjs";
const _sfc_main = {};
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {

View File

@ -1 +1 @@
{"version":3,"file":"app.vue.mjs","sources":["../../../app.vue"],"sourcesContent":["<template>\r\n <NuxtLayout>\r\n <NuxtPage />\r\n </NuxtLayout>\r\n</template> "],"names":["_ssrRenderComponent","_withCtx","_push","_parent"],"mappings":";;;;;;;;;AAAA,QAAAA,mBAGe,uBAAA,QAAA;AAAA,IAHf,SAAAC,QAAA,CAAA,GAAAC,QAAAC,UAAA,aAAA;UAAAD,QAAA;;;eAEgB;AAAA;;;KAFhB;AAAA;;;;;;;;;;"}
{"version":3,"file":"app.vue.mjs","sources":["../../../app.vue"],"sourcesContent":["<template>\r\n <NuxtLayout>\r\n <NuxtPage />\r\n </NuxtLayout>\r\n</template>\r\n\r\n<style>\r\n@import 'assets/css/main.css';\r\n</style> "],"names":["_ssrRenderComponent","_withCtx","_push","_parent"],"mappings":";;;;;;;;;;AAAA,QAAAA,mBAGe,uBAAA,QAAA;AAAA,IAHf,SAAAC,QAAA,CAAA,GAAAC,QAAAC,UAAA,aAAA;UAAAD,QAAA;;;eAEgB;AAAA;;;KAFhB;AAAA;;;;;;;;;;"}

View File

@ -1 +1 @@
{"file":"app.vue.mjs","mappings":";;;;;;;;;AAAA,QAAAA,mBAGe,uBAAA,QAAA;AAAA,IAHf,SAAAC,QAAA,CAAA,GAAAC,QAAAC,UAAA,aAAA;UAAAD,QAAA;;;eAEgB;AAAA;;;KAFhB;AAAA;;;;;;;;;;","names":["_ssrRenderComponent","_withCtx","_push","_parent"],"sources":["../../../app.vue"],"sourcesContent":["<template>\r\n <NuxtLayout>\r\n <NuxtPage />\r\n </NuxtLayout>\r\n</template> "],"version":3}
{"file":"app.vue.mjs","mappings":";;;;;;;;;;AAAA,QAAAA,mBAGe,uBAAA,QAAA;AAAA,IAHf,SAAAC,QAAA,CAAA,GAAAC,QAAAC,UAAA,aAAA;UAAAD,QAAA;;;eAEgB;AAAA;;;KAFhB;AAAA;;;;;;;;;;","names":["_ssrRenderComponent","_withCtx","_push","_parent"],"sources":["../../../app.vue"],"sourcesContent":["<template>\r\n <NuxtLayout>\r\n <NuxtPage />\r\n </NuxtLayout>\r\n</template>\r\n\r\n<style>\r\n@import 'assets/css/main.css';\r\n</style> "],"version":3}

View File

@ -1,27 +1,29 @@
import __nuxt_component_0 from "../node_modules/nuxt/dist/app/components/nuxt-link.mjs";
import { defineComponent, mergeProps, withCtx, createTextVNode, toDisplayString } from "vue";
import { ssrRenderAttrs, ssrRenderList, ssrRenderComponent, ssrInterpolate } from "vue/server-renderer";
import { ssrRenderAttrs, ssrInterpolate, ssrRenderList, ssrRenderComponent } from "vue/server-renderer";
import { useI18n } from "vue-i18n";
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "FooterSection",
__ssrInlineRender: true,
setup(__props) {
const { t } = useI18n();
const products = [
{ name: "EC2 云服务器", path: "/products" },
{ name: "S3 对象存储", path: "/products" },
{ name: "RDS 数据库服务", path: "/products" },
{ name: "Lambda 无服务器", path: "/products" },
{ name: "更多产品...", path: "/products" }
{ i18nKey: "footer.productLinks.ec2", path: "/products" },
{ i18nKey: "footer.productLinks.s3", path: "/products" },
{ i18nKey: "footer.productLinks.rds", path: "/products" },
{ i18nKey: "footer.productLinks.lambda", path: "/products" },
{ i18nKey: "footer.productLinks.more", path: "/products" }
];
const solutions = [
{ name: "网站托管", path: "/solutions" },
{ name: "企业上云", path: "/solutions" },
{ name: "灾备方案", path: "/solutions" },
{ name: "大数据分析", path: "/solutions" },
{ name: "微服务架构", path: "/solutions" }
{ i18nKey: "footer.solutionLinks.web", path: "/solutions" },
{ i18nKey: "footer.solutionLinks.enterprise", path: "/solutions" },
{ i18nKey: "footer.solutionLinks.disaster", path: "/solutions" },
{ i18nKey: "footer.solutionLinks.bigdata", path: "/solutions" },
{ i18nKey: "footer.solutionLinks.microservice", path: "/solutions" }
];
return (_ctx, _push, _parent, _attrs) => {
const _component_NuxtLink = __nuxt_component_0;
_push(`<footer${ssrRenderAttrs(mergeProps({ class: "bg-primary text-white py-12" }, _attrs))}><div class="container"><div class="grid md:grid-cols-4 gap-8"><div><h5 class="text-lg font-semibold mb-4">云服务专家</h5><p class="text-white/50 mb-4">专业的AWS云服务解决方案提供商致力于帮助企业实现数字化转型</p><div class="flex space-x-4"><a href="#" class="text-white/50 hover:text-white transition-colors"><i class="fab fa-weixin"></i></a><a href="#" class="text-white/50 hover:text-white transition-colors"><i class="fab fa-weibo"></i></a><a href="#" class="text-white/50 hover:text-white transition-colors"><i class="fab fa-linkedin"></i></a></div></div><div><h5 class="text-lg font-semibold mb-4">AWS产品</h5><ul class="space-y-2"><!--[-->`);
_push(`<footer${ssrRenderAttrs(mergeProps({ class: "bg-primary text-white py-12" }, _attrs))}><div class="container"><div class="grid md:grid-cols-4 gap-8"><div><h5 class="text-lg font-semibold mb-4">${ssrInterpolate(_ctx.$t("common.appName"))}</h5><p class="text-white/50 mb-4">${ssrInterpolate(_ctx.$t("footer.description"))}</p><div class="flex space-x-4"><a href="#" class="text-white/50 hover:text-white transition-colors"><i class="fab fa-weixin"></i></a><a href="#" class="text-white/50 hover:text-white transition-colors"><i class="fab fa-weibo"></i></a><a href="#" class="text-white/50 hover:text-white transition-colors"><i class="fab fa-linkedin"></i></a></div></div><div><h5 class="text-lg font-semibold mb-4">${ssrInterpolate(_ctx.$t("footer.products"))}</h5><ul class="space-y-2"><!--[-->`);
ssrRenderList(products, (product, index) => {
_push(`<li>`);
_push(ssrRenderComponent(_component_NuxtLink, {
@ -30,10 +32,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`${ssrInterpolate(product.name)}`);
_push2(`${ssrInterpolate(_ctx.$t(product.i18nKey))}`);
} else {
return [
createTextVNode(toDisplayString(product.name), 1)
createTextVNode(toDisplayString(_ctx.$t(product.i18nKey)), 1)
];
}
}),
@ -41,7 +43,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}, _parent));
_push(`</li>`);
});
_push(`<!--]--></ul></div><div><h5 class="text-lg font-semibold mb-4">解决方案</h5><ul class="space-y-2"><!--[-->`);
_push(`<!--]--></ul></div><div><h5 class="text-lg font-semibold mb-4">${ssrInterpolate(_ctx.$t("footer.solutions"))}</h5><ul class="space-y-2"><!--[-->`);
ssrRenderList(solutions, (solution, index) => {
_push(`<li>`);
_push(ssrRenderComponent(_component_NuxtLink, {
@ -50,10 +52,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`${ssrInterpolate(solution.name)}`);
_push2(`${ssrInterpolate(_ctx.$t(solution.i18nKey))}`);
} else {
return [
createTextVNode(toDisplayString(solution.name), 1)
createTextVNode(toDisplayString(_ctx.$t(solution.i18nKey)), 1)
];
}
}),
@ -61,7 +63,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}, _parent));
_push(`</li>`);
});
_push(`<!--]--></ul></div><div><h5 class="text-lg font-semibold mb-4">联系我们</h5><ul class="space-y-3"><li class="flex items-start"><i class="fas fa-map-marker-alt text-white/70 mt-1 mr-3"></i><span class="text-white/70">北京市朝阳区某某大厦10层</span></li><li class="flex items-start"><i class="fas fa-phone text-white/70 mt-1 mr-3"></i><span class="text-white/70">400-123-4567</span></li><li class="flex items-start"><i class="fas fa-envelope text-white/70 mt-1 mr-3"></i><span class="text-white/70">contact@example.com</span></li></ul></div></div><div class="mt-12 pt-8 border-t border-white/10 text-center"><p class="text-white/50">© ${ssrInterpolate((/* @__PURE__ */ new Date()).getFullYear())} 云服务专家. 保留所有权利.</p></div></div></footer>`);
_push(`<!--]--></ul></div><div><h5 class="text-lg font-semibold mb-4">${ssrInterpolate(_ctx.$t("footer.contactUs"))}</h5><ul class="space-y-3"><li class="flex items-start"><i class="fas fa-map-marker-alt text-white/70 mt-1 mr-3"></i><span class="text-white/70">${ssrInterpolate(_ctx.$t("footer.address"))}</span></li><li class="flex items-start"><i class="fas fa-phone text-white/70 mt-1 mr-3"></i><span class="text-white/70">${ssrInterpolate(_ctx.$t("footer.phone"))}</span></li><li class="flex items-start"><i class="fas fa-envelope text-white/70 mt-1 mr-3"></i><span class="text-white/70">${ssrInterpolate(_ctx.$t("footer.email"))}</span></li></ul></div></div><div class="mt-12 pt-8 border-t border-white/10 text-center"><p class="text-white/50">© ${ssrInterpolate((/* @__PURE__ */ new Date()).getFullYear())} ${ssrInterpolate(_ctx.$t("common.appName"))}. ${ssrInterpolate(_ctx.$t("footer.allRightsReserved"))}</p></div></div></footer>`);
};
}
});

View File

@ -1 +1 @@
{"version":3,"file":"FooterSection.vue2.mjs","sources":["../../../../components/FooterSection.vue"],"sourcesContent":["<template>\r\n <footer class=\"bg-primary text-white py-12\">\r\n <div class=\"container\">\r\n <div class=\"grid md:grid-cols-4 gap-8\">\r\n <div>\r\n <h5 class=\"text-lg font-semibold mb-4\">云服务专家</h5>\r\n <p class=\"text-white/50 mb-4\">专业的AWS云服务解决方案提供商致力于帮助企业实现数字化转型</p>\r\n <div class=\"flex space-x-4\">\r\n <a href=\"#\" class=\"text-white/50 hover:text-white transition-colors\">\r\n <i class=\"fab fa-weixin\"></i>\r\n </a>\r\n <a href=\"#\" class=\"text-white/50 hover:text-white transition-colors\">\r\n <i class=\"fab fa-weibo\"></i>\r\n </a>\r\n <a href=\"#\" class=\"text-white/50 hover:text-white transition-colors\">\r\n <i class=\"fab fa-linkedin\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n \r\n <div>\r\n <h5 class=\"text-lg font-semibold mb-4\">AWS产品</h5>\r\n <ul class=\"space-y-2\">\r\n <li v-for=\"(product, index) in products\" :key=\"index\">\r\n <NuxtLink :to=\"product.path\" class=\"text-white/70 hover:text-white transition-colors\">\r\n {{ product.name }}\r\n </NuxtLink>\r\n </li>\r\n </ul>\r\n </div>\r\n \r\n <div>\r\n <h5 class=\"text-lg font-semibold mb-4\">解决方案</h5>\r\n <ul class=\"space-y-2\">\r\n <li v-for=\"(solution, index) in solutions\" :key=\"index\">\r\n <NuxtLink :to=\"solution.path\" class=\"text-white/70 hover:text-white transition-colors\">\r\n {{ solution.name }}\r\n </NuxtLink>\r\n </li>\r\n </ul>\r\n </div>\r\n \r\n <div>\r\n <h5 class=\"text-lg font-semibold mb-4\">联系我们</h5>\r\n <ul class=\"space-y-3\">\r\n <li class=\"flex items-start\">\r\n <i class=\"fas fa-map-marker-alt text-white/70 mt-1 mr-3\"></i>\r\n <span class=\"text-white/70\">北京市朝阳区某某大厦10层</span>\r\n </li>\r\n <li class=\"flex items-start\">\r\n <i class=\"fas fa-phone text-white/70 mt-1 mr-3\"></i>\r\n <span class=\"text-white/70\">400-123-4567</span>\r\n </li>\r\n <li class=\"flex items-start\">\r\n <i class=\"fas fa-envelope text-white/70 mt-1 mr-3\"></i>\r\n <span class=\"text-white/70\">contact@example.com</span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n <div class=\"mt-12 pt-8 border-t border-white/10 text-center\">\r\n <p class=\"text-white/50\">&copy; {{ new Date().getFullYear() }} 云服务专家. 保留所有权利.</p>\r\n </div>\r\n </div>\r\n </footer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nconst products = [\r\n { name: 'EC2 云服务器', path: '/products' },\r\n { name: 'S3 对象存储', path: '/products' },\r\n { name: 'RDS 数据库服务', path: '/products' },\r\n { name: 'Lambda 无服务器', path: '/products' },\r\n { name: '更多产品...', path: '/products' }\r\n];\r\n\r\nconst solutions = [\r\n { name: '网站托管', path: '/solutions' },\r\n { name: '企业上云', path: '/solutions' },\r\n { name: '灾备方案', path: '/solutions' },\r\n { name: '大数据分析', path: '/solutions' },\r\n { name: '微服务架构', path: '/solutions' }\r\n];\r\n</script> "],"names":[],"mappings":";;;;;;;AAqEA,UAAM,WAAW;AAAA,MACf,EAAE,MAAM,YAAY,MAAM,YAAY;AAAA,MACtC,EAAE,MAAM,WAAW,MAAM,YAAY;AAAA,MACrC,EAAE,MAAM,aAAa,MAAM,YAAY;AAAA,MACvC,EAAE,MAAM,eAAe,MAAM,YAAY;AAAA,MACzC,EAAE,MAAM,WAAW,MAAM,YAAY;AAAA,IACvC;AAEA,UAAM,YAAY;AAAA,MAChB,EAAE,MAAM,QAAQ,MAAM,aAAa;AAAA,MACnC,EAAE,MAAM,QAAQ,MAAM,aAAa;AAAA,MACnC,EAAE,MAAM,QAAQ,MAAM,aAAa;AAAA,MACnC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,MACpC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,IACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
{"version":3,"file":"FooterSection.vue2.mjs","sources":["../../../../components/FooterSection.vue"],"sourcesContent":["<template>\r\n <footer class=\"bg-primary text-white py-12\">\r\n <div class=\"container\">\r\n <div class=\"grid md:grid-cols-4 gap-8\">\r\n <div>\r\n <h5 class=\"text-lg font-semibold mb-4\">{{ $t('common.appName') }}</h5>\r\n <p class=\"text-white/50 mb-4\">{{ $t('footer.description') }}</p>\r\n <div class=\"flex space-x-4\">\r\n <a href=\"#\" class=\"text-white/50 hover:text-white transition-colors\">\r\n <i class=\"fab fa-weixin\"></i>\r\n </a>\r\n <a href=\"#\" class=\"text-white/50 hover:text-white transition-colors\">\r\n <i class=\"fab fa-weibo\"></i>\r\n </a>\r\n <a href=\"#\" class=\"text-white/50 hover:text-white transition-colors\">\r\n <i class=\"fab fa-linkedin\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n \r\n <div>\r\n <h5 class=\"text-lg font-semibold mb-4\">{{ $t('footer.products') }}</h5>\r\n <ul class=\"space-y-2\">\r\n <li v-for=\"(product, index) in products\" :key=\"index\">\r\n <NuxtLink :to=\"product.path\" class=\"text-white/70 hover:text-white transition-colors\">\r\n {{ $t(product.i18nKey) }}\r\n </NuxtLink>\r\n </li>\r\n </ul>\r\n </div>\r\n \r\n <div>\r\n <h5 class=\"text-lg font-semibold mb-4\">{{ $t('footer.solutions') }}</h5>\r\n <ul class=\"space-y-2\">\r\n <li v-for=\"(solution, index) in solutions\" :key=\"index\">\r\n <NuxtLink :to=\"solution.path\" class=\"text-white/70 hover:text-white transition-colors\">\r\n {{ $t(solution.i18nKey) }}\r\n </NuxtLink>\r\n </li>\r\n </ul>\r\n </div>\r\n \r\n <div>\r\n <h5 class=\"text-lg font-semibold mb-4\">{{ $t('footer.contactUs') }}</h5>\r\n <ul class=\"space-y-3\">\r\n <li class=\"flex items-start\">\r\n <i class=\"fas fa-map-marker-alt text-white/70 mt-1 mr-3\"></i>\r\n <span class=\"text-white/70\">{{ $t('footer.address') }}</span>\r\n </li>\r\n <li class=\"flex items-start\">\r\n <i class=\"fas fa-phone text-white/70 mt-1 mr-3\"></i>\r\n <span class=\"text-white/70\">{{ $t('footer.phone') }}</span>\r\n </li>\r\n <li class=\"flex items-start\">\r\n <i class=\"fas fa-envelope text-white/70 mt-1 mr-3\"></i>\r\n <span class=\"text-white/70\">{{ $t('footer.email') }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n <div class=\"mt-12 pt-8 border-t border-white/10 text-center\">\r\n <p class=\"text-white/50\">&copy; {{ new Date().getFullYear() }} {{ $t('common.appName') }}. {{ $t('footer.allRightsReserved') }}</p>\r\n </div>\r\n </div>\r\n </footer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { useI18n } from 'vue-i18n';\r\n\r\nconst { t } = useI18n();\r\n\r\nconst products = [\r\n { i18nKey: 'footer.productLinks.ec2', path: '/products' },\r\n { i18nKey: 'footer.productLinks.s3', path: '/products' },\r\n { i18nKey: 'footer.productLinks.rds', path: '/products' },\r\n { i18nKey: 'footer.productLinks.lambda', path: '/products' },\r\n { i18nKey: 'footer.productLinks.more', path: '/products' }\r\n];\r\n\r\nconst solutions = [\r\n { i18nKey: 'footer.solutionLinks.web', path: '/solutions' },\r\n { i18nKey: 'footer.solutionLinks.enterprise', path: '/solutions' },\r\n { i18nKey: 'footer.solutionLinks.disaster', path: '/solutions' },\r\n { i18nKey: 'footer.solutionLinks.bigdata', path: '/solutions' },\r\n { i18nKey: 'footer.solutionLinks.microservice', path: '/solutions' }\r\n];\r\n</script> "],"names":[],"mappings":";;;;;;;;AAuEM,UAAA,EAAE,EAAE,IAAI,QAAQ;AAEtB,UAAM,WAAW;AAAA,MACf,EAAE,SAAS,2BAA2B,MAAM,YAAY;AAAA,MACxD,EAAE,SAAS,0BAA0B,MAAM,YAAY;AAAA,MACvD,EAAE,SAAS,2BAA2B,MAAM,YAAY;AAAA,MACxD,EAAE,SAAS,8BAA8B,MAAM,YAAY;AAAA,MAC3D,EAAE,SAAS,4BAA4B,MAAM,YAAY;AAAA,IAC3D;AAEA,UAAM,YAAY;AAAA,MAChB,EAAE,SAAS,4BAA4B,MAAM,aAAa;AAAA,MAC1D,EAAE,SAAS,mCAAmC,MAAM,aAAa;AAAA,MACjE,EAAE,SAAS,iCAAiC,MAAM,aAAa;AAAA,MAC/D,EAAE,SAAS,gCAAgC,MAAM,aAAa;AAAA,MAC9D,EAAE,SAAS,qCAAqC,MAAM,aAAa;AAAA,IACrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}

View File

@ -1 +1 @@
{"file":"FooterSection.vue2.mjs","mappings":";;;;;;;AAqEA,UAAM,WAAW;AAAA,MACf,EAAE,MAAM,YAAY,MAAM,YAAY;AAAA,MACtC,EAAE,MAAM,WAAW,MAAM,YAAY;AAAA,MACrC,EAAE,MAAM,aAAa,MAAM,YAAY;AAAA,MACvC,EAAE,MAAM,eAAe,MAAM,YAAY;AAAA,MACzC,EAAE,MAAM,WAAW,MAAM,YAAY;AAAA,IACvC;AAEA,UAAM,YAAY;AAAA,MAChB,EAAE,MAAM,QAAQ,MAAM,aAAa;AAAA,MACnC,EAAE,MAAM,QAAQ,MAAM,aAAa;AAAA,MACnC,EAAE,MAAM,QAAQ,MAAM,aAAa;AAAA,MACnC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,MACpC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,IACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["../../../../components/FooterSection.vue"],"sourcesContent":["<template>\r\n <footer class=\"bg-primary text-white py-12\">\r\n <div class=\"container\">\r\n <div class=\"grid md:grid-cols-4 gap-8\">\r\n <div>\r\n <h5 class=\"text-lg font-semibold mb-4\">云服务专家</h5>\r\n <p class=\"text-white/50 mb-4\">专业的AWS云服务解决方案提供商致力于帮助企业实现数字化转型</p>\r\n <div class=\"flex space-x-4\">\r\n <a href=\"#\" class=\"text-white/50 hover:text-white transition-colors\">\r\n <i class=\"fab fa-weixin\"></i>\r\n </a>\r\n <a href=\"#\" class=\"text-white/50 hover:text-white transition-colors\">\r\n <i class=\"fab fa-weibo\"></i>\r\n </a>\r\n <a href=\"#\" class=\"text-white/50 hover:text-white transition-colors\">\r\n <i class=\"fab fa-linkedin\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n \r\n <div>\r\n <h5 class=\"text-lg font-semibold mb-4\">AWS产品</h5>\r\n <ul class=\"space-y-2\">\r\n <li v-for=\"(product, index) in products\" :key=\"index\">\r\n <NuxtLink :to=\"product.path\" class=\"text-white/70 hover:text-white transition-colors\">\r\n {{ product.name }}\r\n </NuxtLink>\r\n </li>\r\n </ul>\r\n </div>\r\n \r\n <div>\r\n <h5 class=\"text-lg font-semibold mb-4\">解决方案</h5>\r\n <ul class=\"space-y-2\">\r\n <li v-for=\"(solution, index) in solutions\" :key=\"index\">\r\n <NuxtLink :to=\"solution.path\" class=\"text-white/70 hover:text-white transition-colors\">\r\n {{ solution.name }}\r\n </NuxtLink>\r\n </li>\r\n </ul>\r\n </div>\r\n \r\n <div>\r\n <h5 class=\"text-lg font-semibold mb-4\">联系我们</h5>\r\n <ul class=\"space-y-3\">\r\n <li class=\"flex items-start\">\r\n <i class=\"fas fa-map-marker-alt text-white/70 mt-1 mr-3\"></i>\r\n <span class=\"text-white/70\">北京市朝阳区某某大厦10层</span>\r\n </li>\r\n <li class=\"flex items-start\">\r\n <i class=\"fas fa-phone text-white/70 mt-1 mr-3\"></i>\r\n <span class=\"text-white/70\">400-123-4567</span>\r\n </li>\r\n <li class=\"flex items-start\">\r\n <i class=\"fas fa-envelope text-white/70 mt-1 mr-3\"></i>\r\n <span class=\"text-white/70\">contact@example.com</span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n <div class=\"mt-12 pt-8 border-t border-white/10 text-center\">\r\n <p class=\"text-white/50\">&copy; {{ new Date().getFullYear() }} 云服务专家. 保留所有权利.</p>\r\n </div>\r\n </div>\r\n </footer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nconst products = [\r\n { name: 'EC2 云服务器', path: '/products' },\r\n { name: 'S3 对象存储', path: '/products' },\r\n { name: 'RDS 数据库服务', path: '/products' },\r\n { name: 'Lambda 无服务器', path: '/products' },\r\n { name: '更多产品...', path: '/products' }\r\n];\r\n\r\nconst solutions = [\r\n { name: '网站托管', path: '/solutions' },\r\n { name: '企业上云', path: '/solutions' },\r\n { name: '灾备方案', path: '/solutions' },\r\n { name: '大数据分析', path: '/solutions' },\r\n { name: '微服务架构', path: '/solutions' }\r\n];\r\n</script> "],"version":3}
{"file":"FooterSection.vue2.mjs","mappings":";;;;;;;;AAuEM,UAAA,EAAE,EAAE,IAAI,QAAQ;AAEtB,UAAM,WAAW;AAAA,MACf,EAAE,SAAS,2BAA2B,MAAM,YAAY;AAAA,MACxD,EAAE,SAAS,0BAA0B,MAAM,YAAY;AAAA,MACvD,EAAE,SAAS,2BAA2B,MAAM,YAAY;AAAA,MACxD,EAAE,SAAS,8BAA8B,MAAM,YAAY;AAAA,MAC3D,EAAE,SAAS,4BAA4B,MAAM,YAAY;AAAA,IAC3D;AAEA,UAAM,YAAY;AAAA,MAChB,EAAE,SAAS,4BAA4B,MAAM,aAAa;AAAA,MAC1D,EAAE,SAAS,mCAAmC,MAAM,aAAa;AAAA,MACjE,EAAE,SAAS,iCAAiC,MAAM,aAAa;AAAA,MAC/D,EAAE,SAAS,gCAAgC,MAAM,aAAa;AAAA,MAC9D,EAAE,SAAS,qCAAqC,MAAM,aAAa;AAAA,IACrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["../../../../components/FooterSection.vue"],"sourcesContent":["<template>\r\n <footer class=\"bg-primary text-white py-12\">\r\n <div class=\"container\">\r\n <div class=\"grid md:grid-cols-4 gap-8\">\r\n <div>\r\n <h5 class=\"text-lg font-semibold mb-4\">{{ $t('common.appName') }}</h5>\r\n <p class=\"text-white/50 mb-4\">{{ $t('footer.description') }}</p>\r\n <div class=\"flex space-x-4\">\r\n <a href=\"#\" class=\"text-white/50 hover:text-white transition-colors\">\r\n <i class=\"fab fa-weixin\"></i>\r\n </a>\r\n <a href=\"#\" class=\"text-white/50 hover:text-white transition-colors\">\r\n <i class=\"fab fa-weibo\"></i>\r\n </a>\r\n <a href=\"#\" class=\"text-white/50 hover:text-white transition-colors\">\r\n <i class=\"fab fa-linkedin\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n \r\n <div>\r\n <h5 class=\"text-lg font-semibold mb-4\">{{ $t('footer.products') }}</h5>\r\n <ul class=\"space-y-2\">\r\n <li v-for=\"(product, index) in products\" :key=\"index\">\r\n <NuxtLink :to=\"product.path\" class=\"text-white/70 hover:text-white transition-colors\">\r\n {{ $t(product.i18nKey) }}\r\n </NuxtLink>\r\n </li>\r\n </ul>\r\n </div>\r\n \r\n <div>\r\n <h5 class=\"text-lg font-semibold mb-4\">{{ $t('footer.solutions') }}</h5>\r\n <ul class=\"space-y-2\">\r\n <li v-for=\"(solution, index) in solutions\" :key=\"index\">\r\n <NuxtLink :to=\"solution.path\" class=\"text-white/70 hover:text-white transition-colors\">\r\n {{ $t(solution.i18nKey) }}\r\n </NuxtLink>\r\n </li>\r\n </ul>\r\n </div>\r\n \r\n <div>\r\n <h5 class=\"text-lg font-semibold mb-4\">{{ $t('footer.contactUs') }}</h5>\r\n <ul class=\"space-y-3\">\r\n <li class=\"flex items-start\">\r\n <i class=\"fas fa-map-marker-alt text-white/70 mt-1 mr-3\"></i>\r\n <span class=\"text-white/70\">{{ $t('footer.address') }}</span>\r\n </li>\r\n <li class=\"flex items-start\">\r\n <i class=\"fas fa-phone text-white/70 mt-1 mr-3\"></i>\r\n <span class=\"text-white/70\">{{ $t('footer.phone') }}</span>\r\n </li>\r\n <li class=\"flex items-start\">\r\n <i class=\"fas fa-envelope text-white/70 mt-1 mr-3\"></i>\r\n <span class=\"text-white/70\">{{ $t('footer.email') }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n <div class=\"mt-12 pt-8 border-t border-white/10 text-center\">\r\n <p class=\"text-white/50\">&copy; {{ new Date().getFullYear() }} {{ $t('common.appName') }}. {{ $t('footer.allRightsReserved') }}</p>\r\n </div>\r\n </div>\r\n </footer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { useI18n } from 'vue-i18n';\r\n\r\nconst { t } = useI18n();\r\n\r\nconst products = [\r\n { i18nKey: 'footer.productLinks.ec2', path: '/products' },\r\n { i18nKey: 'footer.productLinks.s3', path: '/products' },\r\n { i18nKey: 'footer.productLinks.rds', path: '/products' },\r\n { i18nKey: 'footer.productLinks.lambda', path: '/products' },\r\n { i18nKey: 'footer.productLinks.more', path: '/products' }\r\n];\r\n\r\nconst solutions = [\r\n { i18nKey: 'footer.solutionLinks.web', path: '/solutions' },\r\n { i18nKey: 'footer.solutionLinks.enterprise', path: '/solutions' },\r\n { i18nKey: 'footer.solutionLinks.disaster', path: '/solutions' },\r\n { i18nKey: 'footer.solutionLinks.bigdata', path: '/solutions' },\r\n { i18nKey: 'footer.solutionLinks.microservice', path: '/solutions' }\r\n];\r\n</script> "],"version":3}

View File

@ -0,0 +1,12 @@
import _sfc_main from "./LanguageSwitcher.vue2.mjs";
import { useSSRContext } from "vue";
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/LanguageSwitcher.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
export {
_sfc_main as default
};
//# sourceMappingURL=LanguageSwitcher.vue.mjs.map

View File

@ -0,0 +1 @@
{"version":3,"file":"LanguageSwitcher.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}

View File

@ -0,0 +1 @@
{"file":"LanguageSwitcher.vue.mjs","mappings":";;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}

View File

@ -0,0 +1,25 @@
import { defineComponent, ref, computed, mergeProps } from "vue";
import { ssrRenderAttrs, ssrInterpolate, ssrRenderClass } from "vue/server-renderer";
import { useI18n } from "vue-i18n";
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "LanguageSwitcher",
__ssrInlineRender: true,
setup(__props) {
const i18n = useI18n();
const dropdownOpen = ref(false);
const currentLocale = computed(() => i18n.locale.value);
return (_ctx, _push, _parent, _attrs) => {
_push(`<div${ssrRenderAttrs(mergeProps({ class: "relative" }, _attrs))}><button class="flex items-center text-white/85 hover:text-secondary transition-colors duration-300"><span class="mr-1">${ssrInterpolate(currentLocale.value === "zh" ? "EN" : "中")}</span><i class="fas fa-chevron-down text-xs"></i></button>`);
if (dropdownOpen.value) {
_push(`<div class="absolute right-0 mt-2 bg-white rounded-md shadow-lg py-1 min-w-[100px] z-50"><button class="${ssrRenderClass([{ "bg-gray-100": currentLocale.value === "zh" }, "block w-full text-left px-4 py-2 text-gray-800 hover:bg-gray-100"])}"> 中文 </button><button class="${ssrRenderClass([{ "bg-gray-100": currentLocale.value === "en" }, "block w-full text-left px-4 py-2 text-gray-800 hover:bg-gray-100"])}"> English </button></div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
};
}
});
export {
_sfc_main as default
};
//# sourceMappingURL=LanguageSwitcher.vue2.mjs.map

View File

@ -0,0 +1 @@
{"version":3,"file":"LanguageSwitcher.vue2.mjs","sources":["../../../../components/LanguageSwitcher.vue"],"sourcesContent":["<template>\r\n <div class=\"relative\">\r\n <button \r\n @click=\"toggleDropdown\" \r\n class=\"flex items-center text-white/85 hover:text-secondary transition-colors duration-300\"\r\n >\r\n <span class=\"mr-1\">{{ currentLocale === 'zh' ? 'EN' : '中' }}</span>\r\n <i class=\"fas fa-chevron-down text-xs\"></i>\r\n </button>\r\n \r\n <div \r\n v-if=\"dropdownOpen\" \r\n class=\"absolute right-0 mt-2 bg-white rounded-md shadow-lg py-1 min-w-[100px] z-50\"\r\n >\r\n <button \r\n @click=\"changeLocale('zh')\" \r\n class=\"block w-full text-left px-4 py-2 text-gray-800 hover:bg-gray-100\"\r\n :class=\"{ 'bg-gray-100': currentLocale === 'zh' }\"\r\n >\r\n 中文\r\n </button>\r\n <button \r\n @click=\"changeLocale('en')\" \r\n class=\"block w-full text-left px-4 py-2 text-gray-800 hover:bg-gray-100\"\r\n :class=\"{ 'bg-gray-100': currentLocale === 'en' }\"\r\n >\r\n English\r\n </button>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, computed, onMounted, onUnmounted } from 'vue';\r\nimport { useI18n } from 'vue-i18n';\r\n\r\nconst i18n = useI18n();\r\nconst dropdownOpen = ref(false);\r\n\r\nconst currentLocale = computed(() => i18n.locale.value);\r\n\r\nconst toggleDropdown = () => {\r\n dropdownOpen.value = !dropdownOpen.value;\r\n};\r\n\r\nconst changeLocale = (locale: string) => {\r\n i18n.locale.value = locale;\r\n dropdownOpen.value = false;\r\n // 保存用户语言偏好到本地存储\r\n localStorage.setItem('user-locale', locale);\r\n};\r\n\r\n// 点击其他地方关闭下拉菜单\r\nconst handleClickOutside = (event: MouseEvent) => {\r\n const target = event.target as HTMLElement;\r\n if (!target.closest('.relative')) {\r\n dropdownOpen.value = false;\r\n }\r\n};\r\n\r\n// 从本地存储加载用户语言偏好\r\nonMounted(() => {\r\n const savedLocale = localStorage.getItem('user-locale');\r\n if (savedLocale) {\r\n i18n.locale.value = savedLocale;\r\n }\r\n \r\n document.addEventListener('click', handleClickOutside);\r\n});\r\n\r\nonUnmounted(() => {\r\n document.removeEventListener('click', handleClickOutside);\r\n});\r\n</script> "],"names":[],"mappings":";;;;;;;AAoCA,UAAM,OAAO,QAAQ;AACf,UAAA,eAAe,IAAI,KAAK;AAE9B,UAAM,gBAAgB,SAAS,MAAM,KAAK,OAAO,KAAK;;;;;;;;;;;;"}

View File

@ -0,0 +1 @@
{"file":"LanguageSwitcher.vue2.mjs","mappings":";;;;;;;AAoCA,UAAM,OAAO,QAAQ;AACf,UAAA,eAAe,IAAI,KAAK;AAE9B,UAAM,gBAAgB,SAAS,MAAM,KAAK,OAAO,KAAK;;;;;;;;;;;;","names":[],"sources":["../../../../components/LanguageSwitcher.vue"],"sourcesContent":["<template>\r\n <div class=\"relative\">\r\n <button \r\n @click=\"toggleDropdown\" \r\n class=\"flex items-center text-white/85 hover:text-secondary transition-colors duration-300\"\r\n >\r\n <span class=\"mr-1\">{{ currentLocale === 'zh' ? 'EN' : '中' }}</span>\r\n <i class=\"fas fa-chevron-down text-xs\"></i>\r\n </button>\r\n \r\n <div \r\n v-if=\"dropdownOpen\" \r\n class=\"absolute right-0 mt-2 bg-white rounded-md shadow-lg py-1 min-w-[100px] z-50\"\r\n >\r\n <button \r\n @click=\"changeLocale('zh')\" \r\n class=\"block w-full text-left px-4 py-2 text-gray-800 hover:bg-gray-100\"\r\n :class=\"{ 'bg-gray-100': currentLocale === 'zh' }\"\r\n >\r\n 中文\r\n </button>\r\n <button \r\n @click=\"changeLocale('en')\" \r\n class=\"block w-full text-left px-4 py-2 text-gray-800 hover:bg-gray-100\"\r\n :class=\"{ 'bg-gray-100': currentLocale === 'en' }\"\r\n >\r\n English\r\n </button>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, computed, onMounted, onUnmounted } from 'vue';\r\nimport { useI18n } from 'vue-i18n';\r\n\r\nconst i18n = useI18n();\r\nconst dropdownOpen = ref(false);\r\n\r\nconst currentLocale = computed(() => i18n.locale.value);\r\n\r\nconst toggleDropdown = () => {\r\n dropdownOpen.value = !dropdownOpen.value;\r\n};\r\n\r\nconst changeLocale = (locale: string) => {\r\n i18n.locale.value = locale;\r\n dropdownOpen.value = false;\r\n // 保存用户语言偏好到本地存储\r\n localStorage.setItem('user-locale', locale);\r\n};\r\n\r\n// 点击其他地方关闭下拉菜单\r\nconst handleClickOutside = (event: MouseEvent) => {\r\n const target = event.target as HTMLElement;\r\n if (!target.closest('.relative')) {\r\n dropdownOpen.value = false;\r\n }\r\n};\r\n\r\n// 从本地存储加载用户语言偏好\r\nonMounted(() => {\r\n const savedLocale = localStorage.getItem('user-locale');\r\n if (savedLocale) {\r\n i18n.locale.value = savedLocale;\r\n }\r\n \r\n document.addEventListener('click', handleClickOutside);\r\n});\r\n\r\nonUnmounted(() => {\r\n document.removeEventListener('click', handleClickOutside);\r\n});\r\n</script> "],"version":3}

View File

@ -1,21 +1,25 @@
import __nuxt_component_0 from "../node_modules/nuxt/dist/app/components/nuxt-link.mjs";
import { defineComponent, ref, withCtx, createVNode, createTextVNode, toDisplayString } from "vue";
import { ssrRenderClass, ssrRenderComponent, ssrRenderList, ssrInterpolate } from "vue/server-renderer";
import { defineComponent, ref, withCtx, createVNode, toDisplayString, createTextVNode } from "vue";
import { ssrRenderClass, ssrRenderComponent, ssrInterpolate, ssrRenderList } from "vue/server-renderer";
import { useRoute } from "vue-router";
import { useI18n } from "vue-i18n";
import "./LanguageSwitcher.vue.mjs";
import _sfc_main$1 from "./LanguageSwitcher.vue2.mjs";
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "NavBar",
__ssrInlineRender: true,
setup(__props) {
useRoute();
const { t } = useI18n();
const mobileMenuOpen = ref(false);
const scrolled = ref(false);
const navItems = [
{ name: "首页", path: "/" },
{ name: "AWS产品", path: "/products" },
{ name: "解决方案", path: "/solutions" },
{ name: "客户案例", path: "/cases" },
{ name: "关于我们", path: "/about" },
{ name: "联系我们", path: "/contact" }
{ i18nKey: "nav.home", path: "/" },
{ i18nKey: "nav.products", path: "/products" },
{ i18nKey: "nav.solutions", path: "/solutions" },
{ i18nKey: "nav.cases", path: "/cases" },
{ i18nKey: "nav.about", path: "/about" },
{ i18nKey: "nav.contact", path: "/contact" }
];
return (_ctx, _push, _parent, _attrs) => {
const _component_NuxtLink = __nuxt_component_0;
@ -26,11 +30,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<i class="fas fa-cloud text-2xl mr-2"${_scopeId}></i><span class="text-xl font-bold"${_scopeId}>云服务专家</span>`);
_push2(`<i class="fas fa-cloud text-2xl mr-2"${_scopeId}></i><span class="text-xl font-bold"${_scopeId}>${ssrInterpolate(_ctx.$t("common.appName"))}</span>`);
} else {
return [
createVNode("i", { class: "fas fa-cloud text-2xl mr-2" }),
createVNode("span", { class: "text-xl font-bold" }, "云服务专家")
createVNode("span", { class: "text-xl font-bold" }, toDisplayString(_ctx.$t("common.appName")), 1)
];
}
}),
@ -45,17 +49,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`${ssrInterpolate(item.name)}`);
_push2(`${ssrInterpolate(_ctx.$t(item.i18nKey))}`);
} else {
return [
createTextVNode(toDisplayString(item.name), 1)
createTextVNode(toDisplayString(_ctx.$t(item.i18nKey)), 1)
];
}
}),
_: 2
}, _parent));
});
_push(`<!--]--></div><button class="md:hidden text-white p-2 rounded-lg hover:bg-white/10 transition-colors duration-300" aria-label="打开菜单"><i class="fas fa-bars text-xl"></i></button></div><div class="${ssrRenderClass(["md:hidden bg-primary absolute top-16 left-0 right-0 shadow-lg", { "hidden": !mobileMenuOpen.value }])}"><div class="container py-4"><div class="flex flex-col space-y-4"><!--[-->`);
_push(`<!--]-->`);
_push(ssrRenderComponent(_sfc_main$1, null, null, _parent));
_push(`</div><button class="md:hidden text-white p-2 rounded-lg hover:bg-white/10 transition-colors duration-300" aria-label="打开菜单"><i class="fas fa-bars text-xl"></i></button></div><div class="${ssrRenderClass(["md:hidden bg-primary absolute top-16 left-0 right-0 shadow-lg", { "hidden": !mobileMenuOpen.value }])}"><div class="container py-4"><div class="flex flex-col space-y-4"><!--[-->`);
ssrRenderList(navItems, (item, index) => {
_push(ssrRenderComponent(_component_NuxtLink, {
key: index,
@ -65,17 +71,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`${ssrInterpolate(item.name)}`);
_push2(`${ssrInterpolate(_ctx.$t(item.i18nKey))}`);
} else {
return [
createTextVNode(toDisplayString(item.name), 1)
createTextVNode(toDisplayString(_ctx.$t(item.i18nKey)), 1)
];
}
}),
_: 2
}, _parent));
});
_push(`<!--]--></div></div></div></div></nav><div class="h-16"></div><!--]-->`);
_push(`<!--]--><div class="py-2">`);
_push(ssrRenderComponent(_sfc_main$1, null, null, _parent));
_push(`</div></div></div></div></div></nav><div class="h-16"></div><!--]-->`);
};
}
});

View File

@ -1 +1 @@
{"version":3,"file":"NavBar.vue2.mjs","sources":["../../../../components/NavBar.vue"],"sourcesContent":["<template>\r\n <nav :class=\"['bg-primary shadow-md fixed w-full z-50', { 'nav-scrolled': scrolled }]\">\r\n <div class=\"container\">\r\n <div class=\"flex items-center justify-between h-16\">\r\n <NuxtLink to=\"/\" class=\"flex items-center text-white\">\r\n <i class=\"fas fa-cloud text-2xl mr-2\"></i>\r\n <span class=\"text-xl font-bold\">云服务专家</span>\r\n </NuxtLink>\r\n \r\n <!-- 桌面端导航 -->\r\n <div class=\"hidden md:flex items-center space-x-8\">\r\n <NuxtLink \r\n v-for=\"(item, index) in navItems\" \r\n :key=\"index\" \r\n :to=\"item.path\" \r\n class=\"text-white/85 hover:text-secondary transition-colors duration-300\"\r\n :class=\"{ 'text-white': $route.path === item.path }\"\r\n >\r\n {{ item.name }}\r\n </NuxtLink>\r\n </div>\r\n\r\n <!-- 移动端菜单按钮 -->\r\n <button\r\n class=\"md:hidden text-white p-2 rounded-lg hover:bg-white/10 transition-colors duration-300\"\r\n aria-label=\"打开菜单\"\r\n @click=\"toggleMobileMenu\"\r\n >\r\n <i class=\"fas fa-bars text-xl\"></i>\r\n </button>\r\n </div>\r\n\r\n <!-- 移动端菜单 -->\r\n <div :class=\"['md:hidden bg-primary absolute top-16 left-0 right-0 shadow-lg', { 'hidden': !mobileMenuOpen }]\">\r\n <div class=\"container py-4\">\r\n <div class=\"flex flex-col space-y-4\">\r\n <NuxtLink\r\n v-for=\"(item, index) in navItems\"\r\n :key=\"index\"\r\n :to=\"item.path\"\r\n class=\"text-white/85 hover:text-secondary transition-colors duration-300 py-2\"\r\n :class=\"{ 'text-white': $route.path === item.path }\"\r\n @click=\"mobileMenuOpen = false\"\r\n >\r\n {{ item.name }}\r\n </NuxtLink>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </nav>\r\n\r\n <!-- 添加导航栏占位,防止内容被导航栏遮挡 -->\r\n <div class=\"h-16\"></div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, onMounted, onUnmounted } from 'vue';\r\nimport { useRoute } from 'vue-router';\r\n\r\nconst route = useRoute();\r\nconst mobileMenuOpen = ref(false);\r\nconst scrolled = ref(false);\r\n\r\nconst navItems = [\r\n { name: '首页', path: '/' },\r\n { name: 'AWS产品', path: '/products' },\r\n { name: '解决方案', path: '/solutions' },\r\n { name: '客户案例', path: '/cases' },\r\n { name: '关于我们', path: '/about' },\r\n { name: '联系我们', path: '/contact' }\r\n];\r\n\r\nconst toggleMobileMenu = () => {\r\n mobileMenuOpen.value = !mobileMenuOpen.value;\r\n};\r\n\r\nconst handleScroll = () => {\r\n if (window.scrollY > 100) {\r\n scrolled.value = true;\r\n } else {\r\n scrolled.value = false;\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n window.addEventListener('scroll', handleScroll);\r\n});\r\n\r\nonUnmounted(() => {\r\n window.removeEventListener('scroll', handleScroll);\r\n});\r\n</script> "],"names":[],"mappings":";;;;;;;;AA4Dc,aAAS;AACjB,UAAA,iBAAiB,IAAI,KAAK;AAC1B,UAAA,WAAW,IAAI,KAAK;AAE1B,UAAM,WAAW;AAAA,MACf,EAAE,MAAM,MAAM,MAAM,IAAI;AAAA,MACxB,EAAE,MAAM,SAAS,MAAM,YAAY;AAAA,MACnC,EAAE,MAAM,QAAQ,MAAM,aAAa;AAAA,MACnC,EAAE,MAAM,QAAQ,MAAM,SAAS;AAAA,MAC/B,EAAE,MAAM,QAAQ,MAAM,SAAS;AAAA,MAC/B,EAAE,MAAM,QAAQ,MAAM,WAAW;AAAA,IACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
{"version":3,"file":"NavBar.vue2.mjs","sources":["../../../../components/NavBar.vue"],"sourcesContent":["<template>\r\n <nav :class=\"['bg-primary shadow-md fixed w-full z-50', { 'nav-scrolled': scrolled }]\">\r\n <div class=\"container\">\r\n <div class=\"flex items-center justify-between h-16\">\r\n <NuxtLink to=\"/\" class=\"flex items-center text-white\">\r\n <i class=\"fas fa-cloud text-2xl mr-2\"></i>\r\n <span class=\"text-xl font-bold\">{{ $t('common.appName') }}</span>\r\n </NuxtLink>\r\n \r\n <!-- 桌面端导航 -->\r\n <div class=\"hidden md:flex items-center space-x-8\">\r\n <NuxtLink \r\n v-for=\"(item, index) in navItems\" \r\n :key=\"index\" \r\n :to=\"item.path\" \r\n class=\"text-white/85 hover:text-secondary transition-colors duration-300\"\r\n :class=\"{ 'text-white': $route.path === item.path }\"\r\n >\r\n {{ $t(item.i18nKey) }}\r\n </NuxtLink>\r\n \r\n <!-- 语言切换器 -->\r\n <LanguageSwitcher />\r\n </div>\r\n\r\n <!-- 移动端菜单按钮 -->\r\n <button\r\n class=\"md:hidden text-white p-2 rounded-lg hover:bg-white/10 transition-colors duration-300\"\r\n aria-label=\"打开菜单\"\r\n @click=\"toggleMobileMenu\"\r\n >\r\n <i class=\"fas fa-bars text-xl\"></i>\r\n </button>\r\n </div>\r\n\r\n <!-- 移动端菜单 -->\r\n <div :class=\"['md:hidden bg-primary absolute top-16 left-0 right-0 shadow-lg', { 'hidden': !mobileMenuOpen }]\">\r\n <div class=\"container py-4\">\r\n <div class=\"flex flex-col space-y-4\">\r\n <NuxtLink\r\n v-for=\"(item, index) in navItems\"\r\n :key=\"index\"\r\n :to=\"item.path\"\r\n class=\"text-white/85 hover:text-secondary transition-colors duration-300 py-2\"\r\n :class=\"{ 'text-white': $route.path === item.path }\"\r\n @click=\"mobileMenuOpen = false\"\r\n >\r\n {{ $t(item.i18nKey) }}\r\n </NuxtLink>\r\n \r\n <!-- 移动端语言切换器 -->\r\n <div class=\"py-2\">\r\n <LanguageSwitcher />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </nav>\r\n\r\n <!-- 添加导航栏占位,防止内容被导航栏遮挡 -->\r\n <div class=\"h-16\"></div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, onMounted, onUnmounted } from 'vue';\r\nimport { useRoute } from 'vue-router';\r\nimport { useI18n } from 'vue-i18n';\r\nimport LanguageSwitcher from './LanguageSwitcher.vue';\r\n\r\nconst route = useRoute();\r\nconst { t } = useI18n();\r\nconst mobileMenuOpen = ref(false);\r\nconst scrolled = ref(false);\r\n\r\nconst navItems = [\r\n { i18nKey: 'nav.home', path: '/' },\r\n { i18nKey: 'nav.products', path: '/products' },\r\n { i18nKey: 'nav.solutions', path: '/solutions' },\r\n { i18nKey: 'nav.cases', path: '/cases' },\r\n { i18nKey: 'nav.about', path: '/about' },\r\n { i18nKey: 'nav.contact', path: '/contact' }\r\n];\r\n\r\nconst toggleMobileMenu = () => {\r\n mobileMenuOpen.value = !mobileMenuOpen.value;\r\n};\r\n\r\nconst handleScroll = () => {\r\n if (window.scrollY > 100) {\r\n scrolled.value = true;\r\n } else {\r\n scrolled.value = false;\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n window.addEventListener('scroll', handleScroll);\r\n});\r\n\r\nonUnmounted(() => {\r\n window.removeEventListener('scroll', handleScroll);\r\n});\r\n</script> "],"names":[],"mappings":";;;;;;;;;;;AAsEc,aAAS;AACjB,UAAA,EAAE,EAAE,IAAI,QAAQ;AAChB,UAAA,iBAAiB,IAAI,KAAK;AAC1B,UAAA,WAAW,IAAI,KAAK;AAE1B,UAAM,WAAW;AAAA,MACf,EAAE,SAAS,YAAY,MAAM,IAAI;AAAA,MACjC,EAAE,SAAS,gBAAgB,MAAM,YAAY;AAAA,MAC7C,EAAE,SAAS,iBAAiB,MAAM,aAAa;AAAA,MAC/C,EAAE,SAAS,aAAa,MAAM,SAAS;AAAA,MACvC,EAAE,SAAS,aAAa,MAAM,SAAS;AAAA,MACvC,EAAE,SAAS,eAAe,MAAM,WAAW;AAAA,IAC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}

View File

@ -1 +1 @@
{"file":"NavBar.vue2.mjs","mappings":";;;;;;;;AA4Dc,aAAS;AACjB,UAAA,iBAAiB,IAAI,KAAK;AAC1B,UAAA,WAAW,IAAI,KAAK;AAE1B,UAAM,WAAW;AAAA,MACf,EAAE,MAAM,MAAM,MAAM,IAAI;AAAA,MACxB,EAAE,MAAM,SAAS,MAAM,YAAY;AAAA,MACnC,EAAE,MAAM,QAAQ,MAAM,aAAa;AAAA,MACnC,EAAE,MAAM,QAAQ,MAAM,SAAS;AAAA,MAC/B,EAAE,MAAM,QAAQ,MAAM,SAAS;AAAA,MAC/B,EAAE,MAAM,QAAQ,MAAM,WAAW;AAAA,IACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["../../../../components/NavBar.vue"],"sourcesContent":["<template>\r\n <nav :class=\"['bg-primary shadow-md fixed w-full z-50', { 'nav-scrolled': scrolled }]\">\r\n <div class=\"container\">\r\n <div class=\"flex items-center justify-between h-16\">\r\n <NuxtLink to=\"/\" class=\"flex items-center text-white\">\r\n <i class=\"fas fa-cloud text-2xl mr-2\"></i>\r\n <span class=\"text-xl font-bold\">云服务专家</span>\r\n </NuxtLink>\r\n \r\n <!-- 桌面端导航 -->\r\n <div class=\"hidden md:flex items-center space-x-8\">\r\n <NuxtLink \r\n v-for=\"(item, index) in navItems\" \r\n :key=\"index\" \r\n :to=\"item.path\" \r\n class=\"text-white/85 hover:text-secondary transition-colors duration-300\"\r\n :class=\"{ 'text-white': $route.path === item.path }\"\r\n >\r\n {{ item.name }}\r\n </NuxtLink>\r\n </div>\r\n\r\n <!-- 移动端菜单按钮 -->\r\n <button\r\n class=\"md:hidden text-white p-2 rounded-lg hover:bg-white/10 transition-colors duration-300\"\r\n aria-label=\"打开菜单\"\r\n @click=\"toggleMobileMenu\"\r\n >\r\n <i class=\"fas fa-bars text-xl\"></i>\r\n </button>\r\n </div>\r\n\r\n <!-- 移动端菜单 -->\r\n <div :class=\"['md:hidden bg-primary absolute top-16 left-0 right-0 shadow-lg', { 'hidden': !mobileMenuOpen }]\">\r\n <div class=\"container py-4\">\r\n <div class=\"flex flex-col space-y-4\">\r\n <NuxtLink\r\n v-for=\"(item, index) in navItems\"\r\n :key=\"index\"\r\n :to=\"item.path\"\r\n class=\"text-white/85 hover:text-secondary transition-colors duration-300 py-2\"\r\n :class=\"{ 'text-white': $route.path === item.path }\"\r\n @click=\"mobileMenuOpen = false\"\r\n >\r\n {{ item.name }}\r\n </NuxtLink>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </nav>\r\n\r\n <!-- 添加导航栏占位,防止内容被导航栏遮挡 -->\r\n <div class=\"h-16\"></div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, onMounted, onUnmounted } from 'vue';\r\nimport { useRoute } from 'vue-router';\r\n\r\nconst route = useRoute();\r\nconst mobileMenuOpen = ref(false);\r\nconst scrolled = ref(false);\r\n\r\nconst navItems = [\r\n { name: '首页', path: '/' },\r\n { name: 'AWS产品', path: '/products' },\r\n { name: '解决方案', path: '/solutions' },\r\n { name: '客户案例', path: '/cases' },\r\n { name: '关于我们', path: '/about' },\r\n { name: '联系我们', path: '/contact' }\r\n];\r\n\r\nconst toggleMobileMenu = () => {\r\n mobileMenuOpen.value = !mobileMenuOpen.value;\r\n};\r\n\r\nconst handleScroll = () => {\r\n if (window.scrollY > 100) {\r\n scrolled.value = true;\r\n } else {\r\n scrolled.value = false;\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n window.addEventListener('scroll', handleScroll);\r\n});\r\n\r\nonUnmounted(() => {\r\n window.removeEventListener('scroll', handleScroll);\r\n});\r\n</script> "],"version":3}
{"file":"NavBar.vue2.mjs","mappings":";;;;;;;;;;;AAsEc,aAAS;AACjB,UAAA,EAAE,EAAE,IAAI,QAAQ;AAChB,UAAA,iBAAiB,IAAI,KAAK;AAC1B,UAAA,WAAW,IAAI,KAAK;AAE1B,UAAM,WAAW;AAAA,MACf,EAAE,SAAS,YAAY,MAAM,IAAI;AAAA,MACjC,EAAE,SAAS,gBAAgB,MAAM,YAAY;AAAA,MAC7C,EAAE,SAAS,iBAAiB,MAAM,aAAa;AAAA,MAC/C,EAAE,SAAS,aAAa,MAAM,SAAS;AAAA,MACvC,EAAE,SAAS,aAAa,MAAM,SAAS;AAAA,MACvC,EAAE,SAAS,eAAe,MAAM,WAAW;AAAA,IAC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["../../../../components/NavBar.vue"],"sourcesContent":["<template>\r\n <nav :class=\"['bg-primary shadow-md fixed w-full z-50', { 'nav-scrolled': scrolled }]\">\r\n <div class=\"container\">\r\n <div class=\"flex items-center justify-between h-16\">\r\n <NuxtLink to=\"/\" class=\"flex items-center text-white\">\r\n <i class=\"fas fa-cloud text-2xl mr-2\"></i>\r\n <span class=\"text-xl font-bold\">{{ $t('common.appName') }}</span>\r\n </NuxtLink>\r\n \r\n <!-- 桌面端导航 -->\r\n <div class=\"hidden md:flex items-center space-x-8\">\r\n <NuxtLink \r\n v-for=\"(item, index) in navItems\" \r\n :key=\"index\" \r\n :to=\"item.path\" \r\n class=\"text-white/85 hover:text-secondary transition-colors duration-300\"\r\n :class=\"{ 'text-white': $route.path === item.path }\"\r\n >\r\n {{ $t(item.i18nKey) }}\r\n </NuxtLink>\r\n \r\n <!-- 语言切换器 -->\r\n <LanguageSwitcher />\r\n </div>\r\n\r\n <!-- 移动端菜单按钮 -->\r\n <button\r\n class=\"md:hidden text-white p-2 rounded-lg hover:bg-white/10 transition-colors duration-300\"\r\n aria-label=\"打开菜单\"\r\n @click=\"toggleMobileMenu\"\r\n >\r\n <i class=\"fas fa-bars text-xl\"></i>\r\n </button>\r\n </div>\r\n\r\n <!-- 移动端菜单 -->\r\n <div :class=\"['md:hidden bg-primary absolute top-16 left-0 right-0 shadow-lg', { 'hidden': !mobileMenuOpen }]\">\r\n <div class=\"container py-4\">\r\n <div class=\"flex flex-col space-y-4\">\r\n <NuxtLink\r\n v-for=\"(item, index) in navItems\"\r\n :key=\"index\"\r\n :to=\"item.path\"\r\n class=\"text-white/85 hover:text-secondary transition-colors duration-300 py-2\"\r\n :class=\"{ 'text-white': $route.path === item.path }\"\r\n @click=\"mobileMenuOpen = false\"\r\n >\r\n {{ $t(item.i18nKey) }}\r\n </NuxtLink>\r\n \r\n <!-- 移动端语言切换器 -->\r\n <div class=\"py-2\">\r\n <LanguageSwitcher />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </nav>\r\n\r\n <!-- 添加导航栏占位,防止内容被导航栏遮挡 -->\r\n <div class=\"h-16\"></div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, onMounted, onUnmounted } from 'vue';\r\nimport { useRoute } from 'vue-router';\r\nimport { useI18n } from 'vue-i18n';\r\nimport LanguageSwitcher from './LanguageSwitcher.vue';\r\n\r\nconst route = useRoute();\r\nconst { t } = useI18n();\r\nconst mobileMenuOpen = ref(false);\r\nconst scrolled = ref(false);\r\n\r\nconst navItems = [\r\n { i18nKey: 'nav.home', path: '/' },\r\n { i18nKey: 'nav.products', path: '/products' },\r\n { i18nKey: 'nav.solutions', path: '/solutions' },\r\n { i18nKey: 'nav.cases', path: '/cases' },\r\n { i18nKey: 'nav.about', path: '/about' },\r\n { i18nKey: 'nav.contact', path: '/contact' }\r\n];\r\n\r\nconst toggleMobileMenu = () => {\r\n mobileMenuOpen.value = !mobileMenuOpen.value;\r\n};\r\n\r\nconst handleScroll = () => {\r\n if (window.scrollY > 100) {\r\n scrolled.value = true;\r\n } else {\r\n scrolled.value = false;\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n window.addEventListener('scroll', handleScroll);\r\n});\r\n\r\nonUnmounted(() => {\r\n window.removeEventListener('scroll', handleScroll);\r\n});\r\n</script> "],"version":3}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"file":"entry-styles-3.mjs.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}

View File

@ -0,0 +1 @@
{"file":"entry-styles-3.mjs.mjs","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}

View File

@ -0,0 +1 @@
{"file":"en.json.mjs","mappings":";;;;;;;;;;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"file":"zh.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}

View File

@ -0,0 +1 @@
{"file":"zh.json.mjs","mappings":";;;;;;;;;;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}

View File

@ -1,68 +1,70 @@
import "../components/HeroBanner.vue.mjs";
import __nuxt_component_0 from "../node_modules/nuxt/dist/app/components/nuxt-link.mjs";
import { defineComponent, withCtx, createTextVNode, createVNode } from "vue";
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrInterpolate, ssrRenderClass } from "vue/server-renderer";
import { defineComponent, withCtx, createTextVNode, createVNode, toDisplayString } 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: "about",
__ssrInlineRender: true,
setup(__props) {
const { t } = useI18n();
const achievements = [
"AWS高级合作伙伴认证",
"100+成功案例",
"50+AWS认证工程师"
"about.achievements.item1",
"about.achievements.item2",
"about.achievements.item3"
];
const advantages = [
{
icon: "fas fa-award",
title: "专业认证",
description: "AWS官方认证的高级合作伙伴拥有多项专业认证"
icon: "fas fa-certificate",
titleKey: "about.advantages.certification.title",
descriptionKey: "about.advantages.certification.description"
},
{
icon: "fas fa-users",
title: "专业团队",
description: "50+位AWS认证工程师平均5年以上云服务经验"
titleKey: "about.advantages.team.title",
descriptionKey: "about.advantages.team.description"
},
{
icon: "fas fa-tools",
title: "技术实力",
description: "掌握AWS全线产品具备丰富的实施和运维经验"
icon: "fas fa-code",
titleKey: "about.advantages.technical.title",
descriptionKey: "about.advantages.technical.description"
},
{
icon: "fas fa-headset",
title: "服务保障",
description: "7x24小时技术支持确保客户业务稳定运行"
titleKey: "about.advantages.service.title",
descriptionKey: "about.advantages.service.description"
}
];
const cultures = [
{
icon: "fas fa-bullseye",
title: "企业使命",
description: "助力企业数字化转型,提供专业可靠的云计算服务"
titleKey: "about.culture.mission.title",
descriptionKey: "about.culture.mission.description"
},
{
icon: "fas fa-eye",
title: "企业愿景",
description: "成为中国最值得信赖的云服务解决方案提供商"
titleKey: "about.culture.vision.title",
descriptionKey: "about.culture.vision.description"
},
{
icon: "fas fa-heart",
title: "核心价值观",
description: "专业、创新、诚信、共赢"
titleKey: "about.culture.values.title",
descriptionKey: "about.culture.values.description"
}
];
const historyItems = [
{
year: "2023年",
description: "成为AWS高级合作伙伴服务客户数量突破500家"
yearKey: "about.history.year2023.year",
descriptionKey: "about.history.year2023.description"
},
{
year: "2021年",
description: "获得AWS标准合作伙伴认证团队规模扩大到50人"
yearKey: "about.history.year2021.year",
descriptionKey: "about.history.year2021.description"
},
{
year: "2018年",
description: "公司成立开始提供AWS云服务解决方案"
yearKey: "about.history.year2018.year",
descriptionKey: "about.history.year2018.description"
}
];
return (_ctx, _push, _parent, _attrs) => {
@ -70,36 +72,36 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
const _component_NuxtLink = __nuxt_component_0;
_push(`<div${ssrRenderAttrs(_attrs)}>`);
_push(ssrRenderComponent(_component_HeroBanner, {
title: "关于我们",
subtitle: "专业的AWS云服务解决方案提供商助力企业数字化转型"
title: _ctx.$t("about.hero.title"),
subtitle: _ctx.$t("about.hero.subtitle")
}, null, _parent));
_push(`<section class="section"><div class="container"><div class="grid md:grid-cols-2 gap-12 items-center"><div><h2 class="text-4xl font-bold text-[#333333] mb-8 mt-6">公司简介</h2><p class="text-gray-600 mb-4 text-lg leading-relaxed">云服务专家成立于2018年是AWS授权的云服务解决方案提供商。我们致力于为企业提供专业的云计算咨询、迁移、运维和优化服务。</p><p class="text-gray-600 mb-8 text-lg leading-relaxed">作为AWS高级合作伙伴我们拥有丰富的云服务实施经验和专业的技术团队已成功帮助数百家企业完成云上转型。</p><ul class="space-y-4"><!--[-->`);
_push(`<section class="section"><div class="container"><div class="grid md:grid-cols-2 gap-12 items-center"><div><h2 class="text-4xl font-bold text-[#333333] mb-8 mt-6">${ssrInterpolate(_ctx.$t("about.company.title"))}</h2><p class="text-gray-600 mb-4 text-lg leading-relaxed">${ssrInterpolate(_ctx.$t("about.company.description1"))}</p><p class="text-gray-600 mb-8 text-lg leading-relaxed">${ssrInterpolate(_ctx.$t("about.company.description2"))}</p><ul class="space-y-4"><!--[-->`);
ssrRenderList(achievements, (achievement, index) => {
_push(`<li class="flex items-center text-lg"><i class="fas fa-check-circle text-green-500 mr-3"></i><span class="text-gray-700">${ssrInterpolate(achievement)}</span></li>`);
_push(`<li class="flex items-center text-lg"><i class="fas fa-check-circle text-green-500 mr-3"></i><span class="text-gray-700">${ssrInterpolate(_ctx.$t(achievement))}</span></li>`);
});
_push(`<!--]--></ul></div><div class="bg-gradient-to-br from-secondary/20 to-secondary/10 h-80 rounded-lg flex items-center justify-center"><i class="fas fa-building text-8xl text-secondary"></i></div></div></div></section><section class="section 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 mt-6">我们的优势</h2><p class="text-xl text-gray-600 leading-relaxed">专业技术团队,丰富项目经验</p></div><div class="grid md:grid-cols-4 gap-8"><!--[-->`);
_push(`<!--]--></ul></div><div class="bg-gradient-to-br from-secondary/20 to-secondary/10 h-80 rounded-lg flex items-center justify-center"><i class="fas fa-building text-8xl text-secondary"></i></div></div></div></section><section class="section 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 mt-6">${ssrInterpolate(_ctx.$t("about.advantages.title"))}</h2><p class="text-xl text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t("about.advantages.subtitle"))}</p></div><div class="grid md:grid-cols-4 gap-8"><!--[-->`);
ssrRenderList(advantages, (advantage, index) => {
_push(`<div class="bg-white p-8 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1 text-center"><div class="w-20 h-20 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-secondary text-3xl", advantage.icon])}"></i></div><h3 class="text-xl font-semibold mb-4">${ssrInterpolate(advantage.title)}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(advantage.description)}</p></div>`);
_push(`<div class="bg-white p-8 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1 text-center"><div class="w-20 h-20 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-secondary text-3xl", advantage.icon])}"></i></div><h3 class="text-xl font-semibold mb-4">${ssrInterpolate(_ctx.$t(advantage.titleKey))}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t(advantage.descriptionKey))}</p></div>`);
});
_push(`<!--]--></div></div></section><section class="section"><div class="container"><div class="max-w-4xl mx-auto text-center mb-16"><h2 class="text-4xl font-bold text-[#333333] mb-4 mt-6">企业文化</h2><p class="text-xl text-gray-600 leading-relaxed">以客户为中心,追求卓越服务</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
_push(`<!--]--></div></div></section><section class="section"><div class="container"><div class="max-w-4xl mx-auto text-center mb-16"><h2 class="text-4xl font-bold text-[#333333] mb-4 mt-6">${ssrInterpolate(_ctx.$t("about.culture.title"))}</h2><p class="text-xl text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t("about.culture.subtitle"))}</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
ssrRenderList(cultures, (culture, 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-20 h-20 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-secondary text-3xl", culture.icon])}"></i></div><h3 class="text-xl font-semibold mb-4 text-center">${ssrInterpolate(culture.title)}</h3><p class="text-gray-600 leading-relaxed text-center">${ssrInterpolate(culture.description)}</p></div>`);
_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-20 h-20 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-secondary text-3xl", culture.icon])}"></i></div><h3 class="text-xl font-semibold mb-4 text-center">${ssrInterpolate(_ctx.$t(culture.titleKey))}</h3><p class="text-gray-600 leading-relaxed text-center">${ssrInterpolate(_ctx.$t(culture.descriptionKey))}</p></div>`);
});
_push(`<!--]--></div></div></section><section class="section 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 mt-6">发展历程</h2><p class="text-xl text-gray-600 leading-relaxed">见证我们的成长与进步</p></div><div class="space-y-8"><!--[-->`);
_push(`<!--]--></div></div></section><section class="section 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 mt-6">${ssrInterpolate(_ctx.$t("about.history.title"))}</h2><p class="text-xl text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t("about.history.subtitle"))}</p></div><div class="space-y-8"><!--[-->`);
ssrRenderList(historyItems, (history, index) => {
_push(`<div class="flex flex-col md:flex-row items-center gap-8"><div class="w-full md:w-1/4 text-right"><h3 class="text-2xl font-semibold text-secondary">${ssrInterpolate(history.year)}</h3></div><div class="w-px h-16 bg-secondary hidden md:block"></div><div class="w-full md:w-3/4"><p class="text-gray-600 text-lg leading-relaxed">${ssrInterpolate(history.description)}</p></div></div>`);
_push(`<div class="flex flex-col md:flex-row items-center gap-8"><div class="w-full md:w-1/4 text-right"><h3 class="text-2xl font-semibold text-secondary">${ssrInterpolate(_ctx.$t(history.yearKey))}</h3></div><div class="w-px h-16 bg-secondary hidden md:block"></div><div class="w-full md:w-3/4"><p class="text-gray-600 text-lg leading-relaxed">${ssrInterpolate(_ctx.$t(history.descriptionKey))}</p></div></div>`);
});
_push(`<!--]--></div></div></section><section class="section bg-primary text-white"><div class="container text-center"><h2 class="text-4xl font-bold mb-6">想了解更多关于我们?</h2><p class="text-xl mb-8 max-w-2xl mx-auto leading-relaxed">欢迎联系我们,了解更多公司信息和服务详情</p>`);
_push(`<!--]--></div></div></section><section class="section bg-primary text-white"><div class="container text-center"><h2 class="text-4xl font-bold mb-6">${ssrInterpolate(_ctx.$t("about.contact.title"))}</h2><p class="text-xl mb-8 max-w-2xl mx-auto leading-relaxed">${ssrInterpolate(_ctx.$t("about.contact.subtitle"))}</p>`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/contact",
class: "inline-flex items-center bg-white text-black px-8 py-4 rounded-lg hover:bg-gray-100 transition-colors duration-300 text-lg font-semibold"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` 联系我们 <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
_push2(`${ssrInterpolate(_ctx.$t("about.contact.button"))} <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
} else {
return [
createTextVNode(" 联系我们 "),
createTextVNode(toDisplayString(_ctx.$t("about.contact.button")) + " ", 1),
createVNode("i", { class: "fas fa-arrow-right ml-2" })
];
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,141 +1,152 @@
import "../components/HeroBanner.vue.mjs";
import __nuxt_component_0 from "../node_modules/nuxt/dist/app/components/nuxt-link.mjs";
import { defineComponent, ref, computed, withCtx, createTextVNode, createVNode } from "vue";
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrInterpolate, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual } from "vue/server-renderer";
import { defineComponent, ref, computed, withCtx, createTextVNode, createVNode, toDisplayString } from "vue";
import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderList, ssrRenderClass, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual } from "vue/server-renderer";
import { useI18n } from "vue-i18n";
import _sfc_main$1 from "../components/HeroBanner.vue2.mjs";
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "cases",
__ssrInlineRender: true,
setup(__props) {
const industries = ["金融", "电子商务", "制造", "医疗", "教育", "政府", "媒体", "物流"];
const { t } = useI18n();
const industries = [
t("cases.industries.finance"),
t("cases.industries.ecommerce"),
t("cases.industries.manufacturing"),
t("cases.industries.healthcare"),
t("cases.industries.education"),
t("cases.industries.government"),
t("cases.industries.media"),
t("cases.industries.logistics")
];
const selectedIndustries = ref([]);
const sortBy = ref("default");
const selectedCase = ref(null);
const caseStudies = [
{
title: "某大型电商平台",
industry: "电子商务",
titleKey: "cases.caseStudies.ecommerce.title",
industry: "cases.caseStudies.ecommerce.industry",
date: "2023-05-15",
summary: "通过AWS云服务成功应对每年双11销售高峰提升了网站性能和用户体验同时降低了运营成本。",
background: "该客户是中国领先的电子商务平台年交易额超过100亿元拥有超过1000万注册用户。随着业务快速发展特别是在促销活动期间其传统IT架构难以应对流量峰值。",
summaryKey: "cases.caseStudies.ecommerce.summary",
backgroundKey: "cases.caseStudies.ecommerce.background",
challenges: [
"传统IT基础设施难以应对促销期间10倍以上的流量峰值",
"系统扩容周期长,难以快速响应业务需求",
"运维成本高,人力资源紧张",
"数据安全和合规要求严格"
"cases.caseStudies.ecommerce.challenges[0]",
"cases.caseStudies.ecommerce.challenges[1]",
"cases.caseStudies.ecommerce.challenges[2]",
"cases.caseStudies.ecommerce.challenges[3]"
],
solution: "我们为客户设计并实施了基于AWS的弹性扩展解决方案。使用EC2弹性计算实例和Auto Scaling自动扩展服务实现了基于流量的自动扩缩容采用Amazon RDS提供高可用数据库服务利用ElastiCache加速数据访问通过CloudFront CDN加速全国内容分发。",
solutionKey: "cases.caseStudies.ecommerce.solution",
results: [
"成功应对促销期间20倍的流量增长系统零宕机",
"页面加载时间减少40%,用户体验显著提升",
"运维工作量减少60%IT团队可以更专注于业务创新",
"总体IT成本降低30%,特别是在非促销期间",
"系统可靠性提升到99.99%"
"cases.caseStudies.ecommerce.results[0]",
"cases.caseStudies.ecommerce.results[1]",
"cases.caseStudies.ecommerce.results[2]",
"cases.caseStudies.ecommerce.results[3]",
"cases.caseStudies.ecommerce.results[4]"
]
},
{
title: "某股份制银行",
industry: "金融",
titleKey: "cases.caseStudies.finance.title",
industry: "cases.caseStudies.finance.industry",
date: "2023-03-20",
summary: "采用AWS金融云解决方案构建了高安全、高可用的核心业务系统满足了严格的金融监管要求。",
background: "该客户是一家拥有50多家分支机构的全国性股份制银行为了适应数字化转型战略需要升级其核心业务系统以提高业务敏捷性和客户体验。",
summaryKey: "cases.caseStudies.finance.summary",
backgroundKey: "cases.caseStudies.finance.background",
challenges: [
"金融系统对安全性和可用性要求极高",
"需要满足严格的金融监管合规要求",
"大量敏感数据需要高级别的保护",
"系统升级不能影响正常业务运营"
"cases.caseStudies.finance.challenges[0]",
"cases.caseStudies.finance.challenges[1]",
"cases.caseStudies.finance.challenges[2]",
"cases.caseStudies.finance.challenges[3]"
],
solution: "我们为客户提供了基于AWS金融云的整体解决方案包括多区域高可用架构设计、全面的安全防护体系、数据加密和访问控制、灾备和业务连续性方案等。通过与客户IT团队的紧密协作分阶段实施了系统迁移和升级。",
solutionKey: "cases.caseStudies.finance.solution",
results: [
"成功构建满足CBRC监管要求的高合规云平台",
"系统可用性达到99.999%,满足金融业务连续性要求",
"数据安全问题零发生,通过了多次安全审计",
"业务处理能力提升3倍支持快速创新",
"新业务上线时间从月级缩短到周级"
"cases.caseStudies.finance.results[0]",
"cases.caseStudies.finance.results[1]",
"cases.caseStudies.finance.results[2]",
"cases.caseStudies.finance.results[3]",
"cases.caseStudies.finance.results[4]"
]
},
{
title: "某医疗健康机构",
industry: "医疗",
titleKey: "cases.caseStudies.healthcare.title",
industry: "cases.caseStudies.healthcare.industry",
date: "2022-11-10",
summary: "利用AWS的AI/ML服务构建了智能医疗影像分析系统提高了诊断效率和准确性。",
background: "该客户是一家拥有多家医院的医疗集团面临医疗影像数据激增、专业放射科医师短缺的挑战希望通过AI技术提高医疗影像诊断的效率和准确性。",
summaryKey: "cases.caseStudies.healthcare.summary",
backgroundKey: "cases.caseStudies.healthcare.background",
challenges: [
"每天产生海量医疗影像数据,存储和处理压力大",
"专业放射科医师资源有限,工作负担重",
"传统诊断方法耗时长,难以满足快速增长的需求",
"医疗数据安全和患者隐私保护要求高"
"cases.caseStudies.healthcare.challenges[0]",
"cases.caseStudies.healthcare.challenges[1]",
"cases.caseStudies.healthcare.challenges[2]",
"cases.caseStudies.healthcare.challenges[3]"
],
solution: "我们基于AWS的医疗解决方案构建了云端医疗影像存储和AI辅助诊断系统。使用S3存储海量影像数据通过SageMaker构建和部署AI诊断模型结合医疗专用的安全和合规措施确保数据安全和患者隐私。",
solutionKey: "cases.caseStudies.healthcare.solution",
results: [
"医疗影像诊断效率提升60%,大幅减轻医师工作负担",
"AI辅助诊断系统准确率达到95%以上,优于行业平均水平",
"患者等待时间从平均24小时减少到6小时",
"医疗数据安全得到全面保障,符合国家相关法规要求",
"建立了可持续的医疗AI创新平台持续改进诊断能力"
"cases.caseStudies.healthcare.results[0]",
"cases.caseStudies.healthcare.results[1]",
"cases.caseStudies.healthcare.results[2]",
"cases.caseStudies.healthcare.results[3]",
"cases.caseStudies.healthcare.results[4]"
]
},
{
title: "某制造业巨头",
industry: "制造",
titleKey: "cases.caseStudies.manufacturing.title",
industry: "cases.caseStudies.manufacturing.industry",
date: "2022-09-05",
summary: "通过AWS工业互联网解决方案实现了生产设备智能监控和预测性维护提高了生产效率降低了设备故障率。",
background: "该客户是一家大型制造企业,拥有多个生产基地和数千台生产设备。传统的设备维护模式效率低下,难以预防突发故障,导致生产线停机和效率损失。",
summaryKey: "cases.caseStudies.manufacturing.summary",
backgroundKey: "cases.caseStudies.manufacturing.background",
challenges: [
"设备分散在多个地区,管理和监控困难",
"缺乏有效的设备健康状态监测手段",
"计划外停机造成巨大的生产损失",
"海量设备数据无法有效收集和分析"
"cases.caseStudies.manufacturing.challenges[0]",
"cases.caseStudies.manufacturing.challenges[1]",
"cases.caseStudies.manufacturing.challenges[2]",
"cases.caseStudies.manufacturing.challenges[3]"
],
solution: "我们基于AWS IoT服务构建了工业互联网平台实现设备数据实时收集和分析。通过AWS IoT Core连接设备利用Kinesis处理实时数据流结合SageMaker构建预测性维护模型最终通过可视化仪表板展示设备健康状态和预警信息。",
solutionKey: "cases.caseStudies.manufacturing.solution",
results: [
"实现了5000多台设备的实时监控和健康管理",
"设备计划外停机时间减少70%生产效率提升25%",
"维护成本降低40%设备使用寿命延长15%",
"通过预测性维护,每年节约维修成本数百万元",
"建立了数据驱动的智能制造基础,支持企业数字化转型"
"cases.caseStudies.manufacturing.results[0]",
"cases.caseStudies.manufacturing.results[1]",
"cases.caseStudies.manufacturing.results[2]",
"cases.caseStudies.manufacturing.results[3]",
"cases.caseStudies.manufacturing.results[4]"
]
},
{
title: "某大型物流企业",
industry: "物流",
titleKey: "cases.caseStudies.logistics.title",
industry: "cases.caseStudies.logistics.industry",
date: "2022-07-15",
summary: "利用AWS的大数据和机器学习服务优化了配送路线和资源调度提高了配送效率降低了运营成本。",
background: "该客户是一家覆盖全国的综合物流服务提供商日处理订单量超过100万单。随着业务规模扩大传统的人工调度方式难以应对复杂多变的配送需求效率低下且成本高昂。",
summaryKey: "cases.caseStudies.logistics.summary",
backgroundKey: "cases.caseStudies.logistics.background",
challenges: [
"配送路线规划复杂,人工调度效率低",
"车辆和人力资源分配不均衡,利用率低",
"无法根据实时路况和订单变化做出快速调整",
"缺乏数据支持的决策机制,难以持续优化"
"cases.caseStudies.logistics.challenges[0]",
"cases.caseStudies.logistics.challenges[1]",
"cases.caseStudies.logistics.challenges[2]",
"cases.caseStudies.logistics.challenges[3]"
],
solution: "我们为客户构建了基于AWS的智能物流调度平台。利用AWS的大数据服务处理和分析海量订单和位置数据通过机器学习算法建立智能路径规划和资源调度模型并结合地图服务实现实时路况感知和动态调整。",
solutionKey: "cases.caseStudies.logistics.solution",
results: [
"配送效率提升30%平均配送时间缩短1.5小时",
"车辆利用率提高40%,每年节约燃油成本数百万元",
"客户满意度提升25%准时送达率达到98%",
"系统自动化程度高调度人员需求减少50%",
"建立了数据驱动的持续优化机制,物流成本逐年下降"
"cases.caseStudies.logistics.results[0]",
"cases.caseStudies.logistics.results[1]",
"cases.caseStudies.logistics.results[2]",
"cases.caseStudies.logistics.results[3]",
"cases.caseStudies.logistics.results[4]"
]
},
{
title: "某在线教育平台",
industry: "教育",
titleKey: "cases.caseStudies.education.title",
industry: "cases.caseStudies.education.industry",
date: "2022-05-08",
summary: "通过AWS云服务构建了高可靠、低延迟的在线教育直播和点播平台支持百万级学生同时在线学习。",
background: "该客户是一家专注K12领域的在线教育平台提供直播和点播课程服务。随着用户规模快速增长特别是在疫情期间平台面临巨大的并发访问压力和用户体验挑战。",
summaryKey: "cases.caseStudies.education.summary",
backgroundKey: "cases.caseStudies.education.background",
challenges: [
"高峰期需支持百万级用户同时在线学习",
"直播课程对系统稳定性和延迟要求高",
"教学视频存储和分发成本高",
"用户分布广泛,跨地区服务质量难以保证"
"cases.caseStudies.education.challenges[0]",
"cases.caseStudies.education.challenges[1]",
"cases.caseStudies.education.challenges[2]",
"cases.caseStudies.education.challenges[3]"
],
solution: "我们基于AWS设计了可弹性扩展的在线教育平台解决方案。使用EC2和Auto Scaling服务支持高并发访问通过MediaLive和MediaPackage提供低延迟直播服务利用S3和CloudFront实现视频内容的高效存储和分发同时通过多区域部署确保全国范围内的服务质量。",
solutionKey: "cases.caseStudies.education.solution",
results: [
"成功支持200万+用户同时在线学习,系统稳定无卡顿",
"直播延迟控制在2秒以内大幅提升师生互动体验",
"通过内容分发网络全国各地用户访问速度提升60%",
"视频存储和分发成本降低50%,支持业务快速扩张",
"平台可用性达到99.99%,赢得用户信赖"
"cases.caseStudies.education.results[0]",
"cases.caseStudies.education.results[1]",
"cases.caseStudies.education.results[2]",
"cases.caseStudies.education.results[3]",
"cases.caseStudies.education.results[4]"
]
}
];
@ -154,51 +165,51 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
const _component_NuxtLink = __nuxt_component_0;
_push(`<div${ssrRenderAttrs(_attrs)}>`);
_push(ssrRenderComponent(_component_HeroBanner, {
title: "客户案例",
subtitle: "看看其他企业如何利用AWS云服务提升业务价值"
title: _ctx.$t("cases.hero.title"),
subtitle: _ctx.$t("cases.hero.subtitle")
}, null, _parent));
_push(`<section class="py-10"><div class="container"><div class="bg-white p-6 rounded-lg shadow-md"><div class="flex flex-wrap items-center justify-between gap-4"><div class="flex flex-wrap items-center gap-4"><span class="text-gray-700 font-medium">按行业筛选:</span><div class="flex flex-wrap gap-2"><!--[-->`);
_push(`<section class="py-10"><div class="container"><div class="bg-white p-6 rounded-lg shadow-md"><div class="flex flex-wrap items-center justify-between gap-4"><div class="flex flex-wrap items-center gap-4"><span class="text-gray-700 font-medium">${ssrInterpolate(_ctx.$t("cases.filter.byIndustry"))}</span><div class="flex flex-wrap gap-2"><!--[-->`);
ssrRenderList(industries, (industry) => {
_push(`<button class="${ssrRenderClass([
"px-4 py-2 rounded-full text-sm",
selectedIndustries.value.includes(industry) ? "bg-secondary text-white" : "bg-gray-100 text-gray-700 hover:bg-gray-200"
])}">${ssrInterpolate(industry)}</button>`);
});
_push(`<!--]--><button class="px-4 py-2 rounded-full text-sm bg-gray-100 text-gray-700 hover:bg-gray-200"> 全部 </button></div></div><div class="flex items-center"><span class="text-gray-700 font-medium mr-4">排序方式:</span><select class="px-4 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-secondary focus:border-transparent"><option value="latest"${ssrIncludeBooleanAttr(Array.isArray(sortBy.value) ? ssrLooseContain(sortBy.value, "latest") : ssrLooseEqual(sortBy.value, "latest")) ? " selected" : ""}>最新案例</option><option value="default"${ssrIncludeBooleanAttr(Array.isArray(sortBy.value) ? ssrLooseContain(sortBy.value, "default") : ssrLooseEqual(sortBy.value, "default")) ? " selected" : ""}>默认排序</option></select></div></div></div></div></section><section class="py-12"><div class="container">`);
_push(`<!--]--><button class="px-4 py-2 rounded-full text-sm bg-gray-100 text-gray-700 hover:bg-gray-200">${ssrInterpolate(_ctx.$t("cases.filter.all"))}</button></div></div><div class="flex items-center"><span class="text-gray-700 font-medium mr-4">${ssrInterpolate(_ctx.$t("cases.filter.sortBy"))}</span><select class="px-4 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-secondary focus:border-transparent"><option value="latest"${ssrIncludeBooleanAttr(Array.isArray(sortBy.value) ? ssrLooseContain(sortBy.value, "latest") : ssrLooseEqual(sortBy.value, "latest")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("cases.filter.latest"))}</option><option value="default"${ssrIncludeBooleanAttr(Array.isArray(sortBy.value) ? ssrLooseContain(sortBy.value, "default") : ssrLooseEqual(sortBy.value, "default")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("cases.filter.default"))}</option></select></div></div></div></div></section><section class="py-12"><div class="container">`);
if (filteredCases.value.length === 0) {
_push(`<div class="text-center py-16"><i class="fas fa-search text-4xl text-gray-300 mb-4"></i><p class="text-xl text-gray-500">没有找到符合条件的案例</p><button class="mt-4 text-secondary hover:text-secondary/90"> 清除筛选条件 </button></div>`);
_push(`<div class="text-center py-16"><i class="fas fa-search text-4xl text-gray-300 mb-4"></i><p class="text-xl text-gray-500">${ssrInterpolate(_ctx.$t("cases.noResults.text"))}</p><button class="mt-4 text-secondary hover:text-secondary/90">${ssrInterpolate(_ctx.$t("cases.noResults.clearFilters"))}</button></div>`);
} else {
_push(`<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8"><!--[-->`);
ssrRenderList(filteredCases.value, (case_item, 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-gray-200 relative overflow-hidden"><div class="absolute top-0 right-0 bg-secondary text-white px-3 py-1 text-sm">${ssrInterpolate(case_item.industry)}</div></div><div class="p-6"><h3 class="text-2xl font-semibold mb-4">${ssrInterpolate(case_item.title)}</h3><p class="text-gray-600 mb-6">${ssrInterpolate(case_item.summary)}</p><div class="flex justify-between items-center"><button class="text-secondary hover:text-secondary/90 flex items-center"> 阅读详情 <i class="fas fa-arrow-right ml-2"></i></button><span class="text-sm text-gray-500">${ssrInterpolate(case_item.date)}</span></div></div></div>`);
_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-gray-200 relative overflow-hidden"><div class="absolute top-0 right-0 bg-secondary text-white px-3 py-1 text-sm">${ssrInterpolate(_ctx.$t(case_item.industry))}</div></div><div class="p-6"><h3 class="text-2xl font-semibold mb-4">${ssrInterpolate(_ctx.$t(case_item.titleKey))}</h3><p class="text-gray-600 mb-6">${ssrInterpolate(_ctx.$t(case_item.summaryKey))}</p><div class="flex justify-between items-center"><button class="text-secondary hover:text-secondary/90 flex items-center">${ssrInterpolate(_ctx.$t("cases.caseDetail.readDetails"))} <i class="fas fa-arrow-right ml-2"></i></button><span class="text-sm text-gray-500">${ssrInterpolate(case_item.date)}</span></div></div></div>`);
});
_push(`<!--]--></div>`);
}
_push(`</div></section>`);
if (selectedCase.value) {
_push(`<div class="fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4"><div class="bg-white rounded-lg max-w-4xl w-full max-h-[90vh] overflow-y-auto"><div class="p-6 border-b"><div class="flex justify-between items-center"><h3 class="text-2xl font-bold">${ssrInterpolate(selectedCase.value.title)}</h3><button class="text-gray-500 hover:text-gray-700"><i class="fas fa-times text-xl"></i></button></div></div><div class="p-6"><div class="flex flex-wrap gap-2 mb-6"><span class="px-3 py-1 bg-secondary/10 text-secondary text-sm rounded-full">${ssrInterpolate(selectedCase.value.industry)}</span><span class="px-3 py-1 bg-gray-100 text-gray-700 text-sm rounded-full">${ssrInterpolate(selectedCase.value.date)}</span></div><h4 class="text-xl font-semibold mb-4">客户背景</h4><p class="text-gray-600 mb-6">${ssrInterpolate(selectedCase.value.background)}</p><h4 class="text-xl font-semibold mb-4">面临挑战</h4><ul class="list-disc pl-5 mb-6 space-y-2"><!--[-->`);
_push(`<div class="fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4"><div class="bg-white rounded-lg max-w-4xl w-full max-h-[90vh] overflow-y-auto"><div class="p-6 border-b"><div class="flex justify-between items-center"><h3 class="text-2xl font-bold">${ssrInterpolate(_ctx.$t(selectedCase.value.titleKey))}</h3><button class="text-gray-500 hover:text-gray-700"><i class="fas fa-times text-xl"></i></button></div></div><div class="p-6"><div class="flex flex-wrap gap-2 mb-6"><span class="px-3 py-1 bg-secondary/10 text-secondary text-sm rounded-full">${ssrInterpolate(_ctx.$t(selectedCase.value.industry))}</span><span class="px-3 py-1 bg-gray-100 text-gray-700 text-sm rounded-full">${ssrInterpolate(selectedCase.value.date)}</span></div><h4 class="text-xl font-semibold mb-4">${ssrInterpolate(_ctx.$t("cases.caseDetail.background"))}</h4><p class="text-gray-600 mb-6">${ssrInterpolate(_ctx.$t(selectedCase.value.backgroundKey))}</p><h4 class="text-xl font-semibold mb-4">${ssrInterpolate(_ctx.$t("cases.caseDetail.challenges"))}</h4><ul class="list-disc pl-5 mb-6 space-y-2"><!--[-->`);
ssrRenderList(selectedCase.value.challenges, (challenge, idx) => {
_push(`<li class="text-gray-600">${ssrInterpolate(challenge)}</li>`);
_push(`<li class="text-gray-600">${ssrInterpolate(_ctx.$t(challenge))}</li>`);
});
_push(`<!--]--></ul><h4 class="text-xl font-semibold mb-4">解决方案</h4><p class="text-gray-600 mb-4">${ssrInterpolate(selectedCase.value.solution)}</p><h4 class="text-xl font-semibold mb-4">业务成果</h4><ul class="list-disc pl-5 mb-6 space-y-2"><!--[-->`);
_push(`<!--]--></ul><h4 class="text-xl font-semibold mb-4">${ssrInterpolate(_ctx.$t("cases.caseDetail.solution"))}</h4><p class="text-gray-600 mb-4">${ssrInterpolate(_ctx.$t(selectedCase.value.solutionKey))}</p><h4 class="text-xl font-semibold mb-4">${ssrInterpolate(_ctx.$t("cases.caseDetail.results"))}</h4><ul class="list-disc pl-5 mb-6 space-y-2"><!--[-->`);
ssrRenderList(selectedCase.value.results, (result, idx) => {
_push(`<li class="text-gray-600">${ssrInterpolate(result)}</li>`);
_push(`<li class="text-gray-600">${ssrInterpolate(_ctx.$t(result))}</li>`);
});
_push(`<!--]--></ul></div><div class="p-6 border-t bg-gray-50"><div class="flex justify-end"><button class="px-4 py-2 bg-gray-200 text-gray-700 rounded hover:bg-gray-300"> 关闭 </button></div></div></div></div>`);
_push(`<!--]--></ul></div><div class="p-6 border-t bg-gray-50"><div class="flex justify-end"><button class="px-4 py-2 bg-gray-200 text-gray-700 rounded hover:bg-gray-300">${ssrInterpolate(_ctx.$t("cases.caseDetail.close"))}</button></div></div></div></div>`);
} else {
_push(`<!---->`);
}
_push(`<section class="py-16 bg-primary text-white"><div class="container text-center"><h2 class="text-4xl font-bold mb-6">想了解更多客户案例?</h2><p class="text-xl mb-8 max-w-2xl mx-auto leading-relaxed">联系我们获取更多行业相关的AWS云服务成功案例</p>`);
_push(`<section class="py-16 bg-primary text-white"><div class="container text-center"><h2 class="text-4xl font-bold mb-6">${ssrInterpolate(_ctx.$t("cases.contact.title"))}</h2><p class="text-xl mb-8 max-w-2xl mx-auto leading-relaxed">${ssrInterpolate(_ctx.$t("cases.contact.subtitle"))}</p>`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/contact",
class: "inline-flex items-center bg-white text-black px-8 py-4 rounded-lg hover:bg-gray-100 transition-colors duration-300 text-lg font-semibold"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` 联系我们 <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
_push2(`${ssrInterpolate(_ctx.$t("cases.contact.button"))} <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
} else {
return [
createTextVNode(" 联系我们 "),
createTextVNode(toDisplayString(_ctx.$t("cases.contact.button")) + " ", 1),
createVNode("i", { class: "fas fa-arrow-right ml-2" })
];
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -2,75 +2,77 @@ import "../components/HeroBanner.vue.mjs";
import "../components/NotificationToast.vue.mjs";
import { defineComponent, reactive, ref } from "vue";
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrInterpolate, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual } from "vue/server-renderer";
import { useI18n } from "vue-i18n";
import _sfc_main$1 from "../components/HeroBanner.vue2.mjs";
import _sfc_main$2 from "../components/NotificationToast.vue2.mjs";
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "contact",
__ssrInlineRender: true,
setup(__props) {
const { t } = useI18n();
const contactMethods = [
{
icon: "fas fa-phone",
title: "电话咨询",
subtitle: "周一至周日 9:00-21:00",
content: "400-123-4567",
titleKey: "contact.methods.phone.title",
subtitleKey: "contact.methods.phone.subtitle",
contentKey: "contact.methods.phone.content",
type: "phone"
},
{
icon: "fas fa-envelope",
title: "邮件咨询",
subtitle: "7*24小时邮件支持",
content: "contact@example.com",
titleKey: "contact.methods.email.title",
subtitleKey: "contact.methods.email.subtitle",
contentKey: "contact.methods.email.content",
type: "email"
},
{
icon: "fab fa-weixin",
title: "微信咨询",
subtitle: "扫描下方二维码",
content: "",
titleKey: "contact.methods.wechat.title",
subtitleKey: "contact.methods.wechat.subtitle",
contentKey: "",
type: "wechat"
}
];
const companyInfo = [
{
icon: "fas fa-map-marker-alt",
title: "北京总部",
content: "北京市朝阳区某某大厦10层"
titleKey: "contact.companyInfo.beijing.title",
contentKey: "contact.companyInfo.beijing.content"
},
{
icon: "fas fa-subway",
title: "交通方式",
content: "地铁6号线某某站A出口步行5分钟"
titleKey: "contact.companyInfo.transport.title",
contentKey: "contact.companyInfo.transport.content"
},
{
icon: "far fa-clock",
title: "办公时间",
content: "周一至周五: 9:00-18:00"
titleKey: "contact.companyInfo.hours.title",
contentKey: "contact.companyInfo.hours.content"
}
];
const services = [
{ value: "cloud", label: "云服务咨询" },
{ value: "migration", label: "上云迁移" },
{ value: "solution", label: "解决方案咨询" },
{ value: "price", label: "价格咨询" },
{ value: "other", label: "其他" }
{ value: "cloud", labelKey: "contact.form.serviceOptions.cloud" },
{ value: "migration", labelKey: "contact.form.serviceOptions.migration" },
{ value: "solution", labelKey: "contact.form.serviceOptions.solution" },
{ value: "price", labelKey: "contact.form.serviceOptions.price" },
{ value: "other", labelKey: "contact.form.serviceOptions.other" }
];
const faqs = [
{
question: "如何开始使用AWS云服务",
answer: "您可以通过我们的咨询服务获取专业的AWS云服务解决方案建议。我们的团队将根据您的具体需求为您提供最适合的云服务方案。"
questionKey: "contact.faq.items.q1.question",
answerKey: "contact.faq.items.q1.answer"
},
{
question: "如何获取技术支持?",
answer: "我们提供7*24小时技术支持服务您可以通过电话、邮件或在线咨询等方式联系我们的技术支持团队。"
questionKey: "contact.faq.items.q2.question",
answerKey: "contact.faq.items.q2.answer"
},
{
question: "如何计算使用成本?",
answer: "我们提供详细的成本评估服务,可以根据您的具体使用场景和需求,为您提供准确的成本预估和优化建议。"
questionKey: "contact.faq.items.q3.question",
answerKey: "contact.faq.items.q3.answer"
},
{
question: "如何申请试用服务?",
answer: "您可以通过在线咨询或直接联系我们的销售团队申请AWS云服务的试用。我们将为您提供专业的试用方案和技术支持。"
questionKey: "contact.faq.items.q4.question",
answerKey: "contact.faq.items.q4.answer"
}
];
const form = reactive({
@ -91,12 +93,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
const _component_NotificationToast = _sfc_main$2;
_push(`<div${ssrRenderAttrs(_attrs)}>`);
_push(ssrRenderComponent(_component_HeroBanner, {
title: "联系我们",
subtitle: "随时欢迎您的咨询,我们将为您提供专业的云服务解决方案"
title: _ctx.$t("contact.hero.title"),
subtitle: _ctx.$t("contact.hero.subtitle")
}, null, _parent));
_push(`<section class="section"><div class="container"><div class="grid md:grid-cols-3 gap-8 mb-16"><!--[-->`);
ssrRenderList(contactMethods, (contact, 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-20 h-20 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-secondary text-3xl", contact.icon])}"></i></div><h3 class="text-2xl font-semibold mb-4 text-center">${ssrInterpolate(contact.title)}</h3><p class="text-gray-600 mb-2 text-center">${ssrInterpolate(contact.subtitle)}</p><p class="text-2xl font-semibold text-secondary text-center">${ssrInterpolate(contact.content)}</p>`);
_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-20 h-20 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-secondary text-3xl", contact.icon])}"></i></div><h3 class="text-2xl font-semibold mb-4 text-center">${ssrInterpolate(_ctx.$t(contact.titleKey))}</h3><p class="text-gray-600 mb-2 text-center">${ssrInterpolate(_ctx.$t(contact.subtitleKey))}</p><p class="text-2xl font-semibold text-secondary text-center">${ssrInterpolate(_ctx.$t(contact.contentKey))}</p>`);
if (contact.type === "wechat") {
_push(`<div class="w-32 h-32 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-lg mx-auto flex items-center justify-center mt-4"><i class="fas fa-qrcode text-6xl text-secondary"></i></div>`);
} else {
@ -104,26 +106,26 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}
_push(`</div>`);
});
_push(`<!--]--></div><div class="grid md:grid-cols-2 gap-12"><div class="bg-white p-8 rounded-lg shadow-lg"><h2 class="text-3xl font-bold mb-8 text-center">在线咨询</h2><form class="space-y-6"><div class="grid md:grid-cols-2 gap-6"><div><label class="block text-sm font-medium text-gray-700 mb-2" for="name"> 姓名 <span class="text-red-500">*</span></label><input type="text" id="name"${ssrRenderAttr("value", form.name)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"></div><div><label class="block text-sm font-medium text-gray-700 mb-2" for="company"> 公司名称 <span class="text-red-500">*</span></label><input type="text" id="company"${ssrRenderAttr("value", form.company)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"></div></div><div class="grid md:grid-cols-2 gap-6"><div><label class="block text-sm font-medium text-gray-700 mb-2" for="email"> 邮箱 <span class="text-red-500">*</span></label><input type="email" id="email"${ssrRenderAttr("value", form.email)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"></div><div><label class="block text-sm font-medium text-gray-700 mb-2" for="phone"> 电话 <span class="text-red-500">*</span></label><input type="tel" id="phone"${ssrRenderAttr("value", form.phone)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"></div></div><div><label class="block text-sm font-medium text-gray-700 mb-2" for="service"> 咨询服务 <span class="text-red-500">*</span></label><select id="service" required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"><option value=""${ssrIncludeBooleanAttr(Array.isArray(form.service) ? ssrLooseContain(form.service, "") : ssrLooseEqual(form.service, "")) ? " selected" : ""}>请选择咨询服务</option><!--[-->`);
_push(`<!--]--></div><div class="grid md:grid-cols-2 gap-12"><div class="bg-white p-8 rounded-lg shadow-lg"><h2 class="text-3xl font-bold mb-8 text-center">${ssrInterpolate(_ctx.$t("contact.form.title"))}</h2><form class="space-y-6"><div class="grid md:grid-cols-2 gap-6"><div><label class="block text-sm font-medium text-gray-700 mb-2" for="name">${ssrInterpolate(_ctx.$t("contact.form.name"))} <span class="text-red-500">*</span></label><input type="text" id="name"${ssrRenderAttr("value", form.name)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"></div><div><label class="block text-sm font-medium text-gray-700 mb-2" for="company">${ssrInterpolate(_ctx.$t("contact.form.company"))} <span class="text-red-500">*</span></label><input type="text" id="company"${ssrRenderAttr("value", form.company)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"></div></div><div class="grid md:grid-cols-2 gap-6"><div><label class="block text-sm font-medium text-gray-700 mb-2" for="email">${ssrInterpolate(_ctx.$t("contact.form.email"))} <span class="text-red-500">*</span></label><input type="email" id="email"${ssrRenderAttr("value", form.email)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"></div><div><label class="block text-sm font-medium text-gray-700 mb-2" for="phone">${ssrInterpolate(_ctx.$t("contact.form.phone"))} <span class="text-red-500">*</span></label><input type="tel" id="phone"${ssrRenderAttr("value", form.phone)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"></div></div><div><label class="block text-sm font-medium text-gray-700 mb-2" for="service">${ssrInterpolate(_ctx.$t("contact.form.service"))} <span class="text-red-500">*</span></label><select id="service" required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"><option value=""${ssrIncludeBooleanAttr(Array.isArray(form.service) ? ssrLooseContain(form.service, "") : ssrLooseEqual(form.service, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("contact.form.placeholders.selectService"))}</option><!--[-->`);
ssrRenderList(services, (service, index) => {
_push(`<option${ssrRenderAttr("value", service.value)}${ssrIncludeBooleanAttr(Array.isArray(form.service) ? ssrLooseContain(form.service, service.value) : ssrLooseEqual(form.service, service.value)) ? " selected" : ""}>${ssrInterpolate(service.label)}</option>`);
_push(`<option${ssrRenderAttr("value", service.value)}${ssrIncludeBooleanAttr(Array.isArray(form.service) ? ssrLooseContain(form.service, service.value) : ssrLooseEqual(form.service, service.value)) ? " selected" : ""}>${ssrInterpolate(_ctx.$t(service.labelKey))}</option>`);
});
_push(`<!--]--></select></div><div><label class="block text-sm font-medium text-gray-700 mb-2" for="message"> 咨询内容 <span class="text-red-500">*</span></label><textarea id="message" rows="4" required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300">${ssrInterpolate(form.message)}</textarea></div><button type="submit"${ssrIncludeBooleanAttr(submitting.value) ? " disabled" : ""} class="${ssrRenderClass([
_push(`<!--]--></select></div><div><label class="block text-sm font-medium text-gray-700 mb-2" for="message">${ssrInterpolate(_ctx.$t("contact.form.message"))} <span class="text-red-500">*</span></label><textarea id="message" rows="4" required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300">${ssrInterpolate(form.message)}</textarea></div><button type="submit"${ssrIncludeBooleanAttr(submitting.value) ? " disabled" : ""} class="${ssrRenderClass([
"w-full py-4 px-6 rounded-lg text-white text-lg font-semibold",
submitting.value ? "bg-gray-400" : "bg-secondary hover:bg-secondary/90 transition-colors duration-300"
])}">`);
if (submitting.value) {
_push(`<span><i class="fas fa-spinner fa-spin mr-2"></i>提交中... </span>`);
_push(`<span><i class="fas fa-spinner fa-spin mr-2"></i>${ssrInterpolate(_ctx.$t("contact.form.submitting"))}</span>`);
} else {
_push(`<span>提交咨询</span>`);
_push(`<span>${ssrInterpolate(_ctx.$t("contact.form.submit"))}</span>`);
}
_push(`</button></form></div><div><div class="bg-white p-8 rounded-lg shadow-lg mb-8"><h2 class="text-3xl font-bold mb-8 text-center">公司地址</h2><div class="space-y-6"><!--[-->`);
_push(`</button></form></div><div><div class="bg-white p-8 rounded-lg shadow-lg mb-8"><h2 class="text-3xl font-bold mb-8 text-center">${ssrInterpolate(_ctx.$t("contact.companyInfo.title"))}</h2><div class="space-y-6"><!--[-->`);
ssrRenderList(companyInfo, (info, index) => {
_push(`<div class="flex items-start"><div class="w-12 h-12 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mr-4"><i class="${ssrRenderClass(["text-secondary text-xl", info.icon])}"></i></div><div><h4 class="text-xl font-semibold mb-2">${ssrInterpolate(info.title)}</h4><p class="text-gray-600">${ssrInterpolate(info.content)}</p></div></div>`);
_push(`<div class="flex items-start"><div class="w-12 h-12 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mr-4"><i class="${ssrRenderClass(["text-secondary text-xl", info.icon])}"></i></div><div><h4 class="text-xl font-semibold mb-2">${ssrInterpolate(_ctx.$t(info.titleKey))}</h4><p class="text-gray-600">${ssrInterpolate(_ctx.$t(info.contentKey))}</p></div></div>`);
});
_push(`<!--]--></div></div><div class="w-full h-96 rounded-lg shadow-lg overflow-hidden bg-gray-200 flex items-center justify-center"><i class="fas fa-map-marked-alt text-6xl text-gray-400"></i><span class="ml-4 text-gray-500">地图加载位置</span></div></div></div></div></section><section class="section bg-gray-50"><div class="container"><h2 class="text-4xl font-bold text-center mb-6">常见问题</h2><p class="text-xl text-center text-gray-600 mb-12">解答您最关心的问题</p><div class="grid md:grid-cols-2 gap-8"><!--[-->`);
_push(`<!--]--></div></div><div class="w-full h-96 rounded-lg shadow-lg overflow-hidden bg-gray-200 flex items-center justify-center"><i class="fas fa-map-marked-alt text-6xl text-gray-400"></i><span class="ml-4 text-gray-500">地图加载位置</span></div></div></div></div></section><section class="section bg-gray-50"><div class="container"><h2 class="text-4xl font-bold text-center mb-6">${ssrInterpolate(_ctx.$t("contact.faq.title"))}</h2><p class="text-xl text-center text-gray-600 mb-12">${ssrInterpolate(_ctx.$t("contact.faq.subtitle"))}</p><div class="grid md:grid-cols-2 gap-8"><!--[-->`);
ssrRenderList(faqs, (faq, index) => {
_push(`<div class="bg-white p-8 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1"><h3 class="text-2xl font-semibold mb-4">${ssrInterpolate(faq.question)}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(faq.answer)}</p></div>`);
_push(`<div class="bg-white p-8 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1"><h3 class="text-2xl font-semibold mb-4">${ssrInterpolate(_ctx.$t(faq.questionKey))}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t(faq.answerKey))}</p></div>`);
});
_push(`<!--]--></div></div></section>`);
_push(ssrRenderComponent(_component_NotificationToast, {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,76 +1,78 @@
import "../components/HeroBanner.vue.mjs";
import __nuxt_component_0 from "../node_modules/nuxt/dist/app/components/nuxt-link.mjs";
import { defineComponent, withCtx, createVNode, createTextVNode } from "vue";
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrInterpolate } from "vue/server-renderer";
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",
title: "安全可靠",
description: "AWS提供业界领先的安全服务包括加密、防火墙和身份验证保障您的数据安全"
titleKey: "home.features.security.title",
descriptionKey: "home.features.security.description"
},
{
icon: "fas fa-bolt",
title: "高性能",
description: "全球数据中心网络,低延迟高带宽,确保您的应用程序高效运行"
titleKey: "home.features.performance.title",
descriptionKey: "home.features.performance.description"
},
{
icon: "fas fa-dollar-sign",
title: "成本优化",
description: "按需付费模式无需前期投资降低IT运营成本"
titleKey: "home.features.cost.title",
descriptionKey: "home.features.cost.description"
}
];
const services = [
{
icon: "fas fa-check-circle",
title: "官方授权",
description: "我们是AWS官方授权的合作伙伴可提供正规授权和发票"
titleKey: "home.services.official.title",
descriptionKey: "home.services.official.description"
},
{
icon: "fas fa-percentage",
title: "价格优势",
description: "相比直接采购,我们能提供更具竞争力的价格和灵活的付款方式"
titleKey: "home.services.price.title",
descriptionKey: "home.services.price.description"
},
{
icon: "fas fa-headset",
title: "技术支持",
description: "专业的技术团队提供咨询、部署和运维服务,解决您的技术难题"
titleKey: "home.services.support.title",
descriptionKey: "home.services.support.description"
},
{
icon: "fas fa-graduation-cap",
title: "培训服务",
description: "为您的团队提供专业的AWS技术培训提升技术能力"
titleKey: "home.services.training.title",
descriptionKey: "home.services.training.description"
}
];
const products = [
{
icon: "fas fa-server",
title: "EC2 云服务器",
description: "可扩展的计算能力,适用于各种工作负载,从小型网站到企业级应用"
titleKey: "home.products.ec2.title",
descriptionKey: "home.products.ec2.description"
},
{
icon: "fas fa-database",
title: "S3 对象存储",
description: "安全、可靠的对象存储服务,适用于备份、归档和数据湖等场景"
titleKey: "home.products.s3.title",
descriptionKey: "home.products.s3.description"
},
{
icon: "fas fa-network-wired",
title: "RDS 关系型数据库",
description: "易于部署和管理的关系型数据库服务,支持多种主流数据库引擎"
titleKey: "home.products.rds.title",
descriptionKey: "home.products.rds.description"
}
];
const cases = [
{
title: "某金融科技公司",
description: "通过迁移到AWS云服务该公司将应用响应时间缩短了40%并节省了30%的IT运营成本"
titleKey: "home.cases.fintech.title",
descriptionKey: "home.cases.fintech.description"
},
{
title: "某电商平台",
description: "利用AWS弹性伸缩服务轻松应对销售高峰期流量提高了用户体验和订单转化率"
titleKey: "home.cases.ecommerce.title",
descriptionKey: "home.cases.ecommerce.description"
}
];
return (_ctx, _push, _parent, _attrs) => {
@ -78,50 +80,50 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
const _component_NuxtLink = __nuxt_component_0;
_push(`<div${ssrRenderAttrs(_attrs)}>`);
_push(ssrRenderComponent(_component_HeroBanner, {
title: "AWS云服务器专业代理商",
subtitle: "为您的企业提供专业的AWS云服务解决方案助力数字化转型"
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}>了解AWS优势</a><a href="#contact" class="btn-secondary"${_scopeId}>联系顾问</a></div>`);
_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"
}, "了解AWS优势"),
}, 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">AWS产品与服务</h2><p class="text-xl md:text-[20px] font-light text-[#333333] mb-4 leading-relaxed">全面的云计算产品线,满足您的各种业务需求</p><p class="text-base md:text-[16px] text-[#333333] leading-relaxed">作为AWS授权代理商我们提供全系列AWS产品和服务并为您提供专业的咨询<br>和支持,帮助您选择最适合的产品组合。</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
_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(feature.title)}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(feature.description)}</p></div>`);
_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">我们的服务优势</h2><p class="text-xl text-gray-600 leading-relaxed">作为AWS授权合作伙伴我们提供全方位的专业服务</p></div><div class="grid md:grid-cols-2 gap-8"><!--[-->`);
_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(service.title)}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(service.description)}</p></div></div></div>`);
_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">AWS核心产品服务</h2><p class="text-xl text-gray-600 leading-relaxed">全面的云服务产品线,满足各种业务需求</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
_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(product.title)}</h3><p class="text-gray-600 leading-relaxed mb-6">${ssrInterpolate(product.description)}</p>`);
_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(` 了解详情 <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
_push2(`${ssrInterpolate(_ctx.$t("home.products.detail"))} <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
} else {
return [
createTextVNode(" 了解详情 "),
createTextVNode(toDisplayString(_ctx.$t("home.products.detail")) + " ", 1),
createVNode("i", { class: "fas fa-arrow-right ml-2" })
];
}
@ -137,29 +139,29 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` 查看全部AWS产品 <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
_push2(`${ssrInterpolate(_ctx.$t("home.products.viewAll"))} <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
} else {
return [
createTextVNode(" 查看全部AWS产品 "),
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">成功客户案例</h2><p class="text-xl text-center text-gray-600 mb-12">看看其他企业如何利用AWS云服务提升业务价值</p><div class="grid md:grid-cols-2 gap-8"><!--[-->`);
_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(case_item.title)}</h3><p class="text-gray-600 mb-4">${ssrInterpolate(case_item.description)}</p>`);
_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(`阅读详情`);
_push2(`${ssrInterpolate(_ctx.$t("home.cases.readMore"))}`);
} else {
return [
createTextVNode("阅读详情")
createTextVNode(toDisplayString(_ctx.$t("home.cases.readMore")), 1)
];
}
}),

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,102 +1,104 @@
import "../components/HeroBanner.vue.mjs";
import __nuxt_component_0 from "../node_modules/nuxt/dist/app/components/nuxt-link.mjs";
import { defineComponent, withCtx, createTextVNode, createVNode } from "vue";
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrInterpolate } from "vue/server-renderer";
import { defineComponent, withCtx, createTextVNode, createVNode, toDisplayString } 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: "products",
__ssrInlineRender: true,
setup(__props) {
const { t } = useI18n();
const productCategories = [
{
icon: "fas fa-server",
name: "计算服务",
description: "包括EC2、Lambda等提供灵活的计算能力"
nameKey: "products.categories.compute.name",
descriptionKey: "products.categories.compute.description"
},
{
icon: "fas fa-database",
name: "存储服务",
description: "包括S3、EBS等提供可靠的数据存储解决方案"
nameKey: "products.categories.storage.name",
descriptionKey: "products.categories.storage.description"
},
{
icon: "fas fa-sitemap",
name: "网络服务",
description: "包括VPC、Route 53等提供安全灵活的网络管理"
nameKey: "products.categories.network.name",
descriptionKey: "products.categories.network.description"
},
{
icon: "fas fa-shield-alt",
name: "安全与身份",
description: "包括IAM、GuardDuty等提供全面的安全防护"
nameKey: "products.categories.security.name",
descriptionKey: "products.categories.security.description"
},
{
icon: "fas fa-chart-line",
name: "监控与管理",
description: "包括CloudWatch、Systems Manager等提供全面的监控和管理工具"
nameKey: "products.categories.monitoring.name",
descriptionKey: "products.categories.monitoring.description"
},
{
icon: "fas fa-robot",
name: "人工智能",
description: "包括SageMaker、Rekognition等提供先进的AI服务"
nameKey: "products.categories.ai.name",
descriptionKey: "products.categories.ai.description"
}
];
const products = [
{
icon: "fas fa-server",
name: "Amazon EC2",
description: "Amazon Elastic Compute Cloud (EC2) 是一种提供可扩展计算能力的网络服务,专为云端计算设计。使用 EC2 可消除前期硬件投资,因此您能够更快地开发和部署应用程序。",
nameKey: "products.productList.ec2.name",
descriptionKey: "products.productList.ec2.description",
features: [
"灵活选择实例类型,适应不同应用场景",
"按秒计费,降低运营成本",
"自动扩展,应对业务峰值",
"高可用性和可靠性保障"
"products.productList.ec2.features[0]",
"products.productList.ec2.features[1]",
"products.productList.ec2.features[2]",
"products.productList.ec2.features[3]"
],
pricing: "按需付费起价低至¥0.1/小时"
pricing: t("products.productList.ec2.pricing")
},
{
icon: "fas fa-database",
name: "Amazon S3",
description: "Amazon Simple Storage Service (S3) 是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能。这意味着任何规模的企业都可以存储和保护任意数量的数据。",
nameKey: "products.productList.s3.name",
descriptionKey: "products.productList.s3.description",
features: [
"无限容量扩展,适合任何规模的数据存储",
"99.999999999% 的数据持久性",
"多种存储类别,优化成本",
"强大的访问控制和加密功能"
"products.productList.s3.features[0]",
"products.productList.s3.features[1]",
"products.productList.s3.features[2]",
"products.productList.s3.features[3]"
],
pricing: "按存储量和请求数付费起价低至¥0.2/GB/月"
pricing: t("products.productList.s3.pricing")
},
{
icon: "fas fa-table",
name: "Amazon RDS",
description: "Amazon Relational Database Service (RDS) 使在云中设置、操作和扩展关系数据库变得简单。它提供经济高效且可调整容量的容量,同时自动执行耗时的管理任务。",
nameKey: "products.productList.rds.name",
descriptionKey: "products.productList.rds.description",
features: [
"支持多种数据库引擎MySQL、PostgreSQL、Oracle等",
"自动备份和恢复功能",
"高可用性主备部署",
"自动软件更新和维护"
"products.productList.rds.features[0]",
"products.productList.rds.features[1]",
"products.productList.rds.features[2]",
"products.productList.rds.features[3]"
],
pricing: "按实例类型计费起价低至¥0.5/小时"
pricing: t("products.productList.rds.pricing")
}
];
const advantages = [
{
icon: "fas fa-tachometer-alt",
title: "快速部署",
description: "专业的团队帮助您快速部署AWS产品缩短上线时间"
titleKey: "products.advantages.deployment.title",
descriptionKey: "products.advantages.deployment.description"
},
{
icon: "fas fa-hand-holding-usd",
title: "成本优化",
description: "根据业务需求,为您定制最优成本方案,避免资源浪费"
titleKey: "products.advantages.cost.title",
descriptionKey: "products.advantages.cost.description"
},
{
icon: "fas fa-lock",
title: "安全保障",
description: "提供全面的安全评估和最佳实践,保障业务安全"
titleKey: "products.advantages.security.title",
descriptionKey: "products.advantages.security.description"
},
{
icon: "fas fa-headset",
title: "专业支持",
description: "7*24小时技术支持解决您使用过程中的各种问题"
titleKey: "products.advantages.support.title",
descriptionKey: "products.advantages.support.description"
}
];
return (_ctx, _push, _parent, _attrs) => {
@ -104,36 +106,36 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
const _component_NuxtLink = __nuxt_component_0;
_push(`<div${ssrRenderAttrs(_attrs)}>`);
_push(ssrRenderComponent(_component_HeroBanner, {
title: "AWS产品",
subtitle: "全面的云计算产品线,满足您的各种业务需求"
title: _ctx.$t("products.hero.title"),
subtitle: _ctx.$t("products.hero.subtitle")
}, null, _parent));
_push(`<section class="section"><div class="container"><div class="max-w-4xl mx-auto text-center mb-16"><h2 class="text-4xl font-bold text-[#333333] mb-4">AWS全线产品</h2><p class="text-xl text-gray-600 leading-relaxed">覆盖计算、存储、数据库、网络、安全等多个领域</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
_push(`<section class="section"><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("products.categories.title"))}</h2><p class="text-xl text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t("products.categories.subtitle"))}</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
ssrRenderList(productCategories, (category, 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", category.icon])}"></i></div><h3 class="text-xl font-semibold mb-4">${ssrInterpolate(category.name)}</h3><p class="text-gray-600 leading-relaxed mb-6">${ssrInterpolate(category.description)}</p><a href="#product-list" class="inline-flex items-center text-secondary hover:text-secondary/90"> 查看产品 <i class="fas fa-arrow-right ml-2"></i></a></div>`);
_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", category.icon])}"></i></div><h3 class="text-xl font-semibold mb-4">${ssrInterpolate(_ctx.$t(category.nameKey))}</h3><p class="text-gray-600 leading-relaxed mb-6">${ssrInterpolate(_ctx.$t(category.descriptionKey))}</p><a href="#product-list" class="inline-flex items-center text-secondary hover:text-secondary/90">${ssrInterpolate(_ctx.$t("products.categories.viewProducts"))} <i class="fas fa-arrow-right ml-2"></i></a></div>`);
});
_push(`<!--]--></div></div></section><section id="product-list" 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">热门产品服务</h2><p class="text-xl text-gray-600 leading-relaxed">AWS核心产品详细介绍</p></div><div class="space-y-12"><!--[-->`);
_push(`<!--]--></div></div></section><section id="product-list" 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("products.productList.title"))}</h2><p class="text-xl text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t("products.productList.subtitle"))}</p></div><div class="space-y-12"><!--[-->`);
ssrRenderList(products, (product, index) => {
_push(`<div class="bg-white rounded-lg shadow-lg overflow-hidden"><div class="grid md:grid-cols-3"><div class="bg-gradient-to-br from-secondary/20 to-secondary/10 flex items-center justify-center p-8"><i class="${ssrRenderClass(["text-8xl text-secondary", product.icon])}"></i></div><div class="md:col-span-2 p-8"><h3 class="text-2xl font-semibold mb-4">${ssrInterpolate(product.name)}</h3><p class="text-gray-600 leading-relaxed mb-6">${ssrInterpolate(product.description)}</p><div class="mb-6"><h4 class="text-lg font-semibold mb-2">产品优势</h4><ul class="space-y-2"><!--[-->`);
_push(`<div class="bg-white rounded-lg shadow-lg overflow-hidden"><div class="grid md:grid-cols-3"><div class="bg-gradient-to-br from-secondary/20 to-secondary/10 flex items-center justify-center p-8"><i class="${ssrRenderClass(["text-8xl text-secondary", product.icon])}"></i></div><div class="md:col-span-2 p-8"><h3 class="text-2xl font-semibold mb-4">${ssrInterpolate(_ctx.$t(product.nameKey))}</h3><p class="text-gray-600 leading-relaxed mb-6">${ssrInterpolate(_ctx.$t(product.descriptionKey))}</p><div class="mb-6"><h4 class="text-lg font-semibold mb-2">${ssrInterpolate(_ctx.$t("products.productList.advantages"))}</h4><ul class="space-y-2"><!--[-->`);
ssrRenderList(product.features, (feature, idx) => {
_push(`<li class="flex items-start"><i class="fas fa-check-circle text-green-500 mt-1 mr-2"></i><span class="text-gray-600">${ssrInterpolate(feature)}</span></li>`);
_push(`<li class="flex items-start"><i class="fas fa-check-circle text-green-500 mt-1 mr-2"></i><span class="text-gray-600">${ssrInterpolate(_ctx.$t(feature))}</span></li>`);
});
_push(`<!--]--></ul></div><div class="flex justify-between items-center"><a href="#contact" class="btn-primary">咨询详情</a><span class="text-gray-500">价格: ${ssrInterpolate(product.pricing)}</span></div></div></div></div>`);
_push(`<!--]--></ul></div><div class="flex justify-between items-center"><a href="#contact" class="btn-primary">${ssrInterpolate(_ctx.$t("products.productList.inquiry"))}</a><span class="text-gray-500">${ssrInterpolate(_ctx.$t("products.productList.pricing"))}: ${ssrInterpolate(product.pricing)}</span></div></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">我们的优势</h2><p class="text-xl text-gray-600 leading-relaxed">作为AWS授权合作伙伴我们提供专业的AWS产品咨询和部署服务</p></div><div class="grid md:grid-cols-4 gap-8"><!--[-->`);
_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("products.advantages.title"))}</h2><p class="text-xl text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t("products.advantages.subtitle"))}</p></div><div class="grid md:grid-cols-4 gap-8"><!--[-->`);
ssrRenderList(advantages, (advantage, index) => {
_push(`<div class="bg-white p-8 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1 text-center"><div class="w-16 h-16 bg-accent/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-accent text-2xl", advantage.icon])}"></i></div><h3 class="text-xl font-semibold mb-4">${ssrInterpolate(advantage.title)}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(advantage.description)}</p></div>`);
_push(`<div class="bg-white p-8 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1 text-center"><div class="w-16 h-16 bg-accent/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-accent text-2xl", advantage.icon])}"></i></div><h3 class="text-xl font-semibold mb-4">${ssrInterpolate(_ctx.$t(advantage.titleKey))}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t(advantage.descriptionKey))}</p></div>`);
});
_push(`<!--]--></div></div></section><section id="contact" class="py-16 bg-primary text-white"><div class="container text-center"><h2 class="text-4xl font-bold mb-6">想了解更多产品信息?</h2><p class="text-xl mb-8 max-w-2xl mx-auto leading-relaxed">我们的AWS产品专家将为您提供详细的产品介绍和价格咨询</p>`);
_push(`<!--]--></div></div></section><section id="contact" class="py-16 bg-primary text-white"><div class="container text-center"><h2 class="text-4xl font-bold mb-6">${ssrInterpolate(_ctx.$t("products.contact.title"))}</h2><p class="text-xl mb-8 max-w-2xl mx-auto leading-relaxed">${ssrInterpolate(_ctx.$t("products.contact.subtitle"))}</p>`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/contact",
class: "inline-flex items-center bg-white text-black px-8 py-4 rounded-lg hover:bg-gray-100 transition-colors duration-300 text-lg font-semibold"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` 联系产品顾问 <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
_push2(`${ssrInterpolate(_ctx.$t("products.contact.button"))} <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
} else {
return [
createTextVNode(" 联系产品顾问 "),
createTextVNode(toDisplayString(_ctx.$t("products.contact.button")) + " ", 1),
createVNode("i", { class: "fas fa-arrow-right ml-2" })
];
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,149 +1,170 @@
import "../components/HeroBanner.vue.mjs";
import __nuxt_component_0 from "../node_modules/nuxt/dist/app/components/nuxt-link.mjs";
import { defineComponent, withCtx, createTextVNode, createVNode } from "vue";
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrInterpolate, ssrRenderAttr } from "vue/server-renderer";
import { defineComponent, withCtx, createTextVNode, createVNode, toDisplayString } from "vue";
import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderList, ssrRenderClass, ssrRenderAttr } from "vue/server-renderer";
import { useI18n } from "vue-i18n";
import _sfc_main$1 from "../components/HeroBanner.vue2.mjs";
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "solutions",
__ssrInlineRender: true,
setup(__props) {
const { t } = useI18n();
const solutionCategories = [
{
id: "web-hosting",
icon: "fas fa-globe",
title: "网站托管",
description: "高性能、高可用的网站托管解决方案适用于各类网站和Web应用"
titleKey: "solutions.solutionItems.webHosting.title",
descriptionKey: "solutions.solutionItems.webHosting.description"
},
{
id: "cloud-migration",
icon: "fas fa-cloud-upload-alt",
title: "企业上云",
description: "安全、平稳的企业IT系统云迁移方案最小化业务中断风险"
titleKey: "solutions.solutionItems.cloudMigration.title",
descriptionKey: "solutions.solutionItems.cloudMigration.description"
},
{
id: "disaster-recovery",
icon: "fas fa-shield-alt",
title: "灾备方案",
description: "构建可靠的灾难恢复系统,保障业务连续性和数据安全"
titleKey: "solutions.solutionItems.disasterRecovery.title",
descriptionKey: "solutions.solutionItems.disasterRecovery.description"
},
{
id: "big-data",
icon: "fas fa-chart-pie",
title: "大数据分析",
description: "基于AWS大数据服务的数据处理和分析解决方案"
titleKey: "solutions.solutionItems.bigData.title",
descriptionKey: "solutions.solutionItems.bigData.description"
},
{
id: "microservices",
icon: "fas fa-cubes",
title: "微服务架构",
description: "基于容器和无服务器技术的现代应用架构解决方案"
titleKey: "solutions.solutionItems.microservices.title",
descriptionKey: "solutions.solutionItems.microservices.description"
},
{
id: "ai-ml",
icon: "fas fa-brain",
title: "AI/机器学习",
description: "利用AWS AI/ML服务快速构建智能应用的解决方案"
titleKey: "solutions.solutionItems.aiMl.title",
descriptionKey: "solutions.solutionItems.aiMl.description"
}
];
const solutions = [
{
id: "web-hosting",
icon: "fas fa-globe",
title: "网站托管解决方案",
description: "基于AWS云服务的高性能、高可用、安全的网站托管解决方案适用于企业官网、电子商务网站、内容管理系统等各类Web应用。利用AWS全球基础设施和CDN服务为全球用户提供低延迟的访问体验。",
titleKey: "solutions.solutionDetails.webHosting.title",
descriptionKey: "solutions.solutionDetails.webHosting.description",
benefits: [
"高可用性架构99.99%服务可用性保障",
"自动扩展能力,应对流量峰值",
"CDN加速全球用户低延迟访问",
"完善的安全防护包括WAF、DDoS防护等",
"按需付费,降低运营成本"
"solutions.solutionDetails.webHosting.benefits[0]",
"solutions.solutionDetails.webHosting.benefits[1]",
"solutions.solutionDetails.webHosting.benefits[2]",
"solutions.solutionDetails.webHosting.benefits[3]",
"solutions.solutionDetails.webHosting.benefits[4]"
],
industries: ["电子商务", "媒体", "教育", "企业服务"]
industries: [
"solutions.solutionDetails.webHosting.industries[0]",
"solutions.solutionDetails.webHosting.industries[1]",
"solutions.solutionDetails.webHosting.industries[2]",
"solutions.solutionDetails.webHosting.industries[3]"
]
},
{
id: "cloud-migration",
icon: "fas fa-cloud-upload-alt",
title: "企业上云解决方案",
description: "为传统IT基础设施提供安全、可靠的云迁移路径帮助企业实现从本地数据中心到AWS云的平稳过渡。我们的解决方案涵盖评估、规划、迁移和优化的全过程最大限度地减少业务中断和迁移风险。",
titleKey: "solutions.solutionDetails.cloudMigration.title",
descriptionKey: "solutions.solutionDetails.cloudMigration.description",
benefits: [
"专业的迁移评估和规划服务",
"多种迁移策略:重新托管、重新平台化、重构等",
"数据安全迁移,确保零数据丢失",
"迁移过程中的业务连续性保障",
"迁移后的性能优化和成本控制"
"solutions.solutionDetails.cloudMigration.benefits[0]",
"solutions.solutionDetails.cloudMigration.benefits[1]",
"solutions.solutionDetails.cloudMigration.benefits[2]",
"solutions.solutionDetails.cloudMigration.benefits[3]",
"solutions.solutionDetails.cloudMigration.benefits[4]"
],
industries: ["金融", "制造", "零售", "医疗", "政府"]
industries: [
"solutions.solutionDetails.cloudMigration.industries[0]",
"solutions.solutionDetails.cloudMigration.industries[1]",
"solutions.solutionDetails.cloudMigration.industries[2]",
"solutions.solutionDetails.cloudMigration.industries[3]",
"solutions.solutionDetails.cloudMigration.industries[4]"
]
},
{
id: "disaster-recovery",
icon: "fas fa-shield-alt",
title: "灾备解决方案",
description: "基于AWS云服务构建可靠的灾难恢复系统帮助企业应对各种灾难情况下的业务连续性挑战。我们提供从灾备规划到实施、测试和运维的一站式服务保障企业数据安全和业务连续性。",
titleKey: "solutions.solutionDetails.disasterRecovery.title",
descriptionKey: "solutions.solutionDetails.disasterRecovery.description",
benefits: [
"多区域架构,提供地理级别的灾难恢复能力",
"灵活的恢复点目标(RPO)和恢复时间目标(RTO)选项",
"自动化的灾难恢复流程,减少人为错误",
"定期的灾备演练和测试服务",
"成本优化的灾备架构设计"
"solutions.solutionDetails.disasterRecovery.benefits[0]",
"solutions.solutionDetails.disasterRecovery.benefits[1]",
"solutions.solutionDetails.disasterRecovery.benefits[2]",
"solutions.solutionDetails.disasterRecovery.benefits[3]",
"solutions.solutionDetails.disasterRecovery.benefits[4]"
],
industries: ["金融", "医疗", "能源", "电信", "政府"]
industries: [
"solutions.solutionDetails.disasterRecovery.industries[0]",
"solutions.solutionDetails.disasterRecovery.industries[1]",
"solutions.solutionDetails.disasterRecovery.industries[2]",
"solutions.solutionDetails.disasterRecovery.industries[3]",
"solutions.solutionDetails.disasterRecovery.industries[4]"
]
},
{
id: "big-data",
icon: "fas fa-chart-pie",
title: "大数据分析解决方案",
description: "利用AWS丰富的大数据服务构建高效、可扩展的数据处理和分析平台。我们的解决方案可以帮助企业从海量数据中提取价值支持数据仓库、实时分析、机器学习等多种大数据应用场景。",
titleKey: "solutions.solutionDetails.bigData.title",
descriptionKey: "solutions.solutionDetails.bigData.description",
benefits: [
"高性能的数据处理能力处理PB级数据",
"灵活的存储选项,优化成本和性能",
"实时数据处理和分析能力",
"与机器学习服务的无缝集成",
"可视化的数据分析工具"
"solutions.solutionDetails.bigData.benefits[0]",
"solutions.solutionDetails.bigData.benefits[1]",
"solutions.solutionDetails.bigData.benefits[2]",
"solutions.solutionDetails.bigData.benefits[3]",
"solutions.solutionDetails.bigData.benefits[4]"
],
industries: ["金融", "零售", "医疗", "制造", "物流"]
industries: [
"solutions.solutionDetails.bigData.industries[0]",
"solutions.solutionDetails.bigData.industries[1]",
"solutions.solutionDetails.bigData.industries[2]",
"solutions.solutionDetails.bigData.industries[3]",
"solutions.solutionDetails.bigData.industries[4]"
]
}
];
const implementationSteps = [
{
title: "需求分析",
description: "深入了解客户业务需求和技术环境,确定解决方案目标和范围"
titleKey: "solutions.implementation.steps.step1.title",
descriptionKey: "solutions.implementation.steps.step1.description"
},
{
title: "方案设计",
description: "基于需求分析设计适合的AWS云服务解决方案架构和实施计划"
titleKey: "solutions.implementation.steps.step2.title",
descriptionKey: "solutions.implementation.steps.step2.description"
},
{
title: "方案实施",
description: "按照实施计划部署和配置AWS云服务资源构建解决方案"
titleKey: "solutions.implementation.steps.step3.title",
descriptionKey: "solutions.implementation.steps.step3.description"
},
{
title: "测试验证",
description: "对实施的解决方案进行全面测试,确保功能、性能和安全满足要求"
titleKey: "solutions.implementation.steps.step4.title",
descriptionKey: "solutions.implementation.steps.step4.description"
},
{
title: "上线部署",
description: "解决方案正式上线,确保业务平稳过渡和系统稳定运行"
},
{
title: "运维支持",
description: "提供持续的技术支持和运维服务,保障解决方案长期稳定运行"
titleKey: "solutions.implementation.steps.step5.title",
descriptionKey: "solutions.implementation.steps.step5.description"
}
];
const caseStudies = [
{
title: "某电商平台",
industry: "电子商务",
description: "通过AWS云服务解决方案成功应对销售高峰提升了网站性能和用户体验同时降低了运营成本。"
titleKey: "solutions.cases.ecommerce.title",
industryKey: "solutions.cases.ecommerce.industry",
descriptionKey: "solutions.cases.ecommerce.description"
},
{
title: "某金融机构",
industry: "金融",
description: "采用AWS灾备解决方案构建了高可用的业务连续性系统满足了金融行业严格的监管要求。"
titleKey: "solutions.cases.finance.title",
industryKey: "solutions.cases.finance.industry",
descriptionKey: "solutions.cases.finance.description"
},
{
title: "某制造企业",
industry: "制造",
description: "通过企业上云解决方案成功将IT系统迁移至AWS云平台提高了系统灵活性降低了IT维护成本。"
titleKey: "solutions.cases.manufacturing.title",
industryKey: "solutions.cases.manufacturing.industry",
descriptionKey: "solutions.cases.manufacturing.description"
}
];
return (_ctx, _push, _parent, _attrs) => {
@ -151,45 +172,45 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
const _component_NuxtLink = __nuxt_component_0;
_push(`<div${ssrRenderAttrs(_attrs)}>`);
_push(ssrRenderComponent(_component_HeroBanner, {
title: "解决方案",
subtitle: "针对不同行业和业务场景的专业AWS云服务解决方案"
title: _ctx.$t("solutions.hero.title"),
subtitle: _ctx.$t("solutions.hero.subtitle")
}, null, _parent));
_push(`<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">AWS云解决方案</h2><p class="text-xl text-gray-600 leading-relaxed">基于AWS云服务为不同行业提供专业解决方案</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
_push(`<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("solutions.categories.title"))}</h2><p class="text-xl text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t("solutions.categories.subtitle"))}</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
ssrRenderList(solutionCategories, (category, index) => {
_push(`<div class="bg-white p-8 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1 text-center"><div class="w-20 h-20 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-secondary text-3xl", category.icon])}"></i></div><h3 class="text-xl font-semibold mb-4">${ssrInterpolate(category.title)}</h3><p class="text-gray-600 leading-relaxed mb-6">${ssrInterpolate(category.description)}</p><a${ssrRenderAttr("href", "#" + category.id)} class="inline-flex items-center text-secondary hover:text-secondary/90"> 查看详情 <i class="fas fa-arrow-right ml-2"></i></a></div>`);
_push(`<div class="bg-white p-8 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1 text-center"><div class="w-20 h-20 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-secondary text-3xl", category.icon])}"></i></div><h3 class="text-xl font-semibold mb-4">${ssrInterpolate(_ctx.$t(category.titleKey))}</h3><p class="text-gray-600 leading-relaxed mb-6">${ssrInterpolate(_ctx.$t(category.descriptionKey))}</p><a${ssrRenderAttr("href", "#" + category.id)} class="inline-flex items-center text-secondary hover:text-secondary/90">${ssrInterpolate(_ctx.$t("solutions.categories.viewDetails"))} <i class="fas fa-arrow-right ml-2"></i></a></div>`);
});
_push(`<!--]--></div></div></section><div class="space-y-16"><!--[-->`);
ssrRenderList(solutions, (solution, index) => {
_push(`<section${ssrRenderAttr("id", solution.id)} class="${ssrRenderClass([index % 2 === 0 ? "bg-gray-50" : "bg-white", "py-20"])}"><div class="container"><div class="grid md:grid-cols-2 gap-12 items-center"><div class="${ssrRenderClass(index % 2 === 1 ? "md:order-1" : "")}"><div class="bg-gradient-to-br from-secondary/20 to-secondary/10 h-80 rounded-lg flex items-center justify-center"><i class="${ssrRenderClass(["text-8xl text-secondary", solution.icon])}"></i></div></div><div><h2 class="text-4xl font-bold text-[#333333] mb-6">${ssrInterpolate(solution.title)}</h2><p class="text-gray-600 leading-relaxed mb-6">${ssrInterpolate(solution.description)}</p><div class="mb-8"><h4 class="text-lg font-semibold mb-4">解决方案优势</h4><ul class="space-y-3"><!--[-->`);
_push(`<section${ssrRenderAttr("id", solution.id)} class="${ssrRenderClass([index % 2 === 0 ? "bg-gray-50" : "bg-white", "py-20"])}"><div class="container"><div class="grid md:grid-cols-2 gap-12 items-center"><div class="${ssrRenderClass(index % 2 === 1 ? "md:order-1" : "")}"><div class="bg-gradient-to-br from-secondary/20 to-secondary/10 h-80 rounded-lg flex items-center justify-center"><i class="${ssrRenderClass(["text-8xl text-secondary", solution.icon])}"></i></div></div><div><h2 class="text-4xl font-bold text-[#333333] mb-6">${ssrInterpolate(_ctx.$t(solution.titleKey))}</h2><p class="text-gray-600 leading-relaxed mb-6">${ssrInterpolate(_ctx.$t(solution.descriptionKey))}</p><div class="mb-8"><h4 class="text-lg font-semibold mb-4">${ssrInterpolate(_ctx.$t("solutions.solutionDetails.advantages"))}</h4><ul class="space-y-3"><!--[-->`);
ssrRenderList(solution.benefits, (benefit, idx) => {
_push(`<li class="flex items-start"><i class="fas fa-check-circle text-green-500 mt-1 mr-3"></i><span class="text-gray-600">${ssrInterpolate(benefit)}</span></li>`);
_push(`<li class="flex items-start"><i class="fas fa-check-circle text-green-500 mt-1 mr-3"></i><span class="text-gray-600">${ssrInterpolate(_ctx.$t(benefit))}</span></li>`);
});
_push(`<!--]--></ul></div><div class="mb-8"><h4 class="text-lg font-semibold mb-4">适用行业</h4><div class="flex flex-wrap gap-2"><!--[-->`);
_push(`<!--]--></ul></div><div class="mb-8"><h4 class="text-lg font-semibold mb-4">${ssrInterpolate(_ctx.$t("solutions.solutionDetails.industries"))}</h4><div class="flex flex-wrap gap-2"><!--[-->`);
ssrRenderList(solution.industries, (industry, idx) => {
_push(`<span class="px-3 py-1 bg-gray-100 text-gray-700 rounded-full text-sm">${ssrInterpolate(industry)}</span>`);
_push(`<span class="px-3 py-1 bg-gray-100 text-gray-700 rounded-full text-sm">${ssrInterpolate(_ctx.$t(industry))}</span>`);
});
_push(`<!--]--></div></div><a href="#contact" class="btn-primary">咨询方案</a></div></div></div></section>`);
_push(`<!--]--></div></div><a href="#contact" class="btn-primary">${ssrInterpolate(_ctx.$t("solutions.solutionDetails.inquiry"))}</a></div></div></div></section>`);
});
_push(`<!--]--></div><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">解决方案实施流程</h2><p class="text-xl text-gray-600 leading-relaxed">专业、高效的项目实施流程,确保方案平稳落地</p></div><div class="relative"><div class="absolute left-1/2 top-8 bottom-8 w-1 bg-secondary/20 -translate-x-1/2 hidden md:block"></div><div class="space-y-12"><!--[-->`);
_push(`<!--]--></div><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("solutions.implementation.title"))}</h2><p class="text-xl text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t("solutions.implementation.subtitle"))}</p></div><div class="relative"><div class="absolute left-1/2 top-8 bottom-8 w-1 bg-secondary/20 -translate-x-1/2 hidden md:block"></div><div class="space-y-12"><!--[-->`);
ssrRenderList(implementationSteps, (step, index) => {
_push(`<div class="flex flex-col md:flex-row md:items-center relative"><div class="md:absolute md:left-1/2 md:-translate-x-1/2 z-10 w-12 h-12 bg-white rounded-full border-4 border-secondary flex items-center justify-center font-bold text-secondary mb-4 md:mb-0 mx-auto md:mx-0">${ssrInterpolate(index + 1)}</div><div class="${ssrRenderClass([
"bg-white p-6 rounded-lg shadow-md w-full md:w-5/12",
index % 2 === 0 ? "md:mr-auto" : "md:ml-auto"
])}"><h3 class="text-xl font-semibold mb-2">${ssrInterpolate(step.title)}</h3><p class="text-gray-600">${ssrInterpolate(step.description)}</p></div></div>`);
])}"><h3 class="text-xl font-semibold mb-2">${ssrInterpolate(_ctx.$t(step.titleKey))}</h3><p class="text-gray-600">${ssrInterpolate(_ctx.$t(step.descriptionKey))}</p></div></div>`);
});
_push(`<!--]--></div></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">客户成功案例</h2><p class="text-xl text-gray-600 leading-relaxed">我们的解决方案已成功应用于众多行业</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
_push(`<!--]--></div></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("solutions.cases.title"))}</h2><p class="text-xl text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t("solutions.cases.subtitle"))}</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
ssrRenderList(caseStudies, (case_item, 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-gray-200"></div><div class="p-6"><div class="flex justify-between items-center mb-4"><h3 class="text-xl font-semibold">${ssrInterpolate(case_item.title)}</h3><span class="px-3 py-1 bg-secondary/10 text-secondary text-sm rounded-full">${ssrInterpolate(case_item.industry)}</span></div><p class="text-gray-600 mb-6">${ssrInterpolate(case_item.description)}</p>`);
_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-gray-200"></div><div class="p-6"><div class="flex justify-between items-center mb-4"><h3 class="text-xl font-semibold">${ssrInterpolate(_ctx.$t(case_item.titleKey))}</h3><span class="px-3 py-1 bg-secondary/10 text-secondary text-sm rounded-full">${ssrInterpolate(_ctx.$t(case_item.industryKey))}</span></div><p class="text-gray-600 mb-6">${ssrInterpolate(_ctx.$t(case_item.descriptionKey))}</p>`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/cases",
class: "inline-flex items-center text-secondary hover:text-secondary/90"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` 查看详情 <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
_push2(`${ssrInterpolate(_ctx.$t("solutions.cases.viewDetails"))} <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
} else {
return [
createTextVNode(" 查看详情 "),
createTextVNode(toDisplayString(_ctx.$t("solutions.cases.viewDetails")) + " ", 1),
createVNode("i", { class: "fas fa-arrow-right ml-2" })
];
}
@ -198,17 +219,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}, _parent));
_push(`</div></div>`);
});
_push(`<!--]--></div></div></section><section id="contact" class="py-16 bg-primary text-white"><div class="container text-center"><h2 class="text-4xl font-bold mb-6">需要定制化解决方案?</h2><p class="text-xl mb-8 max-w-2xl mx-auto leading-relaxed">联系我们的解决方案专家获取专业的AWS云服务解决方案建议</p>`);
_push(`<!--]--></div></div></section><section id="contact" class="py-16 bg-primary text-white"><div class="container text-center"><h2 class="text-4xl font-bold mb-6">${ssrInterpolate(_ctx.$t("solutions.contact.title"))}</h2><p class="text-xl mb-8 max-w-2xl mx-auto leading-relaxed">${ssrInterpolate(_ctx.$t("solutions.contact.subtitle"))}</p>`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/contact",
class: "inline-flex items-center bg-white text-black px-8 py-4 rounded-lg hover:bg-gray-100 transition-colors duration-300 text-lg font-semibold"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` 联系解决方案专家 <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
_push2(`${ssrInterpolate(_ctx.$t("solutions.contact.button"))} <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
} else {
return [
createTextVNode(" 联系解决方案专家 "),
createTextVNode(toDisplayString(_ctx.$t("solutions.contact.button")) + " ", 1),
createVNode("i", { class: "fas fa-arrow-right ml-2" })
];
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

20
.nuxt/dist/server/plugins/i18n.mjs vendored Normal file
View File

@ -0,0 +1,20 @@
import { createI18n } from "vue-i18n";
import zh from "../i18n/locales/zh.json.mjs";
import en from "../i18n/locales/en.json.mjs";
import { defineNuxtPlugin } from "../node_modules/nuxt/dist/app/nuxt.mjs";
const i18n_M6WuPocwmDZfR2LKAqoIP7SPPiCebMfT5sB7ls3Be_c = defineNuxtPlugin(({ vueApp }) => {
const i18n = createI18n({
legacy: false,
globalInjection: true,
locale: "zh",
messages: {
zh,
en
}
});
vueApp.use(i18n);
});
export {
i18n_M6WuPocwmDZfR2LKAqoIP7SPPiCebMfT5sB7ls3Be_c as default
};
//# sourceMappingURL=i18n.mjs.map

View File

@ -0,0 +1 @@
{"version":3,"file":"i18n.mjs","sources":["../../../../plugins/i18n.ts"],"sourcesContent":["import { createI18n } from 'vue-i18n'\r\nimport zh from '../i18n/locales/zh.json'\r\nimport en from '../i18n/locales/en.json'\r\n\r\nexport default defineNuxtPlugin(({ vueApp }) => {\r\n const i18n = createI18n({\r\n legacy: false,\r\n globalInjection: true,\r\n locale: 'zh',\r\n messages: {\r\n zh,\r\n en\r\n }\r\n })\r\n\r\n vueApp.use(i18n)\r\n}) "],"names":[],"mappings":";;;;AAIA,MAAA,mDAAe,iBAAiB,CAAC,EAAE,aAAa;AAC9C,QAAM,OAAO,WAAW;AAAA,IACtB,QAAQ;AAAA,IACR,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,MACA;AAAA,IAAA;AAAA,EACF,CACD;AAED,SAAO,IAAI,IAAI;AACjB,CAAC;"}

View File

@ -0,0 +1 @@
{"file":"i18n.mjs","mappings":";;;;AAIA,MAAA,mDAAe,iBAAiB,CAAC,EAAE,aAAa;AAC9C,QAAM,OAAO,WAAW;AAAA,IACtB,QAAQ;AAAA,IACR,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,MACA;AAAA,IAAA;AAAA,EACF,CACD;AAED,SAAO,IAAI,IAAI;AACjB,CAAC;","names":[],"sources":["../../../../plugins/i18n.ts"],"sourcesContent":["import { createI18n } from 'vue-i18n'\r\nimport zh from '../i18n/locales/zh.json'\r\nimport en from '../i18n/locales/en.json'\r\n\r\nexport default defineNuxtPlugin(({ vueApp }) => {\r\n const i18n = createI18n({\r\n legacy: false,\r\n globalInjection: true,\r\n locale: 'zh',\r\n messages: {\r\n zh,\r\n en\r\n }\r\n })\r\n\r\n vueApp.use(i18n)\r\n}) "],"version":3}

View File

@ -1,6 +1,8 @@
const interopDefault = r => r.default || r || []
export default {
"node_modules/nuxt/dist/app/entry.js": () => import('./_nuxt/entry-styles.4FLa15rc.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/entry.js": () => import('./_nuxt/entry-styles.B9TyF0kY.mjs').then(interopDefault),
"app.vue": () => import('./_nuxt/app-styles.DmrMOrjb.mjs').then(interopDefault),
"app.vue?vue&type=style&index=0&lang.css": () => import('./_nuxt/app-styles.-NiF4Bvj.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/components/error-404.vue": () => import('./_nuxt/error-404-styles.wRz_-Rw1.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/components/error-500.vue": () => import('./_nuxt/error-500-styles.TwxDbBgG.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/components/error-404.vue?vue&type=style&index=0&scoped=3fc41134&lang.css": () => import('./_nuxt/error-404-styles.BNmKahfp.mjs').then(interopDefault),

View File

@ -1 +1 @@
{"id":"dev","timestamp":1745308032415}
{"id":"dev","timestamp":1745311309091}

View File

@ -0,0 +1 @@
{}

View File

@ -1 +1 @@
{"id":"dev","timestamp":1745308032435,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
{"id":"dev","timestamp":1745311309091,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}

View File

@ -1,5 +1,5 @@
{
"date": "2025-04-22T07:47:15.402Z",
"date": "2025-04-22T08:41:52.804Z",
"preset": "nitro-dev",
"framework": {
"name": "nuxt",
@ -9,9 +9,9 @@
"nitro": "2.11.9"
},
"dev": {
"pid": 24056,
"pid": 21780,
"workerAddress": {
"socketPath": "\\\\.\\pipe\\nitro-worker-24056-3-3-8432.sock"
"socketPath": "\\\\.\\pipe\\nitro-worker-21780-1-1-7058.sock"
}
}
}

3
.nuxt/nuxt.d.ts vendored
View File

@ -1,6 +1,7 @@
// Generated by nuxi
/// <reference types="@nuxt/telemetry" />
/// <reference types="@nuxtjs/tailwindcss" />
/// <reference types="@nuxt/devtools" />
/// <reference types="@nuxt/telemetry" />
/// <reference path="types/builder-env.d.ts" />
/// <reference types="nuxt" />
/// <reference path="types/app-defaults.d.ts" />

View File

@ -607,7 +607,7 @@ function _expandFromEnv(value) {
const _inlineRuntimeConfig = {
"app": {
"baseURL": "/",
"buildId": "295e2927-5908-4c75-87ca-ed5550175fd5",
"buildId": "18019065-7712-44a3-a804-a8cc6f61d160",
"buildAssetsDir": "/_nuxt/",
"cdnURL": ""
},

View File

@ -1,6 +1,7 @@
import { _ as __nuxt_component_0 } from './nuxt-link.mjs';
import { defineComponent, withCtx, createTextVNode, createVNode, useSSRContext } from 'file://D:/doc/workspace/web3/node_modules/vue/index.mjs';
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrInterpolate, ssrRenderClass } from 'file://D:/doc/workspace/web3/node_modules/vue/server-renderer/index.mjs';
import { defineComponent, withCtx, createTextVNode, createVNode, toDisplayString, useSSRContext } from 'file://D:/doc/workspace/web3/node_modules/vue/index.mjs';
import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderList, ssrRenderClass } from 'file://D:/doc/workspace/web3/node_modules/vue/server-renderer/index.mjs';
import { useI18n } from 'file://D:/doc/workspace/web3/node_modules/vue-i18n/dist/vue-i18n.mjs';
import { _ as _sfc_main$1 } from './HeroBanner.vue2.mjs';
import 'file://D:/doc/workspace/web3/node_modules/ufo/dist/index.mjs';
import './server.mjs';
@ -15,62 +16,63 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "about",
__ssrInlineRender: true,
setup(__props) {
const { t } = useI18n();
const achievements = [
"AWS高级合作伙伴认证",
"100+成功案例",
"50+AWS认证工程师"
"about.achievements.item1",
"about.achievements.item2",
"about.achievements.item3"
];
const advantages = [
{
icon: "fas fa-award",
title: "专业认证",
description: "AWS官方认证的高级合作伙伴拥有多项专业认证"
icon: "fas fa-certificate",
titleKey: "about.advantages.certification.title",
descriptionKey: "about.advantages.certification.description"
},
{
icon: "fas fa-users",
title: "专业团队",
description: "50+位AWS认证工程师平均5年以上云服务经验"
titleKey: "about.advantages.team.title",
descriptionKey: "about.advantages.team.description"
},
{
icon: "fas fa-tools",
title: "技术实力",
description: "掌握AWS全线产品具备丰富的实施和运维经验"
icon: "fas fa-code",
titleKey: "about.advantages.technical.title",
descriptionKey: "about.advantages.technical.description"
},
{
icon: "fas fa-headset",
title: "服务保障",
description: "7x24小时技术支持确保客户业务稳定运行"
titleKey: "about.advantages.service.title",
descriptionKey: "about.advantages.service.description"
}
];
const cultures = [
{
icon: "fas fa-bullseye",
title: "企业使命",
description: "助力企业数字化转型,提供专业可靠的云计算服务"
titleKey: "about.culture.mission.title",
descriptionKey: "about.culture.mission.description"
},
{
icon: "fas fa-eye",
title: "企业愿景",
description: "成为中国最值得信赖的云服务解决方案提供商"
titleKey: "about.culture.vision.title",
descriptionKey: "about.culture.vision.description"
},
{
icon: "fas fa-heart",
title: "核心价值观",
description: "专业、创新、诚信、共赢"
titleKey: "about.culture.values.title",
descriptionKey: "about.culture.values.description"
}
];
const historyItems = [
{
year: "2023年",
description: "成为AWS高级合作伙伴服务客户数量突破500家"
yearKey: "about.history.year2023.year",
descriptionKey: "about.history.year2023.description"
},
{
year: "2021年",
description: "获得AWS标准合作伙伴认证团队规模扩大到50人"
yearKey: "about.history.year2021.year",
descriptionKey: "about.history.year2021.description"
},
{
year: "2018年",
description: "公司成立开始提供AWS云服务解决方案"
yearKey: "about.history.year2018.year",
descriptionKey: "about.history.year2018.description"
}
];
return (_ctx, _push, _parent, _attrs) => {
@ -78,36 +80,36 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
const _component_NuxtLink = __nuxt_component_0;
_push(`<div${ssrRenderAttrs(_attrs)}>`);
_push(ssrRenderComponent(_component_HeroBanner, {
title: "关于我们",
subtitle: "专业的AWS云服务解决方案提供商助力企业数字化转型"
title: _ctx.$t("about.hero.title"),
subtitle: _ctx.$t("about.hero.subtitle")
}, null, _parent));
_push(`<section class="section"><div class="container"><div class="grid md:grid-cols-2 gap-12 items-center"><div><h2 class="text-4xl font-bold text-[#333333] mb-8 mt-6">公司简介</h2><p class="text-gray-600 mb-4 text-lg leading-relaxed">云服务专家成立于2018年是AWS授权的云服务解决方案提供商。我们致力于为企业提供专业的云计算咨询、迁移、运维和优化服务。</p><p class="text-gray-600 mb-8 text-lg leading-relaxed">作为AWS高级合作伙伴我们拥有丰富的云服务实施经验和专业的技术团队已成功帮助数百家企业完成云上转型。</p><ul class="space-y-4"><!--[-->`);
_push(`<section class="section"><div class="container"><div class="grid md:grid-cols-2 gap-12 items-center"><div><h2 class="text-4xl font-bold text-[#333333] mb-8 mt-6">${ssrInterpolate(_ctx.$t("about.company.title"))}</h2><p class="text-gray-600 mb-4 text-lg leading-relaxed">${ssrInterpolate(_ctx.$t("about.company.description1"))}</p><p class="text-gray-600 mb-8 text-lg leading-relaxed">${ssrInterpolate(_ctx.$t("about.company.description2"))}</p><ul class="space-y-4"><!--[-->`);
ssrRenderList(achievements, (achievement, index) => {
_push(`<li class="flex items-center text-lg"><i class="fas fa-check-circle text-green-500 mr-3"></i><span class="text-gray-700">${ssrInterpolate(achievement)}</span></li>`);
_push(`<li class="flex items-center text-lg"><i class="fas fa-check-circle text-green-500 mr-3"></i><span class="text-gray-700">${ssrInterpolate(_ctx.$t(achievement))}</span></li>`);
});
_push(`<!--]--></ul></div><div class="bg-gradient-to-br from-secondary/20 to-secondary/10 h-80 rounded-lg flex items-center justify-center"><i class="fas fa-building text-8xl text-secondary"></i></div></div></div></section><section class="section 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 mt-6">我们的优势</h2><p class="text-xl text-gray-600 leading-relaxed">专业技术团队,丰富项目经验</p></div><div class="grid md:grid-cols-4 gap-8"><!--[-->`);
_push(`<!--]--></ul></div><div class="bg-gradient-to-br from-secondary/20 to-secondary/10 h-80 rounded-lg flex items-center justify-center"><i class="fas fa-building text-8xl text-secondary"></i></div></div></div></section><section class="section 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 mt-6">${ssrInterpolate(_ctx.$t("about.advantages.title"))}</h2><p class="text-xl text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t("about.advantages.subtitle"))}</p></div><div class="grid md:grid-cols-4 gap-8"><!--[-->`);
ssrRenderList(advantages, (advantage, index) => {
_push(`<div class="bg-white p-8 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1 text-center"><div class="w-20 h-20 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-secondary text-3xl", advantage.icon])}"></i></div><h3 class="text-xl font-semibold mb-4">${ssrInterpolate(advantage.title)}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(advantage.description)}</p></div>`);
_push(`<div class="bg-white p-8 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1 text-center"><div class="w-20 h-20 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-secondary text-3xl", advantage.icon])}"></i></div><h3 class="text-xl font-semibold mb-4">${ssrInterpolate(_ctx.$t(advantage.titleKey))}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t(advantage.descriptionKey))}</p></div>`);
});
_push(`<!--]--></div></div></section><section class="section"><div class="container"><div class="max-w-4xl mx-auto text-center mb-16"><h2 class="text-4xl font-bold text-[#333333] mb-4 mt-6">企业文化</h2><p class="text-xl text-gray-600 leading-relaxed">以客户为中心,追求卓越服务</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
_push(`<!--]--></div></div></section><section class="section"><div class="container"><div class="max-w-4xl mx-auto text-center mb-16"><h2 class="text-4xl font-bold text-[#333333] mb-4 mt-6">${ssrInterpolate(_ctx.$t("about.culture.title"))}</h2><p class="text-xl text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t("about.culture.subtitle"))}</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
ssrRenderList(cultures, (culture, 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-20 h-20 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-secondary text-3xl", culture.icon])}"></i></div><h3 class="text-xl font-semibold mb-4 text-center">${ssrInterpolate(culture.title)}</h3><p class="text-gray-600 leading-relaxed text-center">${ssrInterpolate(culture.description)}</p></div>`);
_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-20 h-20 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-secondary text-3xl", culture.icon])}"></i></div><h3 class="text-xl font-semibold mb-4 text-center">${ssrInterpolate(_ctx.$t(culture.titleKey))}</h3><p class="text-gray-600 leading-relaxed text-center">${ssrInterpolate(_ctx.$t(culture.descriptionKey))}</p></div>`);
});
_push(`<!--]--></div></div></section><section class="section 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 mt-6">发展历程</h2><p class="text-xl text-gray-600 leading-relaxed">见证我们的成长与进步</p></div><div class="space-y-8"><!--[-->`);
_push(`<!--]--></div></div></section><section class="section 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 mt-6">${ssrInterpolate(_ctx.$t("about.history.title"))}</h2><p class="text-xl text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t("about.history.subtitle"))}</p></div><div class="space-y-8"><!--[-->`);
ssrRenderList(historyItems, (history, index) => {
_push(`<div class="flex flex-col md:flex-row items-center gap-8"><div class="w-full md:w-1/4 text-right"><h3 class="text-2xl font-semibold text-secondary">${ssrInterpolate(history.year)}</h3></div><div class="w-px h-16 bg-secondary hidden md:block"></div><div class="w-full md:w-3/4"><p class="text-gray-600 text-lg leading-relaxed">${ssrInterpolate(history.description)}</p></div></div>`);
_push(`<div class="flex flex-col md:flex-row items-center gap-8"><div class="w-full md:w-1/4 text-right"><h3 class="text-2xl font-semibold text-secondary">${ssrInterpolate(_ctx.$t(history.yearKey))}</h3></div><div class="w-px h-16 bg-secondary hidden md:block"></div><div class="w-full md:w-3/4"><p class="text-gray-600 text-lg leading-relaxed">${ssrInterpolate(_ctx.$t(history.descriptionKey))}</p></div></div>`);
});
_push(`<!--]--></div></div></section><section class="section bg-primary text-white"><div class="container text-center"><h2 class="text-4xl font-bold mb-6">想了解更多关于我们?</h2><p class="text-xl mb-8 max-w-2xl mx-auto leading-relaxed">欢迎联系我们,了解更多公司信息和服务详情</p>`);
_push(`<!--]--></div></div></section><section class="section bg-primary text-white"><div class="container text-center"><h2 class="text-4xl font-bold mb-6">${ssrInterpolate(_ctx.$t("about.contact.title"))}</h2><p class="text-xl mb-8 max-w-2xl mx-auto leading-relaxed">${ssrInterpolate(_ctx.$t("about.contact.subtitle"))}</p>`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/contact",
class: "inline-flex items-center bg-white text-black px-8 py-4 rounded-lg hover:bg-gray-100 transition-colors duration-300 text-lg font-semibold"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` 联系我们 <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
_push2(`${ssrInterpolate(_ctx.$t("about.contact.button"))} <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
} else {
return [
createTextVNode(" 联系我们 "),
createTextVNode(toDisplayString(_ctx.$t("about.contact.button")) + " ", 1),
createVNode("i", { class: "fas fa-arrow-right ml-2" })
];
}

View File

@ -1 +1 @@
{"version":3,"file":"about.vue.mjs","sources":["../../../dist/server/pages/about.vue2.mjs","../../../dist/server/pages/about.vue.mjs"],"sourcesContent":null,"names":[],"mappings":"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"}
{"version":3,"file":"about.vue.mjs","sources":["../../../dist/server/pages/about.vue2.mjs","../../../dist/server/pages/about.vue.mjs"],"sourcesContent":null,"names":[],"mappings":"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"}

View File

@ -0,0 +1,6 @@
import { a as app_vue_vue_type_style_index_0_lang } from './entry-styles-3.mjs.mjs';
const appStyles_NiF4Bvj = [app_vue_vue_type_style_index_0_lang];
export { appStyles_NiF4Bvj as default };
//# sourceMappingURL=app-styles.-NiF4Bvj.mjs.map

View File

@ -0,0 +1 @@
{"version":3,"file":"app-styles.-NiF4Bvj.mjs","sources":["../../../dist/server/_nuxt/app-styles.-NiF4Bvj.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":";;AACA,0BAAe,CAACA,mCAAO;;;;"}

View File

@ -0,0 +1,6 @@
import { a as app_vue_vue_type_style_index_0_lang } from './entry-styles-3.mjs.mjs';
const appStyles_DmrMOrjb = [app_vue_vue_type_style_index_0_lang, app_vue_vue_type_style_index_0_lang];
export { appStyles_DmrMOrjb as default };
//# sourceMappingURL=app-styles.DmrMOrjb.mjs.map

View File

@ -0,0 +1 @@
{"version":3,"file":"app-styles.DmrMOrjb.mjs","sources":["../../../dist/server/_nuxt/app-styles.DmrMOrjb.mjs"],"sourcesContent":null,"names":["style_0","style_1"],"mappings":";;AAEA,2BAAe,CAACA,mCAAO,EAAEC,mCAAO;;;;"}

View File

@ -1,6 +1,7 @@
import { _ as __nuxt_component_0 } from './nuxt-link.mjs';
import { defineComponent, ref, computed, withCtx, createTextVNode, createVNode, useSSRContext } from 'file://D:/doc/workspace/web3/node_modules/vue/index.mjs';
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrInterpolate, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual } from 'file://D:/doc/workspace/web3/node_modules/vue/server-renderer/index.mjs';
import { defineComponent, ref, computed, withCtx, createTextVNode, createVNode, toDisplayString, useSSRContext } from 'file://D:/doc/workspace/web3/node_modules/vue/index.mjs';
import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderList, ssrRenderClass, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual } from 'file://D:/doc/workspace/web3/node_modules/vue/server-renderer/index.mjs';
import { useI18n } from 'file://D:/doc/workspace/web3/node_modules/vue-i18n/dist/vue-i18n.mjs';
import { _ as _sfc_main$1 } from './HeroBanner.vue2.mjs';
import 'file://D:/doc/workspace/web3/node_modules/ufo/dist/index.mjs';
import './server.mjs';
@ -15,135 +16,145 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "cases",
__ssrInlineRender: true,
setup(__props) {
const industries = ["金融", "电子商务", "制造", "医疗", "教育", "政府", "媒体", "物流"];
const { t } = useI18n();
const industries = [
t("cases.industries.finance"),
t("cases.industries.ecommerce"),
t("cases.industries.manufacturing"),
t("cases.industries.healthcare"),
t("cases.industries.education"),
t("cases.industries.government"),
t("cases.industries.media"),
t("cases.industries.logistics")
];
const selectedIndustries = ref([]);
const sortBy = ref("default");
const selectedCase = ref(null);
const caseStudies = [
{
title: "某大型电商平台",
industry: "电子商务",
titleKey: "cases.caseStudies.ecommerce.title",
industry: "cases.caseStudies.ecommerce.industry",
date: "2023-05-15",
summary: "通过AWS云服务成功应对每年双11销售高峰提升了网站性能和用户体验同时降低了运营成本。",
background: "该客户是中国领先的电子商务平台年交易额超过100亿元拥有超过1000万注册用户。随着业务快速发展特别是在促销活动期间其传统IT架构难以应对流量峰值。",
summaryKey: "cases.caseStudies.ecommerce.summary",
backgroundKey: "cases.caseStudies.ecommerce.background",
challenges: [
"传统IT基础设施难以应对促销期间10倍以上的流量峰值",
"系统扩容周期长,难以快速响应业务需求",
"运维成本高,人力资源紧张",
"数据安全和合规要求严格"
"cases.caseStudies.ecommerce.challenges[0]",
"cases.caseStudies.ecommerce.challenges[1]",
"cases.caseStudies.ecommerce.challenges[2]",
"cases.caseStudies.ecommerce.challenges[3]"
],
solution: "我们为客户设计并实施了基于AWS的弹性扩展解决方案。使用EC2弹性计算实例和Auto Scaling自动扩展服务实现了基于流量的自动扩缩容采用Amazon RDS提供高可用数据库服务利用ElastiCache加速数据访问通过CloudFront CDN加速全国内容分发。",
solutionKey: "cases.caseStudies.ecommerce.solution",
results: [
"成功应对促销期间20倍的流量增长系统零宕机",
"页面加载时间减少40%,用户体验显著提升",
"运维工作量减少60%IT团队可以更专注于业务创新",
"总体IT成本降低30%,特别是在非促销期间",
"系统可靠性提升到99.99%"
"cases.caseStudies.ecommerce.results[0]",
"cases.caseStudies.ecommerce.results[1]",
"cases.caseStudies.ecommerce.results[2]",
"cases.caseStudies.ecommerce.results[3]",
"cases.caseStudies.ecommerce.results[4]"
]
},
{
title: "某股份制银行",
industry: "金融",
titleKey: "cases.caseStudies.finance.title",
industry: "cases.caseStudies.finance.industry",
date: "2023-03-20",
summary: "采用AWS金融云解决方案构建了高安全、高可用的核心业务系统满足了严格的金融监管要求。",
background: "该客户是一家拥有50多家分支机构的全国性股份制银行为了适应数字化转型战略需要升级其核心业务系统以提高业务敏捷性和客户体验。",
summaryKey: "cases.caseStudies.finance.summary",
backgroundKey: "cases.caseStudies.finance.background",
challenges: [
"金融系统对安全性和可用性要求极高",
"需要满足严格的金融监管合规要求",
"大量敏感数据需要高级别的保护",
"系统升级不能影响正常业务运营"
"cases.caseStudies.finance.challenges[0]",
"cases.caseStudies.finance.challenges[1]",
"cases.caseStudies.finance.challenges[2]",
"cases.caseStudies.finance.challenges[3]"
],
solution: "我们为客户提供了基于AWS金融云的整体解决方案包括多区域高可用架构设计、全面的安全防护体系、数据加密和访问控制、灾备和业务连续性方案等。通过与客户IT团队的紧密协作分阶段实施了系统迁移和升级。",
solutionKey: "cases.caseStudies.finance.solution",
results: [
"成功构建满足CBRC监管要求的高合规云平台",
"系统可用性达到99.999%,满足金融业务连续性要求",
"数据安全问题零发生,通过了多次安全审计",
"业务处理能力提升3倍支持快速创新",
"新业务上线时间从月级缩短到周级"
"cases.caseStudies.finance.results[0]",
"cases.caseStudies.finance.results[1]",
"cases.caseStudies.finance.results[2]",
"cases.caseStudies.finance.results[3]",
"cases.caseStudies.finance.results[4]"
]
},
{
title: "某医疗健康机构",
industry: "医疗",
titleKey: "cases.caseStudies.healthcare.title",
industry: "cases.caseStudies.healthcare.industry",
date: "2022-11-10",
summary: "利用AWS的AI/ML服务构建了智能医疗影像分析系统提高了诊断效率和准确性。",
background: "该客户是一家拥有多家医院的医疗集团面临医疗影像数据激增、专业放射科医师短缺的挑战希望通过AI技术提高医疗影像诊断的效率和准确性。",
summaryKey: "cases.caseStudies.healthcare.summary",
backgroundKey: "cases.caseStudies.healthcare.background",
challenges: [
"每天产生海量医疗影像数据,存储和处理压力大",
"专业放射科医师资源有限,工作负担重",
"传统诊断方法耗时长,难以满足快速增长的需求",
"医疗数据安全和患者隐私保护要求高"
"cases.caseStudies.healthcare.challenges[0]",
"cases.caseStudies.healthcare.challenges[1]",
"cases.caseStudies.healthcare.challenges[2]",
"cases.caseStudies.healthcare.challenges[3]"
],
solution: "我们基于AWS的医疗解决方案构建了云端医疗影像存储和AI辅助诊断系统。使用S3存储海量影像数据通过SageMaker构建和部署AI诊断模型结合医疗专用的安全和合规措施确保数据安全和患者隐私。",
solutionKey: "cases.caseStudies.healthcare.solution",
results: [
"医疗影像诊断效率提升60%,大幅减轻医师工作负担",
"AI辅助诊断系统准确率达到95%以上,优于行业平均水平",
"患者等待时间从平均24小时减少到6小时",
"医疗数据安全得到全面保障,符合国家相关法规要求",
"建立了可持续的医疗AI创新平台持续改进诊断能力"
"cases.caseStudies.healthcare.results[0]",
"cases.caseStudies.healthcare.results[1]",
"cases.caseStudies.healthcare.results[2]",
"cases.caseStudies.healthcare.results[3]",
"cases.caseStudies.healthcare.results[4]"
]
},
{
title: "某制造业巨头",
industry: "制造",
titleKey: "cases.caseStudies.manufacturing.title",
industry: "cases.caseStudies.manufacturing.industry",
date: "2022-09-05",
summary: "通过AWS工业互联网解决方案实现了生产设备智能监控和预测性维护提高了生产效率降低了设备故障率。",
background: "该客户是一家大型制造企业,拥有多个生产基地和数千台生产设备。传统的设备维护模式效率低下,难以预防突发故障,导致生产线停机和效率损失。",
summaryKey: "cases.caseStudies.manufacturing.summary",
backgroundKey: "cases.caseStudies.manufacturing.background",
challenges: [
"设备分散在多个地区,管理和监控困难",
"缺乏有效的设备健康状态监测手段",
"计划外停机造成巨大的生产损失",
"海量设备数据无法有效收集和分析"
"cases.caseStudies.manufacturing.challenges[0]",
"cases.caseStudies.manufacturing.challenges[1]",
"cases.caseStudies.manufacturing.challenges[2]",
"cases.caseStudies.manufacturing.challenges[3]"
],
solution: "我们基于AWS IoT服务构建了工业互联网平台实现设备数据实时收集和分析。通过AWS IoT Core连接设备利用Kinesis处理实时数据流结合SageMaker构建预测性维护模型最终通过可视化仪表板展示设备健康状态和预警信息。",
solutionKey: "cases.caseStudies.manufacturing.solution",
results: [
"实现了5000多台设备的实时监控和健康管理",
"设备计划外停机时间减少70%生产效率提升25%",
"维护成本降低40%设备使用寿命延长15%",
"通过预测性维护,每年节约维修成本数百万元",
"建立了数据驱动的智能制造基础,支持企业数字化转型"
"cases.caseStudies.manufacturing.results[0]",
"cases.caseStudies.manufacturing.results[1]",
"cases.caseStudies.manufacturing.results[2]",
"cases.caseStudies.manufacturing.results[3]",
"cases.caseStudies.manufacturing.results[4]"
]
},
{
title: "某大型物流企业",
industry: "物流",
titleKey: "cases.caseStudies.logistics.title",
industry: "cases.caseStudies.logistics.industry",
date: "2022-07-15",
summary: "利用AWS的大数据和机器学习服务优化了配送路线和资源调度提高了配送效率降低了运营成本。",
background: "该客户是一家覆盖全国的综合物流服务提供商日处理订单量超过100万单。随着业务规模扩大传统的人工调度方式难以应对复杂多变的配送需求效率低下且成本高昂。",
summaryKey: "cases.caseStudies.logistics.summary",
backgroundKey: "cases.caseStudies.logistics.background",
challenges: [
"配送路线规划复杂,人工调度效率低",
"车辆和人力资源分配不均衡,利用率低",
"无法根据实时路况和订单变化做出快速调整",
"缺乏数据支持的决策机制,难以持续优化"
"cases.caseStudies.logistics.challenges[0]",
"cases.caseStudies.logistics.challenges[1]",
"cases.caseStudies.logistics.challenges[2]",
"cases.caseStudies.logistics.challenges[3]"
],
solution: "我们为客户构建了基于AWS的智能物流调度平台。利用AWS的大数据服务处理和分析海量订单和位置数据通过机器学习算法建立智能路径规划和资源调度模型并结合地图服务实现实时路况感知和动态调整。",
solutionKey: "cases.caseStudies.logistics.solution",
results: [
"配送效率提升30%平均配送时间缩短1.5小时",
"车辆利用率提高40%,每年节约燃油成本数百万元",
"客户满意度提升25%准时送达率达到98%",
"系统自动化程度高调度人员需求减少50%",
"建立了数据驱动的持续优化机制,物流成本逐年下降"
"cases.caseStudies.logistics.results[0]",
"cases.caseStudies.logistics.results[1]",
"cases.caseStudies.logistics.results[2]",
"cases.caseStudies.logistics.results[3]",
"cases.caseStudies.logistics.results[4]"
]
},
{
title: "某在线教育平台",
industry: "教育",
titleKey: "cases.caseStudies.education.title",
industry: "cases.caseStudies.education.industry",
date: "2022-05-08",
summary: "通过AWS云服务构建了高可靠、低延迟的在线教育直播和点播平台支持百万级学生同时在线学习。",
background: "该客户是一家专注K12领域的在线教育平台提供直播和点播课程服务。随着用户规模快速增长特别是在疫情期间平台面临巨大的并发访问压力和用户体验挑战。",
summaryKey: "cases.caseStudies.education.summary",
backgroundKey: "cases.caseStudies.education.background",
challenges: [
"高峰期需支持百万级用户同时在线学习",
"直播课程对系统稳定性和延迟要求高",
"教学视频存储和分发成本高",
"用户分布广泛,跨地区服务质量难以保证"
"cases.caseStudies.education.challenges[0]",
"cases.caseStudies.education.challenges[1]",
"cases.caseStudies.education.challenges[2]",
"cases.caseStudies.education.challenges[3]"
],
solution: "我们基于AWS设计了可弹性扩展的在线教育平台解决方案。使用EC2和Auto Scaling服务支持高并发访问通过MediaLive和MediaPackage提供低延迟直播服务利用S3和CloudFront实现视频内容的高效存储和分发同时通过多区域部署确保全国范围内的服务质量。",
solutionKey: "cases.caseStudies.education.solution",
results: [
"成功支持200万+用户同时在线学习,系统稳定无卡顿",
"直播延迟控制在2秒以内大幅提升师生互动体验",
"通过内容分发网络全国各地用户访问速度提升60%",
"视频存储和分发成本降低50%,支持业务快速扩张",
"平台可用性达到99.99%,赢得用户信赖"
"cases.caseStudies.education.results[0]",
"cases.caseStudies.education.results[1]",
"cases.caseStudies.education.results[2]",
"cases.caseStudies.education.results[3]",
"cases.caseStudies.education.results[4]"
]
}
];
@ -162,51 +173,51 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
const _component_NuxtLink = __nuxt_component_0;
_push(`<div${ssrRenderAttrs(_attrs)}>`);
_push(ssrRenderComponent(_component_HeroBanner, {
title: "客户案例",
subtitle: "看看其他企业如何利用AWS云服务提升业务价值"
title: _ctx.$t("cases.hero.title"),
subtitle: _ctx.$t("cases.hero.subtitle")
}, null, _parent));
_push(`<section class="py-10"><div class="container"><div class="bg-white p-6 rounded-lg shadow-md"><div class="flex flex-wrap items-center justify-between gap-4"><div class="flex flex-wrap items-center gap-4"><span class="text-gray-700 font-medium">按行业筛选:</span><div class="flex flex-wrap gap-2"><!--[-->`);
_push(`<section class="py-10"><div class="container"><div class="bg-white p-6 rounded-lg shadow-md"><div class="flex flex-wrap items-center justify-between gap-4"><div class="flex flex-wrap items-center gap-4"><span class="text-gray-700 font-medium">${ssrInterpolate(_ctx.$t("cases.filter.byIndustry"))}</span><div class="flex flex-wrap gap-2"><!--[-->`);
ssrRenderList(industries, (industry) => {
_push(`<button class="${ssrRenderClass([
"px-4 py-2 rounded-full text-sm",
selectedIndustries.value.includes(industry) ? "bg-secondary text-white" : "bg-gray-100 text-gray-700 hover:bg-gray-200"
])}">${ssrInterpolate(industry)}</button>`);
});
_push(`<!--]--><button class="px-4 py-2 rounded-full text-sm bg-gray-100 text-gray-700 hover:bg-gray-200"> 全部 </button></div></div><div class="flex items-center"><span class="text-gray-700 font-medium mr-4">排序方式:</span><select class="px-4 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-secondary focus:border-transparent"><option value="latest"${ssrIncludeBooleanAttr(Array.isArray(sortBy.value) ? ssrLooseContain(sortBy.value, "latest") : ssrLooseEqual(sortBy.value, "latest")) ? " selected" : ""}>最新案例</option><option value="default"${ssrIncludeBooleanAttr(Array.isArray(sortBy.value) ? ssrLooseContain(sortBy.value, "default") : ssrLooseEqual(sortBy.value, "default")) ? " selected" : ""}>默认排序</option></select></div></div></div></div></section><section class="py-12"><div class="container">`);
_push(`<!--]--><button class="px-4 py-2 rounded-full text-sm bg-gray-100 text-gray-700 hover:bg-gray-200">${ssrInterpolate(_ctx.$t("cases.filter.all"))}</button></div></div><div class="flex items-center"><span class="text-gray-700 font-medium mr-4">${ssrInterpolate(_ctx.$t("cases.filter.sortBy"))}</span><select class="px-4 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-secondary focus:border-transparent"><option value="latest"${ssrIncludeBooleanAttr(Array.isArray(sortBy.value) ? ssrLooseContain(sortBy.value, "latest") : ssrLooseEqual(sortBy.value, "latest")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("cases.filter.latest"))}</option><option value="default"${ssrIncludeBooleanAttr(Array.isArray(sortBy.value) ? ssrLooseContain(sortBy.value, "default") : ssrLooseEqual(sortBy.value, "default")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("cases.filter.default"))}</option></select></div></div></div></div></section><section class="py-12"><div class="container">`);
if (filteredCases.value.length === 0) {
_push(`<div class="text-center py-16"><i class="fas fa-search text-4xl text-gray-300 mb-4"></i><p class="text-xl text-gray-500">没有找到符合条件的案例</p><button class="mt-4 text-secondary hover:text-secondary/90"> 清除筛选条件 </button></div>`);
_push(`<div class="text-center py-16"><i class="fas fa-search text-4xl text-gray-300 mb-4"></i><p class="text-xl text-gray-500">${ssrInterpolate(_ctx.$t("cases.noResults.text"))}</p><button class="mt-4 text-secondary hover:text-secondary/90">${ssrInterpolate(_ctx.$t("cases.noResults.clearFilters"))}</button></div>`);
} else {
_push(`<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8"><!--[-->`);
ssrRenderList(filteredCases.value, (case_item, 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-gray-200 relative overflow-hidden"><div class="absolute top-0 right-0 bg-secondary text-white px-3 py-1 text-sm">${ssrInterpolate(case_item.industry)}</div></div><div class="p-6"><h3 class="text-2xl font-semibold mb-4">${ssrInterpolate(case_item.title)}</h3><p class="text-gray-600 mb-6">${ssrInterpolate(case_item.summary)}</p><div class="flex justify-between items-center"><button class="text-secondary hover:text-secondary/90 flex items-center"> 阅读详情 <i class="fas fa-arrow-right ml-2"></i></button><span class="text-sm text-gray-500">${ssrInterpolate(case_item.date)}</span></div></div></div>`);
_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-gray-200 relative overflow-hidden"><div class="absolute top-0 right-0 bg-secondary text-white px-3 py-1 text-sm">${ssrInterpolate(_ctx.$t(case_item.industry))}</div></div><div class="p-6"><h3 class="text-2xl font-semibold mb-4">${ssrInterpolate(_ctx.$t(case_item.titleKey))}</h3><p class="text-gray-600 mb-6">${ssrInterpolate(_ctx.$t(case_item.summaryKey))}</p><div class="flex justify-between items-center"><button class="text-secondary hover:text-secondary/90 flex items-center">${ssrInterpolate(_ctx.$t("cases.caseDetail.readDetails"))} <i class="fas fa-arrow-right ml-2"></i></button><span class="text-sm text-gray-500">${ssrInterpolate(case_item.date)}</span></div></div></div>`);
});
_push(`<!--]--></div>`);
}
_push(`</div></section>`);
if (selectedCase.value) {
_push(`<div class="fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4"><div class="bg-white rounded-lg max-w-4xl w-full max-h-[90vh] overflow-y-auto"><div class="p-6 border-b"><div class="flex justify-between items-center"><h3 class="text-2xl font-bold">${ssrInterpolate(selectedCase.value.title)}</h3><button class="text-gray-500 hover:text-gray-700"><i class="fas fa-times text-xl"></i></button></div></div><div class="p-6"><div class="flex flex-wrap gap-2 mb-6"><span class="px-3 py-1 bg-secondary/10 text-secondary text-sm rounded-full">${ssrInterpolate(selectedCase.value.industry)}</span><span class="px-3 py-1 bg-gray-100 text-gray-700 text-sm rounded-full">${ssrInterpolate(selectedCase.value.date)}</span></div><h4 class="text-xl font-semibold mb-4">客户背景</h4><p class="text-gray-600 mb-6">${ssrInterpolate(selectedCase.value.background)}</p><h4 class="text-xl font-semibold mb-4">面临挑战</h4><ul class="list-disc pl-5 mb-6 space-y-2"><!--[-->`);
_push(`<div class="fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4"><div class="bg-white rounded-lg max-w-4xl w-full max-h-[90vh] overflow-y-auto"><div class="p-6 border-b"><div class="flex justify-between items-center"><h3 class="text-2xl font-bold">${ssrInterpolate(_ctx.$t(selectedCase.value.titleKey))}</h3><button class="text-gray-500 hover:text-gray-700"><i class="fas fa-times text-xl"></i></button></div></div><div class="p-6"><div class="flex flex-wrap gap-2 mb-6"><span class="px-3 py-1 bg-secondary/10 text-secondary text-sm rounded-full">${ssrInterpolate(_ctx.$t(selectedCase.value.industry))}</span><span class="px-3 py-1 bg-gray-100 text-gray-700 text-sm rounded-full">${ssrInterpolate(selectedCase.value.date)}</span></div><h4 class="text-xl font-semibold mb-4">${ssrInterpolate(_ctx.$t("cases.caseDetail.background"))}</h4><p class="text-gray-600 mb-6">${ssrInterpolate(_ctx.$t(selectedCase.value.backgroundKey))}</p><h4 class="text-xl font-semibold mb-4">${ssrInterpolate(_ctx.$t("cases.caseDetail.challenges"))}</h4><ul class="list-disc pl-5 mb-6 space-y-2"><!--[-->`);
ssrRenderList(selectedCase.value.challenges, (challenge, idx) => {
_push(`<li class="text-gray-600">${ssrInterpolate(challenge)}</li>`);
_push(`<li class="text-gray-600">${ssrInterpolate(_ctx.$t(challenge))}</li>`);
});
_push(`<!--]--></ul><h4 class="text-xl font-semibold mb-4">解决方案</h4><p class="text-gray-600 mb-4">${ssrInterpolate(selectedCase.value.solution)}</p><h4 class="text-xl font-semibold mb-4">业务成果</h4><ul class="list-disc pl-5 mb-6 space-y-2"><!--[-->`);
_push(`<!--]--></ul><h4 class="text-xl font-semibold mb-4">${ssrInterpolate(_ctx.$t("cases.caseDetail.solution"))}</h4><p class="text-gray-600 mb-4">${ssrInterpolate(_ctx.$t(selectedCase.value.solutionKey))}</p><h4 class="text-xl font-semibold mb-4">${ssrInterpolate(_ctx.$t("cases.caseDetail.results"))}</h4><ul class="list-disc pl-5 mb-6 space-y-2"><!--[-->`);
ssrRenderList(selectedCase.value.results, (result, idx) => {
_push(`<li class="text-gray-600">${ssrInterpolate(result)}</li>`);
_push(`<li class="text-gray-600">${ssrInterpolate(_ctx.$t(result))}</li>`);
});
_push(`<!--]--></ul></div><div class="p-6 border-t bg-gray-50"><div class="flex justify-end"><button class="px-4 py-2 bg-gray-200 text-gray-700 rounded hover:bg-gray-300"> 关闭 </button></div></div></div></div>`);
_push(`<!--]--></ul></div><div class="p-6 border-t bg-gray-50"><div class="flex justify-end"><button class="px-4 py-2 bg-gray-200 text-gray-700 rounded hover:bg-gray-300">${ssrInterpolate(_ctx.$t("cases.caseDetail.close"))}</button></div></div></div></div>`);
} else {
_push(`<!---->`);
}
_push(`<section class="py-16 bg-primary text-white"><div class="container text-center"><h2 class="text-4xl font-bold mb-6">想了解更多客户案例?</h2><p class="text-xl mb-8 max-w-2xl mx-auto leading-relaxed">联系我们获取更多行业相关的AWS云服务成功案例</p>`);
_push(`<section class="py-16 bg-primary text-white"><div class="container text-center"><h2 class="text-4xl font-bold mb-6">${ssrInterpolate(_ctx.$t("cases.contact.title"))}</h2><p class="text-xl mb-8 max-w-2xl mx-auto leading-relaxed">${ssrInterpolate(_ctx.$t("cases.contact.subtitle"))}</p>`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/contact",
class: "inline-flex items-center bg-white text-black px-8 py-4 rounded-lg hover:bg-gray-100 transition-colors duration-300 text-lg font-semibold"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` 联系我们 <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
_push2(`${ssrInterpolate(_ctx.$t("cases.contact.button"))} <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
} else {
return [
createTextVNode(" 联系我们 "),
createTextVNode(toDisplayString(_ctx.$t("cases.contact.button")) + " ", 1),
createVNode("i", { class: "fas fa-arrow-right ml-2" })
];
}

File diff suppressed because one or more lines are too long

View File

@ -1,48 +1,48 @@
const client_manifest = {
"_B5DzSfGL.js": {
"_CMPzECfg.js": {
"resourceType": "script",
"module": true,
"prefetch": true,
"preload": true,
"file": "B5DzSfGL.js",
"name": "nuxt-link",
"imports": [
"node_modules/nuxt/dist/app/entry.js"
]
},
"_C2iyXILq.js": {
"resourceType": "script",
"module": true,
"prefetch": true,
"preload": true,
"file": "C2iyXILq.js",
"file": "CMPzECfg.js",
"name": "HeroBanner.vue",
"imports": [
"node_modules/nuxt/dist/app/entry.js"
]
},
"_CTNZZ0jZ.js": {
"_CXatzjaf.js": {
"resourceType": "script",
"module": true,
"prefetch": true,
"preload": true,
"file": "CTNZZ0jZ.js",
"file": "CXatzjaf.js",
"name": "v3",
"imports": [
"node_modules/nuxt/dist/app/entry.js"
]
},
"_D4Kwfg7p.js": {
"resourceType": "script",
"module": true,
"prefetch": true,
"preload": true,
"file": "D4Kwfg7p.js",
"name": "nuxt-link",
"imports": [
"node_modules/nuxt/dist/app/entry.js"
]
},
"layouts/default.vue": {
"resourceType": "script",
"module": true,
"prefetch": true,
"preload": true,
"file": "HYuZ8ASD.js",
"file": "DGy46hw9.js",
"name": "default",
"src": "layouts/default.vue",
"isDynamicEntry": true,
"imports": [
"_B5DzSfGL.js",
"_D4Kwfg7p.js",
"node_modules/nuxt/dist/app/entry.js"
]
},
@ -51,14 +51,14 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "V4t9Btt1.js",
"file": "DCtL9BZ-.js",
"name": "error-404",
"src": "node_modules/nuxt/dist/app/components/error-404.vue",
"isDynamicEntry": true,
"imports": [
"_B5DzSfGL.js",
"_D4Kwfg7p.js",
"node_modules/nuxt/dist/app/entry.js",
"_CTNZZ0jZ.js"
"_CXatzjaf.js"
],
"css": []
},
@ -73,13 +73,13 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "BSlzqyc2.js",
"file": "DLEpXDj8.js",
"name": "error-500",
"src": "node_modules/nuxt/dist/app/components/error-500.vue",
"isDynamicEntry": true,
"imports": [
"node_modules/nuxt/dist/app/entry.js",
"_CTNZZ0jZ.js"
"_CXatzjaf.js"
],
"css": []
},
@ -94,7 +94,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "CX81I8Qo.js",
"file": "DSWUVrVG.js",
"name": "entry",
"src": "node_modules/nuxt/dist/app/entry.js",
"isEntry": true,
@ -103,20 +103,29 @@ const client_manifest = {
"node_modules/nuxt/dist/app/components/error-404.vue",
"node_modules/nuxt/dist/app/components/error-500.vue"
],
"css": [
"entry.DB55Vqze.css"
],
"_globalCSS": true
},
"entry.DB55Vqze.css": {
"file": "entry.DB55Vqze.css",
"resourceType": "style",
"prefetch": true,
"preload": true
},
"pages/about.vue": {
"resourceType": "script",
"module": true,
"prefetch": true,
"preload": true,
"file": "D-XMAsej.js",
"file": "DMaJR5zD.js",
"name": "about",
"src": "pages/about.vue",
"isDynamicEntry": true,
"imports": [
"_C2iyXILq.js",
"_B5DzSfGL.js",
"_CMPzECfg.js",
"_D4Kwfg7p.js",
"node_modules/nuxt/dist/app/entry.js"
]
},
@ -125,13 +134,13 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "Ck-IlX1H.js",
"file": "toIENW8q.js",
"name": "cases",
"src": "pages/cases.vue",
"isDynamicEntry": true,
"imports": [
"_C2iyXILq.js",
"_B5DzSfGL.js",
"_CMPzECfg.js",
"_D4Kwfg7p.js",
"node_modules/nuxt/dist/app/entry.js"
]
},
@ -140,12 +149,12 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "BIxlLiOC.js",
"file": "D4pWdZYp.js",
"name": "contact",
"src": "pages/contact.vue",
"isDynamicEntry": true,
"imports": [
"_C2iyXILq.js",
"_CMPzECfg.js",
"node_modules/nuxt/dist/app/entry.js"
]
},
@ -154,13 +163,13 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "BEIx1E6y.js",
"file": "CMRHilQO.js",
"name": "index",
"src": "pages/index.vue",
"isDynamicEntry": true,
"imports": [
"_C2iyXILq.js",
"_B5DzSfGL.js",
"_CMPzECfg.js",
"_D4Kwfg7p.js",
"node_modules/nuxt/dist/app/entry.js"
]
},
@ -169,13 +178,13 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "CE7bN5wJ.js",
"file": "B6lrqvh7.js",
"name": "products",
"src": "pages/products.vue",
"isDynamicEntry": true,
"imports": [
"_C2iyXILq.js",
"_B5DzSfGL.js",
"_CMPzECfg.js",
"_D4Kwfg7p.js",
"node_modules/nuxt/dist/app/entry.js"
]
},
@ -184,13 +193,13 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "BdW6r93b.js",
"file": "CmLpmxYD.js",
"name": "solutions",
"src": "pages/solutions.vue",
"isDynamicEntry": true,
"imports": [
"_C2iyXILq.js",
"_B5DzSfGL.js",
"_CMPzECfg.js",
"_D4Kwfg7p.js",
"node_modules/nuxt/dist/app/entry.js"
]
}

View File

@ -1 +1 @@
{"version":3,"file":"client.manifest.mjs","sources":["../../../dist/server/client.manifest.mjs"],"sourcesContent":null,"names":[],"mappings":"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"}
{"version":3,"file":"client.manifest.mjs","sources":["../../../dist/server/client.manifest.mjs"],"sourcesContent":null,"names":[],"mappings":"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"}

View File

@ -1,5 +1,6 @@
import { defineComponent, ref, watch, reactive, useSSRContext } from 'file://D:/doc/workspace/web3/node_modules/vue/index.mjs';
import { ssrRenderTeleport, ssrRenderClass, ssrRenderStyle, ssrInterpolate, ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual } from 'file://D:/doc/workspace/web3/node_modules/vue/server-renderer/index.mjs';
import { useI18n } from 'file://D:/doc/workspace/web3/node_modules/vue-i18n/dist/vue-i18n.mjs';
import { _ as _sfc_main$2 } from './HeroBanner.vue2.mjs';
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
@ -46,69 +47,70 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "contact",
__ssrInlineRender: true,
setup(__props) {
const { t } = useI18n();
const contactMethods = [
{
icon: "fas fa-phone",
title: "电话咨询",
subtitle: "周一至周日 9:00-21:00",
content: "400-123-4567",
titleKey: "contact.methods.phone.title",
subtitleKey: "contact.methods.phone.subtitle",
contentKey: "contact.methods.phone.content",
type: "phone"
},
{
icon: "fas fa-envelope",
title: "邮件咨询",
subtitle: "7*24小时邮件支持",
content: "contact@example.com",
titleKey: "contact.methods.email.title",
subtitleKey: "contact.methods.email.subtitle",
contentKey: "contact.methods.email.content",
type: "email"
},
{
icon: "fab fa-weixin",
title: "微信咨询",
subtitle: "扫描下方二维码",
content: "",
titleKey: "contact.methods.wechat.title",
subtitleKey: "contact.methods.wechat.subtitle",
contentKey: "",
type: "wechat"
}
];
const companyInfo = [
{
icon: "fas fa-map-marker-alt",
title: "北京总部",
content: "北京市朝阳区某某大厦10层"
titleKey: "contact.companyInfo.beijing.title",
contentKey: "contact.companyInfo.beijing.content"
},
{
icon: "fas fa-subway",
title: "交通方式",
content: "地铁6号线某某站A出口步行5分钟"
titleKey: "contact.companyInfo.transport.title",
contentKey: "contact.companyInfo.transport.content"
},
{
icon: "far fa-clock",
title: "办公时间",
content: "周一至周五: 9:00-18:00"
titleKey: "contact.companyInfo.hours.title",
contentKey: "contact.companyInfo.hours.content"
}
];
const services = [
{ value: "cloud", label: "云服务咨询" },
{ value: "migration", label: "上云迁移" },
{ value: "solution", label: "解决方案咨询" },
{ value: "price", label: "价格咨询" },
{ value: "other", label: "其他" }
{ value: "cloud", labelKey: "contact.form.serviceOptions.cloud" },
{ value: "migration", labelKey: "contact.form.serviceOptions.migration" },
{ value: "solution", labelKey: "contact.form.serviceOptions.solution" },
{ value: "price", labelKey: "contact.form.serviceOptions.price" },
{ value: "other", labelKey: "contact.form.serviceOptions.other" }
];
const faqs = [
{
question: "如何开始使用AWS云服务",
answer: "您可以通过我们的咨询服务获取专业的AWS云服务解决方案建议。我们的团队将根据您的具体需求为您提供最适合的云服务方案。"
questionKey: "contact.faq.items.q1.question",
answerKey: "contact.faq.items.q1.answer"
},
{
question: "如何获取技术支持?",
answer: "我们提供7*24小时技术支持服务您可以通过电话、邮件或在线咨询等方式联系我们的技术支持团队。"
questionKey: "contact.faq.items.q2.question",
answerKey: "contact.faq.items.q2.answer"
},
{
question: "如何计算使用成本?",
answer: "我们提供详细的成本评估服务,可以根据您的具体使用场景和需求,为您提供准确的成本预估和优化建议。"
questionKey: "contact.faq.items.q3.question",
answerKey: "contact.faq.items.q3.answer"
},
{
question: "如何申请试用服务?",
answer: "您可以通过在线咨询或直接联系我们的销售团队申请AWS云服务的试用。我们将为您提供专业的试用方案和技术支持。"
questionKey: "contact.faq.items.q4.question",
answerKey: "contact.faq.items.q4.answer"
}
];
const form = reactive({
@ -129,12 +131,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
const _component_NotificationToast = _sfc_main$1;
_push(`<div${ssrRenderAttrs(_attrs)}>`);
_push(ssrRenderComponent(_component_HeroBanner, {
title: "联系我们",
subtitle: "随时欢迎您的咨询,我们将为您提供专业的云服务解决方案"
title: _ctx.$t("contact.hero.title"),
subtitle: _ctx.$t("contact.hero.subtitle")
}, null, _parent));
_push(`<section class="section"><div class="container"><div class="grid md:grid-cols-3 gap-8 mb-16"><!--[-->`);
ssrRenderList(contactMethods, (contact, 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-20 h-20 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-secondary text-3xl", contact.icon])}"></i></div><h3 class="text-2xl font-semibold mb-4 text-center">${ssrInterpolate(contact.title)}</h3><p class="text-gray-600 mb-2 text-center">${ssrInterpolate(contact.subtitle)}</p><p class="text-2xl font-semibold text-secondary text-center">${ssrInterpolate(contact.content)}</p>`);
_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-20 h-20 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-secondary text-3xl", contact.icon])}"></i></div><h3 class="text-2xl font-semibold mb-4 text-center">${ssrInterpolate(_ctx.$t(contact.titleKey))}</h3><p class="text-gray-600 mb-2 text-center">${ssrInterpolate(_ctx.$t(contact.subtitleKey))}</p><p class="text-2xl font-semibold text-secondary text-center">${ssrInterpolate(_ctx.$t(contact.contentKey))}</p>`);
if (contact.type === "wechat") {
_push(`<div class="w-32 h-32 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-lg mx-auto flex items-center justify-center mt-4"><i class="fas fa-qrcode text-6xl text-secondary"></i></div>`);
} else {
@ -142,26 +144,26 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}
_push(`</div>`);
});
_push(`<!--]--></div><div class="grid md:grid-cols-2 gap-12"><div class="bg-white p-8 rounded-lg shadow-lg"><h2 class="text-3xl font-bold mb-8 text-center">在线咨询</h2><form class="space-y-6"><div class="grid md:grid-cols-2 gap-6"><div><label class="block text-sm font-medium text-gray-700 mb-2" for="name"> 姓名 <span class="text-red-500">*</span></label><input type="text" id="name"${ssrRenderAttr("value", form.name)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"></div><div><label class="block text-sm font-medium text-gray-700 mb-2" for="company"> 公司名称 <span class="text-red-500">*</span></label><input type="text" id="company"${ssrRenderAttr("value", form.company)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"></div></div><div class="grid md:grid-cols-2 gap-6"><div><label class="block text-sm font-medium text-gray-700 mb-2" for="email"> 邮箱 <span class="text-red-500">*</span></label><input type="email" id="email"${ssrRenderAttr("value", form.email)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"></div><div><label class="block text-sm font-medium text-gray-700 mb-2" for="phone"> 电话 <span class="text-red-500">*</span></label><input type="tel" id="phone"${ssrRenderAttr("value", form.phone)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"></div></div><div><label class="block text-sm font-medium text-gray-700 mb-2" for="service"> 咨询服务 <span class="text-red-500">*</span></label><select id="service" required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"><option value=""${ssrIncludeBooleanAttr(Array.isArray(form.service) ? ssrLooseContain(form.service, "") : ssrLooseEqual(form.service, "")) ? " selected" : ""}>请选择咨询服务</option><!--[-->`);
_push(`<!--]--></div><div class="grid md:grid-cols-2 gap-12"><div class="bg-white p-8 rounded-lg shadow-lg"><h2 class="text-3xl font-bold mb-8 text-center">${ssrInterpolate(_ctx.$t("contact.form.title"))}</h2><form class="space-y-6"><div class="grid md:grid-cols-2 gap-6"><div><label class="block text-sm font-medium text-gray-700 mb-2" for="name">${ssrInterpolate(_ctx.$t("contact.form.name"))} <span class="text-red-500">*</span></label><input type="text" id="name"${ssrRenderAttr("value", form.name)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"></div><div><label class="block text-sm font-medium text-gray-700 mb-2" for="company">${ssrInterpolate(_ctx.$t("contact.form.company"))} <span class="text-red-500">*</span></label><input type="text" id="company"${ssrRenderAttr("value", form.company)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"></div></div><div class="grid md:grid-cols-2 gap-6"><div><label class="block text-sm font-medium text-gray-700 mb-2" for="email">${ssrInterpolate(_ctx.$t("contact.form.email"))} <span class="text-red-500">*</span></label><input type="email" id="email"${ssrRenderAttr("value", form.email)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"></div><div><label class="block text-sm font-medium text-gray-700 mb-2" for="phone">${ssrInterpolate(_ctx.$t("contact.form.phone"))} <span class="text-red-500">*</span></label><input type="tel" id="phone"${ssrRenderAttr("value", form.phone)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"></div></div><div><label class="block text-sm font-medium text-gray-700 mb-2" for="service">${ssrInterpolate(_ctx.$t("contact.form.service"))} <span class="text-red-500">*</span></label><select id="service" required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300"><option value=""${ssrIncludeBooleanAttr(Array.isArray(form.service) ? ssrLooseContain(form.service, "") : ssrLooseEqual(form.service, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("contact.form.placeholders.selectService"))}</option><!--[-->`);
ssrRenderList(services, (service, index) => {
_push(`<option${ssrRenderAttr("value", service.value)}${ssrIncludeBooleanAttr(Array.isArray(form.service) ? ssrLooseContain(form.service, service.value) : ssrLooseEqual(form.service, service.value)) ? " selected" : ""}>${ssrInterpolate(service.label)}</option>`);
_push(`<option${ssrRenderAttr("value", service.value)}${ssrIncludeBooleanAttr(Array.isArray(form.service) ? ssrLooseContain(form.service, service.value) : ssrLooseEqual(form.service, service.value)) ? " selected" : ""}>${ssrInterpolate(_ctx.$t(service.labelKey))}</option>`);
});
_push(`<!--]--></select></div><div><label class="block text-sm font-medium text-gray-700 mb-2" for="message"> 咨询内容 <span class="text-red-500">*</span></label><textarea id="message" rows="4" required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300">${ssrInterpolate(form.message)}</textarea></div><button type="submit"${ssrIncludeBooleanAttr(submitting.value) ? " disabled" : ""} class="${ssrRenderClass([
_push(`<!--]--></select></div><div><label class="block text-sm font-medium text-gray-700 mb-2" for="message">${ssrInterpolate(_ctx.$t("contact.form.message"))} <span class="text-red-500">*</span></label><textarea id="message" rows="4" required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-secondary focus:border-transparent transition-colors duration-300">${ssrInterpolate(form.message)}</textarea></div><button type="submit"${ssrIncludeBooleanAttr(submitting.value) ? " disabled" : ""} class="${ssrRenderClass([
"w-full py-4 px-6 rounded-lg text-white text-lg font-semibold",
submitting.value ? "bg-gray-400" : "bg-secondary hover:bg-secondary/90 transition-colors duration-300"
])}">`);
if (submitting.value) {
_push(`<span><i class="fas fa-spinner fa-spin mr-2"></i>提交中... </span>`);
_push(`<span><i class="fas fa-spinner fa-spin mr-2"></i>${ssrInterpolate(_ctx.$t("contact.form.submitting"))}</span>`);
} else {
_push(`<span>提交咨询</span>`);
_push(`<span>${ssrInterpolate(_ctx.$t("contact.form.submit"))}</span>`);
}
_push(`</button></form></div><div><div class="bg-white p-8 rounded-lg shadow-lg mb-8"><h2 class="text-3xl font-bold mb-8 text-center">公司地址</h2><div class="space-y-6"><!--[-->`);
_push(`</button></form></div><div><div class="bg-white p-8 rounded-lg shadow-lg mb-8"><h2 class="text-3xl font-bold mb-8 text-center">${ssrInterpolate(_ctx.$t("contact.companyInfo.title"))}</h2><div class="space-y-6"><!--[-->`);
ssrRenderList(companyInfo, (info, index) => {
_push(`<div class="flex items-start"><div class="w-12 h-12 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mr-4"><i class="${ssrRenderClass(["text-secondary text-xl", info.icon])}"></i></div><div><h4 class="text-xl font-semibold mb-2">${ssrInterpolate(info.title)}</h4><p class="text-gray-600">${ssrInterpolate(info.content)}</p></div></div>`);
_push(`<div class="flex items-start"><div class="w-12 h-12 bg-gradient-to-br from-secondary/20 to-secondary/10 rounded-full flex items-center justify-center mr-4"><i class="${ssrRenderClass(["text-secondary text-xl", info.icon])}"></i></div><div><h4 class="text-xl font-semibold mb-2">${ssrInterpolate(_ctx.$t(info.titleKey))}</h4><p class="text-gray-600">${ssrInterpolate(_ctx.$t(info.contentKey))}</p></div></div>`);
});
_push(`<!--]--></div></div><div class="w-full h-96 rounded-lg shadow-lg overflow-hidden bg-gray-200 flex items-center justify-center"><i class="fas fa-map-marked-alt text-6xl text-gray-400"></i><span class="ml-4 text-gray-500">地图加载位置</span></div></div></div></div></section><section class="section bg-gray-50"><div class="container"><h2 class="text-4xl font-bold text-center mb-6">常见问题</h2><p class="text-xl text-center text-gray-600 mb-12">解答您最关心的问题</p><div class="grid md:grid-cols-2 gap-8"><!--[-->`);
_push(`<!--]--></div></div><div class="w-full h-96 rounded-lg shadow-lg overflow-hidden bg-gray-200 flex items-center justify-center"><i class="fas fa-map-marked-alt text-6xl text-gray-400"></i><span class="ml-4 text-gray-500">地图加载位置</span></div></div></div></div></section><section class="section bg-gray-50"><div class="container"><h2 class="text-4xl font-bold text-center mb-6">${ssrInterpolate(_ctx.$t("contact.faq.title"))}</h2><p class="text-xl text-center text-gray-600 mb-12">${ssrInterpolate(_ctx.$t("contact.faq.subtitle"))}</p><div class="grid md:grid-cols-2 gap-8"><!--[-->`);
ssrRenderList(faqs, (faq, index) => {
_push(`<div class="bg-white p-8 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1"><h3 class="text-2xl font-semibold mb-4">${ssrInterpolate(faq.question)}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(faq.answer)}</p></div>`);
_push(`<div class="bg-white p-8 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1"><h3 class="text-2xl font-semibold mb-4">${ssrInterpolate(_ctx.$t(faq.questionKey))}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t(faq.answerKey))}</p></div>`);
});
_push(`<!--]--></div></div></section>`);
_push(ssrRenderComponent(_component_NotificationToast, {

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,8 @@
import { defineComponent, ref, withCtx, createVNode, createTextVNode, toDisplayString, mergeProps, useSSRContext } from 'file://D:/doc/workspace/web3/node_modules/vue/index.mjs';
import { ssrRenderClass, ssrRenderComponent, ssrRenderList, ssrInterpolate, ssrRenderAttrs, ssrRenderSlot } from 'file://D:/doc/workspace/web3/node_modules/vue/server-renderer/index.mjs';
import { defineComponent, ref, computed, mergeProps, withCtx, createVNode, toDisplayString, createTextVNode, useSSRContext } from 'file://D:/doc/workspace/web3/node_modules/vue/index.mjs';
import { ssrRenderAttrs, ssrInterpolate, ssrRenderClass, ssrRenderComponent, ssrRenderList, ssrRenderSlot } from 'file://D:/doc/workspace/web3/node_modules/vue/server-renderer/index.mjs';
import { _ as __nuxt_component_0 } from './nuxt-link.mjs';
import { useRoute } from 'file://D:/doc/workspace/web3/node_modules/vue-router/dist/vue-router.node.mjs';
import { useI18n } from 'file://D:/doc/workspace/web3/node_modules/vue-i18n/dist/vue-i18n.mjs';
import 'file://D:/doc/workspace/web3/node_modules/ufo/dist/index.mjs';
import './server.mjs';
import 'file://D:/doc/workspace/web3/node_modules/hookable/dist/index.mjs';
@ -10,20 +11,40 @@ import 'file://D:/doc/workspace/web3/node_modules/h3/dist/index.mjs';
import 'file://D:/doc/workspace/web3/node_modules/radix3/dist/index.mjs';
import 'file://D:/doc/workspace/web3/node_modules/defu/dist/defu.mjs';
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
__name: "LanguageSwitcher",
__ssrInlineRender: true,
setup(__props) {
const i18n = useI18n();
const dropdownOpen = ref(false);
const currentLocale = computed(() => i18n.locale.value);
return (_ctx, _push, _parent, _attrs) => {
_push(`<div${ssrRenderAttrs(mergeProps({ class: "relative" }, _attrs))}><button class="flex items-center text-white/85 hover:text-secondary transition-colors duration-300"><span class="mr-1">${ssrInterpolate(currentLocale.value === "zh" ? "EN" : "中")}</span><i class="fas fa-chevron-down text-xs"></i></button>`);
if (dropdownOpen.value) {
_push(`<div class="absolute right-0 mt-2 bg-white rounded-md shadow-lg py-1 min-w-[100px] z-50"><button class="${ssrRenderClass([{ "bg-gray-100": currentLocale.value === "zh" }, "block w-full text-left px-4 py-2 text-gray-800 hover:bg-gray-100"])}"> 中文 </button><button class="${ssrRenderClass([{ "bg-gray-100": currentLocale.value === "en" }, "block w-full text-left px-4 py-2 text-gray-800 hover:bg-gray-100"])}"> English </button></div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
};
}
});
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
__name: "NavBar",
__ssrInlineRender: true,
setup(__props) {
useRoute();
const { t } = useI18n();
const mobileMenuOpen = ref(false);
const scrolled = ref(false);
const navItems = [
{ name: "首页", path: "/" },
{ name: "AWS产品", path: "/products" },
{ name: "解决方案", path: "/solutions" },
{ name: "客户案例", path: "/cases" },
{ name: "关于我们", path: "/about" },
{ name: "联系我们", path: "/contact" }
{ i18nKey: "nav.home", path: "/" },
{ i18nKey: "nav.products", path: "/products" },
{ i18nKey: "nav.solutions", path: "/solutions" },
{ i18nKey: "nav.cases", path: "/cases" },
{ i18nKey: "nav.about", path: "/about" },
{ i18nKey: "nav.contact", path: "/contact" }
];
return (_ctx, _push, _parent, _attrs) => {
const _component_NuxtLink = __nuxt_component_0;
@ -34,11 +55,11 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<i class="fas fa-cloud text-2xl mr-2"${_scopeId}></i><span class="text-xl font-bold"${_scopeId}>云服务专家</span>`);
_push2(`<i class="fas fa-cloud text-2xl mr-2"${_scopeId}></i><span class="text-xl font-bold"${_scopeId}>${ssrInterpolate(_ctx.$t("common.appName"))}</span>`);
} else {
return [
createVNode("i", { class: "fas fa-cloud text-2xl mr-2" }),
createVNode("span", { class: "text-xl font-bold" }, "云服务专家")
createVNode("span", { class: "text-xl font-bold" }, toDisplayString(_ctx.$t("common.appName")), 1)
];
}
}),
@ -53,17 +74,19 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`${ssrInterpolate(item.name)}`);
_push2(`${ssrInterpolate(_ctx.$t(item.i18nKey))}`);
} else {
return [
createTextVNode(toDisplayString(item.name), 1)
createTextVNode(toDisplayString(_ctx.$t(item.i18nKey)), 1)
];
}
}),
_: 2
}, _parent));
});
_push(`<!--]--></div><button class="md:hidden text-white p-2 rounded-lg hover:bg-white/10 transition-colors duration-300" aria-label="打开菜单"><i class="fas fa-bars text-xl"></i></button></div><div class="${ssrRenderClass(["md:hidden bg-primary absolute top-16 left-0 right-0 shadow-lg", { "hidden": !mobileMenuOpen.value }])}"><div class="container py-4"><div class="flex flex-col space-y-4"><!--[-->`);
_push(`<!--]-->`);
_push(ssrRenderComponent(_sfc_main$3, null, null, _parent));
_push(`</div><button class="md:hidden text-white p-2 rounded-lg hover:bg-white/10 transition-colors duration-300" aria-label="打开菜单"><i class="fas fa-bars text-xl"></i></button></div><div class="${ssrRenderClass(["md:hidden bg-primary absolute top-16 left-0 right-0 shadow-lg", { "hidden": !mobileMenuOpen.value }])}"><div class="container py-4"><div class="flex flex-col space-y-4"><!--[-->`);
ssrRenderList(navItems, (item, index) => {
_push(ssrRenderComponent(_component_NuxtLink, {
key: index,
@ -73,17 +96,19 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`${ssrInterpolate(item.name)}`);
_push2(`${ssrInterpolate(_ctx.$t(item.i18nKey))}`);
} else {
return [
createTextVNode(toDisplayString(item.name), 1)
createTextVNode(toDisplayString(_ctx.$t(item.i18nKey)), 1)
];
}
}),
_: 2
}, _parent));
});
_push(`<!--]--></div></div></div></div></nav><div class="h-16"></div><!--]-->`);
_push(`<!--]--><div class="py-2">`);
_push(ssrRenderComponent(_sfc_main$3, null, null, _parent));
_push(`</div></div></div></div></div></nav><div class="h-16"></div><!--]-->`);
};
}
});
@ -92,23 +117,24 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
__name: "FooterSection",
__ssrInlineRender: true,
setup(__props) {
const { t } = useI18n();
const products = [
{ name: "EC2 云服务器", path: "/products" },
{ name: "S3 对象存储", path: "/products" },
{ name: "RDS 数据库服务", path: "/products" },
{ name: "Lambda 无服务器", path: "/products" },
{ name: "更多产品...", path: "/products" }
{ i18nKey: "footer.productLinks.ec2", path: "/products" },
{ i18nKey: "footer.productLinks.s3", path: "/products" },
{ i18nKey: "footer.productLinks.rds", path: "/products" },
{ i18nKey: "footer.productLinks.lambda", path: "/products" },
{ i18nKey: "footer.productLinks.more", path: "/products" }
];
const solutions = [
{ name: "网站托管", path: "/solutions" },
{ name: "企业上云", path: "/solutions" },
{ name: "灾备方案", path: "/solutions" },
{ name: "大数据分析", path: "/solutions" },
{ name: "微服务架构", path: "/solutions" }
{ i18nKey: "footer.solutionLinks.web", path: "/solutions" },
{ i18nKey: "footer.solutionLinks.enterprise", path: "/solutions" },
{ i18nKey: "footer.solutionLinks.disaster", path: "/solutions" },
{ i18nKey: "footer.solutionLinks.bigdata", path: "/solutions" },
{ i18nKey: "footer.solutionLinks.microservice", path: "/solutions" }
];
return (_ctx, _push, _parent, _attrs) => {
const _component_NuxtLink = __nuxt_component_0;
_push(`<footer${ssrRenderAttrs(mergeProps({ class: "bg-primary text-white py-12" }, _attrs))}><div class="container"><div class="grid md:grid-cols-4 gap-8"><div><h5 class="text-lg font-semibold mb-4">云服务专家</h5><p class="text-white/50 mb-4">专业的AWS云服务解决方案提供商致力于帮助企业实现数字化转型</p><div class="flex space-x-4"><a href="#" class="text-white/50 hover:text-white transition-colors"><i class="fab fa-weixin"></i></a><a href="#" class="text-white/50 hover:text-white transition-colors"><i class="fab fa-weibo"></i></a><a href="#" class="text-white/50 hover:text-white transition-colors"><i class="fab fa-linkedin"></i></a></div></div><div><h5 class="text-lg font-semibold mb-4">AWS产品</h5><ul class="space-y-2"><!--[-->`);
_push(`<footer${ssrRenderAttrs(mergeProps({ class: "bg-primary text-white py-12" }, _attrs))}><div class="container"><div class="grid md:grid-cols-4 gap-8"><div><h5 class="text-lg font-semibold mb-4">${ssrInterpolate(_ctx.$t("common.appName"))}</h5><p class="text-white/50 mb-4">${ssrInterpolate(_ctx.$t("footer.description"))}</p><div class="flex space-x-4"><a href="#" class="text-white/50 hover:text-white transition-colors"><i class="fab fa-weixin"></i></a><a href="#" class="text-white/50 hover:text-white transition-colors"><i class="fab fa-weibo"></i></a><a href="#" class="text-white/50 hover:text-white transition-colors"><i class="fab fa-linkedin"></i></a></div></div><div><h5 class="text-lg font-semibold mb-4">${ssrInterpolate(_ctx.$t("footer.products"))}</h5><ul class="space-y-2"><!--[-->`);
ssrRenderList(products, (product, index) => {
_push(`<li>`);
_push(ssrRenderComponent(_component_NuxtLink, {
@ -117,10 +143,10 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`${ssrInterpolate(product.name)}`);
_push2(`${ssrInterpolate(_ctx.$t(product.i18nKey))}`);
} else {
return [
createTextVNode(toDisplayString(product.name), 1)
createTextVNode(toDisplayString(_ctx.$t(product.i18nKey)), 1)
];
}
}),
@ -128,7 +154,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
}, _parent));
_push(`</li>`);
});
_push(`<!--]--></ul></div><div><h5 class="text-lg font-semibold mb-4">解决方案</h5><ul class="space-y-2"><!--[-->`);
_push(`<!--]--></ul></div><div><h5 class="text-lg font-semibold mb-4">${ssrInterpolate(_ctx.$t("footer.solutions"))}</h5><ul class="space-y-2"><!--[-->`);
ssrRenderList(solutions, (solution, index) => {
_push(`<li>`);
_push(ssrRenderComponent(_component_NuxtLink, {
@ -137,10 +163,10 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`${ssrInterpolate(solution.name)}`);
_push2(`${ssrInterpolate(_ctx.$t(solution.i18nKey))}`);
} else {
return [
createTextVNode(toDisplayString(solution.name), 1)
createTextVNode(toDisplayString(_ctx.$t(solution.i18nKey)), 1)
];
}
}),
@ -148,7 +174,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
}, _parent));
_push(`</li>`);
});
_push(`<!--]--></ul></div><div><h5 class="text-lg font-semibold mb-4">联系我们</h5><ul class="space-y-3"><li class="flex items-start"><i class="fas fa-map-marker-alt text-white/70 mt-1 mr-3"></i><span class="text-white/70">北京市朝阳区某某大厦10层</span></li><li class="flex items-start"><i class="fas fa-phone text-white/70 mt-1 mr-3"></i><span class="text-white/70">400-123-4567</span></li><li class="flex items-start"><i class="fas fa-envelope text-white/70 mt-1 mr-3"></i><span class="text-white/70">contact@example.com</span></li></ul></div></div><div class="mt-12 pt-8 border-t border-white/10 text-center"><p class="text-white/50">© ${ssrInterpolate((/* @__PURE__ */ new Date()).getFullYear())} 云服务专家. 保留所有权利.</p></div></div></footer>`);
_push(`<!--]--></ul></div><div><h5 class="text-lg font-semibold mb-4">${ssrInterpolate(_ctx.$t("footer.contactUs"))}</h5><ul class="space-y-3"><li class="flex items-start"><i class="fas fa-map-marker-alt text-white/70 mt-1 mr-3"></i><span class="text-white/70">${ssrInterpolate(_ctx.$t("footer.address"))}</span></li><li class="flex items-start"><i class="fas fa-phone text-white/70 mt-1 mr-3"></i><span class="text-white/70">${ssrInterpolate(_ctx.$t("footer.phone"))}</span></li><li class="flex items-start"><i class="fas fa-envelope text-white/70 mt-1 mr-3"></i><span class="text-white/70">${ssrInterpolate(_ctx.$t("footer.email"))}</span></li></ul></div></div><div class="mt-12 pt-8 border-t border-white/10 text-center"><p class="text-white/50">© ${ssrInterpolate((/* @__PURE__ */ new Date()).getFullYear())} ${ssrInterpolate(_ctx.$t("common.appName"))}. ${ssrInterpolate(_ctx.$t("footer.allRightsReserved"))}</p></div></div></footer>`);
};
}
});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"file":"entry-styles-3.mjs.mjs","sources":["../../../dist/server/entry-styles-3.mjs.mjs"],"sourcesContent":null,"names":[],"mappings":"AAAK,MAAC,mCAAmC,GAAG;;;;"}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"file":"entry-styles.B9TyF0kY.mjs","sources":["../../../dist/server/entry-styles-1.mjs.mjs","../../../dist/server/entry-styles-2.mjs.mjs","../../../dist/server/_nuxt/entry-styles.B9TyF0kY.mjs"],"sourcesContent":null,"names":["style_0","style_1","style_2"],"mappings":";;AAAA,MAAM,QAAQ,GAAG,8mgBAA8mgB;;ACA/ngB,MAAM,IAAI,GAAG,kimBAAkimB;;ACG/imB,6BAAe,CAACA,QAAO,EAAEC,IAAO,EAAEC,mCAAO;;;;"}

View File

@ -10,6 +10,7 @@ import 'file://D:/doc/workspace/web3/node_modules/h3/dist/index.mjs';
import 'file://D:/doc/workspace/web3/node_modules/vue-router/dist/vue-router.node.mjs';
import 'file://D:/doc/workspace/web3/node_modules/radix3/dist/index.mjs';
import 'file://D:/doc/workspace/web3/node_modules/defu/dist/defu.mjs';
import 'file://D:/doc/workspace/web3/node_modules/vue-i18n/dist/vue-i18n.mjs';
import '../_/renderer.mjs';
import 'file://D:/doc/workspace/web3/node_modules/vue-bundle-renderer/dist/runtime.mjs';
import 'file://D:/doc/workspace/web3/node_modules/unhead/dist/server.mjs';

View File

@ -9,6 +9,7 @@ import 'file://D:/doc/workspace/web3/node_modules/vue-router/dist/vue-router.nod
import 'file://D:/doc/workspace/web3/node_modules/radix3/dist/index.mjs';
import 'file://D:/doc/workspace/web3/node_modules/defu/dist/defu.mjs';
import 'file://D:/doc/workspace/web3/node_modules/ufo/dist/index.mjs';
import 'file://D:/doc/workspace/web3/node_modules/vue-i18n/dist/vue-i18n.mjs';
import '../_/renderer.mjs';
import 'file://D:/doc/workspace/web3/node_modules/vue-bundle-renderer/dist/runtime.mjs';
import 'file://D:/doc/workspace/web3/node_modules/unhead/dist/server.mjs';

View File

@ -1,6 +1,7 @@
import { _ as __nuxt_component_0 } from './nuxt-link.mjs';
import { defineComponent, withCtx, createVNode, createTextVNode, useSSRContext } from 'file://D:/doc/workspace/web3/node_modules/vue/index.mjs';
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrInterpolate } from 'file://D:/doc/workspace/web3/node_modules/vue/server-renderer/index.mjs';
import { defineComponent, withCtx, createVNode, toDisplayString, createTextVNode, useSSRContext } from 'file://D:/doc/workspace/web3/node_modules/vue/index.mjs';
import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderList, ssrRenderClass } from 'file://D:/doc/workspace/web3/node_modules/vue/server-renderer/index.mjs';
import { useI18n } from 'file://D:/doc/workspace/web3/node_modules/vue-i18n/dist/vue-i18n.mjs';
import { _ as _sfc_main$1 } from './HeroBanner.vue2.mjs';
import 'file://D:/doc/workspace/web3/node_modules/ufo/dist/index.mjs';
import './server.mjs';
@ -15,70 +16,71 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "index",
__ssrInlineRender: true,
setup(__props) {
const { t } = useI18n();
const features = [
{
icon: "fas fa-shield-alt",
title: "安全可靠",
description: "AWS提供业界领先的安全服务包括加密、防火墙和身份验证保障您的数据安全"
titleKey: "home.features.security.title",
descriptionKey: "home.features.security.description"
},
{
icon: "fas fa-bolt",
title: "高性能",
description: "全球数据中心网络,低延迟高带宽,确保您的应用程序高效运行"
titleKey: "home.features.performance.title",
descriptionKey: "home.features.performance.description"
},
{
icon: "fas fa-dollar-sign",
title: "成本优化",
description: "按需付费模式无需前期投资降低IT运营成本"
titleKey: "home.features.cost.title",
descriptionKey: "home.features.cost.description"
}
];
const services = [
{
icon: "fas fa-check-circle",
title: "官方授权",
description: "我们是AWS官方授权的合作伙伴可提供正规授权和发票"
titleKey: "home.services.official.title",
descriptionKey: "home.services.official.description"
},
{
icon: "fas fa-percentage",
title: "价格优势",
description: "相比直接采购,我们能提供更具竞争力的价格和灵活的付款方式"
titleKey: "home.services.price.title",
descriptionKey: "home.services.price.description"
},
{
icon: "fas fa-headset",
title: "技术支持",
description: "专业的技术团队提供咨询、部署和运维服务,解决您的技术难题"
titleKey: "home.services.support.title",
descriptionKey: "home.services.support.description"
},
{
icon: "fas fa-graduation-cap",
title: "培训服务",
description: "为您的团队提供专业的AWS技术培训提升技术能力"
titleKey: "home.services.training.title",
descriptionKey: "home.services.training.description"
}
];
const products = [
{
icon: "fas fa-server",
title: "EC2 云服务器",
description: "可扩展的计算能力,适用于各种工作负载,从小型网站到企业级应用"
titleKey: "home.products.ec2.title",
descriptionKey: "home.products.ec2.description"
},
{
icon: "fas fa-database",
title: "S3 对象存储",
description: "安全、可靠的对象存储服务,适用于备份、归档和数据湖等场景"
titleKey: "home.products.s3.title",
descriptionKey: "home.products.s3.description"
},
{
icon: "fas fa-network-wired",
title: "RDS 关系型数据库",
description: "易于部署和管理的关系型数据库服务,支持多种主流数据库引擎"
titleKey: "home.products.rds.title",
descriptionKey: "home.products.rds.description"
}
];
const cases = [
{
title: "某金融科技公司",
description: "通过迁移到AWS云服务该公司将应用响应时间缩短了40%并节省了30%的IT运营成本"
titleKey: "home.cases.fintech.title",
descriptionKey: "home.cases.fintech.description"
},
{
title: "某电商平台",
description: "利用AWS弹性伸缩服务轻松应对销售高峰期流量提高了用户体验和订单转化率"
titleKey: "home.cases.ecommerce.title",
descriptionKey: "home.cases.ecommerce.description"
}
];
return (_ctx, _push, _parent, _attrs) => {
@ -86,50 +88,50 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
const _component_NuxtLink = __nuxt_component_0;
_push(`<div${ssrRenderAttrs(_attrs)}>`);
_push(ssrRenderComponent(_component_HeroBanner, {
title: "AWS云服务器专业代理商",
subtitle: "为您的企业提供专业的AWS云服务解决方案助力数字化转型"
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}>了解AWS优势</a><a href="#contact" class="btn-secondary"${_scopeId}>联系顾问</a></div>`);
_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"
}, "了解AWS优势"),
}, 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">AWS产品与服务</h2><p class="text-xl md:text-[20px] font-light text-[#333333] mb-4 leading-relaxed">全面的云计算产品线,满足您的各种业务需求</p><p class="text-base md:text-[16px] text-[#333333] leading-relaxed">作为AWS授权代理商我们提供全系列AWS产品和服务并为您提供专业的咨询<br>和支持,帮助您选择最适合的产品组合。</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
_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(feature.title)}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(feature.description)}</p></div>`);
_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">我们的服务优势</h2><p class="text-xl text-gray-600 leading-relaxed">作为AWS授权合作伙伴我们提供全方位的专业服务</p></div><div class="grid md:grid-cols-2 gap-8"><!--[-->`);
_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(service.title)}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(service.description)}</p></div></div></div>`);
_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">AWS核心产品服务</h2><p class="text-xl text-gray-600 leading-relaxed">全面的云服务产品线,满足各种业务需求</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
_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(product.title)}</h3><p class="text-gray-600 leading-relaxed mb-6">${ssrInterpolate(product.description)}</p>`);
_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(` 了解详情 <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
_push2(`${ssrInterpolate(_ctx.$t("home.products.detail"))} <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
} else {
return [
createTextVNode(" 了解详情 "),
createTextVNode(toDisplayString(_ctx.$t("home.products.detail")) + " ", 1),
createVNode("i", { class: "fas fa-arrow-right ml-2" })
];
}
@ -145,29 +147,29 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` 查看全部AWS产品 <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
_push2(`${ssrInterpolate(_ctx.$t("home.products.viewAll"))} <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
} else {
return [
createTextVNode(" 查看全部AWS产品 "),
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">成功客户案例</h2><p class="text-xl text-center text-gray-600 mb-12">看看其他企业如何利用AWS云服务提升业务价值</p><div class="grid md:grid-cols-2 gap-8"><!--[-->`);
_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(case_item.title)}</h3><p class="text-gray-600 mb-4">${ssrInterpolate(case_item.description)}</p>`);
_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(`阅读详情`);
_push2(`${ssrInterpolate(_ctx.$t("home.cases.readMore"))}`);
} else {
return [
createTextVNode("阅读详情")
createTextVNode(toDisplayString(_ctx.$t("home.cases.readMore")), 1)
];
}
}),

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,7 @@
import { _ as __nuxt_component_0 } from './nuxt-link.mjs';
import { defineComponent, withCtx, createTextVNode, createVNode, useSSRContext } from 'file://D:/doc/workspace/web3/node_modules/vue/index.mjs';
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrInterpolate } from 'file://D:/doc/workspace/web3/node_modules/vue/server-renderer/index.mjs';
import { defineComponent, withCtx, createTextVNode, createVNode, toDisplayString, useSSRContext } from 'file://D:/doc/workspace/web3/node_modules/vue/index.mjs';
import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderList, ssrRenderClass } from 'file://D:/doc/workspace/web3/node_modules/vue/server-renderer/index.mjs';
import { useI18n } from 'file://D:/doc/workspace/web3/node_modules/vue-i18n/dist/vue-i18n.mjs';
import { _ as _sfc_main$1 } from './HeroBanner.vue2.mjs';
import 'file://D:/doc/workspace/web3/node_modules/ufo/dist/index.mjs';
import './server.mjs';
@ -15,96 +16,97 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "products",
__ssrInlineRender: true,
setup(__props) {
const { t } = useI18n();
const productCategories = [
{
icon: "fas fa-server",
name: "计算服务",
description: "包括EC2、Lambda等提供灵活的计算能力"
nameKey: "products.categories.compute.name",
descriptionKey: "products.categories.compute.description"
},
{
icon: "fas fa-database",
name: "存储服务",
description: "包括S3、EBS等提供可靠的数据存储解决方案"
nameKey: "products.categories.storage.name",
descriptionKey: "products.categories.storage.description"
},
{
icon: "fas fa-sitemap",
name: "网络服务",
description: "包括VPC、Route 53等提供安全灵活的网络管理"
nameKey: "products.categories.network.name",
descriptionKey: "products.categories.network.description"
},
{
icon: "fas fa-shield-alt",
name: "安全与身份",
description: "包括IAM、GuardDuty等提供全面的安全防护"
nameKey: "products.categories.security.name",
descriptionKey: "products.categories.security.description"
},
{
icon: "fas fa-chart-line",
name: "监控与管理",
description: "包括CloudWatch、Systems Manager等提供全面的监控和管理工具"
nameKey: "products.categories.monitoring.name",
descriptionKey: "products.categories.monitoring.description"
},
{
icon: "fas fa-robot",
name: "人工智能",
description: "包括SageMaker、Rekognition等提供先进的AI服务"
nameKey: "products.categories.ai.name",
descriptionKey: "products.categories.ai.description"
}
];
const products = [
{
icon: "fas fa-server",
name: "Amazon EC2",
description: "Amazon Elastic Compute Cloud (EC2) 是一种提供可扩展计算能力的网络服务,专为云端计算设计。使用 EC2 可消除前期硬件投资,因此您能够更快地开发和部署应用程序。",
nameKey: "products.productList.ec2.name",
descriptionKey: "products.productList.ec2.description",
features: [
"灵活选择实例类型,适应不同应用场景",
"按秒计费,降低运营成本",
"自动扩展,应对业务峰值",
"高可用性和可靠性保障"
"products.productList.ec2.features[0]",
"products.productList.ec2.features[1]",
"products.productList.ec2.features[2]",
"products.productList.ec2.features[3]"
],
pricing: "按需付费起价低至¥0.1/小时"
pricing: t("products.productList.ec2.pricing")
},
{
icon: "fas fa-database",
name: "Amazon S3",
description: "Amazon Simple Storage Service (S3) 是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能。这意味着任何规模的企业都可以存储和保护任意数量的数据。",
nameKey: "products.productList.s3.name",
descriptionKey: "products.productList.s3.description",
features: [
"无限容量扩展,适合任何规模的数据存储",
"99.999999999% 的数据持久性",
"多种存储类别,优化成本",
"强大的访问控制和加密功能"
"products.productList.s3.features[0]",
"products.productList.s3.features[1]",
"products.productList.s3.features[2]",
"products.productList.s3.features[3]"
],
pricing: "按存储量和请求数付费起价低至¥0.2/GB/月"
pricing: t("products.productList.s3.pricing")
},
{
icon: "fas fa-table",
name: "Amazon RDS",
description: "Amazon Relational Database Service (RDS) 使在云中设置、操作和扩展关系数据库变得简单。它提供经济高效且可调整容量的容量,同时自动执行耗时的管理任务。",
nameKey: "products.productList.rds.name",
descriptionKey: "products.productList.rds.description",
features: [
"支持多种数据库引擎MySQL、PostgreSQL、Oracle等",
"自动备份和恢复功能",
"高可用性主备部署",
"自动软件更新和维护"
"products.productList.rds.features[0]",
"products.productList.rds.features[1]",
"products.productList.rds.features[2]",
"products.productList.rds.features[3]"
],
pricing: "按实例类型计费起价低至¥0.5/小时"
pricing: t("products.productList.rds.pricing")
}
];
const advantages = [
{
icon: "fas fa-tachometer-alt",
title: "快速部署",
description: "专业的团队帮助您快速部署AWS产品缩短上线时间"
titleKey: "products.advantages.deployment.title",
descriptionKey: "products.advantages.deployment.description"
},
{
icon: "fas fa-hand-holding-usd",
title: "成本优化",
description: "根据业务需求,为您定制最优成本方案,避免资源浪费"
titleKey: "products.advantages.cost.title",
descriptionKey: "products.advantages.cost.description"
},
{
icon: "fas fa-lock",
title: "安全保障",
description: "提供全面的安全评估和最佳实践,保障业务安全"
titleKey: "products.advantages.security.title",
descriptionKey: "products.advantages.security.description"
},
{
icon: "fas fa-headset",
title: "专业支持",
description: "7*24小时技术支持解决您使用过程中的各种问题"
titleKey: "products.advantages.support.title",
descriptionKey: "products.advantages.support.description"
}
];
return (_ctx, _push, _parent, _attrs) => {
@ -112,36 +114,36 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
const _component_NuxtLink = __nuxt_component_0;
_push(`<div${ssrRenderAttrs(_attrs)}>`);
_push(ssrRenderComponent(_component_HeroBanner, {
title: "AWS产品",
subtitle: "全面的云计算产品线,满足您的各种业务需求"
title: _ctx.$t("products.hero.title"),
subtitle: _ctx.$t("products.hero.subtitle")
}, null, _parent));
_push(`<section class="section"><div class="container"><div class="max-w-4xl mx-auto text-center mb-16"><h2 class="text-4xl font-bold text-[#333333] mb-4">AWS全线产品</h2><p class="text-xl text-gray-600 leading-relaxed">覆盖计算、存储、数据库、网络、安全等多个领域</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
_push(`<section class="section"><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("products.categories.title"))}</h2><p class="text-xl text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t("products.categories.subtitle"))}</p></div><div class="grid md:grid-cols-3 gap-8"><!--[-->`);
ssrRenderList(productCategories, (category, 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", category.icon])}"></i></div><h3 class="text-xl font-semibold mb-4">${ssrInterpolate(category.name)}</h3><p class="text-gray-600 leading-relaxed mb-6">${ssrInterpolate(category.description)}</p><a href="#product-list" class="inline-flex items-center text-secondary hover:text-secondary/90"> 查看产品 <i class="fas fa-arrow-right ml-2"></i></a></div>`);
_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", category.icon])}"></i></div><h3 class="text-xl font-semibold mb-4">${ssrInterpolate(_ctx.$t(category.nameKey))}</h3><p class="text-gray-600 leading-relaxed mb-6">${ssrInterpolate(_ctx.$t(category.descriptionKey))}</p><a href="#product-list" class="inline-flex items-center text-secondary hover:text-secondary/90">${ssrInterpolate(_ctx.$t("products.categories.viewProducts"))} <i class="fas fa-arrow-right ml-2"></i></a></div>`);
});
_push(`<!--]--></div></div></section><section id="product-list" 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">热门产品服务</h2><p class="text-xl text-gray-600 leading-relaxed">AWS核心产品详细介绍</p></div><div class="space-y-12"><!--[-->`);
_push(`<!--]--></div></div></section><section id="product-list" 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("products.productList.title"))}</h2><p class="text-xl text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t("products.productList.subtitle"))}</p></div><div class="space-y-12"><!--[-->`);
ssrRenderList(products, (product, index) => {
_push(`<div class="bg-white rounded-lg shadow-lg overflow-hidden"><div class="grid md:grid-cols-3"><div class="bg-gradient-to-br from-secondary/20 to-secondary/10 flex items-center justify-center p-8"><i class="${ssrRenderClass(["text-8xl text-secondary", product.icon])}"></i></div><div class="md:col-span-2 p-8"><h3 class="text-2xl font-semibold mb-4">${ssrInterpolate(product.name)}</h3><p class="text-gray-600 leading-relaxed mb-6">${ssrInterpolate(product.description)}</p><div class="mb-6"><h4 class="text-lg font-semibold mb-2">产品优势</h4><ul class="space-y-2"><!--[-->`);
_push(`<div class="bg-white rounded-lg shadow-lg overflow-hidden"><div class="grid md:grid-cols-3"><div class="bg-gradient-to-br from-secondary/20 to-secondary/10 flex items-center justify-center p-8"><i class="${ssrRenderClass(["text-8xl text-secondary", product.icon])}"></i></div><div class="md:col-span-2 p-8"><h3 class="text-2xl font-semibold mb-4">${ssrInterpolate(_ctx.$t(product.nameKey))}</h3><p class="text-gray-600 leading-relaxed mb-6">${ssrInterpolate(_ctx.$t(product.descriptionKey))}</p><div class="mb-6"><h4 class="text-lg font-semibold mb-2">${ssrInterpolate(_ctx.$t("products.productList.advantages"))}</h4><ul class="space-y-2"><!--[-->`);
ssrRenderList(product.features, (feature, idx) => {
_push(`<li class="flex items-start"><i class="fas fa-check-circle text-green-500 mt-1 mr-2"></i><span class="text-gray-600">${ssrInterpolate(feature)}</span></li>`);
_push(`<li class="flex items-start"><i class="fas fa-check-circle text-green-500 mt-1 mr-2"></i><span class="text-gray-600">${ssrInterpolate(_ctx.$t(feature))}</span></li>`);
});
_push(`<!--]--></ul></div><div class="flex justify-between items-center"><a href="#contact" class="btn-primary">咨询详情</a><span class="text-gray-500">价格: ${ssrInterpolate(product.pricing)}</span></div></div></div></div>`);
_push(`<!--]--></ul></div><div class="flex justify-between items-center"><a href="#contact" class="btn-primary">${ssrInterpolate(_ctx.$t("products.productList.inquiry"))}</a><span class="text-gray-500">${ssrInterpolate(_ctx.$t("products.productList.pricing"))}: ${ssrInterpolate(product.pricing)}</span></div></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">我们的优势</h2><p class="text-xl text-gray-600 leading-relaxed">作为AWS授权合作伙伴我们提供专业的AWS产品咨询和部署服务</p></div><div class="grid md:grid-cols-4 gap-8"><!--[-->`);
_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("products.advantages.title"))}</h2><p class="text-xl text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t("products.advantages.subtitle"))}</p></div><div class="grid md:grid-cols-4 gap-8"><!--[-->`);
ssrRenderList(advantages, (advantage, index) => {
_push(`<div class="bg-white p-8 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1 text-center"><div class="w-16 h-16 bg-accent/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-accent text-2xl", advantage.icon])}"></i></div><h3 class="text-xl font-semibold mb-4">${ssrInterpolate(advantage.title)}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(advantage.description)}</p></div>`);
_push(`<div class="bg-white p-8 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1 text-center"><div class="w-16 h-16 bg-accent/10 rounded-full flex items-center justify-center mx-auto mb-6"><i class="${ssrRenderClass(["text-accent text-2xl", advantage.icon])}"></i></div><h3 class="text-xl font-semibold mb-4">${ssrInterpolate(_ctx.$t(advantage.titleKey))}</h3><p class="text-gray-600 leading-relaxed">${ssrInterpolate(_ctx.$t(advantage.descriptionKey))}</p></div>`);
});
_push(`<!--]--></div></div></section><section id="contact" class="py-16 bg-primary text-white"><div class="container text-center"><h2 class="text-4xl font-bold mb-6">想了解更多产品信息?</h2><p class="text-xl mb-8 max-w-2xl mx-auto leading-relaxed">我们的AWS产品专家将为您提供详细的产品介绍和价格咨询</p>`);
_push(`<!--]--></div></div></section><section id="contact" class="py-16 bg-primary text-white"><div class="container text-center"><h2 class="text-4xl font-bold mb-6">${ssrInterpolate(_ctx.$t("products.contact.title"))}</h2><p class="text-xl mb-8 max-w-2xl mx-auto leading-relaxed">${ssrInterpolate(_ctx.$t("products.contact.subtitle"))}</p>`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/contact",
class: "inline-flex items-center bg-white text-black px-8 py-4 rounded-lg hover:bg-gray-100 transition-colors duration-300 text-lg font-semibold"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` 联系产品顾问 <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
_push2(`${ssrInterpolate(_ctx.$t("products.contact.button"))} <i class="fas fa-arrow-right ml-2"${_scopeId}></i>`);
} else {
return [
createTextVNode(" 联系产品顾问 "),
createTextVNode(toDisplayString(_ctx.$t("products.contact.button")) + " ", 1),
createVNode("i", { class: "fas fa-arrow-right ml-2" })
];
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More