feat: 反馈修改
|
@ -11,7 +11,6 @@
|
||||||
|
|
||||||
# next.js
|
# next.js
|
||||||
/.next/
|
/.next/
|
||||||
/out/
|
|
||||||
|
|
||||||
# production
|
# production
|
||||||
/build
|
/build
|
||||||
|
|
|
@ -1,15 +1,6 @@
|
||||||
/** @type {import('next').NextConfig} */
|
/** @type {import('next').NextConfig} */
|
||||||
const nextConfig = {
|
const nextConfig = {
|
||||||
output: 'export',
|
output: 'export',
|
||||||
async redirects() {
|
|
||||||
return [
|
|
||||||
{
|
|
||||||
source: '/',
|
|
||||||
destination: '/zh/home',
|
|
||||||
permanent: true,
|
|
||||||
},
|
|
||||||
];
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default nextConfig;
|
export default nextConfig;
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
self.__BUILD_MANIFEST={__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/_error":["static/chunks/pages/_error-2b1e5691dd2d9302.js"],sortedPages:["/_app","/_error"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
|
@ -0,0 +1 @@
|
||||||
|
self.__SSG_MANIFEST=new Set(["\u002F[lang]\u002Fhome"]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
|
|
@ -0,0 +1 @@
|
||||||
|
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[958],{9238:function(e,t,n){Promise.resolve().then(n.bind(n,7168))},7168:function(e,t,n){"use strict";n.d(t,{default:function(){return c}});var r=n(881),s=n(6509),i=n(4149);function a(e){let{dict:t,lang:n}=e,[a,c]=(0,i.useState)(!1);return(0,r.jsx)(r.Fragment,{children:(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsxs)("div",{className:"flex items-center w-[129px] h-[28px] bg-[#EEF1F6] border-[1px] border-[#eeeeee] rounded-[3px] px-[10px] mt-[18px] cursor-pointer",onClick:()=>c(!a),children:[(0,r.jsx)("img",{src:"/common/earth.png",width:16.5,height:16.5,alt:"logo"}),(0,r.jsx)("div",{className:"flex-1 text-[14px] text-[#333333] mx-[9px]",children:null==t?void 0:t.lang}),(0,r.jsx)("img",{className:"transition-transform duration-300 transform rotate-0 ".concat(a&&"rotate-180"),src:"/common/arrow.png",width:10,height:5,alt:"logo"})]}),(0,r.jsx)(s.default,{href:"zh"===n?"/en/home.html":"/index.html",children:(0,r.jsx)("div",{className:"absolute ".concat(!a&&"hidden"," top-[30px] w-[129px] h-[28px] \n bg-[#EEF1F6] text-center transition-all duration-300 origin-top group-hover:block"),children:(0,r.jsx)("div",{className:"text-[14px] text-[#333333]",children:null==t?void 0:t.lang1})})})]})})}function c(e){let{dict:t,lang:n}=e,[c,l]=(0,i.useState)(t.home),o=[{name:t.home,href:"#home"},{name:t.services,href:"#service"},{name:t.caseGallery,href:"#case"},{name:t.contactUs,href:"#contact "}];return(0,r.jsx)(r.Fragment,{children:(0,r.jsxs)("div",{className:"flex items-center px-[20px] h-[80px] border-b-1 border-solid border-[#D8D8D8]",style:{borderBottom:"1px solid #D8D8D8"},children:[(0,r.jsx)("img",{src:"/common/logo.png",width:180,height:47,alt:"logo"}),(0,r.jsx)("div",{className:"flex flex-1 items-end h-[80px] mx-[13px]",children:o.map(e=>(0,r.jsx)(s.default,{href:e.href,children:(0,r.jsxs)("div",{className:"text-center cursor-pointer",onClick:()=>l(e.name),children:[(0,r.jsx)("div",{className:"my-[10px] w-[144px] text-[18px]",children:e.name}),c===e.name?(0,r.jsx)("img",{src:"/common/tab_checked.png",width:144,height:8,alt:""}):(0,r.jsx)("div",{className:"h-[8px]"})]})},e.name))}),(0,r.jsx)("div",{className:"",children:(0,r.jsx)(a,{dict:t,lang:n})})]})})}}},function(e){e.O(0,[509,985,330,744],function(){return e(e.s=9238)}),_N_E=e.O()}]);
|
|
@ -0,0 +1 @@
|
||||||
|
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[409],{6325:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_not-found/page",function(){return n(9094)}])},9094:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s}}),n(8806);let i=n(881);n(4149);let o={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},l={display:"inline-block"},r={display:"inline-block",margin:"0 20px 0 0",padding:"0 23px 0 0",fontSize:24,fontWeight:500,verticalAlign:"top",lineHeight:"49px"},d={fontSize:14,fontWeight:400,lineHeight:"49px",margin:0};function s(){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("title",{children:"404: This page could not be found."}),(0,i.jsx)("div",{style:o,children:(0,i.jsxs)("div",{children:[(0,i.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}),(0,i.jsx)("h1",{className:"next-error-h1",style:r,children:"404"}),(0,i.jsx)("div",{style:l,children:(0,i.jsx)("h2",{style:d,children:"This page could not be found."})})]})})]})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},function(e){e.O(0,[985,330,744],function(){return e(e.s=6325)}),_N_E=e.O()}]);
|
|
@ -0,0 +1 @@
|
||||||
|
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[185],{62:function(e,a,_){Promise.resolve().then(_.t.bind(_,5418,23)),Promise.resolve().then(_.t.bind(_,2045,23)),Promise.resolve().then(_.t.bind(_,8226,23))},8226:function(){},2045:function(e){e.exports={style:{fontFamily:"'__geistMono_c3aa02', '__geistMono_Fallback_c3aa02'"},className:"__className_c3aa02",variable:"__variable_c3aa02"}},5418:function(e){e.exports={style:{fontFamily:"'__geistSans_1e4310', '__geistSans_Fallback_1e4310'"},className:"__className_1e4310",variable:"__variable_1e4310"}}},function(e){e.O(0,[473,985,330,744],function(){return e(e.s=62)}),_N_E=e.O()}]);
|
|
@ -0,0 +1 @@
|
||||||
|
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[744],{3030:function(e,n,t){Promise.resolve().then(t.t.bind(t,1013,23)),Promise.resolve().then(t.t.bind(t,8073,23)),Promise.resolve().then(t.t.bind(t,1626,23)),Promise.resolve().then(t.t.bind(t,6102,23)),Promise.resolve().then(t.t.bind(t,4262,23)),Promise.resolve().then(t.t.bind(t,2609,23))}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[985,330],function(){return n(39),n(3030)}),_N_E=e.O()}]);
|
|
@ -0,0 +1 @@
|
||||||
|
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[888],{9452:function(n,_,u){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app",function(){return u(4820)}])}},function(n){var _=function(_){return n(n.s=_)};n.O(0,[774,179],function(){return _(9452),_(6699)}),_N_E=n.O()}]);
|
|
@ -0,0 +1 @@
|
||||||
|
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[820],{7022:function(n,_,u){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error",function(){return u(3936)}])}},function(n){n.O(0,[888,774,179],function(){return n(n.s=7022)}),_N_E=n.O()}]);
|
|
@ -0,0 +1 @@
|
||||||
|
!function(){"use strict";var e,t,n,r,o,u,i,c,f,a={},l={};function d(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={exports:{}},r=!0;try{a[e](n,n.exports,d),r=!1}finally{r&&delete l[e]}return n.exports}d.m=a,e=[],d.O=function(t,n,r,o){if(n){o=o||0;for(var u=e.length;u>0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[n,r,o];return}for(var i=1/0,u=0;u<e.length;u++){for(var n=e[u][0],r=e[u][1],o=e[u][2],c=!0,f=0;f<n.length;f++)i>=o&&Object.keys(d.O).every(function(e){return d.O[e](n[f])})?n.splice(f--,1):(c=!1,o<i&&(i=o));if(c){e.splice(u--,1);var a=r();void 0!==a&&(t=a)}}return t},d.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return d.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},d.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var o=Object.create(null);d.r(o);var u={};t=t||[null,n({}),n([]),n(n)];for(var i=2&r&&e;"object"==typeof i&&!~t.indexOf(i);i=n(i))Object.getOwnPropertyNames(i).forEach(function(t){u[t]=function(){return e[t]}});return u.default=function(){return e},d.d(o,u),o},d.d=function(e,t){for(var n in t)d.o(t,n)&&!d.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},d.f={},d.e=function(e){return Promise.all(Object.keys(d.f).reduce(function(t,n){return d.f[n](e,t),t},[]))},d.u=function(e){},d.miniCssF=function(e){},d.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},o="_N_E:",d.l=function(e,t,n,u){if(r[e]){r[e].push(t);return}if(void 0!==n)for(var i,c,f=document.getElementsByTagName("script"),a=0;a<f.length;a++){var l=f[a];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==o+n){i=l;break}}i||(c=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,d.nc&&i.setAttribute("nonce",d.nc),i.setAttribute("data-webpack",o+n),i.src=d.tu(e)),r[e]=[t];var s=function(t,n){i.onerror=i.onload=null,clearTimeout(p);var o=r[e];if(delete r[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach(function(e){return e(n)}),t)return t(n)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=s.bind(null,i.onerror),i.onload=s.bind(null,i.onload),c&&document.head.appendChild(i)},d.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.tt=function(){return void 0===u&&(u={createScriptURL:function(e){return e}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(u=trustedTypes.createPolicy("nextjs#bundler",u))),u},d.tu=function(e){return d.tt().createScriptURL(e)},d.p="/_next/",i={272:0,473:0},d.f.j=function(e,t){var n=d.o(i,e)?i[e]:void 0;if(0!==n){if(n)t.push(n[2]);else if(/^(272|473)$/.test(e))i[e]=0;else{var r=new Promise(function(t,r){n=i[e]=[t,r]});t.push(n[2]=r);var o=d.p+d.u(e),u=Error();d.l(o,function(t){if(d.o(i,e)&&(0!==(n=i[e])&&(i[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;u.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",u.name="ChunkLoadError",u.type=r,u.request=o,n[1](u)}},"chunk-"+e,e)}}},d.O.j=function(e){return 0===i[e]},c=function(e,t){var n,r,o=t[0],u=t[1],c=t[2],f=0;if(o.some(function(e){return 0!==i[e]})){for(n in u)d.o(u,n)&&(d.m[n]=u[n]);if(c)var a=c(d)}for(e&&e(t);f<o.length;f++)r=o[f],d.o(i,r)&&i[r]&&i[r][0](),i[r]=0;return d.O(a)},(f=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(c.bind(null,0)),f.push=c.bind(null,f.push.bind(f))}();
|
After Width: | Height: | Size: 316 B |
After Width: | Height: | Size: 645 B |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 529 B |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 198 KiB |
After Width: | Height: | Size: 159 KiB |
After Width: | Height: | Size: 160 KiB |
After Width: | Height: | Size: 340 KiB |
After Width: | Height: | Size: 86 KiB |
After Width: | Height: | Size: 117 KiB |
After Width: | Height: | Size: 229 KiB |
After Width: | Height: | Size: 424 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 550 B |
|
@ -11,7 +11,9 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@emotion/react": "^11.13.3",
|
"@emotion/react": "^11.13.3",
|
||||||
"@emotion/styled": "^11.13.0",
|
"@emotion/styled": "^11.13.0",
|
||||||
|
"@formatjs/intl-localematcher": "^0.5.5",
|
||||||
"@mui/material": "^6.1.3",
|
"@mui/material": "^6.1.3",
|
||||||
|
"negotiator": "^0.6.3",
|
||||||
"next": "14.2.15",
|
"next": "14.2.15",
|
||||||
"next-intl": "^3.21.1",
|
"next-intl": "^3.21.1",
|
||||||
"react": "^18",
|
"react": "^18",
|
||||||
|
|
|
@ -14,9 +14,15 @@ importers:
|
||||||
'@emotion/styled':
|
'@emotion/styled':
|
||||||
specifier: ^11.13.0
|
specifier: ^11.13.0
|
||||||
version: 11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1)
|
version: 11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1)
|
||||||
|
'@formatjs/intl-localematcher':
|
||||||
|
specifier: ^0.5.5
|
||||||
|
version: 0.5.5
|
||||||
'@mui/material':
|
'@mui/material':
|
||||||
specifier: ^6.1.3
|
specifier: ^6.1.3
|
||||||
version: 6.1.3(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
version: 6.1.3(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
|
negotiator:
|
||||||
|
specifier: ^0.6.3
|
||||||
|
version: 0.6.3
|
||||||
next:
|
next:
|
||||||
specifier: 14.2.15
|
specifier: 14.2.15
|
||||||
version: 14.2.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
version: 14.2.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
|
|
|
@ -44,168 +44,172 @@ export default async function Home (props: PropsType) {
|
||||||
{ img: '/home/case_3.png' },
|
{ img: '/home/case_3.png' },
|
||||||
]
|
]
|
||||||
return <>
|
return <>
|
||||||
<div className="min-w-[1440px]">
|
<div className='w-full'>
|
||||||
<Header dict={dict} lang={lang} />
|
<div className="w-[1440px] mx-auto">
|
||||||
<section id="home">
|
<Header dict={dict} lang={lang} />
|
||||||
<div className="w-full h-[770px] bg-[url('/home/img_header.png')] bg-right bg-no-repeat pt-[279px] pl-[172px]">
|
<section id="home">
|
||||||
<div
|
<div className="w-full h-[770px] bg-[url('/home/img_header.png')] bg-right bg-no-repeat pt-[279px] pl-[172px]">
|
||||||
className="text-[46px] leading-[62px] w-[368px] text-center"
|
|
||||||
>
|
|
||||||
<div
|
<div
|
||||||
className="font-black"
|
className="text-[46px] leading-[62px] w-[368px] text-center"
|
||||||
style={{
|
>
|
||||||
'background': 'linear-gradient(106deg, #8EC2EA 0%, #4174ED 93%)',
|
<div
|
||||||
'backgroundClip': 'text',
|
className="font-black"
|
||||||
'WebkitTextFillColor': 'transparent'
|
style={{
|
||||||
}}>
|
'background': 'linear-gradient(106deg, #8EC2EA 0%, #4174ED 93%)',
|
||||||
{dict.FocusingOnPlayableAds}
|
'backgroundClip': 'text',
|
||||||
</div>
|
'WebkitTextFillColor': 'transparent'
|
||||||
<div
|
}}>
|
||||||
className="font-black"
|
{dict.FocusingOnPlayableAds}
|
||||||
style={{
|
|
||||||
'background': 'linear-gradient(106deg, #8EC2EA 0%, #4174ED 93%)',
|
|
||||||
'backgroundClip': 'text',
|
|
||||||
'WebkitTextFillColor': 'transparent'
|
|
||||||
}}>
|
|
||||||
{dict.goOverseas}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
<div className="w-full h-[428px] relative">
|
|
||||||
<img
|
|
||||||
src="/home/img_bg2.png"
|
|
||||||
width={745}
|
|
||||||
height={428}
|
|
||||||
alt=""
|
|
||||||
|
|
||||||
/>
|
|
||||||
<div className="absolute w-[770px] text-[32px] top-[184px] right-[115px] text-[#333333] text-right font-semibold">
|
|
||||||
{ dict.customized }
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="w-full h-[403px] relative">
|
|
||||||
<img
|
|
||||||
className="absolute right-[0]"
|
|
||||||
src="/home/img_AB.png"
|
|
||||||
width={787}
|
|
||||||
height={403}
|
|
||||||
alt=""
|
|
||||||
|
|
||||||
/>
|
|
||||||
<div className="absolute w-[662px] text-[32px] top-[160px] left-[165px] text-[#333333] text-left font-semibold">
|
|
||||||
{ dict.ABTesting}
|
|
||||||
</div>
|
|
||||||
<div className="absolute w-[680px] text-[32px] top-[204px] left-[165px] text-[#333333] text-left font-semibold">
|
|
||||||
{ dict.iterateGameplay }
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="w-full h-[392px] relative">
|
|
||||||
<img
|
|
||||||
className="absolute"
|
|
||||||
src="/home/img_mutilan.png"
|
|
||||||
width={698}
|
|
||||||
height={392}
|
|
||||||
alt=""
|
|
||||||
|
|
||||||
/>
|
|
||||||
<div className="absolute w-[520px] text-[32px] top-[197px] right-[115px] text-[#333333] text-right font-semibold">
|
|
||||||
{ dict.multiLanguage }
|
|
||||||
</div>
|
|
||||||
<div className="absolute w-[510px] text-[32px] top-[242px] right-[115px] text-[#333333] text-right font-semibold">
|
|
||||||
{ dict.breakingGeographical }
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="w-full h-[317px] relative mt-[83px]">
|
|
||||||
<img
|
|
||||||
className="absolute right-[0]"
|
|
||||||
src="/home/img_Omnichannel.png"
|
|
||||||
width={742}
|
|
||||||
height={317}
|
|
||||||
alt=""
|
|
||||||
|
|
||||||
/>
|
|
||||||
<div className="absolute w-[680px] text-[32px] top-[124px] left-[165px] text-[#333333] text-left font-semibold">
|
|
||||||
{ dict.allChannel }
|
|
||||||
</div>
|
|
||||||
<div className="absolute w-[680px] text-[32px] top-[169px] left-[165px] text-[#333333] text-left font-semibold">
|
|
||||||
{ dict.expandInfluence }
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="w-full h-[317px] relative mt-[83px]">
|
|
||||||
<img
|
|
||||||
className="absolute"
|
|
||||||
src="/home/img_3.png"
|
|
||||||
width={881}
|
|
||||||
height={357}
|
|
||||||
alt=""
|
|
||||||
|
|
||||||
/>
|
|
||||||
<div className="absolute w-[610px] text-[32px] top-[100px] right-[115px] text-[#333333] text-right font-semibold">
|
|
||||||
{ dict.lightweightDeployment }
|
|
||||||
</div>
|
|
||||||
<div className="absolute w-[600px] text-[32px] top-[145px] right-[115px] text-[#333333] text-right font-semibold">
|
|
||||||
{ dict.simplifyProcess }
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<section id="service">
|
|
||||||
<div className="w-full flex flex-col justify-center items-center mt-[98px]">
|
|
||||||
<div
|
|
||||||
className="leading-[34px] text-[36px] font-black w-[150px] mb-[11px]"
|
|
||||||
style={{
|
|
||||||
background: 'linear-gradient(90deg, #93BBE6 0%, #4C76E4 100%)',
|
|
||||||
backgroundClip: 'text',
|
|
||||||
WebkitTextFillColor: 'transparent'
|
|
||||||
}}
|
|
||||||
>{ dict.caseGallery }</div>
|
|
||||||
<div className="text-[19px] text-[#59676C]">{ dict.clickNow }</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
<section id="case">
|
|
||||||
<div className="w-full px-[40px] flex flex-wrap justify-center gap-[50px] mt-[34px] mb-[83px]">
|
|
||||||
{
|
|
||||||
caseList.map((item: CaseType, index: number) => {
|
|
||||||
return <div key={'key'+index} className="cursor-pointer">
|
|
||||||
<img
|
|
||||||
className="hover:scale-[1.17] hover:shadow-[0px_0px_20px_8px_#0988FF] rounded-[60px]
|
|
||||||
transition ease-in-out duration-300"
|
|
||||||
src={item.img}
|
|
||||||
width={300}
|
|
||||||
height={300}
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
})
|
<div
|
||||||
}
|
className="font-black"
|
||||||
<div className="w-[300px] h-[300px] flex flex-col justify-center items-center
|
style={{
|
||||||
text-[30px] text-[#3d3d3d] cursor-pointer rounded-[60px]"
|
'background': 'linear-gradient(106deg, #8EC2EA 0%, #4174ED 93%)',
|
||||||
style={{background: 'radial-gradient(61% 61% at 50% 50%, #FFFFFF 46%, #E1E1E1 100%)'}}>
|
'backgroundClip': 'text',
|
||||||
<div>{ dict.seeMore }</div>
|
'WebkitTextFillColor': 'transparent'
|
||||||
<div>{ dict.contactUs! }</div>
|
}}>
|
||||||
|
{dict.goOverseas}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</section>
|
||||||
</section>
|
<section id="service">
|
||||||
<section id="contact">
|
<div className="w-full h-[428px] relative">
|
||||||
<div className="w-full flex flex-col justify-center items-center mt-[98px] mb-[59px]">
|
<img
|
||||||
<div
|
src="/home/img_bg2.png"
|
||||||
className="leading-[34px] text-[36px] font-black w-[150px] mb-[11px]"
|
width={745}
|
||||||
style={{
|
height={428}
|
||||||
background: 'linear-gradient(90deg, #93BBE6 0%, #4C76E4 100%)',
|
alt=""
|
||||||
backgroundClip: 'text',
|
|
||||||
WebkitTextFillColor: 'transparent'
|
/>
|
||||||
}}
|
<div className="absolute w-[770px] text-[32px] top-[184px] right-[115px] text-[#333333] text-right font-semibold">
|
||||||
>{ dict.contactUs }</div>
|
{ dict.customized }
|
||||||
</div>
|
</div>
|
||||||
<div className="w-full mb-[60px]">
|
</div>
|
||||||
<Form />
|
</section>
|
||||||
</div>
|
<div className="w-full h-[403px] relative">
|
||||||
<div className="w-full flex justify-center text-[19px] text-[#59676C] mb-[99px]">
|
<img
|
||||||
{ dict.businessCooperation }info@soyootech.com
|
className="absolute right-[0]"
|
||||||
</div>
|
src="/home/img_AB.png"
|
||||||
|
width={787}
|
||||||
|
height={403}
|
||||||
|
alt=""
|
||||||
|
|
||||||
|
/>
|
||||||
|
<div className="absolute w-[662px] text-[32px] top-[160px] left-[165px] text-[#333333] text-left font-semibold">
|
||||||
|
{ dict.ABTesting}
|
||||||
|
</div>
|
||||||
|
<div className="absolute w-[680px] text-[32px] top-[204px] left-[165px] text-[#333333] text-left font-semibold">
|
||||||
|
{ dict.iterateGameplay }
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="w-full h-[392px] relative">
|
||||||
|
<img
|
||||||
|
className="absolute"
|
||||||
|
src="/home/img_mutilan.png"
|
||||||
|
width={698}
|
||||||
|
height={392}
|
||||||
|
alt=""
|
||||||
|
|
||||||
|
/>
|
||||||
|
<div className="absolute w-[520px] text-[32px] top-[197px] right-[115px] text-[#333333] text-right font-semibold">
|
||||||
|
{ dict.multiLanguage }
|
||||||
|
</div>
|
||||||
|
<div className="absolute w-[510px] text-[32px] top-[242px] right-[115px] text-[#333333] text-right font-semibold">
|
||||||
|
{ dict.breakingGeographical }
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="w-full h-[317px] relative mt-[83px]">
|
||||||
|
<img
|
||||||
|
className="absolute right-[0]"
|
||||||
|
src="/home/img_Omnichannel.png"
|
||||||
|
width={742}
|
||||||
|
height={317}
|
||||||
|
alt=""
|
||||||
|
|
||||||
|
/>
|
||||||
|
<div className="absolute w-[680px] text-[32px] top-[124px] left-[165px] text-[#333333] text-left font-semibold">
|
||||||
|
{ dict.allChannel }
|
||||||
|
</div>
|
||||||
|
<div className="absolute w-[680px] text-[32px] top-[169px] left-[165px] text-[#333333] text-left font-semibold">
|
||||||
|
{ dict.expandInfluence }
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="w-full h-[317px] relative mt-[83px]">
|
||||||
|
<img
|
||||||
|
className="absolute"
|
||||||
|
src="/home/img_3.png"
|
||||||
|
width={881}
|
||||||
|
height={357}
|
||||||
|
alt=""
|
||||||
|
|
||||||
|
/>
|
||||||
|
<div className="absolute w-[610px] text-[32px] top-[100px] right-[115px] text-[#333333] text-right font-semibold">
|
||||||
|
{ dict.lightweightDeployment }
|
||||||
|
</div>
|
||||||
|
<div className="absolute w-[600px] text-[32px] top-[145px] right-[115px] text-[#333333] text-right font-semibold">
|
||||||
|
{ dict.simplifyProcess }
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="w-full flex flex-col justify-center items-center mt-[98px]">
|
||||||
|
<div
|
||||||
|
className="leading-[34px] text-[36px] font-black w-[150px] mb-[11px]"
|
||||||
|
style={{
|
||||||
|
background: 'linear-gradient(90deg, #93BBE6 0%, #4C76E4 100%)',
|
||||||
|
backgroundClip: 'text',
|
||||||
|
WebkitTextFillColor: 'transparent'
|
||||||
|
}}
|
||||||
|
>{ dict.caseGallery }</div>
|
||||||
|
<div className="text-[19px] text-[#59676C]">{ dict.clickNow }</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<section id="case">
|
||||||
|
<div className="w-full px-[40px] flex flex-wrap justify-center gap-[50px] mt-[34px] mb-[83px]">
|
||||||
|
{
|
||||||
|
caseList.map((item: CaseType, index: number) => {
|
||||||
|
return <div key={'key'+index} className="cursor-pointer">
|
||||||
|
<img
|
||||||
|
className="hover:scale-[1.17] hover:shadow-[0px_0px_20px_8px_#0988FF] rounded-[60px]
|
||||||
|
transition ease-in-out duration-300"
|
||||||
|
src={item.img}
|
||||||
|
width={300}
|
||||||
|
height={300}
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
})
|
||||||
|
}
|
||||||
|
<div className="w-[300px] h-[300px] flex flex-col justify-center items-center
|
||||||
|
text-[30px] text-[#3d3d3d] cursor-pointer rounded-[60px]"
|
||||||
|
style={{background: 'radial-gradient(61% 61% at 50% 50%, #FFFFFF 46%, #E1E1E1 100%)'}}>
|
||||||
|
<div>{ dict.seeMore }</div>
|
||||||
|
<div>{ dict.contactUs1 }</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<div>
|
<section id="contact">
|
||||||
<Footer dict={dict} />
|
<div className="w-full flex flex-col justify-center items-center mt-[98px] mb-[59px]">
|
||||||
|
<div
|
||||||
|
className="leading-[34px] text-[36px] font-black w-[150px] mb-[11px]"
|
||||||
|
style={{
|
||||||
|
background: 'linear-gradient(90deg, #93BBE6 0%, #4C76E4 100%)',
|
||||||
|
backgroundClip: 'text',
|
||||||
|
WebkitTextFillColor: 'transparent'
|
||||||
|
}}
|
||||||
|
>{ dict.contactUs }</div>
|
||||||
|
</div>
|
||||||
|
<div className="w-full mb-[60px]">
|
||||||
|
<Form />
|
||||||
|
</div>
|
||||||
|
<div className="w-full flex justify-center text-[19px] text-[#59676C] pb-[52px] mb-[47px] border-b-1 border-solid border-[#D8D8D8]"
|
||||||
|
style={{ borderBottom: '1px solid #D8D8D8' }}
|
||||||
|
>
|
||||||
|
{ dict.businessCooperation }info@soyootech.com
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<div>
|
||||||
|
<Footer dict={dict} />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
|
|
||||||
|
|
||||||
type NavType = {
|
type NavType = {
|
||||||
name: string;
|
name: string;
|
||||||
href: string;
|
href: string;
|
||||||
|
@ -23,6 +24,7 @@ function SplitButton(props: {dict: Record<string, string>, lang: string}) {
|
||||||
/>
|
/>
|
||||||
<div className="flex-1 text-[14px] text-[#333333] mx-[9px]">{ dict?.lang }</div>
|
<div className="flex-1 text-[14px] text-[#333333] mx-[9px]">{ dict?.lang }</div>
|
||||||
<img
|
<img
|
||||||
|
className={`transition-transform duration-300 transform rotate-0 ${show && 'rotate-180'}`}
|
||||||
src="/common/arrow.png"
|
src="/common/arrow.png"
|
||||||
width={10}
|
width={10}
|
||||||
height={5}
|
height={5}
|
||||||
|
@ -30,13 +32,12 @@ function SplitButton(props: {dict: Record<string, string>, lang: string}) {
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
{
|
{
|
||||||
show && (
|
<Link href={lang === 'zh' ? '/en/home.html' : '/index.html'}>
|
||||||
<Link href={lang === 'en' ? '/zh/home' : '/en/home'}>
|
<div className={`absolute ${!show && 'hidden'} top-[30px] w-[129px] h-[28px]
|
||||||
<div className="absolute top-[30px] w-[129px] h-[28px] bg-[#EEF1F6] text-center">
|
bg-[#EEF1F6] text-center transition-all duration-300 origin-top group-hover:block`}>
|
||||||
<div>{dict?.lang1}</div>
|
<div className="text-[14px] text-[#333333]">{dict?.lang1}</div>
|
||||||
</div>
|
</div>
|
||||||
</Link>
|
</Link>
|
||||||
)
|
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
|
@ -63,7 +64,9 @@ export default function Header(props: {dict: Record<string, string>, lang: strin
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
return (<>
|
return (<>
|
||||||
<div className={"flex items-center px-[20px] h-[80px]"}>
|
<div className={"flex items-center px-[20px] h-[80px] border-b-1 border-solid border-[#D8D8D8]"}
|
||||||
|
style={{ borderBottom: '1px solid #D8D8D8' }}
|
||||||
|
>
|
||||||
<img
|
<img
|
||||||
src="/common/logo.png"
|
src="/common/logo.png"
|
||||||
width={180}
|
width={180}
|
||||||
|
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 11 KiB |
|
@ -15,17 +15,11 @@ const geistMono = localFont({
|
||||||
});
|
});
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "soyoo",
|
title: "北京索游科技",
|
||||||
description: "Generated by create next app",
|
description: "Generated by create next app",
|
||||||
};
|
};
|
||||||
|
|
||||||
function RootLayout({ children }:{ children: ReactNode } ): ReactElement {
|
function RootLayout({ children }:{ children: ReactNode } ): ReactElement {
|
||||||
// const languages = navigator.languages;
|
|
||||||
// if(languages[0] === 'zh-CN') {
|
|
||||||
// redirect('/zh/home')
|
|
||||||
// } else {
|
|
||||||
// redirect('/en/home')
|
|
||||||
// }
|
|
||||||
return (
|
return (
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<body
|
<body
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
"simplifyProcess": "Simplify the user decision-making process, easy to track the progress of each stage",
|
"simplifyProcess": "Simplify the user decision-making process, easy to track the progress of each stage",
|
||||||
"clickNow": "Click on the icon to experience it now",
|
"clickNow": "Click on the icon to experience it now",
|
||||||
"seeMore": "Want to see more?",
|
"seeMore": "Want to see more?",
|
||||||
"contactUs!": "Contact us!",
|
"contactUs1": "Contact us!",
|
||||||
"businessCooperation": "Business Cooperation/Job Hunting:",
|
"businessCooperation": "Business Cooperation/Job Hunting:",
|
||||||
"addWeChat": "Add WeChat to enjoy exclusive services",
|
"addWeChat": "Add WeChat to enjoy exclusive services",
|
||||||
"emailContact": "Email Contact",
|
"emailContact": "Email Contact",
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
"simplifyProcess": "简化用户决策流程,方便追踪各阶段进度",
|
"simplifyProcess": "简化用户决策流程,方便追踪各阶段进度",
|
||||||
"clickNow": "点击图标 立即体验",
|
"clickNow": "点击图标 立即体验",
|
||||||
"seeMore": "想看更多?",
|
"seeMore": "想看更多?",
|
||||||
"contactUs!": "联系我们!",
|
"contactUs1": "联系我们!",
|
||||||
"businessCooperation": "商务合作/求职:",
|
"businessCooperation": "商务合作/求职:",
|
||||||
"addWeChat": "添加微信,享受专属服务",
|
"addWeChat": "添加微信,享受专属服务",
|
||||||
"emailContact": "邮件联系",
|
"emailContact": "邮件联系",
|
||||||
|
|