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

149 lines
4.2 KiB
JavaScript
Raw Permalink 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/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() {}
});