import { baseUrl } from "../../../request"; const { notLogin } = require('../../../utils/util') Page({ data: { // 用于存储输入框数据 nickName: '', phoneNumber: '', selectedSortField: '员工数量', // 默认选择"员工数量" selectedSortOrder: '降序', // 默认选择升序 sortFieldsByManager: ['员工数量', '推广人数', '下单数量', '总订单金额', '净成交金额'], sortFieldsBySupervisor: ['推广人数', '下单数量', '总订单金额', '净成交金额'], sortField: 'empCount', sortOrder: 'descend', sortOrders: ['升序', '降序'], items: [], // 用于存储查询结果 allItems: [], // 用于存储所有查询数据(用于模糊查询) role: '', // 假设初始为主管角色,可以根据实际情况动态设置 k: 1, showRole: '' }, // 页面加载时查询 onLoad(options) { const role = options.role; this.setData({ k: options.k }) if (role === 'staff') this.setData({ selectedSortField: '推广人数' }) this.setData({ role }); let showRole = ''; switch (options.role) { case 'manager': showRole = '主管'; break; case 'supervisor': showRole = '员工'; break; case 'staff': showRole = '员工' } this.setData({ showRole }); // 执行搜索获取所有数据 this.onSearch() }, // 搜索按钮点击 onSearch() { const { showRole, role } = this.data; // 显示加载中 wx.showLoading({ title: '加载中...', mask: true // 显示遮罩层 }); if (showRole === '员工') { this.setData({ sortField: 'promoCount' }) } const requestData = { nickName: this.data.nickName, phoneNumber: this.data.phoneNumber, sortField: this.data.sortField || '', sortOrder: this.data.sortOrder || 'ascend' }; if (role === 'manager') { wx.request({ url: baseUrl + '/perform/rank/supervisor', // 替换为实际API地址 method: 'POST', header: { Authorization: wx.getStorageSync('token') }, data: requestData, success: (res) => { wx.hideLoading(); if (res.data.code === 1) { this.setData({ items: res.data.data, allItems: res.data.data // 将所有数据存储以便后续模糊查询 }); } else { notLogin(res.data.message) } }, fail: () => { wx.hideLoading(); wx.showToast({ title: '请求失败', icon: 'none' }); } }); } else if (role === 'supervisor' || role === 'staff') { wx.request({ url: baseUrl + '/perform/rank/staff', // 替换为实际API地址 method: 'POST', header: { Authorization: wx.getStorageSync('token') }, data: requestData, success: (res) => { wx.hideLoading(); if (res.data.code === 1) { this.setData({ items: res.data.data, allItems: res.data.data // 将所有数据存储以便后续模糊查询 }); } else { wx.showToast({ title: '没有数据', icon: 'none' }); } }, fail: () => { wx.hideLoading(); wx.showToast({ title: '请求失败', icon: 'none' }); } }); } }, // 输入主管名称时保存值 onNameInput(e) { const inputValue = e.detail.value; this.setData({ nickName: inputValue }); }, // 模糊查询 onSearchWithFilter() { const { nickName, allItems } = this.data; // 如果没有输入主管名称,则直接显示所有数据 if (!nickName) { this.setData({ items: allItems }); return; } // 模糊查询 const filteredItems = allItems.filter(item => item.nickName.includes(nickName) // 根据主管名称进行模糊匹配 ); this.setData({ items: filteredItems }); }, // 手机号输入 onPhoneInput(e) { this.setData({ phoneNumber: e.detail.value }); }, // 选择排序字段 onSortFieldChange(e) { const sortFieldsMap = { '员工数量': 'empCount', '推广人数': 'promoCount', '下单数量': 'orderCount', '总订单金额': 'totalAmount', '净成交金额': 'netAmount' }; const { showRole, sortFieldsByManager, sortFieldsBySupervisor } = this.data let selectedField = showRole === '主管' ? sortFieldsByManager[e.detail.value] : sortFieldsBySupervisor[e.detail.value]; this.setData({ selectedSortField: selectedField, sortField: sortFieldsMap[selectedField], // 默认是 id }); this.onSearch() }, // 选择排序顺序 onSortOrderChange(e) { const selectedOrder = e.detail.value === '0' ? 'ascend' : 'descend'; this.setData({ selectedSortOrder: selectedOrder === 'ascend' ? '升序' : '降序', sortOrder: selectedOrder, }); this.onSearch() }, // 下拉刷新 onPullDownRefresh() { this.onSearch() wx.stopPullDownRefresh(); }, });