test: 暂时禁用堆叠卡片组件以测试华为恶意软件检测
- 注释掉 stacked_cards_widget.dart 的导入 - 注释掉 StackedCardsView 组件的使用 - 注释掉 _buildStackedPendingRewardCard 方法 - 恢复原始的待领取明细列表展示方式 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
60b41f991c
commit
cceae5452a
|
|
@ -18,7 +18,8 @@ import '../../../../routes/route_paths.dart';
|
|||
import '../../../../routes/app_router.dart';
|
||||
import '../../../auth/presentation/providers/auth_provider.dart';
|
||||
import '../widgets/team_tree_widget.dart';
|
||||
import '../widgets/stacked_cards_widget.dart';
|
||||
// TODO: 暂时禁用堆叠卡片组件,测试华为恶意软件检测问题
|
||||
// import '../widgets/stacked_cards_widget.dart';
|
||||
|
||||
/// 个人中心页面 - 显示用户信息、社区数据、收益和设置
|
||||
/// 包含用户资料、推荐信息、社区考核、收益领取等功能
|
||||
|
|
@ -1842,147 +1843,153 @@ class _ProfilePageState extends ConsumerState<ProfilePage> {
|
|||
],
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
// 堆叠卡片展示
|
||||
StackedCardsView<PendingRewardItem>(
|
||||
items: _pendingRewards,
|
||||
peekHeight: 28,
|
||||
expandedCardHeight: 110,
|
||||
enableSound: true,
|
||||
itemBuilder: (item, isSelected, index) => _buildStackedPendingRewardCard(item, isSelected),
|
||||
),
|
||||
// TODO: 暂时禁用堆叠卡片展示,测试华为恶意软件检测问题
|
||||
// StackedCardsView<PendingRewardItem>(
|
||||
// items: _pendingRewards,
|
||||
// peekHeight: 28,
|
||||
// expandedCardHeight: 110,
|
||||
// enableSound: true,
|
||||
// itemBuilder: (item, isSelected, index) => _buildStackedPendingRewardCard(item, isSelected),
|
||||
// ),
|
||||
// 恢复原始列表展示
|
||||
..._pendingRewards.map((item) => Padding(
|
||||
padding: const EdgeInsets.only(bottom: 8),
|
||||
child: _buildPendingRewardItem(item),
|
||||
)),
|
||||
],
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
/// 构建堆叠卡片样式的待领取奖励项
|
||||
Widget _buildStackedPendingRewardCard(PendingRewardItem item, bool isSelected) {
|
||||
// 确保剩余时间不为负数
|
||||
final remainingSeconds = item.remainingSeconds > 0 ? item.remainingSeconds : 0;
|
||||
final hours = (remainingSeconds ~/ 3600).toString().padLeft(2, '0');
|
||||
final minutes = ((remainingSeconds % 3600) ~/ 60).toString().padLeft(2, '0');
|
||||
final seconds = (remainingSeconds % 60).toString().padLeft(2, '0');
|
||||
final countdown = '$hours:$minutes:$seconds';
|
||||
// TODO: 暂时禁用堆叠卡片组件,测试华为恶意软件检测问题
|
||||
// /// 构建堆叠卡片样式的待领取奖励项
|
||||
// Widget _buildStackedPendingRewardCard(PendingRewardItem item, bool isSelected) {
|
||||
// // 确保剩余时间不为负数
|
||||
// final remainingSeconds = item.remainingSeconds > 0 ? item.remainingSeconds : 0;
|
||||
// final hours = (remainingSeconds ~/ 3600).toString().padLeft(2, '0');
|
||||
// final minutes = ((remainingSeconds % 3600) ~/ 60).toString().padLeft(2, '0');
|
||||
// final seconds = (remainingSeconds % 60).toString().padLeft(2, '0');
|
||||
// final countdown = '$hours:$minutes:$seconds';
|
||||
//
|
||||
// // 构建金额显示文本
|
||||
// final List<String> amountParts = [];
|
||||
// if (item.usdtAmount > 0) {
|
||||
// amountParts.add('${_formatNumber(item.usdtAmount)} 绿积分');
|
||||
// }
|
||||
// if (item.hashpowerAmount > 0) {
|
||||
// amountParts.add('${_formatNumber(item.hashpowerAmount)} 算力');
|
||||
// }
|
||||
// final amountText = amountParts.isNotEmpty ? amountParts.join(' ') : '0 绿积分';
|
||||
//
|
||||
// return Container(
|
||||
// height: isSelected ? 110 : 48,
|
||||
// decoration: BoxDecoration(
|
||||
// color: isSelected ? Colors.white : const Color(0xFFFFFDF8),
|
||||
// borderRadius: BorderRadius.circular(8),
|
||||
// border: Border.all(
|
||||
// color: isSelected ? const Color(0x44D4AF37) : const Color(0x22D4AF37),
|
||||
// width: isSelected ? 1.5 : 1,
|
||||
// ),
|
||||
// ),
|
||||
// child: isSelected
|
||||
// ? Padding(
|
||||
// padding: const EdgeInsets.all(12),
|
||||
// child: Column(
|
||||
// crossAxisAlignment: CrossAxisAlignment.start,
|
||||
// children: [
|
||||
// // 第一行:权益类型 + 倒计时
|
||||
// Row(
|
||||
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
// children: [
|
||||
// Text(
|
||||
// item.rightTypeName,
|
||||
// style: const TextStyle(
|
||||
// fontSize: 14,
|
||||
// fontFamily: 'Inter',
|
||||
// fontWeight: FontWeight.w600,
|
||||
// color: Color(0xFF5D4037),
|
||||
// ),
|
||||
// ),
|
||||
// Row(
|
||||
// children: [
|
||||
// const Icon(
|
||||
// Icons.timer_outlined,
|
||||
// size: 14,
|
||||
// color: Color(0xFFD4AF37),
|
||||
// ),
|
||||
// const SizedBox(width: 4),
|
||||
// Text(
|
||||
// countdown,
|
||||
// style: const TextStyle(
|
||||
// fontSize: 12,
|
||||
// fontFamily: 'Consolas',
|
||||
// fontWeight: FontWeight.w600,
|
||||
// color: Color(0xFFD4AF37),
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// const SizedBox(height: 8),
|
||||
// // 第二行:金额信息
|
||||
// Text(
|
||||
// amountText,
|
||||
// style: const TextStyle(
|
||||
// fontSize: 16,
|
||||
// fontFamily: 'Inter',
|
||||
// fontWeight: FontWeight.w700,
|
||||
// color: Color(0xFF5D4037),
|
||||
// ),
|
||||
// ),
|
||||
// // 第三行:备注信息
|
||||
// if (item.memo.isNotEmpty) ...[
|
||||
// const SizedBox(height: 4),
|
||||
// Text(
|
||||
// item.memo,
|
||||
// style: const TextStyle(
|
||||
// fontSize: 11,
|
||||
// fontFamily: 'Inter',
|
||||
// color: Color(0x995D4037),
|
||||
// ),
|
||||
// maxLines: 2,
|
||||
// overflow: TextOverflow.ellipsis,
|
||||
// ),
|
||||
// ],
|
||||
// ],
|
||||
// ),
|
||||
// )
|
||||
// : Padding(
|
||||
// // 未选中状态:只显示卡片头部预览
|
||||
// padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
|
||||
// child: Row(
|
||||
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
// children: [
|
||||
// Text(
|
||||
// item.rightTypeName,
|
||||
// style: const TextStyle(
|
||||
// fontSize: 13,
|
||||
// fontFamily: 'Inter',
|
||||
// fontWeight: FontWeight.w500,
|
||||
// color: Color(0xFF5D4037),
|
||||
// ),
|
||||
// ),
|
||||
// Text(
|
||||
// amountText,
|
||||
// style: const TextStyle(
|
||||
// fontSize: 13,
|
||||
// fontFamily: 'Inter',
|
||||
// fontWeight: FontWeight.w600,
|
||||
// color: Color(0xFFD4AF37),
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// );
|
||||
// }
|
||||
|
||||
// 构建金额显示文本
|
||||
final List<String> amountParts = [];
|
||||
if (item.usdtAmount > 0) {
|
||||
amountParts.add('${_formatNumber(item.usdtAmount)} 绿积分');
|
||||
}
|
||||
if (item.hashpowerAmount > 0) {
|
||||
amountParts.add('${_formatNumber(item.hashpowerAmount)} 算力');
|
||||
}
|
||||
final amountText = amountParts.isNotEmpty ? amountParts.join(' ') : '0 绿积分';
|
||||
|
||||
return Container(
|
||||
height: isSelected ? 110 : 48,
|
||||
decoration: BoxDecoration(
|
||||
color: isSelected ? Colors.white : const Color(0xFFFFFDF8),
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
border: Border.all(
|
||||
color: isSelected ? const Color(0x44D4AF37) : const Color(0x22D4AF37),
|
||||
width: isSelected ? 1.5 : 1,
|
||||
),
|
||||
),
|
||||
child: isSelected
|
||||
? Padding(
|
||||
padding: const EdgeInsets.all(12),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
// 第一行:权益类型 + 倒计时
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
item.rightTypeName,
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
fontFamily: 'Inter',
|
||||
fontWeight: FontWeight.w600,
|
||||
color: Color(0xFF5D4037),
|
||||
),
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
const Icon(
|
||||
Icons.timer_outlined,
|
||||
size: 14,
|
||||
color: Color(0xFFD4AF37),
|
||||
),
|
||||
const SizedBox(width: 4),
|
||||
Text(
|
||||
countdown,
|
||||
style: const TextStyle(
|
||||
fontSize: 12,
|
||||
fontFamily: 'Consolas',
|
||||
fontWeight: FontWeight.w600,
|
||||
color: Color(0xFFD4AF37),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
// 第二行:金额信息
|
||||
Text(
|
||||
amountText,
|
||||
style: const TextStyle(
|
||||
fontSize: 16,
|
||||
fontFamily: 'Inter',
|
||||
fontWeight: FontWeight.w700,
|
||||
color: Color(0xFF5D4037),
|
||||
),
|
||||
),
|
||||
// 第三行:备注信息
|
||||
if (item.memo.isNotEmpty) ...[
|
||||
const SizedBox(height: 4),
|
||||
Text(
|
||||
item.memo,
|
||||
style: const TextStyle(
|
||||
fontSize: 11,
|
||||
fontFamily: 'Inter',
|
||||
color: Color(0x995D4037),
|
||||
),
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
],
|
||||
],
|
||||
),
|
||||
)
|
||||
: Padding(
|
||||
// 未选中状态:只显示卡片头部预览
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
item.rightTypeName,
|
||||
style: const TextStyle(
|
||||
fontSize: 13,
|
||||
fontFamily: 'Inter',
|
||||
fontWeight: FontWeight.w500,
|
||||
color: Color(0xFF5D4037),
|
||||
),
|
||||
),
|
||||
Text(
|
||||
amountText,
|
||||
style: const TextStyle(
|
||||
fontSize: 13,
|
||||
fontFamily: 'Inter',
|
||||
fontWeight: FontWeight.w600,
|
||||
color: Color(0xFFD4AF37),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/// 构建单条待领取奖励项(保留用于其他可能用途)
|
||||
/// 构建单条待领取奖励项
|
||||
Widget _buildPendingRewardItem(PendingRewardItem item) {
|
||||
// 确保剩余时间不为负数
|
||||
final remainingSeconds = item.remainingSeconds > 0 ? item.remainingSeconds : 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue