feat: 第五阶段办公协同/统计报表/知识库模块

- 新增3个migration(9张表): office(6表)/report(1表)/kb(2表)
- 新增9个Model + 9个Controller
- 新增43条API路由(总计305条)
- 新增3个前端API模块 + 10个管理页面
- 迁移运行通过, vite build验证通过
This commit is contained in:
li
2026-03-13 21:43:10 +08:00
parent fb5e0daf1a
commit 058ee507fa
34 changed files with 2595 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
<?php
namespace App\Models\Kb;
use App\Models\User;
use App\Traits\BelongsToStore;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class KbArticle extends Model
{
use BelongsToStore;
protected $fillable = [
'store_id', 'category_id', 'title', 'content', 'author_id',
'status', 'visibility', 'cover_image', 'attachments',
'views', 'likes', 'favorites', 'published_at',
];
protected function casts(): array
{
return [
'status' => 'integer',
'visibility' => 'integer',
'views' => 'integer',
'likes' => 'integer',
'favorites' => 'integer',
'attachments' => 'array',
'published_at' => 'datetime',
];
}
public function category(): BelongsTo
{
return $this->belongsTo(KbCategory::class, 'category_id');
}
public function author(): BelongsTo
{
return $this->belongsTo(User::class, 'author_id');
}
}
+40
View File
@@ -0,0 +1,40 @@
<?php
namespace App\Models\Kb;
use App\Traits\BelongsToStore;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class KbCategory extends Model
{
use BelongsToStore;
protected $fillable = [
'store_id', 'parent_id', 'name', 'sort', 'status',
];
protected function casts(): array
{
return [
'sort' => 'integer',
'status' => 'integer',
];
}
public function children(): HasMany
{
return $this->hasMany(self::class, 'parent_id');
}
public function parent(): BelongsTo
{
return $this->belongsTo(self::class, 'parent_id');
}
public function articles(): HasMany
{
return $this->hasMany(KbArticle::class, 'category_id');
}
}