113 lines
3.3 KiB
JavaScript
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] });
|
|
}
|
|
}
|
|
});
|