Files
wm 70ff806042 feat: 小程序连接服务器IP + 同步未提交开发
- miniprogram/config.js: BASE_URL 指向 http://192.227.237.8:3001
- 动作标题中文化(nameZh),搜索匹配 name/nameZh/nameEn
- 新增计划/收藏/我的 等页面与组件
- 后端 Docker 化(Dockerfile/.dockerignore)与翻译脚本
- .gitignore 补充 .DS_Store
2026-07-22 14:05:30 +08:00

74 lines
2.1 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 收藏服务:动作收藏 + 官方计划收藏(均受保护)。
const { request } = require('../utils/request');
// 复用 displayName 注入(避免循环依赖,内联轻量版)
function injectDisplayName(item) {
if (!item) return item;
item.displayName = item.nameZh || item.name || '';
return item;
}
function injectDisplayNames(list) {
if (!list || !Array.isArray(list)) return list || [];
return list.map(injectDisplayName);
}
// 收藏的动作列表
function listExercises() {
return request({ url: '/api/favorites/exercises', method: 'GET' }).then((res) => {
const items = (res && Array.isArray(res)) ? res : (res && res.items);
if (items) {
const injected = injectDisplayNames(items);
if (Array.isArray(res)) return injected;
res.items = injected;
}
return res;
});
}
// 收藏某个动作
function addExercise(id) {
return request({ url: '/api/favorites/exercises', method: 'POST', data: { target: id } });
}
// 取消收藏某个动作
function removeExercise(id) {
return request({ url: '/api/favorites/exercises/' + encodeURIComponent(id), method: 'DELETE' });
}
// 查询某动作收藏状态 { favorited }
function exerciseStatus(id) {
return request({ url: '/api/favorites/exercises/' + encodeURIComponent(id) + '/status', method: 'GET' });
}
// 收藏的官方计划列表CollectionDef[]
function listPlans() {
return request({ url: '/api/favorites/plans', method: 'GET' });
}
// 收藏某个官方计划
function addPlan(slug) {
return request({ url: '/api/favorites/plans', method: 'POST', data: { target: slug } });
}
// 取消收藏某个官方计划
function removePlan(slug) {
return request({ url: '/api/favorites/plans/' + encodeURIComponent(slug), method: 'DELETE' });
}
// 查询某官方计划收藏状态 { favorited }
function planStatus(slug) {
return request({ url: '/api/favorites/plans/' + encodeURIComponent(slug) + '/status', method: 'GET' });
}
module.exports = {
listExercises,
addExercise,
removeExercise,
exerciseStatus,
listPlans,
addPlan,
removePlan,
planStatus
};