- miniprogram/config.js: BASE_URL 指向 http://192.227.237.8:3001 - 动作标题中文化(nameZh),搜索匹配 name/nameZh/nameEn - 新增计划/收藏/我的 等页面与组件 - 后端 Docker 化(Dockerfile/.dockerignore)与翻译脚本 - .gitignore 补充 .DS_Store
74 lines
2.1 KiB
JavaScript
74 lines
2.1 KiB
JavaScript
// 收藏服务:动作收藏 + 官方计划收藏(均受保护)。
|
||
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
|
||
};
|