Browse Source

消息ui更改

dart3_last
wurong 2 years ago
parent
commit
772113ed15
  1. 702
      lib/message/system_message.dart

702
lib/message/system_message.dart

@ -28,13 +28,13 @@ class _SystemMessagePage extends State<SystemMessagePage> {
ApiService apiService; ApiService apiService;
int pageNum = 1; int pageNum = 1;
List<Message> messages = []; List<Message> messages = [];
Map <String,int> msgNumber = { Map<String, int> msgNumber = {
"1":0, "1": 0,
"2":0, "2": 0,
"3":0, "3": 0,
"4":0, "4": 0,
"5":0, "5": 0,
"6":0, "6": 0,
}; };
int state = 0; int state = 0;
@ -75,7 +75,7 @@ class _SystemMessagePage extends State<SystemMessagePage> {
List<Message> message = []; List<Message> message = [];
message.addAll(baseData.data.list); message.addAll(baseData.data.list);
message.forEach((element) { message.forEach((element) {
if(element.typed==2 || element.typed==3){ if (element.typed == 2 || element.typed == 3) {
messages.add(element); messages.add(element);
} }
}); });
@ -102,14 +102,15 @@ class _SystemMessagePage extends State<SystemMessagePage> {
token: value.getString("token"), token: value.getString("token"),
); );
} }
BaseData<List<MsgStats>> baseData = await apiService.stats().catchError((onError) {}); BaseData<List<MsgStats>> baseData =
await apiService.stats().catchError((onError) {});
if (baseData != null && baseData.isSuccess) { if (baseData != null && baseData.isSuccess) {
setState(() { setState(() {
msgNumber.forEach((key, value) { msgNumber.forEach((key, value) {
msgNumber[key] = 0; msgNumber[key] = 0;
}); });
baseData.data.forEach((element) { baseData.data.forEach((element) {
if(msgNumber.containsKey(element.name)){ if (msgNumber.containsKey(element.name)) {
msgNumber[element.name] = element.number; msgNumber[element.name] = element.number;
} }
}); });
@ -125,34 +126,34 @@ class _SystemMessagePage extends State<SystemMessagePage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: MyAppBar( // appBar: MyAppBar(
background: Colors.white, // background: Colors.white,
leadingColor: Colors.black, // leadingColor: Colors.black,
title: S.of(context).xiaoxi, // title: S.of(context).xiaoxi,
titleSize: 18.sp, // titleSize: 18.sp,
titleColor: Colors.black, // titleColor: Colors.black,
actions: [ // actions: [
Container( // Container(
margin: EdgeInsets.only(right: 16.w), // margin: EdgeInsets.only(right: 16.w),
alignment: Alignment.centerRight, // alignment: Alignment.centerRight,
child: GestureDetector( // child: GestureDetector(
onTap: () { // onTap: () {
setState(() { // setState(() {
queryMsgStats(); // queryMsgStats();
}); // });
}, // },
child: Text( // child: Text(
S.of(context).biaoweiyidu, // S.of(context).biaoweiyidu,
style: TextStyle( // style: TextStyle(
fontSize: 16.sp, // fontSize: 16.sp,
fontWeight:MyFontWeight.semi_bold, // fontWeight:MyFontWeight.semi_bold,
color: Color(0xFF353535), // color: Color(0xFF353535),
), // ),
), // ),
), // ),
), // ),
], // ],
), // ),
body: SmartRefresher( body: SmartRefresher(
enablePullDown: true, enablePullDown: true,
enablePullUp: true, enablePullUp: true,
@ -161,7 +162,7 @@ class _SystemMessagePage extends State<SystemMessagePage> {
footer: CustomFooter( footer: CustomFooter(
loadStyle: LoadStyle.ShowWhenLoading, loadStyle: LoadStyle.ShowWhenLoading,
builder: (BuildContext context, LoadStatus mode) { builder: (BuildContext context, LoadStatus mode) {
return (messages.length == 0)?Container():MyFooter(mode); return (messages.length == 0) ? Container() : MyFooter(mode);
}, },
), ),
controller: _refreshController, controller: _refreshController,
@ -177,262 +178,314 @@ class _SystemMessagePage extends State<SystemMessagePage> {
child: Container( child: Container(
child: Column( child: Column(
children: [ children: [
Container(
color: Colors.white,
padding: EdgeInsets.only(
top: MediaQuery.of(context).padding.top + 10.h,
bottom: 15.h,right: 16.w),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
Navigator.of(context).pop();
},
child: Container(
alignment: Alignment.centerRight,
margin: EdgeInsets.only(left: 12,),
padding: EdgeInsets.all(6),
child: Icon(
Icons.arrow_back_ios,
color: Colors.black,
size: 24,
),
),
),
Spacer(),
Expanded(
child: Text(
S.of(context).xiaoxi,
style: TextStyle(
color: Colors.black,
fontSize: 16.sp,
fontWeight: MyFontWeight.regular,
),
)),
GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
setState(() {
queryMsgStats();
});
},
child: Container(
padding: EdgeInsets.symmetric(horizontal: 10.w),
child: Text(
S.of(context).biaoweiyidu,
style: TextStyle(
color: Colors.black,
fontSize: 16.sp,
fontWeight: FontWeight.bold,
),
),
),
),
],
),
),
newsSurvey(), newsSurvey(),
SizedBox(height: 16.h,), SizedBox(
height: 16.h,
),
buildMessage(), buildMessage(),
], ],
), ),
), ),
), ),
), ),
), ),
); );
} }
Widget newsSurvey(){ Widget newsSurvey() {
return Container( return Container(
color: Colors.white, color: Colors.white,
padding: EdgeInsets.only(top: 16.h,bottom: 16.h), padding: EdgeInsets.only(top: 16.h, bottom: 16.h),
child: Row( child: Row(
children: [ children: [
Expanded(child: GestureDetector( Expanded(
onTap: (){ child: GestureDetector(
Navigator.of(context) onTap: () {
.pushNamed('/router/system_details',arguments: {"msgType":5}).then((value) { Navigator.of(context).pushNamed('/router/system_details',
setState(() { arguments: {"msgType": 5}).then((value) {
msgNumber["5"] = 0; setState(() {
msgNumber["5"] = 0;
});
}); });
}); },
}, child: Column(
child:Column( children: [
children: [ Stack(
Stack( children: [
children: [ Image.asset(
Image.asset( "assets/image/icon_z.webp",
"assets/image/icon_z.webp", width: 40,
width: 40, height: 40,
height: 40,
),
if(msgNumber["5"].toString() != "0")
Container(
width:48,
alignment: Alignment.topRight,
child:Container(
width:20,
height:17,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(100),
border: Border.all(
width: 1,
color: Colors.white,
style: BorderStyle.solid,
),
color:Color(0xFFFF441A),
), ),
child:RoundButton( if (msgNumber["5"].toString() != "0")
text:msgNumber["5"].toString(), Container(
textColor: Colors.white, width: 48,
fontWeight: MyFontWeight.regular, alignment: Alignment.topRight,
backgroup: Color(0xFFFF441A), child: Container(
fontSize:8.sp, width: 20,
radius: 100, height: 17,
) decoration: BoxDecoration(
borderRadius: BorderRadius.circular(100),
border: Border.all(
width: 1,
color: Colors.white,
style: BorderStyle.solid,
),
color: Color(0xFFFF441A),
),
child: RoundButton(
text: msgNumber["5"].toString(),
textColor: Colors.white,
fontWeight: MyFontWeight.regular,
backgroup: Color(0xFFFF441A),
fontSize: 8.sp,
radius: 100,
)),
)
],
), ),
) SizedBox(height: 6.h),
], Text(
), S.of(context).dianzan,
SizedBox(height: 6.h), style: TextStyle(
Text( fontSize: 14.sp,
S.of(context).dianzan, fontWeight: MyFontWeight.medium,
style: TextStyle( color: Color(0xFF060606),
fontSize: 14.sp,
fontWeight:MyFontWeight.medium,
color: Color(0xFF060606),
),
)
],
)
)
),
Expanded(child:
GestureDetector(
onTap: (){
Navigator.of(context)
.pushNamed('/router/system_details',arguments: {"msgType":6}).then((value) {
setState(() {
msgNumber["6"] = 0;
});
});
},
child: Column(
children: [
Stack(
children: [
Image.asset(
"assets/image/icon_pl.webp",
width: 40,
height: 40,
), ),
if(msgNumber["6"].toString() != "0") )
Container( ],
width:48, ))),
alignment: Alignment.topRight, Expanded(
child:Container( child: GestureDetector(
width:16, onTap: () {
height:16, Navigator.of(context).pushNamed('/router/system_details',
decoration: BoxDecoration( arguments: {"msgType": 6}).then((value) {
borderRadius: BorderRadius.circular(100), setState(() {
border: Border.all( msgNumber["6"] = 0;
width: 1, });
color: Colors.white, });
style: BorderStyle.solid, },
), child: Column(
color:Color(0xFFFF441A), children: [
), Stack(
child:RoundButton( children: [
text: msgNumber["6"].toString(), Image.asset(
textColor: Colors.white, "assets/image/icon_pl.webp",
fontWeight: MyFontWeight.regular, width: 40,
backgroup: Color(0xFFFF441A), height: 40,
fontSize:8.sp,
radius: 100,
)
), ),
) if (msgNumber["6"].toString() != "0")
], Container(
), width: 48,
SizedBox(height: 6.h), alignment: Alignment.topRight,
Text( child: Container(
S.of(context).pinglun, width: 16,
style: TextStyle( height: 16,
fontSize: 14.sp, decoration: BoxDecoration(
fontWeight:MyFontWeight.medium, borderRadius: BorderRadius.circular(100),
color: Color(0xFF060606), border: Border.all(
width: 1,
color: Colors.white,
style: BorderStyle.solid,
),
color: Color(0xFFFF441A),
),
child: RoundButton(
text: msgNumber["6"].toString(),
textColor: Colors.white,
fontWeight: MyFontWeight.regular,
backgroup: Color(0xFFFF441A),
fontSize: 8.sp,
radius: 100,
)),
)
],
), ),
), SizedBox(height: 6.h),
], Text(
) S.of(context).pinglun,
)), style: TextStyle(
Expanded(child: fontSize: 14.sp,
GestureDetector( fontWeight: MyFontWeight.medium,
onTap: (){ color: Color(0xFF060606),
Navigator.of(context)
.pushNamed('/router/system_details',arguments: {"msgType":4}).then((value) {
setState(() {
msgNumber["4"] = 0;
});
});
},
child:Column(
children: [
Stack(
children: [
Image.asset(
"assets/image/icon_gz.webp",
width: 40,
height: 40,
), ),
if(msgNumber["4"].toString() != "0") ),
Container( ],
width:48, ))),
alignment: Alignment.topRight, Expanded(
child:Container( child: GestureDetector(
width:16, onTap: () {
height:16, Navigator.of(context).pushNamed('/router/system_details',
decoration: BoxDecoration( arguments: {"msgType": 4}).then((value) {
borderRadius: BorderRadius.circular(100), setState(() {
border: Border.all( msgNumber["4"] = 0;
width: 1, });
color: Colors.white, });
style: BorderStyle.solid, },
), child: Column(
color:Color(0xFFFF441A), children: [
), Stack(
child:RoundButton( children: [
text: msgNumber["4"].toString(), Image.asset(
textColor: Colors.white, "assets/image/icon_gz.webp",
fontWeight: MyFontWeight.regular, width: 40,
backgroup: Color(0xFFFF441A), height: 40,
fontSize:8.sp,
radius: 100,
)
), ),
) if (msgNumber["4"].toString() != "0")
], Container(
), width: 48,
SizedBox(height: 6.h), alignment: Alignment.topRight,
Text( child: Container(
S.of(context).guanzhu, width: 16,
style: TextStyle( height: 16,
fontSize: 14.sp, decoration: BoxDecoration(
fontWeight:MyFontWeight.medium, borderRadius: BorderRadius.circular(100),
color: Color(0xFF060606), border: Border.all(
width: 1,
color: Colors.white,
style: BorderStyle.solid,
),
color: Color(0xFFFF441A),
),
child: RoundButton(
text: msgNumber["4"].toString(),
textColor: Colors.white,
fontWeight: MyFontWeight.regular,
backgroup: Color(0xFFFF441A),
fontSize: 8.sp,
radius: 100,
)),
)
],
), ),
), SizedBox(height: 6.h),
], Text(
) S.of(context).guanzhu,
) style: TextStyle(
), fontSize: 14.sp,
fontWeight: MyFontWeight.medium,
color: Color(0xFF060606),
),
),
],
))),
], ],
), ),
); );
} }
Widget buildMessage(){ Widget buildMessage() {
return Container( return Container(
color: Colors.white, color: Colors.white,
width: double.infinity, width: double.infinity,
padding: EdgeInsets.all(20.w), padding: EdgeInsets.all(20.w),
child:Column( child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround, mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text( Text(
S.of(context).xitongxiaoxi, S.of(context).xitongxiaoxi,
style: TextStyle( style: TextStyle(
fontSize: 16.sp, fontSize: 16.sp,
fontWeight:MyFontWeight.semi_bold, fontWeight: MyFontWeight.semi_bold,
color: Colors.black, color: Colors.black,
),
), ),
), (messages == null || messages.length == 0)
(messages == null || messages.length == 0) ? NoDataView(
? NoDataView( src: "assets/image/icon_empty.webp",
src: "assets/image/icon_empty.webp", isShowBtn: false,
isShowBtn: false, text: S.of(context).haimeiyouxiaoxi,
text: S.of(context).haimeiyouxiaoxi, fontSize: 16.sp,
fontSize: 16.sp, margin: EdgeInsets.only(top: 120.h),
margin: EdgeInsets.only(top: 120.h), )
) : ListView.builder(
:ListView.builder( padding: EdgeInsets.only(top: 16),
padding: EdgeInsets.only(top: 16), itemCount: messages.length,
itemCount: messages.length, shrinkWrap: true,
shrinkWrap: true, physics: NeverScrollableScrollPhysics(),
physics: NeverScrollableScrollPhysics(), itemBuilder: (context, position) {
itemBuilder: (context, position) { return GestureDetector(
return GestureDetector( onTap: () {
onTap: () { if (messages[position].typed == 2)
if(messages[position].typed == 2) Navigator.of(context).pushNamed(
Navigator.of(context) '/router/system_details',
.pushNamed('/router/system_details',arguments: {"msgType":2}).then((value) { arguments: {"msgType": 2}).then((value) {
setState(() { setState(() {
msgNumber["2"] = 0; msgNumber["2"] = 0;
}); });
}); });
else if(messages[position].typed == 3) else if (messages[position].typed == 3)
Navigator.of(context) Navigator.of(context).pushNamed(
.pushNamed('/router/system_details',arguments: {"msgType":3}).then((value) { '/router/system_details',
setState(() { arguments: {"msgType": 3}).then((value) {
msgNumber["3"] = 0; setState(() {
}); msgNumber["3"] = 0;
}); });
}, });
child: buildMessageItem(messages[position]), },
); child: buildMessageItem(messages[position]),
}), );
], }),
) ],
); ));
} }
Widget buildMessageItem(Message message) { Widget buildMessageItem(Message message) {
@ -464,26 +517,28 @@ class _SystemMessagePage extends State<SystemMessagePage> {
(message.typed == 1) (message.typed == 1)
? "assets/image/icon_system_message.webp" ? "assets/image/icon_system_message.webp"
: (message.typed == 2) : (message.typed == 2)
? "assets/image/icon_system_message.webp" ? "assets/image/icon_system_message.webp"
: "assets/image/c_z.webp", : "assets/image/c_z.webp",
width: 40.w, width: 40.w,
height: 40.h, height: 40.h,
), ),
SizedBox( SizedBox(
width:12.w, width: 12.w,
), ),
Expanded(child:Column( Expanded(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Row( Row(
children: [ children: [
Expanded(child:Text( Expanded(
child: Text(
(message.typed == 1) (message.typed == 1)
? S.of(context).xitongtongzhi ? S.of(context).xitongtongzhi
: (message.typed == 2) : (message.typed == 2)
? S.of(context).dingdanxiaoxi ? S.of(context).dingdanxiaoxi
: S.of(context).chongzhixiaoxi, : S.of(context).chongzhixiaoxi,
style: TextStyle( style: TextStyle(
fontSize: 14.sp, fontSize: 14.sp,
fontWeight: MyFontWeight.semi_bold, fontWeight: MyFontWeight.semi_bold,
@ -499,64 +554,67 @@ class _SystemMessagePage extends State<SystemMessagePage> {
), ),
], ],
), ),
SizedBox(height:4.h,), SizedBox(
(message.typed != 3) ? height: 4.h,
Row(
mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(child:
Text(
S.of(context).ninyouyigexindedingdan,
style: TextStyle(
fontSize: 10.sp,
color: Color(0xFF353535),
),
),),
if(msgNumber["2"].toString() != "0")
RoundButton(
width: 16,
height: 16,
text:msgNumber["2"].toString(),
textColor: Colors.white,
fontWeight: MyFontWeight.regular,
backgroup: Color(0xFFFF441A),
fontSize:10.sp,
radius: 100,
),
],
):
Row(
mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(child:
Text(
message.content,
style: TextStyle(
fontSize: 10.sp,
color: Color(0xFF353535),
),
)),
if(msgNumber["3"].toString() != "0")
RoundButton(
width: 16,
height: 16,
text:msgNumber["3"].toString(),
textColor: Colors.white,
fontWeight: MyFontWeight.regular,
backgroup: Color(0xFFFF441A),
fontSize:10.sp,
radius: 100,
),
],
), ),
(message.typed != 3)
? Row(
mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: Text(
S.of(context).ninyouyigexindedingdan,
style: TextStyle(
fontSize: 10.sp,
color: Color(0xFF353535),
),
),
),
if (msgNumber["2"].toString() != "0")
RoundButton(
width: 16,
height: 16,
text: msgNumber["2"].toString(),
textColor: Colors.white,
fontWeight: MyFontWeight.regular,
backgroup: Color(0xFFFF441A),
fontSize: 10.sp,
radius: 100,
),
],
)
: Row(
mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: Text(
message.content,
style: TextStyle(
fontSize: 10.sp,
color: Color(0xFF353535),
),
)),
if (msgNumber["3"].toString() != "0")
RoundButton(
width: 16,
height: 16,
text: msgNumber["3"].toString(),
textColor: Colors.white,
fontWeight: MyFontWeight.regular,
backgroup: Color(0xFFFF441A),
fontSize: 10.sp,
radius: 100,
),
],
),
], ],
)), )),
], ],
), ),
Container( Container(
margin: EdgeInsets.only(top: 16.h,bottom:8.h), margin: EdgeInsets.only(top: 16.h, bottom: 8.h),
height: 1.h, height: 1.h,
width: double.infinity, width: double.infinity,
color: Color(0xFFF7F7F7), color: Color(0xFFF7F7F7),

Loading…
Cancel
Save