From 09ff01905e8c120fc717aeb2d26e700d285b86c9 Mon Sep 17 00:00:00 2001 From: guozhigq Date: Mon, 11 Sep 2023 17:46:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=A7=BB=E9=99=A4=E9=BB=91=E5=90=8D?= =?UTF-8?q?=E5=8D=95=E3=80=81=E9=9A=90=E8=97=8F=E9=BB=91=E5=90=8D=E5=8D=95?= =?UTF-8?q?=E4=B8=8A=E9=99=90=E6=98=BE=E7=A4=BA=20issues=20#90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/http/api.dart | 3 +++ lib/http/black.dart | 27 +++++++++++++++++++++++++++ lib/pages/blacklist/index.dart | 20 +++++++++++++++----- 3 files changed, 45 insertions(+), 5 deletions(-) diff --git a/lib/http/api.dart b/lib/http/api.dart index 2125b076..0a2e6616 100644 --- a/lib/http/api.dart +++ b/lib/http/api.dart @@ -288,6 +288,9 @@ class Api { // 黑名单 static const String blackLst = '/x/relation/blacks'; + // 移除黑名单 + static const String removeBlack = '/x/relation/modify'; + // github 获取最新版 static const String latestApp = 'https://api.github.com/repos/guozhigq/pilipala/releases/latest'; diff --git a/lib/http/black.dart b/lib/http/black.dart index 599b088b..81a7c0c9 100644 --- a/lib/http/black.dart +++ b/lib/http/black.dart @@ -23,4 +23,31 @@ class BlackHttp { }; } } + + // 移除黑名单 + static Future removeBlack({required int fid}) async { + var res = await Request().post( + Api.removeBlack, + queryParameters: { + 'act': 6, + 'csrf': await Request.getCsrf(), + 'fid': fid, + 'jsonp': 'jsonp', + 're_src': 116, + }, + ); + if (res.data['code'] == 0) { + return { + 'status': true, + 'data': [], + 'msg': '操作成功', + }; + } else { + return { + 'status': false, + 'data': [], + 'msg': res.data['message'], + }; + } + } } diff --git a/lib/pages/blacklist/index.dart b/lib/pages/blacklist/index.dart index 63792532..f0551b4f 100644 --- a/lib/pages/blacklist/index.dart +++ b/lib/pages/blacklist/index.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; import 'package:hive/hive.dart'; import 'package:pilipala/common/widgets/http_error.dart'; @@ -60,7 +61,7 @@ class _BlackListPageState extends State { centerTitle: false, title: Obx( () => Text( - '黑名单管理 (${_blackListController.blackList.length} / 5000)', + '黑名单管理 - ${_blackListController.blackList.length}', style: Theme.of(context).textTheme.titleMedium, ), ), @@ -104,10 +105,11 @@ class _BlackListPageState extends State { overflow: TextOverflow.ellipsis, ), dense: true, - // trailing: TextButton( - // onPressed: () {}, - // child: const Text('移除'), - // ), + trailing: TextButton( + onPressed: () => _blackListController + .removeBlack(list[index].mid), + child: const Text('移除'), + ), ); }, ), @@ -154,4 +156,12 @@ class BlackListController extends GetxController { } return result; } + + Future removeBlack(mid) async { + var result = await BlackHttp.removeBlack(fid: mid); + if (result['status']) { + blackList.removeWhere((e) => e.mid == mid); + SmartDialog.showToast(result['msg']); + } + } }