chore: establish V1.1 recovery baseline
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
/**
|
||||
* 红娘工作台主页
|
||||
*
|
||||
* 展示待处理服务、工作台数据概览
|
||||
*/
|
||||
const api = require('../../utils/api');
|
||||
|
||||
Page({
|
||||
data: {
|
||||
operatorName: '',
|
||||
pendingCount: 0,
|
||||
inProgressCount: 0,
|
||||
todayCount: 0,
|
||||
completedCount: 0,
|
||||
pendingServices: [],
|
||||
loading: true,
|
||||
currentDate: '',
|
||||
},
|
||||
|
||||
onLoad() {
|
||||
wx.setNavigationBarTitle({ title: '红娘工作台' });
|
||||
// 获取操作员信息
|
||||
const operatorName = wx.getStorageSync('operatorName') || '红娘';
|
||||
this.setData({ operatorName });
|
||||
|
||||
// 设置当前日期
|
||||
const now = new Date();
|
||||
const dateStr = `${now.getFullYear()}年${now.getMonth() + 1}月${now.getDate()}日`;
|
||||
this.setData({ currentDate: dateStr });
|
||||
|
||||
this.loadDashboard();
|
||||
},
|
||||
|
||||
onShow() {
|
||||
// 每次显示刷新数据
|
||||
this.loadDashboard();
|
||||
},
|
||||
|
||||
async loadDashboard() {
|
||||
this.setData({ loading: true });
|
||||
try {
|
||||
const token = wx.getStorageSync('operatorToken');
|
||||
if (!token) {
|
||||
wx.redirectTo({ url: '/pages/matchmaker-login/matchmaker-login' });
|
||||
return;
|
||||
}
|
||||
|
||||
// 加载工作台数据
|
||||
const [dashRes, pendingRes] = await Promise.all([
|
||||
api.get('/operator/matchmaker/dashboard', {}, { Authorization: `Bearer ${token}` }),
|
||||
api.get('/operator/matchmaker/pending', {}, { Authorization: `Bearer ${token}` }),
|
||||
]);
|
||||
|
||||
if (dashRes.success) {
|
||||
this.setData({
|
||||
pendingCount: dashRes.data.pendingCount || 0,
|
||||
inProgressCount: dashRes.data.inProgressCount || 0,
|
||||
todayCount: dashRes.data.todayCount || 0,
|
||||
completedCount: dashRes.data.completedCount || 0,
|
||||
});
|
||||
}
|
||||
|
||||
if (pendingRes.success) {
|
||||
this.setData({
|
||||
pendingServices: pendingRes.data || [],
|
||||
});
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('加载工作台数据失败:', err);
|
||||
} finally {
|
||||
this.setData({ loading: false });
|
||||
}
|
||||
},
|
||||
|
||||
onViewService(e) {
|
||||
const serviceId = e.currentTarget.dataset.id;
|
||||
wx.navigateTo({ url: `/pages/matchmaker-service-detail/matchmaker-service-detail?id=${serviceId}` });
|
||||
},
|
||||
|
||||
onClaimService(e) {
|
||||
const serviceId = e.currentTarget.dataset.id;
|
||||
wx.showLoading({ title: '接单中...' });
|
||||
|
||||
const token = wx.getStorageSync('operatorToken');
|
||||
api.post(`/operator/matchmaker/services/${serviceId}/claim`, {}, {}, { Authorization: `Bearer ${token}` })
|
||||
.then(res => {
|
||||
wx.hideLoading();
|
||||
if (res.success) {
|
||||
wx.showToast({ title: '接单成功', icon: 'success' });
|
||||
this.loadDashboard();
|
||||
} else {
|
||||
wx.showToast({ title: res.message || '接单失败', icon: 'none' });
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
wx.hideLoading();
|
||||
wx.showToast({ title: '网络错误', icon: 'none' });
|
||||
});
|
||||
},
|
||||
|
||||
formatTime(timeStr) {
|
||||
if (!timeStr) return '';
|
||||
const date = new Date(timeStr);
|
||||
const now = new Date();
|
||||
const diff = now - date;
|
||||
const days = Math.floor(diff / 86400000);
|
||||
if (days === 0) return '今天';
|
||||
if (days === 1) return '昨天';
|
||||
if (days < 7) return days + '天前';
|
||||
const m = date.getMonth() + 1;
|
||||
const d = date.getDate();
|
||||
return m + '月' + d + '日';
|
||||
},
|
||||
|
||||
onLogout() {
|
||||
wx.showModal({
|
||||
title: '退出登录',
|
||||
content: '确定要退出登录吗?',
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
wx.removeStorageSync('operatorToken');
|
||||
wx.removeStorageSync('operatorName');
|
||||
wx.reLaunch({ url: '/pages/matchmaker-login/matchmaker-login' });
|
||||
}
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user