增加 工单删除功能
This commit is contained in:
parent
e9eef76ed1
commit
b2ee0f3244
@ -102,8 +102,11 @@ public function update(Request $request, WorkOrder $workOrder): RedirectResponse
|
||||
* @param \App\Models\WorkOrder\WorkOrder $workOrder
|
||||
* @return Response
|
||||
*/
|
||||
public function destroy(WorkOrder $workOrder)
|
||||
public function destroy(WorkOrder $workOrder): RedirectResponse
|
||||
{
|
||||
//
|
||||
$workOrder->safeDelete();
|
||||
|
||||
return redirect()->route('admin.work-orders.index')->with('success', '正在排队删除工单。');
|
||||
}
|
||||
}
|
||||
|
@ -42,6 +42,12 @@ public function handle()
|
||||
$http = Http::module($this->workOrder->module->api_token, $this->workOrder->module->url);
|
||||
if ($this->type == 'put') {
|
||||
$response = $http->put('work-orders/' . $this->workOrder->id, $this->workOrder->toArray());
|
||||
} else if ($this->type == 'delete') {
|
||||
$response = $http->delete('work-orders/' . $this->workOrder->id);
|
||||
|
||||
if ($response->successful()) {
|
||||
$this->workOrder->delete();
|
||||
}
|
||||
} else {
|
||||
$response = $http->post('work-orders', $this->workOrder->toArray());
|
||||
}
|
||||
@ -51,7 +57,11 @@ public function handle()
|
||||
'status' => 'error'
|
||||
]);
|
||||
} else {
|
||||
broadcast(new UserEvent($this->workOrder->user_id, 'work-order.updated', $this->workOrder));
|
||||
if ($this->type == 'delete') {
|
||||
broadcast(new UserEvent($this->workOrder->user_id, 'work-order.deleted', $this->workOrder));
|
||||
} else {
|
||||
broadcast(new UserEvent($this->workOrder->user_id, 'work-order.updated', $this->workOrder));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -9,6 +9,7 @@
|
||||
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Jobs\Module\WorkOrder\WorkOrder as WorkOrderJob;
|
||||
|
||||
class WorkOrder extends Model
|
||||
{
|
||||
@ -25,7 +26,16 @@ class WorkOrder extends Model
|
||||
'status',
|
||||
];
|
||||
|
||||
// user
|
||||
public function safeDelete(): bool
|
||||
{
|
||||
if ($this->status == 'pending') {
|
||||
throw new CommonException('工单状态是 pending,无法删除');
|
||||
}
|
||||
|
||||
dispatch(new WorkOrderJob($this, 'delete'));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected static function boot()
|
||||
{
|
||||
|
@ -9,39 +9,40 @@
|
||||
<a href="{{ route('admin.work-orders.show', $workOrder) }}">查看工单</a>
|
||||
|
||||
|
||||
<form method="post" action="{{ route('admin.work-orders.update', $workOrder) }}">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
@if ($workOrder->status !== 'pending')
|
||||
<form method="post" action="{{ route('admin.work-orders.update', $workOrder) }}">
|
||||
@csrf
|
||||
@method('PATCH')
|
||||
|
||||
<div class="form-group">
|
||||
<label for="title" class="col-sm-2 col-form-label">标题</label>
|
||||
<input type="text" class="form-control" id="title" name="title" value="{{ $workOrder->title }}">
|
||||
</div>
|
||||
{{-- 修改状态 --}}
|
||||
<div class="form-group">
|
||||
<label for="status" class="col-sm-2 col-form-label">状态</label>
|
||||
<select class="form-control" id="status" name="status">
|
||||
<option value="open" {{ $workOrder->status == 'open' ? 'selected' : '' }}>已开启</option>
|
||||
<option value="closed" {{ $workOrder->status == 'closed' ? 'selected' : '' }}>关闭</option>
|
||||
<option value="user_read" {{ $workOrder->status == 'user_read' ? 'selected' : '' }}>用户已读</option>
|
||||
<option value="user_replied" {{ $workOrder->status == 'user_replied' ? 'selected' : '' }}>用户已回复
|
||||
</option>
|
||||
|
||||
{{-- 修改状态 --}}
|
||||
<div class="form-group">
|
||||
<label for="status" class="col-sm-2 col-form-label">状态</label>
|
||||
<select class="form-control" id="status" name="status">
|
||||
<option value="open" {{ $workOrder->status == 'open' ? 'selected' : '' }}>已开启</option>
|
||||
<option value="closed" {{ $workOrder->status == 'closed' ? 'selected' : '' }}>关闭</option>
|
||||
<option value="user_read" {{ $workOrder->status == 'user_read' ? 'selected' : '' }}>用户已读</option>
|
||||
<option value="user_replied" {{ $workOrder->status == 'user_replied' ? 'selected' : '' }}>用户已回复</option>
|
||||
<option value="replied" {{ $workOrder->status == 'replied' ? 'selected' : '' }}>已回复</option>
|
||||
<option value="read" {{ $workOrder->status == 'read' ? 'selected' : '' }}>已读</option>
|
||||
|
||||
<option value="replied" {{ $workOrder->status == 'replied' ? 'selected' : '' }}>已回复</option>
|
||||
<option value="read" {{ $workOrder->status == 'read' ? 'selected' : '' }}>已读</option>
|
||||
<option value="in_progress" {{ $workOrder->status == 'in_progress' ? 'selected' : '' }}>处理中</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<option value="in_progress" {{ $workOrder->status == 'in_progress' ? 'selected' : '' }}>处理中</option>
|
||||
</select>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary mt-3">修改</button>
|
||||
|
||||
<button type="submit" class="btn btn-primary mt-3">修改</button>
|
||||
</form>
|
||||
|
||||
</form>
|
||||
<hr/>
|
||||
<form method="post" action="{{ route('admin.work-orders.destroy', $workOrder) }}">
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
<button type="submit" class="btn btn-danger mt-3">删除</button>
|
||||
</form>
|
||||
@else
|
||||
<p>工单状态为 推送中,无法修改</p>
|
||||
@endif
|
||||
|
||||
{{-- <hr />--}}
|
||||
{{-- <form method="post" action="{{ route('admin.work-orders.destroy', $workOrder) }}">--}}
|
||||
{{-- @csrf--}}
|
||||
{{-- @method('DELETE')--}}
|
||||
{{-- <button type="submit" class="btn btn-danger mt-3">删除</button>--}}
|
||||
{{-- </form>--}}
|
||||
@endsection
|
||||
|
Loading…
Reference in New Issue
Block a user