2025-08-04 16:29:14 +08:00
|
|
|
import { baseUrl } from "../../../request";
|
2025-08-15 00:36:04 +08:00
|
|
|
const { notLogin } = require('../../../utils/util')
|
2025-08-04 16:29:14 +08:00
|
|
|
|
|
|
|
Page({
|
|
|
|
data: {
|
|
|
|
// 用于存储输入框数据
|
|
|
|
nickName: '',
|
|
|
|
phoneNumber: '',
|
2025-08-16 22:14:42 +08:00
|
|
|
selectedSortField: '员工数量', // 默认选择"员工数量"
|
|
|
|
selectedSortOrder: '降序', // 默认选择升序
|
2025-08-04 16:29:14 +08:00
|
|
|
sortFieldsByManager: ['员工数量', '推广人数', '下单数量', '总订单金额', '净成交金额'],
|
|
|
|
sortFieldsBySupervisor: ['推广人数', '下单数量', '总订单金额', '净成交金额'],
|
2025-08-16 22:14:42 +08:00
|
|
|
sortField: 'empCount',
|
|
|
|
sortOrder: 'descend',
|
2025-08-04 16:29:14 +08:00
|
|
|
sortOrders: ['升序', '降序'],
|
|
|
|
items: [], // 用于存储查询结果
|
2025-08-18 09:46:18 +08:00
|
|
|
allItems: [], // 用于存储所有查询数据(用于模糊查询)
|
2025-08-04 16:29:14 +08:00
|
|
|
role: '', // 假设初始为主管角色,可以根据实际情况动态设置
|
2025-08-16 22:14:42 +08:00
|
|
|
k: 1,
|
|
|
|
showRole: ''
|
2025-08-04 16:29:14 +08:00
|
|
|
},
|
|
|
|
|
2025-08-18 09:46:18 +08:00
|
|
|
// 页面加载时查询
|
|
|
|
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 });
|
2025-08-04 16:29:14 +08:00
|
|
|
|
2025-08-18 09:46:18 +08:00
|
|
|
// 执行搜索获取所有数据
|
2025-08-15 15:19:05 +08:00
|
|
|
this.onSearch()
|
2025-08-04 16:29:14 +08:00
|
|
|
},
|
|
|
|
|
|
|
|
// 搜索按钮点击
|
|
|
|
onSearch() {
|
2025-08-18 09:46:18 +08:00
|
|
|
const { showRole, role } = this.data;
|
2025-08-04 16:29:14 +08:00
|
|
|
|
|
|
|
// 显示加载中
|
|
|
|
wx.showLoading({
|
|
|
|
title: '加载中...',
|
|
|
|
mask: true // 显示遮罩层
|
|
|
|
});
|
|
|
|
|
2025-08-16 22:14:42 +08:00
|
|
|
if (showRole === '员工') {
|
|
|
|
this.setData({ sortField: 'promoCount' })
|
|
|
|
}
|
|
|
|
|
2025-08-04 16:29:14 +08:00
|
|
|
const requestData = {
|
|
|
|
nickName: this.data.nickName,
|
|
|
|
phoneNumber: this.data.phoneNumber,
|
|
|
|
sortField: this.data.sortField || '',
|
|
|
|
sortOrder: this.data.sortOrder || 'ascend'
|
|
|
|
};
|
|
|
|
|
2025-08-18 09:46:18 +08:00
|
|
|
if (role === 'manager') {
|
2025-08-04 16:29:14 +08:00
|
|
|
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({
|
2025-08-18 09:46:18 +08:00
|
|
|
items: res.data.data,
|
|
|
|
allItems: res.data.data // 将所有数据存储以便后续模糊查询
|
2025-08-04 16:29:14 +08:00
|
|
|
});
|
|
|
|
} else {
|
2025-08-15 00:36:04 +08:00
|
|
|
notLogin(res.data.message)
|
2025-08-04 16:29:14 +08:00
|
|
|
}
|
|
|
|
},
|
|
|
|
fail: () => {
|
|
|
|
wx.hideLoading();
|
|
|
|
wx.showToast({
|
|
|
|
title: '请求失败',
|
|
|
|
icon: 'none'
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
2025-08-18 09:46:18 +08:00
|
|
|
} else if (role === 'supervisor' || role === 'staff') {
|
2025-08-04 16:29:14 +08:00
|
|
|
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({
|
2025-08-18 09:46:18 +08:00
|
|
|
items: res.data.data,
|
|
|
|
allItems: res.data.data // 将所有数据存储以便后续模糊查询
|
2025-08-04 16:29:14 +08:00
|
|
|
});
|
|
|
|
} else {
|
|
|
|
wx.showToast({
|
|
|
|
title: '没有数据',
|
|
|
|
icon: 'none'
|
|
|
|
});
|
|
|
|
}
|
|
|
|
},
|
|
|
|
fail: () => {
|
|
|
|
wx.hideLoading();
|
|
|
|
wx.showToast({
|
|
|
|
title: '请求失败',
|
|
|
|
icon: 'none'
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2025-08-18 09:46:18 +08:00
|
|
|
// 输入主管名称时保存值
|
|
|
|
onNameInput(e) {
|
|
|
|
const inputValue = e.detail.value;
|
|
|
|
this.setData({
|
|
|
|
nickName: inputValue
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
// 模糊查询
|
|
|
|
onSearchWithFilter() {
|
|
|
|
const { nickName, allItems } = this.data;
|
|
|
|
|
|
|
|
// 如果没有输入主管名称,则直接显示所有数据
|
|
|
|
if (!nickName) {
|
|
|
|
this.setData({
|
|
|
|
items: allItems
|
|
|
|
});
|
|
|
|
return;
|
2025-08-04 16:29:14 +08:00
|
|
|
}
|
2025-08-18 09:46:18 +08:00
|
|
|
|
|
|
|
// 模糊查询
|
|
|
|
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,
|
|
|
|
});
|
2025-08-07 11:45:28 +08:00
|
|
|
this.onSearch()
|
2025-08-16 22:14:42 +08:00
|
|
|
},
|
|
|
|
|
2025-08-18 09:46:18 +08:00
|
|
|
// 下拉刷新
|
2025-08-16 22:14:42 +08:00
|
|
|
onPullDownRefresh() {
|
|
|
|
this.onSearch()
|
|
|
|
wx.stopPullDownRefresh();
|
|
|
|
},
|
2025-08-18 09:46:18 +08:00
|
|
|
});
|
2025-08-16 22:14:42 +08:00
|
|
|
|