修正了 pages 名为拼音的问题
This commit is contained in:
208
pages/assess-score/assess-score.js
Normal file
208
pages/assess-score/assess-score.js
Normal file
@@ -0,0 +1,208 @@
|
||||
// pages/assess-score/assess-score.js
|
||||
const app = getApp();
|
||||
import request from '../../utils/request.js';
|
||||
import { openPrivateChat, buildDashouPeerId } from '../../utils/im-user.js';
|
||||
import { resolveAvatarUrl } from '../../utils/avatar.js';
|
||||
|
||||
Page({
|
||||
data: {
|
||||
recordList: [],
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
hasMore: false,
|
||||
isLoading: false,
|
||||
ossImageUrl: app.globalData.ossImageUrl || '',
|
||||
|
||||
// 操作弹窗
|
||||
showAgreeModal: false,
|
||||
showRejectModal: false,
|
||||
showTransferModal: false,
|
||||
currentItem: null,
|
||||
rejectReason: '',
|
||||
|
||||
// 倒计时
|
||||
countdown: 2,
|
||||
counting: false,
|
||||
countdownTimer: null,
|
||||
},
|
||||
|
||||
onLoad() {
|
||||
this.loadRecords(true);
|
||||
},
|
||||
|
||||
// 加载考核记录
|
||||
async loadRecords(isRefresh = false) {
|
||||
if (this.data.isLoading) return;
|
||||
const page = isRefresh ? 1 : this.data.page;
|
||||
this.setData({ isLoading: true });
|
||||
try {
|
||||
const res = await request({
|
||||
url: '/dengji/hqkhxq',
|
||||
method: 'POST',
|
||||
data: { page, page_size: this.data.pageSize }
|
||||
});
|
||||
if (res && res.data.code === 0) {
|
||||
const list = res.data.data.list || [];
|
||||
const hasMore = res.data.data.has_more;
|
||||
const oss = this.data.ossImageUrl;
|
||||
const processed = list.map(item => ({
|
||||
...item,
|
||||
shenqingren_avatar: item.shenqingren_avatar && !item.shenqingren_avatar.startsWith('http')
|
||||
? oss + item.shenqingren_avatar
|
||||
: item.shenqingren_avatar || '/images/default-avatar.png'
|
||||
}));
|
||||
const newList = isRefresh ? processed : [...this.data.recordList, ...processed];
|
||||
this.setData({ recordList: newList, page: page + 1, hasMore, isLoading: false });
|
||||
} else {
|
||||
wx.showToast({ title: '加载失败', icon: 'none' });
|
||||
this.setData({ isLoading: false });
|
||||
}
|
||||
} catch (e) {
|
||||
wx.showToast({ title: '网络错误', icon: 'none' });
|
||||
this.setData({ isLoading: false });
|
||||
}
|
||||
},
|
||||
|
||||
onReachBottom() {
|
||||
if (this.data.hasMore && !this.data.isLoading) {
|
||||
this.loadRecords(false);
|
||||
}
|
||||
},
|
||||
|
||||
// 联系打手(私聊)—— 照搬金牌页面逻辑
|
||||
contactDashou(e) {
|
||||
const item = e.currentTarget.dataset.item;
|
||||
if (!item || !item.shenqingren_id) {
|
||||
wx.showToast({ title: '无法获取打手ID', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
openPrivateChat(this, {
|
||||
toUserId: buildDashouPeerId(item.shenqingren_id),
|
||||
toName: '打手' + item.shenqingren_id,
|
||||
toAvatar: resolveAvatarUrl(item.shenqingren_avatar),
|
||||
});
|
||||
},
|
||||
|
||||
// 修改游戏昵称
|
||||
async modifyNick(e) {
|
||||
const { id } = e.currentTarget.dataset;
|
||||
const item = this.data.recordList.find(r => r.jilu_id === id);
|
||||
if (!item) return;
|
||||
const newNick = item.shenheguan_youxi_id || '';
|
||||
try {
|
||||
const res = await request({
|
||||
url: '/dengji/khgxgkh',
|
||||
method: 'POST',
|
||||
data: { jilu_id: id, caozuo: 'modify_nick', youxi_id: newNick }
|
||||
});
|
||||
if (res && res.data.code === 0) {
|
||||
wx.showToast({ title: '修改成功', icon: 'success' });
|
||||
} else {
|
||||
wx.showToast({ title: res.data?.msg || '修改失败', icon: 'none' });
|
||||
}
|
||||
} catch (e) {
|
||||
wx.showToast({ title: '网络错误', icon: 'none' });
|
||||
}
|
||||
},
|
||||
|
||||
onNickInput(e) {
|
||||
const id = e.currentTarget.dataset.id;
|
||||
const value = e.detail.value;
|
||||
const list = this.data.recordList.map(item => {
|
||||
if (item.jilu_id === id) {
|
||||
return { ...item, shenheguan_youxi_id: value };
|
||||
}
|
||||
return item;
|
||||
});
|
||||
this.setData({ recordList: list });
|
||||
},
|
||||
|
||||
// 🆕 实时更新拒绝原因
|
||||
onRejectInput(e) {
|
||||
this.setData({ rejectReason: e.detail.value });
|
||||
},
|
||||
|
||||
openAgreeModal(e) {
|
||||
const item = e.currentTarget.dataset.item;
|
||||
this.setData({ showAgreeModal: true, currentItem: item });
|
||||
this.startCountdown();
|
||||
},
|
||||
openRejectModal(e) {
|
||||
const item = e.currentTarget.dataset.item;
|
||||
this.setData({ showRejectModal: true, currentItem: item, rejectReason: '' });
|
||||
this.startCountdown();
|
||||
},
|
||||
openTransferModal(e) {
|
||||
const item = e.currentTarget.dataset.item;
|
||||
this.setData({ showTransferModal: true, currentItem: item });
|
||||
this.startCountdown();
|
||||
},
|
||||
|
||||
closeAllModals() {
|
||||
this.stopCountdown();
|
||||
this.setData({
|
||||
showAgreeModal: false,
|
||||
showRejectModal: false,
|
||||
showTransferModal: false,
|
||||
currentItem: null,
|
||||
rejectReason: ''
|
||||
});
|
||||
},
|
||||
|
||||
startCountdown() {
|
||||
this.stopCountdown();
|
||||
this.setData({ counting: true, countdown: 2 });
|
||||
this.data.countdownTimer = setInterval(() => {
|
||||
if (this.data.countdown > 1) {
|
||||
this.setData({ countdown: this.data.countdown - 1 });
|
||||
} else {
|
||||
this.stopCountdown();
|
||||
this.setData({ counting: false, countdown: 0 });
|
||||
}
|
||||
}, 1000);
|
||||
},
|
||||
stopCountdown() {
|
||||
if (this.data.countdownTimer) {
|
||||
clearInterval(this.data.countdownTimer);
|
||||
this.data.countdownTimer = null;
|
||||
}
|
||||
},
|
||||
|
||||
// 执行操作(从事件对象中获取操作类型)
|
||||
async executeAction(e) {
|
||||
const actionType = e.currentTarget.dataset.action;
|
||||
if (!actionType) {
|
||||
wx.showToast({ title: '操作类型异常', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
|
||||
const item = this.data.currentItem;
|
||||
if (!item) return;
|
||||
|
||||
const params = { jilu_id: item.jilu_id, caozuo: actionType };
|
||||
|
||||
if (actionType === 'reject') {
|
||||
if (!this.data.rejectReason.trim()) {
|
||||
wx.showToast({ title: '请填写拒绝原因', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
params.yuanyin = this.data.rejectReason;
|
||||
}
|
||||
|
||||
try {
|
||||
const res = await request({ url: '/dengji/khgxgkh', method: 'POST', data: params });
|
||||
if (res && res.data.code === 0) {
|
||||
wx.showToast({ title: '操作成功', icon: 'success' });
|
||||
this.closeAllModals();
|
||||
const newList = this.data.recordList.filter(r => r.jilu_id !== item.jilu_id);
|
||||
this.setData({ recordList: newList });
|
||||
} else {
|
||||
wx.showToast({ title: res.data?.msg || '操作失败', icon: 'none' });
|
||||
this.closeAllModals();
|
||||
}
|
||||
} catch (e) {
|
||||
wx.showToast({ title: '网络错误', icon: 'none' });
|
||||
this.closeAllModals();
|
||||
}
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user