增加 模块管理
This commit is contained in:
parent
37bf26e080
commit
f107118db9
@ -4,14 +4,18 @@
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Module;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class ModuleController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return Response
|
||||
*/
|
||||
public function index(Module $module)
|
||||
{
|
||||
@ -23,11 +27,13 @@ public function index(Module $module)
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return View
|
||||
*/
|
||||
public function create()
|
||||
public function create(): View
|
||||
{
|
||||
//
|
||||
|
||||
return view('admin.modules.create');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -35,11 +41,27 @@ public function create()
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
|
||||
$request->validate($this->rules());
|
||||
|
||||
|
||||
$api_token = Str::random(60);
|
||||
|
||||
$module = new Module();
|
||||
|
||||
$module->id = $request->id;
|
||||
$module->name = $request->name;
|
||||
$module->api_token = $api_token;
|
||||
$module->url = $request->url;
|
||||
$module->save();
|
||||
|
||||
return redirect()->route('admin.modules.index')->with('success', '模块创建成功, 请重置以获得 API Token。');
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -47,11 +69,13 @@ public function store(Request $request)
|
||||
*
|
||||
* @param \App\Models\Module $module
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return View
|
||||
*/
|
||||
public function show(Module $module)
|
||||
public function show(Module $module): View
|
||||
{
|
||||
//
|
||||
$years = $module->calculate();
|
||||
|
||||
return view('admin.modules.show', compact('module', 'years'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -59,11 +83,13 @@ public function show(Module $module)
|
||||
*
|
||||
* @param \App\Models\Module $module
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return Response
|
||||
*/
|
||||
public function edit(Module $module)
|
||||
public function edit(Module $module): View
|
||||
{
|
||||
//
|
||||
|
||||
return view('admin.modules.edit', compact('module'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -72,11 +98,34 @@ public function edit(Module $module)
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\Module $module
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return Response
|
||||
*/
|
||||
public function update(Request $request, Module $module)
|
||||
public function update(Request $request, Module $module): RedirectResponse
|
||||
{
|
||||
//
|
||||
|
||||
$request->validate($this->rules());
|
||||
|
||||
|
||||
if ($request->reset_api_token) {
|
||||
$module->api_token = Str::random(60);
|
||||
}
|
||||
|
||||
$module->id = $request->id;
|
||||
$module->name = $request->name;
|
||||
$module->url = $request->url;
|
||||
|
||||
$module->save();
|
||||
|
||||
$text = '模块更新成功';
|
||||
|
||||
if ($request->reset_api_token) {
|
||||
$text .= ', API Token 为 ' . $module->api_token . '。';
|
||||
} else {
|
||||
$text .= '。';
|
||||
}
|
||||
|
||||
return redirect()->route('admin.modules.edit', $module->id)->with('success', $text);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -84,10 +133,23 @@ public function update(Request $request, Module $module)
|
||||
*
|
||||
* @param \App\Models\Module $module
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return Response
|
||||
*/
|
||||
public function destroy(Module $module)
|
||||
{
|
||||
//
|
||||
|
||||
$module->delete();
|
||||
|
||||
return redirect()->route('admin.modules.index')->with('success', '模块已删除。');
|
||||
}
|
||||
|
||||
private function rules(): array
|
||||
{
|
||||
return [
|
||||
'id' => 'required|string|max:255',
|
||||
'name' => 'required|string|max:255',
|
||||
'url' => 'required|url',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
29
resources/views/admin/modules/create.blade.php
Normal file
29
resources/views/admin/modules/create.blade.php
Normal file
@ -0,0 +1,29 @@
|
||||
@extends('layouts.admin')
|
||||
|
||||
@section('title', '新建模块')
|
||||
|
||||
@section('content')
|
||||
<h3>新建模块</h3>
|
||||
|
||||
<form method="POST" action="{{ route('admin.modules.store')}}">
|
||||
@csrf
|
||||
|
||||
<div class="form-group">
|
||||
<label for="name">ID</label>
|
||||
<input type="text" class="form-control" id="id" name="id">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="name">名称</label>
|
||||
<input type="text" class="form-control" id="name" name="name">
|
||||
</div>
|
||||
|
||||
<div class="form-group mt-1">
|
||||
<label for="name">对端地址</label>
|
||||
<input type="text" class="form-control" id="url" name="url">
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary mt-3">提交</button>
|
||||
</form>
|
||||
|
||||
@endsection
|
47
resources/views/admin/modules/edit.blade.php
Normal file
47
resources/views/admin/modules/edit.blade.php
Normal file
@ -0,0 +1,47 @@
|
||||
@extends('layouts.admin')
|
||||
|
||||
@section('title', '模块:' . $module->name)
|
||||
|
||||
@section('content')
|
||||
<h3>{{ $module->name }}</h3>
|
||||
<a class="mt-3" href="{{ route('admin.modules.show', $module) }}">查看</a>
|
||||
|
||||
<form method="POST" action="{{ route('admin.modules.update', $module)}}">
|
||||
@csrf
|
||||
@method('PATCH')
|
||||
|
||||
<div class="form-group">
|
||||
<label for="name">ID (修改后,路由也会改变)</label>
|
||||
<input type="text" class="form-control" id="id" name="id" value="{{ $module->id }}">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="name">名称</label>
|
||||
<input type="text" class="form-control" id="name" name="name" value="{{ $module->name }}">
|
||||
</div>
|
||||
|
||||
<div class="form-group mt-1">
|
||||
<label for="name">对端地址</label>
|
||||
<input type="text" class="form-control" id="url" name="url" value="{{ $module->url }}">
|
||||
</div>
|
||||
|
||||
<div class="form-check mt-1">
|
||||
<input class="form-check-input" type="checkbox" value="1" id="reset_api_token" name="reset_api_token">
|
||||
<label class="form-check-label" for="reset_api_token">
|
||||
重置 Api Token(重置后,需要到对应的模块中更新,否则会导致模块无法正常工作)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary mt-3">提交</button>
|
||||
</form>
|
||||
|
||||
|
||||
<hr/>
|
||||
<form method="POST" action="{{ route('admin.modules.destroy', $module)}}"
|
||||
onsubmit="return confirm('删除后,业务将无法正常进行。')">
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
<button type="submit" class="btn btn-danger">删除</button>
|
||||
</form>
|
||||
|
||||
@endsection
|
@ -4,6 +4,8 @@
|
||||
|
||||
@section('content')
|
||||
|
||||
<h3>模块</h3>
|
||||
<a href="{{ route('admin.modules.create') }}">新建模块</a>
|
||||
<div class="overflow-auto">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
@ -24,6 +26,7 @@
|
||||
{{ $module->name }}
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ route('admin.modules.show', $module) }}" class="btn btn-primary btn-sm">查看</a>
|
||||
<a href="{{ route('admin.modules.edit', $module) }}" class="btn btn-primary btn-sm">编辑</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
35
resources/views/admin/modules/show.blade.php
Normal file
35
resources/views/admin/modules/show.blade.php
Normal file
@ -0,0 +1,35 @@
|
||||
@extends('layouts.admin')
|
||||
|
||||
@section('title', '模块:' . $module->name)
|
||||
|
||||
@section('content')
|
||||
<h3>{{ $module->name }}</h3>
|
||||
<a class="mt-3" href="{{ route('admin.modules.edit', $module) }}">编辑</a>
|
||||
<h4>收益</h4>
|
||||
<div>
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<th>年 / 月</th>
|
||||
|
||||
@for ($i = 1; $i < 13; $i++)
|
||||
<th>{{ $i }} 月</th>
|
||||
@endfor
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
@foreach ($years as $year => $months)
|
||||
<tr>
|
||||
<td>{{ $year }}</td>
|
||||
@for ($i = 1; $i < 13; $i++)
|
||||
|
||||
<td @if ($months[$i]['should_balance'] ?? 0 > 0) class="text-danger" @endif>{{ $months[$i]['should_balance'] ?? 0 }}
|
||||
元
|
||||
</td>
|
||||
|
||||
@endfor
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@endsection
|
Loading…
Reference in New Issue
Block a user