Commit 78d498f5 authored by mxm-web-develop's avatar mxm-web-develop

321

parent 738b691f
src/assets/img/logo.png

4.76 KB | W: | H:

src/assets/img/logo.png

5.06 KB | W: | H:

src/assets/img/logo.png
src/assets/img/logo.png
src/assets/img/logo.png
src/assets/img/logo.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -104,14 +104,14 @@ export default function Navbar(props: IAppProps) {
(theme: string, active: boolean) => {
if (theme === "light") {
if (active) {
return "text-theme-dark content-sub2-title-cn py-0";
return "text-theme-dark content-sub2-title-cn py-0 hover:text-theme-blue";
}
return "text-[#061E3B] font-normal";
return "text-[#061E3B] font-normal hover:text-theme-blue";
} else {
if (active) {
return "content-sub2-title-cn py-0 text-white";
return "content-sub2-title-cn py-0 text-white hover:opacity-100";
}
return "font-normal py-0 text-white opacity-70 ";
return "font-normal py-0 text-white opacity-70 hover:opacity-100";
}
},
[data]
......@@ -120,12 +120,12 @@ export default function Navbar(props: IAppProps) {
<>
<nav className="invisible moblie:visible flex min-w-[1440px] justify-between absolute px-[120px] w-full top-0 z-[99999] py-6 text-sm text-[#061E3B] font-normal ">
<div className="left ">
<img src={data.theme === "light" ? Logo : LogoWhite} onClick={()=>navigate('/')} className=" cursor-pointer"/>
<img src={data.theme === "dark" || pathname ==='/news'? LogoWhite:Logo } onClick={()=>navigate('/')} className=" cursor-pointer"/>
</div>
<div className="right content-1-cn items-start flex gap-x-12">
<Link
to="/"
className={`hover:text-theme-blue ${
className={`${
pathname === "/"
? themeStyle(data.theme, true)
: themeStyle(data.theme, false)
......@@ -135,7 +135,7 @@ export default function Navbar(props: IAppProps) {
</Link>
<Link
to="chain33"
className={`hover:text-theme-blue ${
className={`${
pathname === "/chain33"
? themeStyle(data.theme, true)
: themeStyle(data.theme, false)
......@@ -146,7 +146,7 @@ export default function Navbar(props: IAppProps) {
<HoverLink theme={data.theme} />
<Link
to="news"
className={`hover:text-theme-blue ${
className={`${
pathname === "/news"
? themeStyle(data.theme, true)
: themeStyle(data.theme, false)
......@@ -157,7 +157,7 @@ export default function Navbar(props: IAppProps) {
{/* <Link to='classes' className={`hover: text-theme-dark ${pathname ==='/classes'?' text-theme-dark':'text-[#061E3B] font-normal'}`}>公开课</Link> */}
<Link
to="about"
className={`hover:text-theme-blue ${
className={`${
pathname === "/about"
? themeStyle(data.theme, true)
: themeStyle(data.theme, false)
......
......@@ -21,7 +21,7 @@ const initBScroll = (el:HTMLElement) => {
easeTime: 300,
},
pullUpLoad: {
threshold: 200
threshold: 0
},
observeDOM: true,
probeType:2,
......@@ -30,7 +30,7 @@ const initBScroll = (el:HTMLElement) => {
scrollX: false,
momentum: true,
scrollY: true,
bounce: true,
bounce: false,
stopPropagation: true,
})
return res
......@@ -55,7 +55,7 @@ export const NewsScrollView = (props: ScrollViewType) => {
return (
<div className=" h-full overflow-hidden pb-5 -translate-x-[200px]" ref={wrapRef}>
<div className=" h-full overflow-hidden -translate-x-[200px]" ref={wrapRef}>
{children}
......
......@@ -45,8 +45,11 @@ export const AppProvider = (props: any)=>{
useEffect(()=>{
const ob = fromEvent(window,'resize')
ob.subscribe(v=>{
console.log(v,1111);
const target = v.currentTarget
if(target){
console.log(target);
}
})
})
return(
......
......@@ -64,9 +64,7 @@
.normal-text{
@apply text-theme-dark text-[12px] tracking-wide font-cnnote font-normal
}
.des-cn{
@apply font-galano font-light text-theme-dark text-[14px]
}
.table-header{
@apply text-white bg-black py-3 px-2 font-cnnote
}
......@@ -81,7 +79,7 @@
@apply visible transition-all duration-150
}
.featuresGrid{
@apply grid grid-cols-2 w-full labtop:w-10/12 gap-y-[1rem] gap-x-[3.5rem] screen:gap-y-[5rem] screen:gap-x-[10rem]
@apply grid grid-cols-2 w-full
}
}
boby{
......
......@@ -3,34 +3,7 @@ import { AppContianer } from "@/layouts/AppContianer";
interface ContactType extends IProps {}
const Tels = () => {
const telInfo = [
{
location: "成都总部",
tel: "0571-8167-1366",
},
{
location: "成都总部",
tel: "0571-8167-1366",
},
{
location: "成都总部",
tel: "0571-8167-1366",
},
];
return (
<div className=" grid grid-cols-2">
{telInfo.map((tel, index) => {
return (
<div key={index}>
<div>{tel.location}</div>
<div>{tel.tel}</div>
</div>
);
})}
</div>
);
};
const data = [
{
......@@ -60,7 +33,7 @@ export const Contact = () => {
<div className="subTitle-1-cn">联系我们</div>
</div>
<div className="grid grid-cols-2 gap-x-[100px] pb-12">
<div className="grid grid-cols-2 gap-x-[100px] gap-y-[30px] pb-12">
{data.map((i, index) => (
<div className="item" key={index}>
<div className="content-1-cn">{i.location}</div>
......@@ -70,20 +43,20 @@ export const Contact = () => {
</div>
<div className="item">
<div className="content-1-cn">邮箱</div>
<div className="sub-title-cn">support@33.cn</div>
<a className="sub-title-cn">support@33.cn</a>
</div>
<div className="locations flex items-start gap-x-[100px] pt-12">
<div className="locations flex items-start gap-x-[135px] pt-12">
<div className="item flex-col content-1-cn">
<div className='sub-title-cn'>杭州西湖区办公室</div>
<div className='py-3 content-1-cn'>
<div className='content-sub2-title-cn'>杭州西湖区办公室</div>
<div className='py-1 content-1-cn'>
<div>浙江省杭州市西湖区</div>
<div>文三路90号</div>
<div>东部软件园科技大厦7楼</div>
</div>
</div>
<div className="item flex-col content-1-cn">
<div className='sub-title-cn'>杭州滨江办公室</div>
<div className='py-3'>
<div className='content-sub2-title-cn'>杭州滨江办公室</div>
<div className='py-1 content-1-cn'>
<div>浙江省杭州市滨江区</div>
<div>东方通信科技城</div>
</div>
......
......@@ -30,8 +30,8 @@ const DataGrid = (props: DataGridType) => {
<>
<div>
<div className="content-title-cn h-[48px] w-[100%] line-clamp-1 ">{i.title}</div>
<div className='normal-text'>{i.diploma}</div>
<div className='normal-text'>{i.location}</div>
<div className='normal-content'>{i.diploma}</div>
<div className='normal-content'>{i.location}</div>
</div>
<span className='invisible'>
<ChevronRightIcon className="w-5 h-5"></ChevronRightIcon>
......@@ -48,11 +48,11 @@ const DtailContainer = (props: DtailContainerType) => {
return (
<div className={className+ " -translate-y-[8px]"}>
<div className={`flex hover:text-theme-blue items-center `}>
<div onClick={() => doCancelSelecteItem(undefined)} className={`flex normal-content hover:text-theme-blue items-center `}>
<ChevronLeftIcon className='w-5 h-5'></ChevronLeftIcon>
<div
onClick={() => doCancelSelecteItem(undefined)}
className=" cursor-pointer "
className="cursor-pointer "
>
返回
</div>
......@@ -61,11 +61,9 @@ const DtailContainer = (props: DtailContainerType) => {
<div className='py-[5px]'>
<div className='flex justify-between'>
<div className='sub-title-cn'> {data.title}</div>
{/* <a href="mailto: hr@33.cn" className='normal-text block h-[40px] leading-[40px] tracking-widest cursor-pointer rounded-full px-8 bg-black text-white'> 我要应聘</a> */}
{/* <StyledButton text='我要应聘' color="black" onClick={() =>sendEmail}></StyledButton> */}
</div>
<div className='normal-text'>{data.diploma}</div>
<div className='normal-text'>{data.location}</div>
<div className='normal-content'>{data.diploma}</div>
<div className='normal-content'>{data.location}</div>
</div>
<div className='py-[5px]'>
<div className='content-sub-title-cn'>岗位描述</div>
......@@ -83,7 +81,7 @@ const DtailContainer = (props: DtailContainerType) => {
))}
</div>
</div>
<div className='content-sub2-title-cn'>有意向者请投简历到该邮箱:<a href="mailto: hr@33.cn">hr@33.cn</a> </div>
<div className='content-sub2-title-cn'>有意向者请投简历到该邮箱:hr@33.cn</div>
</div>
);
};
......
......@@ -5,35 +5,28 @@ interface AdvantagesType extends IProps{
}
const AdvantagesList = ()=>{
const data =[
{
title:'高效',
text:'平行侧链之间交易可以并行执行,交易效率大大提升。'
},
{
title:'稳定',
text:'支持“主链+平行链”分层区块链架构,主链上只允许基础核心的合约,稳定性强,进而保证整个区块链网络的稳定。'
},
{
title:'安全',
text:'采用代理重加密加秘钥分片的方案,实现数据可分享型存储,保障数据隐私。支持国标标准SM2、SM3、SM4。'
},
{
title:'低成本',
text:'提供便捷部署的BAAS服务,实现可视化安装,智能合约IDE工具,节约成本。'
}
]
return(
<div className='flex flex-col gap-y-[60px] mt-[48px]'>
{
data.map((i,index)=>(
<div key={index} className='relative '>
<span className='absolute title-1-cn text-[90px] -top-[2rem] -left-[2rem] opacity-10'>{index+1}</span>
<div className='title-2-cn border-black border-b-[3px] w-[90px]'>{i.title}</div>
<div className='pt-2 content-1-cn'>{i.text}</div>
<div className='relative '>
<span className='absolute title-1-cn text-[90px] -top-[2rem] -left-[2rem] opacity-10'>1</span>
<div className='title-2-cn border-black border-b-[3px] w-[90px]'>高效</div>
<div className='pt-2 content-1-cn'>平行侧链之间交易可以并行执行,交易效率大大提升。</div>
</div>
<div className='relative '>
<span className='absolute title-1-cn text-[90px] -top-[2rem] -left-[2rem] opacity-10'>2</span>
<div className='title-2-cn border-black border-b-[3px] w-[90px]'>稳定</div>
<div className='pt-2 content-1-cn'>支持“主链+平行链”分层区块链架构,主链上只允许基础核心的合约,稳定性强,进而保证<br/> 整个区块链网络的稳定。</div>
</div>
<div className='relative '>
<span className='absolute title-1-cn text-[90px] -top-[2rem] -left-[2rem] opacity-10'>2</span>
<div className='title-2-cn border-black border-b-[3px] w-[90px]'>安全</div>
<div className='pt-2 content-1-cn'>采用代理重加密加秘钥分片的方案,实现数据可分享型存储,保障数据隐私。<br/>支持国标标准SM2、SM3、SM4。</div>
</div>
<div className='relative '>
<span className='absolute title-1-cn text-[90px] -top-[2rem] -left-[2rem] opacity-10'>2</span>
<div className='title-2-cn border-black border-b-[3px] w-[90px]'>低成本</div>
<div className='pt-2 content-1-cn'>提供便捷部署的BAAS服务,实现可视化安装,<br/>智能合约IDE工具,节约成本。</div>
</div>
))
}
</div>
)
}
......
......@@ -5,34 +5,24 @@ interface FeaturesType extends IProps{
}
const FeaturesGrid = ()=>{
const data = [
{
title:'快速构建',
text:'支持一键快速构建联盟链、平行链等区块链网络'
},
{
title:'隐私保护',
text:'提供权限管理、身份关联、数据加密等方式保证数据安全'
},
{
title:'灵活部署',
text:'支持节点一键自动化部署省去手动部署等大量时间和精力'
},
{
title:'多组件支持',
text:'智能合约模块可插拔 支持智能合约语言的多样化包括Solidity,Java,C++和Golang等成熟开发语言'
}
]
return(
<div className="featuresGrid">
{
data.map((i,index)=>(
<div key={index} className='max-w-[320px] min-w-[280px] pb-[48px] mr-[90px]'>
<div className='title-2-cn'>{i.title}</div>
<div className='content-1-cn pt-[14px]'>{i.text}</div>
<div className='w-full pb-[48px] mr-[90px]'>
<div className='title-2-cn'>快速构建</div>
<div className='content-1-cn pt-[14px]'>支持一键快速构建联盟链、平行链等区块链网络</div>
</div>
<div className='w-full pb-[48px] mr-[90px]'>
<div className='title-2-cn'>隐私保护</div>
<div className='content-1-cn pt-[14px]'>提供权限管理、身份关联、数据加密等方式保证<br/>数据安全</div>
</div>
<div className='w-full pb-[48px] mr-[90px]'>
<div className='title-2-cn'>灵活部署</div>
<div className='content-1-cn pt-[14px]'>支持节点一键自动化部署省去手动部署等大量时<br/> 间和精力</div>
</div>
<div className='w-full pb-[48px] mr-[90px]'>
<div className='title-2-cn'>多组件支持</div>
<div className='content-1-cn pt-[14px]'>智能合约模块可插拔 支持智能合约语言的多样化<br/>包括Solidity,Java,C++和Golang等成熟开发语<br/></div>
</div>
))
}
</div>
)
}
......@@ -64,11 +54,11 @@ export const Features = (props: FeaturesType)=>{
<div className="right h-full w-4/12 px-[10%]">
<div className="flex-col justify-center ">
<div className='max-w-[320px] min-w-[280px]'>
<div className='title-2-cn'>弹性扩展</div>
<div className='title-2-cn pb-[14px]'>弹性扩展</div>
<div className='content-1-cn'>支持联盟节点动态增删</div>
</div>
<div className='max-w-[320px] min-w-[280px] mt-[46px]'>
<div className='title-2-cn'>运维监控</div>
<div className='title-2-cn pb-[14px]'>运维监控</div>
<div className='content-1-cn'>支持区块链节点及硬件资源的实时监控</div>
</div>
</div>
......
......@@ -4,7 +4,7 @@ import { AppContianer } from "@/layouts/AppContianer";
import { CheckIcon } from "@heroicons/react/solid";
import { useNavigate } from "react-router-dom";
import trangle from "@/assets/svg/trangle.svg";
import selectImg from "@/assets/img/selected.png"
interface ServiceType extends IProps {}
const ServiceList = () => {
......@@ -56,21 +56,24 @@ const ServiceList = () => {
className="relative cursor-pointer w-[300px] py-[40px] px-[40px] bg-white/40 h-[460px] rounded-[2.5rem] "
>
<div className="sub-title-cn border-black py-5">{i.title}</div>
<div className="pt-2 des-cn">{i.text}</div>
<ul className="py-5 des-cn font-bold">
<div className="pt-2 content-sub-title-cn font-normal">{i.text}</div>
<ul className="py-5 content-sub-title-cn ">
{i.features.map((k, x) => (
<li className="my-1 flex" key={"child" + x}>
<CheckIcon className="w-5 h-5 " />
<div className="pl-3">{k}</div>
</li>
<div className="my-1 flex normal-content items-start" key={"child" + x}>
<img src={selectImg} />
<div className="pl-3 -translate-y-[3px] font-bold">{k}</div>
</div>
))}
</ul>
<div className="w-full absolute bottom-10 px-10 left-0 flex justify-between align-bottom items-baseline">
<div className="des-cn font-bold cursor-pointer flex items-center gap-x-3">
<div className="content-sub-title-cn cursor-pointer flex items-center gap-x-3">
<div>介绍详情</div>
<img src={trangle} className="w-2" />
<img src={trangle} />
</div>
<div className="des-cn font-bold text-theme-blue">
<div className="content-sub-title-cn text-theme-blue">
<span className=" int-font-1 ">{i.price}</span>
<span>/年</span>
</div>
......
......@@ -47,9 +47,11 @@ export const NewsDetails = (props:NewsDetailsType)=>{
return(
<PageLayout className=" overflow-y-scroll">
<AppContianer>
<>
<div className="flex normal-text ">
<div className="w-2/12">
<div className='flex-col pr-5 pt-12 text-center '>
<div className="w-2/12 pt-[35px]">
<div className='flex-col pr-5 text-center '>
<div className='py-5'>
<div>- 来源 -</div>
<div className='content-sub-title-cn'>杭州复杂美科技</div>
......@@ -57,7 +59,9 @@ export const NewsDetails = (props:NewsDetailsType)=>{
<div className='py-5'>
<div>- 日期 -</div>
<div className=' hero-title'>{useDate(data&&data.time_stamp).day}</div>
<div className='content-sub-title-cn'>{useDate(data&&data.time_stamp).year}/{useDate(data&&data.time_stamp).month}</div>
<div className='content-sub-title-cn'>
{useDate(data&&data.time_stamp).year}/{useDate(data&&data.time_stamp).month}</div>
</div>
<div className='py-5'>
<div>- 作者 -</div>
......@@ -65,25 +69,29 @@ export const NewsDetails = (props:NewsDetailsType)=>{
</div>
</div>
</div>
<div className="w-8/12">
<div >
<div className='richRender pt-5 px-20 pb-24'>
<div className='title-1-cn'>{data&&data.title}</div>
<div className='title-1-cn py-[24px]'>{data&&data.title}</div>
<div dangerouslySetInnerHTML={{__html:data&&data.content}} className="py-5"></div>
</div>
</div>
<div className='w-2/12 '>
<div className='flex-col pt-12'>
<div className='content-sub-title-cn'>最新消息</div>
<div className='pt-[35px]'>
<div className='flex-col '>
<div className='content-sub-title-cn pb-[15px]'>最新消息</div>
<div>
{
latestNews&&latestNews.map((k:any,index:number)=>(
<div key={index} onClick={()=>navigate(`/news/${k.id}`)} className="py-1 normal-text cursor-pointer hover:text-theme-blue">{k.title}</div>
<div key={index} onClick={()=>navigate(`/news/${k.id}`)} className="pb-[21px] w-[370px] normal-content cursor-pointer hover:text-theme-blue">
<div>{k.title}</div>
<div>{useDate(data&&data.time_stamp).year}/{useDate(data&&data.time_stamp).month}/{useDate(data&&data.time_stamp).day}</div>
</div>
))
}
</div>
</div>
</div>
</div>
</>
</AppContianer>
</PageLayout>
)
......
......@@ -62,7 +62,7 @@ export default function News(props: IAppProps) {
</div>
<div className="right h-full pt-28 w-7/12 relative">
<NewsScrollView>
<div className='mb-12 pb-[200px]'>
<div className="pb-[235px]">
<ul className="news-list -translate-x-[25px]">
{news.map((i, index) => (
<div onClick={()=>navigate(`/news/${i.id}`)} key={index}>
......@@ -77,15 +77,16 @@ export default function News(props: IAppProps) {
{useDate(i.time_stamp).month}/
</div>
</div>
<div className="int-font-hero border-white text-right border-b-2">
{useDate(i.time_stamp).day}
<div className="int-font-hero border-white text-right flex-cols">
<div>{useDate(i.time_stamp).day}</div>
<div className='w-10/12 border-t-2 border-white translate-x-[5px]'></div>
</div>
</div>
<div className="news-content text-black ">
<div className="title text-lg py-2 text-overflow: ellipsis line-clamp-2">
<div className=" sub-title-cn">
{i.title}
</div>
<div className="text-sm opacity-75 indent-8 text-overflow: ellipsis line-clamp-3">
<div className=" normal-text text-overflow:ellipsis line-clamp-3">
{i.desc}
</div>
</div>
......@@ -98,9 +99,6 @@ export default function News(props: IAppProps) {
))}
</ul>
<div className="pullup-tips">
{/* <div className="before-trigger">
<span className="pullup-txt">Pull up and load more</span>
</div> */}
{
loading?
<div className="after-trigger">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment