const { request, buildResultView } = require('../../utils/request'); Page({ data: { type: 'week', start_date: '', end_date: '', include: 'diary,pay,remind', mask_money: 'false', mask_names: 'false', page: 1, pageSize: 5, result: '', resultCards: [] }, onInput(e) { const key = e.currentTarget.dataset.key; this.setData({ [key]: e.detail.value }); }, async generate() { const body = { type: this.data.type, start_date: this.data.start_date, end_date: this.data.end_date, include: this.data.include ? this.data.include.split(',').map(s => s.trim()).filter(Boolean) : [], mask: { money: String(this.data.mask_money).toLowerCase() === 'true', names: String(this.data.mask_names).toLowerCase() === 'true' } }; const result = await request({ url: '/api/console/report/generate', method: 'POST', data: body }); const view = buildResultView(result); this.setData({ result: view.text, resultCards: view.cards }); }, async history() { const qs = []; if (this.data.type) qs.push(`type=${encodeURIComponent(this.data.type)}`); qs.push(`page=${encodeURIComponent(this.data.page)}`); qs.push(`pageSize=${encodeURIComponent(this.data.pageSize)}`); const result = await request({ url: `/api/console/report/history?${qs.join('&')}` }); const view = buildResultView(result); this.setData({ result: view.text, resultCards: view.cards }); } });