diff --git a/app/Http/Controllers/Admin/MaintenanceController.php b/app/Http/Controllers/Admin/MaintenanceController.php new file mode 100644 index 0000000..3598bd5 --- /dev/null +++ b/app/Http/Controllers/Admin/MaintenanceController.php @@ -0,0 +1,106 @@ +all(); + + return view('admin.maintenances.index', compact('maintenances')); + } + + /** + * Show the form for creating a new resource. + * + * @return View + */ + public function create(): View + { + $modules = (new Module)->all(); + + return view('admin.maintenances.create', compact('modules')); + } + + /** + * Store a newly created resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function store(Request $request): RedirectResponse + { + $request->validate([ + 'name' => 'required|string|max:255', + 'content' => 'nullable|string', + 'module_id' => 'nullable|string|max:255', + 'start_at' => 'nullable|date', + 'end_at' => 'nullable|date', + ]); + + (new Maintenance())->create($request->all()); + + return redirect()->route('admin.maintenances.index')->with('success', '维护信息已创建'); + } + + /** + * Show the form for editing the specified resource. + * + * @param Maintenance $maintenance + * @return View + */ + public function edit(Maintenance $maintenance): View + { + $modules = (new Module)->all(); + + return view('admin.maintenances.edit', compact('maintenance', 'modules')); + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param Maintenance $maintenance + * @return \Illuminate\Http\Response + */ + public function update(Request $request, Maintenance $maintenance): RedirectResponse + { + $request->validate([ + 'name' => 'nullable|string|max:255', + 'content' => 'nullable|string', + 'module_id' => 'nullable|string|max:255', + 'start_at' => 'nullable|date', + 'end_at' => 'nullable|date', + ]); + + $maintenance->update($request->all()); + + return redirect()->route('admin.maintenances.index')->with('success', '维护信息已更新'); + } + + /** + * Remove the specified resource from storage. + * + * @param Maintenance $maintenance + * @return \Illuminate\Http\Response + */ + public function destroy(Maintenance $maintenance): RedirectResponse + { + $maintenance->delete(); + + return redirect()->route('admin.maintenances.index')->with('success', '维护信息已删除'); + } +} diff --git a/app/Models/Maintenance.php b/app/Models/Maintenance.php new file mode 100644 index 0000000..64b1d46 --- /dev/null +++ b/app/Models/Maintenance.php @@ -0,0 +1,37 @@ + 'datetime', + 'end_at' => 'datetime', + ]; + + protected $dates = [ + 'start_at', + 'end_at', + ]; + + protected $with = [ + 'module', + ]; + + public function module() + { + return $this->belongsTo(Module::class); + } +} diff --git a/database/migrations/2023_02_17_142300_create_maintenances_table.php b/database/migrations/2023_02_17_142300_create_maintenances_table.php new file mode 100644 index 0000000..f6c358e --- /dev/null +++ b/database/migrations/2023_02_17_142300_create_maintenances_table.php @@ -0,0 +1,45 @@ +id(); + + // 维护名称 + $table->string('name')->index(); + + // 内容 + $table->text('content')->nullable(); + + // 模块 ID + $table->string('module_id')->index()->nullable(); + $table->foreign('module_id')->references('id')->on('modules')->onDelete('set null'); + + // 开始于 + $table->dateTime('start_at')->nullable(); + + $table->dateTime('end_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down(): void + { + Schema::dropIfExists('maintenances'); + } +}; diff --git a/resources/views/admin/maintenances/create.blade.php b/resources/views/admin/maintenances/create.blade.php new file mode 100644 index 0000000..d20162c --- /dev/null +++ b/resources/views/admin/maintenances/create.blade.php @@ -0,0 +1,46 @@ +@extends('layouts.admin') + +@section('title', '计划维护') + +@section('content') +
ID | +名称 | +模块 | +开始于 | +结束于 | +操作 | + + + + @foreach ($maintenances as $m) +
---|---|---|---|---|---|
+ + {{ $m->id }} + + | + ++ + {{ $m->name }} + + | + ++ {{ $m->module?->name }} + | + ++ {{ $m->start_at }} + | + ++ {{ $m->end_at }} + | + ++ 编辑 + | +