100 lines
2.6 KiB
JavaScript
100 lines
2.6 KiB
JavaScript
// pages/cfss/cfss.js
|
||
import request from '../../../utils/request.js'; // 向上4级就是根目录
|
||
// 如果有 COS:
|
||
|
||
const app = getApp();
|
||
|
||
Page({
|
||
data: {
|
||
// 统计数字(由接口 /yonghu/cffktjhq 返回)
|
||
stats: {
|
||
fakuan: { total: 0, daijiaona: 0, shensuzhong: 0, yijiaona: 0, yibohui: 0 },
|
||
jifen: { total: 0, daichuli: 0, yichuli: 0, daichuli_0: 0, shensuzhong_3: 0, yichufa_1: 0, yibohui_2: 0 }
|
||
},
|
||
|
||
// 当前选中的主标签:'fakuan' 或 'jifen'
|
||
activeTab: 'fakuan',
|
||
|
||
// 子标签状态值
|
||
activeFakuanStatus: 1, // 罚款默认展示“待缴纳”
|
||
activeJifenStatus: 0, // 积分默认展示“待处理”
|
||
|
||
// 搜索关键词(订单号)
|
||
searchDingdan: '',
|
||
|
||
// 刷新触发器,传给子组件
|
||
trigger: {
|
||
fakuan: 0,
|
||
jifen: 0
|
||
}
|
||
},
|
||
|
||
onLoad() {
|
||
this.fetchTongji();
|
||
},
|
||
|
||
onShow() {
|
||
// 每次显示页面都重新拉取统计,确保数字最新
|
||
this.fetchTongji();
|
||
},
|
||
|
||
// 获取综合统计
|
||
async fetchTongji() {
|
||
try {
|
||
const res = await request({
|
||
url: '/yonghu/cffktjhq',
|
||
method: 'POST'
|
||
});
|
||
if (res.statusCode === 200 && res.data.code === 0) {
|
||
this.setData({ stats: res.data.data });
|
||
}
|
||
} catch (error) {
|
||
console.error('获取处罚统计失败', error);
|
||
}
|
||
},
|
||
|
||
// 切换主Tab(罚款 / 积分)
|
||
switchMainTab(e) {
|
||
const tab = e.currentTarget.dataset.tab;
|
||
if (tab === this.data.activeTab) return;
|
||
this.setData({ activeTab: tab });
|
||
},
|
||
|
||
// 切换罚款状态子标签
|
||
switchFakuanStatus(e) {
|
||
const status = Number(e.currentTarget.dataset.status);
|
||
if (status === this.data.activeFakuanStatus) return;
|
||
this.setData({ activeFakuanStatus: status });
|
||
this.bumpTrigger('fakuan'); // 通知罚款列表组件刷新
|
||
},
|
||
|
||
// 切换积分状态子标签
|
||
switchJifenStatus(e) {
|
||
const status = Number(e.currentTarget.dataset.status);
|
||
if (status === this.data.activeJifenStatus) return;
|
||
this.setData({ activeJifenStatus: status });
|
||
this.bumpTrigger('jifen'); // 通知积分列表组件刷新
|
||
},
|
||
|
||
// 搜索输入
|
||
onSearchInput(e) {
|
||
this.setData({ searchDingdan: e.detail.value });
|
||
},
|
||
|
||
// 执行搜索(按键盘搜索按钮或点击搜索图标)
|
||
onSearchConfirm() {
|
||
this.bumpTrigger(this.data.activeTab);
|
||
},
|
||
|
||
// 清空搜索关键字
|
||
clearSearch() {
|
||
this.setData({ searchDingdan: '' });
|
||
this.bumpTrigger(this.data.activeTab);
|
||
},
|
||
|
||
// 递增触发器,子组件通过 observer 响应
|
||
bumpTrigger(tab) {
|
||
const key = `trigger.${tab}`;
|
||
this.setData({ [key]: this.data.trigger[tab] + 1 });
|
||
}
|
||
}); |