|
@@ -24,7 +24,10 @@
|
|
|
|
|
|
<!-- tab -->
|
|
<!-- tab -->
|
|
<view>
|
|
<view>
|
|
- <up-tabs :list="list2" @change="handleTabChange"></up-tabs>
|
|
|
|
|
|
+ <up-tabs
|
|
|
|
+ :list="list2"
|
|
|
|
+ @change="handleTabChange">
|
|
|
|
+ </up-tabs>
|
|
</view>
|
|
</view>
|
|
<!-- 瀑布流展示区域 -->
|
|
<!-- 瀑布流展示区域 -->
|
|
<view class="home-ranking">
|
|
<view class="home-ranking">
|
|
@@ -173,32 +176,36 @@ async function handleLoadmore(e) {
|
|
* @param {Object} e - 事件对象,包含选中tab的索引
|
|
* @param {Object} e - 事件对象,包含选中tab的索引
|
|
*/
|
|
*/
|
|
const handleTabChange = (e) => {
|
|
const handleTabChange = (e) => {
|
|
- console.log('切换到Tab:', e, '索引:', e.index)
|
|
|
|
|
|
+ // 安全地获取索引
|
|
|
|
+ const index = typeof e === 'object' && e !== null ? (e.index !== undefined ? e.index : 0) : (typeof e === 'number' ? e : 0);
|
|
|
|
+
|
|
|
|
+ console.log('切换到Tab:', e, '索引:', index)
|
|
|
|
+
|
|
// 重置页码
|
|
// 重置页码
|
|
pages.value.current = 1
|
|
pages.value.current = 1
|
|
|
|
|
|
// 设置businessManagementId
|
|
// 设置businessManagementId
|
|
- if (e.index === 0) {
|
|
|
|
|
|
+ if (index === 0) {
|
|
// 如果是"全部"选项,设置为0
|
|
// 如果是"全部"选项,设置为0
|
|
pages.value.businessManagementId = 0
|
|
pages.value.businessManagementId = 0
|
|
- } else if (e.index > 0 && e.index < list2.length) {
|
|
|
|
- const selectedTab = list2[e.index]
|
|
|
|
|
|
+ } else if (index > 0 && index < list2.length) {
|
|
|
|
+ const selectedTab = list2[index]
|
|
console.log('选中的Tab数据:', selectedTab)
|
|
console.log('选中的Tab数据:', selectedTab)
|
|
|
|
|
|
// 从businessManagementId字段获取,其次id字段获取
|
|
// 从businessManagementId字段获取,其次id字段获取
|
|
- if (selectedTab.businessManagementId !== undefined) {
|
|
|
|
|
|
+ if (selectedTab && selectedTab.businessManagementId !== undefined) {
|
|
pages.value.businessManagementId = selectedTab.businessManagementId
|
|
pages.value.businessManagementId = selectedTab.businessManagementId
|
|
- } else if (selectedTab.id !== undefined) {
|
|
|
|
|
|
+ } else if (selectedTab && selectedTab.id !== undefined) {
|
|
pages.value.businessManagementId = selectedTab.id
|
|
pages.value.businessManagementId = selectedTab.id
|
|
} else {
|
|
} else {
|
|
pages.value.businessManagementId = 0
|
|
pages.value.businessManagementId = 0
|
|
}
|
|
}
|
|
|
|
|
|
// 如果有children中的id,设置到请求参数中
|
|
// 如果有children中的id,设置到请求参数中
|
|
- if (selectedTab.children && selectedTab.children.length > 0) {
|
|
|
|
|
|
+ if (selectedTab && selectedTab.children && Array.isArray(selectedTab.children) && selectedTab.children.length > 0) {
|
|
// 查找第一个有id的child
|
|
// 查找第一个有id的child
|
|
- const firstChildWithId = selectedTab.children.find(child => child.id !== undefined);
|
|
|
|
- if (firstChildWithId && firstChildWithId.id) {
|
|
|
|
|
|
+ const firstChildWithId = selectedTab.children.find(child => child && child.id !== undefined);
|
|
|
|
+ if (firstChildWithId && firstChildWithId.id !== undefined) {
|
|
console.log('使用children中的ID:', firstChildWithId.id);
|
|
console.log('使用children中的ID:', firstChildWithId.id);
|
|
pages.value.businessManagementId = firstChildWithId.id;
|
|
pages.value.businessManagementId = firstChildWithId.id;
|
|
}
|
|
}
|
|
@@ -260,51 +267,73 @@ const getList = async () => {
|
|
|
|
|
|
// 调用API获取数据
|
|
// 调用API获取数据
|
|
const res = await volTierName(params)
|
|
const res = await volTierName(params)
|
|
- const res1 = await volBusinessTypeList(paramstyle)
|
|
|
|
-
|
|
|
|
- // 搜索成功后更新历史记录
|
|
|
|
- if (value.value) {
|
|
|
|
- getHistoryList() // 刷新历史记录
|
|
|
|
- }
|
|
|
|
|
|
|
|
- if (res1 && res1.data) {
|
|
|
|
- // 打印原始数据以检查id字段
|
|
|
|
- console.log('原始API返回的Tabs数据:', JSON.stringify(res1.data))
|
|
|
|
|
|
+ // 如果用户输入了搜索关键词,始终更新标签列表以显示相关标签
|
|
|
|
+ // 如果没有关键词,且标签列表为空,则获取所有标签
|
|
|
|
+ if (value.value || list2.length === 0) {
|
|
|
|
+ const res1 = await volBusinessTypeList(paramstyle)
|
|
|
|
|
|
- // 清空原有数据
|
|
|
|
- list2.splice(0, list2.length)
|
|
|
|
-
|
|
|
|
- // 添加全部选项
|
|
|
|
- list2.push({
|
|
|
|
- name: '全部',
|
|
|
|
- value: '0',
|
|
|
|
- businessManagementId: 0,
|
|
|
|
- id: 0
|
|
|
|
- })
|
|
|
|
-
|
|
|
|
- // 转换API返回的数据为up-tabs需要的格式
|
|
|
|
- res1.data.forEach(item => {
|
|
|
|
- // 检查是否有children数组
|
|
|
|
- let childrenIds = [];
|
|
|
|
- if (item.children && Array.isArray(item.children)) {
|
|
|
|
- // 收集所有children的ID
|
|
|
|
- childrenIds = item.children.map(child => child.id).filter(id => id !== undefined);
|
|
|
|
- console.log('项目children IDs:', childrenIds);
|
|
|
|
|
|
+ // 搜索成功后更新历史记录
|
|
|
|
+ if (value.value) {
|
|
|
|
+ getHistoryList() // 刷新历史记录
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (res1 && res1.data) {
|
|
|
|
+ // 打印原始数据以检查id字段
|
|
|
|
+ console.log('原始API返回的Tabs数据:', JSON.stringify(res1.data))
|
|
|
|
+
|
|
|
|
+ // 记住当前选中的标签名称,以便在重新生成列表后恢复选择
|
|
|
|
+ let selectedTabName = '';
|
|
|
|
+ if (list2.length > 0 && pages.value && pages.value.businessManagementId !== undefined) {
|
|
|
|
+ const currentIndex = Math.min(Math.max(0, pages.value.businessManagementId === 0 ? 0 : 1), list2.length - 1);
|
|
|
|
+ selectedTabName = list2[currentIndex]?.name || '';
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // 清空原有数据
|
|
|
|
+ list2.splice(0, list2.length)
|
|
|
|
+
|
|
|
|
+ // 添加全部选项
|
|
list2.push({
|
|
list2.push({
|
|
- name: item.businessTierName,
|
|
|
|
- // 尝试获取正确的ID字段 - 优先使用businessManagementId,其次使用id
|
|
|
|
- businessManagementId: item.businessManagementId || item.id || 0,
|
|
|
|
- id: item.id || item.businessManagementId || 0,
|
|
|
|
- // 保存children的id数组
|
|
|
|
- childrenIds: childrenIds,
|
|
|
|
- // 保存完整的children数据
|
|
|
|
- children: item.children || []
|
|
|
|
|
|
+ name: '全部',
|
|
|
|
+ value: '0',
|
|
|
|
+ businessManagementId: 0,
|
|
|
|
+ id: 0
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ // 转换API返回的数据为up-tabs需要的格式
|
|
|
|
+ res1.data.forEach(item => {
|
|
|
|
+ // 检查是否有children数组
|
|
|
|
+ let childrenIds = [];
|
|
|
|
+ if (item.children && Array.isArray(item.children)) {
|
|
|
|
+ // 收集所有children的ID
|
|
|
|
+ childrenIds = item.children.map(child => child.id).filter(id => id !== undefined);
|
|
|
|
+ console.log('项目children IDs:', childrenIds);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ list2.push({
|
|
|
|
+ name: item.businessTierName,
|
|
|
|
+ // 尝试获取正确的ID字段 - 优先使用businessManagementId,其次使用id
|
|
|
|
+ businessManagementId: item.businessManagementId || item.id || 0,
|
|
|
|
+ id: item.id || item.businessManagementId || 0,
|
|
|
|
+ // 保存children的id数组
|
|
|
|
+ childrenIds: childrenIds,
|
|
|
|
+ // 保存完整的children数据
|
|
|
|
+ children: item.children || []
|
|
|
|
+ })
|
|
})
|
|
})
|
|
- })
|
|
|
|
|
|
+
|
|
|
|
+ // 尝试恢复选中的标签
|
|
|
|
+ if (selectedTabName) {
|
|
|
|
+ // 查找具有相同名称的标签
|
|
|
|
+ const matchingIndex = list2.findIndex(item => item.name === selectedTabName);
|
|
|
|
+ if (matchingIndex !== -1 && pages.value) {
|
|
|
|
+ // 设置businessManagementId为找到的匹配项的ID
|
|
|
|
+ pages.value.businessManagementId = list2[matchingIndex].businessManagementId || list2[matchingIndex].id || 0;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- console.log('转换后的Tabs数据:', JSON.stringify(list2))
|
|
|
|
|
|
+ console.log('转换后的Tabs数据:', JSON.stringify(list2))
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
if (!res || !res.rows) {
|
|
if (!res || !res.rows) {
|