feat: T10 回归测试 Bug 修复与功能完善
修复 BUG-001 至 BUG-009 及 T10-1 至 T10-6 相关问题: - 打卡积分显示与累加逻辑优化 - 食谱计算器 Tab 选中样式修复 - 食物百科列表图片与简介展示修复 - 食物详情页数据加载修复 - AI营养师差异化回复优化 - 健康知识/营养知识名称统一 - 饮食指南/科普文章详情页内容展示修复 - 帖子营养统计数据展示修复 - 社区帖子类型中文命名统一 - 帖子详情标签中文显示修复 - 食谱营养AI填充功能完善 - 食谱收藏/点赞功能修复 新增: - ToolNutritionFillService 营养填充服务 - T10 回归测试用例 (Playwright) - 知识文章数据 SQL 脚本 涉及模块: - crmeb-common: VO/Request/Response 优化 - crmeb-service: 业务逻辑完善 - crmeb-front: API 接口扩展 - msh_single_uniapp: 前端页面修复 - tests/e2e: 回归测试用例
This commit is contained in:
@@ -187,7 +187,7 @@ export default {
|
||||
// 有 id 时切换到科普文章 tab,switchTab 内会调用 loadKnowledgeList 加载列表
|
||||
this.switchTab('articles');
|
||||
} else {
|
||||
// 无 id 时默认当前 tab 为「营养素」;用户切换到「饮食指南」或「科普文章」时由 switchTab 触发 loadKnowledgeList
|
||||
// 无 id 时默认当前 tab 为「营养素」,不请求接口;用户点击「饮食指南」或「科普文章」时由 switchTab 触发 loadKnowledgeList
|
||||
this.currentTab = 'nutrients';
|
||||
}
|
||||
},
|
||||
@@ -215,23 +215,30 @@ export default {
|
||||
page: 1,
|
||||
limit: 50
|
||||
});
|
||||
// 兼容 result.data.list 或 result.data 为数组
|
||||
// 兼容 CommonPage:result.data.list,或 result.data/result.data.records 为数组
|
||||
let rawList = [];
|
||||
if (result && result.data) {
|
||||
if (Array.isArray(result.data.list)) {
|
||||
rawList = result.data.list;
|
||||
} else if (Array.isArray(result.data.records)) {
|
||||
rawList = result.data.records;
|
||||
} else if (Array.isArray(result.data)) {
|
||||
rawList = result.data;
|
||||
}
|
||||
}
|
||||
const list = (rawList || []).map(item => ({
|
||||
...item,
|
||||
desc: item.desc || item.summary || '',
|
||||
time: item.time || (item.publishedAt || item.createdAt ? this.formatKnowledgeTime(item.publishedAt || item.createdAt) : ''),
|
||||
views: item.views != null ? item.views : (item.viewCount != null ? item.viewCount : 0),
|
||||
icon: item.icon || '📄',
|
||||
coverImage: item.coverImage || item.cover_image || ''
|
||||
}));
|
||||
// Normalize id: backend may return knowledgeId, id, or knowledge_id (BeanUtil/JSON)
|
||||
const list = (rawList || []).map(item => {
|
||||
const id = item.knowledgeId ?? item.id ?? item.knowledge_id;
|
||||
return {
|
||||
...item,
|
||||
id,
|
||||
desc: item.desc || item.summary || '',
|
||||
time: item.time || (item.publishedAt || item.createdAt ? this.formatKnowledgeTime(item.publishedAt || item.createdAt) : ''),
|
||||
views: item.views != null ? item.views : (item.viewCount != null ? item.viewCount : 0),
|
||||
icon: item.icon || '📄',
|
||||
coverImage: item.coverImage || item.cover_image || ''
|
||||
};
|
||||
});
|
||||
if (this.currentTab === 'guide') {
|
||||
this.guideList = list;
|
||||
} else if (this.currentTab === 'articles') {
|
||||
@@ -239,16 +246,16 @@ export default {
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('加载知识列表失败:', error);
|
||||
const msg = (error && (error.message || error.msg)) || '加载列表失败';
|
||||
const msg = (error && (typeof error === 'string' ? error : (error.message || error.msg))) || '加载列表失败';
|
||||
uni.showToast({
|
||||
title: String(msg),
|
||||
icon: 'none'
|
||||
});
|
||||
// 确保列表始终为数组,不设为 undefined
|
||||
// 失败时清空当前 tab 列表并确保始终为数组,不设为 undefined
|
||||
if (this.currentTab === 'guide') {
|
||||
this.guideList = Array.isArray(this.guideList) ? this.guideList : [];
|
||||
this.guideList = [];
|
||||
} else if (this.currentTab === 'articles') {
|
||||
this.articleList = Array.isArray(this.articleList) ? this.articleList : [];
|
||||
this.articleList = [];
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -266,13 +273,12 @@ export default {
|
||||
uni.showToast({ title: '暂无详情', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
// 兼容后端 knowledgeId / id / knowledge_id
|
||||
// 确保 knowledgeId 或 id 存在才跳转,否则提示暂无详情
|
||||
const id = item.knowledgeId ?? item.id ?? item.knowledge_id;
|
||||
if (id === undefined || id === null || id === '') {
|
||||
if (id === undefined || id === null || id === '' || (typeof id === 'number' && isNaN(id))) {
|
||||
uni.showToast({ title: '暂无详情', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
// 饮食指南、科普文章使用知识详情页(调用 tool/knowledge/detail 接口)
|
||||
uni.navigateTo({
|
||||
url: `/pages/tool/knowledge-detail?id=${id}`
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user