feat: 第一阶段基础框架搭建
后端 (Laravel 10 + Sanctum): - RBAC 四层权限系统 (users→roles→permissions→menus) - 门店隔离中间件 (BelongsToStore Trait + StoreIsolation Middleware) - 操作日志中间件 (自动记录写操作) - 权限检查中间件 (CheckPermission) - 16张数据库表迁移 (系统基础+RBAC+字典+配置) - 11个 Eloquent Model - Auth API (登录/登出/用户信息) - 系统设置模块 CRUD (门店/部门/职务/用户/角色/菜单/权限/字典/日志) - 45条 RESTful API 路由 - InitSeeder 初始数据 (超管/角色/76权限/31菜单) 前端 (Vue 3 + Element Plus + Vite): - Axios 请求封装 + Token 注入 - Pinia 状态管理 (user + permission store) - 动态路由 (服务端菜单→前端路由自动生成) - 后台布局 (侧边栏+顶栏+主内容区) - 登录页 + 仪表盘首页 - 系统设置 7 个 CRUD 页面 技术方案文档 (7卷): - 技术总览/数据库设计/API规范/RBAC设计/模块详设/小程序设计/部署方案
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use App\Http\Controllers\Admin\AuthController;
|
||||
use App\Http\Controllers\Admin\System\StoreController;
|
||||
use App\Http\Controllers\Admin\System\DepartmentController;
|
||||
use App\Http\Controllers\Admin\System\PositionController;
|
||||
use App\Http\Controllers\Admin\System\UserController;
|
||||
use App\Http\Controllers\Admin\System\RoleController;
|
||||
use App\Http\Controllers\Admin\System\MenuController;
|
||||
use App\Http\Controllers\Admin\System\PermissionController;
|
||||
use App\Http\Controllers\Admin\System\DictionaryController;
|
||||
use App\Http\Controllers\Admin\System\OperationLogController;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| 后台管理 API 路由
|
||||
|--------------------------------------------------------------------------
|
||||
| 前缀: /api/v1/ (在 bootstrap/app.php 中配置)
|
||||
*/
|
||||
|
||||
// ===== 公开路由(无需认证) =====
|
||||
Route::post('/auth/login', [AuthController::class, 'login']);
|
||||
|
||||
// ===== 需要认证的路由 =====
|
||||
Route::middleware(['auth:sanctum', 'store', 'oplog'])->group(function () {
|
||||
|
||||
// --- 认证 ---
|
||||
Route::post('/auth/logout', [AuthController::class, 'logout']);
|
||||
Route::get('/auth/me', [AuthController::class, 'me']);
|
||||
|
||||
// --- 系统设置模块 ---
|
||||
Route::prefix('system')->group(function () {
|
||||
|
||||
// 门店管理
|
||||
Route::apiResource('stores', StoreController::class);
|
||||
|
||||
// 部门管理
|
||||
Route::apiResource('departments', DepartmentController::class)->except(['show']);
|
||||
|
||||
// 职务管理
|
||||
Route::apiResource('positions', PositionController::class)->except(['show']);
|
||||
|
||||
// 用户管理
|
||||
Route::apiResource('users', UserController::class);
|
||||
Route::put('users/{user}/status', [UserController::class, 'updateStatus']);
|
||||
Route::put('users/{user}/password', [UserController::class, 'resetPassword']);
|
||||
|
||||
// 角色管理
|
||||
Route::apiResource('roles', RoleController::class);
|
||||
Route::put('roles/{role}/permissions', [RoleController::class, 'assignPermissions']);
|
||||
|
||||
// 菜单管理
|
||||
Route::apiResource('menus', MenuController::class)->except(['show']);
|
||||
|
||||
// 权限管理
|
||||
Route::apiResource('permissions', PermissionController::class)->except(['show']);
|
||||
|
||||
// 数据字典
|
||||
Route::apiResource('dictionaries', DictionaryController::class)->except(['show', 'update']);
|
||||
Route::get('dictionaries/{dictionary}/items', [DictionaryController::class, 'items']);
|
||||
Route::post('dictionaries/{dictionary}/items', [DictionaryController::class, 'storeItem']);
|
||||
Route::put('dictionary-items/{item}', [DictionaryController::class, 'updateItem']);
|
||||
Route::delete('dictionary-items/{item}', [DictionaryController::class, 'destroyItem']);
|
||||
|
||||
// 操作日志
|
||||
Route::get('operation-logs', [OperationLogController::class, 'index']);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user