import{_ as i,o as a,c as t,a2 as h}from"./chunks/framework.BbmSSMjL.js";const y=JSON.parse('{"title":"6.8 公告与链接管理","description":"","frontmatter":{},"headers":[],"relativePath":"zh/modules/content.md","filePath":"zh/modules/content.md"}'),n={name:"zh/modules/content.md"};function k(e,s,l,p,d,r){return a(),t("div",null,[...s[0]||(s[0]=[h(`
6.8 公告与链接管理 概述
本节涵盖通知公告(Notice)和友情链接(Link)两个模块,均继承 BaseTenantService 实现租户隔离,use HasFileProcessing 启用封面/Logo 文件字段处理。
说明: 本文件名为 content.md,实际文档内容为通知公告和友情链接两个独立模块,并不存在 "Content" 模块。
通知公告 模块特点 特性 说明 基类 BaseTenantService(租户隔离)Trait 组合 HasCrudOperations, HasFileProcessing, HasQueryScopes, HasSerializeMaps文件字段 cover(封面图),保存到 notice 目录富文本字段 content(正文,存 [IMG_URL] 占位,读取时替换回域名)枚举映射 type → notice_type、status → notice_status排序 按 id 倒序(最新在前)+ 租户内排序
Service 配置(来自项目实际代码) php class NoticeService extends BaseTenantService
{
use HasCrudOperations , HasFileProcessing , HasQueryScopes , HasSerializeMaps ;
protected string $ modelClass = Notice :: class ;
protected array $ fileFields = [ ' cover ' ];
// 富文本字段:保存时迁移媒体并替换为 [IMG_URL] 占位,读取时替换回域名
protected array $ contentFields = [ ' content ' ];
protected string $ fileSaveDir = ' notice ' ;
protected array $ pageLikeFields = [ ' title ' ];
protected array $ pageEqFields = [ ' type ' , ' status ' ];
// 最新公告排在前面
protected array $ pageOrderBy = [ ' field ' => ' id ' , ' type ' => ' desc ' ];
protected array $ serializeMaps = [
' type ' => ' notice_type ' ,
' status ' => ' notice_status ' ,
];
} API 接口 方法 路径 权限码 说明 GET /api/notice/pagesys:notice:page 分页列表 GET /api/notice/list— 全量列表 GET /api/notice/detail/{id}sys:notice:detail 详情 POST /api/notice/addsys:notice:add 新增 PUT /api/notice/updatesys:notice:update 修改 DELETE /api/notice/delete/{id}sys:notice:delete 删除 DELETE /api/notice/batchDeletesys:notice:batchDelete 批量删除
友情链接 模块特点 特性 说明 基类 BaseTenantService(租户隔离)Trait 组合 HasCrudOperations, HasFileProcessing, HasQueryScopes, HasSerializeMaps, HasUniqueCheck文件字段 image(友链 Logo),保存到 link 目录唯一校验 name 按租户分组唯一(['name','tenant_id'])枚举映射 status → link_status 字典
Service 配置(来自项目实际代码) php class LinkService extends BaseTenantService
{
use HasCrudOperations , HasFileProcessing , HasQueryScopes , HasSerializeMaps , HasUniqueCheck ;
protected string $ modelClass = Link :: class ;
protected array $ fileFields = [ ' image ' ];
protected string $ fileSaveDir = ' link ' ;
protected array $ pageLikeFields = [ ' name ' ];
protected array $ pageEqFields = [ ' status ' ];
protected array $ pageOrderBy = [ ' field ' => ' sort ' , ' type ' => ' asc ' ];
// name 在同一租户内唯一
protected array $ uniqueFields = [[ ' name ' , ' tenant_id ' ]];
protected array $ serializeMaps = [
' status ' => ' link_status ' ,
];
} API 接口 方法 路径 权限码 说明 GET /api/link/pagesys🔗page 分页列表 GET /api/link/list— 全量列表 GET /api/link/detail/{id}sys🔗detail 详情 POST /api/link/addsys🔗add 新增 PUT /api/link/updatesys🔗update 修改 DELETE /api/link/delete/{id}sys🔗delete 删除 DELETE /api/link/batchDeletesys🔗batchDelete 批量删除
两模块对比 维度 通知公告 Notice 友情链接 Link 核心字段 title、content(正文)、cover name、url、image(Logo) 默认排序 id 倒序(最新在前) sort 升序 唯一校验 无 name 分租户唯一 字典 notice_type、notice_status link_status 典型场景 站内公告、系统通知 合作伙伴链接页
`,19)])])}const g=i(n,[["render",k]]);export{y as __pageData,g as default};