瀏覽代碼

#13798 Amend membership application page

vbea 2 年之前
父節點
當前提交
50ab7d7d18

+ 4 - 1
Strides-APP/app/api/apiMember.js

@@ -1,4 +1,4 @@
-import { get, post } from "./http";
+import { del, get, post } from "./http";
 
 const prefix = 'devicesApi/group/';
 
@@ -11,5 +11,8 @@ export default {
   },
   getMyMemberList() {
     return get(prefix + "user-memberships")
+  },
+  delMembers(membershipId) {
+    return del(prefix + "user-memberships/" + membershipId)
   }
 }

+ 2 - 0
Strides-APP/app/i18n/locales/en.js

@@ -435,6 +435,8 @@ export default {
     statusApproved: "Approved",
     statusPending: "Pending",
     statusRejected: "Rejected",
+    deleteMember: "Delete Membership",
+    confirmDelete: "Do you want to delete the rejected membership?",
     labelUpload: "Upload\nMembership\nCard (Front)",
     labelPHVNo: "License No.",
     labelMemberLicenceNo: "Member/License No.",

+ 2 - 0
Strides-APP/app/i18n/locales/zh-TW.js

@@ -435,6 +435,8 @@ export default {
     statusApproved: "審核通過",
     statusPending: "等待審核",
     statusRejected: "審核拒絕",
+    deleteMember: "刪除會員",
+    confirmDelete: "是否要刪除這個被拒絕的會員?",
     labelUpload: "請上載會員卡\n正面照片",
     labelPHVNo: "PHV駕駛證號",
     labelMemberLicenceNo: "會員卡/駕駛證編號",

+ 2 - 0
Strides-APP/app/i18n/locales/zh.js

@@ -435,6 +435,8 @@ export default {
     statusApproved: "审核通过",
     statusPending: "等待审核中",
     statusRejected: "审核未通过",
+    deleteMember: "删除会员",
+    confirmDelete: "是否要删除被拒绝的会员?",
     labelUpload: "请上传会员卡\n正面照片",
     labelPHVNo: "PHV驾驶证号",
     labelMemberLicenceNo: "会员卡/驾驶证编号",

+ 36 - 2
Strides-APP/app/pages/member/MembersList.js

@@ -6,6 +6,7 @@ import React, { Component } from 'react';
 import { View, Text, StyleSheet, Pressable, Image } from 'react-native';
 import apiMember from '../../api/apiMember';
 import { ElevationObject } from '../../components/Button';
+import Dialog from '../../components/Dialog';
 import TextView from '../../components/TextView';
 import utils from '../../utils/utils';
 
@@ -14,7 +15,6 @@ export default class MembersList extends Component {
     super(props);
     this.state = {
       memberList: []
-
     };
   }
 
@@ -55,6 +55,30 @@ export default class MembersList extends Component {
     }
   }
 
+  onDeleteMember(item) {
+    Dialog.showDialog({
+      title: $t("members.deleteMember"),
+      message: $t("members.confirmDelete"),
+      ok: $t("nav.yes"),
+      cancel: $t("nav.no"),
+      callback: btn => {
+        if (btn == Dialog.BUTTON_OK) {
+          this.deleteMembers(item.membershipId)
+        }
+      }
+    })
+  }
+
+  deleteMembers(id) {
+    //Dialog.showProgressDialog();
+    apiMember.delMembers(id).then(res => {
+      toastShort($t("common.deleteSuccess"))
+      this.getMyMemberList();
+    }).catch(err => {
+      toastShort(err)
+    })
+  }
+
   render() {
     return (
       this.state.memberList.length > 0
@@ -63,6 +87,9 @@ export default class MembersList extends Component {
           key={index}
           style={styles.memberView}
           onPress={() => {
+            if (item.membershipStatus == "Rejected") {
+              this.onDeleteMember(item)
+            }
             //startPage(PageList.editVehicle, {id: item.vehiclePk});
           }}>
           <View style={styles.itemBackground}>
@@ -93,7 +120,11 @@ export default class MembersList extends Component {
           </View>
           <View style={styles.memberItem}>
             <TextView style={styles.textLabel}>{$t('members.status')}:</TextView>
-            <TextView style={styles.textValue}>{this.getMembershipStatus(item.membershipStatus)}</TextView>
+            { item.membershipStatus == "Rejected"
+              ? <TextView style={[styles.textValue, styles.statusRed]}>{this.getMembershipStatus(item.membershipStatus)}</TextView>
+              : <TextView style={styles.textValue}>{this.getMembershipStatus(item.membershipStatus)}</TextView>
+            }
+            
           </View>
         </Pressable>
       ))
@@ -142,6 +173,9 @@ const styles = StyleSheet.create({
     fontWeight: 'bold',
     marginBottom: 2
   },
+  statusRed: {
+    color: "#FF2222"
+  },
   textType: {
     color: textLight,
     fontSize: 10,