增加 后台回复工单
This commit is contained in:
parent
0d9679aa69
commit
d8f05f4d63
@ -6,6 +6,8 @@
|
||||
use App\Models\Host;
|
||||
use App\Models\Module;
|
||||
use App\Models\ModuleAllow;
|
||||
use App\Models\WorkOrder\Reply;
|
||||
use App\Models\WorkOrder\WorkOrder;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
@ -88,7 +90,7 @@ public function show(Module $module): View
|
||||
*
|
||||
* @param Module $module
|
||||
*
|
||||
* @return Response
|
||||
* @return View
|
||||
*/
|
||||
public function edit(Module $module): View
|
||||
{
|
||||
@ -103,7 +105,7 @@ public function edit(Module $module): View
|
||||
* @param Request $request
|
||||
* @param Module $module
|
||||
*
|
||||
* @return Response
|
||||
* @return RedirectResponse
|
||||
*/
|
||||
public function update(Request $request, Module $module): RedirectResponse
|
||||
{
|
||||
|
@ -99,4 +99,18 @@ public function destroy(WorkOrder $workOrder): RedirectResponse
|
||||
|
||||
return redirect()->route('admin.work-orders.index')->with('success', '正在排队删除工单。');
|
||||
}
|
||||
|
||||
public function reply(Request $request, WorkOrder $workOrder): RedirectResponse
|
||||
{
|
||||
$request->validate([
|
||||
'content' => 'required|string',
|
||||
]);
|
||||
|
||||
Reply::create([
|
||||
'content' => $request->input('content'),
|
||||
'work_order_id' => $workOrder->id
|
||||
]);
|
||||
|
||||
return back()->with('success', '回复成功,请等待同步。');
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,7 @@
|
||||
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
/**
|
||||
* App\Models\WorkOrder\Reply
|
||||
@ -55,7 +56,7 @@
|
||||
*/
|
||||
class Reply extends Model
|
||||
{
|
||||
use HasFactory, Cachable;
|
||||
use Cachable;
|
||||
|
||||
protected $table = 'work_order_replies';
|
||||
|
||||
@ -86,7 +87,7 @@ protected static function boot()
|
||||
$model->workOrder->status = 'user_replied';
|
||||
}
|
||||
|
||||
if (auth('module')->check()) {
|
||||
if (auth('module')->check() || auth('admin')->check()) {
|
||||
$model->user_id = null;
|
||||
$model->workOrder->status = 'replied';
|
||||
|
||||
@ -107,12 +108,12 @@ protected static function boot()
|
||||
});
|
||||
}
|
||||
|
||||
public function workOrder()
|
||||
public function workOrder(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(WorkOrder::class, 'work_order_id', 'id');
|
||||
}
|
||||
|
||||
public function user()
|
||||
public function user(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(User::class);
|
||||
}
|
||||
|
@ -10,7 +10,6 @@
|
||||
<x-work-order-status :status="$workOrder->status"></x-work-order-status>
|
||||
|
||||
<div class="mt-3">
|
||||
<!-- replies -->
|
||||
<h4>对话记录</h4>
|
||||
|
||||
@foreach($replies as $reply)
|
||||
@ -32,6 +31,18 @@
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
<h4 class="mt-3">您的回复</h4>
|
||||
<form method="POST" action="{{ route('admin.work-orders.replies.store', $workOrder->id) }}">
|
||||
@csrf
|
||||
{{-- label --}}
|
||||
<div class="form-group">
|
||||
<label for="content">内容</label>
|
||||
<textarea class="form-control" id="content" name="content" rows="10" placeholder="代替模块的回复。"></textarea>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary mt-3 mb-3">提交</button>
|
||||
</form>
|
||||
|
||||
|
||||
<p>在这里,您无法回复工单,只能够查看。</p>
|
||||
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
Route::resource('applications', ApplicationController::class);
|
||||
Route::resource('hosts', HostController::class)->only(['index', 'edit', 'update', 'destroy']);
|
||||
|
||||
Route::resource('work-orders', WorkOrderController::class)->only(['index', 'show', 'edit', 'update', 'destroy']);
|
||||
Route::post('work-orders/{work_order}/replies', [WorkOrderController::class, 'reply'])->name('work-orders.replies.store');
|
||||
|
||||
Route::resource('user-groups', UserGroupController::class);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user