StepStart.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. /**
  2. * 新充电流程:充电前的模块
  3. * @邠心vbe on 2023/06/20
  4. */
  5. import React from 'react';
  6. import { View, Text, Image, StyleSheet, ScrollView } from 'react-native';
  7. import Button, { ElevationObject } from '../../components/Button';
  8. import { ChargeStyle } from '../chargeV2/Charging';
  9. import { PaymentList } from '../chargeV2/Payment';
  10. export default StepStart = ({
  11. connectorInfo={},
  12. currentPayment,
  13. curerntPerUse,
  14. onPaymentMethodChanged,
  15. onAuthenticate
  16. }) => {
  17. return (
  18. <ScrollView
  19. style={ui.flex1}
  20. contentContainerStyle={$padding(16)}>
  21. <View style={ui.center}>
  22. <Image
  23. style={styles.stepImage}
  24. resizeMode="contain"
  25. source={require('../../images/site/charging-status-unknow.png')}/>
  26. <Text style={styles.stepTitle}>{$t('charging.stepInsertConnector')}</Text>
  27. <Text style={styles.stepDesc}>{$t('charging.stepInsertConnectorDesc')}</Text>
  28. </View>
  29. <View style={styles.infoRow}>
  30. <View style={styles.infoCard}>
  31. <Text style={styles.infoTitle}>{$t('charging.labelType')}</Text>
  32. <Text
  33. numberOfLines={1}
  34. ellipsizeMode="tail"
  35. style={styles.infoText}>{connectorInfo.chargeType}{connectorInfo.wattage || "AC22"}</Text>
  36. <Text style={styles.infoDesc}></Text>
  37. </View>
  38. <View style={styles.infoCard}>
  39. <Text style={styles.infoTitle}>{$t('charging.labelPower')}</Text>
  40. <Text
  41. numberOfLines={1}
  42. ellipsizeMode="tail"
  43. style={styles.infoText}>{connectorInfo.wattage || "0"} kW{/*connectorInfo.rateType*/}</Text>
  44. <Text style={styles.infoDesc}></Text>
  45. </View>
  46. </View>
  47. <View style={styles.infoRow}>
  48. <View style={styles.infoCard}>
  49. <Text style={styles.infoTitle}>{$t('charging.labelRate')}</Text>
  50. {/* <Text
  51. numberOfLines={1}
  52. ellipsizeMode="tail"
  53. style={styles.infoText}>{connectorInfo.rate || "0.00"}/{connectorInfo.rateType || "kWh"}</Text> */}
  54. <Text
  55. numberOfLines={2}
  56. ellipsizeMode="tail"
  57. style={styles.infoText}>{connectorInfo.rates || "S$0.00/kWh"}</Text>
  58. <Text
  59. numberOfLines={1}
  60. ellipsizeMode="tail"
  61. style={styles.infoDesc}>({connectorInfo.userRates || "S$0.00/kWh"})</Text>
  62. </View>
  63. <View style={styles.infoCard}>
  64. <Text style={styles.infoTitle}>{$t('charging.labelStatus')}</Text>
  65. <Text
  66. style={[ChargeStyle.statusAuthenticated, styles.infoStatus]}>
  67. {$t('charging.statusAvailable')}
  68. </Text>
  69. </View>
  70. </View>
  71. <EndView/>
  72. <EndView half/>
  73. <Text style={styles.label}>{$t('charging.paymentMethod')}</Text>
  74. <PaymentList
  75. payType={currentPayment}
  76. payPerUse={curerntPerUse}
  77. onMethodChange={onPaymentMethodChanged}
  78. />
  79. <Button
  80. style={styles.buttonView}
  81. text={$t('charging.btnAuthenticate')}
  82. elevation={1.5}
  83. borderRadius={6}
  84. onClick={onAuthenticate}/>
  85. </ScrollView>
  86. );
  87. }
  88. const styles = StyleSheet.create({
  89. stepImage: {
  90. width: $vw(70),
  91. height: $vw(16),
  92. margin: 16
  93. },
  94. stepTitle: {
  95. fontSize: 24,
  96. fontWeight: 'bold',
  97. color: colorAccent
  98. },
  99. stepDesc: {
  100. color: textPrimary,
  101. fontSize: 16,
  102. textAlign: 'center',
  103. ...$padding(0, 32, 48)
  104. },
  105. infoRow: {
  106. marginLeft: 16,
  107. marginBottom: 16,
  108. flexDirection: 'row'
  109. },
  110. infoCard: {
  111. flex: 1,
  112. paddingTop: 12,
  113. paddingBottom: 12,
  114. borderRadius: 10,
  115. marginRight: 16,
  116. alignItems: 'center',
  117. ...ElevationObject(5),
  118. backgroundColor: colorLight,
  119. },
  120. infoTitle: {
  121. color: textPrimary,
  122. fontSize: 12,
  123. paddingTop: 1
  124. },
  125. infoText: {
  126. color: textPrimary,
  127. fontSize: 15,
  128. textAlign: 'center',
  129. fontWeight: 'bold',
  130. ...$padding(12, 6)
  131. },
  132. infoDesc: {
  133. color: textPrimary,
  134. fontSize: 12,
  135. marginTop: -12,
  136. paddingBottom: 8
  137. },
  138. infoStatus: {
  139. fontSize: 16,
  140. fontWeight: 'bold',
  141. ...$padding(16, 8)
  142. },
  143. label: {
  144. color: '#000',
  145. fontSize: 14,
  146. fontWeight: 'bold',
  147. paddingTop: 16,
  148. paddingBottom: 8
  149. },
  150. buttonView: {
  151. marginTop: 8,
  152. marginBottom: 16
  153. }
  154. })