Преглед изворни кода

[feat]添加联系人页面会员判断

Destiny пре 11 месеци
родитељ
комит
fc92825bb2

+ 6 - 0
lib/module/contact/all/all_controller.dart

@@ -1,5 +1,7 @@
 import 'package:clean/base/base_controller.dart';
+import 'package:clean/data/repositories/user_repository.dart';
 import 'package:clean/module/contact/contact_state.dart';
+import 'package:clean/module/store/store_view.dart';
 import 'package:clean/utils/toast_util.dart';
 import 'package:flutter/Material.dart';
 import 'package:flutter_contacts/contact.dart';
@@ -73,6 +75,10 @@ class AllController extends BaseController {
   }
 
   void deleteBtnClick() {
+    if (!userRepository.isVip()) {
+      StorePage.start();
+      return;
+    }
     // 获取要删除的资产
     final contactToDelete =
     ContactState.contactList.where((contact) => selectedContacts.contains(contact.id)).toList();

+ 46 - 9
lib/module/contact/backup/controller.dart

@@ -262,14 +262,51 @@ class ContactBackUpController extends BaseController {
   }
 
   Future<void> deleteBtnClick() async {
-    // 获取要删除的资产
-    final fileToDelete = backupFiles.where((file) => selectedFiles.contains(file.path)).toList();
-    //
-    for (var file in fileToDelete) {
-      await file.delete();
-    }
-    ToastUtil.show("Successful");
-    exitEditMode();
-    loadBackupFiles();
+    showCupertinoModalPopup(
+      context: Get.context!,
+      builder: (context) {
+        return CupertinoActionSheet(
+          actions: <Widget>[
+            //操作按钮集合
+            CupertinoActionSheetAction(
+              onPressed: () async {
+                Navigator.pop(context);
+                // 获取要删除的资产
+                final fileToDelete = backupFiles.where((file) => selectedFiles.contains(file.path)).toList();
+                //
+                for (var file in fileToDelete) {
+                  await file.delete();
+                }
+                ToastUtil.show("Successful");
+                exitEditMode();
+                loadBackupFiles();
+              },
+              child: Text(
+                'Delete',
+                style: TextStyle(
+                  color: "#FC4C4F".color,
+                  fontWeight: FontWeight.w500,
+                  fontSize: 16.sp,
+                ),
+              ),
+            ),
+          ],
+          cancelButton: CupertinoActionSheetAction(
+            //取消按钮
+            onPressed: () {
+              Navigator.pop(context);
+            },
+            child: Text(
+              'Cancel',
+              style: TextStyle(
+                color: "#007AFF".color,
+                fontWeight: FontWeight.w500,
+                fontSize: 16.sp,
+              ),
+            ),
+          ),
+        );
+      },
+    );
   }
 }

+ 7 - 0
lib/module/contact/duplicate/controller.dart

@@ -1,5 +1,7 @@
 import 'package:clean/base/base_controller.dart';
+import 'package:clean/data/repositories/user_repository.dart';
 import 'package:clean/module/contact/contact_state.dart';
+import 'package:clean/module/store/store_view.dart';
 import 'package:clean/utils/toast_util.dart';
 import 'package:flutter_contacts/contact.dart';
 import 'package:flutter_contacts/flutter_contacts.dart';
@@ -120,6 +122,11 @@ class ContactDuplicateController extends BaseController {
   }
 
   Future<void> mergeBtnClick(List<Contact> contacts) async {
+    if (!userRepository.isVip()) {
+      StorePage.start();
+      return;
+    }
+
     Contact? contactWithMostInfo;
     int maxInfoCount = 0;
 

+ 7 - 0
lib/module/contact/incomplete/controller.dart

@@ -1,5 +1,7 @@
 import 'package:clean/base/base_controller.dart';
+import 'package:clean/data/repositories/user_repository.dart';
 import 'package:clean/module/contact/contact_state.dart';
+import 'package:clean/module/store/store_view.dart';
 import 'package:flutter/widgets.dart';
 import 'package:flutter_contacts/contact.dart';
 import 'package:get/get.dart';
@@ -68,6 +70,11 @@ class ContactInCompleteController extends BaseController {
   }
 
   Future<void> deleteBtnClick() async {
+    if (!userRepository.isVip()) {
+      StorePage.start();
+      return;
+    }
+
     print("deleteBtnClick selectedContacts: $selectedContacts");
     final contactToDelete = ContactState.contactList
         .where((contact) => selectedContacts.contains(contact.id))