import React, { Component } from 'react'; import Taro from '@tarojs/taro'; import { View, Picker, ScrollView, } from '@tarojs/components' import { getRecordList, getAudit } from '../../utils/servers/servers'; import dayjs from 'dayjs'; import { AtIcon, } from 'taro-ui'; import { getAccountName } from '../../utils/tools'; import { accountLtate, } from '../../utils/tools/config' import ListBottomStart from "../../components/common/listBottomStart"; import AuditModal from "../../components/common/auditModal"; import './index.less'; import 'taro-ui/dist/style/components/tabs.scss'; import "taro-ui/dist/style/components/flex.scss"; import "taro-ui/dist/style/components/action-sheet.scss"; import "taro-ui/dist/style/components/icon.scss"; import "taro-ui/dist/style/components/list.scss"; import "taro-ui/dist/style/components/icon.scss"; import "taro-ui/dist/style/components/modal.scss"; class Examine extends Component { constructor(props) { super(props); this.state = { starts: {}, list: [], visible: false, } } componentDidShow() { this.getPublicReleaseList(); } async componentDidMount() { await this.getPublicReleaseList(); } onPullDownRefresh() { this.getPublicReleaseList(); } onReachBottom() { this.getPublicReleaseList(true); } onTabItemTap(obj) { if (obj.index === 1) { this.onTabTap(); } } onPickerHide() { this.setState({ isPickerRender: false, }); } async onSetPickerTime(val) { let data = val.detail; await this.setState({ rangeStartMinuteVal: dayjs(data.selectStartTime).format("YYYY-MM-DD"), rangeEndMinuteVal: dayjs(data.selectEndTime).format("YYYY-MM-DD") }) await this.getMyList(1); } async onTabTap() { await this.getMyList(1); } async getPublicReleaseList(lv) { await this.getMyList(lv ? this.state.pageNo + 1 : 1); Taro.stopPullDownRefresh(); } async getMyList(pageNo) { this.setState({ listState: 'LOADING' }) let data = { pageNo: pageNo, pageSize: 10, startTime: this.state.rangeStartMinuteVal || undefined, endTime: this.state.rangeEndMinuteVal || undefined, status: isNaN(parseInt(this.state.starts.id)) ? undefined : String(this.state.starts.id), } for (let i in data) { if (!data[i]) { delete data[i] } } let msg = await getRecordList(data); if (msg.error.length === 0) { if (msg.data.totalCount === 0) { this.setState({ listState: 'NO_DATA' }) } else if (msg.data.totalCount === this.state.list.length && pageNo !== 1) { Taro.showToast({ title: '没有更多数据了', icon: 'none' }); this.setState({ listState: 'NO_MORE_DATA' }) } else { if (msg.data.totalCount === (pageNo === 1 ? msg.data.list : this.state.list.concat(msg.data.list)).length) { this.setState({ listState: 'NO_MORE_DATA' }) } } this.setState({ list: pageNo === 1 ? msg.data.list : this.state.list.concat(msg.data.list), pageNo: msg.data.list.length === 0 ? this.state.pageNo : msg.data.pageNo }) } else { Taro.showToast({ title: msg.error[0].message, icon: 'none' }); this.setState({ listState: msg.error[0].field === '403' ? 'NO_DATA' : 'RELOAD' }) } Taro.stopPullDownRefresh(); } onPageScroll(event) { let touchMove = event.scrollTop; if (touchMove >= 37) { this.setState({ openSearch: true }) } else { this.setState({ openSearch: false }) } } selAudit(id, e) { e.stopPropagation(); getAudit({ eaid: id, }).then((v) => { if (v.error.length === 0) { } else { Taro.showToast({ title: v.error[0].message, icon: "none" }); } }).catch((err) => { Taro.showToast({ title: "系统错误,请稍后再试", icon: "none" }); }); } render() { const { list } = this.state return ( { this.setState({ starts: accountLtate[e.detail.value], }, () => { this.getPublicReleaseList(); }) }}> { !this.state.starts.title ? 状态 : {this.state.starts.title} } { this.state.starts.title && { e.stopPropagation(); this.setState({ starts: {} }, () => { this.getPublicReleaseList(); }) }}> } { this.setState({ isPickerRender: true }) }}> { !this.state.rangeStartMinuteVal ? 开始及结束时间 : {this.state.rangeStartMinuteVal + "~" + this.state.rangeEndMinuteVal} } { this.state.rangeStartMinuteVal && { e.stopPropagation(); this.setState({ rangeStartMinuteVal: '', rangeEndMinuteVal: '', }, () => { this.getPublicReleaseList(); }) }}> } { list?.map((item) => { Taro.navigateTo({ url: '/pages/drafts/index?id=' + item.id }) }} > {item.status == 1 && { e.stopPropagation(); this.setState({ visible: true, id: item.id }) }}>查看审核详情} 报销金额:{item.totalAmount}元 报销时间:{item.createTimeStr} 报销类型:{getAccountName(item.type, item.typeOther)} {accountLtate[item.status].title} ) } { this.getPublicReleaseList(true) }} /> { }} onhidepicker={() => { this.onPickerHide() }} onsetpickertime={(v) => { this.onSetPickerTime(v) }}> {this.state.visible && { this.setState({ visible: false }) }} />} ) } } export default Examine