import React, {Component} from 'react';
import {FlatList, Alert, SafeAreaView, DeviceEventEmitter} from 'react-native';
import {SwipeAction, Radio} from '@ant-design/react-native';
import {RetrieveData, IndividualStorageData} from '../../../data/storage';
import {RequestNetwork} from '../../../data/encryption';
import Spinner from 'react-native-loading-spinner-overlay';
import loading_css from '../../../source/css/loading_css';
import public_css from '../../../source/css/public_css';
import {CleanAll} from '../../../components/abnormalMessage/abnormal_message';
import {ToastShow} from '../../../components/toast/toast';
const RadioItem = Radio.RadioItem;
export default class device extends Component {
constructor(props) {
super(props);
this.state = {
listData: [],
status: 0,
isLoading: false,
loadingText: 'loading',
entTaxId: '',
companyName: '',
deviceKey: '',
};
}
render() {
return (
this.renderItem(item)}
/>
);
}
//页面加载完成后加载数据
async componentDidMount() {
let deviceKey = this.props.route.params.deviceKey;
console.log(deviceKey);
this.setState({
deviceKey: deviceKey,
});
await this.getDeviceList();
}
//搜索
searchData = async (text) => {
this.setState({
listData: [],
companyName: text,
showFoot: 0,
pageNo: 1,
});
await this.getCompanyList();
};
//数据初始化
initData = () => {
this.setState({
listData: [],
isLoading: false,
showFoot: 0,
status: 0,
pageNo: 1,
companyName: '',
});
this.getCompanyList();
};
//列表上拉加载
onEndReached = async () => {
if (this.state.showFoot === 2) {
if (this.state.pageNo >= this.state.totalPage) {
this.setState({showFoot: 0});
return;
} else {
this.setState({showFoot: 1, pageNo: this.state.pageNo + 1});
await this.getCompanyList();
}
}
};
//获取数据
getDeviceList = async () => {
let company = await RetrieveData('company');
if (company) {
company = JSON.parse(company);
}
const token = await RetrieveData('token');
if (token && company) {
const url = '/sys/entDevice/findDevices';
let response = await RequestNetwork(
url,
token,
{
entTaxId: company.entTaxId,
},
false,
2,
);
if (response) {
if (response.code === 0) {
this.setList(response.data);
} else {
await this.abnormalMessage(response);
}
}
}
};
//设置设备列表
setList = (data) => {
let listData = data.map((_, i) => ({
deviceType: data[i].deviceType,
taxDiscId: data[i].taxDiscId,
deviceLabel: data[i].deviceLabel,
deviceId: data[i].deviceId,
deviceKey: data[i].deviceKey,
entTaxId: data[i].entTaxId,
}));
let list = this.state.listData.concat(listData);
this.setState({
showFoot: 0,
isLoading: false,
listData: list,
});
};
//切换设备信息
onChange = async (value) => {
console.log(value);
this.props.route.params.getDeviceInfo(value.item);
this.props.navigation.goBack();
};
//显示发票抬头列表
renderItem = (data) => (
{
if (event.target.checked) {
await this.onChange(data);
}
}}>
{data.item.deviceLabel}
);
// 设置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);
}
};
}