chore: update pom.xml Lombok config and deploy settings
- Update Maven compiler plugin to support Lombok annotation processing - Add deploy.conf for automated deployment - Update backend models and controllers - Update frontend pages and API
This commit is contained in:
@@ -63,8 +63,8 @@
|
||||
<view class="knowledge-list">
|
||||
<view
|
||||
class="knowledge-item"
|
||||
v-for="(item, index) in guideList"
|
||||
:key="index"
|
||||
v-for="(item, index) in (guideList || [])"
|
||||
:key="item.knowledgeId || item.id || index"
|
||||
@click="goToDetail(item)"
|
||||
>
|
||||
<view class="knowledge-cover" v-if="item.coverImage || item.cover_image">
|
||||
@@ -84,7 +84,7 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="guideList.length === 0" class="empty-placeholder">
|
||||
<view v-if="(guideList || []).length === 0" class="empty-placeholder">
|
||||
<text>暂无饮食指南数据</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -94,8 +94,8 @@
|
||||
<view class="knowledge-list">
|
||||
<view
|
||||
class="knowledge-item"
|
||||
v-for="(item, index) in articleList"
|
||||
:key="index"
|
||||
v-for="(item, index) in (articleList || [])"
|
||||
:key="item.knowledgeId || item.id || index"
|
||||
@click="goToDetail(item)"
|
||||
>
|
||||
<view class="knowledge-cover" v-if="item.coverImage || item.cover_image">
|
||||
@@ -115,7 +115,7 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="articleList.length === 0" class="empty-placeholder">
|
||||
<view v-if="(articleList || []).length === 0" class="empty-placeholder">
|
||||
<text>暂无科普文章数据</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -184,10 +184,10 @@ export default {
|
||||
},
|
||||
onLoad(options) {
|
||||
if (options && options.id) {
|
||||
// 有 id 时切换到科普文章 tab 并加载列表
|
||||
// 有 id 时切换到科普文章 tab,switchTab 内会调用 loadKnowledgeList 加载列表
|
||||
this.switchTab('articles');
|
||||
} else {
|
||||
// 无 id 时保持当前 tab(nutrients);切换到「饮食指南」或「科普文章」时由 switchTab 触发 loadKnowledgeList
|
||||
// 无 id 时默认当前 tab 为「营养素」;用户切换到「饮食指南」或「科普文章」时由 switchTab 触发 loadKnowledgeList
|
||||
this.currentTab = 'nutrients';
|
||||
}
|
||||
},
|
||||
@@ -206,7 +206,7 @@ export default {
|
||||
if (this.currentTab === 'nutrients') {
|
||||
return;
|
||||
}
|
||||
// type 与后端一致:guide / article
|
||||
// type 与后端一致:guide / article(v2_knowledge 表 type 字段)
|
||||
const typeParam = this.currentTab === 'guide' ? 'guide' : 'article';
|
||||
try {
|
||||
const { getKnowledgeList } = await import('@/api/tool.js');
|
||||
@@ -224,7 +224,7 @@ export default {
|
||||
rawList = result.data;
|
||||
}
|
||||
}
|
||||
const list = rawList.map(item => ({
|
||||
const list = (rawList || []).map(item => ({
|
||||
...item,
|
||||
desc: item.desc || item.summary || '',
|
||||
time: item.time || (item.publishedAt || item.createdAt ? this.formatKnowledgeTime(item.publishedAt || item.createdAt) : ''),
|
||||
@@ -239,15 +239,16 @@ export default {
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('加载知识列表失败:', error);
|
||||
const msg = (error && (error.message || error.msg)) || '加载列表失败';
|
||||
uni.showToast({
|
||||
title: (error && (error.message || error.msg)) || '加载列表失败',
|
||||
title: String(msg),
|
||||
icon: 'none'
|
||||
});
|
||||
// 确保列表始终为数组,不设为 undefined
|
||||
if (this.currentTab === 'guide') {
|
||||
this.guideList = this.guideList ?? [];
|
||||
this.guideList = Array.isArray(this.guideList) ? this.guideList : [];
|
||||
} else if (this.currentTab === 'articles') {
|
||||
this.articleList = this.articleList ?? [];
|
||||
this.articleList = Array.isArray(this.articleList) ? this.articleList : [];
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -265,7 +266,8 @@ export default {
|
||||
uni.showToast({ title: '暂无详情', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
const id = item.knowledgeId ?? item.id;
|
||||
// 兼容后端 knowledgeId / id / knowledge_id
|
||||
const id = item.knowledgeId ?? item.id ?? item.knowledge_id;
|
||||
if (id === undefined || id === null || id === '') {
|
||||
uni.showToast({ title: '暂无详情', icon: 'none' });
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user