import React, {Component} from 'react'; import { View, Text, Dimensions, FlatList, RefreshControl, ActivityIndicator, DeviceEventEmitter, } from 'react-native'; import {List, SearchBar, SwipeAction} from '@ant-design/react-native'; import {RetrieveData} from '../../data/storage'; import {GetDataPost} from '../../data/encryption'; import personnel_css from './personnel_css'; import {ShowToast} from '../../components/rootToast/root_toast'; let pageNo = 1; //当前第几页 let totalPage = 5; //总的页数 export default class personnel_list extends Component { constructor(props) { super(props); this.props.navigation.dangerouslyGetParent().setOptions({ tabBarVisible: false, }); this.state = { listData: [], search_data: '', showFoot: 0, // 控制foot, 0:隐藏footer 1:已加载完成,没有更多数据 2 :显示加载中 user_type: 1, isLoading: false, }; } render() { return ( Alert.alert(value)} onCancel={() => this.searchClear()} onChange={(value) => this.searchData(value)} showCancelButton={false} style={{borderRadius: 15}} /> this.renderItem(item)} refreshControl={ { this.initData(); }} /> } ListFooterComponent={this._renderFooter.bind(this)} onEndReached={this._onEndReached.bind(this)} onEndReachedThreshold={0.1} /> ); } //搜索数据 searchData = (value) => { this.setState({ search_data: value, }); this.timer = setTimeout(() => { this.initData(); }, 1000); }; //清空搜索 searchClear = () => { this.setState({ search_data: '', }); this.initData(); }; //数据初始化 initData = () => { this.setState({ listData: [], isLoading: false, showFoot: 0, }); pageNo = 1; this.getPersonnelData(); }; //上拉加载 _onEndReached() { if (this.state.showFoot === 0) { if (pageNo >= totalPage) { this.setState({showFoot: 1}); return; } else { pageNo++; this.setState({showFoot: 2}); //获取数据 this.getPersonnelData(); } } } //显示list尾部 _renderFooter() { if (this.state.showFoot === 1) { return ( 没有更多数据了 ); } else if (this.state.showFoot === 2) { return ( 正在加载更多数据... ); } else if (this.state.showFoot === 0) { return ( ); } } //显示页面加载 componentDidMount(): void { this.getPersonnelData(); this.getUserType(); //收到监听 this.listener = DeviceEventEmitter.addListener('刷新用户列表', (data) => { //收到监听后想做的事情 this.initData(); }); } //获取用户类型 getUserType = async () => { let userType = await RetrieveData('usertype'); userType = userType.substring(1, userType.length - 1); this.setState({ user_type: userType, }); }; //关闭页面加载 componentWillUnmount(): void { pageNo = 1; this.timer && clearTimeout(this.timer); //移除监听 if (this.listener) { this.listener.remove(); } } //获取用户数据 getPersonnelData = async () => { let account = await RetrieveData('account'); let token = await RetrieveData('token'); if (token && account) { account = account.substring(1, account.length - 1); token = token.substring(1, token.length - 1); const url = 'https://app.taxbk.cn:9443/auth/comm/user/findChildUsers'; let response = await GetDataPost( url, token, { currentUserMobile: account, reqChannel: 3, pageNum: pageNo, pageSize: 10, name: this.state.search_data, }, false, 2, ); if (response) { if (response.code == 0) { totalPage = response.data.pages; this.setList(response.data.records); } } } }; //设置客户数据列表 setList = (data) => { let listDatas = data.map((_, i) => ({ key: data[i].id, name: data[i].name, mobile: data[i].mobile, status: data[i].status, deptId: data[i].deptId, userType: data[i].userType, manageUserId: data[i].manageUserId, deptName: data[i].deptName, })); let list = this.state.listData.concat(listDatas); this.setState({ listData: list, showFoot: 0, }); }; //加载客户列表数据 renderItem = (data) => ( { // this.props.navigation.navigate('enterprise_see', { // enterprise: data.item, // }); }}> {data.item.name} {data.item.mobile} ); //显示侧滑按钮 right = (data) => [ { text: '编辑', onPress: () => this.props.navigation.navigate('personnel_edit', { personnel: data.item, }), style: {backgroundColor: 'orange', color: 'white'}, }, { text: '删除', onPress: () => { this.deleteData(data.item); }, style: {backgroundColor: 'red', color: 'white'}, }, ]; //提交数据 submitData = () => { //服务商 if (this.state.user_type == 2) { this.deletedIspUser(); } //运营商 if (this.state.user_type == 3) { this.deletedAuthUser(); } }; //删除服务商用户 deletedIspUser = async () => { let account = await RetrieveData('account'); let token = await RetrieveData('token'); if (token && account) { account = account.substring(1, account.length - 1); token = token.substring(1, token.length - 1); const url = 'https://app.taxbk.cn:9443/auth/isp/user/delete'; let response = await GetDataPost( url, token, { mobile: '', currentUserMobile: account, reqChannel: 3, }, false, 1, ); if (response) { if (response.code == 0) { ShowToast('删除成功!'); } else { ShowToast('删除失败!'); } } } }; //删除运营商用户 deletedAuthUser = async () => { let account = await RetrieveData('account'); let token = await RetrieveData('token'); if (token && account) { account = account.substring(1, account.length - 1); token = token.substring(1, token.length - 1); const url = 'https://app.taxbk.cn:9443/auth/oper/user/delete'; let response = await GetDataPost( url, token, { mobile: '', currentUserMobile: account, reqChannel: 3, }, false, 1, ); if (response) { if (response.code == 0) { ShowToast('删除成功!'); } else { ShowToast('删除失败!'); } } } }; }