fix: 修改展示bug

This commit is contained in:
zerosaturation 2026-05-08 12:57:04 +08:00
parent 2b1d722a5d
commit 7a3d893797
2 changed files with 90 additions and 48 deletions

View File

@ -78,8 +78,8 @@ const GAP = rpx2px(16)
const BORDER_W = rpx2px(2) const BORDER_W = rpx2px(2)
const SCALE = 0.9 const SCALE = 0.9
const ROWS = 4 const ROWS = 4
const AUTO_SCROLL_SPEED = 0.5 const AUTO_SCROLL_SPEED = 0.1
const AUTO_RESUME_DELAY = 2500 const AUTO_RESUME_DELAY = 1000
const PRELOAD_THRESHOLD = rpx2px(300) const PRELOAD_THRESHOLD = rpx2px(300)
// ========== ========== // ========== ==========
@ -466,21 +466,52 @@ const loadUsers = async () => {
try { try {
let items let items
if (props.useMockData) {
// 使
const mockData = getMockDataByCategory(props.category)
items = mockData.items
//
mockDataOffset = items.length
} else {
// 使API // 使API
const res = await getInspirationFlowApi({ limit: 20, type: props.category }) const res = await getInspirationFlowApi({ limit: 20, type: props.category })
if (!isComponentMounted) return if (!isComponentMounted) return
if (res.code === 200 && res.data?.items) { if (res.code === 200 && res.data?.items && res.data.items.length > 0) {
items = res.data.items items = res.data.items
// has_more has_more false
if (!res.data.has_more) {
appendFailed = true
if (USE_MOCK_DATA) {
const mockData = getMockDataByCategory(props.category)
const allItems = mockData.items
const batchSize = 20
const itemsToAdd = []
for (let i = 0; i < batchSize; i++) {
const sourceIndex = (mockDataOffset + i) % allItems.length
const sourceItem = allItems[sourceIndex]
const newItem = {
...sourceItem,
asset_id: sourceItem.asset_id * 100 + mockDataOffset + i,
likes: sourceItem.like_count,
}
itemsToAdd.push(newItem)
}
mockDataOffset = mockDataOffset + batchSize
items = [...items, ...itemsToAdd]
}
}
} else {
// 使
if (USE_MOCK_DATA) {
const mockData = getMockDataByCategory(props.category)
const allItems = mockData.items
const batchSize = 20
const itemsToAdd = []
for (let i = 0; i < batchSize; i++) {
const sourceIndex = (mockDataOffset + i) % allItems.length
const sourceItem = allItems[sourceIndex]
const newItem = {
...sourceItem,
asset_id: sourceItem.asset_id * 100 + mockDataOffset + i,
likes: sourceItem.like_count,
}
itemsToAdd.push(newItem)
}
mockDataOffset = mockDataOffset + batchSize
items = itemsToAdd
} }
} }
@ -518,42 +549,53 @@ const appendMore = async () => {
try { try {
let items let items
if (props.useMockData) { // 使API
// 使 const res = await getInspirationFlowApi({ limit: 20, type: props.category })
if (!isComponentMounted) return
if (res.code === 200 && res.data?.items && res.data.items.length > 0) {
items = res.data.items
// has_more has_more false
if (!res.data.has_more) {
appendFailed = true
if (USE_MOCK_DATA) {
const mockData = getMockDataByCategory(props.category) const mockData = getMockDataByCategory(props.category)
const allItems = mockData.items const allItems = mockData.items
const batchSize = 20 const batchSize = 20
// mockDataOffset batchSize
const itemsToAdd = [] const itemsToAdd = []
for (let i = 0; i < batchSize; i++) { for (let i = 0; i < batchSize; i++) {
const sourceIndex = (mockDataOffset + i) % allItems.length const sourceIndex = (mockDataOffset + i) % allItems.length
const sourceItem = allItems[sourceIndex] const sourceItem = allItems[sourceIndex]
// asset_id
const newItem = { const newItem = {
...sourceItem, ...sourceItem,
asset_id: sourceItem.asset_id * 100 + mockDataOffset + i, // asset_id: sourceItem.asset_id * 100 + mockDataOffset + i,
likes: sourceItem.like_count, // 使 likes: sourceItem.like_count,
} }
itemsToAdd.push(newItem) itemsToAdd.push(newItem)
} }
//
mockDataOffset = mockDataOffset + batchSize mockDataOffset = mockDataOffset + batchSize
items = [...items, ...itemsToAdd]
items = itemsToAdd
} else {
// 使API
const res = await getInspirationFlowApi({ limit: 20, type: props.category })
if (!isComponentMounted) return
if (res.code === 200 && res.data?.items) {
items = res.data.items
// has_more
if (!res.data.has_more) {
appendFailed = true
} }
} }
} else {
// 使
if (USE_MOCK_DATA) {
const mockData = getMockDataByCategory(props.category)
const allItems = mockData.items
const batchSize = 20
const itemsToAdd = []
for (let i = 0; i < batchSize; i++) {
const sourceIndex = (mockDataOffset + i) % allItems.length
const sourceItem = allItems[sourceIndex]
const newItem = {
...sourceItem,
asset_id: sourceItem.asset_id * 100 + mockDataOffset + i,
likes: sourceItem.like_count,
}
itemsToAdd.push(newItem)
}
mockDataOffset = mockDataOffset + batchSize
items = itemsToAdd
}
} }
if (items && items.length > 0) { if (items && items.length > 0) {

View File

@ -1,7 +1,7 @@
// ========== 模拟数据配置 ========== // ========== 模拟数据配置 ==========
// 是否使用模拟数据(开发调试时设为 true上线后改为 false // 是否使用模拟数据(开发调试时设为 true上线后改为 false
export const USE_MOCK_DATA = false export const USE_MOCK_DATA = true
// 模拟图片列表 // 模拟图片列表
const MOCK_IMAGES = [ const MOCK_IMAGES = [