Commit 261639e395f2cffcb5aaabca742ab823a267bacd
Committed by
小小鲁班
1 parent
edb8b7d8
chore: migrate landing-page repo
Showing
78 changed files
with
0 additions
and
4120 deletions
Too many changes to show.
To preserve performance only 78 of 79 files are displayed.
front-end/landing-page/.umirc.js deleted
100644 → 0
| 1 | -var path = require('path') | ||
| 2 | - | ||
| 3 | -export default { | ||
| 4 | - publicPath: "/luban-h5/", | ||
| 5 | - history: 'hash', | ||
| 6 | - disableCSSModules: true, | ||
| 7 | - plugins: [ | ||
| 8 | - [ | ||
| 9 | - 'umi-plugin-react', { | ||
| 10 | - // dynamicImport: true, | ||
| 11 | - antd: true, | ||
| 12 | - } | ||
| 13 | - ], | ||
| 14 | - ], | ||
| 15 | - chainWebpack(config) { | ||
| 16 | - config.resolve.alias.set('@', path.resolve(__dirname, 'src')); | ||
| 17 | - }, | ||
| 18 | -} | ||
| 19 | \ No newline at end of file | 0 | \ No newline at end of file |
front-end/landing-page/README.md deleted
100644 → 0
front-end/landing-page/deploy.sh deleted
100755 → 0
| 1 | -# scp -r dist/* centos@aliyun:/home/centos/codebase/luban/luban-h5-dist/landing-page | ||
| 2 | - | ||
| 3 | -# 生成静态文件 | ||
| 4 | -npm run build | ||
| 5 | - | ||
| 6 | -# 进入生成的文件夹 | ||
| 7 | -cd dist | ||
| 8 | - | ||
| 9 | -# 如果是发布到自定义域名 | ||
| 10 | -# echo 'www.example.com' > CNAME | ||
| 11 | - | ||
| 12 | -git init | ||
| 13 | -git add -A | ||
| 14 | -git commit -m 'deploy' | ||
| 15 | - | ||
| 16 | -# 如果发布到 https://<USERNAME>.github.io | ||
| 17 | -# git push -f git@github.com:<USERNAME>/<USERNAME>.github.io.git master | ||
| 18 | - | ||
| 19 | -# 如果发布到 https://<USERNAME>.github.io/<REPO> | ||
| 20 | -# git push -f git@gitee.com:ly525/luban-h5.git master:gh-pages-landing-page | ||
| 21 | -git push -f git@github.com:ly525/luban-h5.git master:gh-pages-landing-page | ||
| 22 | - | ||
| 23 | -cd - | ||
| 24 | \ No newline at end of file | 0 | \ No newline at end of file |
front-end/landing-page/package.json deleted
100644 → 0
| 1 | -{ | ||
| 2 | - "name": "landing-page", | ||
| 3 | - "version": "1.0.0", | ||
| 4 | - "main": "index.js", | ||
| 5 | - "license": "MIT", | ||
| 6 | - "dependencies": { | ||
| 7 | - "antd": "^3.23.6", | ||
| 8 | - "enquire-js": "^0.2.1", | ||
| 9 | - "qrcode.react": "^0.9.3", | ||
| 10 | - "rc-banner-anim": "^2.4.2", | ||
| 11 | - "rc-queue-anim": "^1.8.2", | ||
| 12 | - "rc-scroll-anim": "^2.6.2", | ||
| 13 | - "rc-tween-one": "^2.6.5", | ||
| 14 | - "react": "^16.10.2", | ||
| 15 | - "react-document-title": "^2.0.3", | ||
| 16 | - "react-dom": "^16.10.2", | ||
| 17 | - "umi-plugin-react": "^1.14.7" | ||
| 18 | - }, | ||
| 19 | - "devDependencies": { | ||
| 20 | - "atool-build": "^1.0.8", | ||
| 21 | - "umi": "^2.10.2" | ||
| 22 | - }, | ||
| 23 | - "scripts": { | ||
| 24 | - "dev": "umi dev", | ||
| 25 | - "build": "umi build", | ||
| 26 | - "deploy": "rm -rf dist && ./deploy.sh" | ||
| 27 | - } | ||
| 28 | -} |
front-end/landing-page/src/Index-En/Banner.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import PropTypes from 'prop-types'; | ||
| 3 | -import QueueAnim from 'rc-queue-anim'; | ||
| 4 | -import { Button, Icon } from 'antd'; | ||
| 5 | -import BannerImage from './BannerImage'; | ||
| 6 | - | ||
| 7 | -const ButtonGroup = Button.Group; | ||
| 8 | - | ||
| 9 | -const LubanIcon = Icon.createFromIconfontCN({ | ||
| 10 | - scriptUrl: '//at.alicdn.com/t/font_1455736_n0ivu1iicd.js', | ||
| 11 | -}); | ||
| 12 | - | ||
| 13 | -class Banner extends React.PureComponent { | ||
| 14 | - static propTypes = { | ||
| 15 | - className: PropTypes.string, | ||
| 16 | - } | ||
| 17 | - static defaultProps = { | ||
| 18 | - className: 'home-banner', | ||
| 19 | - } | ||
| 20 | - render() { | ||
| 21 | - const { className } = this.props; | ||
| 22 | - return ( | ||
| 23 | - <div className={`home-layout-wrapper ${className}`}> | ||
| 24 | - <div className="home-layout"> | ||
| 25 | - <QueueAnim className={`${className}-content-wrapper`} delay={300} ease="easeOutQuart"> | ||
| 26 | - <h1 key="h1"> | ||
| 27 | - Minimalist production, a key presentation | ||
| 28 | - </h1> | ||
| 29 | - <p key="p">An mobile page builder&generator with easy drag&drop editing features</p> | ||
| 30 | - <span key="button"> | ||
| 31 | - <Button | ||
| 32 | - type="primary" | ||
| 33 | - onClick={() => { | ||
| 34 | - window.open('https://h5.luban-h5.com') | ||
| 35 | - }} | ||
| 36 | - > | ||
| 37 | - Start Using | ||
| 38 | - </Button> | ||
| 39 | - </span> | ||
| 40 | - <span key="button2"> | ||
| 41 | - <ButtonGroup> | ||
| 42 | - <Button type="link" size="small" title="Gitee" onClick={() => { | ||
| 43 | - window.open("https://gitee.com/ly525/luban-h5"); | ||
| 44 | - }}><LubanIcon type="iconmayun"/></Button> | ||
| 45 | - <Button type="link" size="small" title="GitHub" onClick={() => { | ||
| 46 | - window.open('https://github.com/ly525/luban-h5'); | ||
| 47 | - }}><img alt="GitHub stars" src="https://img.shields.io/github/stars/ly525/luban-h5?style=social" /></Button> | ||
| 48 | - </ButtonGroup> | ||
| 49 | - </span> | ||
| 50 | - </QueueAnim> | ||
| 51 | - <div className={`${className}-image-wrapper`}> | ||
| 52 | - <BannerImage /> | ||
| 53 | - </div> | ||
| 54 | - </div> | ||
| 55 | - </div> | ||
| 56 | - ); | ||
| 57 | - } | ||
| 58 | -} | ||
| 59 | - | ||
| 60 | -export default Banner; |
front-end/landing-page/src/Index-En/BannerImage.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import TweenOne from 'rc-tween-one'; | ||
| 3 | -import SvgDrawPlugin from 'rc-tween-one/lib/plugin/SvgDrawPlugin'; | ||
| 4 | -import BannerImg from '../assets/home/banner.svg' | ||
| 5 | - | ||
| 6 | -TweenOne.plugins.push(SvgDrawPlugin); | ||
| 7 | - | ||
| 8 | -export default function BannerImage() { | ||
| 9 | - return <img src={BannerImg} width={510} />; | ||
| 10 | -} |
front-end/landing-page/src/Index-En/Footer.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import { footer } from './data'; | ||
| 3 | - | ||
| 4 | -function antCloudFooter() { | ||
| 5 | - const children = footer.map((item, i) => (<div key={i}><a href={item.src} target="_blank">{item.text}</a></div>)); | ||
| 6 | - return (<div> | ||
| 7 | - <div className="logo" key="logo"> | ||
| 8 | - {/* <img src="https://gw.alipayobjects.com/zos/rmsportal/dnIbXmAgGbRxQJksRsJL.svg" width="72" height="82" /> */} | ||
| 9 | - <h1 style={{color: 'white'}}>Luban H5</h1> | ||
| 10 | - </div> | ||
| 11 | - <div key="nav" className="home-footer-nav-wrapper"> | ||
| 12 | - {children} | ||
| 13 | - </div> | ||
| 14 | - </div> | ||
| 15 | - ); | ||
| 16 | -} | ||
| 17 | - | ||
| 18 | -function Footer() { | ||
| 19 | - return ( | ||
| 20 | - <div className="home-layout-wrapper home-footer-wrapper"> | ||
| 21 | - <div className="home-layout"> | ||
| 22 | - {antCloudFooter()} | ||
| 23 | - <p key="cop" className="copy">©2019 - 2019 Metrix-Transform All Rights Reserved</p> | ||
| 24 | - </div> | ||
| 25 | - </div> | ||
| 26 | - ); | ||
| 27 | -} | ||
| 28 | - | ||
| 29 | -export default Footer; |
front-end/landing-page/src/Index-En/Header.jsx deleted
100755 → 0
front-end/landing-page/src/Index-En/Page1.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import QueueAnim from 'rc-queue-anim'; | ||
| 3 | -import OverPack from 'rc-scroll-anim/lib/ScrollOverPack'; | ||
| 4 | -import { Row, Col } from 'antd'; | ||
| 5 | -import { page1 } from './data'; | ||
| 6 | - | ||
| 7 | -export default function Page1() { | ||
| 8 | - const children = page1.map((d, i) => ( | ||
| 9 | - <QueueAnim | ||
| 10 | - component={Col} | ||
| 11 | - key={i} | ||
| 12 | - type="bottom" | ||
| 13 | - className="col" | ||
| 14 | - componentProps={{ span: 8 }} | ||
| 15 | - > | ||
| 16 | - <div key="image" className="image" style={{ backgroundImage: `url(${d.src})`, backgroundSize: 'contain' }} /> | ||
| 17 | - <h3 key="h3">{d.title}</h3> | ||
| 18 | - <p key="p">{d.content}</p> | ||
| 19 | - </QueueAnim> | ||
| 20 | - )); | ||
| 21 | - return ( | ||
| 22 | - <div className="home-layout-wrapper home-func-wrapper" id="home-func" > | ||
| 23 | - <h2>Features</h2> | ||
| 24 | - <i className="line" /> | ||
| 25 | - <OverPack className="home-layout" location="home-func" playScale={0.4}> | ||
| 26 | - <QueueAnim className="home-func" type="bottom" key="home-func" ease="easeOutQuart" leaveReverse> | ||
| 27 | - <QueueAnim | ||
| 28 | - key="content" | ||
| 29 | - component={Row} | ||
| 30 | - type="bottom" | ||
| 31 | - componentProps={{ gutter: 171 }} | ||
| 32 | - > | ||
| 33 | - {children} | ||
| 34 | - </QueueAnim> | ||
| 35 | - </QueueAnim> | ||
| 36 | - </OverPack> | ||
| 37 | - </div>); | ||
| 38 | -} |
front-end/landing-page/src/Index-En/Page2.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import QueueAnim from 'rc-queue-anim'; | ||
| 3 | -import OverPack from 'rc-scroll-anim/lib/ScrollOverPack'; | ||
| 4 | -import QRCode from 'qrcode.react'; | ||
| 5 | -import { Row, Col } from 'antd'; | ||
| 6 | -import { page2 } from './data'; | ||
| 7 | - | ||
| 8 | -export default function Page2() { | ||
| 9 | - const children = page2.map((d, i) => { | ||
| 10 | - if (i > 2) { | ||
| 11 | - return null; | ||
| 12 | - } | ||
| 13 | - return ( | ||
| 14 | - <Col key={i} className="col" span={8}> | ||
| 15 | - <div className="content-wrapper home-hover"> | ||
| 16 | - <div className="image" style={{ backgroundImage: `url(${d.image})` }} /> | ||
| 17 | - <div className="code-wrapper"> | ||
| 18 | - <h4>Scan Qr code to preview</h4> | ||
| 19 | - <QRCode value={d.url} size={160} /> | ||
| 20 | - </div> | ||
| 21 | - </div> | ||
| 22 | - </Col>); | ||
| 23 | - }); | ||
| 24 | - return ( | ||
| 25 | - <div className="home-layout-wrapper home-case-wrapper"> | ||
| 26 | - <OverPack className="home-layout" playScale={0.4}> | ||
| 27 | - <QueueAnim className="home-case" type="bottom" key="home-case" ease="easeOutQuart" leaveReverse> | ||
| 28 | - <h2 key="h2">scan the qr codes for great examples</h2> | ||
| 29 | - <i key="i" className="line" /> | ||
| 30 | - <QueueAnim | ||
| 31 | - key="content" | ||
| 32 | - component={Row} | ||
| 33 | - type="bottom" | ||
| 34 | - componentProps={{ gutter: 171 }} | ||
| 35 | - > | ||
| 36 | - {children} | ||
| 37 | - </QueueAnim> | ||
| 38 | - </QueueAnim> | ||
| 39 | - </OverPack> | ||
| 40 | - </div>); | ||
| 41 | -} |
front-end/landing-page/src/Index-En/Page3.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import QueueAnim from 'rc-queue-anim'; | ||
| 3 | -import OverPack from 'rc-scroll-anim/lib/ScrollOverPack'; | ||
| 4 | -import { Row, Col } from 'antd'; | ||
| 5 | -import { page3 } from './data'; | ||
| 6 | - | ||
| 7 | -export default function Page3() { | ||
| 8 | - const children = page3.map((d, i) => ( | ||
| 9 | - <Col span={8} className="col" key={i.toString()}> | ||
| 10 | - <QueueAnim | ||
| 11 | - type="bottom" | ||
| 12 | - className="content-wrapper home-hover" | ||
| 13 | - onClick={() => { }} | ||
| 14 | - > | ||
| 15 | - <div key="image" className="image">{d.svg}</div> | ||
| 16 | - <h3 key="h3">{d.title}</h3> | ||
| 17 | - {d.content} | ||
| 18 | - {d.exp && <div className="exp" key="exp">{d.exp}</div>} | ||
| 19 | - </QueueAnim> | ||
| 20 | - </Col> | ||
| 21 | - )); | ||
| 22 | - return ( | ||
| 23 | - <div className="home-layout-wrapper home-serve-wrapper"> | ||
| 24 | - <OverPack className="home-layout" playScale={0.4}> | ||
| 25 | - <QueueAnim className="home-serve" type="bottom" key="home-func" ease="easeOutQuart" leaveReverse> | ||
| 26 | - <h2 key="h2">Plans</h2> | ||
| 27 | - <i key="i" className="line" /> | ||
| 28 | - <QueueAnim | ||
| 29 | - key="content" | ||
| 30 | - component={Row} | ||
| 31 | - type="bottom" | ||
| 32 | - componentProps={{ gutter: 96 }} | ||
| 33 | - > | ||
| 34 | - {children} | ||
| 35 | - </QueueAnim> | ||
| 36 | - </QueueAnim> | ||
| 37 | - </OverPack> | ||
| 38 | - </div>); | ||
| 39 | -} |
front-end/landing-page/src/Index-En/Page4.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import QueueAnim from 'rc-queue-anim'; | ||
| 3 | -import OverPack from 'rc-scroll-anim/lib/ScrollOverPack'; | ||
| 4 | -import { Row, Col } from 'antd'; | ||
| 5 | -import { page4 } from './data'; | ||
| 6 | - | ||
| 7 | -function getLi(num, d, i) { | ||
| 8 | - const t = num + 1; | ||
| 9 | - if (i > t * 4 - 1 || i < num * 4) { | ||
| 10 | - return null; | ||
| 11 | - } | ||
| 12 | - return ( | ||
| 13 | - <Col className="col" span={4} key={i} offset={!(i % 4) ? 1 : 2}> | ||
| 14 | - <i style={{ backgroundImage: `url(${d})` }} /> | ||
| 15 | - </Col> | ||
| 16 | - ); | ||
| 17 | -} | ||
| 18 | -export default function Page4() { | ||
| 19 | - const children = []; | ||
| 20 | - for (let i = 0; i < Math.floor(page4.length / 4); i++) { | ||
| 21 | - children.push(( | ||
| 22 | - <QueueAnim | ||
| 23 | - component={Row} | ||
| 24 | - type="bottom" | ||
| 25 | - key={i} | ||
| 26 | - > | ||
| 27 | - {page4.map(getLi.bind(this, i)).filter(item => item)} | ||
| 28 | - </QueueAnim>)); | ||
| 29 | - } | ||
| 30 | - return ( | ||
| 31 | - <div className="home-layout-wrapper home-user-wrapper"> | ||
| 32 | - <OverPack className="home-layout" playScale={0.4}> | ||
| 33 | - <QueueAnim className="home-user" type="bottom" key="home-func" ease="easeOutQuart" leaveReverse> | ||
| 34 | - <h2 key="h2">我们的用户</h2> | ||
| 35 | - <i key="i" className="line" /> | ||
| 36 | - {children} | ||
| 37 | - </QueueAnim> | ||
| 38 | - </OverPack> | ||
| 39 | - </div> | ||
| 40 | - ); | ||
| 41 | -} |
front-end/landing-page/src/Index-En/data.js deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import { H5_HOST } from '@/constants/config'; | ||
| 3 | - | ||
| 4 | -export const page1 = [ | ||
| 5 | - { | ||
| 6 | - title: 'Easy to set up', | ||
| 7 | - content: 'Integrating dynamic effects, music, video and images, users can easily achieve Html5 card', | ||
| 8 | - src: 'http://qiniu-image.luban-h5.wxjcart.com/landing-page/home-feature/quick-make.svg', | ||
| 9 | - }, | ||
| 10 | - { | ||
| 11 | - title: 'Form Collection', | ||
| 12 | - content: 'Collect and organize information.Get answers from users fast.', | ||
| 13 | - src: 'http://qiniu-image.luban-h5.wxjcart.com/landing-page/home-feature/submit-form.svg', | ||
| 14 | - }, | ||
| 15 | - { | ||
| 16 | - title: 'PSD to HTML5', | ||
| 17 | - content: 'Upload PSD, and parse it to HTML5, just seconds', | ||
| 18 | - src: 'http://qiniu-image.luban-h5.wxjcart.com/landing-page/home-feature/import-psd.svg', | ||
| 19 | - }, | ||
| 20 | -]; | ||
| 21 | - | ||
| 22 | -export const page2 = [ | ||
| 23 | - { | ||
| 24 | - title: 'Invitation', | ||
| 25 | - url: `${H5_HOST}/works/preview/1552`, | ||
| 26 | - image: 'https://i.loli.net/2019/12/04/haEim2C6QnzVPOY.png', | ||
| 27 | - }, | ||
| 28 | - { | ||
| 29 | - title: 'Good Morning', | ||
| 30 | - url: `${H5_HOST}/works/preview/1551`, | ||
| 31 | - image: 'https://i.loli.net/2019/12/04/qBCmSl4Du8jn2XZ.png', | ||
| 32 | - }, | ||
| 33 | - { | ||
| 34 | - title: 'Day of the Programmer', | ||
| 35 | - url: `${H5_HOST}/works/preview/833`, | ||
| 36 | - image: 'https://i.loli.net/2019/12/04/s7S1no4YcuJe8Qb.png', | ||
| 37 | - }, | ||
| 38 | -]; | ||
| 39 | - | ||
| 40 | -export const page3 = [ | ||
| 41 | - { | ||
| 42 | - title: 'Personal', | ||
| 43 | - content: [ | ||
| 44 | - <p key="1">Create Mobile Page</p>, | ||
| 45 | - <p key="2">Manage Templates</p>, | ||
| 46 | - <p key="3">Form Collection</p>, | ||
| 47 | - <p key="3">Data statistics</p>, | ||
| 48 | - ], | ||
| 49 | - // exp: '免费使用', | ||
| 50 | - svg: (<svg width="32px" height="32px" viewBox="0 0 32 32"> | ||
| 51 | - <defs> | ||
| 52 | - <linearGradient x1="50%" y1="0%" x2="50%" y2="98.8500478%" id="linearGradient-1"> | ||
| 53 | - <stop stopColor="#FFD24C" offset="0%" /> | ||
| 54 | - <stop stopColor="#FFB800" offset="100%" /> | ||
| 55 | - </linearGradient> | ||
| 56 | - </defs> | ||
| 57 | - <path | ||
| 58 | - d="M11.2,19.9763991 L1.43301577,25.9589289 | ||
| 59 | - C0.542750835,26.5042392 1.20441457e-15,27.4731633 1.33226763e-15,28.5171628 | ||
| 60 | - L0,28.5171628 L0,30 C1.3527075e-16,31.1045695 0.8954305,32 2,32 | ||
| 61 | - L30,32 C31.1045695,32 32,31.1045695 32,30 L32,30 L32,28.5391533 | ||
| 62 | - C32,27.4832633 31.4449138,26.5051178 30.53843,25.9636469 L30.53843,25.9636469 | ||
| 63 | - L20.8,20.1465799 L20.8,18.1051172 C22.2729985,16.7867478 23.2,14.8708611 23.2,12.7384615 | ||
| 64 | - L23.2,7.2 C23.2,3.2235498 19.9764502,-7.30462051e-16 16,0 | ||
| 65 | - C12.0235498,7.30462051e-16 8.8,3.2235498 8.8,7.2 L8.8,7.2 | ||
| 66 | - L8.8,12.7384615 C8.8,14.8708611 9.72700154,16.7867478 11.2,18.1051172 L11.2,19.9763991 Z" | ||
| 67 | - fill="#D9D9D9" | ||
| 68 | - /> | ||
| 69 | - <path | ||
| 70 | - d="M11.2,19.9763991 L1.43301577,25.9589289 | ||
| 71 | - C0.542750835,26.5042392 1.20441457e-15,27.4731633 1.33226763e-15,28.5171628 | ||
| 72 | - L0,28.5171628 L0,30 C1.3527075e-16,31.1045695 0.8954305,32 2,32 | ||
| 73 | - L30,32 C31.1045695,32 32,31.1045695 32,30 L32,30 L32,28.5391533 | ||
| 74 | - C32,27.4832633 31.4449138,26.5051178 30.53843,25.9636469 L30.53843,25.9636469 | ||
| 75 | - L20.8,20.1465799 L20.8,18.1051172 C22.2729985,16.7867478 23.2,14.8708611 23.2,12.7384615 | ||
| 76 | - L23.2,7.2 C23.2,3.2235498 19.9764502,-7.30462051e-16 16,0 | ||
| 77 | - C12.0235498,7.30462051e-16 8.8,3.2235498 8.8,7.2 L8.8,7.2 | ||
| 78 | - L8.8,12.7384615 C8.8,14.8708611 9.72700154,16.7867478 11.2,18.1051172 L11.2,19.9763991 Z" | ||
| 79 | - fill="url(#linearGradient-1)" | ||
| 80 | - className="icon-hover" | ||
| 81 | - /> | ||
| 82 | - </svg>), | ||
| 83 | - }, | ||
| 84 | - { | ||
| 85 | - title: 'Enterprise', | ||
| 86 | - content: [ | ||
| 87 | - <p key="1">Create Mobile Page</p>, | ||
| 88 | - <p key="2">Manage Templates</p>, | ||
| 89 | - <p key="3">Form Collection</p>, | ||
| 90 | - <p key="3">Data statistics</p>, | ||
| 91 | - <p key="3">PSD to HTML5</p>, | ||
| 92 | - ], | ||
| 93 | - svg: ( | ||
| 94 | - <svg width="32px" height="32px" viewBox="0 0 32 32"> | ||
| 95 | - <path | ||
| 96 | - d="M22.3555358,32 L9.93657149,32 L2,32 C0.8954305,32 1.3527075e-16,31.1045695 0,30 | ||
| 97 | - L0,18 C-1.3527075e-16,16.8954305 0.8954305,16 2,16 L2,16 L6.78535432,16 L6.78535432,2 | ||
| 98 | - L6.78535432,2 C6.78535432,0.8954305 7.68078482,2.02906125e-16 8.78535432,0 L21.7853543,0 | ||
| 99 | - C22.8899238,-2.02906125e-16 23.7853543,0.8954305 23.7853543,2 L23.7853543,7 L30,7 | ||
| 100 | - C31.1045695,7 32,7.8954305 32,9 L32,30 C32,31.1045695 31.1045695,32 30,32 L22.3555358,32 | ||
| 101 | - Z M10,4 L10,8 L14,8 L14,4 L10,4 Z M10,12 L10,16 L14,16 L14,12 L10,12 Z M10,20 L10,24 L14,24 | ||
| 102 | - L14,20 L10,20 Z M3,20 L3,24 L7,24 L7,20 L3,20 Z M17,4 L17,8 L21,8 L21,4 L17,4 Z M17,12 L17,16 | ||
| 103 | - L21,16 L21,12 L17,12 Z M17,20 L17,24 L21,24 L21,20 L17,20 Z M24,20 L24,24 L28,24 L28,20 L24,20 | ||
| 104 | - Z M24,12 L24,16 L28,16 L28,12 L24,12 Z" | ||
| 105 | - fill="#D9D9D9" | ||
| 106 | - /> | ||
| 107 | - <path | ||
| 108 | - d="M22.3555358,32 L9.93657149,32 L2,32 C0.8954305,32 1.3527075e-16,31.1045695 0,30 | ||
| 109 | - L0,18 C-1.3527075e-16,16.8954305 0.8954305,16 2,16 L2,16 L6.78535432,16 L6.78535432,2 | ||
| 110 | - L6.78535432,2 C6.78535432,0.8954305 7.68078482,2.02906125e-16 8.78535432,0 L21.7853543,0 | ||
| 111 | - C22.8899238,-2.02906125e-16 23.7853543,0.8954305 23.7853543,2 L23.7853543,7 L30,7 | ||
| 112 | - C31.1045695,7 32,7.8954305 32,9 L32,30 C32,31.1045695 31.1045695,32 30,32 L22.3555358,32 | ||
| 113 | - Z M10,4 L10,8 L14,8 L14,4 L10,4 Z M10,12 L10,16 L14,16 L14,12 L10,12 Z M10,20 L10,24 L14,24 | ||
| 114 | - L14,20 L10,20 Z M3,20 L3,24 L7,24 L7,20 L3,20 Z M17,4 L17,8 L21,8 L21,4 L17,4 Z M17,12 L17,16 | ||
| 115 | - L21,16 L21,12 L17,12 Z M17,20 L17,24 L21,24 L21,20 L17,20 Z M24,20 L24,24 L28,24 L28,20 L24,20 | ||
| 116 | - Z M24,12 L24,16 L28,16 L28,12 L24,12 Z" | ||
| 117 | - fill="url(#linearGradient-1)" | ||
| 118 | - className="icon-hover" | ||
| 119 | - /> | ||
| 120 | - </svg>), | ||
| 121 | - }, | ||
| 122 | - { | ||
| 123 | - title: 'Enterprise VIP', | ||
| 124 | - content: [ | ||
| 125 | - <p key="1">Create Mobile Page</p>, | ||
| 126 | - <p key="2">Manage Templates</p>, | ||
| 127 | - <p key="3">Form Collection</p>, | ||
| 128 | - <p key="3">Data statistics</p>, | ||
| 129 | - <p key="3">PSD to HTML5</p>, | ||
| 130 | - <p key="3">Custom Script</p>, | ||
| 131 | - <p key="6">User Management</p>, | ||
| 132 | - <p key="6">Project Management</p>, | ||
| 133 | - ], | ||
| 134 | - svg: ( | ||
| 135 | - <svg width="32px" height="32px" viewBox="0 0 32 32"> | ||
| 136 | - <path | ||
| 137 | - d="M21.1504124,8.82079742 L16.5552541,3.32558694 | ||
| 138 | - C16.5324137,3.29827282 16.5071873,3.27304601 16.4798736,3.25020514 | ||
| 139 | - C16.2256714,3.03763068 15.8472742,3.07137659 15.6346998,3.32557875 | ||
| 140 | - L15.6346998,3.32557875 L10.966694,8.90770327 L8.07603504,6.76607715 | ||
| 141 | - L8.07603504,6.76607715 C7.80977712,6.56881247 7.43401779,6.62474254 7.23675311,6.89100046 | ||
| 142 | - C7.13505771,7.02826378 7.09669461,7.20236809 7.13128245,7.36966081 L8.29535756,13 | ||
| 143 | - L15.9998162,13 L23.7045714,13 L24.8686535,7.36962696 | ||
| 144 | - C24.9357456,7.0451192 24.727069,6.72766477 24.4025612,6.66057265 | ||
| 145 | - C24.2352715,6.62598542 24.0611703,6.66434651 23.9239079,6.76603807 | ||
| 146 | - L21.1504124,8.82079742 Z M2,14 L30,14 C31.1045695,14 32,14.8954305 32,16 | ||
| 147 | - L32,30 C32,31.1045695 31.1045695,32 30,32 L2,32 C0.8954305,32 1.3527075e-16,31.1045695 0,30 | ||
| 148 | - L0,16 C-1.3527075e-16,14.8954305 0.8954305,14 2,14 L2,14 Z M16,2 C15.4477153,2 15,1.55228475 15,1 | ||
| 149 | - C15,0.44771525 15.4477153,0 16,0 C16.5522847,0 17,0.44771525 17,1 C17,1.55228475 16.5522847,2 16,2 Z | ||
| 150 | - M6,6 C5.44771525,6 5,5.55228475 5,5 C5,4.44771525 5.44771525,4 6,4 C6.55228475,4 7,4.44771525 7,5 | ||
| 151 | - C7,5.55228475 6.55228475,6 6,6 Z M26,6 C25.4477153,6 25,5.55228475 25,5 | ||
| 152 | - C25,4.44771525 25.4477153,4 26,4 C26.5522847,4 27,4.44771525 27,5 | ||
| 153 | - C27,5.55228475 26.5522847,6 26,6 Z M14.0979687,19.25 | ||
| 154 | - C14.1648524,19.04375 14.177013,18.94375 14.1526917,18.825 | ||
| 155 | - C14.1101294,18.6375 13.9094785,18.5 13.7149079,18.5 | ||
| 156 | - C13.6237029,18.5 13.5264176,18.53125 13.459534,18.59375 | ||
| 157 | - C13.368329,18.675 13.3257667,18.75625 13.2588831,18.9625 L11.0821247,25.80625 | ||
| 158 | - L8.90536631,18.9625 C8.83848268,18.75625 8.79592036,18.675 8.7047154,18.59375 | ||
| 159 | - C8.63783176,18.53125 8.54054647,18.5 8.44934151,18.5 | ||
| 160 | - C8.25477093,18.5 8.05412002,18.6375 8.0115577,18.825 | ||
| 161 | - C7.98723638,18.94375 7.99939704,19.04375 8.06628068,19.25 L10.5713769,26.98125 | ||
| 162 | - C10.6260999,27.15625 10.6929835,27.3 10.7659475,27.36875 | ||
| 163 | - C10.8632328,27.46875 10.9544378,27.5 11.0821247,27.5 | ||
| 164 | - C11.2037313,27.5 11.2949363,27.46875 11.3983019,27.36875 | ||
| 165 | - C11.4712659,27.3 11.5381495,27.15625 11.5928725,26.98125 | ||
| 166 | - L14.0979687,19.25 Z M16.5726622,19.15 C16.5726622,18.9 16.5605016,18.81875 16.4875376,18.7 | ||
| 167 | - C16.4145736,18.58125 16.274726,18.5 16.1044768,18.5 C15.9342275,18.5 15.7943799,18.58125 15.7214159,18.7 | ||
| 168 | - C15.648452,18.81875 15.6362913,18.9 15.6362913,19.15 L15.6362913,26.85 | ||
| 169 | - C15.6362913,27.1 15.648452,27.18125 15.7214159,27.3 C15.7943799,27.41875 15.9342275,27.5 16.1044768,27.5 | ||
| 170 | - C16.274726,27.5 16.4145736,27.41875 16.4875376,27.3 C16.5605016,27.18125 16.5726622,27.1 16.5726622,26.85 | ||
| 171 | - L16.5726622,19.15 Z M19.0777579,19.13125 L19.0777579,26.85 | ||
| 172 | - C19.0777579,27.1 19.0899186,27.18125 19.1628825,27.3 | ||
| 173 | - C19.2358465,27.41875 19.3756941,27.5 19.5459434,27.5 | ||
| 174 | - C19.7161926,27.5 19.8560402,27.41875 19.9290042,27.3 | ||
| 175 | - C20.0019682,27.18125 20.0141288,27.1 20.0141288,26.85 | ||
| 176 | - L20.0141288,23.7875 L22.3124938,23.7875 C23.8872995,23.7875 25,22.75 25,21.1625 | ||
| 177 | - C25,19.575 23.8872995,18.55 22.3124938,18.55 L19.6432287,18.55 | ||
| 178 | - C19.4973007,18.55 19.3331318,18.55 19.2054449,18.68125 | ||
| 179 | - C19.0777579,18.8125 19.0777579,18.98125 19.0777579,19.13125 Z M22.2395299,19.4 | ||
| 180 | - C23.3218287,19.4 24.0575487,19.9875 24.0575487,21.1625 | ||
| 181 | - C24.0575487,22.3375 23.3218287,22.9375 22.2395299,22.9375 L20.0141288,22.9375 | ||
| 182 | - L20.0141288,19.4 L22.2395299,19.4 Z" | ||
| 183 | - fill="#D9D9D9" | ||
| 184 | - /> | ||
| 185 | - <path | ||
| 186 | - d="M21.1504124,8.82079742 L16.5552541,3.32558694 | ||
| 187 | - C16.5324137,3.29827282 16.5071873,3.27304601 16.4798736,3.25020514 | ||
| 188 | - C16.2256714,3.03763068 15.8472742,3.07137659 15.6346998,3.32557875 | ||
| 189 | - L15.6346998,3.32557875 L10.966694,8.90770327 L8.07603504,6.76607715 | ||
| 190 | - L8.07603504,6.76607715 C7.80977712,6.56881247 7.43401779,6.62474254 7.23675311,6.89100046 | ||
| 191 | - C7.13505771,7.02826378 7.09669461,7.20236809 7.13128245,7.36966081 L8.29535756,13 | ||
| 192 | - L15.9998162,13 L23.7045714,13 L24.8686535,7.36962696 | ||
| 193 | - C24.9357456,7.0451192 24.727069,6.72766477 24.4025612,6.66057265 | ||
| 194 | - C24.2352715,6.62598542 24.0611703,6.66434651 23.9239079,6.76603807 | ||
| 195 | - L21.1504124,8.82079742 Z M2,14 L30,14 C31.1045695,14 32,14.8954305 32,16 | ||
| 196 | - L32,30 C32,31.1045695 31.1045695,32 30,32 L2,32 C0.8954305,32 1.3527075e-16,31.1045695 0,30 | ||
| 197 | - L0,16 C-1.3527075e-16,14.8954305 0.8954305,14 2,14 L2,14 Z M16,2 C15.4477153,2 15,1.55228475 15,1 | ||
| 198 | - C15,0.44771525 15.4477153,0 16,0 C16.5522847,0 17,0.44771525 17,1 C17,1.55228475 16.5522847,2 16,2 Z | ||
| 199 | - M6,6 C5.44771525,6 5,5.55228475 5,5 C5,4.44771525 5.44771525,4 6,4 C6.55228475,4 7,4.44771525 7,5 | ||
| 200 | - C7,5.55228475 6.55228475,6 6,6 Z M26,6 C25.4477153,6 25,5.55228475 25,5 | ||
| 201 | - C25,4.44771525 25.4477153,4 26,4 C26.5522847,4 27,4.44771525 27,5 | ||
| 202 | - C27,5.55228475 26.5522847,6 26,6 Z M14.0979687,19.25 | ||
| 203 | - C14.1648524,19.04375 14.177013,18.94375 14.1526917,18.825 | ||
| 204 | - C14.1101294,18.6375 13.9094785,18.5 13.7149079,18.5 | ||
| 205 | - C13.6237029,18.5 13.5264176,18.53125 13.459534,18.59375 | ||
| 206 | - C13.368329,18.675 13.3257667,18.75625 13.2588831,18.9625 L11.0821247,25.80625 | ||
| 207 | - L8.90536631,18.9625 C8.83848268,18.75625 8.79592036,18.675 8.7047154,18.59375 | ||
| 208 | - C8.63783176,18.53125 8.54054647,18.5 8.44934151,18.5 | ||
| 209 | - C8.25477093,18.5 8.05412002,18.6375 8.0115577,18.825 | ||
| 210 | - C7.98723638,18.94375 7.99939704,19.04375 8.06628068,19.25 L10.5713769,26.98125 | ||
| 211 | - C10.6260999,27.15625 10.6929835,27.3 10.7659475,27.36875 | ||
| 212 | - C10.8632328,27.46875 10.9544378,27.5 11.0821247,27.5 | ||
| 213 | - C11.2037313,27.5 11.2949363,27.46875 11.3983019,27.36875 | ||
| 214 | - C11.4712659,27.3 11.5381495,27.15625 11.5928725,26.98125 | ||
| 215 | - L14.0979687,19.25 Z M16.5726622,19.15 C16.5726622,18.9 16.5605016,18.81875 16.4875376,18.7 | ||
| 216 | - C16.4145736,18.58125 16.274726,18.5 16.1044768,18.5 C15.9342275,18.5 15.7943799,18.58125 15.7214159,18.7 | ||
| 217 | - C15.648452,18.81875 15.6362913,18.9 15.6362913,19.15 L15.6362913,26.85 | ||
| 218 | - C15.6362913,27.1 15.648452,27.18125 15.7214159,27.3 C15.7943799,27.41875 15.9342275,27.5 16.1044768,27.5 | ||
| 219 | - C16.274726,27.5 16.4145736,27.41875 16.4875376,27.3 C16.5605016,27.18125 16.5726622,27.1 16.5726622,26.85 | ||
| 220 | - L16.5726622,19.15 Z M19.0777579,19.13125 L19.0777579,26.85 | ||
| 221 | - C19.0777579,27.1 19.0899186,27.18125 19.1628825,27.3 | ||
| 222 | - C19.2358465,27.41875 19.3756941,27.5 19.5459434,27.5 | ||
| 223 | - C19.7161926,27.5 19.8560402,27.41875 19.9290042,27.3 | ||
| 224 | - C20.0019682,27.18125 20.0141288,27.1 20.0141288,26.85 | ||
| 225 | - L20.0141288,23.7875 L22.3124938,23.7875 C23.8872995,23.7875 25,22.75 25,21.1625 | ||
| 226 | - C25,19.575 23.8872995,18.55 22.3124938,18.55 L19.6432287,18.55 | ||
| 227 | - C19.4973007,18.55 19.3331318,18.55 19.2054449,18.68125 | ||
| 228 | - C19.0777579,18.8125 19.0777579,18.98125 19.0777579,19.13125 Z M22.2395299,19.4 | ||
| 229 | - C23.3218287,19.4 24.0575487,19.9875 24.0575487,21.1625 | ||
| 230 | - C24.0575487,22.3375 23.3218287,22.9375 22.2395299,22.9375 L20.0141288,22.9375 | ||
| 231 | - L20.0141288,19.4 L22.2395299,19.4 Z" | ||
| 232 | - fill="url(#linearGradient-1)" | ||
| 233 | - className="icon-hover" | ||
| 234 | - /> | ||
| 235 | - </svg>), | ||
| 236 | - }, | ||
| 237 | -]; | ||
| 238 | - | ||
| 239 | -export const page4 = [ | ||
| 240 | - 'https://gw.alipayobjects.com/zos/rmsportal/kJPmZttedahfIvsZDGTd.svg', | ||
| 241 | - 'https://gw.alipayobjects.com/zos/rmsportal/ktLOdfjNyExgKyWjiCvm.svg', | ||
| 242 | - 'https://gw.alipayobjects.com/zos/rmsportal/gNNxbrNqlHdnRuMjUXrL.svg', | ||
| 243 | - 'https://gw.alipayobjects.com/zos/rmsportal/qWaneWxxMVpASpiCOcsT.svg', | ||
| 244 | - 'https://gw.alipayobjects.com/zos/rmsportal/kyCpvqWFloOpAOqzOlBg.svg', | ||
| 245 | - 'https://gw.alipayobjects.com/zos/rmsportal/bBzJNEnPvyhNUhyHipvO.svg', | ||
| 246 | - 'https://gw.alipayobjects.com/zos/rmsportal/UbEpCMXGBmDgkJXfIgMx.svg', | ||
| 247 | - 'https://gw.alipayobjects.com/zos/rmsportal/xsWGKOdkRoJnzHIZlRiD.svg', | ||
| 248 | -]; | ||
| 249 | - | ||
| 250 | -export const footer = [ | ||
| 251 | - { text: '中文文档', src: 'https://ly525.github.io/luban-h5' }, | ||
| 252 | - { text: 'English Document', src: 'https://ly525.github.io/luban-h5' }, | ||
| 253 | - { text: 'Gitter', src: 'https://gitter.im/luban-h5/community' }, | ||
| 254 | -]; |
front-end/landing-page/src/Index-En/index.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import DocumentTitle from 'react-document-title'; | ||
| 3 | -// import Header from './Header'; | ||
| 4 | -import Banner from './Banner'; | ||
| 5 | -import Page1 from './Page1'; | ||
| 6 | -import Page2 from './Page2'; | ||
| 7 | -import Page3 from './Page3'; | ||
| 8 | -// import Page4 from './Page4'; | ||
| 9 | -import Footer from './Footer'; | ||
| 10 | -import './static/style'; | ||
| 11 | - | ||
| 12 | -// 不支持移动端 | ||
| 13 | -class Home extends React.PureComponent { | ||
| 14 | - render() { | ||
| 15 | - return ( | ||
| 16 | - <div className="home-page"> | ||
| 17 | - {/* <Header key="header" /> */} | ||
| 18 | - <Banner key="banner" /> | ||
| 19 | - <Page1 key="page1" /> | ||
| 20 | - <Page2 key="page2" /> | ||
| 21 | - <Page3 key="page3" /> | ||
| 22 | - {/* <Page4 key="page4" /> */} | ||
| 23 | - <Footer key="footer" /> | ||
| 24 | - <DocumentTitle title="鲁班H5 - 移动建站平台" /> | ||
| 25 | - </div> | ||
| 26 | - ); | ||
| 27 | - } | ||
| 28 | -} | ||
| 29 | -export default Home; |
front-end/landing-page/src/Index-En/static/custom.less deleted
100755 → 0
front-end/landing-page/src/Index-En/static/default.less deleted
100755 → 0
| 1 | -@import "~antd/lib/style/themes/default.less"; | ||
| 2 | -// 品牌色 | ||
| 3 | -@color-fengdie: #ffbf00; | ||
| 4 | -// 线框 | ||
| 5 | -@border-color: #D9D9D9; | ||
| 6 | -// 分割线 | ||
| 7 | -@separate-line-color: #E9E9E9; | ||
| 8 | -// 多行文本 | ||
| 9 | -@font-color: rgba(0,0,0,.65); | ||
| 10 | -// 标题、单行 | ||
| 11 | -@font-important-color: rgba(0,0,0,.85); | ||
| 12 | -@font-active-color: #666; | ||
| 13 | -// 辅助信息 | ||
| 14 | -@font-tip-color: rgba(0,0,0,.43); | ||
| 15 | -// 警告色 | ||
| 16 | -@font-warning: #f56a00; | ||
| 17 | -// 失败色 | ||
| 18 | -@font-fail: #f04134; | ||
| 19 | - | ||
| 20 | -// 主按钮颜色 | ||
| 21 | -@button-primary-color: #ffbf00; | ||
| 22 | -@label-color: #666; | ||
| 23 | -@border-active-color: #ffbf00; | ||
| 24 | -@background-active-color: #FFF8EF; | ||
| 25 | -@link-color: #50A4DB; | ||
| 26 | -@selected-color: #FFBC40; | ||
| 27 | -@moved-color: #FFF1E0; | ||
| 28 | -@header-background-color: #222222; | ||
| 29 | - | ||
| 30 | -@status-released-color: #00A854; | ||
| 31 | -@status-editing-color: #2DB7F5; | ||
| 32 | -@status-previewing-color: #7265E6; | ||
| 33 | -@status-approve_waiting-color: #FAC450; | ||
| 34 | -@status-approve_refused-color: #FF6600; | ||
| 35 | -@status-release_fail-color: #FF6600; | ||
| 36 | -@status-noop-color: #999; | ||
| 37 | -@search-input-border-color: #F59F16; | ||
| 38 | - | ||
| 39 | - | ||
| 40 | -@approveButtonBackgroundColor: #f7f7f7; | ||
| 41 | -@weekBackgroundColor: #FBFBFB; | ||
| 42 | - | ||
| 43 | -@highlight-font-color: @search-input-border-color; | ||
| 44 | - | ||
| 45 | -@white-background-color: #fff; | ||
| 46 | - | ||
| 47 | -@bgColor: #F7F7F7; | ||
| 48 | -@titleColor: fade(#000, 85); | ||
| 49 | -@contentColor: fade(#000, 43); | ||
| 50 | \ No newline at end of file | 0 | \ No newline at end of file |
front-end/landing-page/src/Index-En/static/footer.less deleted
100755 → 0
| 1 | -.home-page .home-footer-wrapper { | ||
| 2 | - height: 336px; | ||
| 3 | - background: #404040 !important; | ||
| 4 | - color: fade(#fff, 65); | ||
| 5 | - font-size: 14px; | ||
| 6 | - .home-layout { | ||
| 7 | - padding: 72px 32px 0; | ||
| 8 | - .copy{ | ||
| 9 | - color: fade(#fff, 43); | ||
| 10 | - } | ||
| 11 | - } | ||
| 12 | - .home-footer-nav-wrapper { | ||
| 13 | - margin: 48px auto 16px; | ||
| 14 | - > div { | ||
| 15 | - display: inline-block; | ||
| 16 | - padding: 0 36px; | ||
| 17 | - border-right: 1px solid #fff; | ||
| 18 | - &:last-child { | ||
| 19 | - border-right: none; | ||
| 20 | - } | ||
| 21 | - a { | ||
| 22 | - display: block; | ||
| 23 | - color: fade(#fff, 65); | ||
| 24 | - font-size: 16px; | ||
| 25 | - line-height: 16px; | ||
| 26 | - } | ||
| 27 | - } | ||
| 28 | - } | ||
| 29 | - .logo{ margin-bottom: 5px; } | ||
| 30 | -} | ||
| 31 | \ No newline at end of file | 0 | \ No newline at end of file |
front-end/landing-page/src/Index-En/static/header.less deleted
100755 → 0
| 1 | -header { | ||
| 2 | - width: 100%; | ||
| 3 | - z-index: 1000; | ||
| 4 | - top: 0; | ||
| 5 | - background-color: #fff; | ||
| 6 | - .header-content { | ||
| 7 | - display: flex; | ||
| 8 | - justify-content: space-between; | ||
| 9 | - align-items: center; | ||
| 10 | - height: 64px; | ||
| 11 | - font-size: 14px; | ||
| 12 | - padding: 0 24px; | ||
| 13 | - width: 1152px; | ||
| 14 | - margin: 0 auto; | ||
| 15 | - h1 { | ||
| 16 | - position: relative; | ||
| 17 | - &:before { | ||
| 18 | - content: ""; | ||
| 19 | - position: absolute; | ||
| 20 | - top: 10px; | ||
| 21 | - left: 144px; | ||
| 22 | - width: 1px; | ||
| 23 | - height: 12px; | ||
| 24 | - background: #999; | ||
| 25 | - } | ||
| 26 | - a { | ||
| 27 | - display: block; | ||
| 28 | - width: 120px; | ||
| 29 | - height: 32px; | ||
| 30 | - background: url(https://gw.alipayobjects.com/zos/rmsportal/qdWihUzYxihpnOMVhFPV.png) no-repeat 0 50%; | ||
| 31 | - background-size: 120px 32px; | ||
| 32 | - text-indent: -999em; | ||
| 33 | - } | ||
| 34 | - span{ | ||
| 35 | - position: absolute; | ||
| 36 | - font-size: 14px; | ||
| 37 | - font-weight: 400; | ||
| 38 | - top: 6px; | ||
| 39 | - left: 168px; | ||
| 40 | - color: rgba(0,0,0,.65); | ||
| 41 | - white-space: nowrap; | ||
| 42 | - } | ||
| 43 | - } | ||
| 44 | - } | ||
| 45 | -} | ||
| 46 | \ No newline at end of file | 0 | \ No newline at end of file |
front-end/landing-page/src/Index-En/static/home.less deleted
100755 → 0
| 1 | -@import './default.less'; | ||
| 2 | -.home-page { | ||
| 3 | - .fd-content { | ||
| 4 | - min-width: 1216px; | ||
| 5 | - background: #FFF; | ||
| 6 | - font-family: PingFangSC, Helvetica Neue, Helvetica, PingFang SC-Light, Hiragino Sans GB, Microsoft YaHei, SimSun, sans-serif; | ||
| 7 | - } | ||
| 8 | - h2, | ||
| 9 | - h3, | ||
| 10 | - h4, | ||
| 11 | - h5 { | ||
| 12 | - font-weight: 100; | ||
| 13 | - } | ||
| 14 | - .home-layout-wrapper { | ||
| 15 | - width: 100%; | ||
| 16 | - height: 720px; | ||
| 17 | - text-align: center; | ||
| 18 | - overflow: hidden; | ||
| 19 | - .home-layout { | ||
| 20 | - margin: 0 auto; | ||
| 21 | - width: 1152px; | ||
| 22 | - padding: 0 24px; | ||
| 23 | - overflow: hidden; | ||
| 24 | - height: 100%; | ||
| 25 | - >div { | ||
| 26 | - float: left; | ||
| 27 | - width: 100%; | ||
| 28 | - } | ||
| 29 | - .col { | ||
| 30 | - .content-wrapper { | ||
| 31 | - border-radius: 4px; | ||
| 32 | - background: #fff; | ||
| 33 | - cursor: pointer; | ||
| 34 | - overflow: hidden; | ||
| 35 | - position: relative; | ||
| 36 | - } | ||
| 37 | - } | ||
| 38 | - } | ||
| 39 | - &:nth-of-type(odd) { | ||
| 40 | - background: #fff; | ||
| 41 | - } | ||
| 42 | - &:nth-of-type(even) { | ||
| 43 | - background-color: @bgColor; | ||
| 44 | - } | ||
| 45 | - } | ||
| 46 | - h2, | ||
| 47 | - h3 { | ||
| 48 | - text-align: center; | ||
| 49 | - font-weight: normal; | ||
| 50 | - } | ||
| 51 | - h2 { | ||
| 52 | - font-size: 30px; | ||
| 53 | - line-height: 38px; | ||
| 54 | - color: @titleColor; | ||
| 55 | - margin-top: 88px; | ||
| 56 | - } | ||
| 57 | - h3 { | ||
| 58 | - font-size: 24px; | ||
| 59 | - line-height: 32px; | ||
| 60 | - margin-bottom: 16px; | ||
| 61 | - color: @titleColor; | ||
| 62 | - } | ||
| 63 | - .line { | ||
| 64 | - width: 40px; | ||
| 65 | - height: 2px; | ||
| 66 | - display: block; | ||
| 67 | - background: #FFBF00; | ||
| 68 | - margin: 16px auto 72px; | ||
| 69 | - } | ||
| 70 | - /* banner 区域 */ | ||
| 71 | - .home-banner { | ||
| 72 | - height: 656px; | ||
| 73 | - color: #fff; | ||
| 74 | - g, | ||
| 75 | - ellipse { | ||
| 76 | - transform-box: fill-box; | ||
| 77 | - } | ||
| 78 | - .home-layout { | ||
| 79 | - height: 100%; | ||
| 80 | - display: flex; | ||
| 81 | - align-items: center; | ||
| 82 | - padding-top: 0; | ||
| 83 | - text-align: left; | ||
| 84 | - } | ||
| 85 | - .home-banner-content-wrapper, | ||
| 86 | - .home-banner-image-wrapper { | ||
| 87 | - width: 50%; | ||
| 88 | - display: inline-block; | ||
| 89 | - } | ||
| 90 | - .home-banner-content-wrapper { | ||
| 91 | - height: 178px; | ||
| 92 | - margin-bottom: 40px; | ||
| 93 | - } | ||
| 94 | - h1 { | ||
| 95 | - font-size: 38px; | ||
| 96 | - line-height: 46px; | ||
| 97 | - margin-bottom: 16px; | ||
| 98 | - font-weight: normal; | ||
| 99 | - color: @titleColor; | ||
| 100 | - } | ||
| 101 | - p { | ||
| 102 | - margin-bottom: 40px; | ||
| 103 | - font-size: 20px; | ||
| 104 | - line-height: 28px; | ||
| 105 | - color: @contentColor; | ||
| 106 | - } | ||
| 107 | - span { | ||
| 108 | - display: inline-block; | ||
| 109 | - } | ||
| 110 | - button { | ||
| 111 | - width: 168px; | ||
| 112 | - height: 48px; | ||
| 113 | - font-size: 20px; | ||
| 114 | - } | ||
| 115 | - | ||
| 116 | - .ant-btn-group button { | ||
| 117 | - width: 48px; | ||
| 118 | - } | ||
| 119 | - .home-banner-image-wrapper { | ||
| 120 | - text-align: center; | ||
| 121 | - margin-top: -120px; | ||
| 122 | - } | ||
| 123 | - } | ||
| 124 | - /* 功能介绍 */ | ||
| 125 | - .home-func-wrapper { | ||
| 126 | - height: 720px; | ||
| 127 | - text-align: center; | ||
| 128 | - .image { | ||
| 129 | - height: 240px; | ||
| 130 | - position: relative; | ||
| 131 | - background-position: bottom center; | ||
| 132 | - background-repeat: no-repeat; | ||
| 133 | - background-size: 90% auto; | ||
| 134 | - margin-bottom: 62px; | ||
| 135 | - } | ||
| 136 | - .col { | ||
| 137 | - height: 400px; | ||
| 138 | - } | ||
| 139 | - p { | ||
| 140 | - font-size: 16px; | ||
| 141 | - color: @contentColor; | ||
| 142 | - } | ||
| 143 | - } | ||
| 144 | - .home-hover { | ||
| 145 | - border: 1px solid #E9E9E9; | ||
| 146 | - transition: transform .45s cubic-bezier(0.645, 0.045, 0.355, 1), box-shadow .45s cubic-bezier(0.645, 0.045, 0.355, 1), border .45s cubic-bezier(0.645, 0.045, 0.355, 1); | ||
| 147 | - &:hover { | ||
| 148 | - transform: translateY(-4px); | ||
| 149 | - box-shadow: 0 2px 24px fade(#000, 10); | ||
| 150 | - border-color: #fff; | ||
| 151 | - } | ||
| 152 | - } | ||
| 153 | - /* 案例 */ | ||
| 154 | - .home-case-wrapper { | ||
| 155 | - .col { | ||
| 156 | - .content-wrapper { | ||
| 157 | - height: 360px; | ||
| 158 | - padding: 16px; | ||
| 159 | - .image { | ||
| 160 | - width: 100%; | ||
| 161 | - height: 100%; | ||
| 162 | - border-radius: 2px; | ||
| 163 | - background-position: center; | ||
| 164 | - background-repeat: no-repeat; | ||
| 165 | - background-size: cover; | ||
| 166 | - } | ||
| 167 | - &:hover { | ||
| 168 | - .code-wrapper { | ||
| 169 | - opacity: 1; | ||
| 170 | - } | ||
| 171 | - } | ||
| 172 | - } | ||
| 173 | - .code-wrapper { | ||
| 174 | - position: absolute; | ||
| 175 | - background: fade(#fff, 90); | ||
| 176 | - width: 100%; | ||
| 177 | - height: 100%; | ||
| 178 | - top: 0; | ||
| 179 | - left: 0; | ||
| 180 | - opacity: 0; | ||
| 181 | - transition: opacity 0.45s cubic-bezier(0.165, 0.84, 0.44, 1); | ||
| 182 | - h4 { | ||
| 183 | - font-size: 16px; | ||
| 184 | - font-weight: normal; | ||
| 185 | - margin: 72px auto 12px; | ||
| 186 | - color: @titleColor; | ||
| 187 | - } | ||
| 188 | - } | ||
| 189 | - } | ||
| 190 | - } | ||
| 191 | - .home-serve-wrapper { | ||
| 192 | - height: 788px; | ||
| 193 | - text-align: center; | ||
| 194 | - .col { | ||
| 195 | - font-size: 16px; | ||
| 196 | - .content-wrapper { | ||
| 197 | - padding: 24px 16px; | ||
| 198 | - height: 440px; | ||
| 199 | - .icon-hover { | ||
| 200 | - opacity: 0; | ||
| 201 | - transition: opacity .45s; | ||
| 202 | - } | ||
| 203 | - &:hover { | ||
| 204 | - .icon-hover { | ||
| 205 | - opacity: 1; | ||
| 206 | - } | ||
| 207 | - p { | ||
| 208 | - color: fade(#000000, 65); | ||
| 209 | - } | ||
| 210 | - } | ||
| 211 | - } | ||
| 212 | - .image { | ||
| 213 | - width: 32px; | ||
| 214 | - height: 32px; | ||
| 215 | - margin: 8px auto 12px; | ||
| 216 | - } | ||
| 217 | - h3 { | ||
| 218 | - margin-bottom: 24px; | ||
| 219 | - } | ||
| 220 | - p { | ||
| 221 | - margin-bottom: 12px; | ||
| 222 | - color: @contentColor; | ||
| 223 | - transition: color .3s; | ||
| 224 | - font-weight: 400; | ||
| 225 | - } | ||
| 226 | - .exp { | ||
| 227 | - position: absolute; | ||
| 228 | - bottom: 24px; | ||
| 229 | - left: 0; | ||
| 230 | - width: 100%; | ||
| 231 | - font-size: 20px; | ||
| 232 | - color: fade(#000, 25); | ||
| 233 | - } | ||
| 234 | - } | ||
| 235 | - } | ||
| 236 | - .home-user-wrapper { | ||
| 237 | - height: 440px; | ||
| 238 | - h2 { | ||
| 239 | - margin-top: 64px; | ||
| 240 | - } | ||
| 241 | - .col { | ||
| 242 | - margin-bottom: 32px; | ||
| 243 | - i { | ||
| 244 | - display: block; | ||
| 245 | - width: 170px; | ||
| 246 | - height: 56px; | ||
| 247 | - background-repeat: no-repeat; | ||
| 248 | - background-position: center; | ||
| 249 | - margin: auto; | ||
| 250 | - } | ||
| 251 | - } | ||
| 252 | - } | ||
| 253 | -} | ||
| 254 | \ No newline at end of file | 0 | \ No newline at end of file |
front-end/landing-page/src/Index-En/static/responsive.less deleted
100755 → 0
front-end/landing-page/src/Index-En/static/style.js deleted
100755 → 0
front-end/landing-page/src/Index/Banner.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import PropTypes from 'prop-types'; | ||
| 3 | -import QueueAnim from 'rc-queue-anim'; | ||
| 4 | -import { Button, Icon } from 'antd'; | ||
| 5 | -import BannerImage from './BannerImage'; | ||
| 6 | - | ||
| 7 | -const ButtonGroup = Button.Group; | ||
| 8 | - | ||
| 9 | -const LubanIcon = Icon.createFromIconfontCN({ | ||
| 10 | - scriptUrl: '//at.alicdn.com/t/font_1455736_n0ivu1iicd.js', | ||
| 11 | -}); | ||
| 12 | - | ||
| 13 | -class Banner extends React.PureComponent { | ||
| 14 | - static propTypes = { | ||
| 15 | - className: PropTypes.string, | ||
| 16 | - } | ||
| 17 | - static defaultProps = { | ||
| 18 | - className: 'home-banner', | ||
| 19 | - } | ||
| 20 | - render() { | ||
| 21 | - const { className } = this.props; | ||
| 22 | - return ( | ||
| 23 | - <div className={`home-layout-wrapper ${className}`}> | ||
| 24 | - <div className="home-layout"> | ||
| 25 | - <QueueAnim className={`${className}-content-wrapper`} delay={300} ease="easeOutQuart"> | ||
| 26 | - <h1 key="h1"> | ||
| 27 | - 极简制作,一键呈现 | ||
| 28 | - </h1> | ||
| 29 | - <p key="p">为您提供专业的云上建站服务,满足不同行业的个性化需求</p> | ||
| 30 | - <span key="button"> | ||
| 31 | - <Button | ||
| 32 | - type="primary" | ||
| 33 | - onClick={() => { | ||
| 34 | - window.open('https://h5.luban-h5.com') | ||
| 35 | - }} | ||
| 36 | - > | ||
| 37 | - 开始使用 | ||
| 38 | - </Button> | ||
| 39 | - </span> | ||
| 40 | - <span key="button2"> | ||
| 41 | - <ButtonGroup> | ||
| 42 | - <Button type="link" size="small" title="Gitee" onClick={() => { | ||
| 43 | - window.open("https://gitee.com/ly525/luban-h5"); | ||
| 44 | - }}><LubanIcon type="iconmayun"/></Button> | ||
| 45 | - <Button type="link" size="small" title="GitHub" onClick={() => { | ||
| 46 | - window.open('https://github.com/ly525/luban-h5'); | ||
| 47 | - }}><img alt="GitHub stars" src="https://img.shields.io/github/stars/ly525/luban-h5?style=social" /></Button> | ||
| 48 | - </ButtonGroup> | ||
| 49 | - </span> | ||
| 50 | - </QueueAnim> | ||
| 51 | - <div className={`${className}-image-wrapper`}> | ||
| 52 | - <BannerImage /> | ||
| 53 | - </div> | ||
| 54 | - </div> | ||
| 55 | - </div> | ||
| 56 | - ); | ||
| 57 | - } | ||
| 58 | -} | ||
| 59 | - | ||
| 60 | -export default Banner; |
front-end/landing-page/src/Index/BannerImage.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import TweenOne from 'rc-tween-one'; | ||
| 3 | -import SvgDrawPlugin from 'rc-tween-one/lib/plugin/SvgDrawPlugin'; | ||
| 4 | -import BannerImg from '../assets/home/banner.svg' | ||
| 5 | - | ||
| 6 | -TweenOne.plugins.push(SvgDrawPlugin); | ||
| 7 | - | ||
| 8 | -export default function BannerImage() { | ||
| 9 | - return <img src={BannerImg} width={510} />; | ||
| 10 | -} |
front-end/landing-page/src/Index/Footer.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import { footer } from './data'; | ||
| 3 | - | ||
| 4 | -function antCloudFooter() { | ||
| 5 | - const children = footer.map((item, i) => (<div key={i}><a href={item.src} target="_blank">{item.text}</a></div>)); | ||
| 6 | - return (<div> | ||
| 7 | - <div className="logo" key="logo"> | ||
| 8 | - {/* <img src="https://gw.alipayobjects.com/zos/rmsportal/dnIbXmAgGbRxQJksRsJL.svg" width="72" height="82" /> */} | ||
| 9 | - <h1 style={{color: 'white'}}>鲁班 H5</h1> | ||
| 10 | - </div> | ||
| 11 | - <div key="nav" className="home-footer-nav-wrapper"> | ||
| 12 | - {children} | ||
| 13 | - </div> | ||
| 14 | - </div> | ||
| 15 | - ); | ||
| 16 | -} | ||
| 17 | - | ||
| 18 | -function Footer() { | ||
| 19 | - return ( | ||
| 20 | - <div className="home-layout-wrapper home-footer-wrapper"> | ||
| 21 | - <div className="home-layout"> | ||
| 22 | - {antCloudFooter()} | ||
| 23 | - <p key="cop" className="copy">©2019 - 2019 Metrix-Transform All Rights Reserved</p> | ||
| 24 | - </div> | ||
| 25 | - </div> | ||
| 26 | - ); | ||
| 27 | -} | ||
| 28 | - | ||
| 29 | -export default Footer; |
front-end/landing-page/src/Index/Header.jsx deleted
100755 → 0
front-end/landing-page/src/Index/Page1.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import QueueAnim from 'rc-queue-anim'; | ||
| 3 | -import OverPack from 'rc-scroll-anim/lib/ScrollOverPack'; | ||
| 4 | -import { Row, Col } from 'antd'; | ||
| 5 | -import { page1 } from './data'; | ||
| 6 | - | ||
| 7 | -export default function Page1() { | ||
| 8 | - const children = page1.map((d, i) => ( | ||
| 9 | - <QueueAnim | ||
| 10 | - component={Col} | ||
| 11 | - key={i} | ||
| 12 | - type="bottom" | ||
| 13 | - className="col" | ||
| 14 | - componentProps={{ span: 8 }} | ||
| 15 | - > | ||
| 16 | - <div key="image" className="image" style={{ backgroundImage: `url(${d.src})`, backgroundSize: 'contain' }} /> | ||
| 17 | - <h3 key="h3">{d.title}</h3> | ||
| 18 | - <p key="p">{d.content}</p> | ||
| 19 | - </QueueAnim> | ||
| 20 | - )); | ||
| 21 | - return ( | ||
| 22 | - <div className="home-layout-wrapper home-func-wrapper" id="home-func" > | ||
| 23 | - <h2>功能介绍</h2> | ||
| 24 | - <i className="line" /> | ||
| 25 | - <OverPack className="home-layout" location="home-func" playScale={0.4}> | ||
| 26 | - <QueueAnim className="home-func" type="bottom" key="home-func" ease="easeOutQuart" leaveReverse> | ||
| 27 | - <QueueAnim | ||
| 28 | - key="content" | ||
| 29 | - component={Row} | ||
| 30 | - type="bottom" | ||
| 31 | - componentProps={{ gutter: 171 }} | ||
| 32 | - > | ||
| 33 | - {children} | ||
| 34 | - </QueueAnim> | ||
| 35 | - </QueueAnim> | ||
| 36 | - </OverPack> | ||
| 37 | - </div>); | ||
| 38 | -} |
front-end/landing-page/src/Index/Page2.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import QueueAnim from 'rc-queue-anim'; | ||
| 3 | -import OverPack from 'rc-scroll-anim/lib/ScrollOverPack'; | ||
| 4 | -import QRCode from 'qrcode.react'; | ||
| 5 | -import { Row, Col } from 'antd'; | ||
| 6 | -import { page2 } from './data'; | ||
| 7 | - | ||
| 8 | -export default function Page2() { | ||
| 9 | - const children = page2.map((d, i) => { | ||
| 10 | - if (i > 2) { | ||
| 11 | - return null; | ||
| 12 | - } | ||
| 13 | - return ( | ||
| 14 | - <Col key={i} className="col" span={8}> | ||
| 15 | - <div className="content-wrapper home-hover"> | ||
| 16 | - <div className="image" style={{ backgroundImage: `url(${d.image})` }} /> | ||
| 17 | - <div className="code-wrapper"> | ||
| 18 | - <h4>扫码预览</h4> | ||
| 19 | - <QRCode value={d.url} size={160} /> | ||
| 20 | - </div> | ||
| 21 | - </div> | ||
| 22 | - </Col>); | ||
| 23 | - }); | ||
| 24 | - return ( | ||
| 25 | - <div className="home-layout-wrapper home-case-wrapper"> | ||
| 26 | - <OverPack className="home-layout" playScale={0.4}> | ||
| 27 | - <QueueAnim className="home-case" type="bottom" key="home-case" ease="easeOutQuart" leaveReverse> | ||
| 28 | - <h2 key="h2">精品案例扫一扫</h2> | ||
| 29 | - <i key="i" className="line" /> | ||
| 30 | - <QueueAnim | ||
| 31 | - key="content" | ||
| 32 | - component={Row} | ||
| 33 | - type="bottom" | ||
| 34 | - componentProps={{ gutter: 171 }} | ||
| 35 | - > | ||
| 36 | - {children} | ||
| 37 | - </QueueAnim> | ||
| 38 | - </QueueAnim> | ||
| 39 | - </OverPack> | ||
| 40 | - </div>); | ||
| 41 | -} |
front-end/landing-page/src/Index/Page3.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import QueueAnim from 'rc-queue-anim'; | ||
| 3 | -import OverPack from 'rc-scroll-anim/lib/ScrollOverPack'; | ||
| 4 | -import { Row, Col } from 'antd'; | ||
| 5 | -import { page3 } from './data'; | ||
| 6 | - | ||
| 7 | -export default function Page3() { | ||
| 8 | - const children = page3.map((d, i) => ( | ||
| 9 | - <Col span={8} className="col" key={i.toString()}> | ||
| 10 | - <QueueAnim | ||
| 11 | - type="bottom" | ||
| 12 | - className="content-wrapper home-hover" | ||
| 13 | - onClick={() => { }} | ||
| 14 | - > | ||
| 15 | - <div key="image" className="image">{d.svg}</div> | ||
| 16 | - <h3 key="h3">{d.title}</h3> | ||
| 17 | - {d.content} | ||
| 18 | - {d.exp && <div className="exp" key="exp">{d.exp}</div>} | ||
| 19 | - </QueueAnim> | ||
| 20 | - </Col> | ||
| 21 | - )); | ||
| 22 | - return ( | ||
| 23 | - <div className="home-layout-wrapper home-serve-wrapper"> | ||
| 24 | - <OverPack className="home-layout" playScale={0.4}> | ||
| 25 | - <QueueAnim className="home-serve" type="bottom" key="home-func" ease="easeOutQuart" leaveReverse> | ||
| 26 | - <h2 key="h2">服务方案</h2> | ||
| 27 | - <i key="i" className="line" /> | ||
| 28 | - <QueueAnim | ||
| 29 | - key="content" | ||
| 30 | - component={Row} | ||
| 31 | - type="bottom" | ||
| 32 | - componentProps={{ gutter: 96 }} | ||
| 33 | - > | ||
| 34 | - {children} | ||
| 35 | - </QueueAnim> | ||
| 36 | - </QueueAnim> | ||
| 37 | - </OverPack> | ||
| 38 | - </div>); | ||
| 39 | -} |
front-end/landing-page/src/Index/Page4.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import QueueAnim from 'rc-queue-anim'; | ||
| 3 | -import OverPack from 'rc-scroll-anim/lib/ScrollOverPack'; | ||
| 4 | -import { Row, Col } from 'antd'; | ||
| 5 | -import { page4 } from './data'; | ||
| 6 | - | ||
| 7 | -function getLi(num, d, i) { | ||
| 8 | - const t = num + 1; | ||
| 9 | - if (i > t * 4 - 1 || i < num * 4) { | ||
| 10 | - return null; | ||
| 11 | - } | ||
| 12 | - return ( | ||
| 13 | - <Col className="col" span={4} key={i} offset={!(i % 4) ? 1 : 2}> | ||
| 14 | - <i style={{ backgroundImage: `url(${d})` }} /> | ||
| 15 | - </Col> | ||
| 16 | - ); | ||
| 17 | -} | ||
| 18 | -export default function Page4() { | ||
| 19 | - const children = []; | ||
| 20 | - for (let i = 0; i < Math.floor(page4.length / 4); i++) { | ||
| 21 | - children.push(( | ||
| 22 | - <QueueAnim | ||
| 23 | - component={Row} | ||
| 24 | - type="bottom" | ||
| 25 | - key={i} | ||
| 26 | - > | ||
| 27 | - {page4.map(getLi.bind(this, i)).filter(item => item)} | ||
| 28 | - </QueueAnim>)); | ||
| 29 | - } | ||
| 30 | - return ( | ||
| 31 | - <div className="home-layout-wrapper home-user-wrapper"> | ||
| 32 | - <OverPack className="home-layout" playScale={0.4}> | ||
| 33 | - <QueueAnim className="home-user" type="bottom" key="home-func" ease="easeOutQuart" leaveReverse> | ||
| 34 | - <h2 key="h2">我们的用户</h2> | ||
| 35 | - <i key="i" className="line" /> | ||
| 36 | - {children} | ||
| 37 | - </QueueAnim> | ||
| 38 | - </OverPack> | ||
| 39 | - </div> | ||
| 40 | - ); | ||
| 41 | -} |
front-end/landing-page/src/Index/data.js deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import { H5_HOST } from '@/constants/config'; | ||
| 3 | - | ||
| 4 | -export const page1 = [ | ||
| 5 | - { | ||
| 6 | - title: '轻松建站', | ||
| 7 | - content: '丰富的组件系统、支持可视化编辑、自由拖拽排版、实时预览、在线访问', | ||
| 8 | - src: 'http://qiniu-image.luban-h5.wxjcart.com/landing-page/home-feature/quick-make.svg', | ||
| 9 | - }, | ||
| 10 | - { | ||
| 11 | - title: '表单提交', | ||
| 12 | - content: '支持表单组件,即时倾听用户反馈,可以在后台查看和下载用户数据', | ||
| 13 | - src: 'http://qiniu-image.luban-h5.wxjcart.com/landing-page/home-feature/submit-form.svg', | ||
| 14 | - }, | ||
| 15 | - { | ||
| 16 | - title: '导入 PSD', | ||
| 17 | - content: '支持一键导入PSD,将设计师的创意转换为 H5,快速查看效果、反馈、上线', | ||
| 18 | - src: 'http://qiniu-image.luban-h5.wxjcart.com/landing-page/home-feature/import-psd.svg', | ||
| 19 | - }, | ||
| 20 | -]; | ||
| 21 | - | ||
| 22 | -export const page2 = [ | ||
| 23 | - { | ||
| 24 | - title: 'Invitation', | ||
| 25 | - url: `${H5_HOST}/works/preview/1552`, | ||
| 26 | - image: 'https://i.loli.net/2019/12/04/haEim2C6QnzVPOY.png', | ||
| 27 | - }, | ||
| 28 | - { | ||
| 29 | - title: 'Good Morning', | ||
| 30 | - url: `${H5_HOST}/works/preview/1551`, | ||
| 31 | - image: 'https://i.loli.net/2019/12/04/qBCmSl4Du8jn2XZ.png', | ||
| 32 | - }, | ||
| 33 | - { | ||
| 34 | - title: 'Day of the Programmer', | ||
| 35 | - url: `${H5_HOST}/works/preview/833`, | ||
| 36 | - image: 'https://i.loli.net/2019/12/04/s7S1no4YcuJe8Qb.png', | ||
| 37 | - }, | ||
| 38 | -]; | ||
| 39 | - | ||
| 40 | -export const page3 = [ | ||
| 41 | - { | ||
| 42 | - title: '个人版', | ||
| 43 | - content: [ | ||
| 44 | - <p key="1">支持 H5 站点制作</p>, | ||
| 45 | - <p key="2">支持模板管理</p>, | ||
| 46 | - <p key="3">支持表单提交</p>, | ||
| 47 | - <p key="3">支持数据统计</p>, | ||
| 48 | - ], | ||
| 49 | - // exp: '免费使用', | ||
| 50 | - svg: (<svg width="32px" height="32px" viewBox="0 0 32 32"> | ||
| 51 | - <defs> | ||
| 52 | - <linearGradient x1="50%" y1="0%" x2="50%" y2="98.8500478%" id="linearGradient-1"> | ||
| 53 | - <stop stopColor="#FFD24C" offset="0%" /> | ||
| 54 | - <stop stopColor="#FFB800" offset="100%" /> | ||
| 55 | - </linearGradient> | ||
| 56 | - </defs> | ||
| 57 | - <path | ||
| 58 | - d="M11.2,19.9763991 L1.43301577,25.9589289 | ||
| 59 | - C0.542750835,26.5042392 1.20441457e-15,27.4731633 1.33226763e-15,28.5171628 | ||
| 60 | - L0,28.5171628 L0,30 C1.3527075e-16,31.1045695 0.8954305,32 2,32 | ||
| 61 | - L30,32 C31.1045695,32 32,31.1045695 32,30 L32,30 L32,28.5391533 | ||
| 62 | - C32,27.4832633 31.4449138,26.5051178 30.53843,25.9636469 L30.53843,25.9636469 | ||
| 63 | - L20.8,20.1465799 L20.8,18.1051172 C22.2729985,16.7867478 23.2,14.8708611 23.2,12.7384615 | ||
| 64 | - L23.2,7.2 C23.2,3.2235498 19.9764502,-7.30462051e-16 16,0 | ||
| 65 | - C12.0235498,7.30462051e-16 8.8,3.2235498 8.8,7.2 L8.8,7.2 | ||
| 66 | - L8.8,12.7384615 C8.8,14.8708611 9.72700154,16.7867478 11.2,18.1051172 L11.2,19.9763991 Z" | ||
| 67 | - fill="#D9D9D9" | ||
| 68 | - /> | ||
| 69 | - <path | ||
| 70 | - d="M11.2,19.9763991 L1.43301577,25.9589289 | ||
| 71 | - C0.542750835,26.5042392 1.20441457e-15,27.4731633 1.33226763e-15,28.5171628 | ||
| 72 | - L0,28.5171628 L0,30 C1.3527075e-16,31.1045695 0.8954305,32 2,32 | ||
| 73 | - L30,32 C31.1045695,32 32,31.1045695 32,30 L32,30 L32,28.5391533 | ||
| 74 | - C32,27.4832633 31.4449138,26.5051178 30.53843,25.9636469 L30.53843,25.9636469 | ||
| 75 | - L20.8,20.1465799 L20.8,18.1051172 C22.2729985,16.7867478 23.2,14.8708611 23.2,12.7384615 | ||
| 76 | - L23.2,7.2 C23.2,3.2235498 19.9764502,-7.30462051e-16 16,0 | ||
| 77 | - C12.0235498,7.30462051e-16 8.8,3.2235498 8.8,7.2 L8.8,7.2 | ||
| 78 | - L8.8,12.7384615 C8.8,14.8708611 9.72700154,16.7867478 11.2,18.1051172 L11.2,19.9763991 Z" | ||
| 79 | - fill="url(#linearGradient-1)" | ||
| 80 | - className="icon-hover" | ||
| 81 | - /> | ||
| 82 | - </svg>), | ||
| 83 | - }, | ||
| 84 | - { | ||
| 85 | - title: '企业版', | ||
| 86 | - content: [ | ||
| 87 | - <p key="1">支持 H5 站点制作</p>, | ||
| 88 | - // <p key="2">支持模板管理,实现模板共享</p>, | ||
| 89 | - // <p key="3">支持工作组管理,实现多人协作</p>, | ||
| 90 | - // <p key="4">支持自定义发布审批流</p>, | ||
| 91 | - // <p key="5">支持自定义域名</p>, | ||
| 92 | - <p key="2">支持模板管理</p>, | ||
| 93 | - <p key="3">支持表单提交</p>, | ||
| 94 | - <p key="3">支持数据统计</p>, | ||
| 95 | - <p key="3">支持PSD导入</p>, | ||
| 96 | - ], | ||
| 97 | - svg: ( | ||
| 98 | - <svg width="32px" height="32px" viewBox="0 0 32 32"> | ||
| 99 | - <path | ||
| 100 | - d="M22.3555358,32 L9.93657149,32 L2,32 C0.8954305,32 1.3527075e-16,31.1045695 0,30 | ||
| 101 | - L0,18 C-1.3527075e-16,16.8954305 0.8954305,16 2,16 L2,16 L6.78535432,16 L6.78535432,2 | ||
| 102 | - L6.78535432,2 C6.78535432,0.8954305 7.68078482,2.02906125e-16 8.78535432,0 L21.7853543,0 | ||
| 103 | - C22.8899238,-2.02906125e-16 23.7853543,0.8954305 23.7853543,2 L23.7853543,7 L30,7 | ||
| 104 | - C31.1045695,7 32,7.8954305 32,9 L32,30 C32,31.1045695 31.1045695,32 30,32 L22.3555358,32 | ||
| 105 | - Z M10,4 L10,8 L14,8 L14,4 L10,4 Z M10,12 L10,16 L14,16 L14,12 L10,12 Z M10,20 L10,24 L14,24 | ||
| 106 | - L14,20 L10,20 Z M3,20 L3,24 L7,24 L7,20 L3,20 Z M17,4 L17,8 L21,8 L21,4 L17,4 Z M17,12 L17,16 | ||
| 107 | - L21,16 L21,12 L17,12 Z M17,20 L17,24 L21,24 L21,20 L17,20 Z M24,20 L24,24 L28,24 L28,20 L24,20 | ||
| 108 | - Z M24,12 L24,16 L28,16 L28,12 L24,12 Z" | ||
| 109 | - fill="#D9D9D9" | ||
| 110 | - /> | ||
| 111 | - <path | ||
| 112 | - d="M22.3555358,32 L9.93657149,32 L2,32 C0.8954305,32 1.3527075e-16,31.1045695 0,30 | ||
| 113 | - L0,18 C-1.3527075e-16,16.8954305 0.8954305,16 2,16 L2,16 L6.78535432,16 L6.78535432,2 | ||
| 114 | - L6.78535432,2 C6.78535432,0.8954305 7.68078482,2.02906125e-16 8.78535432,0 L21.7853543,0 | ||
| 115 | - C22.8899238,-2.02906125e-16 23.7853543,0.8954305 23.7853543,2 L23.7853543,7 L30,7 | ||
| 116 | - C31.1045695,7 32,7.8954305 32,9 L32,30 C32,31.1045695 31.1045695,32 30,32 L22.3555358,32 | ||
| 117 | - Z M10,4 L10,8 L14,8 L14,4 L10,4 Z M10,12 L10,16 L14,16 L14,12 L10,12 Z M10,20 L10,24 L14,24 | ||
| 118 | - L14,20 L10,20 Z M3,20 L3,24 L7,24 L7,20 L3,20 Z M17,4 L17,8 L21,8 L21,4 L17,4 Z M17,12 L17,16 | ||
| 119 | - L21,16 L21,12 L17,12 Z M17,20 L17,24 L21,24 L21,20 L17,20 Z M24,20 L24,24 L28,24 L28,20 L24,20 | ||
| 120 | - Z M24,12 L24,16 L28,16 L28,12 L24,12 Z" | ||
| 121 | - fill="url(#linearGradient-1)" | ||
| 122 | - className="icon-hover" | ||
| 123 | - /> | ||
| 124 | - </svg>), | ||
| 125 | - }, | ||
| 126 | - { | ||
| 127 | - title: '企业 VIP 版', | ||
| 128 | - content: [ | ||
| 129 | - // <p key="1">支持通过 OpenAPI 调用制作流程</p>, | ||
| 130 | - // <p key="2">可以指定可用模板,企业内共享模板</p>, | ||
| 131 | - // <p key="3">支持创建多个企业级账户</p>, | ||
| 132 | - // <p key="4">支持自定义发布审批流</p>, | ||
| 133 | - // <p key="5">支持自定义域名</p>], | ||
| 134 | - <p key="2">支持模板管理</p>, | ||
| 135 | - <p key="3">支持表单提交</p>, | ||
| 136 | - <p key="3">支持数据统计</p>, | ||
| 137 | - <p key="3">支持PSD导入</p>, | ||
| 138 | - <p key="3">支持自定义脚本</p>, | ||
| 139 | - <p key="6">支持成员管理</p>, | ||
| 140 | - <p key="6">支持项目管理</p>, | ||
| 141 | - ], | ||
| 142 | - svg: ( | ||
| 143 | - <svg width="32px" height="32px" viewBox="0 0 32 32"> | ||
| 144 | - <path | ||
| 145 | - d="M21.1504124,8.82079742 L16.5552541,3.32558694 | ||
| 146 | - C16.5324137,3.29827282 16.5071873,3.27304601 16.4798736,3.25020514 | ||
| 147 | - C16.2256714,3.03763068 15.8472742,3.07137659 15.6346998,3.32557875 | ||
| 148 | - L15.6346998,3.32557875 L10.966694,8.90770327 L8.07603504,6.76607715 | ||
| 149 | - L8.07603504,6.76607715 C7.80977712,6.56881247 7.43401779,6.62474254 7.23675311,6.89100046 | ||
| 150 | - C7.13505771,7.02826378 7.09669461,7.20236809 7.13128245,7.36966081 L8.29535756,13 | ||
| 151 | - L15.9998162,13 L23.7045714,13 L24.8686535,7.36962696 | ||
| 152 | - C24.9357456,7.0451192 24.727069,6.72766477 24.4025612,6.66057265 | ||
| 153 | - C24.2352715,6.62598542 24.0611703,6.66434651 23.9239079,6.76603807 | ||
| 154 | - L21.1504124,8.82079742 Z M2,14 L30,14 C31.1045695,14 32,14.8954305 32,16 | ||
| 155 | - L32,30 C32,31.1045695 31.1045695,32 30,32 L2,32 C0.8954305,32 1.3527075e-16,31.1045695 0,30 | ||
| 156 | - L0,16 C-1.3527075e-16,14.8954305 0.8954305,14 2,14 L2,14 Z M16,2 C15.4477153,2 15,1.55228475 15,1 | ||
| 157 | - C15,0.44771525 15.4477153,0 16,0 C16.5522847,0 17,0.44771525 17,1 C17,1.55228475 16.5522847,2 16,2 Z | ||
| 158 | - M6,6 C5.44771525,6 5,5.55228475 5,5 C5,4.44771525 5.44771525,4 6,4 C6.55228475,4 7,4.44771525 7,5 | ||
| 159 | - C7,5.55228475 6.55228475,6 6,6 Z M26,6 C25.4477153,6 25,5.55228475 25,5 | ||
| 160 | - C25,4.44771525 25.4477153,4 26,4 C26.5522847,4 27,4.44771525 27,5 | ||
| 161 | - C27,5.55228475 26.5522847,6 26,6 Z M14.0979687,19.25 | ||
| 162 | - C14.1648524,19.04375 14.177013,18.94375 14.1526917,18.825 | ||
| 163 | - C14.1101294,18.6375 13.9094785,18.5 13.7149079,18.5 | ||
| 164 | - C13.6237029,18.5 13.5264176,18.53125 13.459534,18.59375 | ||
| 165 | - C13.368329,18.675 13.3257667,18.75625 13.2588831,18.9625 L11.0821247,25.80625 | ||
| 166 | - L8.90536631,18.9625 C8.83848268,18.75625 8.79592036,18.675 8.7047154,18.59375 | ||
| 167 | - C8.63783176,18.53125 8.54054647,18.5 8.44934151,18.5 | ||
| 168 | - C8.25477093,18.5 8.05412002,18.6375 8.0115577,18.825 | ||
| 169 | - C7.98723638,18.94375 7.99939704,19.04375 8.06628068,19.25 L10.5713769,26.98125 | ||
| 170 | - C10.6260999,27.15625 10.6929835,27.3 10.7659475,27.36875 | ||
| 171 | - C10.8632328,27.46875 10.9544378,27.5 11.0821247,27.5 | ||
| 172 | - C11.2037313,27.5 11.2949363,27.46875 11.3983019,27.36875 | ||
| 173 | - C11.4712659,27.3 11.5381495,27.15625 11.5928725,26.98125 | ||
| 174 | - L14.0979687,19.25 Z M16.5726622,19.15 C16.5726622,18.9 16.5605016,18.81875 16.4875376,18.7 | ||
| 175 | - C16.4145736,18.58125 16.274726,18.5 16.1044768,18.5 C15.9342275,18.5 15.7943799,18.58125 15.7214159,18.7 | ||
| 176 | - C15.648452,18.81875 15.6362913,18.9 15.6362913,19.15 L15.6362913,26.85 | ||
| 177 | - C15.6362913,27.1 15.648452,27.18125 15.7214159,27.3 C15.7943799,27.41875 15.9342275,27.5 16.1044768,27.5 | ||
| 178 | - C16.274726,27.5 16.4145736,27.41875 16.4875376,27.3 C16.5605016,27.18125 16.5726622,27.1 16.5726622,26.85 | ||
| 179 | - L16.5726622,19.15 Z M19.0777579,19.13125 L19.0777579,26.85 | ||
| 180 | - C19.0777579,27.1 19.0899186,27.18125 19.1628825,27.3 | ||
| 181 | - C19.2358465,27.41875 19.3756941,27.5 19.5459434,27.5 | ||
| 182 | - C19.7161926,27.5 19.8560402,27.41875 19.9290042,27.3 | ||
| 183 | - C20.0019682,27.18125 20.0141288,27.1 20.0141288,26.85 | ||
| 184 | - L20.0141288,23.7875 L22.3124938,23.7875 C23.8872995,23.7875 25,22.75 25,21.1625 | ||
| 185 | - C25,19.575 23.8872995,18.55 22.3124938,18.55 L19.6432287,18.55 | ||
| 186 | - C19.4973007,18.55 19.3331318,18.55 19.2054449,18.68125 | ||
| 187 | - C19.0777579,18.8125 19.0777579,18.98125 19.0777579,19.13125 Z M22.2395299,19.4 | ||
| 188 | - C23.3218287,19.4 24.0575487,19.9875 24.0575487,21.1625 | ||
| 189 | - C24.0575487,22.3375 23.3218287,22.9375 22.2395299,22.9375 L20.0141288,22.9375 | ||
| 190 | - L20.0141288,19.4 L22.2395299,19.4 Z" | ||
| 191 | - fill="#D9D9D9" | ||
| 192 | - /> | ||
| 193 | - <path | ||
| 194 | - d="M21.1504124,8.82079742 L16.5552541,3.32558694 | ||
| 195 | - C16.5324137,3.29827282 16.5071873,3.27304601 16.4798736,3.25020514 | ||
| 196 | - C16.2256714,3.03763068 15.8472742,3.07137659 15.6346998,3.32557875 | ||
| 197 | - L15.6346998,3.32557875 L10.966694,8.90770327 L8.07603504,6.76607715 | ||
| 198 | - L8.07603504,6.76607715 C7.80977712,6.56881247 7.43401779,6.62474254 7.23675311,6.89100046 | ||
| 199 | - C7.13505771,7.02826378 7.09669461,7.20236809 7.13128245,7.36966081 L8.29535756,13 | ||
| 200 | - L15.9998162,13 L23.7045714,13 L24.8686535,7.36962696 | ||
| 201 | - C24.9357456,7.0451192 24.727069,6.72766477 24.4025612,6.66057265 | ||
| 202 | - C24.2352715,6.62598542 24.0611703,6.66434651 23.9239079,6.76603807 | ||
| 203 | - L21.1504124,8.82079742 Z M2,14 L30,14 C31.1045695,14 32,14.8954305 32,16 | ||
| 204 | - L32,30 C32,31.1045695 31.1045695,32 30,32 L2,32 C0.8954305,32 1.3527075e-16,31.1045695 0,30 | ||
| 205 | - L0,16 C-1.3527075e-16,14.8954305 0.8954305,14 2,14 L2,14 Z M16,2 C15.4477153,2 15,1.55228475 15,1 | ||
| 206 | - C15,0.44771525 15.4477153,0 16,0 C16.5522847,0 17,0.44771525 17,1 C17,1.55228475 16.5522847,2 16,2 Z | ||
| 207 | - M6,6 C5.44771525,6 5,5.55228475 5,5 C5,4.44771525 5.44771525,4 6,4 C6.55228475,4 7,4.44771525 7,5 | ||
| 208 | - C7,5.55228475 6.55228475,6 6,6 Z M26,6 C25.4477153,6 25,5.55228475 25,5 | ||
| 209 | - C25,4.44771525 25.4477153,4 26,4 C26.5522847,4 27,4.44771525 27,5 | ||
| 210 | - C27,5.55228475 26.5522847,6 26,6 Z M14.0979687,19.25 | ||
| 211 | - C14.1648524,19.04375 14.177013,18.94375 14.1526917,18.825 | ||
| 212 | - C14.1101294,18.6375 13.9094785,18.5 13.7149079,18.5 | ||
| 213 | - C13.6237029,18.5 13.5264176,18.53125 13.459534,18.59375 | ||
| 214 | - C13.368329,18.675 13.3257667,18.75625 13.2588831,18.9625 L11.0821247,25.80625 | ||
| 215 | - L8.90536631,18.9625 C8.83848268,18.75625 8.79592036,18.675 8.7047154,18.59375 | ||
| 216 | - C8.63783176,18.53125 8.54054647,18.5 8.44934151,18.5 | ||
| 217 | - C8.25477093,18.5 8.05412002,18.6375 8.0115577,18.825 | ||
| 218 | - C7.98723638,18.94375 7.99939704,19.04375 8.06628068,19.25 L10.5713769,26.98125 | ||
| 219 | - C10.6260999,27.15625 10.6929835,27.3 10.7659475,27.36875 | ||
| 220 | - C10.8632328,27.46875 10.9544378,27.5 11.0821247,27.5 | ||
| 221 | - C11.2037313,27.5 11.2949363,27.46875 11.3983019,27.36875 | ||
| 222 | - C11.4712659,27.3 11.5381495,27.15625 11.5928725,26.98125 | ||
| 223 | - L14.0979687,19.25 Z M16.5726622,19.15 C16.5726622,18.9 16.5605016,18.81875 16.4875376,18.7 | ||
| 224 | - C16.4145736,18.58125 16.274726,18.5 16.1044768,18.5 C15.9342275,18.5 15.7943799,18.58125 15.7214159,18.7 | ||
| 225 | - C15.648452,18.81875 15.6362913,18.9 15.6362913,19.15 L15.6362913,26.85 | ||
| 226 | - C15.6362913,27.1 15.648452,27.18125 15.7214159,27.3 C15.7943799,27.41875 15.9342275,27.5 16.1044768,27.5 | ||
| 227 | - C16.274726,27.5 16.4145736,27.41875 16.4875376,27.3 C16.5605016,27.18125 16.5726622,27.1 16.5726622,26.85 | ||
| 228 | - L16.5726622,19.15 Z M19.0777579,19.13125 L19.0777579,26.85 | ||
| 229 | - C19.0777579,27.1 19.0899186,27.18125 19.1628825,27.3 | ||
| 230 | - C19.2358465,27.41875 19.3756941,27.5 19.5459434,27.5 | ||
| 231 | - C19.7161926,27.5 19.8560402,27.41875 19.9290042,27.3 | ||
| 232 | - C20.0019682,27.18125 20.0141288,27.1 20.0141288,26.85 | ||
| 233 | - L20.0141288,23.7875 L22.3124938,23.7875 C23.8872995,23.7875 25,22.75 25,21.1625 | ||
| 234 | - C25,19.575 23.8872995,18.55 22.3124938,18.55 L19.6432287,18.55 | ||
| 235 | - C19.4973007,18.55 19.3331318,18.55 19.2054449,18.68125 | ||
| 236 | - C19.0777579,18.8125 19.0777579,18.98125 19.0777579,19.13125 Z M22.2395299,19.4 | ||
| 237 | - C23.3218287,19.4 24.0575487,19.9875 24.0575487,21.1625 | ||
| 238 | - C24.0575487,22.3375 23.3218287,22.9375 22.2395299,22.9375 L20.0141288,22.9375 | ||
| 239 | - L20.0141288,19.4 L22.2395299,19.4 Z" | ||
| 240 | - fill="url(#linearGradient-1)" | ||
| 241 | - className="icon-hover" | ||
| 242 | - /> | ||
| 243 | - </svg>), | ||
| 244 | - }, | ||
| 245 | -]; | ||
| 246 | - | ||
| 247 | -export const page4 = [ | ||
| 248 | - 'https://gw.alipayobjects.com/zos/rmsportal/kJPmZttedahfIvsZDGTd.svg', | ||
| 249 | - 'https://gw.alipayobjects.com/zos/rmsportal/ktLOdfjNyExgKyWjiCvm.svg', | ||
| 250 | - 'https://gw.alipayobjects.com/zos/rmsportal/gNNxbrNqlHdnRuMjUXrL.svg', | ||
| 251 | - 'https://gw.alipayobjects.com/zos/rmsportal/qWaneWxxMVpASpiCOcsT.svg', | ||
| 252 | - 'https://gw.alipayobjects.com/zos/rmsportal/kyCpvqWFloOpAOqzOlBg.svg', | ||
| 253 | - 'https://gw.alipayobjects.com/zos/rmsportal/bBzJNEnPvyhNUhyHipvO.svg', | ||
| 254 | - 'https://gw.alipayobjects.com/zos/rmsportal/UbEpCMXGBmDgkJXfIgMx.svg', | ||
| 255 | - 'https://gw.alipayobjects.com/zos/rmsportal/xsWGKOdkRoJnzHIZlRiD.svg', | ||
| 256 | -]; | ||
| 257 | - | ||
| 258 | -export const footer = [ | ||
| 259 | - // { text: '解决方案', src: '#' }, | ||
| 260 | - { text: '中文文档', src: 'https://ly525.github.io/luban-h5' }, | ||
| 261 | - { text: 'English Document', src: 'https://ly525.github.io/luban-h5' }, | ||
| 262 | - // { text: '模板开发文档', src: '#' }, | ||
| 263 | - { text: '联系我们', src: 'https://github.com/ly525/luban-h5#%E4%BA%A4%E6%B5%81%E7%BE%A4' }, | ||
| 264 | - // { text: '联系我们', src: 'mailto:zhao.wuz@antfin.com' }, | ||
| 265 | -]; |
front-end/landing-page/src/Index/index.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import DocumentTitle from 'react-document-title'; | ||
| 3 | -// import Header from './Header'; | ||
| 4 | -import Banner from './Banner'; | ||
| 5 | -import Page1 from './Page1'; | ||
| 6 | -import Page2 from './Page2'; | ||
| 7 | -import Page3 from './Page3'; | ||
| 8 | -// import Page4 from './Page4'; | ||
| 9 | -import Footer from './Footer'; | ||
| 10 | -import './static/style'; | ||
| 11 | - | ||
| 12 | -// 不支持移动端 | ||
| 13 | -class Home extends React.PureComponent { | ||
| 14 | - render() { | ||
| 15 | - return ( | ||
| 16 | - <div className="home-page"> | ||
| 17 | - {/* <Header key="header" /> */} | ||
| 18 | - <Banner key="banner" /> | ||
| 19 | - <Page1 key="page1" /> | ||
| 20 | - <Page2 key="page2" /> | ||
| 21 | - <Page3 key="page3" /> | ||
| 22 | - {/* <Page4 key="page4" /> */} | ||
| 23 | - <Footer key="footer" /> | ||
| 24 | - <DocumentTitle title="鲁班H5 - 移动建站平台" /> | ||
| 25 | - </div> | ||
| 26 | - ); | ||
| 27 | - } | ||
| 28 | -} | ||
| 29 | -export default Home; |
front-end/landing-page/src/Index/static/custom.less deleted
100755 → 0
front-end/landing-page/src/Index/static/default.less deleted
100755 → 0
| 1 | -@import "~antd/lib/style/themes/default.less"; | ||
| 2 | -// 品牌色 | ||
| 3 | -@color-fengdie: #ffbf00; | ||
| 4 | -// 线框 | ||
| 5 | -@border-color: #D9D9D9; | ||
| 6 | -// 分割线 | ||
| 7 | -@separate-line-color: #E9E9E9; | ||
| 8 | -// 多行文本 | ||
| 9 | -@font-color: rgba(0,0,0,.65); | ||
| 10 | -// 标题、单行 | ||
| 11 | -@font-important-color: rgba(0,0,0,.85); | ||
| 12 | -@font-active-color: #666; | ||
| 13 | -// 辅助信息 | ||
| 14 | -@font-tip-color: rgba(0,0,0,.43); | ||
| 15 | -// 警告色 | ||
| 16 | -@font-warning: #f56a00; | ||
| 17 | -// 失败色 | ||
| 18 | -@font-fail: #f04134; | ||
| 19 | - | ||
| 20 | -// 主按钮颜色 | ||
| 21 | -@button-primary-color: #ffbf00; | ||
| 22 | -@label-color: #666; | ||
| 23 | -@border-active-color: #ffbf00; | ||
| 24 | -@background-active-color: #FFF8EF; | ||
| 25 | -@link-color: #50A4DB; | ||
| 26 | -@selected-color: #FFBC40; | ||
| 27 | -@moved-color: #FFF1E0; | ||
| 28 | -@header-background-color: #222222; | ||
| 29 | - | ||
| 30 | -@status-released-color: #00A854; | ||
| 31 | -@status-editing-color: #2DB7F5; | ||
| 32 | -@status-previewing-color: #7265E6; | ||
| 33 | -@status-approve_waiting-color: #FAC450; | ||
| 34 | -@status-approve_refused-color: #FF6600; | ||
| 35 | -@status-release_fail-color: #FF6600; | ||
| 36 | -@status-noop-color: #999; | ||
| 37 | -@search-input-border-color: #F59F16; | ||
| 38 | - | ||
| 39 | - | ||
| 40 | -@approveButtonBackgroundColor: #f7f7f7; | ||
| 41 | -@weekBackgroundColor: #FBFBFB; | ||
| 42 | - | ||
| 43 | -@highlight-font-color: @search-input-border-color; | ||
| 44 | - | ||
| 45 | -@white-background-color: #fff; | ||
| 46 | - | ||
| 47 | -@bgColor: #F7F7F7; | ||
| 48 | -@titleColor: fade(#000, 85); | ||
| 49 | -@contentColor: fade(#000, 43); | ||
| 50 | \ No newline at end of file | 0 | \ No newline at end of file |
front-end/landing-page/src/Index/static/footer.less deleted
100755 → 0
| 1 | -.home-page .home-footer-wrapper { | ||
| 2 | - height: 336px; | ||
| 3 | - background: #404040 !important; | ||
| 4 | - color: fade(#fff, 65); | ||
| 5 | - font-size: 14px; | ||
| 6 | - .home-layout { | ||
| 7 | - padding: 72px 32px 0; | ||
| 8 | - .copy{ | ||
| 9 | - color: fade(#fff, 43); | ||
| 10 | - } | ||
| 11 | - } | ||
| 12 | - .home-footer-nav-wrapper { | ||
| 13 | - margin: 48px auto 16px; | ||
| 14 | - > div { | ||
| 15 | - display: inline-block; | ||
| 16 | - padding: 0 36px; | ||
| 17 | - border-right: 1px solid #fff; | ||
| 18 | - &:last-child { | ||
| 19 | - border-right: none; | ||
| 20 | - } | ||
| 21 | - a { | ||
| 22 | - display: block; | ||
| 23 | - color: fade(#fff, 65); | ||
| 24 | - font-size: 16px; | ||
| 25 | - line-height: 16px; | ||
| 26 | - } | ||
| 27 | - } | ||
| 28 | - } | ||
| 29 | - .logo{ margin-bottom: 5px; } | ||
| 30 | -} | ||
| 31 | \ No newline at end of file | 0 | \ No newline at end of file |
front-end/landing-page/src/Index/static/header.less deleted
100755 → 0
| 1 | -header { | ||
| 2 | - width: 100%; | ||
| 3 | - z-index: 1000; | ||
| 4 | - top: 0; | ||
| 5 | - background-color: #fff; | ||
| 6 | - .header-content { | ||
| 7 | - display: flex; | ||
| 8 | - justify-content: space-between; | ||
| 9 | - align-items: center; | ||
| 10 | - height: 64px; | ||
| 11 | - font-size: 14px; | ||
| 12 | - padding: 0 24px; | ||
| 13 | - width: 1152px; | ||
| 14 | - margin: 0 auto; | ||
| 15 | - h1 { | ||
| 16 | - position: relative; | ||
| 17 | - &:before { | ||
| 18 | - content: ""; | ||
| 19 | - position: absolute; | ||
| 20 | - top: 10px; | ||
| 21 | - left: 144px; | ||
| 22 | - width: 1px; | ||
| 23 | - height: 12px; | ||
| 24 | - background: #999; | ||
| 25 | - } | ||
| 26 | - a { | ||
| 27 | - display: block; | ||
| 28 | - width: 120px; | ||
| 29 | - height: 32px; | ||
| 30 | - background: url(https://gw.alipayobjects.com/zos/rmsportal/qdWihUzYxihpnOMVhFPV.png) no-repeat 0 50%; | ||
| 31 | - background-size: 120px 32px; | ||
| 32 | - text-indent: -999em; | ||
| 33 | - } | ||
| 34 | - span{ | ||
| 35 | - position: absolute; | ||
| 36 | - font-size: 14px; | ||
| 37 | - font-weight: 400; | ||
| 38 | - top: 6px; | ||
| 39 | - left: 168px; | ||
| 40 | - color: rgba(0,0,0,.65); | ||
| 41 | - white-space: nowrap; | ||
| 42 | - } | ||
| 43 | - } | ||
| 44 | - } | ||
| 45 | -} | ||
| 46 | \ No newline at end of file | 0 | \ No newline at end of file |
front-end/landing-page/src/Index/static/home.less deleted
100755 → 0
| 1 | -@import './default.less'; | ||
| 2 | -.home-page { | ||
| 3 | - .fd-content { | ||
| 4 | - min-width: 1216px; | ||
| 5 | - background: #FFF; | ||
| 6 | - font-family: PingFangSC, Helvetica Neue, Helvetica, PingFang SC-Light, Hiragino Sans GB, Microsoft YaHei, SimSun, sans-serif; | ||
| 7 | - } | ||
| 8 | - h2, | ||
| 9 | - h3, | ||
| 10 | - h4, | ||
| 11 | - h5 { | ||
| 12 | - font-weight: 100; | ||
| 13 | - } | ||
| 14 | - .home-layout-wrapper { | ||
| 15 | - width: 100%; | ||
| 16 | - height: 720px; | ||
| 17 | - text-align: center; | ||
| 18 | - overflow: hidden; | ||
| 19 | - .home-layout { | ||
| 20 | - margin: 0 auto; | ||
| 21 | - width: 1152px; | ||
| 22 | - padding: 0 24px; | ||
| 23 | - overflow: hidden; | ||
| 24 | - height: 100%; | ||
| 25 | - >div { | ||
| 26 | - float: left; | ||
| 27 | - width: 100%; | ||
| 28 | - } | ||
| 29 | - .col { | ||
| 30 | - .content-wrapper { | ||
| 31 | - border-radius: 4px; | ||
| 32 | - background: #fff; | ||
| 33 | - cursor: pointer; | ||
| 34 | - overflow: hidden; | ||
| 35 | - position: relative; | ||
| 36 | - } | ||
| 37 | - } | ||
| 38 | - } | ||
| 39 | - &:nth-of-type(odd) { | ||
| 40 | - background: #fff; | ||
| 41 | - } | ||
| 42 | - &:nth-of-type(even) { | ||
| 43 | - background-color: @bgColor; | ||
| 44 | - } | ||
| 45 | - } | ||
| 46 | - h2, | ||
| 47 | - h3 { | ||
| 48 | - text-align: center; | ||
| 49 | - font-weight: normal; | ||
| 50 | - } | ||
| 51 | - h2 { | ||
| 52 | - font-size: 30px; | ||
| 53 | - line-height: 38px; | ||
| 54 | - color: @titleColor; | ||
| 55 | - margin-top: 88px; | ||
| 56 | - } | ||
| 57 | - h3 { | ||
| 58 | - font-size: 24px; | ||
| 59 | - line-height: 32px; | ||
| 60 | - margin-bottom: 16px; | ||
| 61 | - color: @titleColor; | ||
| 62 | - } | ||
| 63 | - .line { | ||
| 64 | - width: 40px; | ||
| 65 | - height: 2px; | ||
| 66 | - display: block; | ||
| 67 | - background: #FFBF00; | ||
| 68 | - margin: 16px auto 72px; | ||
| 69 | - } | ||
| 70 | - /* banner 区域 */ | ||
| 71 | - .home-banner { | ||
| 72 | - height: 656px; | ||
| 73 | - color: #fff; | ||
| 74 | - g, | ||
| 75 | - ellipse { | ||
| 76 | - transform-box: fill-box; | ||
| 77 | - } | ||
| 78 | - .home-layout { | ||
| 79 | - height: 100%; | ||
| 80 | - display: flex; | ||
| 81 | - align-items: center; | ||
| 82 | - padding-top: 0; | ||
| 83 | - text-align: left; | ||
| 84 | - } | ||
| 85 | - .home-banner-content-wrapper, | ||
| 86 | - .home-banner-image-wrapper { | ||
| 87 | - width: 50%; | ||
| 88 | - display: inline-block; | ||
| 89 | - } | ||
| 90 | - .home-banner-content-wrapper { | ||
| 91 | - height: 178px; | ||
| 92 | - margin-bottom: 40px; | ||
| 93 | - } | ||
| 94 | - h1 { | ||
| 95 | - font-size: 38px; | ||
| 96 | - line-height: 46px; | ||
| 97 | - margin-bottom: 16px; | ||
| 98 | - font-weight: normal; | ||
| 99 | - color: @titleColor; | ||
| 100 | - } | ||
| 101 | - p { | ||
| 102 | - margin-bottom: 40px; | ||
| 103 | - font-size: 20px; | ||
| 104 | - line-height: 28px; | ||
| 105 | - color: @contentColor; | ||
| 106 | - } | ||
| 107 | - span { | ||
| 108 | - display: inline-block; | ||
| 109 | - } | ||
| 110 | - button { | ||
| 111 | - width: 168px; | ||
| 112 | - height: 48px; | ||
| 113 | - font-size: 20px; | ||
| 114 | - } | ||
| 115 | - | ||
| 116 | - .ant-btn-group button { | ||
| 117 | - width: 48px; | ||
| 118 | - } | ||
| 119 | - .home-banner-image-wrapper { | ||
| 120 | - text-align: center; | ||
| 121 | - margin-top: -120px; | ||
| 122 | - } | ||
| 123 | - } | ||
| 124 | - /* 功能介绍 */ | ||
| 125 | - .home-func-wrapper { | ||
| 126 | - height: 720px; | ||
| 127 | - text-align: center; | ||
| 128 | - .image { | ||
| 129 | - height: 240px; | ||
| 130 | - position: relative; | ||
| 131 | - background-position: bottom center; | ||
| 132 | - background-repeat: no-repeat; | ||
| 133 | - background-size: 90% auto; | ||
| 134 | - margin-bottom: 62px; | ||
| 135 | - } | ||
| 136 | - .col { | ||
| 137 | - height: 400px; | ||
| 138 | - } | ||
| 139 | - p { | ||
| 140 | - font-size: 16px; | ||
| 141 | - color: @contentColor; | ||
| 142 | - } | ||
| 143 | - } | ||
| 144 | - .home-hover { | ||
| 145 | - border: 1px solid #E9E9E9; | ||
| 146 | - transition: transform .45s cubic-bezier(0.645, 0.045, 0.355, 1), box-shadow .45s cubic-bezier(0.645, 0.045, 0.355, 1), border .45s cubic-bezier(0.645, 0.045, 0.355, 1); | ||
| 147 | - &:hover { | ||
| 148 | - transform: translateY(-4px); | ||
| 149 | - box-shadow: 0 2px 24px fade(#000, 10); | ||
| 150 | - border-color: #fff; | ||
| 151 | - } | ||
| 152 | - } | ||
| 153 | - /* 案例 */ | ||
| 154 | - .home-case-wrapper { | ||
| 155 | - .col { | ||
| 156 | - .content-wrapper { | ||
| 157 | - height: 360px; | ||
| 158 | - padding: 16px; | ||
| 159 | - .image { | ||
| 160 | - width: 100%; | ||
| 161 | - height: 100%; | ||
| 162 | - border-radius: 2px; | ||
| 163 | - background-position: center; | ||
| 164 | - background-repeat: no-repeat; | ||
| 165 | - background-size: cover; | ||
| 166 | - } | ||
| 167 | - &:hover { | ||
| 168 | - .code-wrapper { | ||
| 169 | - opacity: 1; | ||
| 170 | - } | ||
| 171 | - } | ||
| 172 | - } | ||
| 173 | - .code-wrapper { | ||
| 174 | - position: absolute; | ||
| 175 | - background: fade(#fff, 90); | ||
| 176 | - width: 100%; | ||
| 177 | - height: 100%; | ||
| 178 | - top: 0; | ||
| 179 | - left: 0; | ||
| 180 | - opacity: 0; | ||
| 181 | - transition: opacity 0.45s cubic-bezier(0.165, 0.84, 0.44, 1); | ||
| 182 | - h4 { | ||
| 183 | - font-size: 16px; | ||
| 184 | - font-weight: normal; | ||
| 185 | - margin: 72px auto 12px; | ||
| 186 | - color: @titleColor; | ||
| 187 | - } | ||
| 188 | - } | ||
| 189 | - } | ||
| 190 | - } | ||
| 191 | - .home-serve-wrapper { | ||
| 192 | - height: 788px; | ||
| 193 | - text-align: center; | ||
| 194 | - .col { | ||
| 195 | - font-size: 16px; | ||
| 196 | - .content-wrapper { | ||
| 197 | - padding: 24px 16px; | ||
| 198 | - height: 440px; | ||
| 199 | - .icon-hover { | ||
| 200 | - opacity: 0; | ||
| 201 | - transition: opacity .45s; | ||
| 202 | - } | ||
| 203 | - &:hover { | ||
| 204 | - .icon-hover { | ||
| 205 | - opacity: 1; | ||
| 206 | - } | ||
| 207 | - p { | ||
| 208 | - color: fade(#000000, 65); | ||
| 209 | - } | ||
| 210 | - } | ||
| 211 | - } | ||
| 212 | - .image { | ||
| 213 | - width: 32px; | ||
| 214 | - height: 32px; | ||
| 215 | - margin: 8px auto 12px; | ||
| 216 | - } | ||
| 217 | - h3 { | ||
| 218 | - margin-bottom: 24px; | ||
| 219 | - } | ||
| 220 | - p { | ||
| 221 | - margin-bottom: 12px; | ||
| 222 | - color: @contentColor; | ||
| 223 | - transition: color .3s; | ||
| 224 | - font-weight: 400; | ||
| 225 | - } | ||
| 226 | - .exp { | ||
| 227 | - position: absolute; | ||
| 228 | - bottom: 24px; | ||
| 229 | - left: 0; | ||
| 230 | - width: 100%; | ||
| 231 | - font-size: 20px; | ||
| 232 | - color: fade(#000, 25); | ||
| 233 | - } | ||
| 234 | - } | ||
| 235 | - } | ||
| 236 | - .home-user-wrapper { | ||
| 237 | - height: 440px; | ||
| 238 | - h2 { | ||
| 239 | - margin-top: 64px; | ||
| 240 | - } | ||
| 241 | - .col { | ||
| 242 | - margin-bottom: 32px; | ||
| 243 | - i { | ||
| 244 | - display: block; | ||
| 245 | - width: 170px; | ||
| 246 | - height: 56px; | ||
| 247 | - background-repeat: no-repeat; | ||
| 248 | - background-position: center; | ||
| 249 | - margin: auto; | ||
| 250 | - } | ||
| 251 | - } | ||
| 252 | - } | ||
| 253 | -} | ||
| 254 | \ No newline at end of file | 0 | \ No newline at end of file |
front-end/landing-page/src/Index/static/responsive.less deleted
100755 → 0
front-end/landing-page/src/Index/static/style.js deleted
100755 → 0
front-end/landing-page/src/Page2/Banner0.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import { Button, Icon } from 'antd'; | ||
| 3 | -import QueueAnim from 'rc-queue-anim'; | ||
| 4 | -import TweenOne from 'rc-tween-one'; | ||
| 5 | - | ||
| 6 | -class Banner extends React.PureComponent { | ||
| 7 | - render() { | ||
| 8 | - const { ...currentProps } = this.props; | ||
| 9 | - const { dataSource } = currentProps; | ||
| 10 | - delete currentProps.dataSource; | ||
| 11 | - delete currentProps.isMobile; | ||
| 12 | - return ( | ||
| 13 | - <div {...currentProps} {...dataSource.wrapper}> | ||
| 14 | - <QueueAnim | ||
| 15 | - key="QueueAnim" | ||
| 16 | - type={['bottom', 'top']} | ||
| 17 | - delay={200} | ||
| 18 | - {...dataSource.textWrapper} | ||
| 19 | - > | ||
| 20 | - <div key="title" {...dataSource.title}> | ||
| 21 | - {dataSource.title.children.match( | ||
| 22 | - /\.(svg|gif|jpg|jpeg|png|JPG|PNG|GIF|JPEG)$/ | ||
| 23 | - ) ? ( | ||
| 24 | - <img src={dataSource.title.children} width="100%" alt="img" /> | ||
| 25 | - ) : ( | ||
| 26 | - dataSource.title.children | ||
| 27 | - )} | ||
| 28 | - </div> | ||
| 29 | - <div key="content" {...dataSource.content}> | ||
| 30 | - {dataSource.content.children} | ||
| 31 | - </div> | ||
| 32 | - <Button ghost key="button" {...dataSource.button}> | ||
| 33 | - {dataSource.button.children} | ||
| 34 | - </Button> | ||
| 35 | - </QueueAnim> | ||
| 36 | - <TweenOne | ||
| 37 | - animation={{ | ||
| 38 | - y: '-=20', | ||
| 39 | - yoyo: true, | ||
| 40 | - repeat: -1, | ||
| 41 | - duration: 1000, | ||
| 42 | - }} | ||
| 43 | - className="banner0-icon" | ||
| 44 | - key="icon" | ||
| 45 | - > | ||
| 46 | - <Icon type="down" /> | ||
| 47 | - </TweenOne> | ||
| 48 | - </div> | ||
| 49 | - ); | ||
| 50 | - } | ||
| 51 | -} | ||
| 52 | -export default Banner; |
front-end/landing-page/src/Page2/Content0.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import QueueAnim from 'rc-queue-anim'; | ||
| 3 | -import { Row, Col } from 'antd'; | ||
| 4 | -import OverPack from 'rc-scroll-anim/lib/ScrollOverPack'; | ||
| 5 | - | ||
| 6 | -class Content extends React.PureComponent { | ||
| 7 | - getBlockChildren = data => data.map((item, i) => { | ||
| 8 | - const children = item.children; | ||
| 9 | - return ( | ||
| 10 | - <Col key={i.toString()} {...item}> | ||
| 11 | - <div {...children.icon}> | ||
| 12 | - <img src={children.icon.children} width="100%" alt="img" /> | ||
| 13 | - </div> | ||
| 14 | - <h3 {...children.title}>{children.title.children}</h3> | ||
| 15 | - <p {...children.content}>{children.content.children}</p> | ||
| 16 | - </Col> | ||
| 17 | - ); | ||
| 18 | - }); | ||
| 19 | - | ||
| 20 | - render() { | ||
| 21 | - const { ...props } = this.props; | ||
| 22 | - const { dataSource } = props; | ||
| 23 | - delete props.dataSource; | ||
| 24 | - delete props.isMobile; | ||
| 25 | - const listChildren = this.getBlockChildren(dataSource.block.children); | ||
| 26 | - return ( | ||
| 27 | - <div {...props} {...dataSource.wrapper}> | ||
| 28 | - <div {...dataSource.page}> | ||
| 29 | - <div {...dataSource.titleWrapper}> | ||
| 30 | - {dataSource.titleWrapper.children.map((item, i) => React.createElement( | ||
| 31 | - item.name.indexOf('title') === 0 ? 'h1' : 'div', | ||
| 32 | - { key: i.toString(), ...item }, | ||
| 33 | - item.children.match( | ||
| 34 | - /\.(svg|gif|jpg|jpeg|png|JPG|PNG|GIF|JPEG)$/ | ||
| 35 | - ) | ||
| 36 | - ? React.createElement('img', { | ||
| 37 | - src: item.children, | ||
| 38 | - height: '100%', | ||
| 39 | - alt: 'img', | ||
| 40 | - }) | ||
| 41 | - : item.children | ||
| 42 | - ) | ||
| 43 | - )} | ||
| 44 | - </div> | ||
| 45 | - <OverPack {...dataSource.OverPack}> | ||
| 46 | - <QueueAnim | ||
| 47 | - type="bottom" | ||
| 48 | - key="block" | ||
| 49 | - leaveReverse | ||
| 50 | - {...dataSource.block} | ||
| 51 | - component={Row} | ||
| 52 | - > | ||
| 53 | - {listChildren} | ||
| 54 | - </QueueAnim> | ||
| 55 | - </OverPack> | ||
| 56 | - </div> | ||
| 57 | - </div> | ||
| 58 | - ); | ||
| 59 | - } | ||
| 60 | -} | ||
| 61 | - | ||
| 62 | -export default Content; |
front-end/landing-page/src/Page2/Content12.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import { Row, Col } from 'antd'; | ||
| 3 | -import { TweenOneGroup } from 'rc-tween-one'; | ||
| 4 | -import OverPack from 'rc-scroll-anim/lib/ScrollOverPack'; | ||
| 5 | - | ||
| 6 | -class Content12 extends React.PureComponent { | ||
| 7 | - getChildrenToRender = data => data.map((item) => { | ||
| 8 | - return ( | ||
| 9 | - <Col key={item.name} {...item}> | ||
| 10 | - <div {...item.children.wrapper}> | ||
| 11 | - <span {...item.children.img}> | ||
| 12 | - <img src={item.children.img.children} alt="img" /> | ||
| 13 | - </span> | ||
| 14 | - </div> | ||
| 15 | - </Col> | ||
| 16 | - ); | ||
| 17 | - }); | ||
| 18 | - | ||
| 19 | - render() { | ||
| 20 | - const { ...props } = this.props; | ||
| 21 | - const { dataSource } = props; | ||
| 22 | - delete props.dataSource; | ||
| 23 | - delete props.isMobile; | ||
| 24 | - const childrenToRender = this.getChildrenToRender( | ||
| 25 | - dataSource.block.children | ||
| 26 | - ); | ||
| 27 | - return ( | ||
| 28 | - <div {...props} {...dataSource.wrapper}> | ||
| 29 | - <div {...dataSource.page}> | ||
| 30 | - <div key="title" {...dataSource.titleWrapper}> | ||
| 31 | - {dataSource.titleWrapper.children.map((item, i) => React.createElement( | ||
| 32 | - item.name.indexOf('title') === 0 ? 'h1' : 'div', | ||
| 33 | - { key: i.toString(), ...item }, | ||
| 34 | - item.children.match( | ||
| 35 | - /\.(svg|gif|jpg|jpeg|png|JPG|PNG|GIF|JPEG)$/ | ||
| 36 | - ) | ||
| 37 | - ? React.createElement('img', { | ||
| 38 | - src: item.children, | ||
| 39 | - alt: 'img', | ||
| 40 | - }) | ||
| 41 | - : item.children | ||
| 42 | - ) | ||
| 43 | - )} | ||
| 44 | - </div> | ||
| 45 | - <OverPack | ||
| 46 | - className={`content-template ${props.className}`} | ||
| 47 | - {...dataSource.OverPack} | ||
| 48 | - > | ||
| 49 | - <TweenOneGroup | ||
| 50 | - component={Row} | ||
| 51 | - key="ul" | ||
| 52 | - enter={{ | ||
| 53 | - y: '+=30', | ||
| 54 | - opacity: 0, | ||
| 55 | - type: 'from', | ||
| 56 | - ease: 'easeOutQuad', | ||
| 57 | - }} | ||
| 58 | - leave={{ y: '+=30', opacity: 0, ease: 'easeOutQuad' }} | ||
| 59 | - {...dataSource.block} | ||
| 60 | - > | ||
| 61 | - {childrenToRender} | ||
| 62 | - </TweenOneGroup> | ||
| 63 | - </OverPack> | ||
| 64 | - </div> | ||
| 65 | - </div> | ||
| 66 | - ); | ||
| 67 | - } | ||
| 68 | -} | ||
| 69 | - | ||
| 70 | -export default Content12; |
front-end/landing-page/src/Page2/Content13.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import OverPack from 'rc-scroll-anim/lib/ScrollOverPack'; | ||
| 3 | -import QueueAnim from 'rc-queue-anim'; | ||
| 4 | - | ||
| 5 | -class Content13 extends React.PureComponent { | ||
| 6 | - render() { | ||
| 7 | - const { ...props } = this.props; | ||
| 8 | - const { dataSource } = props; | ||
| 9 | - delete props.dataSource; | ||
| 10 | - delete props.isMobile; | ||
| 11 | - return ( | ||
| 12 | - <OverPack {...props} {...dataSource.OverPack}> | ||
| 13 | - <QueueAnim | ||
| 14 | - type="bottom" | ||
| 15 | - leaveReverse | ||
| 16 | - key="page" | ||
| 17 | - delay={[0, 100]} | ||
| 18 | - {...dataSource.titleWrapper} | ||
| 19 | - > | ||
| 20 | - {dataSource.titleWrapper.children.map((item, i) => React.createElement( | ||
| 21 | - item.name.indexOf('title') === 0 ? 'h1' : 'div', | ||
| 22 | - { key: i.toString(), ...item }, | ||
| 23 | - item.children.match(/\.(svg|gif|jpg|jpeg|png|JPG|PNG|GIF|JPEG)$/) | ||
| 24 | - ? React.createElement('img', { src: item.children, alt: 'img' }) | ||
| 25 | - : item.children | ||
| 26 | - ) | ||
| 27 | - )} | ||
| 28 | - </QueueAnim> | ||
| 29 | - </OverPack> | ||
| 30 | - ); | ||
| 31 | - } | ||
| 32 | -} | ||
| 33 | - | ||
| 34 | -export default Content13; |
front-end/landing-page/src/Page2/Content7.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import TweenOne from 'rc-tween-one'; | ||
| 3 | -import OverPack from 'rc-scroll-anim/lib/ScrollOverPack'; | ||
| 4 | -import { Tabs, Icon, Row, Col } from 'antd'; | ||
| 5 | - | ||
| 6 | -const TabPane = Tabs.TabPane; | ||
| 7 | - | ||
| 8 | -class Content7 extends React.Component { | ||
| 9 | - constructor(props) { | ||
| 10 | - super(props); | ||
| 11 | - this.state = { | ||
| 12 | - current: 1, | ||
| 13 | - }; | ||
| 14 | - } | ||
| 15 | - | ||
| 16 | - onChange = (key) => { | ||
| 17 | - this.setState({ current: parseFloat(key) }); | ||
| 18 | - }; | ||
| 19 | - | ||
| 20 | - getBlockChildren = (item, i) => { | ||
| 21 | - const { tag, content } = item; | ||
| 22 | - const { text, img } = content; | ||
| 23 | - const textChildren = text.children; | ||
| 24 | - const { icon } = tag; | ||
| 25 | - const iconChildren = icon.children; | ||
| 26 | - const tagText = tag.text; | ||
| 27 | - return ( | ||
| 28 | - <TabPane | ||
| 29 | - key={i + 1} | ||
| 30 | - tab={( | ||
| 31 | - <div className={tag.className}> | ||
| 32 | - <Icon type={iconChildren} className={icon.className} /> | ||
| 33 | - <div {...tagText}>{tagText.children}</div> | ||
| 34 | - </div> | ||
| 35 | - )} | ||
| 36 | - className={item.className} | ||
| 37 | - > | ||
| 38 | - <TweenOne.TweenOneGroup | ||
| 39 | - enter={{ | ||
| 40 | - y: 30, | ||
| 41 | - delay: 300, | ||
| 42 | - opacity: 0, | ||
| 43 | - type: 'from', | ||
| 44 | - ease: 'easeOutQuad', | ||
| 45 | - }} | ||
| 46 | - leave={null} | ||
| 47 | - component="" | ||
| 48 | - > | ||
| 49 | - {this.state.current === i + 1 && ( | ||
| 50 | - <Row | ||
| 51 | - key="content" | ||
| 52 | - className={content.className} | ||
| 53 | - gutter={content.gutter} | ||
| 54 | - > | ||
| 55 | - <Col className={text.className} xs={text.xs} md={text.md}> | ||
| 56 | - {textChildren} | ||
| 57 | - </Col> | ||
| 58 | - <Col className={img.className} xs={img.xs} md={img.md}> | ||
| 59 | - <img src={img.children} width="100%" alt="img" /> | ||
| 60 | - </Col> | ||
| 61 | - </Row> | ||
| 62 | - )} | ||
| 63 | - </TweenOne.TweenOneGroup> | ||
| 64 | - </TabPane> | ||
| 65 | - ); | ||
| 66 | - }; | ||
| 67 | - | ||
| 68 | - render() { | ||
| 69 | - const { ...props } = this.props; | ||
| 70 | - const { dataSource } = props; | ||
| 71 | - delete props.dataSource; | ||
| 72 | - delete props.isMobile; | ||
| 73 | - const tabsChildren = dataSource.block.children.map(this.getBlockChildren); | ||
| 74 | - return ( | ||
| 75 | - <div {...props} {...dataSource.wrapper}> | ||
| 76 | - <div {...dataSource.page}> | ||
| 77 | - <div {...dataSource.titleWrapper}> | ||
| 78 | - {dataSource.titleWrapper.children.map((item, i) => React.createElement( | ||
| 79 | - item.name.indexOf('title') === 0 ? 'h1' : 'div', | ||
| 80 | - { key: i.toString(), ...item }, | ||
| 81 | - item.children.match( | ||
| 82 | - /\.(svg|gif|jpg|jpeg|png|JPG|PNG|GIF|JPEG)$/ | ||
| 83 | - ) | ||
| 84 | - ? React.createElement('img', { | ||
| 85 | - src: item.children, | ||
| 86 | - alt: 'img', | ||
| 87 | - }) | ||
| 88 | - : item.children | ||
| 89 | - ) | ||
| 90 | - )} | ||
| 91 | - </div> | ||
| 92 | - | ||
| 93 | - <OverPack {...dataSource.OverPack}> | ||
| 94 | - <TweenOne.TweenOneGroup | ||
| 95 | - key="tabs" | ||
| 96 | - enter={{ | ||
| 97 | - y: 30, | ||
| 98 | - opacity: 0, | ||
| 99 | - delay: 200, | ||
| 100 | - type: 'from', | ||
| 101 | - }} | ||
| 102 | - leave={{ y: 30, opacity: 0 }} | ||
| 103 | - {...dataSource.tabsWrapper} | ||
| 104 | - > | ||
| 105 | - <Tabs | ||
| 106 | - key="tabs" | ||
| 107 | - onChange={this.onChange} | ||
| 108 | - activeKey={`${this.state.current}`} | ||
| 109 | - {...dataSource.block} | ||
| 110 | - > | ||
| 111 | - {tabsChildren} | ||
| 112 | - </Tabs> | ||
| 113 | - </TweenOne.TweenOneGroup> | ||
| 114 | - </OverPack> | ||
| 115 | - </div> | ||
| 116 | - </div> | ||
| 117 | - ); | ||
| 118 | - } | ||
| 119 | -} | ||
| 120 | - | ||
| 121 | -export default Content7; |
front-end/landing-page/src/Page2/data.source.js deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | - | ||
| 3 | -export const Banner00DataSource = { | ||
| 4 | - wrapper: { className: 'banner0' }, | ||
| 5 | - textWrapper: { className: 'banner0-text-wrapper' }, | ||
| 6 | - title: { | ||
| 7 | - className: 'banner0-title', | ||
| 8 | - children: 'https://zos.alipayobjects.com/rmsportal/HqnZZjBjWRbjyMr.png', | ||
| 9 | - }, | ||
| 10 | - content: { | ||
| 11 | - className: 'banner0-content', | ||
| 12 | - children: ( | ||
| 13 | - <span> | ||
| 14 | - <p>dsdf</p> | ||
| 15 | - <p>aaaaa</p> | ||
| 16 | - </span> | ||
| 17 | - ), | ||
| 18 | - }, | ||
| 19 | - button: { className: 'banner0-button', children: 'Learn More' }, | ||
| 20 | -}; | ||
| 21 | -export const Content00DataSource = { | ||
| 22 | - wrapper: { className: 'home-page-wrapper content0-wrapper' }, | ||
| 23 | - page: { className: 'home-page content0' }, | ||
| 24 | - OverPack: { playScale: 0.3, className: '' }, | ||
| 25 | - titleWrapper: { | ||
| 26 | - className: 'title-wrapper', | ||
| 27 | - children: [{ name: 'title', children: '产品与服务' }], | ||
| 28 | - }, | ||
| 29 | - block: { | ||
| 30 | - className: 'block-wrapper', | ||
| 31 | - children: [ | ||
| 32 | - { | ||
| 33 | - name: 'block0', | ||
| 34 | - className: 'block', | ||
| 35 | - md: 8, | ||
| 36 | - xs: 24, | ||
| 37 | - children: { | ||
| 38 | - icon: { | ||
| 39 | - className: 'icon', | ||
| 40 | - children: | ||
| 41 | - 'https://zos.alipayobjects.com/rmsportal/WBnVOjtIlGWbzyQivuyq.png', | ||
| 42 | - }, | ||
| 43 | - title: { children: '一站式业务接入' }, | ||
| 44 | - content: { children: '支付、结算、核算接入产品效率翻四倍' }, | ||
| 45 | - }, | ||
| 46 | - }, | ||
| 47 | - { | ||
| 48 | - name: 'block1', | ||
| 49 | - className: 'block', | ||
| 50 | - md: 8, | ||
| 51 | - xs: 24, | ||
| 52 | - children: { | ||
| 53 | - icon: { | ||
| 54 | - className: 'icon', | ||
| 55 | - children: | ||
| 56 | - 'https://zos.alipayobjects.com/rmsportal/YPMsLQuCEXtuEkmXTTdk.png', | ||
| 57 | - }, | ||
| 58 | - title: { children: '一站式事中风险监控' }, | ||
| 59 | - content: { children: '在所有需求配置环节事前风险控制和质量控制能力' }, | ||
| 60 | - }, | ||
| 61 | - }, | ||
| 62 | - { | ||
| 63 | - name: 'block2', | ||
| 64 | - className: 'block', | ||
| 65 | - md: 8, | ||
| 66 | - xs: 24, | ||
| 67 | - children: { | ||
| 68 | - icon: { | ||
| 69 | - className: 'icon', | ||
| 70 | - children: | ||
| 71 | - 'https://zos.alipayobjects.com/rmsportal/EkXWVvAaFJKCzhMmQYiX.png', | ||
| 72 | - }, | ||
| 73 | - title: { children: '一站式数据运营' }, | ||
| 74 | - content: { children: '沉淀产品接入效率和运营小二工作效率数据' }, | ||
| 75 | - }, | ||
| 76 | - }, | ||
| 77 | - ], | ||
| 78 | - }, | ||
| 79 | -}; | ||
| 80 | -export const Content70DataSource = { | ||
| 81 | - wrapper: { className: 'home-page-wrapper content7-wrapper' }, | ||
| 82 | - page: { className: 'home-page content7' }, | ||
| 83 | - OverPack: {}, | ||
| 84 | - titleWrapper: { | ||
| 85 | - className: 'title-wrapper', | ||
| 86 | - children: [ | ||
| 87 | - { | ||
| 88 | - name: 'title', | ||
| 89 | - children: '蚂蚁金融云提供专业的服务', | ||
| 90 | - className: 'title-h1', | ||
| 91 | - }, | ||
| 92 | - { name: 'content', children: '基于阿里云计算强大的基础资源' }, | ||
| 93 | - ], | ||
| 94 | - }, | ||
| 95 | - tabsWrapper: { className: 'content7-tabs-wrapper' }, | ||
| 96 | - block: { | ||
| 97 | - children: [ | ||
| 98 | - { | ||
| 99 | - name: 'block0', | ||
| 100 | - tag: { | ||
| 101 | - className: 'content7-tag', | ||
| 102 | - text: { children: 'PHONE', className: 'content7-tag-name' }, | ||
| 103 | - icon: { children: 'mobile' }, | ||
| 104 | - }, | ||
| 105 | - content: { | ||
| 106 | - className: 'content7-content', | ||
| 107 | - text: { | ||
| 108 | - className: 'content7-text', | ||
| 109 | - md: 14, | ||
| 110 | - xs: 24, | ||
| 111 | - children: ( | ||
| 112 | - <span> | ||
| 113 | - <h3>技术</h3> | ||
| 114 | - <p> | ||
| 115 | - 丰富的技术组件,简单组装即可快速搭建金融级应用,丰富的技术组件,简单组装即可快速搭建金融级应用。 | ||
| 116 | - </p> | ||
| 117 | - <br /> | ||
| 118 | - <h3>融合</h3> | ||
| 119 | - <p> | ||
| 120 | - 解放业务及技术生产力,推动金融服务底层创新,推动金融服务底层创新。解放业务及技术生产力,推动金融服务底层创新。 | ||
| 121 | - </p> | ||
| 122 | - <br /> | ||
| 123 | - <h3> | ||
| 124 | - 开放 | ||
| 125 | - </h3> | ||
| 126 | - 符合金融及要求的安全可靠、高可用、高性能的服务能力,符合金融及要求的安全可靠、高可用、高性能的服务能力。 | ||
| 127 | - </span> | ||
| 128 | - ), | ||
| 129 | - }, | ||
| 130 | - img: { | ||
| 131 | - className: 'content7-img', | ||
| 132 | - children: | ||
| 133 | - 'https://zos.alipayobjects.com/rmsportal/xBrUaDROgtFBRRL.png', | ||
| 134 | - md: 10, | ||
| 135 | - xs: 24, | ||
| 136 | - }, | ||
| 137 | - }, | ||
| 138 | - }, | ||
| 139 | - { | ||
| 140 | - name: 'block1', | ||
| 141 | - tag: { | ||
| 142 | - className: 'content7-tag', | ||
| 143 | - icon: { children: 'tablet' }, | ||
| 144 | - text: { className: 'content7-tag-name', children: 'TABLET' }, | ||
| 145 | - }, | ||
| 146 | - content: { | ||
| 147 | - className: 'content7-content', | ||
| 148 | - text: { | ||
| 149 | - className: 'content7-text', | ||
| 150 | - md: 14, | ||
| 151 | - xs: 24, | ||
| 152 | - children: ( | ||
| 153 | - <span> | ||
| 154 | - <h3>技术</h3> | ||
| 155 | - <p> | ||
| 156 | - 丰富的技术组件,简单组装即可快速搭建金融级应用,丰富的技术组件,简单组装即可快速搭建金融级应用。 | ||
| 157 | - </p> | ||
| 158 | - <br /> | ||
| 159 | - <h3>融合</h3> | ||
| 160 | - <p> | ||
| 161 | - 解放业务及技术生产力,推动金融服务底层创新,推动金融服务底层创新。解放业务及技术生产力,推动金融服务底层创新。 | ||
| 162 | - </p> | ||
| 163 | - <br /> | ||
| 164 | - <h3> | ||
| 165 | - 开放 | ||
| 166 | - </h3> | ||
| 167 | - 符合金融及要求的安全可靠、高可用、高性能的服务能力,符合金融及要求的安全可靠、高可用、高性能的服务能力。 | ||
| 168 | - </span> | ||
| 169 | - ), | ||
| 170 | - }, | ||
| 171 | - img: { | ||
| 172 | - className: 'content7-img', | ||
| 173 | - md: 10, | ||
| 174 | - xs: 24, | ||
| 175 | - children: | ||
| 176 | - 'https://zos.alipayobjects.com/rmsportal/xBrUaDROgtFBRRL.png', | ||
| 177 | - }, | ||
| 178 | - }, | ||
| 179 | - }, | ||
| 180 | - { | ||
| 181 | - name: 'block2', | ||
| 182 | - tag: { | ||
| 183 | - className: 'content7-tag', | ||
| 184 | - text: { children: 'DESKTOP', className: 'content7-tag-name' }, | ||
| 185 | - icon: { children: 'laptop' }, | ||
| 186 | - }, | ||
| 187 | - content: { | ||
| 188 | - className: 'content7-content', | ||
| 189 | - text: { | ||
| 190 | - className: 'content7-text', | ||
| 191 | - md: 14, | ||
| 192 | - xs: 24, | ||
| 193 | - children: ( | ||
| 194 | - <span> | ||
| 195 | - <h3>技术</h3> | ||
| 196 | - <p> | ||
| 197 | - 丰富的技术组件,简单组装即可快速搭建金融级应用,丰富的技术组件,简单组装即可快速搭建金融级应用。 | ||
| 198 | - </p> | ||
| 199 | - <br /> | ||
| 200 | - <h3>融合</h3> | ||
| 201 | - <p> | ||
| 202 | - 解放业务及技术生产力,推动金融服务底层创新,推动金融服务底层创新。解放业务及技术生产力,推动金融服务底层创新。 | ||
| 203 | - </p> | ||
| 204 | - <br /> | ||
| 205 | - <h3> | ||
| 206 | - 开放 | ||
| 207 | - </h3> | ||
| 208 | - 符合金融及要求的安全可靠、高可用、高性能的服务能力,符合金融及要求的安全可靠、高可用、高性能的服务能力。 | ||
| 209 | - </span> | ||
| 210 | - ), | ||
| 211 | - }, | ||
| 212 | - img: { | ||
| 213 | - className: 'content7-img', | ||
| 214 | - md: 10, | ||
| 215 | - xs: 24, | ||
| 216 | - children: | ||
| 217 | - 'https://zos.alipayobjects.com/rmsportal/xBrUaDROgtFBRRL.png', | ||
| 218 | - }, | ||
| 219 | - }, | ||
| 220 | - }, | ||
| 221 | - ], | ||
| 222 | - }, | ||
| 223 | -}; | ||
| 224 | -export const Content130DataSource = { | ||
| 225 | - OverPack: { | ||
| 226 | - className: | ||
| 227 | - 'home-page-wrapper content13-wrapper home-page-wrapper content13-wrapper jnwq7vhwgqg-editor_css', | ||
| 228 | - playScale: 0.3, | ||
| 229 | - }, | ||
| 230 | - titleWrapper: { | ||
| 231 | - className: 'title-wrapper', | ||
| 232 | - children: [ | ||
| 233 | - { name: 'title', children: '丰富的特色展台', className: 'title-h1' }, | ||
| 234 | - { | ||
| 235 | - name: 'content', | ||
| 236 | - children: | ||
| 237 | - '特色展台包括 Ant Design 、AntV、AntG、Egg 等明星产品,更有产品专家', | ||
| 238 | - className: 'title-content', | ||
| 239 | - }, | ||
| 240 | - { | ||
| 241 | - name: 'content2', | ||
| 242 | - children: '现场问诊,为你答疑解难', | ||
| 243 | - className: 'title-content', | ||
| 244 | - }, | ||
| 245 | - ], | ||
| 246 | - }, | ||
| 247 | -}; | ||
| 248 | -export const Content120DataSource = { | ||
| 249 | - wrapper: { className: 'home-page-wrapper content12-wrapper' }, | ||
| 250 | - page: { className: 'home-page content12' }, | ||
| 251 | - OverPack: { playScale: 0.3, className: '' }, | ||
| 252 | - titleWrapper: { | ||
| 253 | - className: 'title-wrapper', | ||
| 254 | - children: [{ name: 'title', children: '特别鸣谢', className: 'title-h1' }], | ||
| 255 | - }, | ||
| 256 | - block: { | ||
| 257 | - className: 'img-wrapper', | ||
| 258 | - children: [ | ||
| 259 | - { | ||
| 260 | - name: 'block0', | ||
| 261 | - className: 'block', | ||
| 262 | - md: 8, | ||
| 263 | - xs: 24, | ||
| 264 | - children: { | ||
| 265 | - wrapper: { className: 'block-content' }, | ||
| 266 | - img: { | ||
| 267 | - children: | ||
| 268 | - 'https://gw.alipayobjects.com/zos/rmsportal/TFicUVisNHTOEeMYXuQF.svg', | ||
| 269 | - }, | ||
| 270 | - }, | ||
| 271 | - }, | ||
| 272 | - { | ||
| 273 | - name: 'block1', | ||
| 274 | - className: 'block', | ||
| 275 | - md: 8, | ||
| 276 | - xs: 24, | ||
| 277 | - children: { | ||
| 278 | - wrapper: { className: 'block-content' }, | ||
| 279 | - img: { | ||
| 280 | - children: | ||
| 281 | - 'https://gw.alipayobjects.com/zos/rmsportal/hkLGkrlCEkGZeMQlnEkD.svg', | ||
| 282 | - }, | ||
| 283 | - }, | ||
| 284 | - }, | ||
| 285 | - { | ||
| 286 | - name: 'block2', | ||
| 287 | - className: 'block', | ||
| 288 | - md: 8, | ||
| 289 | - xs: 24, | ||
| 290 | - children: { | ||
| 291 | - wrapper: { className: 'block-content' }, | ||
| 292 | - img: { | ||
| 293 | - children: | ||
| 294 | - 'https://gw.alipayobjects.com/zos/rmsportal/bqyPRSZmhvrsfJrBvASi.svg', | ||
| 295 | - }, | ||
| 296 | - }, | ||
| 297 | - }, | ||
| 298 | - { | ||
| 299 | - name: 'block3', | ||
| 300 | - className: 'block', | ||
| 301 | - md: 8, | ||
| 302 | - xs: 24, | ||
| 303 | - children: { | ||
| 304 | - wrapper: { className: 'block-content' }, | ||
| 305 | - img: { | ||
| 306 | - children: | ||
| 307 | - 'https://gw.alipayobjects.com/zos/rmsportal/UcsyszzOabdCYDkoPPnM.svg', | ||
| 308 | - }, | ||
| 309 | - }, | ||
| 310 | - }, | ||
| 311 | - { | ||
| 312 | - name: 'block4', | ||
| 313 | - className: 'block', | ||
| 314 | - md: 8, | ||
| 315 | - xs: 24, | ||
| 316 | - children: { | ||
| 317 | - wrapper: { className: 'block-content' }, | ||
| 318 | - img: { | ||
| 319 | - children: | ||
| 320 | - 'https://gw.alipayobjects.com/zos/rmsportal/kRBeaICGexAmVjqBEqgw.svg', | ||
| 321 | - }, | ||
| 322 | - }, | ||
| 323 | - }, | ||
| 324 | - { | ||
| 325 | - name: 'block5', | ||
| 326 | - className: 'block', | ||
| 327 | - md: 8, | ||
| 328 | - xs: 24, | ||
| 329 | - children: { | ||
| 330 | - wrapper: { className: 'block-content' }, | ||
| 331 | - img: { | ||
| 332 | - children: | ||
| 333 | - 'https://gw.alipayobjects.com/zos/rmsportal/ftBIiyJcCHpHEioRvPsV.svg', | ||
| 334 | - }, | ||
| 335 | - }, | ||
| 336 | - }, | ||
| 337 | - ], | ||
| 338 | - }, | ||
| 339 | -}; | ||
| 340 | -export const Footer00DataSource = { | ||
| 341 | - wrapper: { className: 'home-page-wrapper footer0-wrapper' }, | ||
| 342 | - OverPack: { className: 'home-page footer0', playScale: 0.05 }, | ||
| 343 | - // copyright: { | ||
| 344 | - // className: 'copyright', | ||
| 345 | - // children: ( | ||
| 346 | - // <span> | ||
| 347 | - // ©2018 | ||
| 348 | - // {' '} | ||
| 349 | - // <a href="https://motion.ant.design">Ant Motion</a> | ||
| 350 | - // {' '} | ||
| 351 | - // All Rights Reserved | ||
| 352 | - // </span> | ||
| 353 | - // ), | ||
| 354 | - // }, | ||
| 355 | -}; |
front-end/landing-page/src/Page2/documentation.md deleted
100755 → 0
front-end/landing-page/src/Page2/index.jsx deleted
100755 → 0
| 1 | -/* eslint no-undef: 0 */ | ||
| 2 | -/* eslint arrow-parens: 0 */ | ||
| 3 | -import React from 'react'; | ||
| 4 | -import { enquireScreen } from 'enquire-js'; | ||
| 5 | - | ||
| 6 | -// import Nav0 from './Nav0'; | ||
| 7 | -import Banner0 from './Banner0'; | ||
| 8 | -import Content0 from './Content0'; | ||
| 9 | -import Content7 from './Content7'; | ||
| 10 | -import Content13 from './Content13'; | ||
| 11 | -import Content12 from './Content12'; | ||
| 12 | -// import Footer0 from './Footer0'; | ||
| 13 | - | ||
| 14 | -import { | ||
| 15 | - // Nav00DataSource, | ||
| 16 | - Banner00DataSource, | ||
| 17 | - Content00DataSource, | ||
| 18 | - Content70DataSource, | ||
| 19 | - Content130DataSource, | ||
| 20 | - Content120DataSource, | ||
| 21 | - // Footer00DataSource, | ||
| 22 | -} from './data.source.js'; | ||
| 23 | - | ||
| 24 | -let isMobile; | ||
| 25 | -enquireScreen((b) => { | ||
| 26 | - isMobile = b; | ||
| 27 | -}); | ||
| 28 | - | ||
| 29 | -const location = window.location; | ||
| 30 | - | ||
| 31 | -export default class Home extends React.Component { | ||
| 32 | - constructor(props) { | ||
| 33 | - super(props); | ||
| 34 | - this.state = { | ||
| 35 | - isMobile, | ||
| 36 | - show: !location.port, // 如果不是 dva 2.0 请删除 | ||
| 37 | - }; | ||
| 38 | - } | ||
| 39 | - | ||
| 40 | - componentDidMount() { | ||
| 41 | - // 适配手机屏幕; | ||
| 42 | - enquireScreen((b) => { | ||
| 43 | - this.setState({ isMobile: !!b }); | ||
| 44 | - }); | ||
| 45 | - // dva 2.0 样式在组件渲染之后动态加载,导致滚动组件不生效;线上不影响; | ||
| 46 | - /* 如果不是 dva 2.0 请删除 start */ | ||
| 47 | - if (location.port) { | ||
| 48 | - // 样式 build 时间在 200-300ms 之间; | ||
| 49 | - setTimeout(() => { | ||
| 50 | - this.setState({ | ||
| 51 | - show: true, | ||
| 52 | - }); | ||
| 53 | - }, 500); | ||
| 54 | - } | ||
| 55 | - /* 如果不是 dva 2.0 请删除 end */ | ||
| 56 | - } | ||
| 57 | - | ||
| 58 | - render() { | ||
| 59 | - const children = [ | ||
| 60 | - // <Nav0 | ||
| 61 | - // id="Nav0_0" | ||
| 62 | - // key="Nav0_0" | ||
| 63 | - // dataSource={Nav00DataSource} | ||
| 64 | - // isMobile={this.state.isMobile} | ||
| 65 | - // />, | ||
| 66 | - <Banner0 | ||
| 67 | - id="Banner0_0" | ||
| 68 | - key="Banner0_0" | ||
| 69 | - dataSource={Banner00DataSource} | ||
| 70 | - isMobile={this.state.isMobile} | ||
| 71 | - />, | ||
| 72 | - <Content0 | ||
| 73 | - id="Content0_0" | ||
| 74 | - key="Content0_0" | ||
| 75 | - dataSource={Content00DataSource} | ||
| 76 | - isMobile={this.state.isMobile} | ||
| 77 | - />, | ||
| 78 | - <Content7 | ||
| 79 | - id="Content7_0" | ||
| 80 | - key="Content7_0" | ||
| 81 | - dataSource={Content70DataSource} | ||
| 82 | - isMobile={this.state.isMobile} | ||
| 83 | - />, | ||
| 84 | - <Content13 | ||
| 85 | - id="Content13_0" | ||
| 86 | - key="Content13_0" | ||
| 87 | - dataSource={Content130DataSource} | ||
| 88 | - isMobile={this.state.isMobile} | ||
| 89 | - />, | ||
| 90 | - <Content12 | ||
| 91 | - id="Content12_0" | ||
| 92 | - key="Content12_0" | ||
| 93 | - dataSource={Content120DataSource} | ||
| 94 | - isMobile={this.state.isMobile} | ||
| 95 | - />, | ||
| 96 | - // <Footer0 | ||
| 97 | - // id="Footer0_0" | ||
| 98 | - // key="Footer0_0" | ||
| 99 | - // dataSource={Footer00DataSource} | ||
| 100 | - // isMobile={this.state.isMobile} | ||
| 101 | - // />, | ||
| 102 | - ]; | ||
| 103 | - return ( | ||
| 104 | - <div | ||
| 105 | - className="templates-wrapper" | ||
| 106 | - ref={(d) => { | ||
| 107 | - this.dom = d; | ||
| 108 | - }} | ||
| 109 | - > | ||
| 110 | - {/* 如果不是 dva 2.0 替换成 {children} start */} | ||
| 111 | - {this.state.show && children} | ||
| 112 | - {/* 如果不是 dva 2.0 替换成 {children} end */} | ||
| 113 | - </div> | ||
| 114 | - ); | ||
| 115 | - } | ||
| 116 | -} |
front-end/landing-page/src/Page2/less/antMotionStyle.less deleted
100755 → 0
| 1 | -@import './common.less'; | ||
| 2 | -@import './custom.less'; | ||
| 3 | -@import './content.less'; | ||
| 4 | -@import './nav0.less'; | ||
| 5 | -@import './banner0.less'; | ||
| 6 | -@import './content0.less'; | ||
| 7 | -@import './content7.less'; | ||
| 8 | -@import './content13.less'; | ||
| 9 | -@import './content12.less'; | ||
| 10 | -@import './footer0.less'; | ||
| 11 | -@import './edit.less'; |
front-end/landing-page/src/Page2/less/banner0.less deleted
100755 → 0
| 1 | -@import './custom.less'; | ||
| 2 | -@banner0: banner0; | ||
| 3 | -.@{banner0} { | ||
| 4 | - width: 100%; // 如果在第一屏且导航位置为 relative, 一屏为 height: calc(~"100vh - 64px"); | ||
| 5 | - height: 100vh; | ||
| 6 | - position: relative; | ||
| 7 | - text-align: center; | ||
| 8 | - border-color: #666; | ||
| 9 | - background-image: url("https://zos.alipayobjects.com/rmsportal/gGlUMYGEIvjDOOw.jpg"); | ||
| 10 | - background-size: cover; | ||
| 11 | - background-attachment: fixed; | ||
| 12 | - background-position: center; | ||
| 13 | - & &-text-wrapper { | ||
| 14 | - display: inline-block; | ||
| 15 | - position: absolute; | ||
| 16 | - top: 20%; | ||
| 17 | - margin: auto; | ||
| 18 | - left: 0; | ||
| 19 | - right: 0; | ||
| 20 | - font-size: 14px; | ||
| 21 | - color: @template-text-color-light; | ||
| 22 | - width: 550px; | ||
| 23 | - >.queue-anim-leaving { | ||
| 24 | - position: relative !important; | ||
| 25 | - } | ||
| 26 | - } | ||
| 27 | - & &-title { | ||
| 28 | - width: 350px; | ||
| 29 | - left: 30px; | ||
| 30 | - min-height: 60px; | ||
| 31 | - margin: auto; | ||
| 32 | - display: inline-block; | ||
| 33 | - font-size: 40px; | ||
| 34 | - position: relative; | ||
| 35 | - } | ||
| 36 | - & &-content { | ||
| 37 | - margin-bottom: 20px; | ||
| 38 | - word-wrap: break-word; | ||
| 39 | - min-height: 24px; | ||
| 40 | - } | ||
| 41 | - & &-button { | ||
| 42 | - border: 1px solid #fff; | ||
| 43 | - color: #fff; | ||
| 44 | - background: transparent; | ||
| 45 | - box-shadow: 0 0 0 transparent; | ||
| 46 | - line-height: 40px; | ||
| 47 | - font-size: 16px; | ||
| 48 | - height: 40px; | ||
| 49 | - transition: background .45s @ease-out, box-shadow .45s @ease-out; | ||
| 50 | - &:hover { | ||
| 51 | - color: #fff; | ||
| 52 | - border-color: #fff; | ||
| 53 | - background: rgba(255, 255, 255, 0.1); | ||
| 54 | - box-shadow: 0 0 10px rgba(50, 250, 255, 0.75); | ||
| 55 | - } | ||
| 56 | - &:focus { | ||
| 57 | - color: #fff; | ||
| 58 | - border-color: #fff; | ||
| 59 | - } | ||
| 60 | - &.queue-anim-leaving { | ||
| 61 | - width: auto; | ||
| 62 | - } | ||
| 63 | - } | ||
| 64 | - & &-icon { | ||
| 65 | - bottom: 20px; | ||
| 66 | - font-size: 24px; | ||
| 67 | - position: absolute; | ||
| 68 | - left: 50%; | ||
| 69 | - margin-left: -12px; | ||
| 70 | - color: @template-text-color-light; | ||
| 71 | - } | ||
| 72 | -} | ||
| 73 | - | ||
| 74 | -@media screen and (max-width: 767px) { | ||
| 75 | - .@{banner0} { | ||
| 76 | - background-attachment: inherit; | ||
| 77 | - & &-text-wrapper { | ||
| 78 | - width: 90%; | ||
| 79 | - } | ||
| 80 | - & &-title { | ||
| 81 | - width: 90%; | ||
| 82 | - left: 0; | ||
| 83 | - } | ||
| 84 | - } | ||
| 85 | -} |
front-end/landing-page/src/Page2/less/common.less deleted
100755 → 0
front-end/landing-page/src/Page2/less/content.less deleted
100755 → 0
| 1 | -@homepage: home-page; | ||
| 2 | -.@{homepage}-wrapper { | ||
| 3 | - width: 100%; | ||
| 4 | - position: relative; | ||
| 5 | - overflow: hidden; | ||
| 6 | - .@{homepage} { | ||
| 7 | - height: 100%; | ||
| 8 | - max-width: 1200px; | ||
| 9 | - position: relative; | ||
| 10 | - margin: auto; | ||
| 11 | - will-change: transform; | ||
| 12 | - } | ||
| 13 | - .title-wrapper > h1, > h1 { | ||
| 14 | - font-size: 32px; | ||
| 15 | - color: @text-color; | ||
| 16 | - margin-bottom: 16px; | ||
| 17 | - } | ||
| 18 | - .title-wrapper { | ||
| 19 | - margin: 0 auto 64px; | ||
| 20 | - text-align: center; | ||
| 21 | - } | ||
| 22 | -} | ||
| 23 | - | ||
| 24 | -.@{homepage} { | ||
| 25 | - // padding: 128px 24px; | ||
| 26 | - padding: 24px; | ||
| 27 | -} | ||
| 28 | - | ||
| 29 | -@media screen and (max-width: 767px) { | ||
| 30 | - .@{homepage}-wrapper { | ||
| 31 | - .@{homepage} { | ||
| 32 | - padding: 56px 24px; | ||
| 33 | - >h1 { | ||
| 34 | - font-size: 24px; | ||
| 35 | - margin: 0 auto 32px; | ||
| 36 | - &.title-h1 { | ||
| 37 | - margin-bottom: 8px; | ||
| 38 | - } | ||
| 39 | - } | ||
| 40 | - >p { | ||
| 41 | - margin-bottom: 32px; | ||
| 42 | - } | ||
| 43 | - } | ||
| 44 | - } | ||
| 45 | -} |
front-end/landing-page/src/Page2/less/content0.less deleted
100755 → 0
| 1 | -@import './custom.less'; | ||
| 2 | -@content0: content0; | ||
| 3 | -.@{content0}-wrapper { | ||
| 4 | - height: 446px; | ||
| 5 | - overflow: hidden; | ||
| 6 | - .@{content0} { | ||
| 7 | - overflow: hidden; | ||
| 8 | - height: 100%; | ||
| 9 | - padding: 64px 24px; | ||
| 10 | - > .title-wrapper { | ||
| 11 | - margin: 0 auto 48px; | ||
| 12 | - } | ||
| 13 | - .block-wrapper { | ||
| 14 | - position: relative; | ||
| 15 | - height: 100%; | ||
| 16 | - overflow: hidden; | ||
| 17 | - top: 25%; | ||
| 18 | - padding: 20px 0; | ||
| 19 | - .block { | ||
| 20 | - padding: 0 4%; | ||
| 21 | - display: inline-block; | ||
| 22 | - text-align: center; | ||
| 23 | - height: 200px; | ||
| 24 | - margin-bottom: 48px; | ||
| 25 | - &.queue-anim-leaving { | ||
| 26 | - position: relative !important; | ||
| 27 | - } | ||
| 28 | - .icon { | ||
| 29 | - width: 100px; | ||
| 30 | - height: 100px; | ||
| 31 | - margin: auto; | ||
| 32 | - display: flex; | ||
| 33 | - align-items: center; | ||
| 34 | - } | ||
| 35 | - >h3 { | ||
| 36 | - line-height: 32px; | ||
| 37 | - margin: 10px auto; | ||
| 38 | - } | ||
| 39 | - } | ||
| 40 | - } | ||
| 41 | - } | ||
| 42 | -} | ||
| 43 | - | ||
| 44 | -@media screen and (max-width: 767px) { | ||
| 45 | - .@{content0}-wrapper { | ||
| 46 | - height: 880px; | ||
| 47 | - } | ||
| 48 | -} |
front-end/landing-page/src/Page2/less/content12.less deleted
100755 → 0
| 1 | -@import './custom.less'; | ||
| 2 | -@content12: content12; | ||
| 3 | -.@{content12}-wrapper { | ||
| 4 | - background-color: #fafafa; | ||
| 5 | - min-height: 470px; | ||
| 6 | - .@{content12} { | ||
| 7 | - padding: 64px 24px; | ||
| 8 | - >p { | ||
| 9 | - text-align: center; | ||
| 10 | - } | ||
| 11 | - } | ||
| 12 | - .img-wrapper { | ||
| 13 | - margin: 0 auto; | ||
| 14 | - left: 0; | ||
| 15 | - right: 0; | ||
| 16 | - .block { | ||
| 17 | - margin-bottom: 40px; | ||
| 18 | - .block-content { | ||
| 19 | - display: flex; | ||
| 20 | - border-radius: 4px; | ||
| 21 | - text-align: center; | ||
| 22 | - position: relative; | ||
| 23 | - overflow: hidden; | ||
| 24 | - border: none; | ||
| 25 | - height: 64px; | ||
| 26 | - align-items: center; | ||
| 27 | - transition: box-shadow .3s @ease-out, transform .3s @ease-out; | ||
| 28 | - & > span { | ||
| 29 | - width: 100%; | ||
| 30 | - display: block; | ||
| 31 | - } | ||
| 32 | - } | ||
| 33 | - } | ||
| 34 | - } | ||
| 35 | -} | ||
| 36 | - | ||
| 37 | -@media screen and (max-width: 767px) { | ||
| 38 | - .@{content12}-wrapper { | ||
| 39 | - overflow: hidden; | ||
| 40 | - .@{content12} { | ||
| 41 | - ul { | ||
| 42 | - li { | ||
| 43 | - display: block; | ||
| 44 | - width: 100%; | ||
| 45 | - padding: 2%; | ||
| 46 | - span { | ||
| 47 | - height: 168px; | ||
| 48 | - } | ||
| 49 | - } | ||
| 50 | - } | ||
| 51 | - } | ||
| 52 | - } | ||
| 53 | -} |
front-end/landing-page/src/Page2/less/content13.less deleted
100755 → 0
| 1 | -@import './custom.less'; | ||
| 2 | -@content13: content13; | ||
| 3 | -.@{content13}-wrapper { | ||
| 4 | - min-height: 380px; | ||
| 5 | - background: url("https://gw.alipayobjects.com/zos/rmsportal/ZsWYzLOItgeaWDSsXdZd.svg") no-repeat bottom; | ||
| 6 | - background-size: cover; | ||
| 7 | - background-size: 100%; | ||
| 8 | - margin: 0 auto; | ||
| 9 | - overflow: hidden; | ||
| 10 | - padding: 96px 0; | ||
| 11 | - &.home-page-wrapper { | ||
| 12 | - .title-wrapper { | ||
| 13 | - margin-bottom: 32px; | ||
| 14 | - } | ||
| 15 | - } | ||
| 16 | - .title-content { | ||
| 17 | - line-height: 32px; | ||
| 18 | - } | ||
| 19 | -} | ||
| 20 | - | ||
| 21 | -@media screen and (max-width: 767px) { | ||
| 22 | - .@{content13}-wrapper { | ||
| 23 | - padding-bottom: 0; | ||
| 24 | - } | ||
| 25 | -} |
front-end/landing-page/src/Page2/less/content7.less deleted
100755 → 0
| 1 | -@import './custom.less'; | ||
| 2 | -@content7: content7; | ||
| 3 | -.@{content7}-wrapper { | ||
| 4 | - min-height: 720px; | ||
| 5 | - .@{content7} { | ||
| 6 | - >h1, | ||
| 7 | - >p { | ||
| 8 | - text-align: center; | ||
| 9 | - } | ||
| 10 | - &-tag { | ||
| 11 | - & i { | ||
| 12 | - width: 12px; | ||
| 13 | - height: 14px; | ||
| 14 | - display: inline-block; | ||
| 15 | - vertical-align: middle; | ||
| 16 | - margin-right: 5px; | ||
| 17 | - } | ||
| 18 | - &-name { | ||
| 19 | - display: inline-block; | ||
| 20 | - } | ||
| 21 | - } | ||
| 22 | - .ant-tabs-bar { | ||
| 23 | - text-align: center; | ||
| 24 | - } | ||
| 25 | - .ant-tabs { | ||
| 26 | - .ant-tabs-nav { | ||
| 27 | - float: none; | ||
| 28 | - text-align: center; | ||
| 29 | - } | ||
| 30 | - } | ||
| 31 | - &-tabs-wrapper { | ||
| 32 | - position: relative; | ||
| 33 | - margin-top: 24px; | ||
| 34 | - } | ||
| 35 | - &-content { | ||
| 36 | - display: flex; | ||
| 37 | - align-items: center; | ||
| 38 | - } | ||
| 39 | - &-text { | ||
| 40 | - padding: 24px 48px; | ||
| 41 | - } | ||
| 42 | - &-img { | ||
| 43 | - padding: 24px 48px; | ||
| 44 | - } | ||
| 45 | - .ant-tabs-tabpane { | ||
| 46 | - margin-top: 40px; | ||
| 47 | - } | ||
| 48 | - } | ||
| 49 | -} | ||
| 50 | - | ||
| 51 | -@media screen and (max-width: 767px) { | ||
| 52 | - .@{content7}-wrapper { | ||
| 53 | - min-height: 980px; | ||
| 54 | - overflow: hidden; | ||
| 55 | - .@{content7} { | ||
| 56 | - max-width: 100%; | ||
| 57 | - &-content { | ||
| 58 | - display: block; | ||
| 59 | - } | ||
| 60 | - &-text, | ||
| 61 | - &-img { | ||
| 62 | - text-align: left; | ||
| 63 | - padding: 0; | ||
| 64 | - } | ||
| 65 | - &-img { | ||
| 66 | - margin-top: 32px; | ||
| 67 | - } | ||
| 68 | - .ant-tabs-bar { | ||
| 69 | - width: auto; | ||
| 70 | - .ant-tabs-nav { | ||
| 71 | - float: left; | ||
| 72 | - } | ||
| 73 | - } | ||
| 74 | - } | ||
| 75 | - } | ||
| 76 | -} |
front-end/landing-page/src/Page2/less/custom.less deleted
100755 → 0
| 1 | -@import "~antd/lib/style/v2-compatible-reset.less"; | ||
| 2 | -@import "~antd/lib/style/themes/default.less"; | ||
| 3 | - | ||
| 4 | -@line-color: #e9e9e9; | ||
| 5 | - | ||
| 6 | -@shadow-color: rgba(0, 0, 0, 0.15); | ||
| 7 | - | ||
| 8 | -// @template-bg-color: #001529; | ||
| 9 | -@template-bg-color: #fff; | ||
| 10 | -@template-bg-color-light: #ececec; | ||
| 11 | -@template-nav-bg-color: fade(@template-bg-color, 95%); | ||
| 12 | -@template-text-color: #ccc; | ||
| 13 | -@template-text-title-color: #bcbcbc; | ||
| 14 | -@template-text-color-light: #fff; | ||
| 15 | -@template-footer-text-color: #999; | ||
| 16 | - | ||
| 17 | -@animate-duration: .45s; | ||
| 18 | - | ||
| 19 | -// 详细页图片或框框的样式; | ||
| 20 | -.page-shadow() { | ||
| 21 | - box-shadow: 0 5px 8px @shadow-color; | ||
| 22 | -} | ||
| 23 | - | ||
| 24 | -.page-pro() { | ||
| 25 | - border-radius: 6px; | ||
| 26 | - border: 1px solid @line-color; | ||
| 27 | - transform: translateY(0); | ||
| 28 | - transition: transform .3s @ease-out, box-shadow .3s @ease-out; | ||
| 29 | - &:hover { | ||
| 30 | - .page-shadow(); | ||
| 31 | - transform: translateY(-5px); | ||
| 32 | - } | ||
| 33 | -} |
front-end/landing-page/src/Page2/less/edit.less deleted
100755 → 0
front-end/landing-page/src/Page2/less/footer0.less deleted
100755 → 0
| 1 | -@import './custom.less'; | ||
| 2 | -.footer0-wrapper { | ||
| 3 | - background-color: @template-bg-color; | ||
| 4 | - height: 80px; | ||
| 5 | - overflow: hidden; | ||
| 6 | - .footer0 { | ||
| 7 | - height: 100%; | ||
| 8 | - padding: 0 24px; | ||
| 9 | - line-height: 80px; | ||
| 10 | - text-align: center; | ||
| 11 | - color: @template-footer-text-color; | ||
| 12 | - position: relative; | ||
| 13 | - } | ||
| 14 | -} | ||
| 15 | - | ||
| 16 | -@media screen and (max-width: 767px) { | ||
| 17 | - .footer0-wrapper { | ||
| 18 | - .footer0 { | ||
| 19 | - font-size: 12px; | ||
| 20 | - &.home-page { | ||
| 21 | - padding: 0; | ||
| 22 | - } | ||
| 23 | - >div { | ||
| 24 | - width: 90%; | ||
| 25 | - margin: auto; | ||
| 26 | - } | ||
| 27 | - } | ||
| 28 | - } | ||
| 29 | -} |
front-end/landing-page/src/Page2/less/nav0.less deleted
100755 → 0
| 1 | -@import './custom.less'; | ||
| 2 | -@header: header0; | ||
| 3 | -.@{header} { | ||
| 4 | - background: @template-nav-bg-color; | ||
| 5 | - width: 100%; | ||
| 6 | - z-index: 1; | ||
| 7 | - box-shadow: 0 5px 8px fade(#000, 15); | ||
| 8 | - position: relative; | ||
| 9 | - top: 0; | ||
| 10 | - .home-page { | ||
| 11 | - padding: 0 24px; | ||
| 12 | - } | ||
| 13 | - &-logo { | ||
| 14 | - display: inline-block; | ||
| 15 | - position: relative; | ||
| 16 | - width: 150px; | ||
| 17 | - line-height: 64px; | ||
| 18 | - & img { | ||
| 19 | - vertical-align: middle; | ||
| 20 | - display: inline-block; | ||
| 21 | - } | ||
| 22 | - & a { | ||
| 23 | - display: block; | ||
| 24 | - } | ||
| 25 | - } | ||
| 26 | - &-menu { | ||
| 27 | - float: right; | ||
| 28 | - >.ant-menu { | ||
| 29 | - line-height: 62px; | ||
| 30 | - background: transparent; | ||
| 31 | - color: @template-text-color-light; | ||
| 32 | - height: 64px; | ||
| 33 | - border-bottom-color: transparent; | ||
| 34 | - position: relative; | ||
| 35 | - a { | ||
| 36 | - // color: @template-text-color-light; | ||
| 37 | - &:hover { | ||
| 38 | - color: @primary-color; | ||
| 39 | - } | ||
| 40 | - } | ||
| 41 | - } | ||
| 42 | - } | ||
| 43 | - .ant-menu-item-selected a { | ||
| 44 | - color: @primary-color; | ||
| 45 | - } | ||
| 46 | -} | ||
| 47 | - | ||
| 48 | -@media screen and (max-width: 767px) { | ||
| 49 | - .@{header} { | ||
| 50 | - &-logo { | ||
| 51 | - z-index: 101; | ||
| 52 | - } | ||
| 53 | - &.home-page-wrapper .home-page { | ||
| 54 | - padding: 0 24px; | ||
| 55 | - } | ||
| 56 | - & &-menu { | ||
| 57 | - height: auto; | ||
| 58 | - float: inherit; | ||
| 59 | - position: relative; | ||
| 60 | - left: -24px; | ||
| 61 | - width: ~"calc(100% + 48px)"; | ||
| 62 | - opacity: 0; | ||
| 63 | - transition: opacity .3s @ease-in-out, height .3s @ease-in-out; | ||
| 64 | - & li { | ||
| 65 | - padding: 0 24px; | ||
| 66 | - &.ant-menu-submenu { | ||
| 67 | - padding: 0; | ||
| 68 | - } | ||
| 69 | - } | ||
| 70 | - & .ant-menu-submenu .ant-menu-sub { | ||
| 71 | - padding: 0 24px; | ||
| 72 | - } | ||
| 73 | - } | ||
| 74 | - &-mobile-menu { | ||
| 75 | - width: 16px; | ||
| 76 | - height: 14px; | ||
| 77 | - cursor: pointer; | ||
| 78 | - position: absolute; | ||
| 79 | - top: 24px; | ||
| 80 | - right: 24px; | ||
| 81 | - z-index: 100; | ||
| 82 | - em { | ||
| 83 | - display: block; | ||
| 84 | - width: 100%; | ||
| 85 | - height: 2px; | ||
| 86 | - background: #fff; | ||
| 87 | - margin-top: 4px; | ||
| 88 | - transition: transform .3s @ease-in-out, opacity .3s @ease-in-out; | ||
| 89 | - } | ||
| 90 | - :first-child { | ||
| 91 | - margin-top: 0; | ||
| 92 | - } | ||
| 93 | - } | ||
| 94 | - .ant-menu { | ||
| 95 | - height: auto; | ||
| 96 | - overflow: hidden; | ||
| 97 | - | ||
| 98 | - background: @template-bg-color; | ||
| 99 | - .ant-menu-item-selected { | ||
| 100 | - border: none; | ||
| 101 | - } | ||
| 102 | - a { | ||
| 103 | - color: @template-text-color-light; | ||
| 104 | - &:hover { | ||
| 105 | - color: @template-text-color-light; | ||
| 106 | - } | ||
| 107 | - } | ||
| 108 | - .ant-menu-item-selected a { | ||
| 109 | - color: @template-text-color-light; | ||
| 110 | - } | ||
| 111 | - } | ||
| 112 | - & .open { | ||
| 113 | - height: auto; | ||
| 114 | - .@{header}-mobile-menu { | ||
| 115 | - em { | ||
| 116 | - &:nth-child(1) { | ||
| 117 | - transform: translateY(6px) rotate(45deg); | ||
| 118 | - } | ||
| 119 | - &:nth-child(2) { | ||
| 120 | - opacity: 0; | ||
| 121 | - } | ||
| 122 | - &:nth-child(3) { | ||
| 123 | - transform: translateY(-6px) rotate(-45deg); | ||
| 124 | - } | ||
| 125 | - } | ||
| 126 | - } | ||
| 127 | - >.@{header}-menu { | ||
| 128 | - opacity: 1; | ||
| 129 | - pointer-events: auto; | ||
| 130 | - } | ||
| 131 | - } | ||
| 132 | - } | ||
| 133 | -} |
front-end/landing-page/src/assets/home/banner.svg deleted
100644 → 0
| 1 | -<svg id="f2059cf3-5beb-4c16-b86e-a491cbb2d73f" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1096.46" height="805.97" viewBox="0 0 1096.46 805.97"><defs><linearGradient id="fe3366dc-1c26-4135-9415-0b0409d0ae5c" x1="699.46" y1="846.78" x2="699.46" y2="546.12" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="gray" stop-opacity="0.25"/><stop offset="0.54" stop-color="gray" stop-opacity="0.12"/><stop offset="1" stop-color="gray" stop-opacity="0.1"/></linearGradient></defs><title>mobile marketing</title><path d="M693.59,158.42c-64.72-2.25-126.36-23.14-185.22-46S391.21,64.23,328,52.12C287.41,44.33,240.94,43.23,208.2,65c-31.5,21-41.68,57.15-47.15,90.72-4.12,25.27-6.54,51.85,4.74,75.5,7.84,16.42,21.74,30.22,31.36,46,33.47,54.72,9.81,122.2-26.45,175.63-17,25.06-36.75,49-49.88,75.66s-19.2,57.25-7.71,84.46c11.38,27,38.51,47.24,67.9,61.5,59.69,28.94,130,37.23,198.61,41.92,151.83,10.39,304.46,5.89,456.69,1.39,56.34-1.67,112.92-3.36,168.34-12.07,30.78-4.84,62.55-12.52,84.89-31,28.37-23.53,35.4-63.38,16.39-92.88-31.88-49.49-120-61.79-142.31-114.9-12.26-29.23.33-61.8,18.16-88.91,38.24-58.17,102.33-109.19,105.7-175.68,2.32-45.66-28.49-91.39-76.13-113-49.93-22.65-119.18-19.8-156,17.69C817.4,145.55,750.74,160.4,693.59,158.42Z" transform="translate(-51.77 -47.02)" fill="#74adff" opacity="0.1"/><g opacity="0.9"><rect x="708.33" y="248.78" width="8.86" height="73.02" rx="2.29" ry="2.29" fill="#3a3768"/><rect x="413.89" y="191.58" width="4.97" height="24.04" rx="2.29" ry="2.29" fill="#3a3768"/><rect x="413.71" y="235.59" width="5.6" height="41.84" rx="2.29" ry="2.29" fill="#3a3768"/><rect x="413.8" y="292.07" width="5.33" height="42.2" rx="2.29" ry="2.29" fill="#3a3768"/><rect x="416.71" y="112.14" width="296.4" height="602.39" rx="38.99" ry="38.99" fill="#3a3768"/><rect x="536.31" y="130.12" width="41.39" height="8.4" rx="3.87" ry="3.87" fill="#e6e8ec"/><circle cx="588.73" cy="134.33" r="4.77" fill="#e6e8ec"/></g><ellipse cx="238.04" cy="728.39" rx="199.97" ry="20.38" fill="#74adff" opacity="0.1"/><ellipse cx="682.68" cy="796.42" rx="93.68" ry="9.55" fill="#74adff" opacity="0.1"/><ellipse cx="1002.78" cy="748.3" rx="93.68" ry="9.55" fill="#74adff" opacity="0.1"/><path d="M723,174.84H689.1v4.09a19.38,19.38,0,0,1-19.38,19.38H561.54a19.38,19.38,0,0,1-19.38-19.38v-4.09H510.32a23.53,23.53,0,0,0-23.53,23.54V722.31a23.53,23.53,0,0,0,23.53,23.54H723a23.54,23.54,0,0,0,23.54-23.54V198.38A23.54,23.54,0,0,0,723,174.84Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><path d="M867.49,132.73s-84.2-5.08-74.27,53.92c0,0-2,10.43,7.48,15.16,0,0,.15-4.37,8.63-2.89a38.44,38.44,0,0,0,9.15.44,19,19,0,0,0,11.19-4.61h0s23.66-9.78,32.87-48.46c0,0,6.81-8.44,6.54-10.61l-14.21,6.07s4.85,10.25,1,18.77c0,0-.46-18.4-3.19-18-.56.08-7.39,3.55-7.39,3.55s8.36,17.85,2,30.83c0,0,2.39-22-4.66-29.54l-10,5.84s9.76,18.44,3.15,33.49c0,0,1.69-23.08-5.25-32.07l-9.06,7.07s9.17,18.17,3.58,30.65c0,0-.74-26.86-5.55-28.89,0,0-7.93,7-9.14,9.86,0,0,6.28,13.2,2.39,20.16,0,0-2.39-17.9-4.35-18,0,0-7.9,11.86-8.72,20,0,0,.34-12.09,6.8-21.12,0,0-7.63,1.31-12.09,6.26,0,0,1.23-8.38,14-9.12,0,0,6.53-9,8.28-9.54,0,0-12.75-1.07-20.48,2.36,0,0,6.8-7.91,22.82-4.31l8.94-7.31s-16.78-2.29-23.9.24c0,0,8.2-7,26.32-1.9l9.74-5.82s-14.31-3.09-22.84-2c0,0,9-4.85,25.69.41l7-3.13s-10.49-2.06-13.56-2.39-3.23-1.17-3.23-1.17A36.35,36.35,0,0,1,853,139.19S867.74,133.66,867.49,132.73Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><path d="M781.13,106.49s-38-2.29-33.56,24.37c0,0-.89,4.71,3.38,6.85,0,0,.07-2,3.9-1.31a17.51,17.51,0,0,0,4.13.2,8.62,8.62,0,0,0,5.06-2.08h0s10.69-4.42,14.85-21.9c0,0,3.08-3.81,3-4.79l-6.42,2.74s2.19,4.63.46,8.48c0,0-.2-8.31-1.44-8.12-.25,0-3.33,1.61-3.33,1.61s3.77,8.06.92,13.93c0,0,1.08-9.94-2.1-13.35l-4.52,2.64s4.41,8.33,1.42,15.13c0,0,.77-10.43-2.37-14.49l-4.1,3.2s4.15,8.21,1.62,13.85c0,0-.33-12.14-2.5-13.06,0,0-3.59,3.16-4.13,4.46,0,0,2.83,6,1.07,9.11,0,0-1.08-8.09-2-8.13,0,0-3.57,5.36-3.94,9a19.46,19.46,0,0,1,3.07-9.54,10.71,10.71,0,0,0-5.46,2.83s.55-3.79,6.34-4.12c0,0,2.95-4.07,3.74-4.32,0,0-5.76-.48-9.25,1.07,0,0,3.07-3.57,10.31-2l4-3.3s-7.58-1-10.8.11c0,0,3.71-3.16,11.89-.86l4.4-2.63s-6.46-1.39-10.31-.89c0,0,4.06-2.19,11.6.18l3.15-1.41s-4.73-.93-6.12-1.08-1.46-.53-1.46-.53a16.36,16.36,0,0,1,8.89,1S781.24,106.91,781.13,106.49Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><ellipse cx="40.21" cy="678.57" rx="40.21" ry="6.8" fill="#74adff"/><path d="M108.6,714.46a11.63,11.63,0,0,0,3.84-5.78c.49-2.3-.49-5-2.68-5.89-2.46-.95-5.09.76-7.08,2.48s-4.28,3.69-6.89,3.32A10.47,10.47,0,0,0,99,698.78a4,4,0,0,0-.9-2c-1.36-1.46-3.84-.83-5.48.32-5.2,3.66-6.65,10.72-6.67,17.08-.53-2.3-.09-4.69-.1-7s-.66-5-2.64-6.22a8,8,0,0,0-4-.95c-2.34-.08-4.94.15-6.54,1.86-2,2.12-1.47,5.69.26,8s4.35,3.8,6.76,5.42a14.92,14.92,0,0,1,4.84,4.61,4.41,4.41,0,0,1,.36.82H99.54A40.77,40.77,0,0,0,108.6,714.46Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><path d="M882.34,630.54s8.65,11.32-4,28.4-23.07,31.5-18.85,42.15c0,0,19.08-31.72,34.61-32.17S899.42,649.62,882.34,630.54Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><path d="M882.34,630.54a14.25,14.25,0,0,1,1.77,3.55c15.15,17.8,23.22,34.42,8.65,34.83-13.56.39-29.84,24.65-33.73,30.77a11.46,11.46,0,0,0,.46,1.4s19.08-31.72,34.61-32.17S899.42,649.62,882.34,630.54Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M898.42,645c0,4-.45,7.21-1,7.21s-1-3.23-1-7.21.56-2.1,1.11-2.1S898.42,641,898.42,645Z" transform="translate(-51.77 -47.02)" fill="#ffd037"/><path d="M903.94,649.72c-3.5,1.9-6.54,3.06-6.81,2.57s2.36-2.42,5.86-4.33,2.11-.51,2.38,0S907.44,647.81,903.94,649.72Z" transform="translate(-51.77 -47.02)" fill="#ffd037"/><path d="M836.64,630.54s-8.65,11.32,4,28.4,23.07,31.5,18.86,42.15c0,0-19.08-31.72-34.61-32.17S819.56,649.62,836.64,630.54Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><path d="M836.64,630.54a13.85,13.85,0,0,0-1.77,3.55c-15.15,17.8-23.22,34.42-8.66,34.83,13.57.39,29.84,24.65,33.74,30.77a13.48,13.48,0,0,1-.46,1.4s-19.08-31.72-34.61-32.17S819.56,649.62,836.64,630.54Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M820.55,645c0,4,.45,7.21,1,7.21s1-3.23,1-7.21-.56-2.1-1.11-2.1S820.55,641,820.55,645Z" transform="translate(-51.77 -47.02)" fill="#ffd037"/><path d="M815,649.72c3.49,1.9,6.54,3.06,6.8,2.57s-2.35-2.42-5.85-4.33-2.12-.51-2.38,0S811.54,647.81,815,649.72Z" transform="translate(-51.77 -47.02)" fill="#ffd037"/><path d="M823.31,699.61s24.19-.75,31.48-5.94,37.21-11.39,39-3.06,36.35,41.41,9,41.63-63.46-4.26-70.73-8.69S823.31,699.61,823.31,699.61Z" transform="translate(-51.77 -47.02)" fill="#a8a8a8"/><path d="M903.34,729.34c-27.31.22-63.46-4.26-70.73-8.69-5.55-3.37-7.75-15.48-8.49-21.07l-.81,0s1.53,19.51,8.81,23.94,43.42,8.91,70.73,8.69c7.88-.07,10.61-2.87,10.46-7C912.21,727.72,909.21,729.29,903.34,729.34Z" transform="translate(-51.77 -47.02)" opacity="0.2"/><rect x="584.53" y="487.87" width="78.03" height="78.03" fill="#3a3768" opacity="0.3"/><rect x="469.53" y="384.87" width="78.03" height="78.03" fill="#3a3768" opacity="0.3"/><rect x="477.03" y="589.11" width="78.03" height="78.03" fill="#3a3768" opacity="0.3"/><rect x="459.62" y="193.28" width="78.03" height="78.03" fill="#fff"/><path d="M565.55,265.79l-2.77,2.76a9.77,9.77,0,0,1,0,13.83l2.77,2.78a13.7,13.7,0,0,0,0-19.37Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><path d="M571.09,260.46l-2.73,2.73a17.38,17.38,0,0,1,0,24.56l2.73,2.73a21.22,21.22,0,0,0,0-30Zm-13,10.22v-12.5h-3.85l-11.52,9.6H527.36l-3.84,1.92v13.45l3.84,1.92L537,300.44h5.76l-3.6-15.37h3.6l11.52,7.69h3.85v-12.5a4.91,4.91,0,0,0,0-9.58Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><rect x="656.92" y="522.77" width="78.03" height="78.03" transform="translate(-248.8 565.21) rotate(-42.14)" fill="#fff"/><path d="M673.34,551.14,679,546,710,580.17l-5.7,5.16Zm13.37,32,5.7-5.15,9,10-5.7,5.15Zm11.94-21.16,5.7-5.16,14.17,15.67-5.69,5.15Zm.81-16.28,5.7-5.16,21.91,24.21-5.7,5.16Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><rect x="583.24" y="287.31" width="78.03" height="78.03" fill="#fff"/><path d="M688.84,364l-10.47,16a5.7,5.7,0,0,1,1.3,3.64,5.77,5.77,0,0,1-11.53,0,6.36,6.36,0,0,1,.1-1.07l-6.92-4a5.79,5.79,0,0,1-6.83.86l-7.36,6.89v6.87a5.14,5.14,0,0,0,5.13,5.13H695.8a5.15,5.15,0,0,0,5.13-5.13V367.67l-7-4.67a5.7,5.7,0,0,1-3.53,1.22,5.87,5.87,0,0,1-1.52-.21Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><path d="M657.33,368.66a5.76,5.76,0,0,1,5.77,5.76c0,.25,0,.51-.05.75l7.22,4a5.67,5.67,0,0,1,3.65-1.3,5.54,5.54,0,0,1,1.24.14l10.5-16.26a5.76,5.76,0,1,1,10.46-3.34,6,6,0,0,1-.16,1.36l5,3.31v-9.62a5.14,5.14,0,0,0-5.13-5.12H652.26a5.13,5.13,0,0,0-5.13,5.12V381l4.8-4.6a5.82,5.82,0,0,1-.36-2A5.76,5.76,0,0,1,657.33,368.66Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><rect x="484.6" y="374.31" width="78.03" height="78.03" fill="#fff"/><path d="M598.93,435.49l-48,26a1,1,0,0,0,.07,1.79l8.19,3.09a2,2,0,0,1,1.08,1l6.36,13.1c.12.58,1.19.74,1.2.15l-1-10.83a3.85,3.85,0,0,1,.88-2.19l24.88-24.38a.62.62,0,0,1,.55-.16.57.57,0,0,1,.31.91L572,470.19a4.79,4.79,0,0,0-.84,2.16l-1.28,9.35c.1.82.74,1.13,1.26.4l4.62-5.43a1,1,0,0,1,1.36-.22l11.91,8.68a1,1,0,0,0,1.51-.59l9.77-48a1,1,0,0,0-1.4-1.08Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><path d="M1023.61,779.61c4.54.59,9.25,1,13.6-.46.67-.21,1.44-.67,1.35-1.36a1.6,1.6,0,0,0-.31-.66,42.41,42.41,0,0,1-4.13-7.83.64.64,0,0,0-.25-.35.61.61,0,0,0-.44,0c-2,.52-3.74,1.82-5.74,2.37a8.2,8.2,0,0,1-3.12.24c-.9-.1-2.14-.85-2.95-.76C1022.12,773.77,1023.26,776.58,1023.61,779.61Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><path d="M1109.54,772c3-2,6.1-4.22,7.87-7.39a1.21,1.21,0,0,0,.21-.63,1.3,1.3,0,0,0-.25-.62,25.62,25.62,0,0,0-6.39-6.9,18.89,18.89,0,0,0-3.57,3.29c-.75.79-2.83,2.09-2.85,3.27,0,.71.79,1.48,1.16,2,.5.74,1,1.5,1.43,2.26C1107.38,767.74,1109.76,771.88,1109.54,772Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><path d="M1041.41,788.79a3,3,0,0,1-.54,2,2.67,2.67,0,0,1-1.15.67c-6.36,2.27-13.68-.57-20,1.68-1.31.46-2.54,1.12-3.85,1.56a20.85,20.85,0,0,1-4.77.85c-2.25.22-4.5.35-6.75.41a16.33,16.33,0,0,1-5.08-.44,6.15,6.15,0,0,1-3.9-3.09,3,3,0,0,1-.19-2.2,2.49,2.49,0,0,1,.41-.71,6.09,6.09,0,0,1,1.5-1.21l2.34-1.51a15.63,15.63,0,0,1,3.54-1.88c.92-.3,1.91-.43,2.84-.7,3.29-1,5.79-3.57,8.12-6.07l3.18-3.39a3.11,3.11,0,0,1,1.1-.88,3,3,0,0,1,1.36-.14,18.37,18.37,0,0,1,8.67,2.92,12.51,12.51,0,0,0,2.14,1.26,7.64,7.64,0,0,0,6-.75c.82-.43.64-.7,1-1.47s1.18-1.27,1.9-.56a2.09,2.09,0,0,1,.45.86c.7,2.27.43,4.7.43,7.07a3.14,3.14,0,0,0,.14,1.1,6.69,6.69,0,0,0,.62,1,1.58,1.58,0,0,1,.13.26A6.94,6.94,0,0,1,1041.41,788.79Z" transform="translate(-51.77 -47.02)" fill="#514e7f"/><path d="M1041.41,788.79a3,3,0,0,1-.54,2,2.67,2.67,0,0,1-1.15.67c-6.36,2.27-13.68-.57-20,1.68-1.31.46-2.54,1.12-3.85,1.56a20.85,20.85,0,0,1-4.77.85c-2.25.22-4.5.35-6.75.41a16.33,16.33,0,0,1-5.08-.44,6.15,6.15,0,0,1-3.9-3.09,3,3,0,0,1-.19-2.2,2.49,2.49,0,0,1,.41-.71c.38.78.65,1.8.88,2.17a4.44,4.44,0,0,0,3,2.15,7.61,7.61,0,0,0,2.71-.35c5.76-1.43,11.88-1.45,17.4-3.61a41.57,41.57,0,0,1,5.7-2.19,45.28,45.28,0,0,1,6.16-.5c3.25-.26,6.39-1.24,9.6-1.75A6.94,6.94,0,0,1,1041.41,788.79Z" transform="translate(-51.77 -47.02)" fill="#464353"/><path d="M1124.06,771.61c-.3,2.41-1.83,4.49-3.51,6.25a40.07,40.07,0,0,0-4.9,5.37c-1.66,2.52-2.39,5.63-4.53,7.76a12.27,12.27,0,0,1-2.72,2,18.8,18.8,0,0,1-3.53,1.62c-3.19,1-6.63.79-10,.55a8.89,8.89,0,0,1-3.16-.62,9.18,9.18,0,0,1-1.34-.81,6.36,6.36,0,0,1-2-2.07,2.08,2.08,0,0,1-.19-1.49,3.4,3.4,0,0,1,1-1.46,22.6,22.6,0,0,1,2.41-2.17,14.31,14.31,0,0,0,3.14-2.76,9,9,0,0,0,1.21-2.76,24.73,24.73,0,0,0,.88-5.25,16.54,16.54,0,0,1,.37-3.51c.51-1.8,1.85-3.43,1.69-5.3a1.36,1.36,0,0,1,.07-.8,1.25,1.25,0,0,1,.63-.39,11.4,11.4,0,0,1,3.28-.75,3.78,3.78,0,0,1,3,1.19c.47.56.77,1.34,1.46,1.59a2.42,2.42,0,0,0,1,0c1.68-.17,3.47-.38,4.76-1.47a6,6,0,0,0,2-4.37c0-.62-.28-1.27.67-1.4.73-.1,1.3.66,1.67,1.16a16.32,16.32,0,0,1,3.21,5.85,1.62,1.62,0,0,1,.61-.12,2.61,2.61,0,0,1,2.18,1.12A4.32,4.32,0,0,1,1124.06,771.61Z" transform="translate(-51.77 -47.02)" fill="#514e7f"/><path d="M1124.06,771.61c-.3,2.41-1.83,4.49-3.51,6.25a40.07,40.07,0,0,0-4.9,5.37c-1.66,2.52-2.39,5.63-4.53,7.76a12.27,12.27,0,0,1-2.72,2,18.8,18.8,0,0,1-3.53,1.62c-3.19,1-6.63.79-10,.55a8.89,8.89,0,0,1-3.16-.62,9.18,9.18,0,0,1-1.34-.81,6.36,6.36,0,0,1-2-2.07,4.87,4.87,0,0,1,2.06-.49c1.49.08,2.57,1.48,4,1.91,2,.61,4-.82,6.09-1.31,1.34-.31,2.76-.22,4.07-.65a10.05,10.05,0,0,0,3-1.82,15.23,15.23,0,0,0,3.21-3.1,19.76,19.76,0,0,0,1.89-3.76,53.71,53.71,0,0,1,3.81-7.29,4.84,4.84,0,0,1,.78-1c.31-.29.7-.5,1-.76,1.37-1,1.94-2.77,2.42-4.41a7.38,7.38,0,0,1,.54-1.47,2.61,2.61,0,0,1,2.18,1.12A4.32,4.32,0,0,1,1124.06,771.61Z" transform="translate(-51.77 -47.02)" fill="#464353"/><path d="M980.4,558a14.52,14.52,0,0,1,4.08,4.77c1,1.88,6.49,16.48,6.17,18.57,1.8-1.82,8.94-2.12,10.73-3.93.76-.76,4.87-4.56,5.48-5.44s5.19-2.77,5.69-3.67c1.87-3.35-13.26-16-11.33-19.36a.82.82,0,0,0,.16-.52.8.8,0,0,0-.25-.4,24.08,24.08,0,0,0-4.38-3,7,7,0,0,1-3.34-4,14.37,14.37,0,0,0-3.87,2.62q-4.15,3.55-8.18,7.28c-1.06,1-3.08,2.27-3.57,3.66S979.39,557.18,980.4,558Z" transform="translate(-51.77 -47.02)" fill="#a1616a"/><path d="M1004.89,552.61a43.84,43.84,0,0,0-6.48,5.3c-1.88,1.85-3.66,4-4.13,6.61-.19,1-.16,2.06-.32,3.09-.67,4.48-4.56,7.77-6.27,12a20.52,20.52,0,0,0-1.1,4,47.15,47.15,0,0,0-.78,7.86c0,2.56,2.46,4.32,3.38,6.71a40.7,40.7,0,0,1,1.63,7.27,88.58,88.58,0,0,0,4.09,13.5c3.38,9.33,14.33,35.13,17.71,44.47,10.35-2.6,37.91-8.57,47.07-14,3.06-1.82-21.2-22.38-17.93-23.8a1.65,1.65,0,0,0,.91-.69,1.58,1.58,0,0,0,0-1c-3.26-14.29-13.49-26-18.12-40-1.61-4.83-4.5-8.95-6.7-13.55-2-4.16-3.05-8.75-5.42-12.7a8.49,8.49,0,0,0-1.73-2.17,10.61,10.61,0,0,0-1.92-1.15C1007.47,553.66,1006.21,553.27,1004.89,552.61Z" transform="translate(-51.77 -47.02)" fill="#514e7f"/><circle cx="929.18" cy="493.15" r="16.2" fill="#a1616a"/><path d="M997.43,547.78a5.43,5.43,0,0,1,6.09-.87,3,3,0,0,1,1.81,2.92l8,.12a16.74,16.74,0,0,1,3.81.35,5.54,5.54,0,0,1,3.18,2c.1.13.21.28.37.31a.64.64,0,0,0,.37-.13,7.05,7.05,0,0,1,4-.72c4.34.28,8.36,2.46,11.76,5.17a3.81,3.81,0,0,1,1.4,1.71c.28.91,0,2.08.66,2.7,0,7.55,2.59,14.58,4.32,21.93.3,1.31,1.56,2.46,2.43,3.49a14,14,0,0,1,2.6,3.88c1.46,3.81-.56,8.28.87,12.11a19.5,19.5,0,0,0,2.76,4.35,11.21,11.21,0,0,1,2.35,5.62c.06.92-.06,1.84,0,2.77a16.88,16.88,0,0,0,.66,3.64c.58,2.21,1.2,4.42,1.84,6.62,1,3.56,2.4,7.41,5.59,9.31-7.71,1.31-15.83,2.58-23.18-.09a12,12,0,0,1-2.89-1.45c-2.65-1.89-3.93-5.13-5.07-8.18-1.28-3.43-2.58-6.91-2.84-10.56a12.08,12.08,0,0,0-.48-3.45c-.75-2-2.73-3.19-4.55-4.29a21.89,21.89,0,0,1-5.47-4.26,8.5,8.5,0,0,1-2.22-6.4c.14-1.13.58-2.22.63-3.36a2.69,2.69,0,0,0-1.56-2.77c-5.61-1.7-8.29-8.34-9.54-14.07a44.89,44.89,0,0,1-.72-9l-.07-5.79a7.68,7.68,0,0,1-2.52-5.54,6.22,6.22,0,0,0,0-1.83,5.13,5.13,0,0,0-1.28-2A16.9,16.9,0,0,1,997.43,547.78Z" transform="translate(-51.77 -47.02)" fill="#464353"/><path d="M980.17,566.31c-.18,1.81.23,3.66-.18,5.44-.16.68-.43,1.33-.63,2a11.8,11.8,0,0,0,.75,7.62,42.35,42.35,0,0,0,3.89,6.75,10.28,10.28,0,0,1,1.25,2.33,12.07,12.07,0,0,1,.48,2.67,81.32,81.32,0,0,0,1.91,10.74c.76,3.08,1.75,6.19,3.78,8.63a2.62,2.62,0,0,0,1.56,1.06,2.82,2.82,0,0,0,1.33-.28l4.14-1.57a2.89,2.89,0,0,0,1-.52,2.51,2.51,0,0,0,.58-1.62c.29-3.34-.71-6.65-1.82-9.81-3.36-9.54-7.82-18.73-10-28.6-.61-2.76-.93-7-2.94-9.15-.83-.9-.55-.52-1.54,0a12.54,12.54,0,0,0-1.45.77A4.75,4.75,0,0,0,980.17,566.31Z" transform="translate(-51.77 -47.02)" fill="#464353"/><path d="M1059.24,625.68" transform="translate(-51.77 -47.02)" fill="#464353"/><path d="M992.65,584.41q1.65,8.73,3.37,17.47l16.08-4.22c.13-1.68-.77-3.24-1.39-4.81-1.47-3.68-1.5-7.77-2.69-11.55-.9-2.88-2.46-5.53-3.3-8.43-.49-1.68-.73-3.44-1.21-5.13a39.19,39.19,0,0,0-1.89-4.89,31.16,31.16,0,0,0-3.51-6.51c-2.06.77-4.25,1.66-5.42,3.51a7.46,7.46,0,0,0-1,3.46c-.28,3.62,1,7.25.59,10.83A32,32,0,0,0,992.65,584.41Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><path d="M1012.37,662c.9,3.44-.41,7-1.47,10.42a80.92,80.92,0,0,0-3.28,15.69,13,13,0,0,1-.81,4,37.42,37.42,0,0,1-1.95,3.2c-1.62,2.86-1.58,6.36-1.23,9.63.23,2.16.58,4.31,1,6.44.53,2.59,1.18,5.31.42,7.84,1.27-.28,2.14,1.36,2.09,2.67s-.51,2.71.11,3.86c1.58.57,1.6,2.74,1.55,4.41a37.19,37.19,0,0,0,1.09,8.64q3.58,17.19,7.6,34.29c5.79,1.8,12.55,3.67,18.07,1.18a3.55,3.55,0,0,0,2.29-2.3,4.14,4.14,0,0,0-.22-1.77l-2.62-9.52a17.53,17.53,0,0,1-.94-7c.26-1.77,1-3.67.16-5.22-.3-.53-.76-1-1.1-1.46-1.38-2-.66-4.69-.54-7.13a5.58,5.58,0,0,0-.12-1.63,8.56,8.56,0,0,0-.77-1.79,27.33,27.33,0,0,1-3-13.6,3.34,3.34,0,0,0-.24-1.78,4.08,4.08,0,0,1-.44-.72,1.93,1.93,0,0,1,.14-1.31,11.38,11.38,0,0,1-2.11-2,3,3,0,0,0,.5-4.62,1.54,1.54,0,0,0,.74-2.65c-.34-.24-.78-.34-1-.68-.37-.5-.07-1.21.23-1.75l1.6-2.89c1.19-2.14,1.46-4.79,2.74-6.88a51.62,51.62,0,0,0,4.22-9.63l4.56-12.7,3.1,2.69a9.71,9.71,0,0,1,2.55,2.91,12.28,12.28,0,0,1,.82,3.48c1.14,6.9,5.49,12.88,7.1,19.69a13.27,13.27,0,0,0,1.46,4.4,9.52,9.52,0,0,1,.84,1.26,6.64,6.64,0,0,1,.35,2.09,9.74,9.74,0,0,0,4.11,7c1.52,1,3.45,1.77,4.25,3.43a6.77,6.77,0,0,0,.7,1.46c.74.89,2.34,1,2.66,2.11.17.63-.16,1.37.2,1.92a1.75,1.75,0,0,0,.75.56l4.47,2.24c5,2.49,7.52,8.2,11.21,12.39a25.73,25.73,0,0,1,3.35,4.44c1.59,2.84,2.33,6.41,5,8.24a7.77,7.77,0,0,1,1.94,1.44c.85,1.11.54,2.67.61,4.07s1.15,3.06,2.48,2.64a9.65,9.65,0,0,0,0,5.17,26.06,26.06,0,0,0,15.8-6.4c1.3-1.14,2.56-2.59,2.57-4.31a1.67,1.67,0,0,0-.19-.86,2.34,2.34,0,0,0-1-.76c-4.17-2.26-5.43-7.5-7.52-11.76-1.85-3.75-4.57-7-6.88-10.48-5-7.5-8.34-16.57-15.85-21.53-1.65-1.09-3.57-2.06-4.39-3.86a30.79,30.79,0,0,1-.88-3.2,2.69,2.69,0,0,0-2.35-2,14.27,14.27,0,0,0,.54-5,6.22,6.22,0,0,0-.25-2.15,10.16,10.16,0,0,0-1.1-2.12,20.55,20.55,0,0,1-2.83-11c.06-2,.41-4-.19-5.91-.3-1-.82-1.83-1.19-2.76a17.21,17.21,0,0,1-.86-5.15l-.41-6.59a31.55,31.55,0,0,0-.85-6.51c-1.39-5.11-2.72-26.52-7.43-28.93s-12.75,14.06-18,14.39a24,24,0,0,0-6.88,1.32c-3.51,1.32-6.46,3.78-9.33,6.19l-9.72,8.16A35.42,35.42,0,0,1,1012.37,662Z" transform="translate(-51.77 -47.02)" fill="#464353"/><path d="M965.74,522.18a12.22,12.22,0,0,1,9.43-4.6,22,22,0,0,1,10.42,2.62,13.43,13.43,0,0,0,3,1.25c1.72.35,3.62-.12,5.17.7,2.06,1.09,2.45,3.87,2.27,6.19s-.61,4.86.62,6.85a19,19,0,0,1,1.19,1.78,5.94,5.94,0,0,1-.11,3.81,30.6,30.6,0,0,1-2-2.51c-.72-.79-1.95-1.33-2.83-.74s-.88,1.68-.92,2.65-.3,2.14-1.22,2.46a2,2,0,0,1-2-.8c-1.57-1.92-.94-5-2.49-6.92-.89-1.1-2.36-1.63-3.18-2.78-.64-.9-.8-2.07-1.36-3s-1.87-1.69-2.75-1a3.74,3.74,0,0,0-.73,1,4.21,4.21,0,0,1-5,1.5,8.77,8.77,0,0,0-2.17-.93,2.67,2.67,0,0,0-2.47,1.34,5.32,5.32,0,0,0-.65,2.86c0,1.35.24,2.83-.54,3.93a4.06,4.06,0,0,1-1.16,1c-1.15.73-2.72,1.22-3.8.39a2.86,2.86,0,0,1-.85-2.66,21.88,21.88,0,0,1,.81-2.81c.6-2.12-.18-4.51.48-6.51A20.49,20.49,0,0,1,965.74,522.18Z" transform="translate(-51.77 -47.02)" fill="#464353"/><path d="M974.42,570.51a2.5,2.5,0,0,0,.15,1.49,2.42,2.42,0,0,0,.81.78,16.78,16.78,0,0,0,7.64,2.47,2.3,2.3,0,0,1,1,.27,1.89,1.89,0,0,1,.45,2.13,5.67,5.67,0,0,0-.48,2.26c.2,1.43,1.89,2.08,3.33,2.26a7.72,7.72,0,0,0,5.79-1.12,8.93,8.93,0,0,0,2.39-3.59c3.93-9,5.31-19,9.29-28a5.69,5.69,0,0,0,.6-1.87,1.86,1.86,0,0,0-.74-1.73c-.74-.46-1.89-.2-2.39-.91-.25-.37-.22-.86-.44-1.24-.46-.82-1.66-.72-2.49-1.16-.64-.35-1.09-1-1.8-1.19a2.3,2.3,0,0,0-1.88.81c-2.33,2.18-3.56,5.27-4.86,8.19a97.27,97.27,0,0,1-7,12.91c.31-.48-1.48-4.13-2.18-4.27-1.22-.25-2.8,1.9-3.46,2.71A17.16,17.16,0,0,0,974.42,570.51Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><rect x="930.83" y="536.29" width="78.03" height="78.03" fill="#fff"/><path d="M1022.22,609.51V599.27H996.64v46.1h49.95V609.51Zm-15.35,30.73h-5.11v-5.12h5.11Zm0-10.24h-5.11v-5.12h5.11Zm0-10.24h-5.11v-5.13h5.11Zm0-10.25h-5.11v-5.13h5.11Zm10.23,30.73H1012v-5.12h5.11Zm0-10.24H1012v-5.12h5.11Zm0-10.24H1012v-5.13h5.11Zm0-10.25H1012v-5.13h5.11Zm24.38,30.73h-19.26v-5.12h5.11V630h-5.11v-5.12h5.11v-5.13h-5.11v-5.12h19.26ZM1037,619.76h-5.11v5.13H1037v-5.13Zm0,10.24h-5.11v5.13H1037Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><path d="M1060,626.29a31.53,31.53,0,0,0-3.7,3.88,7.73,7.73,0,0,0-1.7,5,2.57,2.57,0,0,0,.48,1.46,1.25,1.25,0,0,0,1.39.43,2,2,0,0,0,.68-.61,32,32,0,0,1,2.3-2.5c.3-.29.68-.6,1.08-.49a1.14,1.14,0,0,1,.47.31,3.18,3.18,0,0,1,1,1.51,3.58,3.58,0,0,1-1.06,2.91,7.54,7.54,0,0,0-1.79,2.65,1.13,1.13,0,0,0,0,.85,1.39,1.39,0,0,0,.53.46,7.72,7.72,0,0,0,6.47.42c1.39-.55,2.59-1.51,4-2a9.61,9.61,0,0,0,1.77-.66,3.64,3.64,0,0,0,1.57-2.34,10,10,0,0,0,.11-2.89,33,33,0,0,0-2.41-10.9,1.3,1.3,0,0,0-.39-.58,1.37,1.37,0,0,0-.66-.19c-1.75-.18-4.63-1.08-6.32-.43a4.32,4.32,0,0,0-1.49,1.33C1061.94,624.26,1060,625.83,1060,626.29Z" transform="translate(-51.77 -47.02)" fill="#a1616a"/><path d="M1059.4,624.74c0-1.68-2.08-5.71,1.21-6,0-1.78-2.53-2.9-2.07-4.78.16-.64.67-1.15.75-1.79.21-1.83-3.09-2.82-2.55-4.58.2-.67.93-1.08,1.09-1.76.37-1.58-2.46-2.29-2.51-3.91,0-.55.3-1.07.28-1.61,0-.69-.6-1.21-.93-1.8-.85-1.53-.44-3.9-2-4.68,1,.08,1.39-1.45.95-2.39s-1.3-1.75-1.3-2.79a4.43,4.43,0,0,0,0-1.15c-.29-1-1.93-1.07-2.2-2.07a10.67,10.67,0,0,1,0-1.13c-.1-.78-.9-1.26-1.65-1.49a6.56,6.56,0,0,1-2.2-.78c-.48-.37-1-1-1.55-.65-.19.11-.29.33-.44.5-.61.71-1.78.4-2.56-.13-2.29-1.55-3.42-4.34-3.92-7.06s-.47-5.53-1.07-8.23A18.85,18.85,0,0,0,1036,564a12.73,12.73,0,0,1-1.16-2.46c-.12-1.57,3.14-.5,4.38-.34a19.44,19.44,0,0,1,3.56.67,37.65,37.65,0,0,1,3.63,1.59c5,2.19,10.92,2.46,14.9,6.13,1.31,1.21,2.41,2.79,4.1,3.33a20.93,20.93,0,0,1,2.3.6c1.89.89,2.18,3.39,3.21,5.2a11.11,11.11,0,0,1,.85,1.5,5.91,5.91,0,0,1,.27,1.92l.14,4.75c.23,8,.47,15.93-.38,23.84-.28,2.6-.67,5.29.09,7.8.2.68.49,1.33.66,2a13.62,13.62,0,0,1,.26,2.47l.11,3.07a1,1,0,0,1-.15.71,1,1,0,0,1-.83.2c-4.29-.38-8.61-2.8-12.66-1.34" transform="translate(-51.77 -47.02)" fill="#464353"/><path d="M979.66,612.21a1.32,1.32,0,0,0-.48.4,3.41,3.41,0,0,0,0,4.06,1.37,1.37,0,0,1,.24.4,1.18,1.18,0,0,1-.12.68,2.25,2.25,0,0,0,.31,2.52c.31.26.73.39.93.73.35.58-.14,1.32-.06,2,.1.89,1.15,1.33,2,1.44a2.13,2.13,0,0,0,1.95-.52,1.62,1.62,0,0,0,0-1.77,4.74,4.74,0,0,0-1.32-1.32A2,2,0,0,0,985,619a2.84,2.84,0,0,0-1.14-2.49c-.18-.15-.4-.3-.45-.54s.19-.57.41-.8c1-1,1.77-3.45-.11-4a4.63,4.63,0,0,0-2,.09c-.48.15-.48.44-.85.64S980.08,612,979.66,612.21Z" transform="translate(-51.77 -47.02)" fill="#a1616a"/><path d="M999.31,543.14a3.3,3.3,0,0,0-2.54,1.28,7.31,7.31,0,0,0-1.06,3.4,29.81,29.81,0,0,1-4,10.86" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M1002.81,545.88a3.88,3.88,0,0,0-3.32,2,11.1,11.1,0,0,0-.84,3.39,18.42,18.42,0,0,1-3.33,7.11" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M357.66,609.59c.58,6.32-4.19,12.44-2.8,18.62.3,1.32.87,2.57,1.08,3.9.57,3.67-1.62,7.15-3.71,10.22l-17.94,26.34a17.07,17.07,0,0,1-2.57,3.17c-3.44,3-8.58,2.73-13.09,3.64a22.45,22.45,0,0,0-8.76,3.88.57.57,0,0,0-.12.79,7.55,7.55,0,0,0,6.52,3.06c.47.62,0,1.53-.65,2-1,.67-2.29.84-2.48,2.48a2.68,2.68,0,0,0,.33,1.64,5.07,5.07,0,0,0,3.14,2.18c6.21,1.9,12.93-1.43,17.57-6s8-10.27,12.56-14.9c2.53-2.55,5.4-4.75,8-7.23,5.2-4.94,9.23-11,13.13-17a18.87,18.87,0,0,0,2.84-5.78c.48-2.06.26-4.23.82-6.27.72-2.66,2.68-4.79,4.3-7,3.19-4.38,5.31-9.75,4.89-15.15s-3.76-10.74-8.86-12.57a7.93,7.93,0,0,0-5-.31c-2.09.65-3.63,2.38-5.06,4l-3.4,3.94a9.08,9.08,0,0,0-2,3,3.15,3.15,0,0,0,.7,3.35" transform="translate(-51.77 -47.02)" fill="#fbbebe"/><path d="M357.66,609.59c.58,6.32-4.19,12.44-2.8,18.62.3,1.32.87,2.57,1.08,3.9.57,3.67-1.62,7.15-3.71,10.22l-17.94,26.34a17.07,17.07,0,0,1-2.57,3.17c-3.44,3-8.58,2.73-13.09,3.64a22.45,22.45,0,0,0-8.76,3.88.57.57,0,0,0-.12.79,7.55,7.55,0,0,0,6.52,3.06c.47.62,0,1.53-.65,2-1,.67-2.29.84-2.48,2.48a2.68,2.68,0,0,0,.33,1.64,5.07,5.07,0,0,0,3.14,2.18c6.21,1.9,12.93-1.43,17.57-6s8-10.27,12.56-14.9c2.53-2.55,5.4-4.75,8-7.23,5.2-4.94,9.23-11,13.13-17a18.87,18.87,0,0,0,2.84-5.78c.48-2.06.26-4.23.82-6.27.72-2.66,2.68-4.79,4.3-7,3.19-4.38,5.31-9.75,4.89-15.15s-3.76-10.74-8.86-12.57a7.93,7.93,0,0,0-5-.31c-2.09.65-3.63,2.38-5.06,4l-3.4,3.94a9.08,9.08,0,0,0-2,3,3.15,3.15,0,0,0,.7,3.35" transform="translate(-51.77 -47.02)" opacity="0.05"/><path d="M221,636.44c1,3.16,2,6.32,3.21,9.4A79.54,79.54,0,0,0,232.52,661a109.23,109.23,0,0,0,6.87,9c3.06,3.61,6.48,7.24,7.56,11.85.63,2.66.42,5.45.68,8.17s1.15,5.61,3.35,7.24a12.45,12.45,0,0,0,5.52,1.82c1.38.22,3.11.29,3.83-.91a3.41,3.41,0,0,0,.38-1.58l.34-4c.07-.86.37-2,1.23-2s1.3,1.11,2,1.62a2.17,2.17,0,0,0,3-1,5,5,0,0,0,.08-3.5,16.62,16.62,0,0,0-8.53-10.57,25.64,25.64,0,0,1-4.16-2.17,14.15,14.15,0,0,1-3.27-4.12c-7.56-12.45-15.16-25-20.5-38.51a28.49,28.49,0,0,1-2.11-7.59,49,49,0,0,1,.33-8,45.79,45.79,0,0,0-1.32-14.28,11.23,11.23,0,0,0-1.37-3.47c-2.19-3.34-7.36-3.83-10.62-1.53a10.94,10.94,0,0,0-4.22,7.72c-.24,2.69,1.32,5.5,2.11,8Q217.37,624.81,221,636.44Z" transform="translate(-51.77 -47.02)" fill="#a1616a"/><path d="M221,636.44c1,3.16,2,6.32,3.21,9.4A79.54,79.54,0,0,0,232.52,661a109.23,109.23,0,0,0,6.87,9c3.06,3.61,6.48,7.24,7.56,11.85.63,2.66.42,5.45.68,8.17s1.15,5.61,3.35,7.24a12.45,12.45,0,0,0,5.52,1.82c1.38.22,3.11.29,3.83-.91a3.41,3.41,0,0,0,.38-1.58l.34-4c.07-.86.37-2,1.23-2s1.3,1.11,2,1.62a2.17,2.17,0,0,0,3-1,5,5,0,0,0,.08-3.5,16.62,16.62,0,0,0-8.53-10.57,25.64,25.64,0,0,1-4.16-2.17,14.15,14.15,0,0,1-3.27-4.12c-7.56-12.45-15.16-25-20.5-38.51a28.49,28.49,0,0,1-2.11-7.59,49,49,0,0,1,.33-8,45.79,45.79,0,0,0-1.32-14.28,11.23,11.23,0,0,0-1.37-3.47c-2.19-3.34-7.36-3.83-10.62-1.53a10.94,10.94,0,0,0-4.22,7.72c-.24,2.69,1.32,5.5,2.11,8Q217.37,624.81,221,636.44Z" transform="translate(-51.77 -47.02)" opacity="0.05"/><path d="M372.75,755.18c-3.92,2.39-8.8,2.53-13.36,2-.73-.09-1.6-.15-2.07.42-.68.82.12,2,.95,2.7a19.88,19.88,0,0,0,9.18,3.77,62.62,62.62,0,0,0,9,.6c8.19.14,16.42.27,24.53-.91a3.25,3.25,0,0,0,1.34-.39,2.54,2.54,0,0,0,1-1.54,6.13,6.13,0,0,0-2.14-5.84,18,18,0,0,0-5.72-3.07l-7.12-2.77c-1.67-.65-4.36-2.38-6.17-2.24C378.81,748.13,375.58,753.52,372.75,755.18Z" transform="translate(-51.77 -47.02)" fill="#3f3d56"/><path d="M390.64,771.91a17.49,17.49,0,0,1-11.95,4.46c-1.12,0-2.68.21-2.68,1.33a1.76,1.76,0,0,0,.32.93,11,11,0,0,0,6.18,4.84,22,22,0,0,0,7.46.47l7.3-.38c1.38-.07,2.77-.14,4.14-.31s2.86-.45,4.29-.67a57.22,57.22,0,0,1,10.63-.5,3.09,3.09,0,0,0,2.62-.7c.65-.82.27-2,.06-3-.44-2.11,0-4.33-.41-6.46-.7-3.72-3.9-6.58-7.45-7.93-3.28-1.25-9.1-2.68-12.21-.6C395.6,765.6,393.59,769.24,390.64,771.91Z" transform="translate(-51.77 -47.02)" fill="#3f3d56"/><path d="M376.22,677.45c-3,3.95-6,8.51-5.3,13.39.4,2.63,1.87,4.95,2.95,7.39a52.09,52.09,0,0,1,3,10.38c1.11,5.17,2.22,10.35,2.91,15.59a97.36,97.36,0,0,1,.65,17.9c-.09,1.44-.25,3-1.25,4-.4.4-.92.73-1.09,1.27a2.15,2.15,0,0,0,.23,1.5,16.61,16.61,0,0,0,8.9,8.19,34.09,34.09,0,0,0,12.1,2.26,3.4,3.4,0,0,0,1.62-.21,3.12,3.12,0,0,0,1.25-1.43c3-5.7,1.33-12.58,1.38-19,0-5.37,1.3-10.69,1.07-16.06-.19-4.3-1.34-8.5-1.76-12.79-.69-7,.6-14.1,1.89-21.05,1-5.32,2-10.65,3.25-15.92a30.36,30.36,0,0,1,3.44-9.24c1.4-2.21,3.3-4.06,4.9-6.14a27.87,27.87,0,0,0,5.48-20.37c-.1-.72-10.3,2.58-11.18,3a34.66,34.66,0,0,0-10,6.41c-2.36,2.24-4.21,5.24-6.28,7.76Q390,659.61,385.76,665,380.92,671.18,376.22,677.45Z" transform="translate(-51.77 -47.02)" fill="#464353"/><path d="M376.22,677.45c-3,3.95-6,8.51-5.3,13.39.4,2.63,1.87,4.95,2.95,7.39a52.09,52.09,0,0,1,3,10.38c1.11,5.17,2.22,10.35,2.91,15.59a97.36,97.36,0,0,1,.65,17.9c-.09,1.44-.25,3-1.25,4-.4.4-.92.73-1.09,1.27a2.15,2.15,0,0,0,.23,1.5,16.61,16.61,0,0,0,8.9,8.19,34.09,34.09,0,0,0,12.1,2.26,3.4,3.4,0,0,0,1.62-.21,3.12,3.12,0,0,0,1.25-1.43c3-5.7,1.33-12.58,1.38-19,0-5.37,1.3-10.69,1.07-16.06-.19-4.3-1.34-8.5-1.76-12.79-.69-7,.6-14.1,1.89-21.05,1-5.32,2-10.65,3.25-15.92a30.36,30.36,0,0,1,3.44-9.24c1.4-2.21,3.3-4.06,4.9-6.14a27.87,27.87,0,0,0,5.48-20.37c-.1-.72-10.3,2.58-11.18,3a34.66,34.66,0,0,0-10,6.41c-2.36,2.24-4.21,5.24-6.28,7.76Q390,659.61,385.76,665,380.92,671.18,376.22,677.45Z" transform="translate(-51.77 -47.02)" opacity="0.05"/><path d="M397.88,647.07c.64,3.06,3.61,5.4,3.69,8.53.07,2.5-1.71,4.6-3,6.75a45.27,45.27,0,0,0-3.06,6.94,105.82,105.82,0,0,1-9,17.87c-1.71,2.72-3.63,5.67-3.23,8.86a13.08,13.08,0,0,0,1.55,4.23l5.14,10.21a29.3,29.3,0,0,1,2.62,6.45c.45,1.94.49,4,.75,5.92.81,6.26,3.74,12.56,2,18.63-.15.52-.7,1.15-1.11.79,1.7,3.17,3.07,6.37,2.93,10-.06,1.89-.64,3.85.06,5.61A6.12,6.12,0,0,1,398,760c0,.51-.24,1-.29,1.51-.14,1.44,1.18,2.65,2.56,3.11s2.88.43,4.27.84c2.68.8,4.58,3.1,6.88,4.7a14.45,14.45,0,0,0,7.89,2.57,2,2,0,0,0,1.16-.23,1.9,1.9,0,0,0,.65-1.41,7.84,7.84,0,0,0-2.83-6.81,3.15,3.15,0,0,1-1-1.1,2.67,2.67,0,0,1-.1-1.23,91.21,91.21,0,0,0-.3-16.85,26,26,0,0,1-.26-5.36,21.91,21.91,0,0,0,.43-4.47,22.82,22.82,0,0,0-1.37-4.27c-.79-2.55-.57-5.29-.65-8a70.12,70.12,0,0,0-2.26-13.69,10.39,10.39,0,0,0-2.13-4.94c-1.07-1.12-2.8-2.18-2.39-3.67a4.24,4.24,0,0,1,1-1.46,5.86,5.86,0,0,0,1.23-4.47,2,2,0,0,0,2.3-1.08,36,36,0,0,0,18.08-20.56,6.68,6.68,0,0,1,.81-1.83c.77-1.08,2.12-1.55,3.31-2.15,3.74-1.88,6.32-5.41,8.69-8.86a20.61,20.61,0,0,0,3.36-6.43,21.18,21.18,0,0,0,.46-4.64l.21-8a4.59,4.59,0,0,0-.15-1.57,4,4,0,0,0-.87-1.28,15.53,15.53,0,0,0-8.54-4.6c-2.19-.39-4.43-.32-6.65-.5-4.3-.36-8.55-1.69-12.86-1.38-6.76.5-12.78,5.19-16,11.17C401.46,645.2,400.28,647,397.88,647.07Z" transform="translate(-51.77 -47.02)" fill="#464353"/><path d="M173.49,769.54a10.89,10.89,0,0,0,4.6.55c.11-1.27,1.82-1.55,3.09-1.49A3.55,3.55,0,0,1,183,769c.32.2.56.5.87.71a3.74,3.74,0,0,0,1.8.46l6.62.56c2.95.25,6,.48,8.78-.58a2.87,2.87,0,0,0,1.41-.94c.75-1.07,0-2.61-1-3.39s-2.37-1.14-3.41-1.94c-2.3-1.75-2.61-5-3.83-7.64a22.05,22.05,0,0,0-3.16-4.59,17.57,17.57,0,0,0-3.13-3.2c-2.65-1.92-5.71-1.88-8.82-2.15-2.2-.2-4.27-.33-5.85,1.62-1.95,2.42-1.17,7.3-1.05,10.19A72.94,72.94,0,0,0,173.49,769.54Z" transform="translate(-51.77 -47.02)" fill="#514e7f"/><path d="M173.49,769.54a10.89,10.89,0,0,0,4.6.55c.11-1.27,1.82-1.55,3.09-1.49A3.55,3.55,0,0,1,183,769c.32.2.56.5.87.71a3.74,3.74,0,0,0,1.8.46l6.62.56c2.95.25,6,.48,8.78-.58a2.87,2.87,0,0,0,1.41-.94c.75-1.07,0-2.61-1-3.39s-2.37-1.14-3.41-1.94c-2.3-1.75-2.61-5-3.83-7.64a22.05,22.05,0,0,0-3.16-4.59,17.57,17.57,0,0,0-3.13-3.2c-2.65-1.92-5.71-1.88-8.82-2.15-2.2-.2-4.27-.33-5.85,1.62-1.95,2.42-1.17,7.3-1.05,10.19A72.94,72.94,0,0,0,173.49,769.54Z" transform="translate(-51.77 -47.02)" opacity="0.05"/><path d="M176.17,640.86c-2,.65-2.9,3.17-2.53,5.27s1.63,3.9,2.67,5.75c2.94,5.27,4.22,11.3,6.69,16.8,1.85,4.11,4.35,7.91,6.18,12s3,8.77,1.85,13.14c-.54,2.13-1.58,4.09-2.28,6.17a35,35,0,0,0-1.34,7,132.68,132.68,0,0,0-.48,24.16,7.34,7.34,0,0,0,.61,2.86c.41.8,1.13,1.64.78,2.47-.14.33-.44.57-.59.9-.42.92.43,1.88,1.2,2.53a2.07,2.07,0,0,1-1.3,1,3.07,3.07,0,0,1,1.31,3.42c-.69.1-.73,1.15-.29,1.7s1.11.9,1.42,1.52a2.13,2.13,0,0,1-1.17,2.68,5.48,5.48,0,0,1-3.19.24,34.58,34.58,0,0,1-5.34-1.17,4.8,4.8,0,0,1-1.64-.75,4.87,4.87,0,0,1-1.47-3.24,58.55,58.55,0,0,1-.37-10c.29-16.16,0-32.34-.7-48.49-.29-6.5-2.24-12.84-4.76-18.84a96.67,96.67,0,0,0-4.64-9c-3.62-6.66-6.84-14-6-21.55.09-.81.39-1.79,1.19-1.92a1.73,1.73,0,0,1,.92.15,42.53,42.53,0,0,1,4.85,2.68A18.38,18.38,0,0,0,176.17,640.86Z" transform="translate(-51.77 -47.02)" fill="#464353"/><path d="M176.17,640.86c-2,.65-2.9,3.17-2.53,5.27s1.63,3.9,2.67,5.75c2.94,5.27,4.22,11.3,6.69,16.8,1.85,4.11,4.35,7.91,6.18,12s3,8.77,1.85,13.14c-.54,2.13-1.58,4.09-2.28,6.17a35,35,0,0,0-1.34,7,132.68,132.68,0,0,0-.48,24.16,7.34,7.34,0,0,0,.61,2.86c.41.8,1.13,1.64.78,2.47-.14.33-.44.57-.59.9-.42.92.43,1.88,1.2,2.53a2.07,2.07,0,0,1-1.3,1,3.07,3.07,0,0,1,1.31,3.42c-.69.1-.73,1.15-.29,1.7s1.11.9,1.42,1.52a2.13,2.13,0,0,1-1.17,2.68,5.48,5.48,0,0,1-3.19.24,34.58,34.58,0,0,1-5.34-1.17,4.8,4.8,0,0,1-1.64-.75,4.87,4.87,0,0,1-1.47-3.24,58.55,58.55,0,0,1-.37-10c.29-16.16,0-32.34-.7-48.49-.29-6.5-2.24-12.84-4.76-18.84a96.67,96.67,0,0,0-4.64-9c-3.62-6.66-6.84-14-6-21.55.09-.81.39-1.79,1.19-1.92a1.73,1.73,0,0,1,.92.15,42.53,42.53,0,0,1,4.85,2.68A18.38,18.38,0,0,0,176.17,640.86Z" transform="translate(-51.77 -47.02)" opacity="0.05"/><path d="M148.85,621.21a7.11,7.11,0,0,0-3.52-1.11A7.14,7.14,0,0,0,141.5,622a40.17,40.17,0,0,0-3.8,3.34,20.33,20.33,0,0,0-4.54,20.11c1.21,3.59,3.4,6.76,5.56,9.86l4.4,6.32c6.71,9.64,13.43,19.28,20.46,28.69a1.08,1.08,0,0,0,.76,1c.26.07.57.06.73.27a.78.78,0,0,1,.09.43,6.53,6.53,0,0,1-.39,2,.93.93,0,0,0-.08.69c.22.53,1.19.23,1.49.73.21.32,0,.75-.32,1s-.6.59-.55,1,.72.79.69,1.29c0,.28-.24.49-.41.71a1.81,1.81,0,0,0,.22,2.31c.46,4.6-2,8.95-2.53,13.55-.79,7.23,2.48,14.29,2.88,21.55a5.77,5.77,0,0,0,.45,2.38c.68,1.25,2.42,2,2.36,3.43a13.09,13.09,0,0,1-.49,1.73,13.91,13.91,0,0,0,.26,2.47c0,.83-.7,1.82-1.47,1.5q.87,2.88,1.54,5.81l15.4,1.27a13.83,13.83,0,0,0-.14-4.16c-.32-1.48-1-2.87-1.34-4.35a5.13,5.13,0,0,1,.61-4.35,1.7,1.7,0,0,1-1.7-1.4,6.86,6.86,0,0,1,0-2.39c.41-4-1.28-8-1.23-12,.05-3.18,1.16-6.23,1.73-9.35,1.2-6.68-.05-13.93,2.92-20,1.8-3.68,4.29-7.76,2.27-11.32-1-1.76-2.75-3-3.89-4.62a18.77,18.77,0,0,1-2.09-5c-2.38-7.36-6.21-14.15-9.58-21.12a22.23,22.23,0,0,1-2.06-5.55,28.21,28.21,0,0,1-.25-5.12,78.48,78.48,0,0,0-.57-9.2,8.61,8.61,0,0,0-1.12-3.81,8.53,8.53,0,0,0-2.4-2.19C160.32,626.07,154.3,624.08,148.85,621.21Z" transform="translate(-51.77 -47.02)" fill="#464353"/><path d="M167.3,775.18a10.89,10.89,0,0,0,4.6.55c.12-1.27,1.82-1.55,3.09-1.49a3.55,3.55,0,0,1,1.77.41c.32.2.56.5.88.71a3.68,3.68,0,0,0,1.8.46l6.61.56c2.95.25,6,.48,8.79-.58a2.89,2.89,0,0,0,1.4-.94c.75-1.07,0-2.61-1-3.39s-2.37-1.14-3.42-1.94c-2.29-1.75-2.61-5-3.83-7.64a22.05,22.05,0,0,0-3.16-4.59,17.52,17.52,0,0,0-3.12-3.2c-2.66-1.92-5.71-1.88-8.82-2.15-2.21-.2-4.28-.33-5.85,1.62-2,2.42-1.18,7.3-1.06,10.19A74.3,74.3,0,0,0,167.3,775.18Z" transform="translate(-51.77 -47.02)" fill="#514e7f"/><rect x="199.03" y="612.17" width="78.03" height="78.03" fill="#fff"/><path d="M312.87,695.59c0,8.9-4.17,14.5-10.76,14.5-3.37,0-5.94-1.8-6.39-4.47h-.48a7,7,0,0,1-6.93,4.31c-5.86,0-9.77-4.7-9.77-11.69,0-6.71,3.94-11.38,9.69-11.38a7,7,0,0,1,6.57,3.93h.48v-3.34h4.79V703a2.78,2.78,0,0,0,3,3.1c3.32,0,5.44-4,5.44-10.3,0-10-7.5-16.69-18.57-16.69s-18.75,8-18.75,19.28c0,11.55,7.72,18.93,19.74,18.93a36.21,36.21,0,0,0,6.53-.56,1.9,1.9,0,0,1,.8,3.71,33.24,33.24,0,0,1-7.52.82c-14.61,0-24-9-24-23,0-13.68,9.55-23.07,23.46-23.07C303.6,675.14,312.87,683.49,312.87,695.59Zm-29.15,2.76c0,4.44,2.08,7.13,5.48,7.13,3.58,0,5.84-2.76,5.84-7.13s-2.26-7.07-5.78-7.07S283.72,693.9,283.72,698.35Z" transform="translate(-51.77 -47.02)" fill="#74adff"/><circle cx="183.77" cy="532.28" r="15.25" fill="#a1616a"/><path d="M221.16,583.82c-2.19,1.89-5.32,2-8.19,2.32a51.19,51.19,0,0,0-17.62,5.1,6.29,6.29,0,0,0-2,1.4,5.77,5.77,0,0,0-1,2.18,14.42,14.42,0,0,0-.58,5.3,15.28,15.28,0,0,0,1.47,5,26.84,26.84,0,0,0,9.46,10.78A6.87,6.87,0,0,0,205,617c2,.42,3.95-.75,5.92-1.27a9.7,9.7,0,0,1,5.47.18c1.66.55,3.41,1.56,5,.89a5.22,5.22,0,0,0,2.28-2.59,87.89,87.89,0,0,0,4.16-9.11,34.52,34.52,0,0,1,1.51-3.54c1.77-3.37,4.83-6,6.35-9.46a2.08,2.08,0,0,0,.14-1.78,2.47,2.47,0,0,0-1.12-.86,26.73,26.73,0,0,1-6.09-4.78c-1-1-2.85-3.56-4.29-3.79C222.75,580.68,222.26,582.88,221.16,583.82Z" transform="translate(-51.77 -47.02)" fill="#a1616a"/><path d="M221.52,614.81c-1.77.85-3.85.47-5.77.07-4.94-1-9.93-2.08-14.5-4.22a7.76,7.76,0,0,1-3.56-2.73,8.73,8.73,0,0,1-1-3.42l-.84-5.67c-.29-2,.22-3.82.26-5.82a1.7,1.7,0,0,0-.33-1.27,1.37,1.37,0,0,0-1-.31c-2.29,0-3.67,2.43-5.28,4.06a9.75,9.75,0,0,1-3.24,2.18c-1.47.6-3.28,1-3.87,2.49-.25.61-.22,1.31-.47,1.92-1,2.44-5.4,1.63-6.51,4-.32.68-.3,1.54-.83,2.08s-1.5.52-2.3.66c-3.18.52-4.73,4.2-7.45,5.93-2.29,1.46-5.24,1.43-7.7,2.57a29.48,29.48,0,0,1-4,2,18.9,18.9,0,0,1-4.64.23,1.25,1.25,0,0,0-.93.3,1.28,1.28,0,0,0-.15,1,28.07,28.07,0,0,0,17.35,21.73,6.12,6.12,0,0,1,1.48.71c1.39,1,1.63,3.27,3.2,4a3.31,3.31,0,0,0,3.34-.72,29.05,29.05,0,0,0,2.41-2.66,9.6,9.6,0,0,1,5.37-2.82c1.89-.3,4-.08,5.53-1.24a17,17,0,0,0,1.74-1.86,10.91,10.91,0,0,1,4-2.36A40,40,0,0,1,204.33,633c4-.23,8.15.14,11.94-1.17a7,7,0,0,0,2.66-1.5,8,8,0,0,0,1.78-3.09A23.59,23.59,0,0,0,221.52,614.81Z" transform="translate(-51.77 -47.02)" fill="#514e7f"/><path d="M201.86,592.34c1.13-.1,2.26,0,3.39,0,1.33,0,2.64-.32,4-.33a9.86,9.86,0,0,1,9.3,7.08,1.8,1.8,0,0,1,.06,1,.71.71,0,0,1-.77.52,16.9,16.9,0,0,0-1.71-3.43,9.71,9.71,0,0,0-5.12-3.56,13.29,13.29,0,0,0-6.3-.23c-.86.16-1.71.39-2.56.63L198,595.14c-.75.2-1.5.41-2.23.68-.56.2-1.53,1-2.08,1-.75,0-.14-.65.19-1.09a5.34,5.34,0,0,1,2.66-1.93A22.38,22.38,0,0,1,201.86,592.34Z" transform="translate(-51.77 -47.02)" fill="#514e7f"/><path d="M212.14,638.15c1,3.16,2,6.32,3.21,9.4a79.54,79.54,0,0,0,8.32,15.16,109.23,109.23,0,0,0,6.87,9c3.06,3.61,6.48,7.24,7.56,11.85.63,2.66.42,5.45.68,8.17s1.15,5.61,3.35,7.24a12.45,12.45,0,0,0,5.52,1.82c1.38.22,3.11.29,3.83-.91a3.41,3.41,0,0,0,.38-1.58l.33-4c.08-.86.38-2,1.24-2s1.3,1.11,2,1.62a2.17,2.17,0,0,0,3-1,5.07,5.07,0,0,0,.08-3.5A16.62,16.62,0,0,0,250,678.84a25.64,25.64,0,0,1-4.16-2.17,14,14,0,0,1-3.27-4.12c-7.57-12.45-15.17-25-20.5-38.51a28.49,28.49,0,0,1-2.11-7.59,49,49,0,0,1,.33-8A45.79,45.79,0,0,0,219,604.15a11.23,11.23,0,0,0-1.37-3.47c-2.19-3.34-7.36-3.83-10.62-1.53a10.94,10.94,0,0,0-4.22,7.72c-.24,2.69,1.32,5.5,2.11,8Q208.52,626.52,212.14,638.15Z" transform="translate(-51.77 -47.02)" fill="#a1616a"/><path d="M257.73,568.52c.12-1.27-1-2.42-2.31-3.23a32.25,32.25,0,0,1-3.92-2.4c-1.16-1-1.79-2.31-2.95-3.31a13,13,0,0,0-4.4-2.19,33.4,33.4,0,0,0-10.52-1.89,18.53,18.53,0,0,0-10.07,2.66,6,6,0,0,0-1.71,1.59,7,7,0,0,0-.83,2.53,50,50,0,0,1-2.63,8c-1.13,2.88-2.34,5.86-5,8.08-2.85,2.38-7.22,3.75-9.1,6.62a2.15,2.15,0,0,0-.41,1.85c.27.72,1.14,1.21,1.93,1.67,4.63,2.66,8.62,6.1,10.68,10.22a11.85,11.85,0,0,1-.94,12.75c-1.07,1.4-2.55,3.06-1.5,4.47,1.59,2.14,7.08.92,8.34,3.18a4.52,4.52,0,0,1,.17,2.34c0,2.37,2.29,4.49,5.07,5.58a28.27,28.27,0,0,0,9.12,1.5,7.88,7.88,0,0,0,.23-5.9,2.36,2.36,0,0,1-.23-1.34,3.22,3.22,0,0,1,1-1.29c3.35-3.16,2.64-7.81.63-11.56s-5.13-7.19-6.29-11.14c-.58-2-.59-4.17,1-5.8a20.2,20.2,0,0,1,2.87-2.1,10.91,10.91,0,0,0,4-5c.93-2.6.79-5.73,3.53-7.45s6.29-1.16,9.18-2.27C255,573.76,257.55,570.37,257.73,568.52Z" transform="translate(-51.77 -47.02)" fill="#464353"/><circle cx="291.47" cy="526.89" r="16.63" fill="#fbbebe"/><path d="M358.21,573.21a21.56,21.56,0,0,0,13.8,9.65l-1.25,4.54c-2.16,7.82-4.6,16.1-10.64,21.52a10.06,10.06,0,0,0-1.69-7.78,29.46,29.46,0,0,0-5.64-5.9l-9.57-8.33a2.61,2.61,0,0,1-.72-.8,2.44,2.44,0,0,1,0-1.82c1.22-3.8,4.7-6.17,7.52-8.73a26.52,26.52,0,0,0,3.79-4.41C355.77,568.45,357,571.18,358.21,573.21Z" transform="translate(-51.77 -47.02)" fill="#fbbebe"/><path d="M360.33,594.72a9,9,0,0,1-.49,3.67,2.58,2.58,0,0,1-3,1.54c.35-.79-.57-1.69-1.43-1.59a2.69,2.69,0,0,0-1.9,1.61,6,6,0,0,0-.55,3.72c.27,1.58,1.18,3.09.94,4.67-.19,1.31-1.16,2.62-.64,3.85a6.18,6.18,0,0,0,1.24,1.48,4.2,4.2,0,0,1-.45,5.76l13,.25c-.48,2.17.5,4.39,1.61,6.31a39.73,39.73,0,0,0,29.62,19.34,2.58,2.58,0,0,0-.62,3.94c1.06,1.05,2.84.92,4.16.24a31.58,31.58,0,0,0,3.57-2.67,10.91,10.91,0,0,1,7.32-2c1.63.15,3.2.67,4.83.76,4.8.26,8.93-3.2,13.52-4.61,3.37-1,7.18-1,10-3.14,1.22-.9,2.22-2.38,1.86-3.86a6.29,6.29,0,0,0-1.4-2.26c-1.63-2.11-2.58-4.64-3.75-7a41.79,41.79,0,0,0-9.37-12.54,82.71,82.71,0,0,0-9.28-7.05,15.71,15.71,0,0,0-2.52-1.51,25.81,25.81,0,0,1-3.44-1.4c-1.53-1-2.4-2.65-3.57-4-2.57-3-6.52-4.37-9.69-6.73-2.12-1.58-4-3.66-6.53-4.43-1.23-.37-2.55-.4-3.78-.77-2.8-.85-4.84-3.34-7.59-4.34-2.17-.8-4.57-.59-6.87-.88a16,16,0,0,1-7.06-2.67,8.49,8.49,0,0,0-2.28-1.34c-3.47-1-3.75,5.42-4.08,7.66C361.19,588,360.33,591.35,360.33,594.72Z" transform="translate(-51.77 -47.02)" fill="#3f3d56"/><path d="M363.72,616.43c.58,6.31-4.19,12.43-2.8,18.62.3,1.32.86,2.57,1.07,3.9.58,3.67-1.61,7.14-3.7,10.21l-18,26.34a16,16,0,0,1-2.56,3.17c-3.44,3.05-8.58,2.73-13.09,3.65a22.41,22.41,0,0,0-8.77,3.88.57.57,0,0,0-.11.78,7.52,7.52,0,0,0,6.52,3.06c.47.62,0,1.54-.65,2-1,.67-2.29.85-2.48,2.48a2.78,2.78,0,0,0,.32,1.65,5.12,5.12,0,0,0,3.15,2.18c6.21,1.9,12.92-1.44,17.57-6s8-10.27,12.56-14.9c2.53-2.56,5.4-4.75,8-7.23,5.19-5,9.23-11,13.13-17a18.92,18.92,0,0,0,2.84-5.79c.48-2.05.26-4.23.82-6.26.72-2.67,2.67-4.8,4.3-7,3.19-4.39,5.31-9.75,4.89-15.16s-3.77-10.73-8.86-12.57a7.93,7.93,0,0,0-5-.3c-2.09.64-3.63,2.37-5.06,4l-3.41,3.94a9.36,9.36,0,0,0-2,3,3.15,3.15,0,0,0,.7,3.35" transform="translate(-51.77 -47.02)" fill="#fbbebe"/><path d="M372.8,590.5c-2.36.14-5,.37-6.63,2a9.26,9.26,0,0,0-1.66,2.62c-1.62,3.29-3.2,6.74-3.31,10.41-.1,2.93.75,5.8,1.2,8.7.37,2.41-.57,4.87-.75,7.31a49.91,49.91,0,0,0,9.44-3.63,31.56,31.56,0,0,1,5.53-2.87c2.81-.94,7.55.67,10.21,2,.15-1.88-1.26-5.15-1.11-7a7.67,7.67,0,0,1,.42-2.33,13.89,13.89,0,0,1,1.41-2.25,9.21,9.21,0,0,0-.83-10.81c-2.37-2.67-6.09-3.67-9.64-4.09a42.16,42.16,0,0,0-6.74-.23" transform="translate(-51.77 -47.02)" fill="#3f3d56"/><path d="M321.33,557.19l-.38-3.13c2.63.67,5.12-1.55,6.8-3.86s3.23-5,5.78-6c3.11-1.17,6.4.7,9.37,2.24A29.33,29.33,0,0,0,353.65,550a7.61,7.61,0,0,1,1.78.29c1.93.69,2.85,3.11,3.13,5.31s.2,4.54,1.15,6.5c.73,1.48,2,2.59,2.72,4,2,3.93.07,9.31,2.22,13.17l-5.33-4.88c-.49-.45-1.18-.92-1.71-.54s-.46,1-.64,1.47a2.79,2.79,0,0,1-3.79,1.38,10.39,10.39,0,0,1-3.39-3.1,20.72,20.72,0,0,0-8.46-6.41,10.81,10.81,0,0,0-8.95.53c-2.49,1.41-4.31,4.68-7.36,4.79-4.18.16-5.92-7.62-7.85-10.69a3.79,3.79,0,0,0,1.1-4.72C318.56,557,321.27,556.71,321.33,557.19Z" transform="translate(-51.77 -47.02)" fill="#464353"/><path d="M770.23,840.52c-.81-3.43-1.3-6.43-1.3-6.43a13.32,13.32,0,0,0-1.49-6.53v-.94h0v-6.9a22.81,22.81,0,0,1,1.74-3.61c1.24-2.16,0-10.1,0-10.1s-4.6-11.19-3.49-18.29-9.44-31.53-9.44-31.53a31.15,31.15,0,0,1,1-7,5.05,5.05,0,0,0,.13-1.46,1.09,1.09,0,0,0,0-.18v.06c-.16-4.68-3.86-13.46-3.86-13.46l.5-16.72s2.36-9.87-1.49-23.11c-1.35-4.62-2.21-8.31-2.76-11.17-.06-.32-.12-.63-.17-.93,7.93-1.21,14-2.22,14-2.22s-4.6-19.25-7.71-22.62-5.59-13.95-5.59-13.95-1.62-13.6,1-17.57,3-10.83,3-10.83,6-4.33,6.71-6.26a31.7,31.7,0,0,0,2-8.54c0-2.29-.75-4.33-.5-5.54s-1.74-5.77-.74-7.94a5.81,5.81,0,0,0,.39-2.09.13.13,0,0,0,0-.06v0a29.73,29.73,0,0,0-.53-5.65,16,16,0,0,0-5.9-3.16l-.13-.51-.34-1.35a4.56,4.56,0,0,0-.59-.35v-.5l0-2,.93-4.4c1.84-7.63-8.36-8.77-8.36-8.77a5.38,5.38,0,0,0-2.89-2.54c-2-.72-.34,11.5.62,12.28.72.58,3,4.42,4,6.3h0l.18.31a4.06,4.06,0,0,0-.47.49l.39,2.65.06.41a10.89,10.89,0,0,0-1.63,2.77s1.87,2.05,1.49,4.34a13.6,13.6,0,0,0,.62,5.29c-.11-.13-1.42-1.55-2.73-1.2s-5,1.44-5,1.44-2.74.48-2.49,1.08-1.86,3.25-1.86,3.25l-7.35-7c-.08-.21-.15-.42-.22-.63a16.8,16.8,0,0,1-.63-3,16.33,16.33,0,0,0,2.34-.75,5.07,5.07,0,0,0,2-1.3,7.94,7.94,0,0,0,1.18-3.17c.58-2.14,1.83-4.05,2.73-6.08A19.78,19.78,0,0,0,739,562a7.22,7.22,0,0,0-1.12-3.2c-1.2-1.65-3.38-2.32-5-3.64s-2.6-3.32-4.45-4.31a8.77,8.77,0,0,0-5.58-.48,29.82,29.82,0,0,0-10.41,3.78c-1.08.64-2.25,1.37-3.49,1.15a4.71,4.71,0,0,1-2.51-1.84.49.49,0,0,1,0-.11l-.09-.09a13.17,13.17,0,0,0-1.14,5.5c0,.29,0,.58,0,.88,0,.1,0,.2,0,.3a2.26,2.26,0,0,1,0,.26h0a1.76,1.76,0,0,1-.06.39,2.83,2.83,0,0,1-.68,1,4.43,4.43,0,0,0-.6.82c0-.1.06-.2.1-.3a4.34,4.34,0,0,0-.77,2.31,2.3,2.3,0,0,0,.56,1.66,8,8,0,0,0,1.19,1,14,14,0,0,0-.21,2.44,14.22,14.22,0,0,0,6.92,12.13l.25.63a17.49,17.49,0,0,1,1.33,8c0,.2,0,.39-.09.59l-.26.3h0s-12.14.12-15-2.47-7.21,6.32-7.21,6.32-4.35.85-5.22,0-6-.12-6-.12a11,11,0,0,0-7.58-2.76,22.27,22.27,0,0,0-5.57-3.1h0l-.14-.05h0a6.22,6.22,0,0,0-2.74-.34s-6-4.94-7.7-7.58-10-12.47-10.07-12.52l0-.47-.1-1.43a5.58,5.58,0,0,1-.74.07c0-.15-.1-.31-.17-.5a27,27,0,0,0-1.76-4s0-1.8.53-2.25-.22-7.07-.22-7.07-5.38-12.57-10.19-3.19c0,0-9.11,6.07-1.47,13.15,0,0,3,1.47,3.48,2.64.29.76,1.32,2.89,2,4.3l.31.63-.09.07.12,1.18,0,.46c-1.44.81-2.41,1.62-2.18,2.24a13.16,13.16,0,0,1,.87,3.25s10.57,13.23,11.94,18.89c0,0,28.34,16.84,37.66,18.05l-1.61,8.42a66.59,66.59,0,0,0-.37,6.86c.12,1.8-1.12,10-1.12,10s-1.62,12-3,13.71-1.12,8.91-1.12,8.91a60.09,60.09,0,0,1-1.86,10.22c-1.37,4.58-.37,10.23-.37,10.23s-4.73,10.83,6.59,3.49c0,0,5.55-.34,12-.56,0,.21,0,.42,0,.64,0,.82,0,1.71,0,2.65-.08,6.2-.12,14.75.16,21.22.5,11.43,4,34,4,34v11.36a15.89,15.89,0,0,0-.32,3.25,21.06,21.06,0,0,0,3.06,11.38l.87,7.58s2,5,2.08,8a3.93,3.93,0,0,1-.09.72,5.38,5.38,0,0,0-.1,1.16c-.11,3.44,2,11.68,2,11.68s.13,8.3,1.37,8.78c1.06.41-1.42,4.79-2.16,6a2,2,0,0,1-.05-.24c-.09.16-.15.25-.15.25a5.83,5.83,0,0,0-.39,2.1,3,3,0,0,0,1.38,2.92c2.36,1.45,3.63,2.65,1.63,3.13a19.86,19.86,0,0,0-2.19.46c0-.09-.08-.19-.11-.28A1.34,1.34,0,0,0,705,824a6.15,6.15,0,0,0,.75,2.81,30,30,0,0,0,3.36,6.14l1-.11a4.72,4.72,0,0,1-.56,1,3.87,3.87,0,0,1-1.4,1.24,4.48,4.48,0,0,1-1.7.59,4.74,4.74,0,0,0-3.52,1.71c-1.24,1.6-2,3.79.43,5.71l8.89,3.06s15.29,2,14.48-1.44-1.3-6.43-1.3-6.43a13.57,13.57,0,0,0-1.25-6.09,6,6,0,0,0-.54-.9l.54-.06s1.12-7.58,2.61-9c.35-.33.43-.59.34-.79.16-.41-.23-.65-.73-.79l-.11.3a7.5,7.5,0,0,0-1.48-.16s-.5-4,1.11-5.42a1.53,1.53,0,0,0,.32-1.18,6.8,6.8,0,0,0-.17-1.62l-.06.1a57.75,57.75,0,0,0-3.57-9.33s-.12-3.61.87-5.06-.12-19.61-.12-19.61.37-8.78-.75-12.87,1.37-8.91,1.37-8.91l0-.26,0-.06s-.06-.54-.15-1.39l0,.09c-.25-2.33-.72-6.54-1.07-8.48-.5-2.77.12-16,.12-16l2.24-5.65,4,9.74,4.22,13a11.05,11.05,0,0,1,2.15,5.52c0,.14,0,.28,0,.41a6.53,6.53,0,0,0,0,.87,7.76,7.76,0,0,0,1.29,4.63s1.12,6.14,2.86,7.7,1.74,4.57,1.74,4.57,2.11,8.91,3.11,10.47c.84,1.32.88,4.94.87,6h0v.33s.29,3.18.28,5.86c0,.32,0,.65,0,1v-.07a9.32,9.32,0,0,1-.26,2.16l0,.13c0-.15,0-.31,0-.45a22.26,22.26,0,0,0-.64,5.55c-.06,3.2.43,7,2.37,9.21,3.36,3.85,5.47,3.37,5.47,3.37s-1.62,4.81-3.61,5.78a1.2,1.2,0,0,0-.21.13c0-.09,0-.19-.05-.28a2.35,2.35,0,0,0-.58,1.8,12.88,12.88,0,0,0,2.46,7.13,3.94,3.94,0,0,0,1.68,1l-.31.19a7,7,0,0,1-.69.33,3.26,3.26,0,0,1-1,.26,4.74,4.74,0,0,0-3.52,1.71c-1.24,1.6-2,3.79.43,5.71l8.89,3.06S771,844,770.23,840.52Z" transform="translate(-51.77 -47.02)" fill="url(#fe3366dc-1c26-4135-9415-0b0409d0ae5c)"/><path d="M711.83,846.2l-8.61-3.06c-2.37-1.92-1.61-4.11-.41-5.71a4.53,4.53,0,0,1,3.4-1.71,4.21,4.21,0,0,0,1.65-.59,3.9,3.9,0,0,0,1.36-1.24,6.33,6.33,0,0,0,1-3.33s9.45-2.76,12,0a7.06,7.06,0,0,1,1.15,1.68,14,14,0,0,1,1.2,6.09s.48,3,1.26,6.43S711.83,846.2,711.83,846.2Z" transform="translate(-51.77 -47.02)" fill="#2d293d"/><path d="M753.94,842l-8.6-3.06c-2.38-1.92-1.62-4.11-.42-5.7a4.52,4.52,0,0,1,3.41-1.72,3.11,3.11,0,0,0,1-.26,5.06,5.06,0,0,0,.66-.33c2.41-1.32,2.35-4.57,2.35-4.57s9.44-2.77,12,0a6.69,6.69,0,0,1,.9,1.23,13.74,13.74,0,0,1,1.45,6.54s.48,3,1.26,6.43S753.94,842,753.94,842Z" transform="translate(-51.77 -47.02)" fill="#2d293d"/><path d="M722.23,830.56a7.06,7.06,0,0,1,1.15,1.68h0l-14.16,1.64a6.33,6.33,0,0,0,1-3.33S719.65,827.8,722.23,830.56Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M765.25,827.55v2.65c-2.2,3.63-12.85,2.84-15.94,1a5.06,5.06,0,0,0,.66-.33c2.41-1.32,2.35-4.57,2.35-4.57s9.44-2.77,12,0A6.69,6.69,0,0,1,765.25,827.55Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M766.94,816.12a23.62,23.62,0,0,0-1.69,3.61v9.51c-2.4,4-14.92,2.65-16.6.48s-3.49-7.82-1.57-8.78,3.49-5.78,3.49-5.78-2,.48-5.29-3.37S743,799.4,743.6,797.35s0-8.9,0-8.9.12-4.81-.84-6.38-3-10.47-3-10.47,0-3-1.68-4.57-2.77-7.7-2.77-7.7a7.89,7.89,0,0,1-1.2-5.17c.36-3-2.05-6.26-2.05-6.26l-4.09-13-3.85-9.75-2.16,5.65s-.61,13.24-.12,16,1.2,10.1,1.2,10.1-2.41,4.82-1.32,8.91.72,12.87.72,12.87,1.08,18.17.12,19.62-.84,5-.84,5,4.93,10.59,3.36,12-1.08,5.42-1.08,5.42,3.37,0,1.93,1.44-2.53,9-2.53,9L708.83,833a30.8,30.8,0,0,1-3.26-6.14c-1.92-4.45.36-4,2.3-4.45s.71-1.68-1.58-3.13-1-4.69-1-4.69,3.49-5.9,2.29-6.38-1.33-8.78-1.33-8.78-2.4-9.87-1.8-12.51-1.93-9-1.93-9l-.84-7.58A20.84,20.84,0,0,1,699.08,756V744.29s-3.37-22.62-3.86-34c-.3-7.32-.22-17.31-.12-23.55.06-3.49.12-5.81.12-5.81l52-5.41a43.08,43.08,0,0,0,.95,7.72c.53,2.85,1.36,6.55,2.66,11.17,3.73,13.23,1.45,23.1,1.45,23.1l-.48,16.72s4.57,11.19,3.61,15a31.76,31.76,0,0,0-1,7s10.23,24.43,9.15,31.53S766.94,806,766.94,806,768.14,814,766.94,816.12Z" transform="translate(-51.77 -47.02)" fill="#464353"/><path d="M737.22,753.44,753,751.33S744.08,760.47,737.22,753.44Z" transform="translate(-51.77 -47.02)" opacity="0.05"/><path d="M750.75,735.87s.55,5.59-2.88,7.7C747.87,743.57,754,742.61,750.75,735.87Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M749.78,718.06s-13.22,10.89-18,10S749.78,718.06,749.78,718.06Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M717.6,758.55s-10,2.29-10.34,6.32S717.6,758.55,717.6,758.55Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M719.81,808.72s-14.19,2.65-10.16,4.46a68.8,68.8,0,0,0,10.65,3.24S724.87,816.66,719.81,808.72Z" transform="translate(-51.77 -47.02)" opacity="0.05"/><g opacity="0.05"><path d="M706.78,816a2.81,2.81,0,0,1-1.3-2.06l-.14.26s-1.33,3.24,1,4.69c.26.16.51.33.74.49.42-.08.88-.14,1.31-.25C710.29,818.69,709.07,817.48,706.78,816Z" transform="translate(-51.77 -47.02)"/><path d="M725.07,815.08c.39-.36.37-1.29.14-2.48a6.71,6.71,0,0,0-.81,3.49A2.67,2.67,0,0,1,725.07,815.08Z" transform="translate(-51.77 -47.02)"/><path d="M722.88,755.22a16.56,16.56,0,0,0-1,4.42,17.48,17.48,0,0,1,1.1-3S723,756.06,722.88,755.22Z" transform="translate(-51.77 -47.02)"/><path d="M755.39,748.9a5.72,5.72,0,0,0,.13-1.32c-.18.9-.3,1.74-.39,2.47C755.21,749.67,755.29,749.29,755.39,748.9Z" transform="translate(-51.77 -47.02)"/><path d="M722.54,798a7.57,7.57,0,0,0,.36-2.67,8.81,8.81,0,0,0-.69,3.37A3.24,3.24,0,0,1,722.54,798Z" transform="translate(-51.77 -47.02)"/><path d="M725.52,820.68a48.12,48.12,0,0,0-1.65,7.39l-14.55,1.69a30.14,30.14,0,0,1-3.26-6.14,10.72,10.72,0,0,1-.41-1.06c-.87.4-1.22,1.3-.07,4a29.79,29.79,0,0,0,3.26,6.13L723.38,831s1.09-7.58,2.53-9C726.62,821.23,726.17,820.87,725.52,820.68Z" transform="translate(-51.77 -47.02)"/><path d="M706.3,799.07s.12,8.31,1.32,8.79h0c.61-1.37,1-2.67.47-2.89-1.2-.48-1.32-8.78-1.32-8.78s-2.41-9.87-1.8-12.52-1.93-9-1.93-9l-.84-7.58a20.88,20.88,0,0,1-2.65-14.32V741.08s-3.37-22.62-3.85-34.05c-.31-7.32-.22-17.31-.12-23.55,0-1.12,0-2.12,0-3l-.41,0s-.06,2.31-.12,5.81c-.1,6.23-.19,16.23.12,23.55.48,11.43,3.85,34.05,3.85,34.05v11.67A20.81,20.81,0,0,0,701.73,770l.84,7.58s2.53,6.37,1.92,9S706.3,799.07,706.3,799.07Z" transform="translate(-51.77 -47.02)"/><path d="M749.13,826.51a14,14,0,0,1-2.3-5.72c-1.49,1.34.22,6.55,1.82,8.61s14.2,3.49,16.61-.49v-2.29C762,829.85,750.73,828.56,749.13,826.51Z" transform="translate(-51.77 -47.02)"/><path d="M767.42,812.91a24.05,24.05,0,0,0-1.68,3.61v1.69c.27-.62.66-1.44,1.2-2.41a7.29,7.29,0,0,0,.53-3Z" transform="translate(-51.77 -47.02)"/><path d="M749.87,814.81a23.17,23.17,0,0,0,1.19-2.86s-2,.48-5.3-3.37c-2.36-2.8-2.49-8.09-2.16-11.55-.6,2.05-1.57,10.59,1.68,14.44C747.41,814,749,814.65,749.87,814.81Z" transform="translate(-51.77 -47.02)"/><path d="M743.6,788.13a66.12,66.12,0,0,1,.24,7.13c.08-.47.17-.85.24-1.12.61-2,0-8.9,0-8.9s.12-4.82-.84-6.38-3-10.47-3-10.47,0-3-1.68-4.57-2.77-7.7-2.77-7.7a7.89,7.89,0,0,1-1.21-5.17c.37-3-2-6.26-2-6.26l-4.09-13L724.59,722l-2.17,5.65s0,.71-.07,1.83l1.76-4.59,3.85,9.74,4.09,13s2.4,3.25,2,6.25A7.91,7.91,0,0,0,735.3,759s1.08,6.13,2.76,7.7,1.69,4.57,1.69,4.57,2,8.9,3,10.47S743.6,788.13,743.6,788.13Z" transform="translate(-51.77 -47.02)"/></g><path d="M753.7,566.75l-.9,4.4.05,2,0,1.44-5,.52-.56-1h0c-1-1.88-3.2-5.71-3.9-6.3-.93-.78-2.58-13-.6-12.27a5.24,5.24,0,0,1,2.8,2.53S755.48,559.11,753.7,566.75Z" transform="translate(-51.77 -47.02)" fill="#ffcdd3"/><path d="M752.89,574.54l-5,.52-.56-1h0a4.42,4.42,0,0,1,5.54-.91Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M754.15,576.92l-6.61,1.54-.14-1-.38-2.65a4.55,4.55,0,0,1,6.41-.88l.33,1.35Z" transform="translate(-51.77 -47.02)" fill="#dce6f2"/><path d="M646.91,567.23l-7.06,3.8-.64-1.34c-.68-1.41-1.68-3.53-2-4.29-.42-1.17-3.37-2.65-3.37-2.65-7.4-7.07,1.41-13.14,1.41-13.14,4.67-9.39,9.87,3.18,9.87,3.18s.72,6.63.21,7.07-.51,2.26-.51,2.26a27.49,27.49,0,0,1,1.71,4C646.8,566.82,646.91,567.23,646.91,567.23Z" transform="translate(-51.77 -47.02)" fill="#ffcdd3"/><path d="M646.91,567.23l-7.06,3.8-.64-1.34c1-.83,4.53-3.7,5.69-3.57a8.28,8.28,0,0,0,1.68,0C646.8,566.82,646.91,567.23,646.91,567.23Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M647.63,569.37l-7.94,3.91-.16-1.71-.11-1.17s4.6-3.95,6-3.8a7.38,7.38,0,0,0,2.08,0l.09,1.43Z" transform="translate(-51.77 -47.02)" fill="#dce6f2"/><path d="M734.45,595.93s-34.63,3.91-28.16,1.81c4.51-1.47,6.3-4.33,6.68-7.51a18.29,18.29,0,0,0-1.29-8,34.77,34.77,0,0,0-3.1-6.26s26.47-14.56,21.18-1.32a20.76,20.76,0,0,0-1.5,6.27,17.68,17.68,0,0,0,.67,6.34A18.91,18.91,0,0,0,734.45,595.93Z" transform="translate(-51.77 -47.02)" fill="#ffcdd3"/><path d="M729.76,574.64a20.76,20.76,0,0,0-1.5,6.27c-2.5,2.09-5.23,2-8.74,2-2.7,0-5.69.66-7.84-.64a34.77,34.77,0,0,0-3.1-6.26S735.05,561.4,729.76,574.64Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><circle cx="667.28" cy="522.45" r="14.32" fill="#ffcdd3"/><path d="M734.45,595.93s-34.63,3.91-28.16,1.81c4.51-1.47,6.3-4.33,6.68-7.51,1.72-1.87,5.18-3.22,7.41-3.93a10.33,10.33,0,0,1,6.27-.1,8.36,8.36,0,0,1,2.28,1A18.91,18.91,0,0,0,734.45,595.93Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M754.15,576.92l-6.61,1.54-.14-1a5.84,5.84,0,0,1,6.36-2.18Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M647.63,569.37l-7.94,3.91-.16-1.71a58.44,58.44,0,0,1,8-3.54Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M748.15,683.19c-13.41,2.11-32.5,4.87-35.53,3.95-2.51-.77-10.53-.69-17.52-.45.06-3.49.12-5.81.12-5.81l52-5.41A43.08,43.08,0,0,0,748.15,683.19Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M761.52,680s-44.16,7.58-48.9,6.13-29.07.13-29.07.13c-10.95,7.33-6.37-3.49-6.37-3.49s-1-5.66.36-10.23a62.65,62.65,0,0,0,1.8-10.23s-.24-7.22,1.08-8.9,2.89-13.72,2.89-13.72,1.21-8.18,1.09-10,.36-6.85.36-6.85l1.56-8.43c-9-1.2-36.46-18.05-36.46-18.05-1.32-5.65-11.55-18.89-11.55-18.89a13.93,13.93,0,0,0-.84-3.25c-.72-1.92,10.11-5.77,10.11-5.77s8.06,9.87,9.74,12.51,7.46,7.58,7.46,7.58a5.83,5.83,0,0,1,2.65.35l.14,0h0a21.34,21.34,0,0,1,5.38,3.09,10.43,10.43,0,0,1,7.34,2.77s4.94-.72,5.78.12,5,0,5,0,4.22-8.9,7-6.32,14.51,2.47,14.51,2.47c1.57-2.08,5.37-3.57,7.76-4.34a10.33,10.33,0,0,1,6.27-.1,7.76,7.76,0,0,1,2.48,1.2l7.12,7s2-2.65,1.81-3.25,2.41-1.08,2.41-1.08,3.49-1.08,4.81-1.45,2.54,1.08,2.64,1.2a14.09,14.09,0,0,1-.6-5.29,6,6,0,0,0-1.44-4.33C750.09,570.3,759.6,579,759.6,579s1.08,5.65.12,7.82,1,6.74.72,7.94.48,3.25.48,5.53a32.9,32.9,0,0,1-1.92,8.55c-.73,1.92-6.5,6.25-6.5,6.25s-.36,6.86-2.89,10.83-1,17.57-1,17.57,2.4,10.59,5.41,14S761.52,680,761.52,680Z" transform="translate(-51.77 -47.02)" fill="#3f3d56"/><path d="M697.15,600.87s-1.32-4-2.53-4.34a28.49,28.49,0,0,1-3.49-1.56l.78-1.48s4.52,1.24,5.24,2.56S697.15,600.87,697.15,600.87Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M673,592.08c-.24,1.21-10.94,2.29-10.94,2.29l5.41-5.43h0l.14.05h0A21.34,21.34,0,0,1,673,592.08Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><circle cx="590.21" cy="528.55" r="0.96" fill="#575988"/><circle cx="591.44" cy="530.48" r="0.96" fill="#575988"/><circle cx="592.65" cy="532.25" r="0.96" fill="#575988"/><circle cx="593.91" cy="534.18" r="0.96" fill="#575988"/><circle cx="707.33" cy="534.07" r="0.78" fill="#575988"/><circle cx="707.45" cy="535.85" r="0.78" fill="#575988"/><circle cx="707.55" cy="537.62" r="0.78" fill="#575988"/><path d="M697.21,633.47c-.11-.14,27,34.11,48.07,14.32C745.28,647.79,712,652.3,697.21,633.47Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M681.63,651.28s16.23.44,17.93,5.11v4.86a3.11,3.11,0,0,1-3,0c-1.64-.88-11.45-5.87-14.91-3.47Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M681.93,651.28s15.52.42,17.15,4.87v4.64a3,3,0,0,1-2.89,0c-1.57-.85-11-5.6-14.26-3.31Z" transform="translate(-51.77 -47.02)" fill="#3f3d56"/><path d="M690.49,616a52.28,52.28,0,0,0,6.29,10.79,42.15,42.15,0,0,0,9.86,9.52S690.76,618.27,690.49,616Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M685.18,597.18s2.71,11.69,9.68,15.66Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M681,598.36c-.07-.22-2.41,9.24,9,14.48C690,612.84,685.18,611.2,681,598.36Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M751.9,590.52c-.18,0,5.62,3.7,7.2,5.41C759.1,595.93,755.33,590.28,751.9,590.52Z" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M715.18,582.44a3.05,3.05,0,0,0,1.11,1.94,3.13,3.13,0,0,0,1.35.3c4.37.27,8.91.46,13-1.22a4.84,4.84,0,0,0,2-1.31A7.79,7.79,0,0,0,733.7,579c.57-2.14,1.78-4,2.65-6.08A20.43,20.43,0,0,0,737.76,562a7.31,7.31,0,0,0-1.09-3.2c-1.16-1.65-3.27-2.32-4.8-3.64s-2.52-3.33-4.3-4.32a8.36,8.36,0,0,0-5.4-.48,28.53,28.53,0,0,0-10.08,3.79c-1,.64-2.18,1.37-3.37,1.15a4.63,4.63,0,0,1-2.48-1.9,13.32,13.32,0,0,0-1.07,6.23,3,3,0,0,1,0,.94,3,3,0,0,1-.67,1c-1.08,1.25-1.75,3.23-.69,4.49.47.55,1.18.85,1.63,1.41.81,1,.53,2.45.51,3.74a2,2,0,0,0,.32,1.27,1.86,1.86,0,0,0,1.77.42,4.84,4.84,0,0,1,1.88-.18,3.17,3.17,0,0,1,1.64,1.26C713.54,576.54,714.33,579.35,715.18,582.44Z" transform="translate(-51.77 -47.02)" fill="#2d293d"/><g opacity="0.1"><path d="M733,581.05a4.73,4.73,0,0,1-2,1.3c-4,1.69-8.58,1.49-12.94,1.22a2.94,2.94,0,0,1-1.35-.3,3,3,0,0,1-1.12-1.93c-.85-3.09-1.63-5.91-3.65-8.47a3.12,3.12,0,0,0-1.64-1.26,4.84,4.84,0,0,0-1.88.18,1.86,1.86,0,0,1-1.77-.42,1.94,1.94,0,0,1-.31-1.27c0-1.29.29-2.74-.52-3.74-.45-.56-1.16-.86-1.63-1.41a2.82,2.82,0,0,1-.27-2.88c-.77,1.22-1.1,2.78-.21,3.84.47.55,1.18.85,1.63,1.41.81,1,.53,2.45.51,3.74a2,2,0,0,0,.32,1.27,1.85,1.85,0,0,0,1.77.42,4.84,4.84,0,0,1,1.88-.18,3.17,3.17,0,0,1,1.64,1.26c2,2.57,2.8,5.38,3.65,8.47a3.05,3.05,0,0,0,1.11,1.94,3.13,3.13,0,0,0,1.35.3c4.37.27,8.91.46,13-1.22a4.91,4.91,0,0,0,2-1.31,3.81,3.81,0,0,0,.62-1.16C733.13,580.92,733.09,581,733,581.05Z" transform="translate(-51.77 -47.02)"/><path d="M705.18,560.19a2,2,0,0,0,.44-.73,3,3,0,0,0,0-.94,13.2,13.2,0,0,1,.67-5.18l-.08-.09a13.2,13.2,0,0,0-1.07,6.23A4.21,4.21,0,0,1,705.18,560.19Z" transform="translate(-51.77 -47.02)"/></g><path d="M712.62,591.12s17.89,2.37,19.5-.32" transform="translate(-51.77 -47.02)" opacity="0.1"/><path d="M747.4,583.72s9.93,0,12.12,3.74" transform="translate(-51.77 -47.02)" opacity="0.1"/></svg> | ||
| 2 | \ No newline at end of file | 0 | \ No newline at end of file |
front-end/landing-page/src/constants/config.js deleted
100644 → 0
front-end/landing-page/src/global.less deleted
100644 → 0
front-end/landing-page/src/layouts/Footer0.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import TweenOne from 'rc-tween-one'; | ||
| 3 | -import OverPack from 'rc-scroll-anim/lib/ScrollOverPack'; | ||
| 4 | - | ||
| 5 | -class Footer extends React.PureComponent { | ||
| 6 | - render() { | ||
| 7 | - const { ...props } = this.props; | ||
| 8 | - const { dataSource } = props; | ||
| 9 | - delete props.dataSource; | ||
| 10 | - delete props.isMobile; | ||
| 11 | - return ( | ||
| 12 | - <div {...props} {...dataSource.wrapper}> | ||
| 13 | - <OverPack {...dataSource.OverPack}> | ||
| 14 | - <TweenOne | ||
| 15 | - animation={{ y: '+=30', opacity: 0, type: 'from' }} | ||
| 16 | - key="footer" | ||
| 17 | - {...dataSource.copyright} | ||
| 18 | - > | ||
| 19 | - {dataSource.copyright.children} | ||
| 20 | - </TweenOne> | ||
| 21 | - </OverPack> | ||
| 22 | - </div> | ||
| 23 | - ); | ||
| 24 | - } | ||
| 25 | -} | ||
| 26 | - | ||
| 27 | -export default Footer; |
front-end/landing-page/src/layouts/Nav0.jsx deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import { findDOMNode } from 'react-dom'; | ||
| 3 | -import TweenOne from 'rc-tween-one'; | ||
| 4 | -import { Menu, Popover, Icon } from 'antd'; | ||
| 5 | -import NavLink from 'umi/navlink'; | ||
| 6 | - | ||
| 7 | -const Item = Menu.Item; | ||
| 8 | -const { SubMenu } = Menu; | ||
| 9 | - | ||
| 10 | -class Header extends React.Component { | ||
| 11 | - constructor(props) { | ||
| 12 | - super(props); | ||
| 13 | - this.state = { | ||
| 14 | - phoneOpen: false, | ||
| 15 | - menuHeight: 0, | ||
| 16 | - }; | ||
| 17 | - } | ||
| 18 | - | ||
| 19 | - phoneClick = () => { | ||
| 20 | - const menu = findDOMNode(this.menu); | ||
| 21 | - const phoneOpen = !this.state.phoneOpen; | ||
| 22 | - this.setState({ | ||
| 23 | - phoneOpen, | ||
| 24 | - menuHeight: phoneOpen ? menu.scrollHeight : 0, | ||
| 25 | - }); | ||
| 26 | - }; | ||
| 27 | - | ||
| 28 | - render() { | ||
| 29 | - const { ...props } = this.props; | ||
| 30 | - const { dataSource, isMobile } = props; | ||
| 31 | - delete props.dataSource; | ||
| 32 | - delete props.isMobile; | ||
| 33 | - const { menuHeight, phoneOpen } = this.state; | ||
| 34 | - const navData = dataSource.Menu.children; | ||
| 35 | - const navChildren = Object.keys(navData).map((key, i) => ( | ||
| 36 | - <Item key={i.toString()} {...navData[key]}> | ||
| 37 | - <NavLink | ||
| 38 | - {...navData[key].a} | ||
| 39 | - href={navData[key].a.href} | ||
| 40 | - to={navData[key].a.href} | ||
| 41 | - target={navData[key].a.target} | ||
| 42 | - > | ||
| 43 | - {navData[key].a.children} | ||
| 44 | - </NavLink> | ||
| 45 | - </Item> | ||
| 46 | - )); | ||
| 47 | - return ( | ||
| 48 | - <TweenOne | ||
| 49 | - component="header" | ||
| 50 | - animation={{ opacity: 0, type: 'from' }} | ||
| 51 | - {...dataSource.wrapper} | ||
| 52 | - {...props} | ||
| 53 | - > | ||
| 54 | - <div | ||
| 55 | - {...dataSource.page} | ||
| 56 | - className={`${dataSource.page.className}${phoneOpen ? ' open' : ''}`} | ||
| 57 | - > | ||
| 58 | - <TweenOne | ||
| 59 | - animation={{ x: -30, type: 'from', ease: 'easeOutQuad' }} | ||
| 60 | - {...dataSource.logo} | ||
| 61 | - > | ||
| 62 | - {/* <img width="100%" src={dataSource.logo.children} alt="img" /> */} | ||
| 63 | - <h1> | ||
| 64 | - <a href="/">Luban H5</a> | ||
| 65 | - </h1> | ||
| 66 | - </TweenOne> | ||
| 67 | - <TweenOne | ||
| 68 | - animation={{ x: -30, type: 'from', ease: 'easeOutQuad' }} | ||
| 69 | - {...dataSource.logo} | ||
| 70 | - > | ||
| 71 | - <span style={{color: 'rgba(0,0,0,.65)'}}>移动建站平台</span> | ||
| 72 | - </TweenOne> | ||
| 73 | - {isMobile && ( | ||
| 74 | - <div | ||
| 75 | - {...dataSource.mobileMenu} | ||
| 76 | - onClick={() => { | ||
| 77 | - this.phoneClick(); | ||
| 78 | - }} | ||
| 79 | - > | ||
| 80 | - <em /> | ||
| 81 | - <em /> | ||
| 82 | - <em /> | ||
| 83 | - </div> | ||
| 84 | - )} | ||
| 85 | - <TweenOne | ||
| 86 | - {...dataSource.Menu} | ||
| 87 | - animation={{ x: 30, type: 'from', ease: 'easeOutQuad' }} | ||
| 88 | - ref={(c) => { | ||
| 89 | - this.menu = c; | ||
| 90 | - }} | ||
| 91 | - style={isMobile ? { height: menuHeight } : null} | ||
| 92 | - > | ||
| 93 | - <Menu | ||
| 94 | - mode={isMobile ? 'inline' : 'horizontal'} | ||
| 95 | - defaultSelectedKeys={['0']} | ||
| 96 | - theme={isMobile ? 'dark' : 'default'} | ||
| 97 | - > | ||
| 98 | - {navChildren} | ||
| 99 | - <SubMenu | ||
| 100 | - style={{color: 'black'}} | ||
| 101 | - title={ | ||
| 102 | - <span className="submenu-title-wrapper"> | ||
| 103 | - {/* <Icon type="appstore" /> */} | ||
| 104 | - 🔗Links | ||
| 105 | - </span> | ||
| 106 | - } | ||
| 107 | - > | ||
| 108 | - <Menu.ItemGroup title="Project URL"> | ||
| 109 | - <Menu.Item key="setting:3" onClick={() => { | ||
| 110 | - window.open('https://h5.luban-h5.com') | ||
| 111 | - }}>Website</Menu.Item> | ||
| 112 | - <Menu.Item key="setting:3.1" onClick={() => { | ||
| 113 | - window.open('https://github.com/ly525/luban-h5') | ||
| 114 | - }}>GitHub</Menu.Item> | ||
| 115 | - <Menu.Item key="setting:4" onClick={() => { | ||
| 116 | - window.open('https://gitee.com/ly525/luban-h5') | ||
| 117 | - }}>Gitee</Menu.Item> | ||
| 118 | - </Menu.ItemGroup> | ||
| 119 | - <Menu.ItemGroup title="Contact"> | ||
| 120 | - <Menu.Item key="setting:5.0" onClick={() => { | ||
| 121 | - window.open('https://gitter.im/luban-h5/community') | ||
| 122 | - }}>Gitter</Menu.Item> | ||
| 123 | - <Menu.Item key="setting:5.0" onClick={() => { | ||
| 124 | - window.open('https://support.qq.com/products/93432/') | ||
| 125 | - }}>论坛</Menu.Item> | ||
| 126 | - <Menu.Item key="setting:5" onClick={() => { | ||
| 127 | - window.open('https://gitee.com/ly525/luban-h5#%E4%BA%A4%E6%B5%81%E7%BE%A4') | ||
| 128 | - }}>钉钉群</Menu.Item> | ||
| 129 | - <Menu.Item key="setting:6" onClick={() => { | ||
| 130 | - window.open('https://gitee.com/ly525/luban-h5#%E4%BA%A4%E6%B5%81%E7%BE%A4') | ||
| 131 | - }}>微信群</Menu.Item> | ||
| 132 | - </Menu.ItemGroup> | ||
| 133 | - <Menu.ItemGroup title="Document"> | ||
| 134 | - <Menu.Item key="setting:1" onClick={() => { | ||
| 135 | - window.open('https://ly525.github.io/luban-h5/zh/') | ||
| 136 | - }}>中文文档</Menu.Item> | ||
| 137 | - <Menu.Item key="setting:2" onClick={() => { | ||
| 138 | - window.open('https://ly525.github.io/luban-h5') | ||
| 139 | - }}>English Doc</Menu.Item> | ||
| 140 | - </Menu.ItemGroup> | ||
| 141 | - </SubMenu> | ||
| 142 | - </Menu> | ||
| 143 | - </TweenOne> | ||
| 144 | - </div> | ||
| 145 | - </TweenOne> | ||
| 146 | - ); | ||
| 147 | - } | ||
| 148 | -} | ||
| 149 | - | ||
| 150 | -export default Header; |
front-end/landing-page/src/layouts/data.source.js deleted
100755 → 0
| 1 | -import React from 'react'; | ||
| 2 | - | ||
| 3 | -export const Nav00DataSource = { | ||
| 4 | - wrapper: { className: 'header0 home-page-wrapper' }, | ||
| 5 | - page: { className: 'home-page' }, | ||
| 6 | - logo: { | ||
| 7 | - className: 'header0-logo', | ||
| 8 | - children: 'https://os.alipayobjects.com/rmsportal/mlcYmsRilwraoAe.svg', | ||
| 9 | - }, | ||
| 10 | - Menu: { | ||
| 11 | - className: 'header0-menu', | ||
| 12 | - children: [ | ||
| 13 | - { name: 'item0', a: { children: '中文', href: '/' } }, | ||
| 14 | - { name: 'item1', a: { children: 'EN', href: '/index-en' } }, | ||
| 15 | - // { name: 'item2', a: { children: '导航三', href: '/page2' } }, | ||
| 16 | - // { name: 'item3', a: { children: '导航四', href: '' } }, | ||
| 17 | - ], | ||
| 18 | - }, | ||
| 19 | - mobileMenu: { className: 'header0-mobile-menu' }, | ||
| 20 | -}; | ||
| 21 | - | ||
| 22 | -export const Footer00DataSource = { | ||
| 23 | - wrapper: { className: 'home-page-wrapper footer0-wrapper' }, | ||
| 24 | - OverPack: { className: 'home-page footer0', playScale: 0.05 }, | ||
| 25 | - copyright: { | ||
| 26 | - className: 'copyright', | ||
| 27 | - children: ( | ||
| 28 | - <span> | ||
| 29 | - ©2018 | ||
| 30 | - {' '} | ||
| 31 | - <a href="https://motion.ant.design">Ant Motion</a> | ||
| 32 | - {' '} | ||
| 33 | - All Rights Reserved | ||
| 34 | - </span> | ||
| 35 | - ), | ||
| 36 | - }, | ||
| 37 | -}; |
front-end/landing-page/src/layouts/footer0.less deleted
100755 → 0
| 1 | -@import './custom.less'; | ||
| 2 | -.footer0-wrapper { | ||
| 3 | - background-color: @template-bg-color; | ||
| 4 | - height: 80px; | ||
| 5 | - overflow: hidden; | ||
| 6 | - .footer0 { | ||
| 7 | - height: 100%; | ||
| 8 | - padding: 0 24px; | ||
| 9 | - line-height: 80px; | ||
| 10 | - text-align: center; | ||
| 11 | - color: @template-footer-text-color; | ||
| 12 | - position: relative; | ||
| 13 | - } | ||
| 14 | -} | ||
| 15 | - | ||
| 16 | -@media screen and (max-width: 767px) { | ||
| 17 | - .footer0-wrapper { | ||
| 18 | - .footer0 { | ||
| 19 | - font-size: 12px; | ||
| 20 | - &.home-page { | ||
| 21 | - padding: 0; | ||
| 22 | - } | ||
| 23 | - >div { | ||
| 24 | - width: 90%; | ||
| 25 | - margin: auto; | ||
| 26 | - } | ||
| 27 | - } | ||
| 28 | - } | ||
| 29 | -} |
front-end/landing-page/src/layouts/index.js deleted
100644 → 0
| 1 | -import React, { Component } from 'react'; | ||
| 2 | -import { enquireScreen } from 'enquire-js'; | ||
| 3 | -import Header from './Nav0'; | ||
| 4 | -import Footer from './Footer0'; | ||
| 5 | - | ||
| 6 | -import { | ||
| 7 | - Nav00DataSource, | ||
| 8 | - Footer00DataSource, | ||
| 9 | -} from './data.source.js'; | ||
| 10 | - | ||
| 11 | -let isMobile; | ||
| 12 | -class Layout extends Component { | ||
| 13 | - constructor(props) { | ||
| 14 | - super(props); | ||
| 15 | - this.state = { | ||
| 16 | - isMobile, | ||
| 17 | - }; | ||
| 18 | - } | ||
| 19 | - | ||
| 20 | - componentDidMount() { | ||
| 21 | - // 适配手机屏幕; | ||
| 22 | - enquireScreen((b) => { | ||
| 23 | - this.setState({ isMobile: !!b }); | ||
| 24 | - }); | ||
| 25 | - } | ||
| 26 | - | ||
| 27 | - render() { | ||
| 28 | - return ( | ||
| 29 | - <> | ||
| 30 | - <Header dataSource={Nav00DataSource} isMobile={this.state.isMobile} /> | ||
| 31 | - {this.props.children} | ||
| 32 | - {/* <Footer dataSource={Footer00DataSource} isMobile={this.state.isMobile} /> */} | ||
| 33 | - </> | ||
| 34 | - ); | ||
| 35 | - } | ||
| 36 | -} | ||
| 37 | - | ||
| 38 | -export default Layout; | ||
| 39 | \ No newline at end of file | 0 | \ No newline at end of file |
front-end/landing-page/src/layouts/nav0.less deleted
100755 → 0
| 1 | -@import './custom.less'; | ||
| 2 | -@header: header0; | ||
| 3 | -.@{header} { | ||
| 4 | - background: @template-nav-bg-color; | ||
| 5 | - width: 100%; | ||
| 6 | - z-index: 1; | ||
| 7 | - box-shadow: 0 5px 8px fade(#000, 15); | ||
| 8 | - position: relative; | ||
| 9 | - top: 0; | ||
| 10 | - .home-page { | ||
| 11 | - padding: 0 24px; | ||
| 12 | - } | ||
| 13 | - &-logo { | ||
| 14 | - display: inline-block; | ||
| 15 | - position: relative; | ||
| 16 | - width: 150px; | ||
| 17 | - line-height: 64px; | ||
| 18 | - & img { | ||
| 19 | - vertical-align: middle; | ||
| 20 | - display: inline-block; | ||
| 21 | - } | ||
| 22 | - & a { | ||
| 23 | - display: block; | ||
| 24 | - } | ||
| 25 | - } | ||
| 26 | - &-menu { | ||
| 27 | - float: right; | ||
| 28 | - >.ant-menu { | ||
| 29 | - line-height: 62px; | ||
| 30 | - background: transparent; | ||
| 31 | - color: @template-text-color-light; | ||
| 32 | - height: 64px; | ||
| 33 | - border-bottom-color: transparent; | ||
| 34 | - position: relative; | ||
| 35 | - a { | ||
| 36 | - color: @template-text-color-light; | ||
| 37 | - &:hover { | ||
| 38 | - color: @primary-color; | ||
| 39 | - } | ||
| 40 | - } | ||
| 41 | - } | ||
| 42 | - } | ||
| 43 | - .ant-menu-item-selected a { | ||
| 44 | - color: @primary-color; | ||
| 45 | - } | ||
| 46 | -} | ||
| 47 | - | ||
| 48 | -@media screen and (max-width: 767px) { | ||
| 49 | - .@{header} { | ||
| 50 | - &-logo { | ||
| 51 | - z-index: 101; | ||
| 52 | - } | ||
| 53 | - &.home-page-wrapper .home-page { | ||
| 54 | - padding: 0 24px; | ||
| 55 | - } | ||
| 56 | - & &-menu { | ||
| 57 | - height: auto; | ||
| 58 | - float: inherit; | ||
| 59 | - position: relative; | ||
| 60 | - left: -24px; | ||
| 61 | - width: ~"calc(100% + 48px)"; | ||
| 62 | - opacity: 0; | ||
| 63 | - transition: opacity .3s @ease-in-out, height .3s @ease-in-out; | ||
| 64 | - & li { | ||
| 65 | - padding: 0 24px; | ||
| 66 | - &.ant-menu-submenu { | ||
| 67 | - padding: 0; | ||
| 68 | - } | ||
| 69 | - } | ||
| 70 | - & .ant-menu-submenu .ant-menu-sub { | ||
| 71 | - padding: 0 24px; | ||
| 72 | - } | ||
| 73 | - } | ||
| 74 | - &-mobile-menu { | ||
| 75 | - width: 16px; | ||
| 76 | - height: 14px; | ||
| 77 | - cursor: pointer; | ||
| 78 | - position: absolute; | ||
| 79 | - top: 24px; | ||
| 80 | - right: 24px; | ||
| 81 | - z-index: 100; | ||
| 82 | - em { | ||
| 83 | - display: block; | ||
| 84 | - width: 100%; | ||
| 85 | - height: 2px; | ||
| 86 | - background: #fff; | ||
| 87 | - margin-top: 4px; | ||
| 88 | - transition: transform .3s @ease-in-out, opacity .3s @ease-in-out; | ||
| 89 | - } | ||
| 90 | - :first-child { | ||
| 91 | - margin-top: 0; | ||
| 92 | - } | ||
| 93 | - } | ||
| 94 | - .ant-menu { | ||
| 95 | - height: auto; | ||
| 96 | - overflow: hidden; | ||
| 97 | - | ||
| 98 | - background: @template-bg-color; | ||
| 99 | - .ant-menu-item-selected { | ||
| 100 | - border: none; | ||
| 101 | - } | ||
| 102 | - a { | ||
| 103 | - color: @template-text-color-light; | ||
| 104 | - &:hover { | ||
| 105 | - color: @template-text-color-light; | ||
| 106 | - } | ||
| 107 | - } | ||
| 108 | - .ant-menu-item-selected a { | ||
| 109 | - color: @template-text-color-light; | ||
| 110 | - } | ||
| 111 | - } | ||
| 112 | - & .open { | ||
| 113 | - height: auto; | ||
| 114 | - .@{header}-mobile-menu { | ||
| 115 | - em { | ||
| 116 | - &:nth-child(1) { | ||
| 117 | - transform: translateY(6px) rotate(45deg); | ||
| 118 | - } | ||
| 119 | - &:nth-child(2) { | ||
| 120 | - opacity: 0; | ||
| 121 | - } | ||
| 122 | - &:nth-child(3) { | ||
| 123 | - transform: translateY(-6px) rotate(-45deg); | ||
| 124 | - } | ||
| 125 | - } | ||
| 126 | - } | ||
| 127 | - >.@{header}-menu { | ||
| 128 | - opacity: 1; | ||
| 129 | - pointer-events: auto; | ||
| 130 | - } | ||
| 131 | - } | ||
| 132 | - } | ||
| 133 | -} |
front-end/landing-page/src/pages/.umi/history.js deleted
100644 → 0
front-end/landing-page/src/pages/.umi/polyfills.js deleted
100644 → 0
front-end/landing-page/src/pages/.umi/router.js deleted
100644 → 0
| 1 | -import React from 'react'; | ||
| 2 | -import { | ||
| 3 | - Router as DefaultRouter, | ||
| 4 | - Route, | ||
| 5 | - Switch, | ||
| 6 | - StaticRouter, | ||
| 7 | -} from 'react-router-dom'; | ||
| 8 | -import dynamic from 'umi/dynamic'; | ||
| 9 | -import renderRoutes from 'umi/lib/renderRoutes'; | ||
| 10 | -import history from '@@/history'; | ||
| 11 | - | ||
| 12 | -const Router = DefaultRouter; | ||
| 13 | - | ||
| 14 | -const routes = [ | ||
| 15 | - { | ||
| 16 | - path: '/', | ||
| 17 | - component: require('../../layouts/index.js').default, | ||
| 18 | - routes: [ | ||
| 19 | - { | ||
| 20 | - path: '/index-en', | ||
| 21 | - exact: true, | ||
| 22 | - component: require('../index-en.js').default, | ||
| 23 | - }, | ||
| 24 | - { | ||
| 25 | - path: '/', | ||
| 26 | - exact: true, | ||
| 27 | - component: require('../index.js').default, | ||
| 28 | - }, | ||
| 29 | - { | ||
| 30 | - path: '/page2', | ||
| 31 | - exact: true, | ||
| 32 | - component: require('../page2.js').default, | ||
| 33 | - }, | ||
| 34 | - { | ||
| 35 | - component: () => | ||
| 36 | - React.createElement( | ||
| 37 | - require('/Users/lambert/Documents/Code/Self/openSource/luban-h5/front-end/landing-page/node_modules/umi-build-dev/lib/plugins/404/NotFound.js') | ||
| 38 | - .default, | ||
| 39 | - { pagesPath: 'src/pages', hasRoutesInConfig: false }, | ||
| 40 | - ), | ||
| 41 | - }, | ||
| 42 | - ], | ||
| 43 | - }, | ||
| 44 | - { | ||
| 45 | - component: () => | ||
| 46 | - React.createElement( | ||
| 47 | - require('/Users/lambert/Documents/Code/Self/openSource/luban-h5/front-end/landing-page/node_modules/umi-build-dev/lib/plugins/404/NotFound.js') | ||
| 48 | - .default, | ||
| 49 | - { pagesPath: 'src/pages', hasRoutesInConfig: false }, | ||
| 50 | - ), | ||
| 51 | - }, | ||
| 52 | -]; | ||
| 53 | -window.g_routes = routes; | ||
| 54 | -const plugins = require('umi/_runtimePlugin'); | ||
| 55 | -plugins.applyForEach('patchRoutes', { initialValue: routes }); | ||
| 56 | - | ||
| 57 | -export { routes }; | ||
| 58 | - | ||
| 59 | -export default class RouterWrapper extends React.Component { | ||
| 60 | - unListen() {} | ||
| 61 | - | ||
| 62 | - constructor(props) { | ||
| 63 | - super(props); | ||
| 64 | - | ||
| 65 | - // route change handler | ||
| 66 | - function routeChangeHandler(location, action) { | ||
| 67 | - plugins.applyForEach('onRouteChange', { | ||
| 68 | - initialValue: { | ||
| 69 | - routes, | ||
| 70 | - location, | ||
| 71 | - action, | ||
| 72 | - }, | ||
| 73 | - }); | ||
| 74 | - } | ||
| 75 | - this.unListen = history.listen(routeChangeHandler); | ||
| 76 | - // dva 中 history.listen 会初始执行一次 | ||
| 77 | - // 这里排除掉 dva 的场景,可以避免 onRouteChange 在启用 dva 后的初始加载时被多执行一次 | ||
| 78 | - const isDva = | ||
| 79 | - history.listen | ||
| 80 | - .toString() | ||
| 81 | - .indexOf('callback(history.location, history.action)') > -1; | ||
| 82 | - if (!isDva) { | ||
| 83 | - routeChangeHandler(history.location); | ||
| 84 | - } | ||
| 85 | - } | ||
| 86 | - | ||
| 87 | - componentWillUnmount() { | ||
| 88 | - this.unListen(); | ||
| 89 | - } | ||
| 90 | - | ||
| 91 | - render() { | ||
| 92 | - const props = this.props || {}; | ||
| 93 | - return <Router history={history}>{renderRoutes(routes, props)}</Router>; | ||
| 94 | - } | ||
| 95 | -} |
front-end/landing-page/src/pages/.umi/umi.js deleted
100644 → 0
| 1 | -import './polyfills'; | ||
| 2 | -import history from './history'; | ||
| 3 | - | ||
| 4 | -import React from 'react'; | ||
| 5 | -import ReactDOM from 'react-dom'; | ||
| 6 | -import findRoute, { | ||
| 7 | - getUrlQuery, | ||
| 8 | -} from '/Users/lambert/Documents/Code/Self/openSource/luban-h5/front-end/landing-page/node_modules/umi-build-dev/lib/findRoute.js'; | ||
| 9 | - | ||
| 10 | -// runtime plugins | ||
| 11 | -const plugins = require('umi/_runtimePlugin'); | ||
| 12 | -window.g_plugins = plugins; | ||
| 13 | -plugins.init({ | ||
| 14 | - validKeys: [ | ||
| 15 | - 'patchRoutes', | ||
| 16 | - 'render', | ||
| 17 | - 'rootContainer', | ||
| 18 | - 'modifyRouteProps', | ||
| 19 | - 'onRouteChange', | ||
| 20 | - 'modifyInitialProps', | ||
| 21 | - 'initialProps', | ||
| 22 | - ], | ||
| 23 | -}); | ||
| 24 | - | ||
| 25 | -// render | ||
| 26 | -let clientRender = async () => { | ||
| 27 | - window.g_isBrowser = true; | ||
| 28 | - let props = {}; | ||
| 29 | - // Both support SSR and CSR | ||
| 30 | - if (window.g_useSSR) { | ||
| 31 | - // 如果开启服务端渲染则客户端组件初始化 props 使用服务端注入的数据 | ||
| 32 | - props = window.g_initialData; | ||
| 33 | - } else { | ||
| 34 | - const pathname = location.pathname; | ||
| 35 | - const activeRoute = findRoute(require('@@/router').routes, pathname); | ||
| 36 | - // 在客户端渲染前,执行 getInitialProps 方法 | ||
| 37 | - // 拿到初始数据 | ||
| 38 | - if ( | ||
| 39 | - activeRoute && | ||
| 40 | - activeRoute.component && | ||
| 41 | - activeRoute.component.getInitialProps | ||
| 42 | - ) { | ||
| 43 | - const initialProps = plugins.apply('modifyInitialProps', { | ||
| 44 | - initialValue: {}, | ||
| 45 | - }); | ||
| 46 | - props = activeRoute.component.getInitialProps | ||
| 47 | - ? await activeRoute.component.getInitialProps({ | ||
| 48 | - route: activeRoute, | ||
| 49 | - isServer: false, | ||
| 50 | - location, | ||
| 51 | - ...initialProps, | ||
| 52 | - }) | ||
| 53 | - : {}; | ||
| 54 | - } | ||
| 55 | - } | ||
| 56 | - const rootContainer = plugins.apply('rootContainer', { | ||
| 57 | - initialValue: React.createElement(require('./router').default, props), | ||
| 58 | - }); | ||
| 59 | - ReactDOM[window.g_useSSR ? 'hydrate' : 'render']( | ||
| 60 | - rootContainer, | ||
| 61 | - document.getElementById('root'), | ||
| 62 | - ); | ||
| 63 | -}; | ||
| 64 | -const render = plugins.compose( | ||
| 65 | - 'render', | ||
| 66 | - { initialValue: clientRender }, | ||
| 67 | -); | ||
| 68 | - | ||
| 69 | -const moduleBeforeRendererPromises = []; | ||
| 70 | -// client render | ||
| 71 | -if (__IS_BROWSER) { | ||
| 72 | - Promise.all(moduleBeforeRendererPromises) | ||
| 73 | - .then(() => { | ||
| 74 | - render(); | ||
| 75 | - }) | ||
| 76 | - .catch(err => { | ||
| 77 | - window.console && window.console.error(err); | ||
| 78 | - }); | ||
| 79 | -} | ||
| 80 | - | ||
| 81 | -// export server render | ||
| 82 | -let serverRender, ReactDOMServer; | ||
| 83 | -if (!__IS_BROWSER) { | ||
| 84 | - const { matchRoutes } = require('react-router-config'); | ||
| 85 | - const { StaticRouter } = require('react-router'); | ||
| 86 | - // difference: umi-history has query object | ||
| 87 | - const { createLocation } = require('umi-history'); | ||
| 88 | - // don't remove, use stringify html map | ||
| 89 | - const stringify = require('serialize-javascript'); | ||
| 90 | - const router = require('./router'); | ||
| 91 | - | ||
| 92 | - /** | ||
| 93 | - * 1. Load dynamicImport Component | ||
| 94 | - * 2. Get Component initialProps function data | ||
| 95 | - * return Component props | ||
| 96 | - * @param pathname | ||
| 97 | - * @param props | ||
| 98 | - */ | ||
| 99 | - const getInitialProps = async (pathname, props) => { | ||
| 100 | - const { routes } = router; | ||
| 101 | - const matchedComponents = matchRoutes(routes, pathname) | ||
| 102 | - .map(({ route }) => { | ||
| 103 | - if (route.component) { | ||
| 104 | - return !route.component.preload | ||
| 105 | - ? // 同步 | ||
| 106 | - route.component | ||
| 107 | - : // 异步,支持 dynamicImport | ||
| 108 | - route.component.preload().then(component => component.default); | ||
| 109 | - } | ||
| 110 | - }) | ||
| 111 | - .filter(c => c); | ||
| 112 | - const loadedComponents = await Promise.all(matchedComponents); | ||
| 113 | - | ||
| 114 | - // get Store | ||
| 115 | - const initialProps = plugins.apply('modifyInitialProps', { | ||
| 116 | - initialValue: {}, | ||
| 117 | - }); | ||
| 118 | - // support getInitialProps | ||
| 119 | - const promises = loadedComponents.map(component => { | ||
| 120 | - if (component && component.getInitialProps) { | ||
| 121 | - return component.getInitialProps({ | ||
| 122 | - isServer: true, | ||
| 123 | - ...props, | ||
| 124 | - ...initialProps, | ||
| 125 | - }); | ||
| 126 | - } | ||
| 127 | - return Promise.resolve(null); | ||
| 128 | - }); | ||
| 129 | - | ||
| 130 | - return Promise.all(promises); | ||
| 131 | - }; | ||
| 132 | - | ||
| 133 | - serverRender = async (ctx = {}) => { | ||
| 134 | - // ctx.req.url may be `/bar?locale=en-US` | ||
| 135 | - const [pathname] = (ctx.req.url || '').split('?'); | ||
| 136 | - // global | ||
| 137 | - global.req = { | ||
| 138 | - url: ctx.req.url, | ||
| 139 | - }; | ||
| 140 | - const location = createLocation(ctx.req.url); | ||
| 141 | - const activeRoute = findRoute(router.routes, pathname); | ||
| 142 | - // omit component | ||
| 143 | - const { component, ...restRoute } = activeRoute || {}; | ||
| 144 | - // router context hook | ||
| 145 | - // get current router status 40x / 30x, share with server | ||
| 146 | - const context = {}; | ||
| 147 | - // TODO: getInitialProps timeout handle | ||
| 148 | - const initialData = await getInitialProps(pathname, { | ||
| 149 | - route: restRoute, | ||
| 150 | - // only exist in server | ||
| 151 | - req: ctx.req || {}, | ||
| 152 | - res: ctx.res || {}, | ||
| 153 | - context, | ||
| 154 | - location, | ||
| 155 | - }); | ||
| 156 | - | ||
| 157 | - // 当前路由(不包含 Layout)的 getInitialProps 有返回值 | ||
| 158 | - // Page 值为 undefined 时,有 getInitialProps 无返回,此时 return dva model | ||
| 159 | - const pageData = initialData[initialData.length - 1]; | ||
| 160 | - if (pageData === undefined) { | ||
| 161 | - initialData[initialData.length - 1] = plugins.apply('initialProps', { | ||
| 162 | - initialValue: pageData, | ||
| 163 | - }); | ||
| 164 | - } | ||
| 165 | - | ||
| 166 | - // reduce all match component getInitialProps | ||
| 167 | - // in the same object key | ||
| 168 | - // page data key will override layout key | ||
| 169 | - const props = Array.isArray(initialData) | ||
| 170 | - ? initialData.reduce( | ||
| 171 | - (acc, curr) => ({ | ||
| 172 | - ...acc, | ||
| 173 | - ...curr, | ||
| 174 | - }), | ||
| 175 | - {}, | ||
| 176 | - ) | ||
| 177 | - : {}; | ||
| 178 | - | ||
| 179 | - const App = React.createElement( | ||
| 180 | - StaticRouter, | ||
| 181 | - { | ||
| 182 | - location: ctx.req.url, | ||
| 183 | - context, | ||
| 184 | - }, | ||
| 185 | - React.createElement(router.default, props), | ||
| 186 | - ); | ||
| 187 | - | ||
| 188 | - // render rootContainer for htmlTemplateMap | ||
| 189 | - const rootContainer = plugins.apply('rootContainer', { | ||
| 190 | - initialValue: App, | ||
| 191 | - }); | ||
| 192 | - const htmlTemplateMap = {}; | ||
| 193 | - const matchPath = activeRoute ? activeRoute.path : undefined; | ||
| 194 | - return { | ||
| 195 | - htmlElement: matchPath ? htmlTemplateMap[matchPath] : '', | ||
| 196 | - rootContainer, | ||
| 197 | - matchPath, | ||
| 198 | - g_initialData: props, | ||
| 199 | - context, | ||
| 200 | - }; | ||
| 201 | - }; | ||
| 202 | - // using project react-dom version | ||
| 203 | - // https://github.com/facebook/react/issues/13991 | ||
| 204 | - ReactDOMServer = require('react-dom/server'); | ||
| 205 | -} | ||
| 206 | - | ||
| 207 | -export { ReactDOMServer }; | ||
| 208 | -export default (__IS_BROWSER ? null : serverRender); | ||
| 209 | - | ||
| 210 | -require('../../global.less'); | ||
| 211 | - | ||
| 212 | -// hot module replacement | ||
| 213 | -if (__IS_BROWSER && module.hot) { | ||
| 214 | - module.hot.accept('./router', () => { | ||
| 215 | - clientRender(); | ||
| 216 | - }); | ||
| 217 | -} |
front-end/landing-page/src/pages/.umi/umiExports.js deleted
100644 → 0
front-end/landing-page/src/pages/.umi/umiExports.ts deleted
100644 → 0
front-end/landing-page/src/pages/document.ejs deleted
100644 → 0
| 1 | -<!doctype html> | ||
| 2 | -<html> | ||
| 3 | -<head> | ||
| 4 | - <meta charset="utf-8" /> | ||
| 5 | - <title>鲁班-H5</title> | ||
| 6 | - <meta content="拖拽生成,拖拽生成页面,页面可视化,鲁班可视化搭建平台,鲁班,鲁班H5,可视化搭建,可视化平台,可视化搭建平台,开源易企秀,开源人人秀,开源百度H5,lubanh5,luban-h5,webpage buiilder,page builder,h5 builder" name="keywords" /> | ||
| 7 | - <meta content="鲁班H5-是一款基于Vue2.0 + 常见业务组件,可以通过拖拽的形式生成页面,类似易企秀、百度 H5 的可视化搭建系统;我们的初心也是希望能通过工程化的手段,大幅度提高简单H5页面的制作效率,提高工程师的幸福感,从这种需求频繁变更的简单任务中解脱出来" name="description" /> | ||
| 8 | -</head> | ||
| 9 | -<body> | ||
| 10 | - <div id="root"></div> | ||
| 11 | -</body> | ||
| 12 | -</html> | ||
| 13 | \ No newline at end of file | 0 | \ No newline at end of file |
front-end/landing-page/src/pages/index-en.js deleted
100755 → 0
front-end/landing-page/src/pages/index.css deleted
100755 → 0
front-end/landing-page/src/pages/index.js deleted
100755 → 0