Bläddra i källkod

Add SiteLabelView and support configuration background color

vbea 2 år sedan
förälder
incheckning
13fb454daf

+ 34 - 0
Strides-APP/app/components/SiteLabelView.js

@@ -0,0 +1,34 @@
+/**
+ * 站点标签组件
+ * @邠心vbe on 2023/11/30
+ */
+import React from 'react';
+import TextView from './TextView';
+
+const SiteLabelView = ({
+  label,
+  color = textLight,
+  background = colorPrimary
+}) => {
+  if (label) {
+    return (
+      <TextView
+        style={{
+          color: color || textLight,
+          height: 22,
+          fontSize: 12,
+          marginRight: 5,
+          marginBottom: 5,
+          borderRadius: 3,
+          ...$padding(0, 6),
+          backgroundColor: background || colorPrimary
+        }}>
+        {label}
+      </TextView>
+    )
+  } else {
+    return <></>
+  }
+};
+
+export default SiteLabelView;

+ 1 - 1
Strides-APP/app/pages/bookmark/Bookmarks.js

@@ -72,7 +72,7 @@ export default class Bookmarks extends Component {
             siteType: item.siteType,
             siteType: item.siteType,
             favorite: item.favorite,
             favorite: item.favorite,
             upcoming: item.upcoming,
             upcoming: item.upcoming,
-            labels: item.labels,
+            labels: item.siteLabels,
             distance: utils.getDistance(item.distance),
             distance: utils.getDistance(item.distance),
             serviceProvider: item.serviceProvider
             serviceProvider: item.serviceProvider
           });
           });

+ 2 - 2
Strides-APP/app/pages/chargeV2/SummaryV2.js

@@ -29,7 +29,7 @@ export default class Summary extends Component {
         payment: {}
         payment: {}
       },
       },
       chargingPk: "",
       chargingPk: "",
-      isPendding: true
+      isPendding: false
     };
     };
     this.action = "";
     this.action = "";
     this.canBack = false;
     this.canBack = false;
@@ -50,7 +50,7 @@ export default class Summary extends Component {
       } else {
       } else {
         setTimeout(() => {
         setTimeout(() => {
           this.getSummaryData(params.chargingPk);
           this.getSummaryData(params.chargingPk);
-        }, 3000);
+        }, 1500);
       }
       }
     }
     }
     if (params.action) {
     if (params.action) {

+ 2 - 11
Strides-APP/app/pages/chargeV2/TabInfos.js

@@ -8,6 +8,7 @@ import TextView from '../../components/TextView';
 import PagerUtil from './PagerUtil';
 import PagerUtil from './PagerUtil';
 import { MyRefreshProps } from '../../components/ThemesConfig';
 import { MyRefreshProps } from '../../components/ThemesConfig';
 import utils from '../../utils/utils';
 import utils from '../../utils/utils';
+import SiteLabelView from '../../components/SiteLabelView';
 
 
 export default class TabInfos extends Component {
 export default class TabInfos extends Component {
   constructor(props) {
   constructor(props) {
@@ -93,7 +94,7 @@ export default class TabInfos extends Component {
           <View style={styles.labelRows}>
           <View style={styles.labelRows}>
             { utils.isNotEmpty(this.state.stationInfo?.labels) &&
             { utils.isNotEmpty(this.state.stationInfo?.labels) &&
               this.state.stationInfo?.labels.map((label, idx) =>
               this.state.stationInfo?.labels.map((label, idx) =>
-                <TextView key={idx} style={styles.labels}>{label}</TextView>
+                <SiteLabelView key={idx} {...label}/>
               )
               )
             }
             }
           </View>
           </View>
@@ -127,15 +128,5 @@ const styles = StyleSheet.create({
     flexWrap: 'wrap',
     flexWrap: 'wrap',
     alignItems: 'center',
     alignItems: 'center',
     flexDirection: 'row'
     flexDirection: 'row'
-  },
-  labels: {
-    color: colorLight,
-    height: 22,
-    fontSize: 12,
-    borderRadius: 3,
-    marginRight: 5,
-    marginBottom: 5,
-    ...$padding(0, 8),
-    backgroundColor: colorPrimary
   }
   }
 })
 })

+ 2 - 14
Strides-APP/app/pages/home/maps/BottomSiteInfo.js

@@ -11,6 +11,7 @@ import { PageList } from '../../Router';
 import ConnectType from '../../search/ConnectType';
 import ConnectType from '../../search/ConnectType';
 import app from '../../../../app.json';
 import app from '../../../../app.json';
 import TextView from '../../../components/TextView';
 import TextView from '../../../components/TextView';
+import SiteLabelView from '../../../components/SiteLabelView';
 
 
 export default BottomSiteInfo = ({
 export default BottomSiteInfo = ({
   stationInfo = {},
   stationInfo = {},
@@ -142,11 +143,7 @@ export default BottomSiteInfo = ({
               style={styles.labelIcon}
               style={styles.labelIcon}
               source={require('../../../images/maps/ic_marker_additional.png')}/>
               source={require('../../../images/maps/ic_marker_additional.png')}/>
             { stationInfo.labels.map((item, index) => 
             { stationInfo.labels.map((item, index) => 
-              <TextView
-                key={index}
-                style={styles.textLabel}>
-                {item}
-              </TextView>
+              <SiteLabelView key={index} {...item}/>
             )}
             )}
           </View>
           </View>
         }
         }
@@ -314,15 +311,6 @@ const styles = StyleSheet.create({
     height: 16,
     height: 16,
     marginRight: 6
     marginRight: 6
   },
   },
-  textLabel: {
-    color: textLight,
-    fontSize: 10,
-    marginRight: 5,
-    marginBottom: 5,
-    borderRadius: 4,
-    ...$padding(2, 6),
-    backgroundColor: colorPrimary
-  },
   upcomingIcon: {
   upcomingIcon: {
     marginLeft: 8,
     marginLeft: 8,
     opacity: .3
     opacity: .3

+ 2 - 6
Strides-APP/app/pages/search/ListViewV2.js

@@ -9,6 +9,7 @@ import utils from '../../utils/utils';
 import ConnectType from './ConnectType';
 import ConnectType from './ConnectType';
 import app from '../../../app.json';
 import app from '../../../app.json';
 import Button from '../../components/Button';
 import Button from '../../components/Button';
+import SiteLabelView from '../../components/SiteLabelView';
 
 
 export default ListViewV2 = ({item, index, separators, onPress, onFavorite}) => {
 export default ListViewV2 = ({item, index, separators, onPress, onFavorite}) => {
   if (item.id) {
   if (item.id) {
@@ -89,7 +90,7 @@ export default ListViewV2 = ({item, index, separators, onPress, onFavorite}) =>
             }
             }
             { utils.isNotEmpty(item?.labels) &&
             { utils.isNotEmpty(item?.labels) &&
               item?.labels.map((label, idx) =>
               item?.labels.map((label, idx) =>
-                <TextView key={idx} style={[styles.infoStatus, styles.labels]}>{label}</TextView>
+                <SiteLabelView {...label} key={idx}/>
               )
               )
             }
             }
           </View>
           </View>
@@ -173,11 +174,6 @@ const styles = StyleSheet.create({
     color: '#FDB702',
     color: '#FDB702',
     borderColor: '#FDB702'
     borderColor: '#FDB702'
   },
   },
-  labels: {
-    color: colorLight,
-    borderColor: colorPrimary,
-    backgroundColor: colorPrimary
-  },
   connectView: {
   connectView: {
     paddingTop: 4,
     paddingTop: 4,
     paddingBottom: 8,
     paddingBottom: 8,

+ 1 - 1
Strides-APP/app/pages/search/SearchV2.js

@@ -64,7 +64,7 @@ export default class Search extends Component {
             siteType: item.siteType,
             siteType: item.siteType,
             favorite: item.favorite,
             favorite: item.favorite,
             upcoming: item.upcoming,
             upcoming: item.upcoming,
-            labels: item.labels,
+            labels: item.siteLabels,
             distance: utils.getDistance(item.distance),
             distance: utils.getDistance(item.distance),
             serviceProvider: item.serviceProvider
             serviceProvider: item.serviceProvider
           });
           });

+ 1 - 1
Strides-APP/app/utils/utils.js

@@ -65,7 +65,7 @@ export default {
         favorite: obj.favorite,
         favorite: obj.favorite,
         acRates: acRates,
         acRates: acRates,
         dcRates: dcRates,
         dcRates: dcRates,
-        labels: obj.labels,
+        labels: obj.siteLabels,
         upcoming: obj.upcoming,
         upcoming: obj.upcoming,
         rateList: obj.rates,
         rateList: obj.rates,
         siteType: obj.siteType,
         siteType: obj.siteType,