declare namespace Api { /** * namespace Feedback * * backend api module: "feedback"(用户意见反馈) */ namespace Feedback { /** 反馈分页查询参数(GET query;type/status 传字符串即可,后端按 Integer 解析) */ interface FeedbackSearchParams { pageNo: number; pageSize: number; /** 反馈分类,字典 feedback_type */ type?: string | number | null; /** 处理状态,字典 feedback_status */ status?: string | number | null; /** 标题关键词,模糊匹配 */ title?: string; /** 提交人用户 id(按提交人过滤;ID 铁律 string) */ creator?: string; } /** * 反馈记录。 * - id/creator 在 API 适配层已统一为 string; * - content 为富文本 HTML 字符串(详细描述支持图文); * - attachments 由后端 attachmentUrls(JSON 字符串) 解析为完整附件对象数组,与任务附件同构。 */ interface FeedbackItem { id: string; /** 反馈分类,字典 feedback_type */ type: number; title: string; /** 详细描述,富文本 HTML */ content: string; /** 内容纯文本预览(API 适配层预算,列表列直接取,免每次渲染重跑去标签正则) */ contentPreview: string; /** 附件对象列表(含 fileId/url/name 等,支持下载与会话级清理) */ attachments: Api.Project.AttachmentItem[]; /** 联系方式(选填) */ contact?: string; /** 处理状态,字典 feedback_status */ status: number; /** 提交人用户 id(字符串) */ creator: string; /** 提交人姓名(后端回填,缺失时前端回退展示 creator) */ creatorName?: string; createTime: string; } /** 提交反馈参数(页面层传 attachments 对象数组,api 层 stringify 成 attachmentUrls) */ interface FeedbackSubmitParams { type: number; title: string; content: string; attachments: Api.Project.AttachmentItem[]; contact?: string; } /** 更新反馈参数(编辑态;后端更新接口待提供,见根目录后端诉求文档) */ interface FeedbackUpdateParams extends FeedbackSubmitParams { id: string; } /** 分页返回(后端 { list, total } 形态) */ interface FeedbackListResult { total: number; list: FeedbackItem[]; } /** * 反馈统计聚合(左侧分面面板用;全量口径,不随筛选变化)。 * typeCounts / statusCounts 已在 API 适配层归一化为 Record<码值字符串, 数量>, * 由后端覆盖各自字典的全部码值(无数据为 0)。 */ interface FeedbackStat { /** 全部反馈总数 */ total: number; /** 各分类计数:key=分类码值字符串(feedback_type) */ typeCounts: Record; /** 各状态计数:key=状态码值字符串(feedback_status) */ statusCounts: Record; } } }