wechat_rob_mini/pages/console/report.js

49 lines
1.5 KiB
JavaScript

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 });
}
});