// pages/myMediate/index.js const $$ = require('../../utils/util'); const app = getApp(); // 获取我的调解 function getMyMediateApi(submitData) { return $$.request({ url: 'paCaseInfo/pageMyMediation', type: 'get', service: 'mediate', submitData }); } // 撤销申请 function cancelCaseApi(submitData) { return $$.request({ url: 'paCaseInfo/revokeApply?id=' + submitData, type: 'get', service: 'mediate' }); } Page({ /** * 页面的初始数据 */ data: { imgUrl: $$.url.img, tab: [ { title: '我是申请人', name: '15_020008-1' }, { title: '我是被申请人', name: '15_020008-2' }, ], selectModel: [ { name: '全部', key: 'process', data: [ { label: '全部', value: '', span: 24 }, { label: '待受理', value: '1' }, { label: '待调解', value: '2' }, { label: '调解中', value: '3' }, { label: '调解结束', value: '4' }, { label: '退回', value: '5' }, { label: '不予受理', value: '6' }, { label: '申请人撤回', value: '7' }, ], }, ], loading: false, // 滚动到底部分页的加载状态 search: { page: 1, size: 10, perType: '15_020008-1', process: '', caseStatus: '', }, data: [], // 数据 total: 0, // 总数 popupMsg: { show: false, title: '', data: null, }, }, // 获取搜索参数 handleGetType(e) { this.getMyMediate({ ...this.data.search, page: 1, process: e.detail.process }); }, // 切换tab handleChangeTab(e) { let type = null; if (e.detail.name === '15_020008-1') { type = [ { label: '全部', value: '', span: 24 }, { label: '待受理', value: '1' }, { label: '待调解', value: '2' }, { label: '调解中', value: '3' }, { label: '调解结束', value: '4' }, { label: '退回', value: '5' }, { label: '不予受理', value: '6' }, { label: '申请人撤回', value: '7' }, ]; } else { type = [ { label: '全部', value: '', span: 24 }, { label: '待调解', value: '2' }, { label: '调解中', value: '3' }, { label: '调解结束', value: '4' }, { label: '申请人撤回', value: '7' }, ]; } let submitData = { page: 1, size: 10, perType: e.detail.name, process: '', caseStatus: '', }; let that = this; this.setData({ data: [], selectModel: [{ name: '全部', key: 'process', data: type }], search: submitData }, () => { that.getMyMediate(submitData); }); }, // 滚动到底部获取案件 handlescrolltolower() { if (this.data.data.length >= this.data.total) { return false; } if (!this.data.loading) { this.data.loading = true; this.setData({ loading: this.data.loading }); let submitData = { ...this.data.search }; submitData.page = submitData.page + 1; this.getMyMediate(submitData); } }, // 打开底部弹窗 handleOpenBottomPopup(e) { let type = e.detail.type; if (type === 'roomNo') { this.setData({ popupMsg: { show: true, data: e.detail.data, title: '线上调解房间号' } }); } }, // 底部弹窗显隐 _handleClosePopupMsg() { this.setData({ popupMsg: { show: false } }); }, // 复制房间号 _handleCopy() { let that = this; wx.setClipboardData({ data: that.data.popupMsg.data, success: function (res) { wx.getClipboardData({ success: function (res) { $$.showToast({ title: '复制成功' }); that.setData({ popupMsg: { show: false } }); }, }); }, }); }, // 撤销申请 async handleCancelCase(e) { let caseId = e.detail; $$.showLoading(); const res = await cancelCaseApi(caseId); $$.hideLoading(); if (res.type) { $$.showToast({ icon: 'success', title: '撤销成功' }); await $$.sleep(); this.getMyMediate(this.data.search); } }, // 获取我的调解案件 async getMyMediate(submitData, caseMsg, type) { $$.showLoading(); const res = await getMyMediateApi(submitData); $$.hideLoading(); if (this.data.loading) { // 取消滚动底部的加载状态 this.setData({ loading: false }); } if (res.type) { if (caseMsg) { forEach: for (let i = 0; i <= res.data.content.length - 1; i++) { if (res.data.content[i].id === caseMsg.id) { this.data.data[caseMsg.caseIndex] = { ...res.data.content[i] }; this.setData({ data: JSON.parse(JSON.stringify(this.data.data)) }); break forEach; } } } else { if (submitData.page === 1) { this.data.data = res.data.content || []; } else { this.data.data = this.data.data.concat(res.data.content || []); } this.setData({ search: submitData, data: this.data.data, total: res.data.totalElements || 0 }); if (type === 'onPullDownRefresh') { $$.showToast({ title: '已是最新记录', duration: 1000 }); wx.stopPullDownRefresh(); } } } }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { this.getMyMediate(this.data.search); }, /** * 生命周期函数--监听页面显示 */ onShow() { // 当其他页面返回时更新数据,caseIndex:判断那个案件的下标精确更新该案件,handleVisible:表示是否在其他页面操作了之后返回 let caseMsg = app.globalData.caseMsg; if (caseMsg.id && caseMsg.caseIndex !== undefined && caseMsg.handleVisible) { let search = this.data.search; search.size = search.page * 10; search.page = 1; this.getMyMediate(search, caseMsg); app.globalData.caseMsg = {}; } }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { let search = { page: 1, size: 10, perType: this.data.search.perType, process: '', caseStatus: '', }; this.getMyMediate(search, '', 'onPullDownRefresh'); }, });