|
|
|
@ -594,8 +594,8 @@ class AgentView extends StatelessWidget { |
|
|
|
child: Divider( |
|
|
|
height: 1, |
|
|
|
thickness: 0.8, |
|
|
|
indent: 12, |
|
|
|
endIndent: 12, |
|
|
|
indent: 0, |
|
|
|
endIndent: 0, |
|
|
|
color: isDarkMode ? Colors.grey[700] : Colors.grey[300], |
|
|
|
), |
|
|
|
), |
|
|
|
@ -611,101 +611,130 @@ class AgentView extends StatelessWidget { |
|
|
|
// 实现举报功能 |
|
|
|
showModalBottomSheet( |
|
|
|
context: context, |
|
|
|
isScrollControlled: true, // 关键:允许弹窗随键盘移动 |
|
|
|
backgroundColor: |
|
|
|
isDarkMode ? AppColors.cardBackground : Colors.white, |
|
|
|
shape: RoundedRectangleBorder( |
|
|
|
borderRadius: BorderRadius.vertical(top: Radius.circular(16.r)), |
|
|
|
), |
|
|
|
builder: (BuildContext context) { |
|
|
|
return Container( |
|
|
|
padding: EdgeInsets.all(16.w), |
|
|
|
child: Column( |
|
|
|
mainAxisSize: MainAxisSize.min, |
|
|
|
crossAxisAlignment: CrossAxisAlignment.stretch, |
|
|
|
children: [ |
|
|
|
Row( |
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween, |
|
|
|
return Padding( |
|
|
|
// 添加底部内边距以容纳键盘 |
|
|
|
padding: EdgeInsets.only( |
|
|
|
bottom: MediaQuery.of(context).viewInsets.bottom, |
|
|
|
), |
|
|
|
child: Container( |
|
|
|
padding: EdgeInsets.all(16.w), |
|
|
|
child: SingleChildScrollView( |
|
|
|
// 添加滚动视图 |
|
|
|
child: Column( |
|
|
|
mainAxisSize: MainAxisSize.min, |
|
|
|
crossAxisAlignment: CrossAxisAlignment.stretch, |
|
|
|
children: [ |
|
|
|
Text( |
|
|
|
'举报', |
|
|
|
style: TextStyle( |
|
|
|
fontSize: 18.sp, |
|
|
|
fontWeight: FontWeight.bold, |
|
|
|
color: isDarkMode ? Colors.white : Colors.black, |
|
|
|
), |
|
|
|
Stack( |
|
|
|
alignment: Alignment.center, |
|
|
|
children: [ |
|
|
|
Center( |
|
|
|
child: Text( |
|
|
|
'举报', |
|
|
|
style: TextStyle( |
|
|
|
fontSize: 18.sp, |
|
|
|
fontWeight: FontWeight.bold, |
|
|
|
color: isDarkMode |
|
|
|
? Colors.white |
|
|
|
: Colors.black, |
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
SizedBox( |
|
|
|
height: 20.w, |
|
|
|
), |
|
|
|
Positioned( |
|
|
|
right: 0, |
|
|
|
child: IconButton( |
|
|
|
icon: Icon( |
|
|
|
Icons.close, |
|
|
|
color: isDarkMode |
|
|
|
? Colors.grey[400] |
|
|
|
: Colors.black54, |
|
|
|
), |
|
|
|
onPressed: () => Navigator.pop(context), |
|
|
|
), |
|
|
|
), |
|
|
|
], |
|
|
|
), |
|
|
|
IconButton( |
|
|
|
icon: Icon( |
|
|
|
Icons.close, |
|
|
|
color: |
|
|
|
isDarkMode ? Colors.white70 : Colors.black54, |
|
|
|
Container( |
|
|
|
padding: EdgeInsets.symmetric(horizontal: 12.w), |
|
|
|
margin: EdgeInsets.only(bottom: 10.w), |
|
|
|
child: Divider( |
|
|
|
height: 1, |
|
|
|
color: Colors.grey[300], |
|
|
|
), |
|
|
|
onPressed: () => Navigator.pop(context), |
|
|
|
), |
|
|
|
], |
|
|
|
), |
|
|
|
SizedBox(height: 16.h), |
|
|
|
Wrap( |
|
|
|
spacing: 8.w, |
|
|
|
runSpacing: 8.h, |
|
|
|
children: [ |
|
|
|
_buildReportChip('有害/不安全', isDarkMode), |
|
|
|
_buildReportChip('色情低俗', isDarkMode), |
|
|
|
_buildReportChip('误导攻击', isDarkMode), |
|
|
|
_buildReportChip('违法犯罪', isDarkMode), |
|
|
|
_buildReportChip('隐私相关', isDarkMode), |
|
|
|
_buildReportChip('侵犯我的著作权、名誉权等', isDarkMode), |
|
|
|
_buildReportChip('其他', isDarkMode), |
|
|
|
], |
|
|
|
), |
|
|
|
SizedBox(height: 16.h), |
|
|
|
Container( |
|
|
|
padding: EdgeInsets.all(12.w), |
|
|
|
decoration: BoxDecoration( |
|
|
|
color: |
|
|
|
isDarkMode ? Colors.grey[800] : Colors.grey[200], |
|
|
|
borderRadius: BorderRadius.circular(8.r), |
|
|
|
), |
|
|
|
child: TextField( |
|
|
|
maxLines: 3, |
|
|
|
style: TextStyle( |
|
|
|
color: isDarkMode ? Colors.white : Colors.black, |
|
|
|
Wrap( |
|
|
|
spacing: 8.w, |
|
|
|
runSpacing: 8.h, |
|
|
|
children: [ |
|
|
|
_buildReportChip('有害/不安全', isDarkMode), |
|
|
|
_buildReportChip('色情低俗', isDarkMode), |
|
|
|
_buildReportChip('误导攻击', isDarkMode), |
|
|
|
_buildReportChip('违法犯罪', isDarkMode), |
|
|
|
_buildReportChip('隐私相关', isDarkMode), |
|
|
|
_buildReportChip('侵犯我的著作权、名誉权等', isDarkMode), |
|
|
|
_buildReportChip('其他', isDarkMode), |
|
|
|
], |
|
|
|
), |
|
|
|
decoration: InputDecoration( |
|
|
|
hintText: '我们想知道你举报的原因,你可以描述你遇到的问题。', |
|
|
|
hintStyle: TextStyle( |
|
|
|
color: |
|
|
|
isDarkMode ? Colors.white70 : Colors.black54, |
|
|
|
fontSize: 14.sp, |
|
|
|
SizedBox(height: 16.h), |
|
|
|
Container( |
|
|
|
padding: EdgeInsets.all(12.w), |
|
|
|
decoration: BoxDecoration( |
|
|
|
color: isDarkMode |
|
|
|
? Colors.grey[800] |
|
|
|
: Colors.grey[200], |
|
|
|
borderRadius: BorderRadius.circular(8.r), |
|
|
|
), |
|
|
|
child: TextField( |
|
|
|
maxLines: 3, |
|
|
|
style: TextStyle( |
|
|
|
color: isDarkMode ? Colors.white : Colors.black, |
|
|
|
), |
|
|
|
decoration: InputDecoration( |
|
|
|
hintText: '我们想知道你举报的原因,你可以描述你遇到的问题。', |
|
|
|
hintStyle: TextStyle( |
|
|
|
color: isDarkMode |
|
|
|
? Colors.white70 |
|
|
|
: Colors.black54, |
|
|
|
fontSize: 14.sp, |
|
|
|
), |
|
|
|
border: InputBorder.none, |
|
|
|
), |
|
|
|
), |
|
|
|
border: InputBorder.none, |
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
SizedBox(height: 14.h), |
|
|
|
ElevatedButton( |
|
|
|
style: ElevatedButton.styleFrom( |
|
|
|
backgroundColor: Colors.blue, |
|
|
|
foregroundColor: Colors.white, |
|
|
|
padding: EdgeInsets.symmetric(vertical: 12.h), |
|
|
|
shape: RoundedRectangleBorder( |
|
|
|
borderRadius: BorderRadius.circular(8.r), |
|
|
|
SizedBox(height: 14.h), |
|
|
|
ElevatedButton( |
|
|
|
style: ElevatedButton.styleFrom( |
|
|
|
backgroundColor: Colors.blue, |
|
|
|
foregroundColor: Colors.white, |
|
|
|
padding: EdgeInsets.symmetric(vertical: 12.h), |
|
|
|
shape: RoundedRectangleBorder( |
|
|
|
borderRadius: BorderRadius.circular(8.r), |
|
|
|
), |
|
|
|
), |
|
|
|
child: Text('提交'), |
|
|
|
onPressed: () { |
|
|
|
Navigator.pop(context); |
|
|
|
Get.snackbar( |
|
|
|
'提示', |
|
|
|
'举报已提交,我们会尽快处理', |
|
|
|
backgroundColor: Colors.green.withOpacity(0.8), |
|
|
|
colorText: Colors.white, |
|
|
|
); |
|
|
|
}, |
|
|
|
), |
|
|
|
), |
|
|
|
child: Text('提交'), |
|
|
|
onPressed: () { |
|
|
|
// 处理举报提交逻辑 |
|
|
|
Navigator.pop(context); |
|
|
|
Get.snackbar( |
|
|
|
'提示', |
|
|
|
'举报已提交,我们会尽快处理', |
|
|
|
backgroundColor: Colors.green.withOpacity(0.8), |
|
|
|
colorText: Colors.white, |
|
|
|
); |
|
|
|
}, |
|
|
|
SizedBox(height: 8.h), |
|
|
|
], |
|
|
|
), |
|
|
|
SizedBox(height: 8.h), |
|
|
|
], |
|
|
|
), |
|
|
|
), |
|
|
|
); |
|
|
|
}, |
|
|
|
|