diff --git a/README.md b/README.md
index 18bc70e..8e0f40a 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,18 @@
-# React + Vite
+# STAR International UI
-This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
+React **18** + Vite 国际站前端。
-Currently, two official plugins are available:
+- 公众站:对齐国内 STAR 站信息架构与视觉(顶栏 / Logo 搜索 / 导航 / 页脚),组件以 Tailwind + shadcn 风格轻量组件为主;图片资源来自国内站 `assets/img`
+- 管理端:`/admin` 仍使用 Ant Design,便于 CRUD
+- 中英文切换仅作用于 UI 文案(`react-i18next`)
-- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) (or [oxc](https://oxc.rs) when used in [rolldown-vite](https://vite.dev/guide/rolldown)) for Fast Refresh
-- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
+## 开发
-## React Compiler
+```bash
+npm install
+npm run dev
+```
-The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
+需先启动 API:`/root/api/star-international-api`(默认代理 `/api` → `127.0.0.1:8000`)。
-## Expanding the ESLint configuration
-
-If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.
+后台演示账号:`admin` / `admin123`
diff --git a/index.html b/index.html
index 4d1845b..9bd079e 100644
--- a/index.html
+++ b/index.html
@@ -2,9 +2,9 @@
-
+
- template-ui
+ STAR International
diff --git a/package-lock.json b/package-lock.json
index b7ab6d1..c5db108 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,23 +16,35 @@
"@rematch/loading": "^2.1.2",
"@rematch/persist": "^2.1.2",
"@rematch/select": "^3.1.2",
+ "@tiptap/extension-link": "^3.31.4",
+ "@tiptap/extension-placeholder": "^3.31.4",
+ "@tiptap/extension-underline": "^3.31.4",
+ "@tiptap/pm": "^3.31.4",
+ "@tiptap/react": "^3.31.4",
+ "@tiptap/starter-kit": "^3.31.4",
"ahooks": "^3.8.4",
"antd": "^5.24.2",
"axios": "^1.7.9",
+ "class-variance-authority": "^0.7.1",
+ "clsx": "^2.1.1",
"dayjs": "^1.11.13",
+ "i18next": "^26.4.2",
"lodash-es": "^4.17.21",
- "react": "^19.2.0",
- "react-dom": "^19.2.0",
+ "lucide-react": "^1.53.0",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
+ "react-i18next": "^17.0.16",
"react-redux": "^9.2.0",
"react-router-dom": "^7.9.6",
"redux": "^5.0.1",
+ "tailwind-merge": "^3.7.0",
"xlsx": "^0.18.5"
},
"devDependencies": {
"@eslint/js": "^9.39.1",
"@tailwindcss/postcss": "^4.1.0",
- "@types/react": "^19.2.2",
- "@types/react-dom": "^19.2.2",
+ "@types/react": "^18.3.12",
+ "@types/react-dom": "^18.3.1",
"@vitejs/plugin-react": "^5.1.0",
"autoprefixer": "^10.4.20",
"eslint": "^9.39.1",
@@ -134,9 +146,9 @@
}
},
"node_modules/@ant-design/icons-svg": {
- "version": "4.4.2",
- "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz",
- "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.6.0.tgz",
+ "integrity": "sha512-PRomU725ABMf/lnQp5HiB7my1kjEbFY0D10N4lXYxK6TIB1gKjIVD5MRThpDaezLgw1D774J8eOeeDB0M6wHrQ==",
"license": "MIT"
},
"node_modules/@ant-design/react-slick": {
@@ -391,9 +403,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.28.4",
- "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.28.4.tgz",
- "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==",
+ "version": "7.29.10",
+ "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.29.10.tgz",
+ "integrity": "sha512-NpugTzbKgGrNe45Ui32cN8vCFFMxVtP/9rtfwv0nP5FRDAjvYBxJcLVpYA9mr1jxP6cnIT7x9LUzuDTbWYYNRA==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -1112,6 +1124,23 @@
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
+ "node_modules/@floating-ui/core": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.8.0.tgz",
+ "integrity": "sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.12"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.12.tgz",
+ "integrity": "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==",
+ "license": "MIT",
+ "optional": true
+ },
"node_modules/@formily/antd-v5": {
"version": "1.2.4",
"resolved": "https://registry.npmmirror.com/@formily/antd-v5/-/antd-v5-1.2.4.tgz",
@@ -1409,9 +1438,9 @@
"license": "Apache-2.0"
},
"node_modules/@rc-component/async-validator": {
- "version": "5.0.4",
- "resolved": "https://registry.npmmirror.com/@rc-component/async-validator/-/async-validator-5.0.4.tgz",
- "integrity": "sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/@rc-component/async-validator/-/async-validator-5.1.2.tgz",
+ "integrity": "sha512-WYbrZSjzznU1ekD0qFq2qRxt309VoS61MTG5npnFQlKYcoy9IzU8T+ZCIhq5bGAXRbXysABFWTspicMfmWFwow==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.24.4"
@@ -1451,9 +1480,9 @@
}
},
"node_modules/@rc-component/mini-decimal": {
- "version": "1.1.0",
- "resolved": "https://registry.npmmirror.com/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz",
- "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/@rc-component/mini-decimal/-/mini-decimal-1.1.4.tgz",
+ "integrity": "sha512-xiuXcaCwyOWpD8a8scdExFl+bntNphAW8XeenL1ig2en0AAZY0Pcp4pC0dI22qJ+NvxKn9RoNIoRdqYU3BLH4w==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.18.0"
@@ -1499,13 +1528,12 @@
}
},
"node_modules/@rc-component/qrcode": {
- "version": "1.1.0",
- "resolved": "https://registry.npmmirror.com/@rc-component/qrcode/-/qrcode-1.1.0.tgz",
- "integrity": "sha512-ABA80Yer0c6I2+moqNY0kF3Y1NxIT6wDP/EINIqbiRbfZKP1HtHpKMh8WuTXLgVGYsoWG2g9/n0PgM8KdnJb4Q==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/@rc-component/qrcode/-/qrcode-1.1.3.tgz",
+ "integrity": "sha512-aGv6alnn4HbDEsURzKP+jv13rbi1VxmAYfBNZr5GKF1iohMNWy5tAVoJ1E3cOvzMB1kbUPvCXchM6zSFlRGPhA==",
"license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.24.7",
- "classnames": "^2.3.2"
+ "@babel/runtime": "^7.24.7"
},
"engines": {
"node": ">=8.x"
@@ -1536,9 +1564,9 @@
}
},
"node_modules/@rc-component/trigger": {
- "version": "2.3.0",
- "resolved": "https://registry.npmmirror.com/@rc-component/trigger/-/trigger-2.3.0.tgz",
- "integrity": "sha512-iwaxZyzOuK0D7lS+0AQEtW52zUWxoGqTGkke3dRyb8pYiShmRpCjB/8TzPI4R6YySCH7Vm9BZj/31VPiiQTLBg==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/@rc-component/trigger/-/trigger-2.3.1.tgz",
+ "integrity": "sha512-ORENF39PeXTzM+gQEshuk460Z8N4+6DkjpxlpE7Q3gYy1iBpLrx0FOJz3h62ryrJZ/3zCAUIkT1Pb/8hHWpb3A==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.23.2",
@@ -2190,6 +2218,453 @@
"tailwindcss": "4.1.17"
}
},
+ "node_modules/@tiptap/core": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.31.4.tgz",
+ "integrity": "sha512-cIVUQYBycighzsk6GbmCef8ZiEDVxoT5EuAe4xg2q9dNkDqCXVqI4YGr9aavCQEiAS4uHiRwqvcsPqJHipFDfg==",
+ "license": "MIT",
+ "peer": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/pm": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-blockquote": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-3.31.4.tgz",
+ "integrity": "sha512-FHnbvCIW0eDKgUUFjmvEB0ax9YUBW7/Unm+38qpuQROvU872yRqhnDtycKT9IKk46jNdjM4A4fAGUbge10CrAA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4",
+ "@tiptap/pm": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-bold": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.31.4.tgz",
+ "integrity": "sha512-QX1xoXvO0gz6uVsoLegumqQ4MJXL7lcUDQZ4J7la7LBqiIh4efrCmp2EXbhpr37M/YQL7w8q3g7H/VovSh7xIg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-bubble-menu": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-3.31.4.tgz",
+ "integrity": "sha512-Ml/yswuys+3QkOMajfXyAGlUKCxEbT3dMyF8vHwQ5mDk9MDm+dqp10It5CrDBkUT/KkVTa6AJI3kb0TXZJZiAA==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@floating-ui/dom": "^1.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4",
+ "@tiptap/pm": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-bullet-list": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-3.31.4.tgz",
+ "integrity": "sha512-gHn1RDR4olCnmKpH+G9x+f8R+iKPNVdLlvbFkIpR/stjabZi7fB4Rr5GiHWsulbtxAjdQrNjnVeNdGM4rBxApw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/extension-list": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-code": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-3.31.4.tgz",
+ "integrity": "sha512-pzi8GNDs5J1DEoO1HNYiJ5WZpgOZzlc/2VIa77mMpEuD4hZxuK0BQzlF/O6Ps/O5P1lGJT4xS0Yowpzb9mD9RA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-code-block": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-3.31.4.tgz",
+ "integrity": "sha512-su/B/cfQ1HpiHl6JfJ6wa+RVEptiYsV4dCntE8XQNj2dUcII4y6w6PQbbswOoDrU79uXHsAvpy44215rghG4LA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4",
+ "@tiptap/pm": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-document": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.31.4.tgz",
+ "integrity": "sha512-vT20u62RWR+BLIyNJ54e24MPUY4zm8VF7tcgJnxQXi7BgVJWcNMtMWWDIkPJ4JNXwfoIznKh3jzYsaYmbCJgQQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-dropcursor": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-3.31.4.tgz",
+ "integrity": "sha512-5TbCPCC4RL+QT1NYHjXCYDBHBtVqYOFvFEnk3v98lvXCM2PNL13ofXUfJPuykAVy1OdTAx4DlZOQAD9WKy/IdQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/extensions": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-floating-menu": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-3.31.4.tgz",
+ "integrity": "sha512-pKzulkDmolpVt7IP9FSPsC5pKbXQ5pyeqkaAYr8cyOVW+KUObpPRIzAuXvEso8PCjWgwJ1f2qyishOEMw8MbfQ==",
+ "license": "MIT",
+ "optional": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@floating-ui/dom": "^1.0.0",
+ "@tiptap/core": "3.31.4",
+ "@tiptap/pm": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-gapcursor": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-3.31.4.tgz",
+ "integrity": "sha512-hBogUAepQH6IQUhaePhPWzQ1Oeu+yqlJVMKO06Eue5m36uRy1PZZAQ780pCGT0SC4R5MH2td1N8EUQ7bupQdDA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/extensions": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-hard-break": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.31.4.tgz",
+ "integrity": "sha512-oLNajLyUvRMg1qtzFgKGduygTlpaHFB9PU+M+pUWdA4sa1bRnxS2Y++Ao4lHYopJ7nxatLndrYoCIHkotqkPDQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-heading": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-3.31.4.tgz",
+ "integrity": "sha512-KqlSeLathpdxCc3kVHBCA/RkHvb+V7u5vgiSEu1Cv3L70r7F19COMGODav/k1AGYBgEXKL6lM9cy8cloE5/28g==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-horizontal-rule": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.31.4.tgz",
+ "integrity": "sha512-ws0Kh8kfHL7ESILSXj0HJAXs8G10ewlW1sedXKm8dm0op9L8il+xl8bEJVoqG/jMf77900Fc2CaQldcCGRpF1g==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4",
+ "@tiptap/pm": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-italic": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.31.4.tgz",
+ "integrity": "sha512-pftTQBPYZocNDAj/u6OyDIp7YxmN0+N895cQPogJQ6qMHdLiRhzgawiEewJkniyN1w8k3Wx/Etp8pTKrxaOOBQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-link": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.31.4.tgz",
+ "integrity": "sha512-LLxW3qfeL9gvDdMPVdxYFYZ0zZSjsoIDhOqjJ5U2UfaK3U2iwkKTBgV2qT+FWf3uUHmBRjBZ08q3dRPmWBAD5g==",
+ "license": "MIT",
+ "dependencies": {
+ "linkifyjs": "^4.3.3"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4",
+ "@tiptap/pm": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-list": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.31.4.tgz",
+ "integrity": "sha512-Wd4YRYxOdf+TtF33/QsRo1RK1CecVxjYGjUBIKNGHAywfh8tghgV4YOUCiV1iJqYt2IBs+RWlIqTmdIPzBrd4A==",
+ "license": "MIT",
+ "peer": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4",
+ "@tiptap/pm": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-list-item": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-3.31.4.tgz",
+ "integrity": "sha512-ao8XAPvhOrtGFILs+fKtOM91omDSpUC8X19m44gbaq5xJDVpIMZ0rP+NAVUS72G7LskhcHa0bu/Pm022bUVjVw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/extension-list": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-list-keymap": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-list-keymap/-/extension-list-keymap-3.31.4.tgz",
+ "integrity": "sha512-etdkl/YnYfwtALDxecJ+4WYgJAez1fn1vzzZqJklZBpgqiZtny3NxpvWS7/JhsltNG84Wo/oovpfJgVmzhddrw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/extension-list": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-ordered-list": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-3.31.4.tgz",
+ "integrity": "sha512-UNWyF+Dhm08znszIMnT8Y2kJ1lvtiCvUGs1aG7m9cPHxDa7VycWnOqdtXWkc+6xRLNiC0zgWCFWgLLHduV8pRQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/extension-list": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-paragraph": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.31.4.tgz",
+ "integrity": "sha512-WZlBgw+XVKXerRlmEsoQ7x1PwSU+dh3X+b70+ViZsLebdfsmmYBIaNDrvIGwG9UQr5eLnddJnZplMSTI2YKs+g==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-placeholder": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-3.31.4.tgz",
+ "integrity": "sha512-3SoJopaOzaA9IZHSk9ZXHiO6ib8ErPh7ssRh3bIaxfD+BqRyXcm4hV4yfFXTqrDCnl5FE+DbBRGmeVAVkDko3g==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/extensions": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-strike": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-3.31.4.tgz",
+ "integrity": "sha512-4MBr63TJIMqxCjE+gAPdlY1IdELgvbAP516K3Ntn/BkcpEbEoPMEYVz+XTxULyHQEuARDO6jsXPPxRXpA74jaw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-text": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.31.4.tgz",
+ "integrity": "sha512-WL2ZRpFksgQcXJN05/UQH09YCH9LlhdLrSEcviASvEH/aAfsKiJlDrouN8PET+YAWK/F5xFc5/Q1z0xj+I23jw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extension-underline": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.31.4.tgz",
+ "integrity": "sha512-0iFGPIqmqGkCrOFh1OPo7Dzv5s86dVN3bZaugsz0jK04otkb8bn04ZDKP2/6Wq+lcK0M9DfJ0QqfW5hC2nBZxQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/extensions": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.31.4.tgz",
+ "integrity": "sha512-nIupIne/sHpV2Kw1M4MOmr4+G454KI8BXM5+LWKOU2EpzfALZWVSy7koF9lVRna4Zp5Gv8hfg5Z8kvmrYQvhkw==",
+ "license": "MIT",
+ "peer": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4",
+ "@tiptap/pm": "3.31.4"
+ }
+ },
+ "node_modules/@tiptap/pm": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.31.4.tgz",
+ "integrity": "sha512-x7dwth79cQp4QGae66/RJqMDJQv0+n7b7dD7cyFQBWqzPFLJxN/4paHY4qbWedZjNLhRyIOAD9a5q4AYM1zmPA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "prosemirror-changeset": "^2.4.1",
+ "prosemirror-commands": "^1.7.1",
+ "prosemirror-dropcursor": "^1.8.2",
+ "prosemirror-gapcursor": "^1.4.1",
+ "prosemirror-history": "^1.5.0",
+ "prosemirror-inputrules": "^1.5.1",
+ "prosemirror-keymap": "^1.2.3",
+ "prosemirror-model": "^1.25.11",
+ "prosemirror-schema-list": "^1.5.1",
+ "prosemirror-state": "^1.4.4",
+ "prosemirror-tables": "^1.8.5",
+ "prosemirror-transform": "^1.12.0",
+ "prosemirror-view": "^1.42.3"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ }
+ },
+ "node_modules/@tiptap/react": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/react/-/react-3.31.4.tgz",
+ "integrity": "sha512-mBvvXgdPhMinT1NPfwHvFK1dFdMXHVWMSeNn0IPj7/zV0XBmOnASkEOwoIvl8NluKYEtpZBE1yA+6pN2enLa5g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/use-sync-external-store": "^0.0.6",
+ "fast-equals": "^5.3.3",
+ "use-sync-external-store": "^1.4.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "optionalDependencies": {
+ "@tiptap/extension-bubble-menu": "3.31.4",
+ "@tiptap/extension-floating-menu": "3.31.4"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "3.31.4",
+ "@tiptap/pm": "3.31.4",
+ "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
+ "@types/react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/@tiptap/starter-kit": {
+ "version": "3.31.4",
+ "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.31.4.tgz",
+ "integrity": "sha512-u7HIJ9vK6kFe4S4J2CIcDLrhRZzoTMSyU0XxjQ6lUNF7pWW3rMi//pvi8RcsZmxGjyb8CpXAqYgNl7f9WyaUeA==",
+ "license": "MIT",
+ "dependencies": {
+ "@tiptap/core": "3.31.4",
+ "@tiptap/extension-blockquote": "3.31.4",
+ "@tiptap/extension-bold": "3.31.4",
+ "@tiptap/extension-bullet-list": "3.31.4",
+ "@tiptap/extension-code": "3.31.4",
+ "@tiptap/extension-code-block": "3.31.4",
+ "@tiptap/extension-document": "3.31.4",
+ "@tiptap/extension-dropcursor": "3.31.4",
+ "@tiptap/extension-gapcursor": "3.31.4",
+ "@tiptap/extension-hard-break": "3.31.4",
+ "@tiptap/extension-heading": "3.31.4",
+ "@tiptap/extension-horizontal-rule": "3.31.4",
+ "@tiptap/extension-italic": "3.31.4",
+ "@tiptap/extension-link": "3.31.4",
+ "@tiptap/extension-list": "3.31.4",
+ "@tiptap/extension-list-item": "3.31.4",
+ "@tiptap/extension-list-keymap": "3.31.4",
+ "@tiptap/extension-ordered-list": "3.31.4",
+ "@tiptap/extension-paragraph": "3.31.4",
+ "@tiptap/extension-strike": "3.31.4",
+ "@tiptap/extension-text": "3.31.4",
+ "@tiptap/extension-underline": "3.31.4",
+ "@tiptap/extensions": "3.31.4",
+ "@tiptap/pm": "3.31.4"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ }
+ },
"node_modules/@types/babel__core": {
"version": "7.20.5",
"resolved": "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz",
@@ -2255,24 +2730,31 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/prop-types": {
+ "version": "15.7.15",
+ "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.15.tgz",
+ "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==",
+ "license": "MIT"
+ },
"node_modules/@types/react": {
- "version": "19.2.5",
- "resolved": "https://registry.npmmirror.com/@types/react/-/react-19.2.5.tgz",
- "integrity": "sha512-keKxkZMqnDicuvFoJbzrhbtdLSPhj/rZThDlKWCDbgXmUg0rEUFtRssDXKYmtXluZlIqiC5VqkCgRwzuyLHKHw==",
+ "version": "18.3.12",
+ "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.3.12.tgz",
+ "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==",
"license": "MIT",
"peer": true,
"dependencies": {
+ "@types/prop-types": "*",
"csstype": "^3.0.2"
}
},
"node_modules/@types/react-dom": {
- "version": "19.2.3",
- "resolved": "https://registry.npmmirror.com/@types/react-dom/-/react-dom-19.2.3.tgz",
- "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==",
+ "version": "18.3.1",
+ "resolved": "https://registry.npmmirror.com/@types/react-dom/-/react-dom-18.3.1.tgz",
+ "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==",
"license": "MIT",
"peer": true,
- "peerDependencies": {
- "@types/react": "^19.2.0"
+ "dependencies": {
+ "@types/react": "*"
}
},
"node_modules/@types/use-sync-external-store": {
@@ -2665,12 +3147,33 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
+ "node_modules/class-variance-authority": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmmirror.com/class-variance-authority/-/class-variance-authority-0.7.1.tgz",
+ "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "clsx": "^2.1.1"
+ },
+ "funding": {
+ "url": "https://polar.sh/cva"
+ }
+ },
"node_modules/classnames": {
"version": "2.5.1",
"resolved": "https://registry.npmmirror.com/classnames/-/classnames-2.5.1.tgz",
"integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==",
"license": "MIT"
},
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/codepage": {
"version": "1.15.0",
"resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
@@ -2733,12 +3236,16 @@
"license": "MIT"
},
"node_modules/cookie": {
- "version": "1.0.2",
- "resolved": "https://registry.npmmirror.com/cookie/-/cookie-1.0.2.tgz",
- "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/cookie/-/cookie-1.1.1.tgz",
+ "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==",
"license": "MIT",
"engines": {
"node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/copy-to-clipboard": {
@@ -3173,6 +3680,15 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/fast-equals": {
+ "version": "5.4.4",
+ "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.4.4.tgz",
+ "integrity": "sha512-d9/I4rfMfUlO9HOkQqLJgfyRM4siqk1SF3Gjxm4OAMZzV+kCKHe1t/bHxn3xtCPHs3HCQFcvqzkTuanzqECQxw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
@@ -3495,6 +4011,44 @@
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"license": "MIT"
},
+ "node_modules/html-parse-stringify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/html-parse-stringify/-/html-parse-stringify-4.0.1.tgz",
+ "integrity": "sha512-0zHsZJrK7S3K2aucXWL6ycoYJ/iNtIcFHC/nYQgFklPtrv5LpJctIiSCroWZWeuoXvuyFdzp6KzjJQ+OT5MfFw==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://locize.com"
+ }
+ },
+ "node_modules/i18next": {
+ "version": "26.4.2",
+ "resolved": "https://registry.npmmirror.com/i18next/-/i18next-26.4.2.tgz",
+ "integrity": "sha512-RX+R0VLg13IbvRuJSxnqykUFS9vQZTl8wYpWPCIUDWVrSGjsQywB5Y+pjzrkboxGAuYfJZVH1InFTdgBdxq6ug==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://www.locize.com/i18next"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.locize.com"
+ }
+ ],
+ "license": "MIT",
+ "peer": true,
+ "peerDependencies": {
+ "typescript": "^5 || ^6 || ^7"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
"node_modules/ignore": {
"version": "5.3.2",
"resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz",
@@ -3574,7 +4128,6 @@
"integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==",
"dev": true,
"license": "MIT",
- "peer": true,
"bin": {
"jiti": "lib/jiti-cli.mjs"
}
@@ -3592,7 +4145,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true,
"license": "MIT"
},
"node_modules/js-yaml": {
@@ -3694,7 +4246,6 @@
"integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==",
"dev": true,
"license": "MPL-2.0",
- "peer": true,
"dependencies": {
"detect-libc": "^2.0.3"
},
@@ -3950,6 +4501,12 @@
"url": "https://opencollective.com/parcel"
}
},
+ "node_modules/linkifyjs": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.3.3.tgz",
+ "integrity": "sha512-P8aEP5U/D1/IlTY2OeYsErdwh9bGuLE30NcXtKEjgdHcahveQoQwM2yZNsioQHsWFz0P7KKudisbrzCgR0sDHg==",
+ "license": "MIT"
+ },
"node_modules/locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz",
@@ -3985,6 +4542,18 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
"node_modules/lower-case": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz",
@@ -4004,6 +4573,21 @@
"yallist": "^3.0.2"
}
},
+ "node_modules/lucide-react": {
+ "version": "1.53.0",
+ "resolved": "https://registry.npmmirror.com/lucide-react/-/lucide-react-1.53.0.tgz",
+ "integrity": "sha512-OxJ7elNku+iqVzOolk5caxq2LM8Mck6lhA6uZx3g2PlZ53+FvBnT6PlJxGCukCa6oF5wQwgSatn9cH1b4olWmQ==",
+ "license": "ISC",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
"node_modules/magic-string": {
"version": "0.30.21",
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz",
@@ -4135,6 +4719,12 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/orderedmap": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz",
+ "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==",
+ "license": "MIT"
+ },
"node_modules/p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz",
@@ -4302,6 +4892,145 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/prosemirror-changeset": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.4.4.tgz",
+ "integrity": "sha512-Gyuz9jYdrAeA9I7AholyOes9KUmv/lEwsC5O9s5xF5VB3EgTPsXMGUxz4+H1B+wKVPdZbvRcg1Cp3x8qX+8ofA==",
+ "license": "MIT",
+ "dependencies": {
+ "prosemirror-transform": "^1.0.0"
+ }
+ },
+ "node_modules/prosemirror-commands": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.2.tgz",
+ "integrity": "sha512-q6Q6szxqdu9Xd6EcdKsqXghu5nQdZTpB4Q9yd04WRc7/jt763e/rT60Owh0L1GYY+T46o5rD+9lEN36dZS43tw==",
+ "license": "MIT",
+ "dependencies": {
+ "prosemirror-model": "^1.0.0",
+ "prosemirror-state": "^1.0.0",
+ "prosemirror-transform": "^1.10.2"
+ }
+ },
+ "node_modules/prosemirror-dropcursor": {
+ "version": "1.8.4",
+ "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.4.tgz",
+ "integrity": "sha512-VmKxhcA6a+h5oPSYmfF1ZNeQqPbyYaIxqZsKqeYCyTlPtrjUgNaHL3P8vVaO19oqAV0zuaM/axkowZHrB1P3Tg==",
+ "license": "MIT",
+ "dependencies": {
+ "prosemirror-state": "^1.0.0",
+ "prosemirror-transform": "^1.1.0",
+ "prosemirror-view": "^1.1.0"
+ }
+ },
+ "node_modules/prosemirror-gapcursor": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.4.1.tgz",
+ "integrity": "sha512-pMdYaEnjNMSwl11yjEGtgTmLkR08m/Vl+Jj443167p9eB3HVQKhYCc4gmHVDsLPODfZfjr/MmirsdyZziXbQKw==",
+ "license": "MIT",
+ "dependencies": {
+ "prosemirror-keymap": "^1.0.0",
+ "prosemirror-model": "^1.0.0",
+ "prosemirror-state": "^1.0.0",
+ "prosemirror-view": "^1.0.0"
+ }
+ },
+ "node_modules/prosemirror-history": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.5.1.tgz",
+ "integrity": "sha512-onlwnqKvgtFg6srZOmDOAhlAy1FIHQpOExORybX0S+DvJepE5tPALrB9iGet/2sqqqrelSnB10OoiOJqAvu2DA==",
+ "license": "MIT",
+ "dependencies": {
+ "prosemirror-state": "^1.2.2",
+ "prosemirror-transform": "^1.0.0",
+ "prosemirror-view": "^1.31.0",
+ "rope-sequence": "^1.3.0"
+ }
+ },
+ "node_modules/prosemirror-inputrules": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.5.1.tgz",
+ "integrity": "sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==",
+ "license": "MIT",
+ "dependencies": {
+ "prosemirror-state": "^1.0.0",
+ "prosemirror-transform": "^1.0.0"
+ }
+ },
+ "node_modules/prosemirror-keymap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz",
+ "integrity": "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==",
+ "license": "MIT",
+ "dependencies": {
+ "prosemirror-state": "^1.0.0",
+ "w3c-keyname": "^2.2.0"
+ }
+ },
+ "node_modules/prosemirror-model": {
+ "version": "1.25.12",
+ "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.12.tgz",
+ "integrity": "sha512-Ue2gTmXMa7EhpLNhC7J+h4+ykD8ha12K6rrZFFKKJHBForfIStw5gJ6Zrf1mqqAa9NmpmEB4wp9bKmA4eUVjWg==",
+ "license": "MIT",
+ "dependencies": {
+ "orderedmap": "^2.0.0"
+ }
+ },
+ "node_modules/prosemirror-schema-list": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.5.1.tgz",
+ "integrity": "sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==",
+ "license": "MIT",
+ "dependencies": {
+ "prosemirror-model": "^1.0.0",
+ "prosemirror-state": "^1.0.0",
+ "prosemirror-transform": "^1.7.3"
+ }
+ },
+ "node_modules/prosemirror-state": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.4.tgz",
+ "integrity": "sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==",
+ "license": "MIT",
+ "dependencies": {
+ "prosemirror-model": "^1.0.0",
+ "prosemirror-transform": "^1.0.0",
+ "prosemirror-view": "^1.27.0"
+ }
+ },
+ "node_modules/prosemirror-tables": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.8.5.tgz",
+ "integrity": "sha512-V/0cDCsHKHe/tfWkeCmthNUcEp1IVO3p6vwN8XtwE9PZQLAZJigbw3QoraAdfJPir4NKJtNvOB8oYGKRl+t0Dw==",
+ "license": "MIT",
+ "dependencies": {
+ "prosemirror-keymap": "^1.2.3",
+ "prosemirror-model": "^1.25.4",
+ "prosemirror-state": "^1.4.4",
+ "prosemirror-transform": "^1.10.5",
+ "prosemirror-view": "^1.41.4"
+ }
+ },
+ "node_modules/prosemirror-transform": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.12.2.tgz",
+ "integrity": "sha512-PE/aY0HEY4zczvmqrilgkUK/WautF0chvMqkmM/iN5/aPHvwrCWaQZjS6CIZp+K84YrvPFqrL+YArrfJX8xX7g==",
+ "license": "MIT",
+ "dependencies": {
+ "prosemirror-model": "^1.21.0"
+ }
+ },
+ "node_modules/prosemirror-view": {
+ "version": "1.42.6",
+ "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.42.6.tgz",
+ "integrity": "sha512-3g25f6hKV2bBxo3puH3EcYWmmVNSH0iWmNsMVT7sugDSpA025jgpOLarcDWr39SdzPjYMaiYtRdNtXialPSjEQ==",
+ "license": "MIT",
+ "dependencies": {
+ "prosemirror-model": "^1.25.12",
+ "prosemirror-state": "^1.0.0",
+ "prosemirror-transform": "^1.1.0"
+ }
+ },
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
@@ -4675,9 +5404,9 @@
}
},
"node_modules/rc-segmented": {
- "version": "2.7.0",
- "resolved": "https://registry.npmmirror.com/rc-segmented/-/rc-segmented-2.7.0.tgz",
- "integrity": "sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==",
+ "version": "2.7.1",
+ "resolved": "https://registry.npmmirror.com/rc-segmented/-/rc-segmented-2.7.1.tgz",
+ "integrity": "sha512-izj1Nw/Dw2Vb7EVr+D/E9lUTkBe+kKC+SAFSU9zqr7WV2W5Ktaa9Gc7cB2jTqgk8GROJayltaec+DBlYKc6d+g==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.11.1",
@@ -4931,26 +5660,30 @@
}
},
"node_modules/react": {
- "version": "19.2.0",
- "resolved": "https://registry.npmmirror.com/react/-/react-19.2.0.tgz",
- "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==",
+ "version": "18.3.1",
+ "resolved": "https://registry.npmmirror.com/react/-/react-18.3.1.tgz",
+ "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
"license": "MIT",
"peer": true,
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ },
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-dom": {
- "version": "19.2.0",
- "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-19.2.0.tgz",
- "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==",
+ "version": "18.3.1",
+ "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-18.3.1.tgz",
+ "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
"license": "MIT",
"peer": true,
"dependencies": {
- "scheduler": "^0.27.0"
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.2"
},
"peerDependencies": {
- "react": "^19.2.0"
+ "react": "^18.3.1"
}
},
"node_modules/react-fast-compare": {
@@ -4959,6 +5692,33 @@
"integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==",
"license": "MIT"
},
+ "node_modules/react-i18next": {
+ "version": "17.0.16",
+ "resolved": "https://registry.npmmirror.com/react-i18next/-/react-i18next-17.0.16.tgz",
+ "integrity": "sha512-7uImVD9hG5yUOaP5KHVied1x0A004Di/KU031ULR35Ma+9e9H5GdnNZHgQEIByyAz+IAXBkRDTedNVzjPUH8ZA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.29.7",
+ "html-parse-stringify": "^4.0.1",
+ "use-sync-external-store": "^1.6.0"
+ },
+ "peerDependencies": {
+ "i18next": ">= 26.2.0",
+ "react": ">= 16.8.0",
+ "typescript": "^5 || ^6 || ^7"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
"node_modules/react-is": {
"version": "19.2.0",
"resolved": "https://registry.npmmirror.com/react-is/-/react-is-19.2.0.tgz",
@@ -5129,12 +5889,21 @@
"fsevents": "~2.3.2"
}
},
- "node_modules/scheduler": {
- "version": "0.27.0",
- "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.27.0.tgz",
- "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
+ "node_modules/rope-sequence": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz",
+ "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==",
"license": "MIT"
},
+ "node_modules/scheduler": {
+ "version": "0.23.2",
+ "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.2.tgz",
+ "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
+ },
"node_modules/screenfull": {
"version": "5.2.0",
"resolved": "https://registry.npmmirror.com/screenfull/-/screenfull-5.2.0.tgz",
@@ -5237,9 +6006,9 @@
}
},
"node_modules/stylis": {
- "version": "4.3.6",
- "resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.3.6.tgz",
- "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.4.0.tgz",
+ "integrity": "sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==",
"license": "MIT"
},
"node_modules/supports-color": {
@@ -5255,6 +6024,16 @@
"node": ">=8"
}
},
+ "node_modules/tailwind-merge": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmmirror.com/tailwind-merge/-/tailwind-merge-3.7.0.tgz",
+ "integrity": "sha512-XPPUyAc+cvspz3lHTcR/QgPfW2A0lv/xQNIjX3HGhLR+Nq2lHaLq5MtTesHn8GUr3W3DguT2KT5x3NVgRtYwmA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/dcastil"
+ }
+ },
"node_modules/tailwindcss": {
"version": "4.1.17",
"resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-4.1.17.tgz",
@@ -5476,6 +6255,12 @@
}
}
},
+ "node_modules/w3c-keyname": {
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz",
+ "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==",
+ "license": "MIT"
+ },
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz",
diff --git a/package.json b/package.json
index fb2344e..8ca2371 100644
--- a/package.json
+++ b/package.json
@@ -18,32 +18,44 @@
"@rematch/loading": "^2.1.2",
"@rematch/persist": "^2.1.2",
"@rematch/select": "^3.1.2",
+ "@tiptap/extension-link": "^3.31.4",
+ "@tiptap/extension-placeholder": "^3.31.4",
+ "@tiptap/extension-underline": "^3.31.4",
+ "@tiptap/pm": "^3.31.4",
+ "@tiptap/react": "^3.31.4",
+ "@tiptap/starter-kit": "^3.31.4",
"ahooks": "^3.8.4",
"antd": "^5.24.2",
"axios": "^1.7.9",
+ "class-variance-authority": "^0.7.1",
+ "clsx": "^2.1.1",
"dayjs": "^1.11.13",
+ "i18next": "^26.4.2",
"lodash-es": "^4.17.21",
- "react": "^19.2.0",
- "react-dom": "^19.2.0",
+ "lucide-react": "^1.53.0",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
+ "react-i18next": "^17.0.16",
"react-redux": "^9.2.0",
"react-router-dom": "^7.9.6",
"redux": "^5.0.1",
+ "tailwind-merge": "^3.7.0",
"xlsx": "^0.18.5"
},
"devDependencies": {
"@eslint/js": "^9.39.1",
- "@types/react": "^19.2.2",
- "@types/react-dom": "^19.2.2",
+ "@tailwindcss/postcss": "^4.1.0",
+ "@types/react": "^18.3.12",
+ "@types/react-dom": "^18.3.1",
"@vitejs/plugin-react": "^5.1.0",
+ "autoprefixer": "^10.4.20",
"eslint": "^9.39.1",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.24",
"globals": "^16.5.0",
- "vite": "^7.2.2",
- "tailwindcss": "^4.1.17",
- "@tailwindcss/postcss": "^4.1.0",
"postcss": "^8.5.1",
"postcss-antd-fixes": "^0.2.0",
- "autoprefixer": "^10.4.20"
+ "tailwindcss": "^4.1.17",
+ "vite": "^7.2.2"
}
}
diff --git a/postcss.config.js b/postcss.config.js
index a35d903..c2ddf74 100644
--- a/postcss.config.js
+++ b/postcss.config.js
@@ -1,7 +1,5 @@
export default {
plugins: {
"@tailwindcss/postcss": {},
- autoprefixer: {},
- "postcss-antd-fixes": {},
},
};
diff --git a/public/assets/img/01.png b/public/assets/img/01.png
new file mode 100644
index 0000000..b367e54
Binary files /dev/null and b/public/assets/img/01.png differ
diff --git a/public/assets/img/01@2x.jpg b/public/assets/img/01@2x.jpg
new file mode 100644
index 0000000..247e4ce
Binary files /dev/null and b/public/assets/img/01@2x.jpg differ
diff --git a/public/assets/img/02.png b/public/assets/img/02.png
new file mode 100644
index 0000000..cdb1c39
Binary files /dev/null and b/public/assets/img/02.png differ
diff --git a/public/assets/img/02@2x.jpg b/public/assets/img/02@2x.jpg
new file mode 100644
index 0000000..8df7a79
Binary files /dev/null and b/public/assets/img/02@2x.jpg differ
diff --git a/public/assets/img/03@2x.jpg b/public/assets/img/03@2x.jpg
new file mode 100644
index 0000000..a3a18c9
Binary files /dev/null and b/public/assets/img/03@2x.jpg differ
diff --git a/public/assets/img/04@2x.jpg b/public/assets/img/04@2x.jpg
new file mode 100644
index 0000000..cee1de8
Binary files /dev/null and b/public/assets/img/04@2x.jpg differ
diff --git a/public/assets/img/1.jpg b/public/assets/img/1.jpg
new file mode 100644
index 0000000..92d6ee5
Binary files /dev/null and b/public/assets/img/1.jpg differ
diff --git a/public/assets/img/11.jpg b/public/assets/img/11.jpg
new file mode 100644
index 0000000..40942c9
Binary files /dev/null and b/public/assets/img/11.jpg differ
diff --git a/public/assets/img/2.jpg b/public/assets/img/2.jpg
new file mode 100644
index 0000000..139f2f7
Binary files /dev/null and b/public/assets/img/2.jpg differ
diff --git a/public/assets/img/3.jpg b/public/assets/img/3.jpg
new file mode 100644
index 0000000..b5bb20e
Binary files /dev/null and b/public/assets/img/3.jpg differ
diff --git a/public/assets/img/4.jpg b/public/assets/img/4.jpg
new file mode 100644
index 0000000..3759cd5
Binary files /dev/null and b/public/assets/img/4.jpg differ
diff --git a/public/assets/img/5.jpg b/public/assets/img/5.jpg
new file mode 100644
index 0000000..450c81f
Binary files /dev/null and b/public/assets/img/5.jpg differ
diff --git a/public/assets/img/6.jpg b/public/assets/img/6.jpg
new file mode 100644
index 0000000..22c0d23
Binary files /dev/null and b/public/assets/img/6.jpg differ
diff --git a/public/assets/img/9.jpg b/public/assets/img/9.jpg
new file mode 100644
index 0000000..12127eb
Binary files /dev/null and b/public/assets/img/9.jpg differ
diff --git a/public/assets/img/WechatIMG26.png b/public/assets/img/WechatIMG26.png
new file mode 100644
index 0000000..a01662d
Binary files /dev/null and b/public/assets/img/WechatIMG26.png differ
diff --git a/public/assets/img/about/pingji.png b/public/assets/img/about/pingji.png
new file mode 100644
index 0000000..9c87b51
Binary files /dev/null and b/public/assets/img/about/pingji.png differ
diff --git a/public/assets/img/about/rating-steps.png b/public/assets/img/about/rating-steps.png
new file mode 100644
index 0000000..54196e3
Binary files /dev/null and b/public/assets/img/about/rating-steps.png differ
diff --git a/public/assets/img/about/yanfa.png b/public/assets/img/about/yanfa.png
new file mode 100644
index 0000000..d25386c
Binary files /dev/null and b/public/assets/img/about/yanfa.png differ
diff --git a/public/assets/img/about/yanzheng.png b/public/assets/img/about/yanzheng.png
new file mode 100644
index 0000000..e6dcd6b
Binary files /dev/null and b/public/assets/img/about/yanzheng.png differ
diff --git a/public/assets/img/address.png b/public/assets/img/address.png
new file mode 100644
index 0000000..22ce652
Binary files /dev/null and b/public/assets/img/address.png differ
diff --git a/public/assets/img/banner1@2x(1).jpg b/public/assets/img/banner1@2x(1).jpg
new file mode 100644
index 0000000..12127eb
Binary files /dev/null and b/public/assets/img/banner1@2x(1).jpg differ
diff --git a/public/assets/img/banner1@2x.jpg b/public/assets/img/banner1@2x.jpg
new file mode 100644
index 0000000..0507974
Binary files /dev/null and b/public/assets/img/banner1@2x.jpg differ
diff --git a/public/assets/img/banner2@2x.jpg b/public/assets/img/banner2@2x.jpg
new file mode 100644
index 0000000..a14bdc5
Binary files /dev/null and b/public/assets/img/banner2@2x.jpg differ
diff --git a/public/assets/img/banner3@2x.jpg b/public/assets/img/banner3@2x.jpg
new file mode 100644
index 0000000..4f4a54a
Binary files /dev/null and b/public/assets/img/banner3@2x.jpg differ
diff --git a/public/assets/img/banquanshengming-bg@2x.png b/public/assets/img/banquanshengming-bg@2x.png
new file mode 100644
index 0000000..2e19b58
Binary files /dev/null and b/public/assets/img/banquanshengming-bg@2x.png differ
diff --git a/public/assets/img/bg.png b/public/assets/img/bg.png
new file mode 100644
index 0000000..7b10418
Binary files /dev/null and b/public/assets/img/bg.png differ
diff --git a/public/assets/img/bg10@2x.png b/public/assets/img/bg10@2x.png
new file mode 100644
index 0000000..b5c1fff
Binary files /dev/null and b/public/assets/img/bg10@2x.png differ
diff --git a/public/assets/img/bg1@1x.png b/public/assets/img/bg1@1x.png
new file mode 100644
index 0000000..3dec77e
Binary files /dev/null and b/public/assets/img/bg1@1x.png differ
diff --git a/public/assets/img/bg1@2x.png b/public/assets/img/bg1@2x.png
new file mode 100644
index 0000000..54ba519
Binary files /dev/null and b/public/assets/img/bg1@2x.png differ
diff --git a/public/assets/img/bg2@2x.png b/public/assets/img/bg2@2x.png
new file mode 100644
index 0000000..5c0e3b6
Binary files /dev/null and b/public/assets/img/bg2@2x.png differ
diff --git a/public/assets/img/bg3@2x.png b/public/assets/img/bg3@2x.png
new file mode 100644
index 0000000..6ae7cb3
Binary files /dev/null and b/public/assets/img/bg3@2x.png differ
diff --git a/public/assets/img/bg4@2x.png b/public/assets/img/bg4@2x.png
new file mode 100644
index 0000000..ed2e389
Binary files /dev/null and b/public/assets/img/bg4@2x.png differ
diff --git a/public/assets/img/bg5@2x.png b/public/assets/img/bg5@2x.png
new file mode 100644
index 0000000..8cebe12
Binary files /dev/null and b/public/assets/img/bg5@2x.png differ
diff --git a/public/assets/img/bg6@2x.png b/public/assets/img/bg6@2x.png
new file mode 100644
index 0000000..63f5661
Binary files /dev/null and b/public/assets/img/bg6@2x.png differ
diff --git a/public/assets/img/bg7@2x.png b/public/assets/img/bg7@2x.png
new file mode 100644
index 0000000..a622ef8
Binary files /dev/null and b/public/assets/img/bg7@2x.png differ
diff --git a/public/assets/img/bg8@2x.png b/public/assets/img/bg8@2x.png
new file mode 100644
index 0000000..2239bb7
Binary files /dev/null and b/public/assets/img/bg8@2x.png differ
diff --git a/public/assets/img/bg9@2x.png b/public/assets/img/bg9@2x.png
new file mode 100644
index 0000000..9682707
Binary files /dev/null and b/public/assets/img/bg9@2x.png differ
diff --git a/public/assets/img/bukedian-xiala@2x.png b/public/assets/img/bukedian-xiala@2x.png
new file mode 100644
index 0000000..9e26f9d
Binary files /dev/null and b/public/assets/img/bukedian-xiala@2x.png differ
diff --git a/public/assets/img/carousel/jishitang.png b/public/assets/img/carousel/jishitang.png
new file mode 100644
index 0000000..9f7fc2d
Binary files /dev/null and b/public/assets/img/carousel/jishitang.png differ
diff --git a/public/assets/img/carousel/landa.jpg b/public/assets/img/carousel/landa.jpg
new file mode 100644
index 0000000..e831c2a
Binary files /dev/null and b/public/assets/img/carousel/landa.jpg differ
diff --git a/public/assets/img/carousel/yuanshi.png b/public/assets/img/carousel/yuanshi.png
new file mode 100644
index 0000000..22787b7
Binary files /dev/null and b/public/assets/img/carousel/yuanshi.png differ
diff --git a/public/assets/img/carousel/yuzhong.jpg b/public/assets/img/carousel/yuzhong.jpg
new file mode 100644
index 0000000..14ca09f
Binary files /dev/null and b/public/assets/img/carousel/yuzhong.jpg differ
diff --git a/public/assets/img/daoxu@2x.png b/public/assets/img/daoxu@2x.png
new file mode 100644
index 0000000..00dc311
Binary files /dev/null and b/public/assets/img/daoxu@2x.png differ
diff --git a/public/assets/img/dianping@2x.png b/public/assets/img/dianping@2x.png
new file mode 100644
index 0000000..180484d
Binary files /dev/null and b/public/assets/img/dianping@2x.png differ
diff --git a/public/assets/img/dianzan@2x(1).png b/public/assets/img/dianzan@2x(1).png
new file mode 100644
index 0000000..45d150c
Binary files /dev/null and b/public/assets/img/dianzan@2x(1).png differ
diff --git a/public/assets/img/dianzan@2x(2).png b/public/assets/img/dianzan@2x(2).png
new file mode 100644
index 0000000..20fa530
Binary files /dev/null and b/public/assets/img/dianzan@2x(2).png differ
diff --git a/public/assets/img/dianzan@2x.png b/public/assets/img/dianzan@2x.png
new file mode 100644
index 0000000..20fa530
Binary files /dev/null and b/public/assets/img/dianzan@2x.png differ
diff --git a/public/assets/img/dier@2x.png b/public/assets/img/dier@2x.png
new file mode 100644
index 0000000..e9f3fac
Binary files /dev/null and b/public/assets/img/dier@2x.png differ
diff --git a/public/assets/img/dinahua@2x.png b/public/assets/img/dinahua@2x.png
new file mode 100644
index 0000000..404df1b
Binary files /dev/null and b/public/assets/img/dinahua@2x.png differ
diff --git a/public/assets/img/diqiu@2x.png b/public/assets/img/diqiu@2x.png
new file mode 100644
index 0000000..f2a2a17
Binary files /dev/null and b/public/assets/img/diqiu@2x.png differ
diff --git a/public/assets/img/disan@2x.png b/public/assets/img/disan@2x.png
new file mode 100644
index 0000000..fe775bb
Binary files /dev/null and b/public/assets/img/disan@2x.png differ
diff --git a/public/assets/img/diyi@2x.png b/public/assets/img/diyi@2x.png
new file mode 100644
index 0000000..42703af
Binary files /dev/null and b/public/assets/img/diyi@2x.png differ
diff --git a/public/assets/img/dunpai1@2x.png b/public/assets/img/dunpai1@2x.png
new file mode 100644
index 0000000..311be5e
Binary files /dev/null and b/public/assets/img/dunpai1@2x.png differ
diff --git a/public/assets/img/dunpai2@2x.png b/public/assets/img/dunpai2@2x.png
new file mode 100644
index 0000000..b69a07b
Binary files /dev/null and b/public/assets/img/dunpai2@2x.png differ
diff --git a/public/assets/img/duoxuan1@2x.png b/public/assets/img/duoxuan1@2x.png
new file mode 100644
index 0000000..17d11e6
Binary files /dev/null and b/public/assets/img/duoxuan1@2x.png differ
diff --git a/public/assets/img/duoxuan2@2x.png b/public/assets/img/duoxuan2@2x.png
new file mode 100644
index 0000000..af63ec7
Binary files /dev/null and b/public/assets/img/duoxuan2@2x.png differ
diff --git a/public/assets/img/fenxiang@2x(1).png b/public/assets/img/fenxiang@2x(1).png
new file mode 100644
index 0000000..7678dd4
Binary files /dev/null and b/public/assets/img/fenxiang@2x(1).png differ
diff --git a/public/assets/img/fenxiang@2x.png b/public/assets/img/fenxiang@2x.png
new file mode 100644
index 0000000..7678dd4
Binary files /dev/null and b/public/assets/img/fenxiang@2x.png differ
diff --git a/public/assets/img/fh@2x.png b/public/assets/img/fh@2x.png
new file mode 100644
index 0000000..e1e3a3e
Binary files /dev/null and b/public/assets/img/fh@2x.png differ
diff --git a/public/assets/img/gengduo@2x.png b/public/assets/img/gengduo@2x.png
new file mode 100644
index 0000000..008bfa4
Binary files /dev/null and b/public/assets/img/gengduo@2x.png differ
diff --git a/public/assets/img/geren1@2x.png b/public/assets/img/geren1@2x.png
new file mode 100644
index 0000000..00f07a1
Binary files /dev/null and b/public/assets/img/geren1@2x.png differ
diff --git a/public/assets/img/geren2@2x.png b/public/assets/img/geren2@2x.png
new file mode 100644
index 0000000..aafade7
Binary files /dev/null and b/public/assets/img/geren2@2x.png differ
diff --git a/public/assets/img/gongan.png b/public/assets/img/gongan.png
new file mode 100644
index 0000000..a341341
Binary files /dev/null and b/public/assets/img/gongan.png differ
diff --git a/public/assets/img/guanbi@2x.png b/public/assets/img/guanbi@2x.png
new file mode 100644
index 0000000..863bfd3
Binary files /dev/null and b/public/assets/img/guanbi@2x.png differ
diff --git a/public/assets/img/guanji1@2x.png b/public/assets/img/guanji1@2x.png
new file mode 100644
index 0000000..a63e1c7
Binary files /dev/null and b/public/assets/img/guanji1@2x.png differ
diff --git a/public/assets/img/guanji2@2x.png b/public/assets/img/guanji2@2x.png
new file mode 100644
index 0000000..2ec21b4
Binary files /dev/null and b/public/assets/img/guanji2@2x.png differ
diff --git a/public/assets/img/guanywomen-bg@2x.png b/public/assets/img/guanywomen-bg@2x.png
new file mode 100644
index 0000000..7c396dd
Binary files /dev/null and b/public/assets/img/guanywomen-bg@2x.png differ
diff --git a/public/assets/img/guanzhu1@2x.png b/public/assets/img/guanzhu1@2x.png
new file mode 100644
index 0000000..b109e3e
Binary files /dev/null and b/public/assets/img/guanzhu1@2x.png differ
diff --git a/public/assets/img/guanzhu2@2x.png b/public/assets/img/guanzhu2@2x.png
new file mode 100644
index 0000000..2035f10
Binary files /dev/null and b/public/assets/img/guanzhu2@2x.png differ
diff --git a/public/assets/img/gywm@2x.jpg b/public/assets/img/gywm@2x.jpg
new file mode 100644
index 0000000..14af316
Binary files /dev/null and b/public/assets/img/gywm@2x.jpg differ
diff --git a/public/assets/img/hou@2x.png b/public/assets/img/hou@2x.png
new file mode 100644
index 0000000..aa28124
Binary files /dev/null and b/public/assets/img/hou@2x.png differ
diff --git a/public/assets/img/icon-moren@2x.png b/public/assets/img/icon-moren@2x.png
new file mode 100644
index 0000000..9a9da9f
Binary files /dev/null and b/public/assets/img/icon-moren@2x.png differ
diff --git a/public/assets/img/image-moren@2x.png b/public/assets/img/image-moren@2x.png
new file mode 100644
index 0000000..f441cca
Binary files /dev/null and b/public/assets/img/image-moren@2x.png differ
diff --git a/public/assets/img/jglby@2x.jpg b/public/assets/img/jglby@2x.jpg
new file mode 100644
index 0000000..d91e7ba
Binary files /dev/null and b/public/assets/img/jglby@2x.jpg differ
diff --git a/public/assets/img/jiaguanzhu@2x.png b/public/assets/img/jiaguanzhu@2x.png
new file mode 100644
index 0000000..9af7bd3
Binary files /dev/null and b/public/assets/img/jiaguanzhu@2x.png differ
diff --git a/public/assets/img/jigou@2x(1).png b/public/assets/img/jigou@2x(1).png
new file mode 100644
index 0000000..1bab04e
Binary files /dev/null and b/public/assets/img/jigou@2x(1).png differ
diff --git a/public/assets/img/jigou@2x.png b/public/assets/img/jigou@2x.png
new file mode 100644
index 0000000..ae3cf57
Binary files /dev/null and b/public/assets/img/jigou@2x.png differ
diff --git a/public/assets/img/lianxiren.png b/public/assets/img/lianxiren.png
new file mode 100644
index 0000000..8960794
Binary files /dev/null and b/public/assets/img/lianxiren.png differ
diff --git a/public/assets/img/lianxiwomen-bg@2x.png b/public/assets/img/lianxiwomen-bg@2x.png
new file mode 100644
index 0000000..74a2e0a
Binary files /dev/null and b/public/assets/img/lianxiwomen-bg@2x.png differ
diff --git a/public/assets/img/logo-bai-1@2x.png b/public/assets/img/logo-bai-1@2x.png
new file mode 100644
index 0000000..d2d49b6
Binary files /dev/null and b/public/assets/img/logo-bai-1@2x.png differ
diff --git a/public/assets/img/logo-bai-2@2x.png b/public/assets/img/logo-bai-2@2x.png
new file mode 100644
index 0000000..8667a26
Binary files /dev/null and b/public/assets/img/logo-bai-2@2x.png differ
diff --git a/public/assets/img/logo2@2x.png b/public/assets/img/logo2@2x.png
new file mode 100644
index 0000000..f4d15b1
Binary files /dev/null and b/public/assets/img/logo2@2x.png differ
diff --git a/public/assets/img/logo3@2x.jpg b/public/assets/img/logo3@2x.jpg
new file mode 100644
index 0000000..c63bde1
Binary files /dev/null and b/public/assets/img/logo3@2x.jpg differ
diff --git a/public/assets/img/logo@2x.jpg b/public/assets/img/logo@2x.jpg
new file mode 100644
index 0000000..1042ff9
Binary files /dev/null and b/public/assets/img/logo@2x.jpg differ
diff --git a/public/assets/img/logo@2x.png b/public/assets/img/logo@2x.png
new file mode 100644
index 0000000..af8bc1d
Binary files /dev/null and b/public/assets/img/logo@2x.png differ
diff --git a/public/assets/img/mobile/01@2x.png b/public/assets/img/mobile/01@2x.png
new file mode 100644
index 0000000..f885acc
Binary files /dev/null and b/public/assets/img/mobile/01@2x.png differ
diff --git a/public/assets/img/mobile/02@2x.png b/public/assets/img/mobile/02@2x.png
new file mode 100644
index 0000000..3a602bc
Binary files /dev/null and b/public/assets/img/mobile/02@2x.png differ
diff --git a/public/assets/img/mobile/03@2x.png b/public/assets/img/mobile/03@2x.png
new file mode 100644
index 0000000..56d6cbb
Binary files /dev/null and b/public/assets/img/mobile/03@2x.png differ
diff --git a/public/assets/img/mobile/04@2x.png b/public/assets/img/mobile/04@2x.png
new file mode 100644
index 0000000..a895cae
Binary files /dev/null and b/public/assets/img/mobile/04@2x.png differ
diff --git a/public/assets/img/mobile/banner1@2x.jpg b/public/assets/img/mobile/banner1@2x.jpg
new file mode 100644
index 0000000..0507974
Binary files /dev/null and b/public/assets/img/mobile/banner1@2x.jpg differ
diff --git a/public/assets/img/mobile/banner1@2x.png b/public/assets/img/mobile/banner1@2x.png
new file mode 100644
index 0000000..9974ae1
Binary files /dev/null and b/public/assets/img/mobile/banner1@2x.png differ
diff --git a/public/assets/img/mobile/banner2@2x.png b/public/assets/img/mobile/banner2@2x.png
new file mode 100644
index 0000000..9ddce6e
Binary files /dev/null and b/public/assets/img/mobile/banner2@2x.png differ
diff --git a/public/assets/img/mobile/banner3@2x.png b/public/assets/img/mobile/banner3@2x.png
new file mode 100644
index 0000000..4c5c01f
Binary files /dev/null and b/public/assets/img/mobile/banner3@2x.png differ
diff --git a/public/assets/img/mobile/banquanshengming@2x.png b/public/assets/img/mobile/banquanshengming@2x.png
new file mode 100644
index 0000000..a4fd0a3
Binary files /dev/null and b/public/assets/img/mobile/banquanshengming@2x.png differ
diff --git a/public/assets/img/mobile/bg.png b/public/assets/img/mobile/bg.png
new file mode 100644
index 0000000..28cbffc
Binary files /dev/null and b/public/assets/img/mobile/bg.png differ
diff --git a/public/assets/img/mobile/bg1@2x.png b/public/assets/img/mobile/bg1@2x.png
new file mode 100644
index 0000000..5b80640
Binary files /dev/null and b/public/assets/img/mobile/bg1@2x.png differ
diff --git a/public/assets/img/mobile/bg2@2x.png b/public/assets/img/mobile/bg2@2x.png
new file mode 100644
index 0000000..61f959a
Binary files /dev/null and b/public/assets/img/mobile/bg2@2x.png differ
diff --git a/public/assets/img/mobile/bg3@2x.png b/public/assets/img/mobile/bg3@2x.png
new file mode 100644
index 0000000..3d4bb67
Binary files /dev/null and b/public/assets/img/mobile/bg3@2x.png differ
diff --git a/public/assets/img/mobile/bg4@2x.png b/public/assets/img/mobile/bg4@2x.png
new file mode 100644
index 0000000..79d4f2e
Binary files /dev/null and b/public/assets/img/mobile/bg4@2x.png differ
diff --git a/public/assets/img/mobile/bg5@2x.png b/public/assets/img/mobile/bg5@2x.png
new file mode 100644
index 0000000..3abab14
Binary files /dev/null and b/public/assets/img/mobile/bg5@2x.png differ
diff --git a/public/assets/img/mobile/bg6@2x.png b/public/assets/img/mobile/bg6@2x.png
new file mode 100644
index 0000000..f9e758d
Binary files /dev/null and b/public/assets/img/mobile/bg6@2x.png differ
diff --git a/public/assets/img/mobile/caidan@2x.png b/public/assets/img/mobile/caidan@2x.png
new file mode 100644
index 0000000..e9c3b59
Binary files /dev/null and b/public/assets/img/mobile/caidan@2x.png differ
diff --git a/public/assets/img/mobile/dianping@2x.png b/public/assets/img/mobile/dianping@2x.png
new file mode 100644
index 0000000..36605ec
Binary files /dev/null and b/public/assets/img/mobile/dianping@2x.png differ
diff --git a/public/assets/img/mobile/dianzan1@2x.png b/public/assets/img/mobile/dianzan1@2x.png
new file mode 100644
index 0000000..45d150c
Binary files /dev/null and b/public/assets/img/mobile/dianzan1@2x.png differ
diff --git a/public/assets/img/mobile/dianzan2@2x.png b/public/assets/img/mobile/dianzan2@2x.png
new file mode 100644
index 0000000..227e3fc
Binary files /dev/null and b/public/assets/img/mobile/dianzan2@2x.png differ
diff --git a/public/assets/img/mobile/dianzan3@2x.png b/public/assets/img/mobile/dianzan3@2x.png
new file mode 100644
index 0000000..abd61da
Binary files /dev/null and b/public/assets/img/mobile/dianzan3@2x.png differ
diff --git a/public/assets/img/mobile/dianzan4@2x.png b/public/assets/img/mobile/dianzan4@2x.png
new file mode 100644
index 0000000..12ded86
Binary files /dev/null and b/public/assets/img/mobile/dianzan4@2x.png differ
diff --git a/public/assets/img/mobile/dier@2x.png b/public/assets/img/mobile/dier@2x.png
new file mode 100644
index 0000000..5f14c58
Binary files /dev/null and b/public/assets/img/mobile/dier@2x.png differ
diff --git a/public/assets/img/mobile/disan@2x.png b/public/assets/img/mobile/disan@2x.png
new file mode 100644
index 0000000..fe775bb
Binary files /dev/null and b/public/assets/img/mobile/disan@2x.png differ
diff --git a/public/assets/img/mobile/diyi@2x.png b/public/assets/img/mobile/diyi@2x.png
new file mode 100644
index 0000000..42703af
Binary files /dev/null and b/public/assets/img/mobile/diyi@2x.png differ
diff --git a/public/assets/img/mobile/drop@2x.png b/public/assets/img/mobile/drop@2x.png
new file mode 100644
index 0000000..035f69a
Binary files /dev/null and b/public/assets/img/mobile/drop@2x.png differ
diff --git a/public/assets/img/mobile/dun1@2x.png b/public/assets/img/mobile/dun1@2x.png
new file mode 100644
index 0000000..c520d03
Binary files /dev/null and b/public/assets/img/mobile/dun1@2x.png differ
diff --git a/public/assets/img/mobile/earch@2x.png b/public/assets/img/mobile/earch@2x.png
new file mode 100644
index 0000000..fbaeded
Binary files /dev/null and b/public/assets/img/mobile/earch@2x.png differ
diff --git a/public/assets/img/mobile/erweima.png b/public/assets/img/mobile/erweima.png
new file mode 100644
index 0000000..28cbffc
Binary files /dev/null and b/public/assets/img/mobile/erweima.png differ
diff --git a/public/assets/img/mobile/fenxiang-da@2x.png b/public/assets/img/mobile/fenxiang-da@2x.png
new file mode 100644
index 0000000..3827c88
Binary files /dev/null and b/public/assets/img/mobile/fenxiang-da@2x.png differ
diff --git a/public/assets/img/mobile/fenxiang-xiao@2x.png b/public/assets/img/mobile/fenxiang-xiao@2x.png
new file mode 100644
index 0000000..34c67a3
Binary files /dev/null and b/public/assets/img/mobile/fenxiang-xiao@2x.png differ
diff --git a/public/assets/img/mobile/gaunyuwomen@2x.png b/public/assets/img/mobile/gaunyuwomen@2x.png
new file mode 100644
index 0000000..facb6bb
Binary files /dev/null and b/public/assets/img/mobile/gaunyuwomen@2x.png differ
diff --git a/public/assets/img/mobile/gerenziliaop@2x.png b/public/assets/img/mobile/gerenziliaop@2x.png
new file mode 100644
index 0000000..1ebb25e
Binary files /dev/null and b/public/assets/img/mobile/gerenziliaop@2x.png differ
diff --git a/public/assets/img/mobile/guanywomen-bg@2x.png b/public/assets/img/mobile/guanywomen-bg@2x.png
new file mode 100644
index 0000000..a035677
Binary files /dev/null and b/public/assets/img/mobile/guanywomen-bg@2x.png differ
diff --git a/public/assets/img/mobile/guanzhu@2x.png b/public/assets/img/mobile/guanzhu@2x.png
new file mode 100644
index 0000000..3d57fc5
Binary files /dev/null and b/public/assets/img/mobile/guanzhu@2x.png differ
diff --git a/public/assets/img/mobile/guanzhup@2x.png b/public/assets/img/mobile/guanzhup@2x.png
new file mode 100644
index 0000000..99a609c
Binary files /dev/null and b/public/assets/img/mobile/guanzhup@2x.png differ
diff --git a/public/assets/img/mobile/gywm@2x.png b/public/assets/img/mobile/gywm@2x.png
new file mode 100644
index 0000000..fb8326e
Binary files /dev/null and b/public/assets/img/mobile/gywm@2x.png differ
diff --git a/public/assets/img/mobile/icon-moren@2x.png b/public/assets/img/mobile/icon-moren@2x.png
new file mode 100644
index 0000000..9a9da9f
Binary files /dev/null and b/public/assets/img/mobile/icon-moren@2x.png differ
diff --git a/public/assets/img/mobile/jiaguaunzhu@2x.png b/public/assets/img/mobile/jiaguaunzhu@2x.png
new file mode 100644
index 0000000..afce21e
Binary files /dev/null and b/public/assets/img/mobile/jiaguaunzhu@2x.png differ
diff --git a/public/assets/img/mobile/jiantou@2x.png b/public/assets/img/mobile/jiantou@2x.png
new file mode 100644
index 0000000..de7b7d7
Binary files /dev/null and b/public/assets/img/mobile/jiantou@2x.png differ
diff --git a/public/assets/img/mobile/jigou1@2x.png b/public/assets/img/mobile/jigou1@2x.png
new file mode 100644
index 0000000..056b3d8
Binary files /dev/null and b/public/assets/img/mobile/jigou1@2x.png differ
diff --git a/public/assets/img/mobile/jigou2@2x.png b/public/assets/img/mobile/jigou2@2x.png
new file mode 100644
index 0000000..cf2e84f
Binary files /dev/null and b/public/assets/img/mobile/jigou2@2x.png differ
diff --git a/public/assets/img/mobile/jingqingqidai-bg@2x.png b/public/assets/img/mobile/jingqingqidai-bg@2x.png
new file mode 100644
index 0000000..895f260
Binary files /dev/null and b/public/assets/img/mobile/jingqingqidai-bg@2x.png differ
diff --git a/public/assets/img/mobile/jingqingqidai@2x.png b/public/assets/img/mobile/jingqingqidai@2x.png
new file mode 100644
index 0000000..10ea033
Binary files /dev/null and b/public/assets/img/mobile/jingqingqidai@2x.png differ
diff --git a/public/assets/img/mobile/laixiwomen@2x.png b/public/assets/img/mobile/laixiwomen@2x.png
new file mode 100644
index 0000000..8f6e6f4
Binary files /dev/null and b/public/assets/img/mobile/laixiwomen@2x.png differ
diff --git a/public/assets/img/mobile/logo-2@2x.png b/public/assets/img/mobile/logo-2@2x.png
new file mode 100644
index 0000000..e3595dd
Binary files /dev/null and b/public/assets/img/mobile/logo-2@2x.png differ
diff --git a/public/assets/img/mobile/logo3@2x.jpg b/public/assets/img/mobile/logo3@2x.jpg
new file mode 100644
index 0000000..c63bde1
Binary files /dev/null and b/public/assets/img/mobile/logo3@2x.jpg differ
diff --git a/public/assets/img/mobile/logo@2x.png b/public/assets/img/mobile/logo@2x.png
new file mode 100644
index 0000000..f2a56d2
Binary files /dev/null and b/public/assets/img/mobile/logo@2x.png differ
diff --git a/public/assets/img/mobile/paixu2@2x.png b/public/assets/img/mobile/paixu2@2x.png
new file mode 100644
index 0000000..5a72c3a
Binary files /dev/null and b/public/assets/img/mobile/paixu2@2x.png differ
diff --git a/public/assets/img/mobile/pengyouquan@2x.png b/public/assets/img/mobile/pengyouquan@2x.png
new file mode 100644
index 0000000..392317d
Binary files /dev/null and b/public/assets/img/mobile/pengyouquan@2x.png differ
diff --git a/public/assets/img/mobile/pingjiap@2x.png b/public/assets/img/mobile/pingjiap@2x.png
new file mode 100644
index 0000000..fa17990
Binary files /dev/null and b/public/assets/img/mobile/pingjiap@2x.png differ
diff --git a/public/assets/img/mobile/pmy@2x.png b/public/assets/img/mobile/pmy@2x.png
new file mode 100644
index 0000000..03b8c0d
Binary files /dev/null and b/public/assets/img/mobile/pmy@2x.png differ
diff --git a/public/assets/img/mobile/qq@2x.png b/public/assets/img/mobile/qq@2x.png
new file mode 100644
index 0000000..5fc3544
Binary files /dev/null and b/public/assets/img/mobile/qq@2x.png differ
diff --git a/public/assets/img/mobile/sanjiao@2x.jpg b/public/assets/img/mobile/sanjiao@2x.jpg
new file mode 100644
index 0000000..6bf066b
Binary files /dev/null and b/public/assets/img/mobile/sanjiao@2x.jpg differ
diff --git a/public/assets/img/mobile/sanjiao@2x.png b/public/assets/img/mobile/sanjiao@2x.png
new file mode 100644
index 0000000..a7a10dc
Binary files /dev/null and b/public/assets/img/mobile/sanjiao@2x.png differ
diff --git a/public/assets/img/mobile/shanchu@2x.png b/public/assets/img/mobile/shanchu@2x.png
new file mode 100644
index 0000000..4aefe54
Binary files /dev/null and b/public/assets/img/mobile/shanchu@2x.png differ
diff --git a/public/assets/img/mobile/shoucang2@2x.png b/public/assets/img/mobile/shoucang2@2x.png
new file mode 100644
index 0000000..3f5ed6f
Binary files /dev/null and b/public/assets/img/mobile/shoucang2@2x.png differ
diff --git a/public/assets/img/mobile/shoucang@2x.png b/public/assets/img/mobile/shoucang@2x.png
new file mode 100644
index 0000000..7be16fc
Binary files /dev/null and b/public/assets/img/mobile/shoucang@2x.png differ
diff --git a/public/assets/img/mobile/shoucangp@2x.png b/public/assets/img/mobile/shoucangp@2x.png
new file mode 100644
index 0000000..7520ea2
Binary files /dev/null and b/public/assets/img/mobile/shoucangp@2x.png differ
diff --git a/public/assets/img/mobile/shouji1@2x.png b/public/assets/img/mobile/shouji1@2x.png
new file mode 100644
index 0000000..d5007a0
Binary files /dev/null and b/public/assets/img/mobile/shouji1@2x.png differ
diff --git a/public/assets/img/mobile/shouji2@2x.png b/public/assets/img/mobile/shouji2@2x.png
new file mode 100644
index 0000000..abdf9dc
Binary files /dev/null and b/public/assets/img/mobile/shouji2@2x.png differ
diff --git a/public/assets/img/mobile/shouqi@2x.png b/public/assets/img/mobile/shouqi@2x.png
new file mode 100644
index 0000000..e4829af
Binary files /dev/null and b/public/assets/img/mobile/shouqi@2x.png differ
diff --git a/public/assets/img/mobile/sl1@2x.png b/public/assets/img/mobile/sl1@2x.png
new file mode 100644
index 0000000..2a6aff2
Binary files /dev/null and b/public/assets/img/mobile/sl1@2x.png differ
diff --git a/public/assets/img/mobile/sl2@2x.png b/public/assets/img/mobile/sl2@2x.png
new file mode 100644
index 0000000..a2c7666
Binary files /dev/null and b/public/assets/img/mobile/sl2@2x.png differ
diff --git a/public/assets/img/mobile/sousuo-hui@2x.png b/public/assets/img/mobile/sousuo-hui@2x.png
new file mode 100644
index 0000000..a22141f
Binary files /dev/null and b/public/assets/img/mobile/sousuo-hui@2x.png differ
diff --git a/public/assets/img/mobile/sousuo-lan@2x.png b/public/assets/img/mobile/sousuo-lan@2x.png
new file mode 100644
index 0000000..d1ed08e
Binary files /dev/null and b/public/assets/img/mobile/sousuo-lan@2x.png differ
diff --git a/public/assets/img/mobile/specialist.png b/public/assets/img/mobile/specialist.png
new file mode 100644
index 0000000..fc93588
Binary files /dev/null and b/public/assets/img/mobile/specialist.png differ
diff --git a/public/assets/img/mobile/square_chose.png b/public/assets/img/mobile/square_chose.png
new file mode 100644
index 0000000..dd55842
Binary files /dev/null and b/public/assets/img/mobile/square_chose.png differ
diff --git a/public/assets/img/mobile/weallsmall.jpg b/public/assets/img/mobile/weallsmall.jpg
new file mode 100644
index 0000000..fee0401
Binary files /dev/null and b/public/assets/img/mobile/weallsmall.jpg differ
diff --git a/public/assets/img/mobile/wechat@2x.png b/public/assets/img/mobile/wechat@2x.png
new file mode 100644
index 0000000..909961e
Binary files /dev/null and b/public/assets/img/mobile/wechat@2x.png differ
diff --git a/public/assets/img/mobile/weibo@2x.png b/public/assets/img/mobile/weibo@2x.png
new file mode 100644
index 0000000..d98ac83
Binary files /dev/null and b/public/assets/img/mobile/weibo@2x.png differ
diff --git a/public/assets/img/mobile/wushuju@2x.png b/public/assets/img/mobile/wushuju@2x.png
new file mode 100644
index 0000000..9b81338
Binary files /dev/null and b/public/assets/img/mobile/wushuju@2x.png differ
diff --git a/public/assets/img/mobile/xiala-lan1@2x.png b/public/assets/img/mobile/xiala-lan1@2x.png
new file mode 100644
index 0000000..57ab25e
Binary files /dev/null and b/public/assets/img/mobile/xiala-lan1@2x.png differ
diff --git a/public/assets/img/mobile/xiayiye@2x.png b/public/assets/img/mobile/xiayiye@2x.png
new file mode 100644
index 0000000..986ed57
Binary files /dev/null and b/public/assets/img/mobile/xiayiye@2x.png differ
diff --git a/public/assets/img/mobile/xiazai@2x.png b/public/assets/img/mobile/xiazai@2x.png
new file mode 100644
index 0000000..5390a03
Binary files /dev/null and b/public/assets/img/mobile/xiazai@2x.png differ
diff --git a/public/assets/img/mobile/xin1@2x.png b/public/assets/img/mobile/xin1@2x.png
new file mode 100644
index 0000000..f6a0e9d
Binary files /dev/null and b/public/assets/img/mobile/xin1@2x.png differ
diff --git a/public/assets/img/mobile/xl1@2x.png b/public/assets/img/mobile/xl1@2x.png
new file mode 100644
index 0000000..8696e4a
Binary files /dev/null and b/public/assets/img/mobile/xl1@2x.png differ
diff --git a/public/assets/img/mobile/xl2@2x.png b/public/assets/img/mobile/xl2@2x.png
new file mode 100644
index 0000000..84e4451
Binary files /dev/null and b/public/assets/img/mobile/xl2@2x.png differ
diff --git a/public/assets/img/mobile/xl@2x.png b/public/assets/img/mobile/xl@2x.png
new file mode 100644
index 0000000..8c22336
Binary files /dev/null and b/public/assets/img/mobile/xl@2x.png differ
diff --git a/public/assets/img/mobile/yonghu1@2x.png b/public/assets/img/mobile/yonghu1@2x.png
new file mode 100644
index 0000000..619916c
Binary files /dev/null and b/public/assets/img/mobile/yonghu1@2x.png differ
diff --git a/public/assets/img/mobile/yonghu2@2x.png b/public/assets/img/mobile/yonghu2@2x.png
new file mode 100644
index 0000000..594e641
Binary files /dev/null and b/public/assets/img/mobile/yonghu2@2x.png differ
diff --git a/public/assets/img/mobile/youxiang@2x.png b/public/assets/img/mobile/youxiang@2x.png
new file mode 100644
index 0000000..66cb8cd
Binary files /dev/null and b/public/assets/img/mobile/youxiang@2x.png differ
diff --git a/public/assets/img/mobile/zdjg@2x.png b/public/assets/img/mobile/zdjg@2x.png
new file mode 100644
index 0000000..12140a8
Binary files /dev/null and b/public/assets/img/mobile/zdjg@2x.png differ
diff --git a/public/assets/img/mobile/zhankai@2x.png b/public/assets/img/mobile/zhankai@2x.png
new file mode 100644
index 0000000..8ba5435
Binary files /dev/null and b/public/assets/img/mobile/zhankai@2x.png differ
diff --git a/public/assets/img/mobile/zhedie@2x.png b/public/assets/img/mobile/zhedie@2x.png
new file mode 100644
index 0000000..c54a1cd
Binary files /dev/null and b/public/assets/img/mobile/zhedie@2x.png differ
diff --git a/public/assets/img/mobile/zhiding2@2x.png b/public/assets/img/mobile/zhiding2@2x.png
new file mode 100644
index 0000000..627b058
Binary files /dev/null and b/public/assets/img/mobile/zhiding2@2x.png differ
diff --git a/public/assets/img/morenzhaopian@2x.png b/public/assets/img/morenzhaopian@2x.png
new file mode 100644
index 0000000..f174703
Binary files /dev/null and b/public/assets/img/morenzhaopian@2x.png differ
diff --git a/public/assets/img/nianfen@2x.png b/public/assets/img/nianfen@2x.png
new file mode 100644
index 0000000..d1dbae7
Binary files /dev/null and b/public/assets/img/nianfen@2x.png differ
diff --git a/public/assets/img/pengyouquan1@2x.png b/public/assets/img/pengyouquan1@2x.png
new file mode 100644
index 0000000..b210212
Binary files /dev/null and b/public/assets/img/pengyouquan1@2x.png differ
diff --git a/public/assets/img/pengyouquan2@2x.png b/public/assets/img/pengyouquan2@2x.png
new file mode 100644
index 0000000..14fe5bc
Binary files /dev/null and b/public/assets/img/pengyouquan2@2x.png differ
diff --git a/public/assets/img/pingjia1@2x.png b/public/assets/img/pingjia1@2x.png
new file mode 100644
index 0000000..4a2a591
Binary files /dev/null and b/public/assets/img/pingjia1@2x.png differ
diff --git a/public/assets/img/pingjia2@2x.png b/public/assets/img/pingjia2@2x.png
new file mode 100644
index 0000000..0d0daac
Binary files /dev/null and b/public/assets/img/pingjia2@2x.png differ
diff --git a/public/assets/img/pm@2x.png b/public/assets/img/pm@2x.png
new file mode 100644
index 0000000..a3f38d1
Binary files /dev/null and b/public/assets/img/pm@2x.png differ
diff --git a/public/assets/img/pmy.jpg b/public/assets/img/pmy.jpg
new file mode 100644
index 0000000..d632e7f
Binary files /dev/null and b/public/assets/img/pmy.jpg differ
diff --git a/public/assets/img/qian@2x.png b/public/assets/img/qian@2x.png
new file mode 100644
index 0000000..8789bf1
Binary files /dev/null and b/public/assets/img/qian@2x.png differ
diff --git a/public/assets/img/qianwang-bai@2x.png b/public/assets/img/qianwang-bai@2x.png
new file mode 100644
index 0000000..1aba551
Binary files /dev/null and b/public/assets/img/qianwang-bai@2x.png differ
diff --git a/public/assets/img/qianwang@2x.png b/public/assets/img/qianwang@2x.png
new file mode 100644
index 0000000..ed3387d
Binary files /dev/null and b/public/assets/img/qianwang@2x.png differ
diff --git a/public/assets/img/qq1@2x.png b/public/assets/img/qq1@2x.png
new file mode 100644
index 0000000..25329a4
Binary files /dev/null and b/public/assets/img/qq1@2x.png differ
diff --git a/public/assets/img/qq2@2x.png b/public/assets/img/qq2@2x.png
new file mode 100644
index 0000000..3e03801
Binary files /dev/null and b/public/assets/img/qq2@2x.png differ
diff --git a/public/assets/img/qq@2x.png b/public/assets/img/qq@2x.png
new file mode 100644
index 0000000..25ad454
Binary files /dev/null and b/public/assets/img/qq@2x.png differ
diff --git a/public/assets/img/quanbufenlei@2x.png b/public/assets/img/quanbufenlei@2x.png
new file mode 100644
index 0000000..ecd59b2
Binary files /dev/null and b/public/assets/img/quanbufenlei@2x.png differ
diff --git a/public/assets/img/shangyiye@2x.png b/public/assets/img/shangyiye@2x.png
new file mode 100644
index 0000000..e91d747
Binary files /dev/null and b/public/assets/img/shangyiye@2x.png differ
diff --git a/public/assets/img/shoucang1@2x.png b/public/assets/img/shoucang1@2x.png
new file mode 100644
index 0000000..fc4c923
Binary files /dev/null and b/public/assets/img/shoucang1@2x.png differ
diff --git a/public/assets/img/shoucang2@2x.png b/public/assets/img/shoucang2@2x.png
new file mode 100644
index 0000000..c2ab1de
Binary files /dev/null and b/public/assets/img/shoucang2@2x.png differ
diff --git a/public/assets/img/shoucang@2x(1).png b/public/assets/img/shoucang@2x(1).png
new file mode 100644
index 0000000..5da6d28
Binary files /dev/null and b/public/assets/img/shoucang@2x(1).png differ
diff --git a/public/assets/img/shoucang@2x(2).png b/public/assets/img/shoucang@2x(2).png
new file mode 100644
index 0000000..eb6536f
Binary files /dev/null and b/public/assets/img/shoucang@2x(2).png differ
diff --git a/public/assets/img/shoucang@2x.png b/public/assets/img/shoucang@2x.png
new file mode 100644
index 0000000..5da6d28
Binary files /dev/null and b/public/assets/img/shoucang@2x.png differ
diff --git a/public/assets/img/shouji1@2x.png b/public/assets/img/shouji1@2x.png
new file mode 100644
index 0000000..abdf9dc
Binary files /dev/null and b/public/assets/img/shouji1@2x.png differ
diff --git a/public/assets/img/shouji2@2x.png b/public/assets/img/shouji2@2x.png
new file mode 100644
index 0000000..d5007a0
Binary files /dev/null and b/public/assets/img/shouji2@2x.png differ
diff --git a/public/assets/img/sl1@2x.png b/public/assets/img/sl1@2x.png
new file mode 100644
index 0000000..5a72c3a
Binary files /dev/null and b/public/assets/img/sl1@2x.png differ
diff --git a/public/assets/img/sousuo@2x.png b/public/assets/img/sousuo@2x.png
new file mode 100644
index 0000000..7d0b2e7
Binary files /dev/null and b/public/assets/img/sousuo@2x.png differ
diff --git a/public/assets/img/specialist.png b/public/assets/img/specialist.png
new file mode 100644
index 0000000..fc93588
Binary files /dev/null and b/public/assets/img/specialist.png differ
diff --git a/public/assets/img/sq@2x.png b/public/assets/img/sq@2x.png
new file mode 100644
index 0000000..fbb6af4
Binary files /dev/null and b/public/assets/img/sq@2x.png differ
diff --git a/public/assets/img/square_chose.png b/public/assets/img/square_chose.png
new file mode 100644
index 0000000..dd55842
Binary files /dev/null and b/public/assets/img/square_chose.png differ
diff --git a/public/assets/img/sy-01@2x.jpg b/public/assets/img/sy-01@2x.jpg
new file mode 100644
index 0000000..2457d92
Binary files /dev/null and b/public/assets/img/sy-01@2x.jpg differ
diff --git a/public/assets/img/sy-02@2x.jpg b/public/assets/img/sy-02@2x.jpg
new file mode 100644
index 0000000..ba0676c
Binary files /dev/null and b/public/assets/img/sy-02@2x.jpg differ
diff --git a/public/assets/img/sy-03@2x.jpg b/public/assets/img/sy-03@2x.jpg
new file mode 100644
index 0000000..357e595
Binary files /dev/null and b/public/assets/img/sy-03@2x.jpg differ
diff --git a/public/assets/img/sy-04@2x.jpg b/public/assets/img/sy-04@2x.jpg
new file mode 100644
index 0000000..3d1c9a4
Binary files /dev/null and b/public/assets/img/sy-04@2x.jpg differ
diff --git a/public/assets/img/touxiang@2x.png b/public/assets/img/touxiang@2x.png
new file mode 100644
index 0000000..59af051
Binary files /dev/null and b/public/assets/img/touxiang@2x.png differ
diff --git a/public/assets/img/transparent_logo.png b/public/assets/img/transparent_logo.png
new file mode 100644
index 0000000..54d78d1
Binary files /dev/null and b/public/assets/img/transparent_logo.png differ
diff --git a/public/assets/img/tx@2x.png b/public/assets/img/tx@2x.png
new file mode 100644
index 0000000..ae0a75b
Binary files /dev/null and b/public/assets/img/tx@2x.png differ
diff --git a/public/assets/img/weallsmall.jpg b/public/assets/img/weallsmall.jpg
new file mode 100644
index 0000000..fee0401
Binary files /dev/null and b/public/assets/img/weallsmall.jpg differ
diff --git a/public/assets/img/weallsmall22.jpg b/public/assets/img/weallsmall22.jpg
new file mode 100644
index 0000000..2663b6e
Binary files /dev/null and b/public/assets/img/weallsmall22.jpg differ
diff --git a/public/assets/img/weibo1@2x.png b/public/assets/img/weibo1@2x.png
new file mode 100644
index 0000000..9d9d63e
Binary files /dev/null and b/public/assets/img/weibo1@2x.png differ
diff --git a/public/assets/img/weibo2@2x.png b/public/assets/img/weibo2@2x.png
new file mode 100644
index 0000000..44ebf6b
Binary files /dev/null and b/public/assets/img/weibo2@2x.png differ
diff --git a/public/assets/img/weibo@2x.png b/public/assets/img/weibo@2x.png
new file mode 100644
index 0000000..7c74a7c
Binary files /dev/null and b/public/assets/img/weibo@2x.png differ
diff --git a/public/assets/img/weiixin2@2x.png b/public/assets/img/weiixin2@2x.png
new file mode 100644
index 0000000..34d01d8
Binary files /dev/null and b/public/assets/img/weiixin2@2x.png differ
diff --git a/public/assets/img/weixin1@2x.png b/public/assets/img/weixin1@2x.png
new file mode 100644
index 0000000..f7b27a0
Binary files /dev/null and b/public/assets/img/weixin1@2x.png differ
diff --git a/public/assets/img/weixin2@2x.png b/public/assets/img/weixin2@2x.png
new file mode 100644
index 0000000..3d176e6
Binary files /dev/null and b/public/assets/img/weixin2@2x.png differ
diff --git a/public/assets/img/weixin@2x.png b/public/assets/img/weixin@2x.png
new file mode 100644
index 0000000..051ff24
Binary files /dev/null and b/public/assets/img/weixin@2x.png differ
diff --git a/public/assets/img/wenxian@2x.png b/public/assets/img/wenxian@2x.png
new file mode 100644
index 0000000..cf20395
Binary files /dev/null and b/public/assets/img/wenxian@2x.png differ
diff --git a/public/assets/img/wnwenxian@2x.png b/public/assets/img/wnwenxian@2x.png
new file mode 100644
index 0000000..00704e0
Binary files /dev/null and b/public/assets/img/wnwenxian@2x.png differ
diff --git a/public/assets/img/wushuju@2x.png b/public/assets/img/wushuju@2x.png
new file mode 100644
index 0000000..9b81338
Binary files /dev/null and b/public/assets/img/wushuju@2x.png differ
diff --git a/public/assets/img/xiayiye@2x.png b/public/assets/img/xiayiye@2x.png
new file mode 100644
index 0000000..2f87e91
Binary files /dev/null and b/public/assets/img/xiayiye@2x.png differ
diff --git a/public/assets/img/xiazai2@2x.png b/public/assets/img/xiazai2@2x.png
new file mode 100644
index 0000000..67ae082
Binary files /dev/null and b/public/assets/img/xiazai2@2x.png differ
diff --git a/public/assets/img/xiazai@2x.png b/public/assets/img/xiazai@2x.png
new file mode 100644
index 0000000..da9de29
Binary files /dev/null and b/public/assets/img/xiazai@2x.png differ
diff --git a/public/assets/img/xin1@2x.png b/public/assets/img/xin1@2x.png
new file mode 100644
index 0000000..d2410c4
Binary files /dev/null and b/public/assets/img/xin1@2x.png differ
diff --git a/public/assets/img/xin2@2x.png b/public/assets/img/xin2@2x.png
new file mode 100644
index 0000000..300cfc9
Binary files /dev/null and b/public/assets/img/xin2@2x.png differ
diff --git a/public/assets/img/xl@2x.png b/public/assets/img/xl@2x.png
new file mode 100644
index 0000000..03a6da8
Binary files /dev/null and b/public/assets/img/xl@2x.png differ
diff --git a/public/assets/img/xl@2x1.png b/public/assets/img/xl@2x1.png
new file mode 100644
index 0000000..501ebcd
Binary files /dev/null and b/public/assets/img/xl@2x1.png differ
diff --git a/public/assets/img/xueke@2x(1).png b/public/assets/img/xueke@2x(1).png
new file mode 100644
index 0000000..a5d9b0a
Binary files /dev/null and b/public/assets/img/xueke@2x(1).png differ
diff --git a/public/assets/img/xueke@2x.png b/public/assets/img/xueke@2x.png
new file mode 100644
index 0000000..66bcf0f
Binary files /dev/null and b/public/assets/img/xueke@2x.png differ
diff --git a/public/assets/img/yiguanzhu@2x.png b/public/assets/img/yiguanzhu@2x.png
new file mode 100644
index 0000000..e448dd6
Binary files /dev/null and b/public/assets/img/yiguanzhu@2x.png differ
diff --git a/public/assets/img/youxiang@2x.png b/public/assets/img/youxiang@2x.png
new file mode 100644
index 0000000..66cb8cd
Binary files /dev/null and b/public/assets/img/youxiang@2x.png differ
diff --git a/public/assets/img/youxinag@2x.png b/public/assets/img/youxinag@2x.png
new file mode 100644
index 0000000..11d5040
Binary files /dev/null and b/public/assets/img/youxinag@2x.png differ
diff --git a/public/assets/img/zazhi@2x(1).png b/public/assets/img/zazhi@2x(1).png
new file mode 100644
index 0000000..cf8f442
Binary files /dev/null and b/public/assets/img/zazhi@2x(1).png differ
diff --git a/public/assets/img/zazhi@2x.png b/public/assets/img/zazhi@2x.png
new file mode 100644
index 0000000..37f3b34
Binary files /dev/null and b/public/assets/img/zazhi@2x.png differ
diff --git a/public/assets/img/zhanghao1.png b/public/assets/img/zhanghao1.png
new file mode 100644
index 0000000..a906cfb
Binary files /dev/null and b/public/assets/img/zhanghao1.png differ
diff --git a/public/assets/img/zhanghao2.png b/public/assets/img/zhanghao2.png
new file mode 100644
index 0000000..b4c2b96
Binary files /dev/null and b/public/assets/img/zhanghao2.png differ
diff --git a/public/assets/img/zhankai2@2x.png b/public/assets/img/zhankai2@2x.png
new file mode 100644
index 0000000..21e05bb
Binary files /dev/null and b/public/assets/img/zhankai2@2x.png differ
diff --git a/public/assets/img/zhankai@2x(1).png b/public/assets/img/zhankai@2x(1).png
new file mode 100644
index 0000000..0966bc9
Binary files /dev/null and b/public/assets/img/zhankai@2x(1).png differ
diff --git a/public/assets/img/zhankai@2x.png b/public/assets/img/zhankai@2x.png
new file mode 100644
index 0000000..f17472b
Binary files /dev/null and b/public/assets/img/zhankai@2x.png differ
diff --git a/public/assets/img/zhedie2@2x.png b/public/assets/img/zhedie2@2x.png
new file mode 100644
index 0000000..57c8857
Binary files /dev/null and b/public/assets/img/zhedie2@2x.png differ
diff --git a/public/assets/img/zhedie@2x(1).png b/public/assets/img/zhedie@2x(1).png
new file mode 100644
index 0000000..c54a1cd
Binary files /dev/null and b/public/assets/img/zhedie@2x(1).png differ
diff --git a/public/assets/img/zhedie@2x.png b/public/assets/img/zhedie@2x.png
new file mode 100644
index 0000000..c54a1cd
Binary files /dev/null and b/public/assets/img/zhedie@2x.png differ
diff --git a/public/assets/img/zhengxu@2x.png b/public/assets/img/zhengxu@2x.png
new file mode 100644
index 0000000..0a8218b
Binary files /dev/null and b/public/assets/img/zhengxu@2x.png differ
diff --git a/public/assets/img/zhuangshi-you@2x.png b/public/assets/img/zhuangshi-you@2x.png
new file mode 100644
index 0000000..bac7561
Binary files /dev/null and b/public/assets/img/zhuangshi-you@2x.png differ
diff --git a/public/assets/img/zhuangshi-zuo@2x.png b/public/assets/img/zhuangshi-zuo@2x.png
new file mode 100644
index 0000000..ccec443
Binary files /dev/null and b/public/assets/img/zhuangshi-zuo@2x.png differ
diff --git a/public/assets/img/zk@2x.png b/public/assets/img/zk@2x.png
new file mode 100644
index 0000000..42800c8
Binary files /dev/null and b/public/assets/img/zk@2x.png differ
diff --git a/public/assets/img/微信图片_20220713112838.jpg b/public/assets/img/微信图片_20220713112838.jpg
new file mode 100644
index 0000000..0391be5
Binary files /dev/null and b/public/assets/img/微信图片_20220713112838.jpg differ
diff --git a/public/assets/img/编组 7@2x.png b/public/assets/img/编组 7@2x.png
new file mode 100644
index 0000000..abfc5ff
Binary files /dev/null and b/public/assets/img/编组 7@2x.png differ
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..53f88a9
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/src/components/admin/RichTextEditor.jsx b/src/components/admin/RichTextEditor.jsx
new file mode 100644
index 0000000..13c79fd
--- /dev/null
+++ b/src/components/admin/RichTextEditor.jsx
@@ -0,0 +1,160 @@
+import { useEffect } from "react";
+import { useEditor, EditorContent } from "@tiptap/react";
+import StarterKit from "@tiptap/starter-kit";
+import Link from "@tiptap/extension-link";
+import Placeholder from "@tiptap/extension-placeholder";
+import Underline from "@tiptap/extension-underline";
+import { Button, Space, Tooltip } from "antd";
+import {
+ BoldOutlined,
+ ItalicOutlined,
+ UnderlineOutlined,
+ StrikethroughOutlined,
+ OrderedListOutlined,
+ UnorderedListOutlined,
+ LinkOutlined,
+ UndoOutlined,
+ RedoOutlined,
+} from "@ant-design/icons";
+
+/**
+ * Tiptap 富文本编辑器,支持 Ant Design Form(value / onChange)。
+ */
+export default function RichTextEditor({
+ value = "",
+ onChange,
+ placeholder = "请输入内容…",
+ minHeight = 160,
+ disabled = false,
+}) {
+ const editor = useEditor({
+ immediatelyRender: false,
+ extensions: [
+ StarterKit.configure({
+ heading: { levels: [2, 3] },
+ }),
+ Underline,
+ Link.configure({
+ openOnClick: false,
+ HTMLAttributes: { rel: "noopener noreferrer", target: "_blank" },
+ }),
+ Placeholder.configure({ placeholder }),
+ ],
+ content: value || "",
+ editable: !disabled,
+ onUpdate: ({ editor: ed }) => {
+ const html = ed.isEmpty ? "" : ed.getHTML();
+ onChange?.(html);
+ },
+ editorProps: {
+ attributes: {
+ class: "rich-text-editor__content outline-none px-3 py-2",
+ style: `min-height: ${minHeight}px`,
+ },
+ },
+ });
+
+ // 外部 value 变化时同步(编辑回填)
+ useEffect(() => {
+ if (!editor) return;
+ const current = editor.isEmpty ? "" : editor.getHTML();
+ const next = value || "";
+ if (current !== next) {
+ editor.commands.setContent(next, { emitUpdate: false });
+ }
+ }, [value, editor]);
+
+ useEffect(() => {
+ if (!editor) return;
+ editor.setEditable(!disabled);
+ }, [disabled, editor]);
+
+ if (!editor) return null;
+
+ const setLink = () => {
+ const prev = editor.getAttributes("link").href;
+ const url = window.prompt("链接地址", prev || "https://");
+ if (url === null) return;
+ if (url === "") {
+ editor.chain().focus().extendMarkRange("link").unsetLink().run();
+ return;
+ }
+ editor.chain().focus().extendMarkRange("link").setLink({ href: url }).run();
+ };
+
+ const btn = (active, onClick, icon, title) => (
+
+
+ );
+
+ return (
+