Files
Wechat/pages/assess-center/assess-center.js

240 lines
7.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// pages/shenhedating/shenhedating.js
const app = getApp();
import request from '../../utils/request.js';
Page({
data: {
// 模块列表 [{bankuai_id, mingcheng, count, is_related}]
moduleList: [],
xuanzhongBankuaiId: 0, // 0代表全部
// 审核记录列表
recordList: [],
page: 1,
pageSize: 5,
hasMore: true,
isLoading: false,
isLoadingMore: false,
scrollViewRefreshing: false,
lastRefreshTime: 0,
refreshCooldown: 2000,
// 弹窗控制
showRuleModal: false,
currentRuleContent: '',
showBeizhuModal: false,
currentBeizhuContent: '',
// 加载状态
loadingModules: false
},
onLoad() {
this.loadModules();
},
onShow() {
this.registerNotificationComponent();
},
registerNotificationComponent() {
const notificationComp = this.selectComponent('#global-notification');
if (notificationComp && notificationComp.showNotification) {
app.globalData.globalNotification = {
show: (data) => notificationComp.showNotification(data),
hide: () => notificationComp.hideNotification()
};
}
},
// 加载板块模块
async loadModules() {
this.setData({ loadingModules: true });
try {
const res = await request({ url: '/dengji/shdthqmk', method: 'POST' });
if (res && res.data.code === 0) {
const modules = res.data.data.modules || [];
this.setData({ moduleList: modules, xuanzhongBankuaiId: 0 });
this.loadRecords(true);
} else {
wx.showToast({ title: '加载模块失败', icon: 'none' });
}
} catch (e) {
wx.showToast({ title: '网络错误', icon: 'none' });
} finally {
this.setData({ loadingModules: false });
}
},
// 选择模块(含全部)
selectModule(e) {
const bankuaiId = e.currentTarget.dataset.id;
if (bankuaiId === this.data.xuanzhongBankuaiId) return;
this.setData({
xuanzhongBankuaiId: bankuaiId,
recordList: [],
page: 1,
hasMore: true
});
this.loadRecords(true);
},
// 加载审核记录
async loadRecords(isRefresh = false) {
if (this.data.isLoading) return;
const page = isRefresh ? 1 : this.data.page;
if (!isRefresh && !this.data.hasMore) return;
this.setData({ isLoading: true, isLoadingMore: !isRefresh });
try {
const res = await request({
url: '/dengji/hqshsj',
method: 'POST',
data: {
bankuai_id: this.data.xuanzhongBankuaiId || undefined,
page: page,
page_size: this.data.pageSize
}
});
this.setData({ isLoading: false, isLoadingMore: false, scrollViewRefreshing: false });
if (res && res.data.code === 0) {
const list = res.data.data.list || [];
const hasMore = res.data.data.has_more;
const ossUrl = app.globalData.ossImageUrl || '';
const processedList = list.map(item => {
let avatar = item.shenqingren_avatar || '';
if (avatar && !avatar.startsWith('http')) {
avatar = ossUrl + avatar;
}
return { ...item, shenqingren_avatar: avatar };
});
const newList = isRefresh ? processedList : [...this.data.recordList, ...processedList];
this.setData({ recordList: newList, page: page + 1, hasMore: hasMore });
if (isRefresh) this.setData({ lastRefreshTime: Date.now() });
} else {
wx.showToast({ title: '加载记录失败', icon: 'none' });
}
} catch (e) {
this.setData({ isLoading: false, isLoadingMore: false, scrollViewRefreshing: false });
wx.showToast({ title: '网络错误', icon: 'none' });
}
},
// 上拉加载更多
onReachBottom() {
const now = Date.now();
if (now - this.data.lastRefreshTime < this.data.refreshCooldown ||
this.data.isLoading || this.data.isLoadingMore) return;
if (this.data.hasMore) {
this.loadRecords(false);
}
},
// 下拉刷新
onPullDownRefresh() {
const now = Date.now();
if (now - this.data.lastRefreshTime < this.data.refreshCooldown || this.data.isLoading) {
this.setData({ scrollViewRefreshing: false });
return;
}
this.setData({ scrollViewRefreshing: true, lastRefreshTime: now, page: 1, hasMore: true });
this.loadRecords(true);
},
// 查看规则详情
showRuleDetail(e) {
const content = e.currentTarget.dataset.content;
this.setData({ showRuleModal: true, currentRuleContent: content });
},
hideRuleDetail() {
this.setData({ showRuleModal: false, currentRuleContent: '' });
},
// 查看备注详情
showBeizhuDetail(e) {
const content = e.currentTarget.dataset.content;
this.setData({ showBeizhuModal: true, currentBeizhuContent: content || '无' });
},
hideBeizhuDetail() {
this.setData({ showBeizhuModal: false, currentBeizhuContent: '' });
},
// 抢单
async onShouShen(e) {
const jiluId = e.currentTarget.dataset.jiluid;
const bankuaiId = e.currentTarget.dataset.bankuaiid;
if (!jiluId) {
wx.showToast({ title: '记录ID异常无法接单', icon: 'none' });
return;
}
const that = this;
wx.showModal({
title: '确认审核',
content: '确定要审核此用户吗?审核后请前往游戏进行审核,并严格评分。',
confirmColor: '#c9a558',
success: async (res) => {
if (res.confirm) {
wx.showLoading({ title: '接单中...', mask: true });
try {
const qdRes = await request({
url: '/dengji/shqd',
method: 'POST',
data: { jilu_id: jiluId }
});
if (qdRes && qdRes.data.code === 0) {
// 抢单成功,弹出联系打手弹窗
wx.showModal({
title: '接待成功',
content: '请认真考核,点击联系他查看打手信息并打分。',
showCancel: false,
confirmText: '联系他',
confirmColor: '#c9a558',
success: (modalRes) => {
if (modalRes.confirm) {
wx.navigateTo({
url: '/pages/assess-score/assess-score?jilu_id=' + jiluId
});
}
}
});
const newList = that.data.recordList.filter(r => r.jilu_id !== jiluId);
that.setData({ recordList: newList });
// 对应板块待审核数减1
const bkId = qdRes.data.data ? qdRes.data.data.bankuai_id : bankuaiId;
if (bkId) {
const newModules = that.data.moduleList.map(m => {
if (m.bankuai_id === bkId && m.count > 0) {
return { ...m, count: m.count - 1 };
}
return m;
});
that.setData({ moduleList: newModules });
}
} else {
const errMsg = qdRes?.data?.msg || '接单失败,请重试';
wx.showModal({
title: '接单失败',
content: errMsg,
showCancel: false,
confirmText: '知道了',
confirmColor: '#c9a558'
});
}
} catch (e) {
wx.showModal({
title: '提示',
content: '网络错误,请重试',
showCancel: false,
confirmText: '知道了'
});
} finally {
wx.hideLoading();
}
}
}
});
},
noop() {}
});