diff --git a/cloudfunctions/worksheetsQuery/index.js b/cloudfunctions/worksheetsQuery/index.js index fdbfd14..6ede9e3 100644 --- a/cloudfunctions/worksheetsQuery/index.js +++ b/cloudfunctions/worksheetsQuery/index.js @@ -19,6 +19,7 @@ exports.main = async (event) => { const category = String(event.category || '').trim(); const status = String(event.status || '').trim(); + const rawStats = event.rawStats === true; // Build query condition const where = {}; @@ -61,7 +62,9 @@ exports.main = async (event) => { else if (item.status === 'hidden') stats.hidden++; } - mergeSeedStats(data); + if (!rawStats) { + mergeSeedStats(data); + } return { success: true, diff --git a/miniprogram/pages/category/category.ts b/miniprogram/pages/category/category.ts index 6691f7d..cd37f5a 100644 --- a/miniprogram/pages/category/category.ts +++ b/miniprogram/pages/category/category.ts @@ -241,6 +241,7 @@ Page({ if (!result.success) throw new Error(result.message || '查询失败'); const rows = result.data || []; + console.log('rows', rows); _categoryData = buildCategoryDataFromCloud(rows); debugLogWorksheetStatsAfterCategoryLoad({ kind: 'cloud', rows }); } catch { diff --git a/miniprogram/supportPages/categoryContentManage/categoryContentManage.less b/miniprogram/supportPages/categoryContentManage/categoryContentManage.less index b41ff2f..9cbe3a5 100644 --- a/miniprogram/supportPages/categoryContentManage/categoryContentManage.less +++ b/miniprogram/supportPages/categoryContentManage/categoryContentManage.less @@ -235,9 +235,13 @@ page { .ws-card__sort { flex: 1; + min-width: 0; margin-left: 16rpx; font-size: 22rpx; color: @text-gray; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } // ── Build Button ── diff --git a/miniprogram/supportPages/categoryContentManage/categoryContentManage.ts b/miniprogram/supportPages/categoryContentManage/categoryContentManage.ts index f541425..c9f2158 100644 --- a/miniprogram/supportPages/categoryContentManage/categoryContentManage.ts +++ b/miniprogram/supportPages/categoryContentManage/categoryContentManage.ts @@ -13,6 +13,8 @@ type WorksheetItem = { tagsText: string; status: 'draft' | 'active' | 'hidden'; sortOrder: number; + downloads: number; + likes: number; updatedAt: string; // display helpers ageBand: string; @@ -48,9 +50,24 @@ const STATUS_CONFIG: Record< string, { text: string; action: string; target: string; actionType: string } > = { - draft: { text: '草稿', action: '激活', target: 'active', actionType: 'green' }, - active: { text: '线上', action: '下架', target: 'hidden', actionType: 'default' }, - hidden: { text: '已隐藏', action: '恢复', target: 'draft', actionType: 'primary' }, + draft: { + text: '草稿', + action: '激活', + target: 'active', + actionType: 'green', + }, + active: { + text: '线上', + action: '下架', + target: 'hidden', + actionType: 'default', + }, + hidden: { + text: '已隐藏', + action: '恢复', + target: 'draft', + actionType: 'primary', + }, }; function formatWorksheet(raw: Record): WorksheetItem { @@ -70,9 +87,13 @@ function formatWorksheet(raw: Record): WorksheetItem { ageMax, difficulty, tags: Array.isArray(raw.tags) ? raw.tags.map(String) : [], - tagsText: Array.isArray(raw.tags) ? raw.tags.map(String).join('、') : '', + tagsText: Array.isArray(raw.tags) + ? raw.tags.map(String).join('、') + : '', status: status as WorksheetItem['status'], sortOrder: Number(raw.sortOrder) || 0, + downloads: Number(raw.downloads) || 0, + likes: Number(raw.likes) || 0, updatedAt: raw.updatedAt ? String(raw.updatedAt) : '', ageBand: `${ageMin}-${ageMax}岁`, difficultyLabel: DIFFICULTY_LABELS[difficulty] || '基础', @@ -120,16 +141,21 @@ Page({ try { const result = await callCloudFunction( 'worksheetsQuery', - { category: this.data.activeCategoryId }, + { + category: this.data.activeCategoryId, + rawStats: true, + }, ); if (!result.success) { throw new Error(result.message || '查询失败'); } - const worksheets = (result.data || []).map((raw) => - formatWorksheet(raw as unknown as Record), - ); + const worksheets = (result.data || []) + .map((raw) => + formatWorksheet(raw as unknown as Record), + ) + .sort((a, b) => b.downloads - a.downloads); this.setData({ loading: false, @@ -191,8 +217,7 @@ Page({ await this.loadWorksheets(); } catch (error) { wx.showToast({ - title: - error instanceof Error ? error.message : '操作失败', + title: error instanceof Error ? error.message : '操作失败', icon: 'none', }); } finally { diff --git a/miniprogram/supportPages/categoryContentManage/categoryContentManage.wxml b/miniprogram/supportPages/categoryContentManage/categoryContentManage.wxml index 5d77afd..fad5b0c 100644 --- a/miniprogram/supportPages/categoryContentManage/categoryContentManage.wxml +++ b/miniprogram/supportPages/categoryContentManage/categoryContentManage.wxml @@ -77,6 +77,9 @@ {{item.statusText}} 排序 {{item.sortOrder}} + 下载 {{item.downloads}} · 喜欢 {{item.likes}}