Compare commits

..

No commits in common. "138f486cafe83c7bac69fa71014e7932e264f150" and "9b4e798fee868695dd6839f4263687799c9e1e44" have entirely different histories.

4 changed files with 17 additions and 18 deletions

View File

@ -0,0 +1,9 @@
<?php
namespace App\Filters;
use EloquentFilter\ModelFilter;
class ReimbursementFilter extends ModelFilter
{
}

View File

@ -3,6 +3,7 @@
namespace App\Models; namespace App\Models;
use App\Enums\CheckStatus; use App\Enums\CheckStatus;
use App\Filters\ReimbursementFilter;
use App\Traits\HasCheckable; use App\Traits\HasCheckable;
use App\Traits\HasDateTimeFormatter; use App\Traits\HasDateTimeFormatter;
use EloquentFilter\Filterable; use EloquentFilter\Filterable;
@ -23,26 +24,21 @@ class Reimbursement extends Model
'photos', 'photos',
]; ];
public function modelFilter()
{
return \App\Admin\Filters\ReimbursementFilter::class;
}
public function employee(): BelongsTo public function employee(): BelongsTo
{ {
return $this->belongsTo(Employee::class); return $this->belongsTo(Employee::class);
} }
public function scopeSort($q)
{
return $q->orderBy('created_at', 'desc');
}
public function type(): BelongsTo public function type(): BelongsTo
{ {
return $this->belongsTo(Keyword::class, 'reimbursement_type_id', 'key'); return $this->belongsTo(Keyword::class, 'reimbursement_type_id', 'key');
} }
public function modelFilter(): string
{
return ReimbursementFilter::class;
}
public function canUpdate(): bool public function canUpdate(): bool
{ {
return in_array($this->workflow?->check_status, [CheckStatus::None, CheckStatus::Fail, CheckStatus::Cancel]); return in_array($this->workflow?->check_status, [CheckStatus::None, CheckStatus::Fail, CheckStatus::Cancel]);

View File

@ -41,7 +41,7 @@ class AdminPermissionSeeder extends Seeder
'uri' => '/store', 'uri' => '/store',
'children' => [ 'children' => [
'stores' => [ 'stores' => [
'name' => '门店管理', 'name' => '全部门店',
'icon' => '', 'icon' => '',
'uri' => '/store/stores', 'uri' => '/store/stores',
'resource' => true, 'resource' => true,

View File

@ -15,9 +15,6 @@ use Illuminate\Support\Facades\Route;
Route::post('/auth/login', [AccessTokenController::class, 'store']); Route::post('/auth/login', [AccessTokenController::class, 'store']);
Route::delete('/auth/logout', [AccessTokenController::class, 'destroy']); Route::delete('/auth/logout', [AccessTokenController::class, 'destroy']);
// 数据字典
Route::get('keyword', [\App\Http\Controllers\Api\KeywordController::class, 'index']);
Route::group([ Route::group([
'middleware' => ['auth:api'], 'middleware' => ['auth:api'],
], function () { ], function () {
@ -54,9 +51,6 @@ Route::group([
// 员工管理 // 员工管理
Route::group(['middleware' => ['user_role:admin,store']], function () { Route::group(['middleware' => ['user_role:admin,store']], function () {
Route::post('hr/employee/{id}/leave', [\App\Http\Controllers\Api\Hr\EmployeeController::class, 'leave']); Route::post('hr/employee/{id}/leave', [\App\Http\Controllers\Api\Hr\EmployeeController::class, 'leave']);
Route::apiResource('hr/employee', \App\Http\Controllers\Api\Hr\EmployeeController::class); Route::resource('hr/employee', \App\Http\Controllers\Api\Hr\EmployeeController::class);
}); });
// 报销管理
Route::apiResource('reimbursements', \App\Http\Controllers\Api\ReimbursementController::class);
}); });