import 'package:flutter/material.dart'; import 'package:flutter_html/flutter_html.dart'; import 'package:qhd_prevention/customWidget/custom_alert_dialog.dart'; import 'package:qhd_prevention/customWidget/custom_button.dart'; import 'package:qhd_prevention/customWidget/toast_util.dart'; import 'package:qhd_prevention/http/modules/notif_api.dart'; import 'package:qhd_prevention/pages/mine/webViewPage.dart'; import 'package:qhd_prevention/pages/my_appbar.dart'; import 'package:qhd_prevention/tools/h_colors.dart'; import 'package:qhd_prevention/tools/tools.dart'; import 'package:webview_flutter/webview_flutter.dart'; import '../../http/ApiService.dart'; class NotifDetailPage extends StatefulWidget { const NotifDetailPage(this.item, this.selectedTab, {super.key,required this.onClose}); final Function(String) onClose; // 回调函数 final dynamic item; final int selectedTab; @override State createState() => _NotifDetailPageState(item,selectedTab,onClose); } class _NotifDetailPageState extends State { _NotifDetailPageState(this.item, this.selectedTab,this.onClose); final Function(String) onClose; // 回调函数 final dynamic item; final int selectedTab; String title=""; String time=""; String text=""; bool isShowReply=false; String replyText=""; String noticeReadId=''; @override void initState() { super.initState(); if(0==selectedTab){ _getNotifDetail(); }else{ _getNotifEnterpriseDetail(); } } Future _getNotifDetail() async { // LoadingDialogHelper.show(); try { final result = await NotifApi.getNoticeDetail(item['noticeId']); if (result['success']) { final dynamic newList = result['data'] ; setState(() { title= newList['title']??''; time= newList['publishTime']??''; text= newList['content']??''; isShowReply=newList['requireReply']==1?true:false; noticeReadId=newList['noticeReadId']??''; replyText=newList['replyContent']??''; }); if(newList['readStatus']!='1'){ final resultTwo = await NotifApi.saveReadNoticeDetail(item['noticeId']); if (result['success']) { noticeReadId = resultTwo['data'] ?? ''; } } } } catch (e) { print('加载出错: $e'); } } Future _getNotifEnterpriseDetail() async { // LoadingDialogHelper.show(); try { // final result = await HiddenDangerApi.getNotifEnterpriseDetail(item['NOTICECORPUSERID_ID']); // if (result['result'] == 'success') { // final dynamic newList = result['pd'] ; // setState(() { // title= newList['SYNOPSIS']; // time= newList['CREATTIME']; // text= newList['CONTENT']; // }); // } } catch (e) { print('加载出错: $e'); } } @override Widget build(BuildContext context) { return Scaffold( appBar: MyAppbar(title: "通知详情"), body: SafeArea( child: Container( // color: Colors.white, child: Padding( padding: EdgeInsets.all(10), child: Card( child: Container( width: double.infinity, // 铺满父容器 color: Colors.white, padding: const EdgeInsets.all(15), child: SingleChildScrollView( child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, // 左对齐 children: [ Padding( padding: EdgeInsets.only(left: 10,right: 10), child: Text(title,style: TextStyle(color: Colors.black,fontSize: 16,fontWeight: FontWeight.bold),), ), SizedBox(height: 8), Padding( padding: EdgeInsets.only(left: 10,right: 10), child: Text(time,), ), SizedBox(height: 8), Html( data: text, ), SizedBox(height: 8), if(isShowReply&&replyText.isEmpty) CustomButton( height: 35, margin: EdgeInsets.only(right: 10), onPressed: () async { final confirmed = await CustomAlertDialog.showInput( context, title: "回复", hintText: '输入内容', cancelText: '关闭', confirmText: '确定', ); if (confirmed != null&&confirmed.isNotEmpty) { //确定回复 // ToastUtil.showNormal(context, confirmed); _replyContent(confirmed); } }, backgroundColor: h_AppBarColor(), textStyle: const TextStyle(color: Colors.white), buttonStyle: ButtonStyleType.primary, text: '回复', ), ], ), ), ), ), ), ), ), ); } @override void dispose() { // TODO: implement dispose super.dispose(); onClose('关闭详情'); // 触发回调 } Future _replyContent(String content) async { try { LoadingDialogHelper.show(); final result = await NotifApi.replyContent(noticeReadId,content); LoadingDialogHelper.hide(); if (result['success']) { ToastUtil.showNormal(context, '回复成功'); Navigator.pop(context); // onClose('关闭详情'); // 触发回调 } } catch (e) { print('加载出错: $e'); } } }