import React, {Component} from 'react'; import { View, TouchableOpacity, Text, SafeAreaView, FlatList, ActivityIndicator, Alert, RefreshControl, } from 'react-native'; import { Drawer, List, Provider, SwipeAction, Picker, } from '@ant-design/react-native'; import public_css from '../../../source/css/public_css'; import {RetrieveData} from '../../../data/storage'; import {RequestNetwork} from '../../../data/encryption'; import {ToastShow} from '../../../components/toast/toast'; import {InvoiceType, Distribute} from '../../../utils/config'; import {CleanAll} from '../../../components/abnormalMessage/abnormal_message'; import Spinner from 'react-native-loading-spinner-overlay'; import loading_css from '../../../source/css/loading_css'; export default class invoice_stock extends Component { constructor(props) { super(props); this.props.navigation.dangerouslyGetParent().setOptions({ tabBarVisible: false, }); this.state = { isShowSearch: false, beginDate: '', endDate: '', beginDateString: '', endDateString: '', invoiceList: [], isRefreshing: false, pageNum: 1, //当前页码 pageSize: 10, //每页数量 totalPage: 10, //总页数 showFoot: 0, monthDate: {}, invoiceTypeList: InvoiceType(), invoiceType: '1', distributeStatusList: Distribute(), distributeStatus: '0', spinner: false, isNextPage: false, // 是否有下一页 isPreviousPage: false, // 是否有上一页 }; } render() { let draw = ( this.invoiceTypeChange(select)}> 发票类型: { this.searchDataEmpty(); }}> 重置 this.searchData()}> 查询 ); return ( (this.drawer = el)} onOpenChange={(open) => this.openStatus(open)} drawerBackgroundColor="#ccc" drawerWidth={300}> this.renderItem(item)} refreshControl={ this.onRefresh()} /> } ListFooterComponent={() => this.renderFooter()} /> ); } // render加载完后调用 async componentDidMount() { this.setLoadingStatus(true); await this.getDistributeList(); } //判断是否点击了查询 shouldComponentUpdate( nextProps: Readonly

, nextState: Readonly, nextContext: any, ): boolean { if (nextProps.route.params != undefined) { if (nextProps.route.params.isShow) { this.setState({ isShowSearch: true, }); this.drawer.openDrawer(); this.props.navigation.setParams({ isShow: false, }); } } return true; } // 获取发票分发列表 getDistributeList = async () => { const company = JSON.parse(await RetrieveData('company')); const token = await RetrieveData('token'); const account = await RetrieveData('account'); if (token && account) { const url = '/sys/invoiceExt/purchaseQuery'; let response = await RequestNetwork( url, token, { entTaxId: company.entTaxId, deviceType: company.defaultDeviceInfo.deviceType, taxDiscId: company.defaultDeviceInfo.taxDiscId, invoiceCategory: this.state.invoiceType, }, false, 2, ); if (response) { console.log(response); if (response.code === 0) { this.setLoadingStatus(false); if (response.data.purchaseDetailVOs.length > 0) { this.setState({ isRefreshing: false, totalPage: response.data.purchaseDetailVOs.length, }); this.setList(response.data.purchaseDetailVOs); } else { this.setState({ showFoot: 0, isRefreshing: false, }); } } else { this.setLoadingStatus(false); await this.abnormalMessage(response); } } } }; //设置抬头列表 setList = (data) => { let invoiceType = ''; if (data[0].invoiceCategory === 1) { invoiceType = '增值税普通电子发票'; } if (data[0].invoiceCategory === 2) { invoiceType = '增值税电子专用发票'; } if (data[0].invoiceCategory === 3) { invoiceType = '增值税普通纸质发票'; } if (data[0].invoiceCategory === 4) { invoiceType = '增值税专用纸质发票'; } let invoiceList = data[0].purchaseRecords; let listData = invoiceList.map((_, i) => ({ invoiceCategory: invoiceType, invoiceCode: invoiceList[i].invoiceCode, invoiceStartNo: invoiceList[i].invoiceStartNo, invoiceEndNo: invoiceList[i].invoiceEndNo, invoicePurchaseQuantity: invoiceList[i].invoicePurchaseQuantity, invoiceSurplusQuantity: invoiceList[i].invoiceSurplusQuantity, invoicePurchaseDate: invoiceList[i].invoicePurchaseDate, invoicePurchaseOperator: invoiceList[i].invoicePurchaseOperator, })); let list = this.state.invoiceList.concat(listData); console.log(list); this.setState({ invoiceList: list, showFoot: 0, }); }; //查询菜单开关状态 openStatus = (open) => { if (open) { } else { // this.props.children.setClickNum(); } }; //获取查询发票类型 invoiceTypeChange = (select) => { let invoiceType = ''; if (select.length > 0) { invoiceType = select[0]; } this.setState({ invoiceType: invoiceType, }); }; //查询 searchData = async () => { this.setState({ isShowSearch: false, invoiceList: [], showFoot: 0, }); this.setLoadingStatus(true); await this.getDistributeList(); }; //清空查询数据 searchDataEmpty = async () => { this.setState({ invoiceType: '1', invoiceList: [], showFoot: 0, }); await this.getDistributeList(); }; // 加载list项 renderItem = (data) => ( 发票类别:{data.item.invoiceCategory} 发票代码:{data.item.invoiceCode} 发票起始号码:{data.item.invoiceStartNo} 发票终止号码:{data.item.invoiceEndNo} 申领份数:{data.item.invoicePurchaseQuantity} 剩余份数:{data.item.invoiceSurplusQuantity} 领购日期:{data.item.invoicePurchaseDate} 领购人员:{data.item.invoicePurchaseOperator} ); // 下拉刷新 onRefresh = async () => { this.setState({ isRefreshing: true, showFoot: 1, invoiceList: [], }); await this.getDistributeList(); }; // list尾部组件 renderFooter() { if (this.state.showFoot === 0) { return ( 没有更多数据了 ); } else if (this.state.showFoot === 1) { return ( 正在加载... ); } else if (this.state.showFoot === 2) { return ( 上拉加载 ); } } // 设置load层是否显示 setLoadingStatus = (isLoading) => { this.setState({ spinner: isLoading, }); }; // 处理网络请求数据 abnormalMessage = async (jason) => { if (jason.code === 401) { await Alert.alert( '登录失效', '登录状态已失效,请重新登录!', [ { text: '确定', onPress: () => { CleanAll(); this.props.navigation.popToTop(); }, }, ], {cancelable: false}, ); } if (jason.code === 403) { Alert.alert( '权限', '暂无权限操作此模块!', [ { text: '确定', onPress: () => { this.props.navigation.goBack(); }, }, ], {cancelable: false}, ); } if (jason.code !== 401 && jason.code !== 403) { ToastShow(1, jason.msg); } }; }