opt: follow btn text

This commit is contained in:
bggRGjQaUbCoE
2024-10-18 21:40:05 +08:00
parent 80885d9165
commit b0acf1d326
7 changed files with 35 additions and 18 deletions

View File

@@ -21,6 +21,8 @@ part 'data.g.dart';
@JsonSerializable()
class Data {
int? relation;
@JsonKey(name: 'rel_special')
int? relSpecial;
@JsonKey(name: 'guest_relation')
int? guestRelation;
@JsonKey(name: 'default_tab')
@@ -54,6 +56,7 @@ class Data {
Data({
this.relation,
this.relSpecial,
this.guestRelation,
this.defaultTab,
this.isParams,

View File

@@ -8,6 +8,7 @@ part of 'data.dart';
Data _$DataFromJson(Map<String, dynamic> json) => Data(
relation: (json['relation'] as num?)?.toInt(),
relSpecial: (json['rel_special'] as num?)?.toInt(),
guestRelation: (json['guest_relation'] as num?)?.toInt(),
defaultTab: json['default_tab'] as String?,
isParams: json['is_params'] as bool?,
@@ -64,6 +65,7 @@ Data _$DataFromJson(Map<String, dynamic> json) => Data(
Map<String, dynamic> _$DataToJson(Data instance) => <String, dynamic>{
'relation': instance.relation,
'rel_special': instance.relSpecial,
'guest_relation': instance.guestRelation,
'default_tab': instance.defaultTab,
'is_params': instance.isParams,

View File

@@ -46,10 +46,12 @@ class FollowItem extends StatelessWidget {
? SizedBox(
height: 34,
child: TextButton(
onPressed: () async {
await Get.bottomSheet(
GroupPanel(mid: item.mid!),
isScrollControlled: true,
onPressed: () {
Utils.actionRelationMod(
context: context,
mid: item.mid,
isFollow: true,
callback: (attribute) {},
);
},
style: TextButton.styleFrom(

View File

@@ -36,7 +36,9 @@ class MemberControllerNew extends CommonController
bool customHandleResponse(Success response) {
username = response.response?.card?.name ?? '';
isFollow.value = response.response?.card?.relation?.isFollow == 1;
relation.value = response.response?.relation ?? 1;
relation.value = response.response?.relSpecial == 1
? 2
: response.response?.relation ?? 1;
tab2 = response.response.tab2;
if (tab2 != null && tab2!.isNotEmpty) {
if (!response.response.tab.toJson().values.contains(true) &&
@@ -127,7 +129,7 @@ class MemberControllerNew extends CommonController
mid: mid,
isFollow: isFollow.value,
callback: (attribute) {
relation.value = 1;
relation.value = attribute;
isFollow.value = attribute != 0;
},
);

View File

@@ -238,9 +238,11 @@ class UserInfoCard extends StatelessWidget {
TextSpan(
text: relation == -1
? '移除黑名单'
: isFollow
? ' 关注'
: '关注',
: relation == 2
? ' 特别关注'
: isFollow
? ' 已关注'
: '关注',
)
],
),

View File

@@ -53,11 +53,11 @@ class _GroupPanelState extends State<GroupPanel> {
final bool anyHasChecked =
tagsList.any((MemberTagItemModel e) => e.checked == true);
late String tagids;
List<int>? tagidList;
if (anyHasChecked) {
final List<MemberTagItemModel> checkedList =
tagsList.where((MemberTagItemModel e) => e.checked == true).toList();
final List<int> tagidList =
checkedList.map<int>((e) => e.tagid!).toList();
tagidList = checkedList.map<int>((e) => e.tagid!).toList();
tagids = tagidList.join(',');
} else {
tagids = '0';
@@ -66,7 +66,7 @@ class _GroupPanelState extends State<GroupPanel> {
final res = await MemberHttp.addUsers(widget.mid, tagids);
SmartDialog.showToast(res['msg']);
if (res['status']) {
Get.back(result: true);
Get.back(result: tagidList?.contains(-10) == true);
}
}

View File

@@ -46,7 +46,7 @@ class Utils {
);
SmartDialog.showToast(res['status'] ? "关注成功" : res['msg']);
if (res['status']) {
callback(2);
callback(1);
// followStatus['attribute'] = 2;
// followStatus.refresh();
}
@@ -84,6 +84,11 @@ class Utils {
// followStatus['tag'] = tags;
// followStatus.refresh();
SmartDialog.showToast('$text成功');
if (isSpecialFollowed) {
callback(1);
} else {
callback(2);
}
} else {
SmartDialog.showToast(res['msg']);
}
@@ -97,7 +102,7 @@ class Utils {
dense: true,
onTap: () async {
Get.back();
await showModalBottomSheet(
dynamic result = await showModalBottomSheet(
context: context,
useSafeArea: true,
isScrollControlled: true,
@@ -125,10 +130,11 @@ class Utils {
);
},
);
// await Future.delayed(const Duration(milliseconds: 500));
// if (result == true) {
// queryFollowStatus();
// }
if (result == true) {
callback(2);
} else if (result == false) {
callback(1);
}
},
title: const Text(
'设置分组',