Compare commits

...

4 Commits

Author SHA1 Message Date
panliang 138f486caf merge 2024-04-14 09:00:10 +08:00
panliang 6e5f79d730 阿皮 keywords 2024-04-14 08:58:10 +08:00
panliang f22cbf53cc Merge branch 'main' of https://gitea.hmily.club/pdkj/store-manage into main 2024-04-13 14:35:10 +08:00
panliang aa2b91ccc8 api 报销管理 2024-04-13 14:35:03 +08:00
4 changed files with 18 additions and 17 deletions

View File

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

View File

@ -3,7 +3,6 @@
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;
@ -24,21 +23,26 @@ 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,6 +15,9 @@ 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 () {
@ -51,6 +54,9 @@ 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::resource('hr/employee', \App\Http\Controllers\Api\Hr\EmployeeController::class); Route::apiResource('hr/employee', \App\Http\Controllers\Api\Hr\EmployeeController::class);
}); });
// 报销管理
Route::apiResource('reimbursements', \App\Http\Controllers\Api\ReimbursementController::class);
}); });