/** * V3版充电站信息页面 * @邠心vbe on 2024/05/13 */ import React, { Component } from 'react'; import { View, StyleSheet, ScrollView, RefreshControl, Text } from 'react-native'; import TextView from '../../components/TextView'; import PagerUtil from '../chargeV2/PagerUtil'; import { MyRefreshProps } from '../../components/ThemesConfig'; import utils from '../../utils/utils'; import SiteLabelView from '../../components/SiteLabelView'; import { ConnectTypeV2 } from '../search/ConnectType'; import { Pressable } from 'react-native'; export default class TabInfosV3 extends Component { constructor(props) { super(props); this.state = { refreshing: false, stationInfo: {} }; } componentDidMount() { PagerUtil.addOnRefresh(this); this.onRefresh(); } onRefresh() { console.log("info刷新", this.props.route.name); this.setState({ refreshing: false, stationInfo: PagerUtil.getStationInfo() }); } onPullRefresh() { this.setState({ refreshing: true }) PagerUtil.setBackRefreshing(); } getOperatingHours() { if (this.state.stationInfo?.endlessService) { return "24/7"; } else if (this.state.stationInfo?.operatingHours) { return this.state.stationInfo?.operatingHours; } else { return $t('charging.toBeUpdated'); } } getParkingFee() { if (this.state.stationInfo?.parkingFeeFree) { return $t('charging.free'); } else if (this.state.stationInfo?.parkingFee) { return this.state.stationInfo.parkingFee; } else { return $t('charging.toBeUpdated'); } } render() { return ( this.onPullRefresh()} /> }> {this.state.stationInfo?.name} {this.state.stationInfo.siteType} { (this.state.stationInfo.allConnector && this.state.stationInfo.allConnector.available > 0) && {$t("charging.statusAvailable")} } {$t('charging.siteAddress')} {this.state.stationInfo?.address} { utils.directMaps(this.state.stationInfo.latitude, this.state.stationInfo.longitude, this.state.stationInfo.address); }}> {$t('charging.operatingHours')} {this.getOperatingHours()} {$t('charging.parkingFees')} {this.getParkingFee()} { utils.isNotEmpty(this.state.stationInfo?.additionalNotes) && <> {$t('charging.additionalInfo')} {this.state.stationInfo?.additionalNotes} } { utils.isNotEmpty(this.state.stationInfo?.labels) && <> {$t('charging.labelTags')} {this.state.stationInfo?.labels.map((label, idx) => (idx != 0 ? ", " : "") + label.label )} } ); } } const styles = StyleSheet.create({ container: { flex: 1 }, siteName: { color: textPrimary, fontSize: 24, fontWeight: 'bold', paddingBottom: 4 }, title: { color: '#000', fontSize: 16, fontWeight: 'bold', paddingTop: 8, //borderBottomColor: '#eee', //borderBottomWidth: 1 }, infoView: { paddingTop: 4, paddingBottom: 8 }, infoText: { color: '#444', fontSize: 14 }, siteTypes: { color: textLight, height: 20, fontSize: 10, marginRight: 6, borderRadius: 30, ...$padding(0, 10), backgroundColor: textPrimary }, stationAvailable: { color: textPrimary, height: 20, fontSize: 10, marginRight: 6, borderRadius: 30, borderWidth: 1, borderColor: colorAccent, ...$padding(0, 8, 0, 4) }, labelRows: { flexWrap: 'wrap', alignItems: 'center', flexDirection: 'row' } })