15 KiB
15 KiB
多语言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)
// 内容数据
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
工具函数
// 内容数据获取
getContentId(), getContentTitle(), getContentSummary(), getContentContent()
getContentAuthor(), getContentPublishedAt(), getContentQualityScore()
getContentViewCount(), getContentLikeCount(), getContentShareCount()
getContentOriginalLanguage(), getContentSourceUrl(), getContentTags()
// 时间格式化
formatDateTime(), formatRelativeTime()
// 质量评分
getQualityScoreText(), getQualityScoreColor()
// 分类和语言
getCategoryDisplayName(), getLanguageName()
技术规范
UTS Android 开发规范遵循
- 变量声明: 使用
let和const,避免var - 类型系统: 使用
type而非interface,避免复杂类型嵌套 - 数据结构: 全部基于
UTSJSONObject,避免safeGet等函数 - 循环遍历: 使用
for循环,避免forEach和map - 条件判断: 使用
!== null而非!操作符 - 空值处理: 使用
??而非||进行默认值设置 - CSS限制: 只支持
display: flex,不支持grid、gap、calc()等
数据交互规范
- Supabase集成: 使用
supadb组件进行数据交互 - 响应式状态: 使用
ref()和computed()管理状态 - 生命周期: 合理使用
onMounted()和onUnmounted() - 错误处理: 统一的错误处理和用户反馈机制
UI/UX 设计规范
- 响应式设计: 大屏(>768px)和小屏(<768px)自适应
- 色彩系统: 统一的色彩规范和主题支持
- 交互反馈: 加载状态、错误提示、成功反馈
- 无障碍支持: 语义化标签和清晰的视觉层次
性能优化
数据处理优化
- 使用 UTSJSONObject 避免类型转换开销
- 实现数据分页和虚拟滚动
- 合理的缓存策略和数据预加载
渲染性能优化
- 使用
v-if而非v-show控制渲染 - 避免深层嵌套和复杂计算属性
- 合理使用
key优化列表渲染
内存管理
- 及时清理事件监听器和定时器
- 避免内存泄漏和循环引用
- 合理的组件生命周期管理
测试验证
功能测试
- 使用
test-utils.uts进行单元测试 - 验证数据结构和工具函数正确性
- 模拟用户操作和边界条件测试
性能测试
- 大数据量处理性能测试
- 内存使用和渲染性能监控
- 网络请求和响应时间优化
兼容性测试
- 不同屏幕尺寸适配测试
- Android 版本兼容性验证
- 多语言显示和交互测试
部署和维护
开发环境
- HBuilderX 3.8+
- uni-app-x 框架
- Supabase 数据库
构建和部署
- Android APK 打包
- 性能监控和错误报告
- 版本更新和热修复机制
数据库维护
- Supabase 表结构管理
- 数据备份和恢复
- 性能监控和优化
扩展计划
功能扩展
- 离线阅读支持
- 音频朗读功能
- 内容评论系统
- 社交分享集成
- 个性化推荐算法优化
技术升级
- PWA 支持
- 深色模式完善
- 无障碍功能增强
- 性能监控仪表板
评论系统架构
评论数据模型
评论系统采用树形结构设计,支持多层级嵌套回复:
-- 评论表 (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开发规范
接口设计
interface CommentProps {
targetType: 'content' | 'topic' // 评论目标类型
targetId: string // 目标ID
userId?: string // 当前用户ID
userName?: string // 当前用户名
}
状态管理
// 评论列表状态
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)
评论业务流程
发表评论流程
- 用户点击"写评论"按钮
- 显示评论输入框,验证登录状态
- 输入评论内容,实时字数统计
- 提交评论,调用API进行内容检测
- 评论状态为pending_review或active
- 刷新评论列表,显示新评论
回复评论流程
- 点击评论的"回复"按钮
- 显示回复输入框,显示@目标用户
- 输入回复内容,支持@提及功能
- 提交回复,建立parent_id关系
- 更新父评论的reply_count
- 在评论树中正确显示回复
评论审核流程
- 自动审核: 关键词过滤、长度检查
- AI检测: 违规内容、垃圾信息识别
- 人工审核: 举报内容的人工复审
- 状态更新: 根据审核结果更新评论状态
- 通知机制: 审核结果通知评论作者
评论数据库优化
索引策略
-- 复合索引优化查询性能
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资讯系统开发组