Files
rxthinkcmf-wiki/RXThinkCMF_ThinkPhp8_AntdVue/zh/modules/content.md
T
2026-09-29 10:14:04 +08:00

190 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 6.8 公告与链接管理
:::tip 概述
本节涵盖通知公告和友情链接两个模块,均继承 BaseTenantLogic 实现租户隔离。
> **说明:** 本文件因历史原因命名为 `content.md`,实际文档内容为通知公告(Notice)和友情链接(Link)两个独立模块,并不存在 "Content" 模块。
:::
## 通知公告
### 模块特点
| 特性 | 说明 |
|------|------|
| 基类 | BaseTenantLogic(租户隔离) |
| 文件字段 | cover(封面图),保存到 notice 目录 |
| 富文本字段 | content(公告内容) |
| 枚举映射 | type → notice_type(1=通知 2=公告),status → notice_status |
| 排序 | 按 id 倒序(最新在前) |
### 核心代码
```php
// app/logic/NoticeLogic.php
class NoticeLogic extends BaseTenantLogic
{
/**
* 关联的模型类
*
* @var string
*/
protected string $modelClass = Notice::class;
/**
* 需要自动处理的文件上传字段
*
* @var array
*/
protected array $fileFields = ['cover'];
/**
* 文件保存的子目录
*
* @var string
*/
protected string $fileSaveDir = 'notice';
/**
* LIKE 模糊匹配字段
*
* @var array
*/
protected array $pageLikeFields = ['title'];
/**
* 精确匹配字段
*
* @var array
*/
protected array $pageEqFields = ['type', 'status'];
/**
* 默认排序规则
*
* @var array
*/
protected array $pageOrderBy = [
['field' => 'tenant_id', 'type' => 'asc'],
['field' => 'id', 'type' => 'desc'],
];
/**
* 枚举显示名映射
*
* @var array
*/
protected array $serializeMaps = [
'type' => 'notice_type',
'status' => 'notice_status',
];
/**
* 富文本字段
*
* @var array
*/
protected array $contentFields = ['content'];
}
```
### API 接口
| 方法 | 路径 | 权限码 | 说明 |
|------|------|--------|------|
| GET | `/api/notice/page` | sys:notice:page | 分页列表 |
| GET | `/api/notice/list` | - | 全量列表 |
| GET | `/api/notice/detail/:id` | sys:notice:detail | 详情 |
| POST | `/api/notice/add` | sys:notice:add | 新增 |
| PUT | `/api/notice/update` | sys:notice:update | 修改 |
| DELETE | `/api/notice/delete/:id` | sys:notice:delete | 删除 |
| DELETE | `/api/notice/batchDelete` | sys:notice:batchDelete | 批量删除 |
---
## 友情链接
### 模块特点
| 特性 | 说明 |
|------|------|
| 基类 | BaseTenantLogic(租户隔离) |
| 文件字段 | image(友链Logo),保存到 link 目录 |
| 枚举映射 | type → link_type,form → link_form,status → link_status |
### 核心代码
```php
// app/logic/LinkLogic.php
class LinkLogic extends BaseTenantLogic
{
/**
* 关联的模型类
*
* @var string
*/
protected string $modelClass = Link::class;
/**
* 需要自动处理的文件上传字段
*
* @var array
*/
protected array $fileFields = ['image'];
/**
* 文件保存的子目录
*
* @var string
*/
protected string $fileSaveDir = 'link';
/**
* LIKE 模糊匹配字段
*
* @var array
*/
protected array $pageLikeFields = ['name'];
/**
* 精确匹配字段
*
* @var array
*/
protected array $pageEqFields = ['type', 'status'];
/**
* 默认排序规则
*
* @var array
*/
protected array $pageOrderBy = [
['field' => 'tenant_id', 'type' => 'asc'],
['field' => 'sort', 'type' => 'asc'],
];
/**
* 枚举显示名映射
*
* @var array
*/
protected array $serializeMaps = [
'type' => 'link_type',
'form' => 'link_form',
'status' => 'link_status',
];
}
```
### API 接口
| 方法 | 路径 | 权限码 | 说明 |
|------|------|--------|------|
| GET | `/api/link/page` | sys:link:page | 分页列表 |
| GET | `/api/link/detail/:id` | sys:link:detail | 详情 |
| POST | `/api/link/add` | sys:link:add | 新增 |
| PUT | `/api/link/update` | sys:link:update | 修改 |
| DELETE | `/api/link/delete/:id` | sys:link:delete | 删除 |
| DELETE | `/api/link/batchDelete` | sys:link:batchDelete | 批量删除 |