Files
xingque/pages/merchant-penalty/components/merchant-jifen-list/merchant-jifen-list.js
2026-06-27 05:41:55 +08:00

113 lines
3.3 KiB
JavaScript

import request from '../../../../utils/request.js';
const app = getApp();
const MEIYE = 10;
Component({
properties: {
status: { type: Number, value: 0, observer: 'reload' },
trigger: { type: Number, value: 0, observer: 'reload' }
},
data: {
list: [],
page: 1,
hasMore: true,
loading: false,
loadingMore: false,
ossImageUrl: app.globalData.ossImageUrl || '',
showDetail: false,
detailItem: {}
},
lifetimes: {
attached() { this.reload(); }
},
methods: {
reload() {
this.setData({ page: 1, list: [], hasMore: true });
this.loadData();
},
mapItem(item) {
const n = Number(item.sqzhuangtai);
let display_status = '未知', status_class = 'zhuangtai-weizhi';
if (n === 0) { display_status = '待处理'; status_class = 'zhuangtai-daijiaona'; }
else if (n === 1) { display_status = '已处罚'; status_class = 'zhuangtai-yijiaona'; }
else if (n === 2) { display_status = '已撤销'; status_class = 'zhuangtai-yibohui'; }
else if (n === 3) { display_status = '申诉中'; status_class = 'zhuangtai-shensuzhong'; }
return {
...item,
display_status,
status_class,
display_time: item.CreateTime || item.create_time || '--',
full_zhengju: (item.zhengju_tupian || []).map(u => this.fullUrl(u)),
full_shensu: (item.shensu_tupian || []).map(u => this.fullUrl(u))
};
},
fullUrl(url) {
if (!url) return '';
if (url.startsWith('http')) return url;
return this.data.ossImageUrl + url;
},
async loadData(isLoadMore = false) {
if (this.data.loading || this.data.loadingMore) return;
if (isLoadMore && !this.data.hasMore) return;
if (isLoadMore) this.setData({ loadingMore: true });
else this.setData({ loading: true });
try {
const res = await request({
url: '/yonghu/sjcfjlhq',
method: 'POST',
data: { page: this.data.page, page_size: MEIYE, zhuangtai: this.data.status }
});
if (res.statusCode === 200 && res.data.code === 0) {
const data = res.data.data;
const rows = (data.list || []).map(item => this.mapItem(item));
const newList = isLoadMore ? this.data.list.concat(rows) : rows;
this.setData({
list: newList,
hasMore: data.has_more === true,
page: this.data.page + 1,
loading: false,
loadingMore: false
});
} else {
this.setData({ loading: false, loadingMore: false, hasMore: false });
}
} catch (e) {
this.setData({ loading: false, loadingMore: false });
}
},
loadMore() {
if (!this.data.hasMore || this.data.loadingMore) return;
this.loadData(true);
},
openDetail(e) {
this.setData({ showDetail: true, detailItem: e.currentTarget.dataset.item });
},
closeDetail() {
this.setData({ showDetail: false, detailItem: {} });
},
goOrder(e) {
const id = e.currentTarget.dataset.id;
if (!id) return;
wx.navigateTo({ url: `/pages/merchant-order-detail/merchant-order-detail?dingdan_id=${id}` });
},
previewImage(e) {
const url = e.currentTarget.dataset.url;
wx.previewImage({ current: url, urls: [url] });
}
}
});