import { useLoading } from '../../behaviors/loading'; import { sceneTypeList } from '../../common/dataSceneTypes'; import { fetchPublish, fetchPublishedTask, deleteTask } from '../../services/patrol/fetchSelfPatrol'; import dayjs from 'dayjs'; import ActionSheet, { ActionSheetTheme } from 'tdesign-miniprogram/action-sheet'; Page({ behaviors: [useLoading], /** * 页面的初始数据 */ data: { placeholder: '搜索企业', // 搜索条件 searchOptions: { districtText: null, townText: null, sceneType: null, period: null, }, unfinishedList: [], // 常按选中的自巡查索引 longPressIndex: undefined, finishedList: [], newTask: false, dialog: { show: false, title: '确认删除当前自巡查任务?', message: '', }, }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { this.init(); this._startLoad(); }, onShow() { this.getTabBar().init(); }, onPullDownRefresh() { this._startLoad(); }, onReachBottom() { this._loadMore(); }, init() { this.setData({ ['searchOptions.period']: dayjs().format('YYYY-MM-DD'), ['searchOptions.sceneType']: sceneTypeList()[0].value, }); }, _fetchData(page) { return fetchPublishedTask(this.data.searchOptions.period).then(res => { const unfinishedList = [], finishedList = []; res.data.forEach(r => { if (r.finished < r.total) { unfinishedList.push(r); } else { finishedList.push(r); } }); this.setData({ unfinishedList, finishedList }); // if (this.data.newTask) { // wx.pageScrollTo({ // duration: 0, // offsetTop: 0, // scrollTop: 0, // selector: '.panel-wrap', // success: (res) => {}, // fail: (res) => {}, // complete: (res) => {}, // }) // } return res.head; }); }, // 常按待完成的自巡查任务 handleAction(e) { this.setData({ longPressIndex: e.target.dataset.index }); ActionSheet.show({ theme: ActionSheetTheme.List, selector: '#t-action-sheet', context: this, items: [{ label: '删除', }, ], }); console.log(e); }, // 删除自巡查任务 handleSelected(e) { const { index } = e.detail; switch (index) { // 删除 case 0: const { longPressIndex, unfinishedList } = this.data; const seleted = unfinishedList[longPressIndex]; this.setData({ dialog: { show: true, title: '确认删除当前历史记录?', message: seleted.finished > 0 ? '当前自巡查已有上传记录!' : '', }, }); break; default: break; } }, // 场景类型更改 handleSceneChange(e) { const { sceneValue } = e.detail; this.setData({ ['searchOptions.sceneType']: sceneValue[0], }); this._startLoad(); }, // 时间更改 handleTimeChange(e) { const { timeValue } = e.detail; this.setData({ ['searchOptions.period']: timeValue + '-01', }); this._startLoad(); }, // 筛选条件弹出框 showFilterPopup() { this.setData({ show: true, }); }, showFilterPopupClose() { this.setData({ show: false, }); }, // 弹出框重置 reset(e) { this.onPopupSearch(e); }, // 弹出框确认 confirm(e) { this.onPopupSearch(e); }, onPopupSearch(e) { const { searchOptions } = this.data; const { districtText, townText } = e.detail; searchOptions.districtText = districtText; searchOptions.townText = townText; this.setData({ show: false, searchOptions, }); this._startLoad(); }, // 弹出框关闭 close(e) { this.setData({ show: e.detail.visible }); }, dialogConfirm() { const { longPressIndex, unfinishedList } = this.data; const seleted = unfinishedList[longPressIndex]; // deleteTask(seleted.guid).then(res=>{ // unfinishedList.splice(longPressIndex, 1) // this.setData({ // unfinishedList, // ['dialog.show']: false // }); // }) unfinishedList.splice(longPressIndex, 1) this.setData({ unfinishedList, ['dialog.show']: false }); }, dialogClose() { this.setData({ ['dialog.show']: false }); }, navToPublishTask() { wx.navigateTo({ url: '/pages/selfpatrol/publish/index', events: { uploadOver: () => { this._startLoad(); }, }, }); }, });