430 lines
15 KiB
Markdown
430 lines
15 KiB
Markdown
# 多语言AI资讯系统 (Multilingual AI Information System)
|
||
|
||
基于 uni-app-x (UTS Android) 平台开发的多语言AI资讯系统,严格遵循 UTS Android 开发规范。
|
||
|
||
## 系统特性
|
||
|
||
### 核心功能
|
||
- **多语言支持**: 支持中文、英文、日文、韩文等多种语言
|
||
- **AI助手**: 集成智能聊天助手,提供内容推荐和分析
|
||
- **智能搜索**: 支持关键词搜索、分类筛选、高级过滤
|
||
- **响应式设计**: 兼容大屏和小屏设备,自适应布局
|
||
- ⚡ **高性能**: 基于 UTSJSONObject 优化,确保流畅体验
|
||
- **数据分析**: 内容质量评分、用户行为分析
|
||
|
||
### 技术特点
|
||
- 严格遵循 UTS Android 开发规范
|
||
- 全部使用 UTSJSONObject 作为核心数据结构
|
||
- 与 Supabase 数据库深度集成
|
||
- 支持实时数据同步和离线缓存
|
||
- 模块化设计,易于扩展和维护
|
||
|
||
## 文件结构
|
||
|
||
```
|
||
pages/info/
|
||
├── index.uvue # 主页面 - 资讯列表、分类导航、精选推荐
|
||
├── detail.uvue # 详情页面 - 内容展示、多语言切换、相关推荐、评论互动
|
||
├── search.uvue # 搜索页面 - 智能搜索、筛选、历史记录
|
||
├── chat.uvue # AI助手页面 - 智能对话、内容推荐
|
||
├── settings.uvue # 设置页面 - 个人偏好、语言设置、通知配置
|
||
├── topics.uvue # 专题列表页面 - 专题分类、精选专题、热门专题
|
||
├── topic-detail.uvue # 专题详情页面 - 专题内容、时间轴、相关推荐、评论互动
|
||
├── comments.uvue # 评论组件 - 多层级评论、回复、点赞、举报功能
|
||
├── types.uts # 类型定义 - 所有数据结构和工具函数
|
||
├── test-utils.uts # 测试工具 - 功能验证和性能测试
|
||
├── index-backup.uvue # 原始备份文件
|
||
└── README.md # 项目文档
|
||
```
|
||
|
||
## 页面功能详解
|
||
|
||
### 1. 主页面 (index.uvue)
|
||
- **分类导航**: 水平滚动的分类标签,支持全部/各分类切换
|
||
- **内容列表**: 瀑布流式布局,展示标题、摘要、作者等信息
|
||
- **精选推荐**: 高质量内容推荐区域
|
||
- **语言选择**: 弹窗式语言选择器
|
||
- **实时统计**: 显示总内容数、发布数、趋势等统计信息
|
||
- **响应式布局**: 大屏2列,小屏1列自适应
|
||
|
||
### 2. 详情页面 (detail.uvue)
|
||
- **内容展示**: 支持原文和多语言翻译切换
|
||
- **质量指标**: 显示内容质量评分和可视化指示器
|
||
- **交互功能**: 点赞、分享、收藏等社交功能
|
||
- **相关推荐**: 基于内容相似度的智能推荐
|
||
- **标签导航**: 点击标签跳转到相关搜索
|
||
- **AI助手入口**: 浮动按钮快速访问AI助手
|
||
|
||
### 3. 搜索页面 (search.uvue)
|
||
- **智能搜索**: 支持标题、内容、标签等多维度搜索
|
||
- **高级筛选**: 分类、语言、质量、时间等多条件筛选
|
||
- **搜索建议**: 实时搜索建议和自动补全
|
||
- **历史记录**: 搜索历史管理和快速重用
|
||
- **热门搜索**: 展示热门搜索词和趋势
|
||
- **结果排序**: 支持相关度、时间、质量等多种排序
|
||
|
||
### 4. AI助手页面 (chat.uvue)
|
||
- **智能对话**: 支持自然语言交互
|
||
- **内容推荐**: 基于用户偏好的个性化推荐
|
||
- **快速操作**: 预设常用问题和快捷操作
|
||
- **会话管理**: 支持多会话和历史记录
|
||
- **消息操作**: 复制、点赞、反馈等消息交互
|
||
- **上下文理解**: 结合当前浏览内容提供相关建议
|
||
|
||
### 5. 设置页面 (settings.uvue)
|
||
- **语言偏好**: 界面语言和内容语言偏好设置
|
||
- **内容偏好**: 感兴趣的分类、阅读模式、字体大小
|
||
- **通知设置**: 推送通知、提醒频率等配置
|
||
- **隐私安全**: 数据使用、隐私保护相关设置
|
||
- **账户管理**: 个人信息编辑和账户设置
|
||
- **应用信息**: 版本信息、用户协议、反馈渠道
|
||
|
||
### 6. 专题列表页面 (topics.uvue)
|
||
- **专题分类**: 按类型筛选专题(突发事件、热门话题、系列专题等)
|
||
- **精选专题**: 编辑推荐的高质量专题展示
|
||
- **专题预览**: 专题封面、标题、描述、内容数量等信息
|
||
- **排序筛选**: 支持按更新时间、热门度、内容数量等排序
|
||
- **快速导航**: 一键跳转到专题详情或搜索页面
|
||
|
||
### 7. 专题详情页面 (topic-detail.uvue)
|
||
- **专题概览**: 专题标题、描述、统计信息、封面展示
|
||
- **内容组织**: 提供时间轴、分类、精选三种内容展示模式
|
||
- **时间轴视图**: 按时间顺序展示专题相关内容发展脉络
|
||
- **分类视图**: 按内容类别组织专题文章
|
||
- **精选视图**: 展示专题中高质量内容
|
||
- **相关推荐**: 推荐相关专题和扩展阅读
|
||
- **互动功能**: 分享、订阅、意见反馈等操作
|
||
- **评论系统**: 专题评论、讨论互动
|
||
|
||
### 8. 评论组件 (comments.uvue)
|
||
- **多层级评论**: 支持评论和回复的树形结构显示
|
||
- **评论互动**: 点赞、回复、举报、删除等完整功能
|
||
- **排序筛选**: 支持按时间、热度、回复数等多种排序方式
|
||
- **实时更新**: 评论数据实时同步,支持分页加载
|
||
- **内容审核**: 评论状态管理和内容过滤机制
|
||
- **用户权限**: 根据用户身份显示不同操作权限
|
||
- **响应式设计**: 适配不同屏幕尺寸的评论界面
|
||
|
||
## 数据结构
|
||
|
||
### 核心数据类型 (基于 UTSJSONObject)
|
||
|
||
```typescript
|
||
// 内容数据
|
||
export type InfoContent = UTSJSONObject
|
||
// 字段: id, title, content, summary, author, published_at, quality_score,
|
||
// view_count, like_count, share_count, original_language, source_url, tags
|
||
|
||
// 翻译数据
|
||
export type TranslationData = UTSJSONObject
|
||
// 字段: id, content_id, language_id, title, content, summary,
|
||
// human_verified, quality_score, created_at
|
||
|
||
// 分类数据
|
||
export type CategoryData = UTSJSONObject
|
||
// 字段: id, name_key, display_order, is_active, icon, color
|
||
|
||
// 专题数据
|
||
export type TopicData = UTSJSONObject
|
||
// 字段: id, title, description, topic_type, status, cover_image_url,
|
||
// content_count, view_count, created_at, updated_at
|
||
|
||
// 专题内容关联
|
||
export type TopicContentData = UTSJSONObject
|
||
// 字段: id, topic_id, content_id, display_order, editor_note, created_at
|
||
|
||
// 评论数据
|
||
export type CommentData = UTSJSONObject
|
||
// 字段: id, target_type, target_id, parent_id, author_id, author_name,
|
||
// author_avatar, content, status, like_count, reply_count, level,
|
||
// thread_path, is_liked, is_author, created_at, updated_at
|
||
|
||
// 评论回复数据
|
||
export type CommentReplyData = UTSJSONObject
|
||
// 字段: id, comment_id, author_id, author_name, target_name, content,
|
||
// like_count, is_liked, is_author, created_at
|
||
|
||
// 聊天消息
|
||
export type ChatMessageData = UTSJSONObject
|
||
// 字段: id, session_id, type, content, created_at, metadata
|
||
|
||
// 用户设置
|
||
export type UserSettingsData = UTSJSONObject
|
||
// 字段: user_id, interface_language, preferred_languages, preferred_categories,
|
||
// auto_translate, notification_enabled, reading_mode, font_size, theme
|
||
```
|
||
|
||
### 工具函数
|
||
|
||
```typescript
|
||
// 内容数据获取
|
||
getContentId(), getContentTitle(), getContentSummary(), getContentContent()
|
||
getContentAuthor(), getContentPublishedAt(), getContentQualityScore()
|
||
getContentViewCount(), getContentLikeCount(), getContentShareCount()
|
||
getContentOriginalLanguage(), getContentSourceUrl(), getContentTags()
|
||
|
||
// 时间格式化
|
||
formatDateTime(), formatRelativeTime()
|
||
|
||
// 质量评分
|
||
getQualityScoreText(), getQualityScoreColor()
|
||
|
||
// 分类和语言
|
||
getCategoryDisplayName(), getLanguageName()
|
||
```
|
||
|
||
## 技术规范
|
||
|
||
### UTS Android 开发规范遵循
|
||
|
||
1. **变量声明**: 使用 `let` 和 `const`,避免 `var`
|
||
2. **类型系统**: 使用 `type` 而非 `interface`,避免复杂类型嵌套
|
||
3. **数据结构**: 全部基于 `UTSJSONObject`,避免 `safeGet` 等函数
|
||
4. **循环遍历**: 使用 `for` 循环,避免 `forEach` 和 `map`
|
||
5. **条件判断**: 使用 `!== null` 而非 `!` 操作符
|
||
6. **空值处理**: 使用 `??` 而非 `||` 进行默认值设置
|
||
7. **CSS限制**: 只支持 `display: flex`,不支持 `grid`、`gap`、`calc()` 等
|
||
|
||
### 数据交互规范
|
||
|
||
1. **Supabase集成**: 使用 `supadb` 组件进行数据交互
|
||
2. **响应式状态**: 使用 `ref()` 和 `computed()` 管理状态
|
||
3. **生命周期**: 合理使用 `onMounted()` 和 `onUnmounted()`
|
||
4. **错误处理**: 统一的错误处理和用户反馈机制
|
||
|
||
### UI/UX 设计规范
|
||
|
||
1. **响应式设计**: 大屏(>768px)和小屏(<768px)自适应
|
||
2. **色彩系统**: 统一的色彩规范和主题支持
|
||
3. **交互反馈**: 加载状态、错误提示、成功反馈
|
||
4. **无障碍支持**: 语义化标签和清晰的视觉层次
|
||
|
||
## 性能优化
|
||
|
||
### 数据处理优化
|
||
- 使用 UTSJSONObject 避免类型转换开销
|
||
- 实现数据分页和虚拟滚动
|
||
- 合理的缓存策略和数据预加载
|
||
|
||
### 渲染性能优化
|
||
- 使用 `v-if` 而非 `v-show` 控制渲染
|
||
- 避免深层嵌套和复杂计算属性
|
||
- 合理使用 `key` 优化列表渲染
|
||
|
||
### 内存管理
|
||
- 及时清理事件监听器和定时器
|
||
- 避免内存泄漏和循环引用
|
||
- 合理的组件生命周期管理
|
||
|
||
## 测试验证
|
||
|
||
### 功能测试
|
||
- 使用 `test-utils.uts` 进行单元测试
|
||
- 验证数据结构和工具函数正确性
|
||
- 模拟用户操作和边界条件测试
|
||
|
||
### 性能测试
|
||
- 大数据量处理性能测试
|
||
- 内存使用和渲染性能监控
|
||
- 网络请求和响应时间优化
|
||
|
||
### 兼容性测试
|
||
- 不同屏幕尺寸适配测试
|
||
- Android 版本兼容性验证
|
||
- 多语言显示和交互测试
|
||
|
||
## 部署和维护
|
||
|
||
### 开发环境
|
||
- HBuilderX 3.8+
|
||
- uni-app-x 框架
|
||
- Supabase 数据库
|
||
|
||
### 构建和部署
|
||
- Android APK 打包
|
||
- 性能监控和错误报告
|
||
- 版本更新和热修复机制
|
||
|
||
### 数据库维护
|
||
- Supabase 表结构管理
|
||
- 数据备份和恢复
|
||
- 性能监控和优化
|
||
|
||
## 扩展计划
|
||
|
||
### 功能扩展
|
||
- [ ] 离线阅读支持
|
||
- [ ] 音频朗读功能
|
||
- [ ] 内容评论系统
|
||
- [ ] 社交分享集成
|
||
- [ ] 个性化推荐算法优化
|
||
|
||
### 技术升级
|
||
- [ ] PWA 支持
|
||
- [ ] 深色模式完善
|
||
- [ ] 无障碍功能增强
|
||
- [ ] 性能监控仪表板
|
||
|
||
## 评论系统架构
|
||
|
||
### 评论数据模型
|
||
|
||
评论系统采用**树形结构**设计,支持多层级嵌套回复:
|
||
|
||
```sql
|
||
-- 评论表 (ak_comments)
|
||
CREATE TABLE ak_comments (
|
||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||
target_type VARCHAR(20) NOT NULL, -- 'content' | 'topic'
|
||
target_id UUID NOT NULL, -- 目标内容/专题ID
|
||
parent_id UUID, -- 父评论ID (NULL表示顶级评论)
|
||
author_id UUID NOT NULL, -- 评论作者ID
|
||
author_name VARCHAR(100) NOT NULL, -- 作者显示名称
|
||
author_avatar TEXT, -- 作者头像URL
|
||
content TEXT NOT NULL, -- 评论内容
|
||
status VARCHAR(20) DEFAULT 'active', -- 评论状态
|
||
like_count INTEGER DEFAULT 0, -- 点赞数
|
||
reply_count INTEGER DEFAULT 0, -- 回复数
|
||
level INTEGER DEFAULT 0, -- 评论层级 (0=顶级, 1=一级回复, ...)
|
||
thread_path TEXT, -- 线程路径 (如: "1/5/12")
|
||
created_at TIMESTAMP DEFAULT NOW(),
|
||
updated_at TIMESTAMP DEFAULT NOW()
|
||
);
|
||
```
|
||
|
||
### 评论功能特性
|
||
|
||
#### 1. **多层级结构**
|
||
- **顶级评论**: 直接针对内容/专题的评论
|
||
- **嵌套回复**: 支持对评论的回复,形成对话链
|
||
- **层级限制**: 最多支持3层嵌套,避免过深结构
|
||
- **线程追踪**: 通过thread_path字段追踪评论关系
|
||
|
||
#### 2. **交互功能**
|
||
- **点赞系统**: 支持评论点赞/取消点赞
|
||
- **回复机制**: @用户回复,保持对话连贯性
|
||
- **删除权限**: 作者可删除自己的评论
|
||
- **举报功能**: 支持6种举报类型的内容审核
|
||
|
||
#### 3. **内容管理**
|
||
- **状态控制**: active/hidden/deleted/pending_review/rejected
|
||
- **自动审核**: 关键词过滤和AI内容检测
|
||
- **人工审核**: 举报内容的人工复审机制
|
||
- **批量操作**: 管理员批量处理评论功能
|
||
|
||
#### 4. **排序和展示**
|
||
- **时间排序**: 最新/最早评论优先
|
||
- **热度排序**: 按点赞数排序
|
||
- **回复排序**: 按回复数排序
|
||
- **智能排序**: 综合质量和时间的算法排序
|
||
|
||
### 评论组件设计
|
||
|
||
#### **组件特点**
|
||
- **高度复用**: 同时支持内容评论和专题评论
|
||
- **响应式设计**: 适配不同屏幕尺寸
|
||
- **性能优化**: 虚拟滚动和分页加载
|
||
- **UTS规范**: 严格遵循UTS Android开发规范
|
||
|
||
#### **接口设计**
|
||
```typescript
|
||
interface CommentProps {
|
||
targetType: 'content' | 'topic' // 评论目标类型
|
||
targetId: string // 目标ID
|
||
userId?: string // 当前用户ID
|
||
userName?: string // 当前用户名
|
||
}
|
||
```
|
||
|
||
#### **状态管理**
|
||
```typescript
|
||
// 评论列表状态
|
||
const commentsList = ref<Array<CommentData>>([])
|
||
const loading = ref<boolean>(false)
|
||
const hasMore = ref<boolean>(true)
|
||
|
||
// 交互状态
|
||
const activeReplyId = ref<string>('') // 当前回复的评论ID
|
||
const showCommentInput = ref<boolean>(false) // 显示评论输入框
|
||
const commentContent = ref<string>('') // 评论内容
|
||
|
||
// 排序和筛选
|
||
const currentSort = ref<string>('created_at_desc')
|
||
const showSortModal = ref<boolean>(false)
|
||
```
|
||
|
||
### 评论业务流程
|
||
|
||
#### **发表评论流程**
|
||
1. 用户点击"写评论"按钮
|
||
2. 显示评论输入框,验证登录状态
|
||
3. 输入评论内容,实时字数统计
|
||
4. 提交评论,调用API进行内容检测
|
||
5. 评论状态为pending_review或active
|
||
6. 刷新评论列表,显示新评论
|
||
|
||
#### **回复评论流程**
|
||
1. 点击评论的"回复"按钮
|
||
2. 显示回复输入框,显示@目标用户
|
||
3. 输入回复内容,支持@提及功能
|
||
4. 提交回复,建立parent_id关系
|
||
5. 更新父评论的reply_count
|
||
6. 在评论树中正确显示回复
|
||
|
||
#### **评论审核流程**
|
||
1. **自动审核**: 关键词过滤、长度检查
|
||
2. **AI检测**: 违规内容、垃圾信息识别
|
||
3. **人工审核**: 举报内容的人工复审
|
||
4. **状态更新**: 根据审核结果更新评论状态
|
||
5. **通知机制**: 审核结果通知评论作者
|
||
|
||
### 评论数据库优化
|
||
|
||
#### **索引策略**
|
||
```sql
|
||
-- 复合索引优化查询性能
|
||
CREATE INDEX idx_comments_target ON ak_comments(target_type, target_id, status, created_at);
|
||
CREATE INDEX idx_comments_parent ON ak_comments(parent_id, created_at);
|
||
CREATE INDEX idx_comments_author ON ak_comments(author_id, created_at);
|
||
CREATE INDEX idx_comments_thread ON ak_comments(thread_path);
|
||
```
|
||
|
||
#### **查询优化**
|
||
- **分页查询**: 使用cursor-based pagination
|
||
- **预加载**: 评论作者信息和点赞状态预加载
|
||
- **缓存策略**: 热门评论Redis缓存
|
||
- **读写分离**: 评论读取和写入分离优化
|
||
|
||
### 评论系统集成
|
||
|
||
#### **与内容系统集成**
|
||
- 内容详情页自动加载评论组件
|
||
- 评论数统计实时更新到内容表
|
||
- 评论质量影响内容推荐算法
|
||
- 热门评论作为内容推荐依据
|
||
|
||
#### **与用户系统集成**
|
||
- 用户评论历史和统计
|
||
- 评论行为分析和画像构建
|
||
- 评论权限和等级管理
|
||
- 评论通知和消息推送
|
||
|
||
#### **与AI系统集成**
|
||
- AI自动生成评论摘要
|
||
- 智能评论推荐和排序
|
||
- 评论情感分析和标签
|
||
- AI辅助内容审核和过滤
|
||
|
||
## 联系和支持
|
||
|
||
如有问题或建议,请联系开发团队:
|
||
- 技术支持: [支持邮箱]
|
||
- 问题反馈: [反馈渠道]
|
||
- 文档更新: [文档地址]
|
||
|
||
---
|
||
|
||
*最后更新: 2025年6月*
|
||
*版本: v1.0.0*
|
||
*开发团队: AI资讯系统开发组*
|