feat: 员工自助注册+审核流程

- 新增 registration_packages 表:管理员配置注册套餐(名称/角色)
- AuthController 新增 register() 和 registrationPackages() 公开接口
- UserController 新增 approve() / reject() 审核接口
- StoreController 新增 publicList() 公开门店列表
- 前端 /register 注册页:选门店→选岗位套餐→填信息→提交
- 前端 system/registration-packages:套餐 CRUD
- 用户管理页:待审核状态展示 + 通过/拒绝快捷操作
- 登录页底部加「申请注册」跳转链接
- 路由白名单加 /register
This commit is contained in:
li
2026-03-14 17:39:50 +08:00
parent 4a68855a88
commit ee2b1757d0
105 changed files with 7859 additions and 2469 deletions
+30 -1
View File
@@ -44,6 +44,9 @@ use App\Http\Controllers\Admin\Inventory\MaterialController;
use App\Http\Controllers\Admin\Inventory\PurchaseOrderController;
use App\Http\Controllers\Admin\Inventory\StockMovementController;
use App\Http\Controllers\Admin\Inventory\InventoryController;
use App\Http\Controllers\Admin\Inventory\StockController;
use App\Http\Controllers\Admin\Inventory\TransferOrderController;
use App\Http\Controllers\Admin\Inventory\InventoryCheckController;
use App\Http\Controllers\Admin\Finance\FinanceCategoryController;
use App\Http\Controllers\Admin\Finance\FinanceRecordController;
use App\Http\Controllers\Admin\Finance\CustomerAccountController;
@@ -64,6 +67,7 @@ use App\Http\Controllers\Admin\Report\ReportController;
use App\Http\Controllers\Admin\Report\ReportExportController;
use App\Http\Controllers\Admin\Kb\KbCategoryController;
use App\Http\Controllers\Admin\Kb\KbArticleController;
use App\Http\Controllers\Admin\System\RegistrationPackageController;
/*
|--------------------------------------------------------------------------
@@ -74,6 +78,9 @@ use App\Http\Controllers\Admin\Kb\KbArticleController;
// ===== 公开路由(无需认证) =====
Route::post('/auth/login', [AuthController::class, 'login']);
Route::post('/auth/register', [AuthController::class, 'register']);
Route::get('/auth/register/packages', [AuthController::class, 'registrationPackages']);
Route::get('/auth/stores', [\App\Http\Controllers\Admin\System\StoreController::class, 'publicList']);
// ===== 需要认证的路由 =====
Route::middleware(['auth:sanctum', 'store', 'oplog'])->group(function () {
@@ -98,6 +105,11 @@ Route::middleware(['auth:sanctum', 'store', 'oplog'])->group(function () {
Route::apiResource('users', UserController::class);
Route::put('users/{user}/status', [UserController::class, 'updateStatus']);
Route::put('users/{user}/password', [UserController::class, 'resetPassword']);
Route::put('users/{user}/approve', [UserController::class, 'approve']);
Route::put('users/{user}/reject', [UserController::class, 'reject']);
// 注册套餐管理
Route::apiResource('registration-packages', RegistrationPackageController::class);
// 角色管理
Route::apiResource('roles', RoleController::class);
@@ -264,8 +276,25 @@ Route::middleware(['auth:sanctum', 'store', 'oplog'])->group(function () {
Route::get('stock-movements/{stockMovement}', [StockMovementController::class, 'show']);
Route::put('stock-movements/{stockMovement}/confirm', [StockMovementController::class, 'confirm']);
// 库存查询
// 库存查询(按物料/仓库汇总)
Route::get('inventories', [InventoryController::class, 'index']);
// 库存台账
Route::get('stock', [StockController::class, 'index']);
Route::get('stock/export', [StockController::class, 'export']);
// 调拨管理
Route::get('transfers', [TransferOrderController::class, 'index']);
Route::post('transfers', [TransferOrderController::class, 'store']);
Route::get('transfers/{transferOrder}', [TransferOrderController::class, 'show']);
Route::put('transfers/{transferOrder}/confirm', [TransferOrderController::class, 'confirm']);
Route::put('transfers/{transferOrder}/cancel', [TransferOrderController::class, 'cancel']);
// 盘点管理
Route::get('checks', [InventoryCheckController::class, 'index']);
Route::post('checks', [InventoryCheckController::class, 'store']);
Route::get('checks/{inventoryCheck}', [InventoryCheckController::class, 'show']);
Route::put('checks/{inventoryCheck}/complete', [InventoryCheckController::class, 'complete']);
});
// --- 财务管理模块 ---