From 5c33978e9e3e934378d8f2153a2cd919b1cb6ddd Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期四, 10 七月 2025 18:05:41 +0800
Subject: [PATCH] init

---
 dist.zip                            |    0 
 src/Home/less/custom.less           |    5 
 .umirc.ts                           |   32 +
 src/assets/home/tab2.png            |    0 
 src/Home/Feature5.jsx               |   10 
 src/assets/home/jiang1.png          |    0 
 src/components/Title/Title.less     |   36 ++
 src/utils/typings.ts                |   12 
 src/assets/home/step4.png           |    0 
 src/utils/common.ts                 |   11 
 pnpm-lock.yaml                      |   19 +
 src/Home/less/content13.less        |  109 +++++++
 src/assets/home/jiang2.png          |    0 
 .eslintrc.js                        |    3 
 src/Home/less/feature5.less         |   16 
 src/Home/less/pricing2.less         |   12 
 src/assets/home/step3.png           |    0 
 src/assets/home/tab3.png            |    0 
 src/assets/home/page-bg-mobile.png  |    0 
 src/Home/less/content.less          |    9 
 src/Home/index.jsx                  |    9 
 src/Home/less/content9.less         |   10 
 src/assets/home/enroll-02.png       |    0 
 src/assets/icon-qrcode.jpg          |    0 
 src/assets/home/jiang3.png          |    0 
 src/Home/Footer.jsx                 |  113 ++++++++
 src/components/Title/Title.tsx      |   31 ++
 src/assets/home/step2.png           |    0 
 src/assets/common/icon-title-bg.png |    0 
 src/assets/home/enroll-01.png       |    0 
 src/Home/Feature4.jsx               |   15 
 src/Home/data.source.js             |  326 ++++++++++------------
 src/assets/home/jiang4.png          |    0 
 src/assets/home/tab1.png            |    0 
 src/Home/less/feature4.less         |   10 
 src/assets/home/page-bg.png         |    0 
 .prettierrc                         |    6 
 src/Home/less/common.less           |    8 
 package.json                        |   10 
 src/assets/home/step1.png           |    0 
 40 files changed, 577 insertions(+), 235 deletions(-)

diff --git a/.eslintrc.js b/.eslintrc.js
index 85ba500..75bd18e 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -1,3 +1,6 @@
 module.exports = {
   extends: require.resolve('@umijs/max/eslint'),
+  rules: {
+    '@typescript-eslint/no-unused-vars': 0,
+  },
 };
diff --git a/.prettierrc b/.prettierrc
index 70767cd..f3bcc49 100644
--- a/.prettierrc
+++ b/.prettierrc
@@ -4,5 +4,9 @@
   "trailingComma": "all",
   "proseWrap": "never",
   "overrides": [{ "files": ".prettierrc", "options": { "parser": "json" } }],
-  "plugins": ["prettier-plugin-organize-imports", "prettier-plugin-packagejson"]
+  "plugins": [
+    "prettier-plugin-organize-imports",
+    "prettier-plugin-packagejson"
+  ],
+  "organizeImportsSkipDestructiveCodeActions": true
 }
diff --git a/.umirc.ts b/.umirc.ts
index 3d4c594..cabc224 100644
--- a/.umirc.ts
+++ b/.umirc.ts
@@ -6,29 +6,35 @@
   model: {},
   initialState: {},
   request: {},
+  mfsu: false,
+  qiankun: {
+    slave: {},
+  },
+  base: '/v2/',
+  publicPath: '/v2/',
   // layout: {
   //   title: '@umijs/max',
   // },
   routes: [
     {
       path: '/',
-      redirect: '/home',
+      redirect: '/about',
     },
     {
-      name: '棣栭〉',
-      path: '/home',
+      name: '鍏充簬澶ц禌',
+      path: '/about',
       component: './Home',
     },
-    {
-      name: '鏉冮檺婕旂ず',
-      path: '/access',
-      component: './Access',
-    },
-    {
-      name: ' CRUD 绀轰緥',
-      path: '/table',
-      component: './Table',
-    },
+    // {
+    //   name: '鏉冮檺婕旂ず',
+    //   path: '/access',
+    //   component: './Access',
+    // },
+    // {
+    //   name: ' CRUD 绀轰緥',
+    //   path: '/table',
+    //   component: './Table',
+    // },
   ],
   npmClient: 'pnpm',
 });
diff --git a/dist.zip b/dist.zip
new file mode 100644
index 0000000..40824b0
--- /dev/null
+++ b/dist.zip
Binary files differ
diff --git a/package.json b/package.json
index 06399d5..87ec41d 100644
--- a/package.json
+++ b/package.json
@@ -1,22 +1,25 @@
 {
+  "name": "v2",
   "private": true,
   "author": "",
   "scripts": {
-    "dev": "max dev",
     "build": "max build",
+    "dev": "max dev",
     "format": "prettier --cache --write .",
-    "prepare": "husky",
     "postinstall": "max setup",
+    "prepare": "husky",
     "setup": "max setup",
     "start": "npm run dev"
   },
   "dependencies": {
     "@ant-design/compatible": "^1.1.2",
-    "@ant-design/icons": "^5.0.1",
+    "@ant-design/icons": "^5.6.1",
     "@ant-design/pro-components": "^2.4.4",
     "@umijs/max": "^4.4.11",
     "antd": "^4.24.16",
+    "classnames": "^2.5.1",
     "enquire-js": "^0.2.1",
+    "file-saver": "^2.0.5",
     "rc-banner-anim": "^2.4.5",
     "rc-queue-anim": "^2.0.0",
     "rc-scroll-anim": "^2.7.6",
@@ -24,6 +27,7 @@
     "rc-tween-one": "^2.7.3"
   },
   "devDependencies": {
+    "@types/file-saver": "^2.0.7",
     "@types/react": "^18.0.33",
     "@types/react-dom": "^18.0.11",
     "husky": "^9",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 5627af4..72effd5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -9,7 +9,7 @@
     specifier: ^1.1.2
     version: 1.1.2(antd@4.24.16)(prop-types@15.8.1)(react-dom@18.3.1)(react@18.3.1)
   '@ant-design/icons':
-    specifier: ^5.0.1
+    specifier: ^5.6.1
     version: 5.6.1(react-dom@18.3.1)(react@18.3.1)
   '@ant-design/pro-components':
     specifier: ^2.4.4
@@ -20,9 +20,15 @@
   antd:
     specifier: ^4.24.16
     version: 4.24.16(react-dom@18.3.1)(react@18.3.1)
+  classnames:
+    specifier: ^2.5.1
+    version: 2.5.1
   enquire-js:
     specifier: ^0.2.1
     version: 0.2.1
+  file-saver:
+    specifier: ^2.0.5
+    version: 2.0.5
   rc-banner-anim:
     specifier: ^2.4.5
     version: 2.4.5
@@ -40,6 +46,9 @@
     version: 2.7.3
 
 devDependencies:
+  '@types/file-saver':
+    specifier: ^2.0.7
+    version: 2.0.7
   '@types/react':
     specifier: ^18.0.33
     version: 18.3.23
@@ -2343,6 +2352,10 @@
   /@types/estree@1.0.8:
     resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
     dev: false
+
+  /@types/file-saver@2.0.7:
+    resolution: {integrity: sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==}
+    dev: true
 
   /@types/graceful-fs@4.1.9:
     resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
@@ -5969,6 +5982,10 @@
       flat-cache: 3.2.0
     dev: false
 
+  /file-saver@2.0.5:
+    resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==}
+    dev: false
+
   /fill-range@7.1.1:
     resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
     engines: {node: '>=8'}
diff --git a/src/Home/Feature4.jsx b/src/Home/Feature4.jsx
index 0052f53..9ac60a3 100644
--- a/src/Home/Feature4.jsx
+++ b/src/Home/Feature4.jsx
@@ -45,6 +45,17 @@
         };
     return (
       <div {...props} {...dataSource.wrapper}>
+        <OverPack>
+          <QueueAnim
+            type="bottom"
+            leaveReverse
+            key="page"
+            delay={[0, 100]}
+            {...dataSource.titleWrapper}
+          >
+            {dataSource.titleWrapper.children.map(getChildrenToRender)}
+          </QueueAnim>
+        </OverPack>
         <OverPack {...dataSource.OverPack} component={Row}>
           <QueueAnim
             key="text"
@@ -54,9 +65,9 @@
             {...dataSource.textWrapper}
             component={Col}
           >
-            <div key="title" {...dataSource.titleWrapper}>
+            {/* <div key="title" {...dataSource.titleWrapper}>
               {dataSource.titleWrapper.children.map(getChildrenToRender)}
-            </div>
+            </div> */}
             <QueueAnim
               component="ul"
               key="ul"
diff --git a/src/Home/Feature5.jsx b/src/Home/Feature5.jsx
index 658b5c5..51c178e 100644
--- a/src/Home/Feature5.jsx
+++ b/src/Home/Feature5.jsx
@@ -1,8 +1,8 @@
-import React from 'react';
-import TweenOne from 'rc-tween-one';
-import OverPack from 'rc-scroll-anim/lib/ScrollOverPack';
-import { Tabs, Row, Col } from 'antd';
 import { Icon } from '@ant-design/compatible';
+import { Col, Row, Tabs } from 'antd';
+import OverPack from 'rc-scroll-anim/lib/ScrollOverPack';
+import TweenOne from 'rc-tween-one';
+import React from 'react';
 import { getChildrenToRender } from './utils';
 
 const TabPane = Tabs.TabPane;
@@ -31,7 +31,7 @@
         key={i + 1}
         tab={
           <div className={tag.className}>
-            <Icon type={iconChildren} className={icon.className} />
+            <img src={iconChildren} className={icon.className} />
             <div {...tagText}>{tagText.children}</div>
           </div>
         }
diff --git a/src/Home/Footer.jsx b/src/Home/Footer.jsx
new file mode 100644
index 0000000..a603526
--- /dev/null
+++ b/src/Home/Footer.jsx
@@ -0,0 +1,113 @@
+import Icon, {
+  GlobalOutlined,
+  IconProvider,
+  MailOutlined,
+  PhoneOutlined,
+} from '@ant-design/icons';
+import { Button, Card, Col, Divider, Row, Typography } from 'antd';
+// import QRCode from 'qrcode.react';
+import EnrollImage1 from '@/assets/home/enroll-01.png';
+import EnrollImage2 from '@/assets/home/enroll-02.png';
+import IconQrcode from '@/assets/icon-qrcode.jpg';
+import { downloadFileByUrl } from '@/utils/common';
+import { useCallback } from 'react';
+
+const { Title, Paragraph, Text } = Typography;
+
+export const HomeEnrollFileList2025 = [
+  {
+    name: '2025骞村ぇ璧涙姤鍚嶈〃',
+    icon: EnrollImage1,
+    fileUrl:
+      'https://waterdroptest2.oss-cn-hangzhou.aliyuncs.com/NBHRXH/Assets/2025%E5%B9%B4%E5%A4%A7%E8%B5%9B%E6%8A%A5%E5%90%8D%E8%A1%A8.doc',
+  },
+  {
+    name: '2025骞村ぇ璧涘晢涓氳鍒掍功妯℃澘',
+    icon: EnrollImage2,
+    fileUrl:
+      'https://waterdroptest2.oss-cn-hangzhou.aliyuncs.com/NBHRXH/Assets/2025%E5%B9%B4%E5%A4%A7%E8%B5%9B%E5%95%86%E4%B8%9A%E8%AE%A1%E5%88%92%E4%B9%A6%E6%A8%A1%E6%9D%BF.docx',
+  },
+];
+
+const FooterComponent = () => {
+  return (
+    <Row gutter={48} justify="center" style={{ paddingTop: 64 }}>
+      {/* 鑱旂郴淇℃伅 */}
+      <Col xs={24} sm={12} md={8} lg={6}>
+        <Title level={4} style={{ marginBottom: 24 }}>
+          鑱旂郴鎴戜滑
+        </Title>
+        <div className="contact-item">
+          <PhoneOutlined style={{ fontSize: 18, marginRight: 12 }} />
+          <Text style={{ fontSize: 16 }}>400-123-4567</Text>
+        </div>
+        <div className="contact-item">
+          <MailOutlined style={{ fontSize: 18, marginRight: 12 }} />
+          <Text style={{ fontSize: 16 }}>contact@example.com</Text>
+        </div>
+        <div className="contact-item">
+          <GlobalOutlined style={{ fontSize: 18, marginRight: 12 }} />
+          <Text style={{ fontSize: 16 }}>www.example.com</Text>
+        </div>
+      </Col>
+
+      {/* 浜岀淮鐮� */}
+      <Col xs={24} sm={12} md={8} lg={6}>
+        <Title level={4} style={{ marginBottom: 24 }}>
+          鎵爜鍏虫敞
+        </Title>
+        <Card
+          style={{
+            width: 160,
+            height: 160,
+            textAlign: 'center',
+            boxShadow: '0 2px 8px rgba(0, 0, 0, 0.09)',
+            margin: '0 auto',
+          }}
+          bodyStyle={{
+            padding: 0,
+          }}
+        >
+          {/* <QRCode value="https://www.example.com" size={120} /> */}
+          <img src={IconQrcode} style={{ width: '100%', height: '100%' }} />
+        </Card>
+      </Col>
+    </Row>
+  );
+};
+
+export function FooterApply() {
+  const handleDownload = useCallback((fileUrl) => {
+    downloadFileByUrl(fileUrl);
+  });
+
+  return (
+    <Row
+      gutter={48}
+      justify="center"
+      style={{ paddingTop: 64, maxWidth: 1200, margin: '0 auto' }}
+    >
+      {HomeEnrollFileList2025.map((item, index) => (
+        <Col xs={24} sm={12} md={12} lg={12} key={item.fileUrl}>
+          <div className="enroll-item">
+            <div className="enroll-icon">
+              <img src={item.icon} />
+            </div>
+            <div className="enroll-info">
+              <h4 className="enroll-title ellipsis">{item.name}</h4>
+              <Button
+                type="primary"
+                class="download-btn"
+                onClick={() => handleDownload(item.fileUrl, item.name)}
+              >
+                鐐瑰嚮涓嬭浇
+              </Button>
+            </div>
+          </div>
+        </Col>
+      ))}
+    </Row>
+  );
+}
+
+export default FooterComponent;
diff --git a/src/Home/data.source.js b/src/Home/data.source.js
index 0d5470d..813c39f 100644
--- a/src/Home/data.source.js
+++ b/src/Home/data.source.js
@@ -1,3 +1,17 @@
+import Jiang1 from '@/assets/home/jiang1.png';
+import Jiang2 from '@/assets/home/jiang2.png';
+import Jiang3 from '@/assets/home/jiang3.png';
+import Jiang4 from '@/assets/home/jiang4.png';
+import Step1 from '@/assets/home/step1.png';
+import Step2 from '@/assets/home/step2.png';
+import Step3 from '@/assets/home/step3.png';
+import Step4 from '@/assets/home/step4.png';
+import Tab1 from '@/assets/home/tab1.png';
+import Tab2 from '@/assets/home/tab2.png';
+import Tab3 from '@/assets/home/tab3.png';
+import Title from '@/components/Title/Title';
+import FooterComponent, { FooterApply } from './Footer';
+
 export const Nav30DataSource = {
   wrapper: { className: 'header3 home-page-wrapper' },
   page: { className: 'home-page' },
@@ -102,22 +116,22 @@
   textWrapper: {
     className: 'banner3-text-wrapper',
     children: [
-      {
-        name: 'slogan',
-        className: 'banner3-slogan mcvci2cuar-editor_css',
-        children: '绗崄灞婁汉鍔涜祫婧愭湇鍔″垱鏂板垱涓氬ぇ璧�',
-        texty: true,
-      },
-      { name: 'button', className: 'banner3-button', children: '绔嬪嵆鎶ュ悕' },
-      {
-        name: 'time',
-        className: 'banner3-time mcvcibrmazu-editor_css',
-        children: (
-          <span>
-            <p>涓浗路瀹佹尝</p>
-          </span>
-        ),
-      },
+      // {
+      //   name: 'slogan',
+      //   className: 'banner3-slogan mcvci2cuar-editor_css',
+      //   children: '绗崄灞婁汉鍔涜祫婧愭湇鍔″垱鏂板垱涓氬ぇ璧�',
+      //   texty: true,
+      // },
+      // { name: 'button', className: 'banner3-button', children: '绔嬪嵆鎶ュ悕' },
+      // {
+      //   name: 'time',
+      //   className: 'banner3-time mcvcibrmazu-editor_css',
+      //   children: (
+      //     <span>
+      //       <p>涓浗路瀹佹尝</p>
+      //     </span>
+      //   ),
+      // },
     ],
   },
 };
@@ -130,19 +144,9 @@
     className: 'title-wrapper',
     children: [
       {
-        name: 'image',
-        children:
-          'https://gw.alipayobjects.com/zos/rmsportal/PiqyziYmvbgAudYfhuBr.svg',
-        className: 'title-image',
-      },
-      {
         name: 'title',
-        children: (
-          <span>
-            <p>鍏充簬澶ц禌</p>
-          </span>
-        ),
-        className: 'title-h1',
+        children: <Title title="鍏充簬澶ц禌" />,
+        // className: 'title-h1',
       },
       {
         name: 'content',
@@ -203,19 +207,9 @@
     className: 'title-wrapper',
     children: [
       {
-        name: 'image',
-        children:
-          'https://gw.alipayobjects.com/zos/rmsportal/PiqyziYmvbgAudYfhuBr.svg',
-        className: 'title-image',
-      },
-      {
         name: 'title',
-        children: (
-          <span>
-            <p>鍙傝禌鎸囧崡</p>
-          </span>
-        ),
-        className: 'title-h1',
+        children: <Title title="鍙傝禌鎸囧崡" />,
+        // className: 'title-h1',
       },
     ],
   },
@@ -231,8 +225,7 @@
           textWrapper: { className: 'text-wrapper' },
           img: {
             className: 'block-img',
-            children:
-              'https://gw.alipayobjects.com/zos/rmsportal/SlFgHDtOTLzccvFrQHLg.png',
+            children: Step1,
           },
           icon: {
             className: 'block-icon',
@@ -287,8 +280,7 @@
           textWrapper: { className: 'text-wrapper' },
           img: {
             className: 'block-img',
-            children:
-              'https://gw.alipayobjects.com/zos/rmsportal/SlFgHDtOTLzccvFrQHLg.png',
+            children: Step2,
           },
           icon: {
             className: 'block-icon',
@@ -329,8 +321,7 @@
           textWrapper: { className: 'text-wrapper' },
           img: {
             className: 'block-img',
-            children:
-              'https://gw.alipayobjects.com/zos/rmsportal/SlFgHDtOTLzccvFrQHLg.png',
+            children: Step3,
           },
           icon: {
             className: 'block-icon',
@@ -371,8 +362,7 @@
           textWrapper: { className: 'text-wrapper' },
           img: {
             className: 'block-img',
-            children:
-              'https://gw.alipayobjects.com/zos/rmsportal/SlFgHDtOTLzccvFrQHLg.png',
+            children: Step4,
           },
           icon: {
             className: 'block-icon',
@@ -426,12 +416,8 @@
     children: [
       {
         name: 'title',
-        children: (
-          <span>
-            <p>鍙傝禌璧勬牸涓庢潯浠�</p>
-          </span>
-        ),
-        className: 'title-h1',
+        children: <Title title="鍙傝禌璧勬牸涓庢潯浠�"></Title>,
+        // className: 'title-h1',
       },
     ],
   },
@@ -508,12 +494,8 @@
     children: [
       {
         name: 'title',
-        children: (
-          <span>
-            <p>鍙傝禌鑼冨洿</p>
-          </span>
-        ),
-        className: 'title-h1',
+        children: <Title title="鍙傝禌鑼冨洿" />,
+        // className: 'title-h1',
       },
     ],
   },
@@ -533,7 +515,7 @@
             ),
             className: 'content7-tag-name',
           },
-          icon: { children: 'mobile' },
+          icon: { children: Tab1 },
         },
         content: {
           className: 'content7-content',
@@ -572,7 +554,7 @@
         name: 'block1',
         tag: {
           className: 'content7-tag',
-          icon: { children: 'tablet' },
+          icon: { children: Tab2 },
           text: {
             className: 'content7-tag-name',
             children: (
@@ -629,7 +611,7 @@
             ),
             className: 'content7-tag-name',
           },
-          icon: { children: 'laptop' },
+          icon: { children: Tab3 },
         },
         content: {
           className: 'content7-content',
@@ -672,14 +654,9 @@
     children: [
       {
         name: 'title',
-        children: (
-          <span>
-            <span>
-              <p>濂栭」璁剧疆</p>
-            </span>
-          </span>
-        ),
-        className: 'pricing2-title-h1',
+        children: <Title title="濂栭」璁剧疆" />,
+
+        // className: 'pricing2-title-h1',
       },
     ],
   },
@@ -695,8 +672,8 @@
           name: 'empty',
           childWrapper: {
             children: [
-              { name: 'name', children: '12' },
-              { name: 'content', children: '34' },
+              { name: 'name', children: ' ' },
+              { name: 'content', children: ' ' },
             ],
           },
         },
@@ -709,15 +686,14 @@
             children: [
               {
                 name: 'name',
-                className: 'pricing2-table-name',
-                children: 'Free',
+                className: 'pricing2-table-name-icon',
+                children: <img src={Jiang1} />,
               },
               {
-                name: 'content',
-                className: 'pricing2-table-money',
-                children: '楼0',
+                name: 'name',
+                className: 'pricing2-table-name',
+                children: '涓�绛夊',
               },
-              { name: 'button', children: { href: '#', children: '鍏嶈垂璇曠敤' } },
             ],
           },
         },
@@ -730,15 +706,14 @@
             children: [
               {
                 name: 'name',
-                className: 'pricing2-table-name',
-                children: 'Basic',
+                className: 'pricing2-table-name-icon',
+                children: <img src={Jiang2} />,
               },
               {
-                name: 'content',
-                className: 'pricing2-table-money',
-                children: '楼550',
+                name: 'name',
+                className: 'pricing2-table-name',
+                children: '浜岀瓑濂�',
               },
-              { name: 'button', children: { href: '#', children: '绔嬪嵆璐拱' } },
             ],
           },
         },
@@ -751,17 +726,13 @@
             children: [
               {
                 name: 'name',
+                className: 'pricing2-table-name-icon',
+                children: <img src={Jiang3} />,
+              },
+              {
+                name: 'name',
                 className: 'pricing2-table-name',
-                children: 'Pro',
-              },
-              {
-                name: 'content',
-                className: 'pricing2-table-money',
-                children: '楼2,200',
-              },
-              {
-                name: 'button',
-                children: { href: '#', type: 'primary', children: '绔嬪嵆璐拱' },
+                children: '涓夌瓑濂�',
               },
             ],
           },
@@ -775,15 +746,14 @@
             children: [
               {
                 name: 'name',
-                className: 'pricing2-table-name',
-                children: 'Unlimited',
+                className: 'pricing2-table-name-icon',
+                children: <img src={Jiang4} />,
               },
               {
-                name: 'content',
-                className: 'pricing2-table-money',
-                children: '楼5,600',
+                name: 'name',
+                className: 'pricing2-table-name',
+                children: '浼樿儨濂�',
               },
-              { name: 'button', children: { href: '#', children: '绔嬪嵆璐拱' } },
             ],
           },
         },
@@ -797,21 +767,46 @@
             {
               className: 'pricing2-table-content-name',
               name: 'name',
-              children: '涓�绛夊',
+              children: '缁煎悎璧涢亾',
             },
             {
-              children: '浜岀瓑濂�',
+              children: (
+                <span>
+                  <p>1鍚�</p>
+                  <p>濂栭噾80000鍏�</p>
+                </span>
+              ),
               name: 'content0',
               className: 'pricing2-table-content',
             },
             {
-              children: '涓夌瓑濂�',
+              children: (
+                <span>
+                  <p>2鍚�</p>
+                  <p>濂栭噾30000鍏�</p>
+                </span>
+              ),
               name: 'content1',
               className: 'pricing2-table-content',
             },
             {
-              children: '浼樿儨濂�',
+              children: (
+                <span>
+                  <p>3鍚�</p>
+                  <p>濂栭噾20000鍏�</p>
+                </span>
+              ),
               name: 'content2',
+              className: 'pricing2-table-content',
+            },
+            {
+              children: (
+                <span>
+                  <p>9鍚�</p>
+                  <p>鑽h獕璇佷功</p>
+                </span>
+              ),
+              name: 'content3',
               className: 'pricing2-table-content',
             },
           ],
@@ -822,18 +817,13 @@
             {
               className: 'pricing2-table-content-name',
               name: 'name',
-              children: (
-                <span>
-                  <p>1鍚�</p>
-                  <p>濂栭噾80000鍏�</p>
-                </span>
-              ),
+              children: '浜哄姏璧勬簮鏈嶅姟涓氫笌鍒堕�犱篃铻嶅悎鍙戝睍涓撻」璧涢亾',
             },
             {
               children: (
                 <span>
-                  <p>2鍚�</p>
-                  <p>濂栭噾30000鍏�</p>
+                  <p>1鍚�</p>
+                  <p>濂栭噾80000鍏�</p>
                 </span>
               ),
               name: 'content0',
@@ -842,8 +832,8 @@
             {
               children: (
                 <span>
-                  <p>3鍚�</p>
-                  <p>濂栭噾20000鍏�</p>
+                  <p>2鍚�</p>
+                  <p>濂栭噾30000鍏�</p>
                 </span>
               ),
               name: 'content1',
@@ -852,11 +842,21 @@
             {
               children: (
                 <span>
-                  <p>9鍚�</p>
-                  <p>鑽h獕璇佷功</p>
+                  <p>2鍚�</p>
+                  <p>濂栭噾20000鍏�</p>
                 </span>
               ),
               name: 'content2',
+              className: 'pricing2-table-content',
+            },
+            {
+              children: (
+                <span>
+                  <p>5鍚�</p>
+                  <p>鑽h獕璇佷功</p>
+                </span>
+              ),
+              name: 'content3',
               className: 'pricing2-table-content',
             },
           ],
@@ -867,19 +867,14 @@
             {
               className: 'pricing2-table-content-name',
               name: 'name',
-              children: (
-                <span>
-                  <p>1鍚�</p>
-                  <p>濂栭噾80000鍏�</p>
-                </span>
-              ),
+              children: '鏂板氨涓氬舰鎬佷笓椤硅禌閬�',
             },
             {
               name: 'content0',
               children: (
                 <span>
-                  <p>2鍚�</p>
-                  <p>濂栭噾30000鍏�</p>
+                  <p>1鍚�</p>
+                  <p>濂栭噾80000鍏�</p>
                 </span>
               ),
               className: 'pricing2-table-content',
@@ -889,48 +884,13 @@
               children: (
                 <span>
                   <p>2鍚�</p>
-                  <p>濂栭噾20000鍏�</p>
-                </span>
-              ),
-              className: 'pricing2-table-content',
-            },
-            {
-              name: 'content2',
-              children: (
-                <span>
-                  <p>5鍚�</p>
-                  <p>鑽h獕璇佷功</p>
-                </span>
-              ),
-              className: 'pricing2-table-content',
-            },
-          ],
-        },
-        {
-          name: 'list3',
-          children: [
-            {
-              className: 'pricing2-table-content-name',
-              name: 'name',
-              children: (
-                <span>
-                  <p>1鍚�</p>
-                  <p>濂栭噾80000鍏�</p>
-                </span>
-              ),
-            },
-            {
-              children: (
-                <span>
-                  <p>2鍚�</p>
                   <p>濂栭噾30000鍏�</p>
                 </span>
               ),
-              name: 'content0',
               className: 'pricing2-table-content',
             },
             {
-              name: 'content1',
+              name: 'content2',
               children: (
                 <span>
                   <p>2鍚�</p>
@@ -940,7 +900,7 @@
               className: 'pricing2-table-content',
             },
             {
-              name: 'content2',
+              name: 'content3',
               children: (
                 <span>
                   <p>5鍚�</p>
@@ -957,38 +917,42 @@
 };
 export const Content131DataSource = {
   OverPack: {
-    className: 'home-page-wrapper content13-wrapper',
+    className: 'home-page-wrapper content13-wrapper content131-wrapper',
     playScale: 0.3,
   },
   titleWrapper: {
     className: 'title-wrapper',
     children: [
       {
-        name: 'image',
-        children:
-          'https://gw.alipayobjects.com/zos/rmsportal/PiqyziYmvbgAudYfhuBr.svg',
-        className: 'title-image',
-      },
-      {
         name: 'title',
-        children: (
-          <span>
-            <span>
-              <p>鑱旂郴鏂瑰紡</p>
-            </span>
-          </span>
-        ),
-        className: 'title-h1',
+        children: <Title title="鑱旂郴鏂瑰紡" />,
+        // className: 'title-h1',
       },
       {
         name: 'content',
-        children:
-          '鐗硅壊灞曞彴鍖呮嫭 Ant Design 銆丄ntV銆丄ntG銆丒gg 绛夋槑鏄熶骇鍝侊紝鏇存湁浜у搧涓撳',
+        children: <FooterComponent />,
         className: 'title-content',
       },
+    ],
+  },
+};
+
+export const Content132DataSource = {
+  OverPack: {
+    className: 'home-page-wrapper content13-wrapper content132-wrapper',
+    playScale: 0.3,
+  },
+  titleWrapper: {
+    className: 'title-wrapper',
+    children: [
       {
-        name: 'content2',
-        children: '鐜板満闂瘖锛屼负浣犵瓟鐤戣В闅�',
+        name: 'title',
+        children: <Title title="澶ц禌鎶ュ悕" />,
+        // className: 'title-h1',
+      },
+      {
+        name: 'content',
+        children: <FooterApply />,
         className: 'title-content',
       },
     ],
diff --git a/src/Home/index.jsx b/src/Home/index.jsx
index 0c04f5b..54e823d 100644
--- a/src/Home/index.jsx
+++ b/src/Home/index.jsx
@@ -8,12 +8,14 @@
 import Content9 from './Content9';
 import Feature4 from './Feature4';
 import Feature5 from './Feature5';
+import FooterComponent from './Footer';
 import Pricing2 from './Pricing2';
 
 import {
   Banner31DataSource,
   Content130DataSource,
   Content131DataSource,
+  Content132DataSource,
   Content90DataSource,
   Feature40DataSource,
   Feature50DataSource,
@@ -105,6 +107,13 @@
         dataSource={Content131DataSource}
         isMobile={this.state.isMobile}
       />,
+      <Content13
+        id="Content13_2"
+        key="Content13_2"
+        dataSource={Content132DataSource}
+        isMobile={this.state.isMobile}
+      />,
+      // <FooterComponent key="FooterComponent" />,
     ];
     return (
       <div
diff --git a/src/Home/less/common.less b/src/Home/less/common.less
index a0ca2a0..307afc0 100644
--- a/src/Home/less/common.less
+++ b/src/Home/less/common.less
@@ -1,4 +1,3 @@
-
 // @import "~antd/lib/style/v2-compatible-reset.less";
 
 body {
@@ -40,3 +39,10 @@
   padding: 0;
   margin: 0;
 }
+
+.home-page-wrapper {
+  &:nth-child(odd) {
+    background: url('@/assets/home/page-bg.png') no-repeat;
+    background-size: cover;
+  }
+}
diff --git a/src/Home/less/content.less b/src/Home/less/content.less
index c5ebf36..5d6a48f 100644
--- a/src/Home/less/content.less
+++ b/src/Home/less/content.less
@@ -10,7 +10,8 @@
     margin: auto;
     will-change: transform;
   }
-  .title-wrapper > h1, > h1 {
+  .title-wrapper > h1,
+  > h1 {
     font-size: 32px;
     color: @text-color;
     margin-bottom: 16px;
@@ -22,21 +23,21 @@
 }
 
 .@{homepage} {
-  padding: 128px 24px;
+  padding: 64px 24px;
 }
 
 @media screen and (max-width: 767px) {
   .@{homepage}-wrapper {
     .@{homepage} {
       padding: 56px 24px;
-      >h1 {
+      > h1 {
         font-size: 24px;
         margin: 0 auto 32px;
         &.title-h1 {
           margin-bottom: 8px;
         }
       }
-      >p {
+      > p {
         margin-bottom: 32px;
       }
     }
diff --git a/src/Home/less/content13.less b/src/Home/less/content13.less
index c14e943..5366b05 100644
--- a/src/Home/less/content13.less
+++ b/src/Home/less/content13.less
@@ -1,16 +1,16 @@
 @content13: content13;
 .@{content13}-wrapper {
-  height: 664px;
-  background: url('https://gw.alipayobjects.com/zos/rmsportal/ZsWYzLOItgeaWDSsXdZd.svg')
-    no-repeat bottom;
+  height: 654px;
+  // background: url('https://gw.alipayobjects.com/zos/rmsportal/ZsWYzLOItgeaWDSsXdZd.svg')
+  //   no-repeat bottom;
   background-size: cover;
   background-size: 100%;
   margin: 0 auto;
   overflow: hidden;
-  padding: 96px 0;
+  padding: 64px 0;
   &.home-page-wrapper {
     .title-wrapper {
-      margin-bottom: 32px;
+      margin-bottom: 0;
     }
   }
   .title-content {
@@ -18,8 +18,105 @@
   }
 }
 
+.content131-wrapper {
+  height: 578px;
+
+  .contact-item {
+    display: flex;
+    align-items: center;
+    padding-left: 64px;
+    margin-bottom: 16px;
+
+    &:last-child {
+      margin-bottom: 0;
+    }
+  }
+}
+
+.content132-wrapper {
+  height: 528px;
+  .enroll-item {
+    display: flex;
+    padding: 26px 36px;
+    min-width: 0;
+    border: #4564ff solid 1px;
+    border-radius: 8px;
+    flex: 1;
+    flex-direction: row;
+    .enroll-icon {
+      margin-right: 36px;
+      img {
+        width: 94px;
+        height: auto;
+      }
+    }
+    .enroll-info {
+      display: flex;
+      justify-content: space-around;
+      min-width: 0;
+      flex: 1;
+      flex-direction: column;
+      .enroll-title {
+        font-size: 20px;
+        font-weight: 400;
+        color: #1f6cdd;
+        &::after {
+          display: block;
+          margin-top: 18px;
+          width: 50px;
+          height: 2px;
+          border-radius: 1.5px;
+          background: #1f6cdd;
+          content: ' ';
+          transition-duration: 0.5s;
+        }
+      }
+      .download-btn {
+        box-sizing: content-box;
+        // padding: 0 2em;
+        width: 50%;
+        font-size: 14px;
+        line-height: 2;
+        border: 1px solid #73c6f4;
+        border-radius: 6px;
+        text-align: center;
+        color: #ffffff;
+        background: #4564ff;
+        cursor: pointer;
+      }
+      &:hover {
+        .enroll-title {
+          &::after {
+            width: 96px;
+          }
+        }
+      }
+    }
+  }
+}
+
 @media screen and (max-width: 767px) {
   .@{content13}-wrapper {
-    padding-bottom: 0;
+    padding-bottom: 64px;
+  }
+
+  .content131-wrapper {
+    height: 776px;
+  }
+
+  .content132-wrapper {
+    height: 744px;
+  }
+
+  .content131-wrapper,
+  .content132-wrapper {
+    .ant-col + .ant-col {
+      margin-top: 36px;
+    }
+
+    .contact-item {
+      padding-left: 0;
+      justify-content: center;
+    }
   }
 }
diff --git a/src/Home/less/content9.less b/src/Home/less/content9.less
index b1b0126..8d5f64e 100644
--- a/src/Home/less/content9.less
+++ b/src/Home/less/content9.less
@@ -7,7 +7,9 @@
     overflow: initial;
   }
   .@{content9} {
-    min-height: 800px;
+    // min-height: 800px;
+    height: 1110px;
+    box-sizing: content-box;
     padding: 64px 0 0;
   }
   .timeline {
@@ -21,7 +23,7 @@
       width: 0;
       height: ~'calc(100% - 108px)';
       margin: 34px 0;
-      border-left: 2px #ebedf0 dashed;
+      border-left: 2px #1890ff dashed;
     }
   }
   .block-wrapper {
@@ -78,6 +80,7 @@
       font-size: 14px;
       position: relative;
       min-height: 18px;
+      font-weight: bold;
     }
     .block-icon {
       position: absolute;
@@ -87,7 +90,7 @@
     .block-content {
       width: 300px;
       color: #314659;
-      font-size: 12px;
+      font-size: 14px;
       min-height: 18px;
       word-break: break-all;
     }
@@ -98,6 +101,7 @@
   .@{content9}-wrapper {
     padding-bottom: 0;
     .@{content9} {
+      height: 722px;
       padding: 64px 24px;
     }
     .timeline {
diff --git a/src/Home/less/custom.less b/src/Home/less/custom.less
index b7ffa40..d1764a3 100644
--- a/src/Home/less/custom.less
+++ b/src/Home/less/custom.less
@@ -1,7 +1,10 @@
 // @import '~antd/lib/style/themes/default.less';
-@import '~antd/lib/style/index.less';
+// @import '~antd/lib/style/index.less';
+@import '~antd/es/style/themes/default.less';
+@import '~antd/dist/antd.less';
 
 @line-color: #e9e9e9;
+@primary-color: #3a71ff;
 
 @shadow-color: rgba(0, 0, 0, 0.15);
 
diff --git a/src/Home/less/feature4.less b/src/Home/less/feature4.less
index 8ccb090..b745eb1 100644
--- a/src/Home/less/feature4.less
+++ b/src/Home/less/feature4.less
@@ -1,14 +1,16 @@
 @content6: content6;
 .@{content6}-wrapper {
   min-height: 720px;
+  padding-top: 64px;
   .@{content6} {
     height: 100%;
     display: flex;
     align-items: center;
+    padding-top: 0;
 
     &-text {
       min-height: 424px;
-      >*.queue-anim-leaving {
+      > *.queue-anim-leaving {
         position: relative !important;
       }
       .title-h1 {
@@ -49,7 +51,7 @@
 
 @media screen and (max-width: 767px) {
   .@{content6}-wrapper {
-    height: 860px;
+    height: 1114px;
     overflow: hidden;
     .@{content6} {
       display: block;
@@ -59,8 +61,8 @@
         width: 100%;
       }
       &-text {
-        >h1,
-        >p {
+        > h1,
+        > p {
           text-align: center;
         }
         > h1 {
diff --git a/src/Home/less/feature5.less b/src/Home/less/feature5.less
index aa2678d..bddc4c3 100644
--- a/src/Home/less/feature5.less
+++ b/src/Home/less/feature5.less
@@ -1,17 +1,19 @@
 @content7: content7;
 .@{content7}-wrapper {
-  min-height: 720px;
+  height: 802px;
   .@{content7} {
-    >h1,
-    >p {
+    > h1,
+    > p {
       text-align: center;
     }
     &-tag {
-      & i {
+      display: flex;
+      align-items: center;
+      & i,
+      & img {
         width: 12px;
         height: 14px;
-        display: inline-block;
-        vertical-align: middle;
+        display: block;
         margin-right: 5px;
       }
       &-name {
@@ -49,7 +51,7 @@
 
 @media screen and (max-width: 767px) {
   .@{content7}-wrapper {
-    min-height: 980px;
+    min-height: 1000px;
     overflow: hidden;
     .@{content7} {
       max-width: 100%;
diff --git a/src/Home/less/pricing2.less b/src/Home/less/pricing2.less
index 69b193e..ef5fc84 100644
--- a/src/Home/less/pricing2.less
+++ b/src/Home/less/pricing2.less
@@ -1,15 +1,15 @@
 @pricing2: pricing2;
 
 .@{pricing2}-wrapper {
-  min-height: 760px;
+  min-height: 500px;
 
   .@{pricing2} {
-    >p {
+    > p {
       text-align: center;
     }
 
     &-content-wrapper {
-      min-height: 400px;
+      // min-height: 400px;
     }
 
     &-table-name-block {
@@ -22,6 +22,12 @@
       font-size: 24px;
     }
 
+    &-table-name-icon {
+      img {
+        width: 48px;
+      }
+    }
+
     &-table-money {
       font-size: 16px;
       margin: 8px 0 16px;
diff --git a/src/assets/common/icon-title-bg.png b/src/assets/common/icon-title-bg.png
new file mode 100644
index 0000000..a367950
--- /dev/null
+++ b/src/assets/common/icon-title-bg.png
Binary files differ
diff --git a/src/assets/home/enroll-01.png b/src/assets/home/enroll-01.png
new file mode 100644
index 0000000..6665af5
--- /dev/null
+++ b/src/assets/home/enroll-01.png
Binary files differ
diff --git a/src/assets/home/enroll-02.png b/src/assets/home/enroll-02.png
new file mode 100644
index 0000000..35cf9d0
--- /dev/null
+++ b/src/assets/home/enroll-02.png
Binary files differ
diff --git a/src/assets/home/jiang1.png b/src/assets/home/jiang1.png
new file mode 100644
index 0000000..848b75b
--- /dev/null
+++ b/src/assets/home/jiang1.png
Binary files differ
diff --git a/src/assets/home/jiang2.png b/src/assets/home/jiang2.png
new file mode 100644
index 0000000..6dc1f4d
--- /dev/null
+++ b/src/assets/home/jiang2.png
Binary files differ
diff --git a/src/assets/home/jiang3.png b/src/assets/home/jiang3.png
new file mode 100644
index 0000000..7cdd88e
--- /dev/null
+++ b/src/assets/home/jiang3.png
Binary files differ
diff --git a/src/assets/home/jiang4.png b/src/assets/home/jiang4.png
new file mode 100644
index 0000000..7b846c1
--- /dev/null
+++ b/src/assets/home/jiang4.png
Binary files differ
diff --git a/src/assets/home/page-bg-mobile.png b/src/assets/home/page-bg-mobile.png
new file mode 100644
index 0000000..d3c567d
--- /dev/null
+++ b/src/assets/home/page-bg-mobile.png
Binary files differ
diff --git a/src/assets/home/page-bg.png b/src/assets/home/page-bg.png
new file mode 100644
index 0000000..00b80dd
--- /dev/null
+++ b/src/assets/home/page-bg.png
Binary files differ
diff --git a/src/assets/home/step1.png b/src/assets/home/step1.png
new file mode 100644
index 0000000..eec9102
--- /dev/null
+++ b/src/assets/home/step1.png
Binary files differ
diff --git a/src/assets/home/step2.png b/src/assets/home/step2.png
new file mode 100644
index 0000000..f38a891
--- /dev/null
+++ b/src/assets/home/step2.png
Binary files differ
diff --git a/src/assets/home/step3.png b/src/assets/home/step3.png
new file mode 100644
index 0000000..5ee4360
--- /dev/null
+++ b/src/assets/home/step3.png
Binary files differ
diff --git a/src/assets/home/step4.png b/src/assets/home/step4.png
new file mode 100644
index 0000000..725300a
--- /dev/null
+++ b/src/assets/home/step4.png
Binary files differ
diff --git a/src/assets/home/tab1.png b/src/assets/home/tab1.png
new file mode 100644
index 0000000..345c0a7
--- /dev/null
+++ b/src/assets/home/tab1.png
Binary files differ
diff --git a/src/assets/home/tab2.png b/src/assets/home/tab2.png
new file mode 100644
index 0000000..4e51f36
--- /dev/null
+++ b/src/assets/home/tab2.png
Binary files differ
diff --git a/src/assets/home/tab3.png b/src/assets/home/tab3.png
new file mode 100644
index 0000000..15d9393
--- /dev/null
+++ b/src/assets/home/tab3.png
Binary files differ
diff --git a/src/assets/icon-qrcode.jpg b/src/assets/icon-qrcode.jpg
new file mode 100644
index 0000000..a675347
--- /dev/null
+++ b/src/assets/icon-qrcode.jpg
Binary files differ
diff --git a/src/components/Title/Title.less b/src/components/Title/Title.less
new file mode 100644
index 0000000..1025ef0
--- /dev/null
+++ b/src/components/Title/Title.less
@@ -0,0 +1,36 @@
+.title-card-wrapper {
+  margin: 0 auto 60px;
+  width: 537px;
+  height: 114px;
+  text-align: center;
+  background-position: center center;
+  background-size: cover;
+  .title-card-title {
+    padding-top: 8px;
+    font-size: 42px;
+    font-weight: 500;
+    color: #00116e;
+    line-height: 60px;
+  }
+}
+
+@media (max-width: 767px) {
+  .title-card-wrapper {
+    width: 320px;
+    height: 96px;
+    // .title-card-title {
+    //   padding-top: 8px;
+    //   font-size: 94px;
+    //   line-height: 130px;
+    // }
+    // &.large {
+    //   width: 1546px;
+    //   height: 328px;
+    //   .title-card-title {
+    //     padding-top: 26px;
+    //     font-size: 123px;
+    //     line-height: 174px;
+    //   }
+    // }
+  }
+}
diff --git a/src/components/Title/Title.tsx b/src/components/Title/Title.tsx
new file mode 100644
index 0000000..8f7935b
--- /dev/null
+++ b/src/components/Title/Title.tsx
@@ -0,0 +1,31 @@
+import IconTitleBg from '@/assets/common/icon-title-bg.png';
+import { BasicComponent, ComponentDefaults } from '@/utils/typings';
+import classNames from 'classnames';
+import * as React from 'react';
+
+import './Title.less';
+
+export type TitleProps = {
+  title?: string;
+  large?: boolean;
+} & BasicComponent;
+
+const defaultProps = {
+  ...ComponentDefaults,
+};
+
+function Title(props: TitleProps) {
+  const { className, children, large, title, ...rest } = props;
+  return (
+    <div
+      className={classNames('title-card-wrapper', className, { large })}
+      style={{ backgroundImage: `url(${IconTitleBg})` }}
+    >
+      <div className="title-card-title">{title}</div>
+    </div>
+  );
+}
+
+Title.defaultProps = defaultProps;
+
+export default Title;
diff --git a/src/utils/common.ts b/src/utils/common.ts
new file mode 100644
index 0000000..159e325
--- /dev/null
+++ b/src/utils/common.ts
@@ -0,0 +1,11 @@
+import { saveAs } from 'file-saver';
+
+const regFileName = /(.*\/)*([^.]+).*/gi;
+export function downloadFileByUrl(fileUrl: string, fileName?: string) {
+  //const suffix = /\.([0-9a-z]+)(?:[\?#]|$)/i.exec(fileUrl)[1];
+  const suffix = /\.([0-9a-z]+)(?:[#]|$)/i.exec(fileUrl)?.[1];
+  let name = fileName ? fileName : fileUrl.replace(regFileName, '$2');
+  name += `.${suffix}`;
+  saveAs(`${fileUrl}?timestamp=${new Date().getTime()}`, name);
+  return;
+}
diff --git a/src/utils/typings.ts b/src/utils/typings.ts
new file mode 100644
index 0000000..60e6251
--- /dev/null
+++ b/src/utils/typings.ts
@@ -0,0 +1,12 @@
+import type { CSSProperties, ReactNode } from 'react';
+
+export interface BasicComponent {
+  className?: string;
+  style?: CSSProperties;
+  children?: ReactNode;
+}
+
+export const ComponentDefaults = {
+  className: '',
+  style: {},
+};

--
Gitblit v1.9.1