149 lines
4.2 KiB
JavaScript
149 lines
4.2 KiB
JavaScript
// pages/assess-log/assess-log.js
|
||
const app = getApp();
|
||
import request from '../../utils/request.js';
|
||
|
||
Page({
|
||
data: {
|
||
// 板块筛选
|
||
moduleList: [],
|
||
xuanzhongBankuaiId: 0, // 0代表全部
|
||
// 状态筛选:0-全部 1-审核中 2-已通过 3-未通过
|
||
statusFilter: 0,
|
||
// 记录列表
|
||
recordList: [],
|
||
page: 1,
|
||
pageSize: 5,
|
||
hasMore: true,
|
||
isLoading: false,
|
||
isLoadingMore: false,
|
||
// 展开的记录ID集合(字符串数组)
|
||
expandedIds: [],
|
||
// OSS地址
|
||
ossImageUrl: app.globalData.ossImageUrl || '',
|
||
},
|
||
|
||
onLoad() {
|
||
this.loadModules();
|
||
},
|
||
|
||
// 加载板块(复用审核大厅接口)
|
||
async loadModules() {
|
||
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' });
|
||
}
|
||
},
|
||
|
||
// 选择板块
|
||
selectModule(e) {
|
||
const bankuaiId = e.currentTarget.dataset.id;
|
||
if (bankuaiId === this.data.xuanzhongBankuaiId) return;
|
||
this.setData({
|
||
xuanzhongBankuaiId: bankuaiId,
|
||
recordList: [],
|
||
page: 1,
|
||
hasMore: true,
|
||
expandedIds: []
|
||
});
|
||
this.loadRecords(true);
|
||
},
|
||
|
||
// 选择状态
|
||
selectStatus(e) {
|
||
const status = e.currentTarget.dataset.status;
|
||
if (status === this.data.statusFilter) return;
|
||
this.setData({
|
||
statusFilter: status,
|
||
recordList: [],
|
||
page: 1,
|
||
hasMore: true,
|
||
expandedIds: []
|
||
});
|
||
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/khghqkhjl',
|
||
method: 'POST',
|
||
data: {
|
||
bankuai_id: this.data.xuanzhongBankuaiId || undefined,
|
||
status: this.data.statusFilter || undefined,
|
||
page: page,
|
||
page_size: this.data.pageSize
|
||
}
|
||
});
|
||
|
||
this.setData({ isLoading: false, isLoadingMore: false });
|
||
|
||
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 processedList = list.map(item => {
|
||
let avatar = item.shenqingren_avatar || '';
|
||
if (avatar && !avatar.startsWith('http')) {
|
||
avatar = oss + avatar;
|
||
}
|
||
return { ...item, shenqingren_avatar: avatar };
|
||
});
|
||
const newList = isRefresh ? processedList : [...this.data.recordList, ...processedList];
|
||
this.setData({ recordList: newList, page: page + 1, hasMore: hasMore });
|
||
} else {
|
||
wx.showToast({ title: '加载记录失败', icon: 'none' });
|
||
}
|
||
} catch (e) {
|
||
this.setData({ isLoading: false, isLoadingMore: false });
|
||
wx.showToast({ title: '网络错误', icon: 'none' });
|
||
}
|
||
},
|
||
|
||
// 上拉加载更多
|
||
onReachBottom() {
|
||
if (this.data.hasMore && !this.data.isLoading && !this.data.isLoadingMore) {
|
||
this.loadRecords(false);
|
||
}
|
||
},
|
||
|
||
// 展开/收起详情
|
||
toggleExpand(e) {
|
||
const jiluId = e.currentTarget.dataset.id;
|
||
// 确保 jiluId 是字符串
|
||
const id = String(jiluId);
|
||
const expandedIds = this.data.expandedIds.slice(); // 拷贝
|
||
const index = expandedIds.indexOf(id);
|
||
if (index > -1) {
|
||
expandedIds.splice(index, 1);
|
||
} else {
|
||
expandedIds.push(id);
|
||
}
|
||
this.setData({ expandedIds });
|
||
},
|
||
|
||
// 去评判(跳转考核打分页)
|
||
goJudge(e) {
|
||
const item = e.currentTarget.dataset.item;
|
||
if (!item) return;
|
||
wx.navigateTo({ url: '/pages/assess-score/assess-score?jilu_id=' + item.jilu_id });
|
||
},
|
||
|
||
// 阻止冒泡
|
||
noop() {}
|
||
}); |