/**
* 车辆列表
* @邠心vbe on 2021/06/08
*/
import React, { Component } from 'react';
import { View, Text, Image, StyleSheet, Pressable } from 'react-native';
import apiUser from '../../api/apiUser';
import { ElevationObject } from '../../components/Button';
import Dialog from '../../components/Dialog';
import TextView from '../../components/TextView';
import VehicleType from '../../icons/VehicleType';
import { PageList } from '../Router';
export default class VehicleList extends Component {
constructor(props) {
super(props);
this.state = {
vehicleList: [],
refreshId: 0,
};
}
componentDidMount() {
//this.getVehicleList();
this.props.navigation.addListener('focus', () => {
this.getVehicleList();
})
}
componentDidUpdate() {
if (this.state.refreshId != this.props.refreshId) {
this.setState({
refreshId: this.props.refreshId,
});
this.getVehicleList();
}
}
getVehicleList() {
apiUser.getVehicles().then(res => {
if (res.data) {
this.setState({
vehicleList: res.data
});
if (this.props.onResult) {
this.props.onResult(res.data.length)
}
}
}).catch(err => {
this.setState({
vehicleList: []
});
if (this.props.onResult) {
this.props.onResult(0)
}
});
}
removeVehicle(id) {
Dialog.showDialog({
title: $t('profile.removeVehicle'),
message: $t('profile.tipRemoveVehicle'),
callback: btn => {
if (btn == 'ok') {
Dialog.dismissLoading();
this.deleteVehicle(id);
}
}
})
}
deleteVehicle(id) {
Dialog.showProgressDialog();
apiUser.deleteVehicle({
vehiclePk: id
}).then(res => {
Dialog.dismissLoading();
toastShort($t('common.deleteSuccess'));
this.getVehicleList();
}).catch(err => {
Dialog.dismissLoading();
toastShort(err);
});
}
render() {
return (
this.state.vehicleList.length > 0
? this.state.vehicleList.map((item, index) => {
//const type = getConnectTypeByKey(item.connectorType)
return (
{
startPage(PageList.editVehicle, {id: item.vehiclePk});
}}
onLongPress={() => {
if (this.props.onDelete) {
this.props.onDelete(item.vehiclePk)
} else {
this.removeVehicle(item.vehiclePk)
}
}}>
{item.brand} {item.model}
{item.licensePlate}
TYPE {item.connectorType}
{/*
{type?.name} */}
this.removeVehicle(item.vehiclePk)}>
);
})
: {$t('profile.noVehicles')}
);
}
}
const styles = StyleSheet.create({
vehicleView: {
borderRadius: 8,
overflow: 'hidden',
...ElevationObject(5),
...$margin(16, 16, 0),
...$padding(12, 16, 20),
backgroundColor: colorLight
},
vehicleViewBg: {
right: 8,
bottom: 8,
width: 111,
height: 54,
position: 'absolute'
},
vehicleRow: {
alignItems: 'center',
flexDirection: 'row',
},
vehicleIcon: {
width: 32,
height: 32,
},
vehicleName: {
color: textDark,
fontSize: 20,
paddingLeft: 12,
fontWeight: 'bold'
},
vehicleModle: {
color: textPrimary,
fontSize: 16,
paddingLeft: 44,
paddingTop: 2,
paddingBottom: 7
},
vehicleTypeRow: {
height: 20,
marginLeft: 44,
borderRadius: 4,
overflow: 'hidden',
alignItems: 'center',
flexDirection: 'row',
backgroundColor: '#E5EFDE'
},
vehicleTypeIcon: {
width: 20,
height: 20,
alignItems: 'center',
justifyContent: 'center',
backgroundColor: colorAccent
},
vehicleType: {
color: colorAccent,
fontSize: 13,
paddingLeft: 6,
paddingRight: 8,
},
closeIcon: {
top: 0,
right: 0,
padding: 12,
position: 'absolute'
}
});