// pages/m_ledger/ledgerHistory/ledgerhistory.js import { fetchLedgerDetail, fetchLedgerSummary, fetchIsLedgerUploaded, } from '../../../../services/enterprise/fetchLedger'; import { getLedgerIsUploadedMap } from '../../../../model/ledger/ledgerSummary'; import { useLoading } from '../../../../behaviors/loading'; import dayjs from 'dayjs'; const app = getApp(); Page({ behaviors: [useLoading], data: { year: '2000', maxYear: '2000', months: [ { month: 1, hasData: true, }, { month: 2, hasData: true, }, { month: 3, hasData: true, }, { month: 4, hasData: true, }, { month: 5, hasData: true, }, { month: 6, hasData: true, }, { month: 7, hasData: true, }, { month: 8, hasData: true, }, { month: 9, hasData: true, }, { month: 10, hasData: true, }, { month: 11, hasData: true, }, { month: 12, hasData: true, }, ], selectedMonIndex: 0, recordList: [], previewImageUrls: [], previewCurrent: 0, showPreview: false, }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { if (options) { this.userId = options.userId; this.sceneType = options.sceneTypeId; this.time = options.time this.mode = options.mode } this.initTime(); this._startLoad(); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() {}, onShow() { if (this.data.marginTop == undefined) { this.topHeight('.page-header'); } }, initTime(year) { var date = this.time ? dayjs(this.time) : dayjs(); let maxYear = dayjs().format('YYYY'); var thisMonth = date.month(); if (year == undefined) { year = date.format('YYYY'); } this.setData({ year: year, maxYear: maxYear, }); this.setData({ selectedMonIndex: thisMonth, }); }, bindYearChange(e) { let year = `${e.detail.value}`; debugger if (this.data.year != year) { this.setData({ year, }); this._startLoad(); } }, selectMonth(e) { let index = e.currentTarget.dataset.index; if (this.data.selectedMonIndex != index) { this.setData({ selectedMonIndex: index, }); this._startLoad(); } }, _fetchData() { let { userId, sceneType } = this; let month = this.data.months[this.data.selectedMonIndex].month; let year = dayjs(this.data.year).year(); var time = dayjs() .year(year) .month(month - 1) .format('YYYY-MM-DD'); // return fetchIsLedgerUploaded({ userId, sceneType, time }).then(res => { // let recordList = res.data.selfCheckInfo; // recordList = recordList.concat(res.data.ledgerInfo); // this.setData({recordList}); // return res // }); return this.getLedgerSummary({ userId, sceneType, time }); }, getLedgerSummary(param) { return fetchLedgerSummary(param).then(res => { const { mapSelf, mapLedger } = getLedgerIsUploadedMap(res.data); let map if (this.mode == 1) { map = mapSelf } else if (this.mode == 2){ map = mapLedger } else { for (const [key, value] of mapLedger) { mapSelf.set(key, value); } map = mapSelf } this.setData({ ledgerMap: map, }); return this.getLedgerDetail(param); }); }, getLedgerDetail(param) { return fetchLedgerDetail(param).then(res => { let ledgerMap = this.data.ledgerMap; ledgerMap.forEach((e, key) => { e.children = []; }); res.data.forEach(r => { let t = ledgerMap.get(r.ledgerType); if (t) { t.children.push(r); } }); let recordList = []; ledgerMap.forEach((e, key) => { recordList.push({ ledgerType: key, total: e.total, upload: e.upload, ledgers: e.children, }); }); this.setData({ ledgerMap: ledgerMap, recordList: recordList, }); return res; }); }, topHeight(element) { let query = wx.createSelectorQuery(); //必须要先创建一个查询 query .select(element) .boundingClientRect(rect => { this.setData({ marginTop: rect.height + 'px', }); }) .exec(); }, gotoLedgerDetail(e) { var i = e.currentTarget.dataset.index.split(','); var indexGroup = [parseInt(i[0]), parseInt(i[1])]; var ledger = this.data.recordList[indexGroup[0]].ledgers[indexGroup[1]]; console.log(ledger); wx.navigateTo({ url: '/pages/m_ledger/ledgerupload/ledgerupload', success: res => { // 通过 eventChannel 向被打开页面传送数据 res.eventChannel.emit('acceptDataFromOpenerPage', { ledger: ledger, indexGroup: indexGroup, barTitle: '历史台账', }); }, }); }, previewImage(e) { var i = e.currentTarget.dataset.index.split(','); var indexGroup = [parseInt(i[0]), parseInt(i[1])]; var ledger = this.data.recordList[indexGroup[0]].ledgers[indexGroup[1]]; const ledgerTitle = ledger.ledgerName; const ledgerRemark = ledger.remark1; const previewImageUrls = ledger.path1; this.setData({ previewImageUrls, ledgerRemark, ledgerTitle, previewCurrent: 0, showPreview: true, }); }, });