feat: 完成全部接口替换为新后端接口

This commit is contained in:
R524809
2026-10-19 13:19:07 +08:00
parent 8de06ce66b
commit 997042789d
40 changed files with 1946 additions and 785 deletions
@@ -1,3 +1,6 @@
import { compareCountDescending } from '../../pages/category/category.model';
import { managementRequest } from '../../services/admin-api';
import { resolvePreviewUrl } from '../../config/assets';
import { CATEGORY_LIST } from '../../core/data/categories';
type WorksheetItem = {
@@ -13,8 +16,8 @@ type WorksheetItem = {
tagsText: string;
status: 'draft' | 'active' | 'hidden';
sortOrder: number;
downloads: number;
likes: number;
downloads: string;
likes: string;
updatedAt: string;
// display helpers
ageBand: string;
@@ -32,13 +35,6 @@ type Stats = {
hidden: number;
};
type CloudFunctionResult<T> = {
success?: boolean;
message?: string;
data?: T;
stats?: Stats;
};
const DIFFICULTY_LABELS: Record<number, string> = {
1: '入门',
2: '基础',
@@ -82,7 +78,7 @@ function formatWorksheet(raw: Record<string, unknown>): WorksheetItem {
title: String(raw.title || ''),
subtitle: String(raw.subtitle || ''),
category: String(raw.category || ''),
previewImg: String(raw.previewImg || ''),
previewImg: resolvePreviewUrl(raw.previewImg),
ageMin,
ageMax,
difficulty,
@@ -92,8 +88,8 @@ function formatWorksheet(raw: Record<string, unknown>): WorksheetItem {
: '',
status: status as WorksheetItem['status'],
sortOrder: Number(raw.sortOrder) || 0,
downloads: Number(raw.downloads) || 0,
likes: Number(raw.likes) || 0,
downloads: String(raw.downloads || '0'),
likes: String(raw.likes || '0'),
updatedAt: raw.updatedAt ? String(raw.updatedAt) : '',
ageBand: `${ageMin}-${ageMax}岁`,
difficultyLabel: DIFFICULTY_LABELS[difficulty] || '基础',
@@ -104,17 +100,6 @@ function formatWorksheet(raw: Record<string, unknown>): WorksheetItem {
};
}
async function callCloudFunction<T>(
name: string,
data?: Record<string, unknown>,
): Promise<CloudFunctionResult<T>> {
const response = (await wx.cloud.callFunction({
name,
data: data || {},
})) as { result?: CloudFunctionResult<T> };
return response.result || {};
}
Page({
data: {
categories: CATEGORY_LIST,
@@ -139,8 +124,8 @@ Page({
this.setData({ loading: true });
try {
const result = await callCloudFunction<WorksheetItem[]>(
'worksheetsQuery',
const result = await managementRequest<WorksheetItem[]>(
'worksheets.list',
{
category: this.data.activeCategoryId,
rawStats: true,
@@ -155,7 +140,9 @@ Page({
.map((raw) =>
formatWorksheet(raw as unknown as Record<string, unknown>),
)
.sort((a, b) => b.downloads - a.downloads);
.sort((a, b) =>
compareCountDescending(a.downloads, b.downloads),
);
this.setData({
loading: false,
@@ -204,7 +191,7 @@ Page({
this.setData({ updatingId: id });
try {
const result = await callCloudFunction('worksheetsUpdateStatus', {
const result = await managementRequest('worksheets.status', {
id,
status: target,
});