Commit 261639e395f2cffcb5aaabca742ab823a267bacd

Authored by ly525
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
1 -## The Landing Page for LubanH5  
2 -  
3 -## 鲁班H5 首页  
4 \ No newline at end of file 0 \ No newline at end of file
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
1 -import React from 'react';  
2 -  
3 -export default function Header(props) {  
4 - return (  
5 - <header {...props}>  
6 - <div className="header-content">  
7 - <h1>  
8 - <a>  
9 - <span>鲁班H5</span>  
10 - </a>  
11 - <span>移动建站平台</span>  
12 - </h1>  
13 - </div>  
14 - </header>  
15 - );  
16 -}  
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
1 -body {  
2 - // overflow: hidden;  
3 -}  
4 -  
5 -.text-center {  
6 - text-align: center!important;  
7 -}  
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
1 -import './header.less';  
2 -import './home.less';  
3 -import './footer.less';  
4 -import './responsive.less';  
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
1 -import React from 'react';  
2 -  
3 -export default function Header(props) {  
4 - return (  
5 - <header {...props}>  
6 - <div className="header-content">  
7 - <h1>  
8 - <a>  
9 - <span>鲁班H5</span>  
10 - </a>  
11 - <span>移动建站平台</span>  
12 - </h1>  
13 - </div>  
14 - </header>  
15 - );  
16 -}  
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
1 -body {  
2 - // overflow: hidden;  
3 -}  
4 -  
5 -.text-center {  
6 - text-align: center!important;  
7 -}  
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
1 -import './header.less';  
2 -import './home.less';  
3 -import './footer.less';  
4 -import './responsive.less';  
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
1 -# 如何使用:  
2 -  
3 -- umi 里如何使用[请查看](https://landing.ant.design/docs/use/umi)。  
4 -- 其它脚手架使用[请查看](https://landing.ant.design/docs/use/getting-started)。  
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
1 -body {  
2 - word-wrap: break-word;  
3 -}  
4 -  
5 -/* .content-wrapper > .tween-one-leaving,  
6 -.queue-anim-leaving {  
7 - // position: absolute !important;  
8 - // width: 100%;  
9 -} */  
10 -  
11 -.video {  
12 - max-width: 800px;  
13 -}  
14 -  
15 -#react-content {  
16 - min-height: 100%;  
17 -}  
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
1 -div > .templates-wrapper > .jnwq7vhwgqg-editor_css {  
2 - background-image: none;  
3 -}  
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
1 -export const H5_HOST = 'https://h5.luban-h5.com'  
2 \ No newline at end of file 0 \ No newline at end of file
front-end/landing-page/src/global.less deleted 100644 → 0
1 -@import './Page2/less/antMotionStyle.less';  
2 -@import './Page2/less/nav0.less';  
3 -@import './Page2/less/footer0.less';  
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
1 -// create history  
2 -const history = require('history/createHashHistory').default({ basename: '/' });  
3 -window.g_history = history;  
4 -export default history;  
front-end/landing-page/src/pages/.umi/polyfills.js deleted 100644 → 0
1 -import 'core-js';  
2 -import 'regenerator-runtime/runtime';  
3 -  
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
1 -import Index from '../Index-En';  
2 -  
3 -export default function () {  
4 - return (  
5 - <Index />  
6 - );  
7 -}  
8 \ No newline at end of file 0 \ No newline at end of file
front-end/landing-page/src/pages/index.css deleted 100755 → 0
1 -  
2 -.normal {  
3 - background: #C6F279;  
4 -}  
front-end/landing-page/src/pages/index.js deleted 100755 → 0
1 -import Index from '../Index';  
2 -  
3 -export default function () {  
4 - return (  
5 - <Index />  
6 - );  
7 -}  
8 \ No newline at end of file 0 \ No newline at end of file
front-end/landing-page/src/pages/page2.js deleted 100644 → 0
1 -import Page2 from '../Page2';  
2 -  
3 -export default function () {  
4 - return (  
5 - <Page2 />  
6 - );  
7 -}