|
|
10 hours ago | |
|---|---|---|
| docs | 1 week ago | |
| public | 2 weeks ago | |
| src | 10 hours ago | |
| .env.development | 5 days ago | |
| .env.production | 1 week ago | |
| .gitignore | 2 weeks ago | |
| README.md | 2 weeks ago | |
| eslint.config.js | 2 weeks ago | |
| index.html | 2 weeks ago | |
| nginx.local.conf | 1 week ago | |
| package.json | 14 hours ago | |
| pnpm-lock.yaml | 14 hours ago | |
| tsconfig.app.json | 1 week ago | |
| tsconfig.json | 2 weeks ago | |
| tsconfig.node.json | 2 weeks ago | |
| vite.config.ts | 1 week ago | |
| yarn.lock | 18 hours ago |
基于 React + TypeScript + Vite 构建的内容管理系统,集成 JeecgBoot 后台权限系统。
src/
├── config/ # 配置文件
│ └── menuIds.ts # 菜单ID配置
├── contexts/ # React Context
│ └── AuthContext.tsx # 权限上下文
├── hooks/ # 自定义Hooks
│ └── usePermission.ts # 权限Hook
├── layouts/ # 布局组件
│ ├── MainLayout.tsx
│ ├── Header.tsx
│ └── Sidebar.tsx
├── pages/ # 页面组件
│ └── ContentPage.tsx
├── components/ # 通用组件
│ └── common/
│ ├── EmptyState.tsx
│ ├── PermissionButton.tsx
│ └── PermissionWrapper.tsx
├── services/ # API服务层
│ ├── api.ts # 系统API
│ ├── BaseService.ts # 基础服务类
│ ├── index.ts # 统一导出
│ └── modules/ # 业务模块
│ ├── user.ts
│ ├── role.ts
│ └── content.ts
├── types/ # 类型定义
│ └── menu.ts
├── utils/ # 工具函数
│ └── request.ts # 请求封装
└── examples/ # 使用示例
├── ApiUsage.tsx
└── PermissionUsage.tsx
PermissionButton 组件PermissionWrapper 组件usePermission Hookpnpm install
复制 .env.example 为 .env:
cp .env.example .env
修改 API 地址:
VITE_API_BASE_URL=http://localhost:8080
pnpm dev
pnpm build
import { usePermission } from "@/hooks/usePermission";
import PermissionButton from "@/components/common/PermissionButton";
function MyPage() {
const permission = usePermission("user-management");
return (
<>
{/* 方式1: 使用 Hook */}
{permission.canAdd && <Button>新增</Button>}
{/* 方式2: 使用组件 */}
<PermissionButton menuId="user-management" action="edit">
编辑
</PermissionButton>
</>
);
}
import { userService } from "@/services";
// 分页查询
const users = await userService.list({ pageNo: 1, pageSize: 10 });
// CRUD 操作
await userService.add({ username: "test" });
await userService.edit({ id: "1", username: "updated" });
await userService.delete("1");
// 导出
await userService.exportXls({}, "用户列表.xls");
layouts/ - 布局组件pages/ - 页面组件components/common/ - 通用组件services/api.ts - 系统级 APIservices/modules/ - 按业务模块组织MIT