- miniprogram/config.js: BASE_URL 指向 http://192.227.237.8:3001 - 动作标题中文化(nameZh),搜索匹配 name/nameZh/nameEn - 新增计划/收藏/我的 等页面与组件 - 后端 Docker 化(Dockerfile/.dockerignore)与翻译脚本 - .gitignore 补充 .DS_Store
71 lines
1.7 KiB
JavaScript
71 lines
1.7 KiB
JavaScript
const app = getApp();
|
|
const svc = require('../../services/exercise');
|
|
const planSvc = require('../../services/plan');
|
|
|
|
Page({
|
|
data: {
|
|
statusBarHeight: 20,
|
|
q: '',
|
|
results: [],
|
|
loading: false,
|
|
searched: false,
|
|
selectMode: false,
|
|
planId: '',
|
|
navTitle: '搜索'
|
|
},
|
|
|
|
onLoad(query) {
|
|
this.setData({ statusBarHeight: app.globalData.statusBarHeight || 20 });
|
|
const selectMode = query.mode === 'select';
|
|
const planId = query.planId || '';
|
|
this.setData({
|
|
selectMode,
|
|
planId,
|
|
navTitle: selectMode ? '选择动作' : '搜索'
|
|
});
|
|
if (selectMode) {
|
|
wx.setNavigationBarTitle({ title: '选择动作' });
|
|
}
|
|
},
|
|
|
|
onInput(e) {
|
|
const q = e.detail.value;
|
|
this.setData({ q });
|
|
this.debouncedSearch(q);
|
|
},
|
|
|
|
debouncedSearch(q) {
|
|
if (this._timer) clearTimeout(this._timer);
|
|
this._timer = setTimeout(() => this.doSearch(q), 350);
|
|
},
|
|
|
|
doSearch(q) {
|
|
if (!q || !q.trim()) {
|
|
this.setData({ results: [], searched: false, loading: false });
|
|
return;
|
|
}
|
|
this.setData({ loading: true });
|
|
svc.search(q.trim()).then((res) => {
|
|
this.setData({
|
|
results: (res && res.items) || [],
|
|
searched: true,
|
|
loading: false
|
|
});
|
|
}).catch(() => {
|
|
this.setData({ searched: true, loading: false });
|
|
});
|
|
},
|
|
|
|
onExercise(e) {
|
|
const id = e.detail.id;
|
|
if (this.data.selectMode && this.data.planId) {
|
|
planSvc.addExercise(this.data.planId, id).then(() => {
|
|
wx.showToast({ title: '已添加', icon: 'success' });
|
|
setTimeout(() => wx.navigateBack(), 500);
|
|
}).catch(() => {});
|
|
return;
|
|
}
|
|
wx.navigateTo({ url: '/pages/detail/detail?id=' + encodeURIComponent(id) });
|
|
}
|
|
});
|