StepStart.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  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. style={styles.infoText}>{connectorInfo.rates || "S$0.00/kWh"}</Text>
  56. <Text
  57. style={styles.infoDesc}>({connectorInfo.userRates || "S$0.00/kWh"})</Text>
  58. </View>
  59. <View style={styles.infoCard}>
  60. <Text style={styles.infoTitle}>{$t('charging.labelStatus')}</Text>
  61. <Text
  62. style={[ChargeStyle.statusAuthenticated, styles.infoStatus]}>
  63. {$t('charging.statusAvailable')}
  64. </Text>
  65. </View>
  66. </View>
  67. <EndView/>
  68. <EndView half/>
  69. <Text style={styles.label}>{$t('charging.paymentMethod')}</Text>
  70. <PaymentList
  71. payType={currentPayment}
  72. payPerUse={curerntPerUse}
  73. onMethodChange={onPaymentMethodChanged}
  74. />
  75. <Button
  76. style={styles.buttonView}
  77. text={$t('charging.btnAuthenticate')}
  78. elevation={1.5}
  79. borderRadius={6}
  80. onClick={onAuthenticate}/>
  81. </ScrollView>
  82. );
  83. }
  84. const styles = StyleSheet.create({
  85. stepImage: {
  86. width: $vw(70),
  87. height: $vw(16),
  88. margin: 16
  89. },
  90. stepTitle: {
  91. fontSize: 24,
  92. fontWeight: 'bold',
  93. color: colorAccent
  94. },
  95. stepDesc: {
  96. color: textPrimary,
  97. fontSize: 16,
  98. textAlign: 'center',
  99. ...$padding(0, 32, 48)
  100. },
  101. infoRow: {
  102. marginLeft: 16,
  103. marginBottom: 16,
  104. flexDirection: 'row'
  105. },
  106. infoCard: {
  107. flex: 1,
  108. padding: 12,
  109. borderRadius: 10,
  110. marginRight: 16,
  111. alignItems: 'center',
  112. ...ElevationObject(5),
  113. backgroundColor: colorLight,
  114. },
  115. infoTitle: {
  116. color: textPrimary,
  117. fontSize: 12,
  118. paddingTop: 1
  119. },
  120. infoText: {
  121. color: textPrimary,
  122. fontSize: 16,
  123. textAlign: 'center',
  124. fontWeight: 'bold',
  125. ...$padding(16, 0)
  126. },
  127. infoDesc: {
  128. color: textPrimary,
  129. fontSize: 12,
  130. marginTop: -16,
  131. paddingBottom: 8
  132. },
  133. infoStatus: {
  134. fontSize: 16,
  135. fontWeight: 'bold',
  136. ...$padding(16, 8)
  137. },
  138. label: {
  139. color: '#000',
  140. fontSize: 14,
  141. fontWeight: 'bold',
  142. paddingTop: 16,
  143. paddingBottom: 8
  144. },
  145. buttonView: {
  146. marginTop: 8,
  147. marginBottom: 16
  148. }
  149. })