Build STAR International public site and admin UI.
Add site/admin pages, i18n, content services, and assets aligned with the domestic STAR layout, proxied to the Django API. Co-authored-by: Cursor <cursoragent@cursor.com>
22
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`
|
||||
|
||||
@ -2,9 +2,9 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||
<link rel="icon" href="/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>template-ui</title>
|
||||
<title>STAR International</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
897
package-lock.json
generated
28
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"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
export default {
|
||||
plugins: {
|
||||
"@tailwindcss/postcss": {},
|
||||
autoprefixer: {},
|
||||
"postcss-antd-fixes": {},
|
||||
},
|
||||
};
|
||||
|
||||
BIN
public/assets/img/01.png
Normal file
|
After Width: | Height: | Size: 228 B |
BIN
public/assets/img/01@2x.jpg
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
public/assets/img/02.png
Normal file
|
After Width: | Height: | Size: 228 B |
BIN
public/assets/img/02@2x.jpg
Normal file
|
After Width: | Height: | Size: 85 KiB |
BIN
public/assets/img/03@2x.jpg
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
public/assets/img/04@2x.jpg
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
public/assets/img/1.jpg
Normal file
|
After Width: | Height: | Size: 841 KiB |
BIN
public/assets/img/11.jpg
Normal file
|
After Width: | Height: | Size: 302 KiB |
BIN
public/assets/img/2.jpg
Normal file
|
After Width: | Height: | Size: 3.6 MiB |
BIN
public/assets/img/3.jpg
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
public/assets/img/4.jpg
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
public/assets/img/5.jpg
Normal file
|
After Width: | Height: | Size: 314 KiB |
BIN
public/assets/img/6.jpg
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
public/assets/img/9.jpg
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
public/assets/img/WechatIMG26.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
public/assets/img/about/pingji.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
public/assets/img/about/rating-steps.png
Normal file
|
After Width: | Height: | Size: 459 KiB |
BIN
public/assets/img/about/yanfa.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
public/assets/img/about/yanzheng.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
public/assets/img/address.png
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
public/assets/img/banner1@2x(1).jpg
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
public/assets/img/banner1@2x.jpg
Normal file
|
After Width: | Height: | Size: 293 KiB |
BIN
public/assets/img/banner2@2x.jpg
Normal file
|
After Width: | Height: | Size: 364 KiB |
BIN
public/assets/img/banner3@2x.jpg
Normal file
|
After Width: | Height: | Size: 375 KiB |
BIN
public/assets/img/banquanshengming-bg@2x.png
Normal file
|
After Width: | Height: | Size: 740 KiB |
BIN
public/assets/img/bg.png
Normal file
|
After Width: | Height: | Size: 860 KiB |
BIN
public/assets/img/bg10@2x.png
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
public/assets/img/bg1@1x.png
Normal file
|
After Width: | Height: | Size: 266 KiB |
BIN
public/assets/img/bg1@2x.png
Normal file
|
After Width: | Height: | Size: 242 KiB |
BIN
public/assets/img/bg2@2x.png
Normal file
|
After Width: | Height: | Size: 261 KiB |
BIN
public/assets/img/bg3@2x.png
Normal file
|
After Width: | Height: | Size: 280 KiB |
BIN
public/assets/img/bg4@2x.png
Normal file
|
After Width: | Height: | Size: 301 KiB |
BIN
public/assets/img/bg5@2x.png
Normal file
|
After Width: | Height: | Size: 106 KiB |
BIN
public/assets/img/bg6@2x.png
Normal file
|
After Width: | Height: | Size: 178 KiB |
BIN
public/assets/img/bg7@2x.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
public/assets/img/bg8@2x.png
Normal file
|
After Width: | Height: | Size: 647 KiB |
BIN
public/assets/img/bg9@2x.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
public/assets/img/bukedian-xiala@2x.png
Normal file
|
After Width: | Height: | Size: 697 B |
BIN
public/assets/img/carousel/jishitang.png
Normal file
|
After Width: | Height: | Size: 826 KiB |
BIN
public/assets/img/carousel/landa.jpg
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
public/assets/img/carousel/yuanshi.png
Normal file
|
After Width: | Height: | Size: 4.9 MiB |
BIN
public/assets/img/carousel/yuzhong.jpg
Normal file
|
After Width: | Height: | Size: 372 KiB |
BIN
public/assets/img/daoxu@2x.png
Normal file
|
After Width: | Height: | Size: 454 B |
BIN
public/assets/img/dianping@2x.png
Normal file
|
After Width: | Height: | Size: 671 B |
BIN
public/assets/img/dianzan@2x(1).png
Normal file
|
After Width: | Height: | Size: 637 B |
BIN
public/assets/img/dianzan@2x(2).png
Normal file
|
After Width: | Height: | Size: 861 B |
BIN
public/assets/img/dianzan@2x.png
Normal file
|
After Width: | Height: | Size: 861 B |
BIN
public/assets/img/dier@2x.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
public/assets/img/dinahua@2x.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
public/assets/img/diqiu@2x.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
public/assets/img/disan@2x.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
public/assets/img/diyi@2x.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
public/assets/img/dunpai1@2x.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
public/assets/img/dunpai2@2x.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
public/assets/img/duoxuan1@2x.png
Normal file
|
After Width: | Height: | Size: 231 B |
BIN
public/assets/img/duoxuan2@2x.png
Normal file
|
After Width: | Height: | Size: 697 B |
BIN
public/assets/img/fenxiang@2x(1).png
Normal file
|
After Width: | Height: | Size: 438 B |
BIN
public/assets/img/fenxiang@2x.png
Normal file
|
After Width: | Height: | Size: 438 B |
BIN
public/assets/img/fh@2x.png
Normal file
|
After Width: | Height: | Size: 609 B |
BIN
public/assets/img/gengduo@2x.png
Normal file
|
After Width: | Height: | Size: 719 B |
BIN
public/assets/img/geren1@2x.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
public/assets/img/geren2@2x.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
public/assets/img/gongan.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
public/assets/img/guanbi@2x.png
Normal file
|
After Width: | Height: | Size: 554 B |
BIN
public/assets/img/guanji1@2x.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
public/assets/img/guanji2@2x.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
public/assets/img/guanywomen-bg@2x.png
Normal file
|
After Width: | Height: | Size: 292 KiB |
BIN
public/assets/img/guanzhu1@2x.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
public/assets/img/guanzhu2@2x.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
public/assets/img/gywm@2x.jpg
Normal file
|
After Width: | Height: | Size: 302 KiB |
BIN
public/assets/img/hou@2x.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
public/assets/img/icon-moren@2x.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/assets/img/image-moren@2x.png
Normal file
|
After Width: | Height: | Size: 220 KiB |
BIN
public/assets/img/jglby@2x.jpg
Normal file
|
After Width: | Height: | Size: 348 KiB |
BIN
public/assets/img/jiaguanzhu@2x.png
Normal file
|
After Width: | Height: | Size: 364 B |
BIN
public/assets/img/jigou@2x(1).png
Normal file
|
After Width: | Height: | Size: 848 B |
BIN
public/assets/img/jigou@2x.png
Normal file
|
After Width: | Height: | Size: 686 B |
BIN
public/assets/img/lianxiren.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
public/assets/img/lianxiwomen-bg@2x.png
Normal file
|
After Width: | Height: | Size: 381 KiB |
BIN
public/assets/img/logo-bai-1@2x.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
public/assets/img/logo-bai-2@2x.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
public/assets/img/logo2@2x.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
public/assets/img/logo3@2x.jpg
Normal file
|
After Width: | Height: | Size: 87 KiB |
BIN
public/assets/img/logo@2x.jpg
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
public/assets/img/logo@2x.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
public/assets/img/mobile/01@2x.png
Normal file
|
After Width: | Height: | Size: 305 KiB |
BIN
public/assets/img/mobile/02@2x.png
Normal file
|
After Width: | Height: | Size: 267 KiB |
BIN
public/assets/img/mobile/03@2x.png
Normal file
|
After Width: | Height: | Size: 257 KiB |
BIN
public/assets/img/mobile/04@2x.png
Normal file
|
After Width: | Height: | Size: 223 KiB |
BIN
public/assets/img/mobile/banner1@2x.jpg
Normal file
|
After Width: | Height: | Size: 293 KiB |
BIN
public/assets/img/mobile/banner1@2x.png
Normal file
|
After Width: | Height: | Size: 481 KiB |
BIN
public/assets/img/mobile/banner2@2x.png
Normal file
|
After Width: | Height: | Size: 439 KiB |
BIN
public/assets/img/mobile/banner3@2x.png
Normal file
|
After Width: | Height: | Size: 394 KiB |
BIN
public/assets/img/mobile/banquanshengming@2x.png
Normal file
|
After Width: | Height: | Size: 81 KiB |
BIN
public/assets/img/mobile/bg.png
Normal file
|
After Width: | Height: | Size: 764 KiB |