Browse Source

Merge remote-tracking branch 'origin/remove_uniapp' into remove_uniapp

# Conflicts:
#	lib/mine/recharge_page.dart
#	lib/retrofit/min_api.g.dart
#	lib/retrofit/retrofit_api.g.dart
#	lib/settlement/settlement.dart
remove_uniapp
fmk 3 years ago
parent
commit
d16810d1cd
  1. BIN
      assets/image/2x/icon_mine_edit.png
  2. BIN
      assets/image/2x/ju_bao.png
  3. BIN
      assets/image/3x/icon_mine_edit.png
  4. BIN
      assets/image/3x/ju_bao.png
  5. BIN
      assets/image/icon_mine_edit.png
  6. BIN
      assets/image/ju_bao.png
  7. 1
      assets/svg/ju_b.svg
  8. 4
      lib/address/edit_address_page.dart
  9. 6
      lib/community/community_child_page.dart
  10. 2
      lib/community/community_view/class_list_view.dart
  11. 378
      lib/community/community_view/community_dynamic.dart
  12. 2
      lib/community/community_view/home_class.dart
  13. 5
      lib/community/headlines/article_page.dart
  14. 4
      lib/community/new_community_details.dart
  15. 219
      lib/community/release_dynamic.dart
  16. 98
      lib/community/report/report_notice.dart
  17. 195
      lib/community/report/report_page.dart
  18. 51
      lib/community/report/report_success.dart
  19. 40
      lib/home/home_page.dart
  20. 15
      lib/main.dart
  21. 99
      lib/mine/edit_signature.dart
  22. 3
      lib/mine/mine_page.dart
  23. 60
      lib/mine/mine_view/mine_item.dart
  24. 738
      lib/mine/personal_page.dart
  25. 5
      lib/mine/release_page.dart
  26. 61
      lib/mine/user_info_page.dart
  27. 50
      lib/retrofit/data/activity_pos.dart
  28. 426
      lib/retrofit/data/article.dart
  29. 15
      lib/retrofit/data/comunity_comment.dart
  30. 134
      lib/retrofit/data/member_Infor.dart
  31. 10
      lib/retrofit/data/user_info.dart
  32. 4
      lib/retrofit/min_api.dart
  33. 2
      lib/retrofit/min_api.g.dart
  34. 21
      lib/retrofit/retrofit_api.dart
  35. 45
      lib/retrofit/retrofit_api.g.dart
  36. 2
      lib/store/store_order.dart
  37. 113
      lib/view_widget/activity_poster.dart
  38. 8
      lib/view_widget/mine_vip_view.dart
  39. 2
      lib/web/web_view/web_content.dart

BIN
assets/image/2x/icon_mine_edit.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
assets/image/2x/ju_bao.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
assets/image/3x/icon_mine_edit.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
assets/image/3x/ju_bao.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
assets/image/icon_mine_edit.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 576 B

After

Width:  |  Height:  |  Size: 707 B

BIN
assets/image/ju_bao.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

1
assets/svg/ju_b.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1646216602750" class="icon" viewBox="0 0 1127 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5637" xmlns:xlink="http://www.w3.org/1999/xlink" width="220.1171875" height="200"><defs><style type="text/css"></style></defs><path d="M1108.468296 824.890547C1159.055032 910.219597 1097.227863 1024 990.429373 1024L130.432879 1024C29.258031 1024-32.574625 910.219597 18.012112 824.890547L450.825613 68.266574C473.306472 22.754136 518.276424 0 563.240888 0 608.209469 0 653.173934 22.754136 675.660283 68.266574L1108.468296 824.890547 1108.468296 824.890547 1108.468296 824.890547 1108.468296 824.890547ZM1020.384123 877.110641 1019.583053 875.735153 586.77504 119.111177 583.854223 113.62523C580.333998 106.500274 573.244216 102.4 563.240888 102.4 553.240806 102.4 546.151071 106.500212 542.636068 113.61633L539.710577 119.111663 106.096287 877.110641C95.301134 895.319767 109.937021 921.6 130.432879 921.6L990.429373 921.6C1016.30634 921.6 1031.298263 895.520476 1020.384123 877.110641L1020.384123 877.110641 1020.384123 877.110641 1020.384123 877.110641ZM558.08319 307.2C532.482248 307.2 512 322.819385 512 342.344809L512 579.251379C512 598.776801 532.482248 614.4 558.08319 614.4L568.321812 614.4C593.922749 614.4 614.4 598.776801 614.4 579.251379L614.4 342.344809C614.4 322.819385 593.922749 307.2 568.321812 307.2L558.08319 307.2 558.08319 307.2 558.08319 307.2 558.08319 307.2ZM512 766.885176C512 780.001705 517.522432 793.032632 526.999818 802.305669 536.477199 811.577487 549.797038 816.975247 563.200625 816.975247 576.602962 816.975247 589.927798 811.577487 599.405184 802.305669 608.882565 793.032632 614.4 780.001705 614.4 766.885176 614.4 753.772319 608.882565 740.741391 599.405184 731.469573 589.927798 722.19776 576.602962 716.8 563.200625 716.8 549.797038 716.8 536.477199 722.19776 526.999818 731.469573 517.522432 740.741391 512 753.772319 512 766.885176L512 766.885176 512 766.885176 512 766.885176Z" p-id="5638" fill="#515151"></path></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

4
lib/address/edit_address_page.dart

@ -82,7 +82,7 @@ class _EditAddressPage extends State<EditAddressPage> {
bottomRight: Radius.circular(8),
),
),
child: Expanded(child:Column(
child:Column(
children: [
editItem(
S.of(context).xingming,
@ -114,7 +114,7 @@ class _EditAddressPage extends State<EditAddressPage> {
houseNumberController,
false),
],
),),
),
),
InkWell(

6
lib/community/community_child_page.dart

@ -62,6 +62,7 @@ class _CommunityChildPage extends State<CommunityChildPage> with AutomaticKeepAl
}
else pageNum = 1;
BaseData<PageInfo<ComunityComment>> baseData = await apiService.trendList({
"mid":"",
"onlyFollow": widget.typeStr == "关注" ? true : false,
"onlyMe": false,
"pageNum": pageNum,
@ -83,11 +84,12 @@ class _CommunityChildPage extends State<CommunityChildPage> with AutomaticKeepAl
article.id = element.id;
article.content = jsonEncode(element.subjectInfo);
article.mainTitle =element.subject;
article.isFollow = element.selfFollow;
article.followed = element.selfFollow;
article.authorHeadImg = element.memberInfo?.avatar;
article.authorName = element.memberInfo?.nickname;
article.location = element.location;
article.createTime = element.createTime;
article.updateUser = element.memberInfo?.mid;
article.author = element.memberInfo?.mid;
article.viewers = element?.viewers;
article.likes = element?.likes;
article.comments = element?.comments;

2
lib/community/community_view/class_list_view.dart

@ -94,7 +94,7 @@ class _ClassListView extends State<ClassListView> {
child: ClipRRect(
child:
Opacity(
opacity: 0.6,
opacity: 0.7,
child:MImage(
classList.coverImg,
width: double.infinity,

378
lib/community/community_view/community_dynamic.dart

@ -4,6 +4,8 @@ import 'package:chewie/chewie.dart';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:flutter_svg/svg.dart';
import 'package:huixiang/generated/l10n.dart';
import 'package:huixiang/retrofit/data/article.dart';
import 'package:huixiang/retrofit/data/base_data.dart';
import 'package:chewie/src/chewie_progress_colors.dart' as chewie;
@ -14,7 +16,11 @@ import 'package:huixiang/view_widget/custom_image.dart';
import 'package:huixiang/view_widget/icon_text.dart';
import 'package:huixiang/view_widget/round_button.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:huixiang/view_widget/share_dialog.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:sharesdk_plugin/sharesdk_defines.dart';
import 'package:sharesdk_plugin/sharesdk_interface.dart';
import 'package:sharesdk_plugin/sharesdk_map.dart';
import 'package:video_player/video_player.dart';
import '../photo_view_gallery_screen.dart';
@ -121,7 +127,7 @@ class _CommunityDynamic extends State<CommunityDynamic> {
alignment: Alignment.center);
setState(() {});
} else {
// SmartDialog.showToast(baseData.msg, alignment: Alignment.center);
SmartDialog.showToast(baseData.msg, alignment: Alignment.center);
}
}
@ -171,29 +177,36 @@ class _CommunityDynamic extends State<CommunityDynamic> {
child: Row(
children: [
GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PhotoViewGalleryScreen(
images: [(widget?.article?.authorHeadImg ?? "").isEmpty?
"https://lmg.jj20.com/up/allimg/tx30/09041130358711081.jpg":widget?.article?.authorHeadImg
], //list
index: 0, //index
),
));
},
child:
MImage(
(widget?.article?.authorHeadImg ?? "https://lmg.jj20.com/up/allimg/tx30/09041130358711081.jpg"),
width: 44,
height: 44,
isCircle: true,
fit: BoxFit.cover,
errorSrc: "assets/image/default_1.png",
fadeSrc: "assets/image/default_1.png",
),
),
onTap: () {
// Navigator.push(
// context,
// MaterialPageRoute(
// builder: (context) => PhotoViewGalleryScreen(
// images: [(widget?.article?.authorHeadImg ?? "").isEmpty?
// "https://lmg.jj20.com/up/allimg/tx30/09041130358711081.jpg":widget?.article?.authorHeadImg
// ], //list
// index: 0, //index
// ),
// ));
Navigator.of(context)
.pushNamed('/router/personal_page', arguments: {
"memberId":
(widget.article.author == widget.userId)
? "0"
: widget.article.author,
});
},
child: MImage(
(widget?.article?.authorHeadImg ??
"https://lmg.jj20.com/up/allimg/tx30/09041130358711081.jpg"),
width: 44,
height: 44,
isCircle: true,
fit: BoxFit.cover,
errorSrc: "assets/image/default_1.png",
fadeSrc: "assets/image/default_1.png",
),
),
SizedBox(
width: 8,
),
@ -222,14 +235,15 @@ class _CommunityDynamic extends State<CommunityDynamic> {
],
),
),
if (widget?.article?.updateUser != widget.userId ?? "")
if (widget?.article?.author != widget.userId ?? "")
GestureDetector(
onTap: () {
setState(() {
if (widget.commentType == 0) {
widget.article.isFollow = !(widget.article.isFollow ?? false);
_vipFollow(widget.article.updateUser,
widget.article.isFollow ?? false);
widget.article.followed =
!(widget.article.followed ?? false);
_vipFollow(widget.article.author,
widget.article.followed ?? false);
} else {
showDeleteDialog();
}
@ -242,21 +256,21 @@ class _CommunityDynamic extends State<CommunityDynamic> {
alignment: Alignment.center,
child: RoundButton(
height: 25.h,
backgroup: (widget?.article?.isFollow ?? false)
backgroup: (widget?.article?.followed ?? false)
? Color(0xFFE6E6E6)
: Color(0xFF32A060),
textColor: (widget?.article?.isFollow ?? false)
textColor: (widget?.article?.followed ?? false)
? Color(0xFF808080)
: Colors.white,
text: (widget?.article?.isFollow ?? false)
text: (widget?.article?.followed ?? false)
? "已关注"
: "关注",
radius: 20,
icons: Icon(
(widget?.article?.isFollow ?? false)
(widget?.article?.followed ?? false)
? Icons.check
: Icons.add,
color: (widget?.article?.isFollow ?? false)
color: (widget?.article?.followed ?? false)
? Color(0xFF808080)
: Colors.white,
size: 15,
@ -287,47 +301,134 @@ class _CommunityDynamic extends State<CommunityDynamic> {
),
),
buildMedia(widget?.article?.content),
SizedBox(
height:8.h,
),
if (widget.article.location != "")
Row(
children: [
Icon(
Icons.place,
size: 16,
color: Color(0xFFB3B2B2),
),
SizedBox(
width: 2,
),
Expanded(
child: Text(
widget?.article?.location ?? "",
overflow: TextOverflow.ellipsis,
maxLines: 1,
style: TextStyle(
fontSize: 12.sp,
fontWeight: MyFontWeight.medium,
color: Color(0xFFB3B2B2),
),
)),
],
),
if (!widget.isDetails)
SizedBox(
height: 12.h,
height: 5.h,
),
if (!widget.isDetails)
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
IconText(
(widget.article != null)
? "${widget.article.viewers}"
: "",
space: 4.w,
leftImage: "assets/svg/liulanliang.svg",
iconSize: 16,
textStyle: TextStyle(
fontSize: 14.sp,
),
),
IconText(
"${widget.article.comments ?? 0}",
space: 4.w,
leftImage: "assets/svg/pinglun.svg",
iconSize: 16,
textStyle: TextStyle(
fontSize: 14.sp,
Expanded(
child: Row(
// mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.center,
children: [
SvgPicture.asset(
"assets/svg/liulanliang.svg",
width: 16,
height: 16,
),
SizedBox(
width: 5,
),
Text(
(widget.article != null)
? "${widget.article.viewers}"
: "",
style: TextStyle(
fontSize: 14.sp,
fontWeight: MyFontWeight.regular,
color: Color(0xFF1A1A1A),
),
),
],
),
),
GestureDetector(
onTap: () {},
child: IconText(
"${widget.article.likes ?? 0}",
space: 4.w,
leftImage: "assets/svg/xihuan.svg",
iconSize: 16,
textStyle: TextStyle(
fontSize: 14.sp,
Expanded(
child: Row(
// mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.center,
children: [
SvgPicture.asset(
"assets/svg/pinglun.svg",
width: 16,
height: 16,
),
SizedBox(
width: 5,
),
Text(
"${widget.article.comments ?? 0}",
style: TextStyle(
fontSize: 14.sp,
fontWeight: MyFontWeight.regular,
color: Color(0xFF1A1A1A),
),
),
],
)),
Expanded(
child: Row(
// mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.center,
children: [
SvgPicture.asset(
"assets/svg/xihuan.svg",
width: 16,
height: 16,
),
SizedBox(
width: 5,
),
Text(
"${widget.article.likes ?? 0}",
style: TextStyle(
fontSize: 14.sp,
fontWeight: MyFontWeight.regular,
color: Color(0xFF1A1A1A),
),
),
],
),
),
// Expanded(
// child: GestureDetector(
// behavior: HitTestBehavior.opaque,
// onTap: () {
// setState(() {
// choiceShowBottomSheet();
// });
// },
// child: Container(
// alignment: Alignment.center,
// child: Text(
// "...",
// style: TextStyle(
// fontSize: 18.sp,
// fontWeight: MyFontWeight.medium,
// color: Colors.black,
// ),
// ),
// ))),
],
),
],
@ -341,6 +442,59 @@ class _CommunityDynamic extends State<CommunityDynamic> {
);
}
share() async {
SSDKMap params = SSDKMap()
..setGeneral(
widget?.article?.mainTitle ?? "",
"",
[
widget?.article?.content != null &&
widget.article.content.contains("images\":[\"")
? jsonDecode(widget.article.content)["images"][0]
: "",
widget?.article?.content != null &&
widget.article.content.contains("video\":[\"")
? jsonDecode(widget.article.content)["video"][0]
: "",
],
widget?.article?.content != null &&
widget.article.content.contains("images\":[\"")
? jsonDecode(widget.article.content)["images"][0]
: "",
widget?.article?.content != null &&
widget.article.content.contains("video\":[\"")
? jsonDecode(widget.article.content)["video"][0]
: "",
buildShareUrl(),
"",
"",
"",
"",
SSDKContentTypes.webpage,
);
showModalBottomSheet(
context: context,
backgroundColor: Colors.transparent,
builder: (context) {
return ShareDialog((platform) {
if (platform == ShareSDKPlatforms.line) {
params.map["type"] = SSDKContentTypes.text.value;
params.map["text"] =
"${widget?.article?.mainTitle ?? ""} ${buildShareUrl()}";
}
SharesdkPlugin.share(platform, params,
(state, userData, contentEntity, error) {
print("share!$state");
});
});
});
}
String buildShareUrl() {
return "https://hx.lotus-wallet.com/index.html?id=${widget.article.id}&type=";
}
///
Widget buildMedia(String subjectInfo) {
if (subjectInfo == null || !subjectInfo.startsWith("{")) {
@ -370,7 +524,7 @@ class _CommunityDynamic extends State<CommunityDynamic> {
cnt["images"][0],
fit: BoxFit.contain,
radius: BorderRadius.circular(2),
height:MediaQuery.of(context).size.width/1.5,
height: MediaQuery.of(context).size.width / 1.5,
errorSrc: "assets/image/default_2_1.png",
fadeSrc: "assets/image/default_2_1.png",
)),
@ -592,6 +746,106 @@ class _CommunityDynamic extends State<CommunityDynamic> {
);
}
///
choiceShowBottomSheet() {
showModalBottomSheet(
builder: (BuildContext context) {
return buildBottomSheetWidget(context);
},
backgroundColor: Colors.transparent,
context: context);
}
Widget buildBottomSheetWidget(BuildContext context) {
return Container(
padding: EdgeInsets.all(16),
decoration: new BoxDecoration(
color: Colors.white,
borderRadius: new BorderRadius.only(
topLeft: const Radius.circular(25.0),
topRight: const Radius.circular(25.0))),
child: Container(
width: 100.w,
height: 100.h,
child: Column(
children: [
SizedBox(
height: 10,
),
GestureDetector(
onTap: () {
setState(() {
Navigator.of(context).pop();
share();
});
},
child: Container(
child: Row(
children: [
SizedBox(
width: 4,
),
Image.asset(
"assets/image/icon_share.png",
fit: BoxFit.cover,
width: 25,
height: 25,
color: Color(0xff515151),
),
SizedBox(
width: 12,
),
Text(
"分享",
style: TextStyle(
fontSize: 17.sp,
fontWeight: MyFontWeight.medium,
color: Color(0xFF1A1A1A),
),
),
],
),
)),
Container(
margin: EdgeInsets.symmetric(vertical: 12),
height: 1.h,
color: Color(0xFFF7F7F7),
),
GestureDetector(
onTap: () {
setState(() {
Navigator.of(context)
.popAndPushNamed('/router/report_page');
});
},
child: Row(
children: [
SizedBox(
width: 4,
),
SvgPicture.asset(
"assets/svg/ju_b.svg",
width: 20,
height: 20,
),
SizedBox(
width: 15,
),
Text(
"举报",
style: TextStyle(
fontSize: 17.sp,
fontWeight: MyFontWeight.medium,
color: Color(0xFF1A1A1A),
),
),
],
))
],
),
));
}
@override
void didChangeDependencies() {
if (widget.heightFun != null)

2
lib/community/community_view/home_class.dart

@ -149,7 +149,7 @@ class _HomeClass extends State<HomeClass> {
),
child: ClipRRect(
child: Opacity(
opacity: 0.6,
opacity: 0.7,
child: MImage(
collect.coverImg,
width: double.infinity,

5
lib/community/headlines/article_page.dart

@ -3,18 +3,13 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:huixiang/community/headlines/headlines_banner.dart';
import 'package:huixiang/community/headlines/headlines_collection.dart';
import 'package:huixiang/main.dart';
import 'package:huixiang/retrofit/data/article.dart';
import 'package:huixiang/retrofit/data/banner.dart';
import 'package:huixiang/retrofit/data/base_data.dart';
import 'package:huixiang/retrofit/data/brand.dart';
import 'package:huixiang/retrofit/data/category_select_list.dart';
import 'package:huixiang/retrofit/data/collect_class_list.dart';
import 'package:huixiang/retrofit/data/course_list.dart';
import 'package:huixiang/retrofit/data/headlines_list.dart';
import 'package:huixiang/retrofit/data/headlines_list_details.dart';
import 'package:huixiang/retrofit/data/page.dart';
import 'package:huixiang/retrofit/retrofit_api.dart';
import 'package:huixiang/utils/event_type.dart';

4
lib/community/new_community_details.dart

@ -216,13 +216,13 @@ class _NewCommunityDetails extends State<NewCommunityDetails> with WidgetsBindin
],
),
),
if (article?.updateUser != userId)
if (article?.author != userId)
GestureDetector(
onTap: () {
setState(() {
article.liked =
!(article.liked ?? false);
_vipFollow(article.updateUser,
_vipFollow(article.author,
article.liked ?? false);
});
},

219
lib/community/release_dynamic.dart

@ -6,6 +6,7 @@ import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:huixiang/generated/l10n.dart';
import 'package:huixiang/retrofit/data/address.dart';
import 'package:huixiang/retrofit/data/base_data.dart';
import 'package:huixiang/retrofit/data/upload_result.dart';
import 'package:huixiang/retrofit/retrofit_api.dart';
@ -28,8 +29,12 @@ class _ReleaseDynamic extends State<ReleaseDynamic> {
List<Medias> mediaPaths = [];
bool isRelease = false;
int dynamicType = 0;
TextEditingController textEditingController = TextEditingController();
TextEditingController textController = TextEditingController();
TextEditingController addressController = TextEditingController();
// TextEditingController houseNumberController = TextEditingController();
ApiService apiService;
Map addressMap;
Address preAddress;
@override
void initState() {
@ -88,7 +93,7 @@ class _ReleaseDynamic extends State<ReleaseDynamic> {
Container(
width: double.infinity,
margin: EdgeInsets.all(16),
padding: EdgeInsets.only(left: 16,right: 16),
padding: EdgeInsets.only(left: 16, right: 16),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
@ -98,21 +103,25 @@ class _ReleaseDynamic extends State<ReleaseDynamic> {
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontWeight: MyFontWeight.semi_bold,
fontSize:18.sp,
fontSize: 18.sp,
color: Colors.red,
),
),
SizedBox(width: 10,),
Expanded(child: Text(
"用户发布内容需要等待系统审核,审核通过后才会在推荐广场展示",
maxLines:2,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontWeight: MyFontWeight.medium,
fontSize: 14.sp,
color: Colors.black,
SizedBox(
width: 10,
),
Expanded(
child: Text(
"用户发布内容需要等待系统审核,审核通过后才会在推荐广场展示",
maxLines: 2,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontWeight: MyFontWeight.medium,
fontSize: 14.sp,
color: Colors.black,
),
),
),)
)
],
),
),
@ -150,7 +159,7 @@ class _ReleaseDynamic extends State<ReleaseDynamic> {
}
releaseDynamic() async {
String dynamicText = textEditingController.text;
String dynamicText = textController.text;
if (dynamicText == null || dynamicText == "") {
SmartDialog.showToast("请输入您此刻的想法!");
return;
@ -185,6 +194,11 @@ class _ReleaseDynamic extends State<ReleaseDynamic> {
"subjectType": subjectType,
"video": remoteVideoUrl,
"coverImg": remoteVideoCoverImg,
"latitude": "",
"location": addressController.text == ""
? ""
: addressController.text,
"longitude": "",
}).catchError((onError) {
EasyLoading.dismiss();
});
@ -225,10 +239,7 @@ class _ReleaseDynamic extends State<ReleaseDynamic> {
thumbnail != "" &&
await File(thumbnail).exists()) {
BaseData<UploadResult> baseData = await apiService.upload(
File(thumbnail),
123123123,
dynamicType == 2
);
File(thumbnail), 123123123, dynamicType == 2);
if (baseData != null && baseData.isSuccess) {
UploadResult uploadResult = baseData.data;
mediaPaths[mediaPaths.indexOf(element)].thumbPath =
@ -236,11 +247,8 @@ class _ReleaseDynamic extends State<ReleaseDynamic> {
}
}
}
BaseData<UploadResult> baseData = await apiService.upload(
file,
123123123,
dynamicType == 2
);
BaseData<UploadResult> baseData =
await apiService.upload(file, 123123123, dynamicType == 2);
if (baseData != null && baseData.isSuccess) {
UploadResult uploadResult = baseData.data;
mediaPaths[mediaPaths.indexOf(element)].remotePath =
@ -278,7 +286,6 @@ class _ReleaseDynamic extends State<ReleaseDynamic> {
///
showImagePicker() {
FocusScope.of(context).requestFocus(FocusNode());
if (dynamicType == 1) {
@ -422,50 +429,136 @@ class _ReleaseDynamic extends State<ReleaseDynamic> {
setState(() {});
}
toMap() async {
Navigator.of(context).pushNamed('/router/address_map_page').then(
(value) => {
setState(() {
if (value != null) {
addressMap = value;
addressController.text = "${(value as Map)['cityInfo']}";
if (preAddress != null) {
preAddress.cityInfo = addressMap['cityInfo'];
}
// houseNumberController.text = "${(value as Map)['address']}";
}
})
},
);
}
///
Widget buildEdit() {
return Container(
height: 174.h,
margin: EdgeInsets.symmetric(horizontal: 16.w),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: 1.w,
color: Color(0xFFD8D8D8),
style: BorderStyle.solid,
),
),
),
child: TextField(
controller: textEditingController,
maxLines: 5,
style: TextStyle(
fontSize: 14.sp,
fontWeight: MyFontWeight.medium,
color: Color(0xFF4C4C4C),
),
onChanged: (text) {
bool release = text != "" && text != null;
if (release != isRelease) {
isRelease = release;
setState(() {});
}
},
decoration: InputDecoration(
contentPadding: EdgeInsets.symmetric(
vertical: 18.h,
),
errorBorder: InputBorder.none,
focusedBorder: InputBorder.none,
enabledBorder: InputBorder.none,
hintText: "此时此刻的想法~",
hintStyle: TextStyle(
fontSize: 14.sp,
color: Color(0xFFA29E9E),
// height: 174.h,
margin: EdgeInsets.symmetric(horizontal: 16.w),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: 1.w,
color: Color(0xFFD8D8D8),
style: BorderStyle.solid,
),
),
),
),
);
child: Column(
children: [
TextField(
controller: textController,
maxLines: 5,
style: TextStyle(
fontSize: 14.sp,
fontWeight: MyFontWeight.medium,
color: Color(0xFF4C4C4C),
),
onChanged: (text) {
bool release = text != "" && text != null;
if (release != isRelease) {
isRelease = release;
setState(() {});
}
},
decoration: InputDecoration(
contentPadding: EdgeInsets.symmetric(
vertical: 18.h,
),
errorBorder: InputBorder.none,
focusedBorder: InputBorder.none,
enabledBorder: InputBorder.none,
hintText: "此时此刻的想法~",
hintStyle: TextStyle(
fontSize: 14.sp,
color: Color(0xFFA29E9E),
),
),
),
Container(
width: double.infinity,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
child: GestureDetector(
onTap: () {
toMap();
},
child:Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Icon(
Icons.place,
size: 16,
color: Color(0xFFB3B2B2),
),
SizedBox(
width: 2,
),
Text(
addressController.text == ""
? "你在哪里呢?"
: addressController.text ,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 11.sp,
fontWeight: MyFontWeight.medium,
color: Color(0xFFB3B2B2),
),
),
],
),
)),
addressController.text == ""
? Container()
: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
setState(() {
addressController.text = "";
});
},
child: Container(
// color: Colors.red,
height: 21.h,
padding: EdgeInsets.only(left: 10, right: 10),
alignment: Alignment.centerRight,
child: Icon(
Icons.close,
color: Colors.black,
size: 16,
),
),
),
],
),
),
SizedBox(
height: 5,
)
],
));
}
}

98
lib/community/report/report_notice.dart

@ -0,0 +1,98 @@
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:huixiang/generated/l10n.dart';
import 'package:huixiang/retrofit/retrofit_api.dart';
import 'package:huixiang/utils/font_weight.dart';
import 'package:huixiang/view_widget/my_appbar.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
class ReportNotice extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _ReportNotice();
}
}
class _ReportNotice extends State<ReportNotice> {
ApiService apiService;
int checkIndex = 0;
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: MyAppBar(
background: Color(0xFFFFFFFFF),
leadingColor: Colors.black,
title: "",
titleSize: 18,
titleColor: Colors.black,
),
body: Container(
width: double.infinity,
color: Color(0xFFFFFFFFF),
padding: EdgeInsets.only(left: 16, top: 10, right: 16),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: SingleChildScrollView(
physics: BouncingScrollPhysics(),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
alignment: Alignment.center,
padding: EdgeInsets.only(top: 14, bottom: 16),
child: Text(
"投诉须知",
style: TextStyle(
fontSize: 16.sp,
fontWeight: MyFontWeight.semi_bold,
color: Color(0xFF1A1A1A),
),
)),
Text(
"     为了更好地帮助您解决问题,保障您使用产品和服务的良好体验,首先您要保证您的投诉行为是基于客观事实的,是为了营造良好的社群环境,并代表您的真实感想。平台作为中立的服务者,在收到您的投诉申请后,我们会在7~15个工作日内按照相关的法律法规的规定来进行核实和处理。平台会采取合理的措施保护你的个人信息:除法律法规规定的情形外,未经用户许可,我们不会向第三方公开、透露您的相关信息。",
style: TextStyle(
fontSize: 14.sp,
height: 1.5,
fontWeight: MyFontWeight.regular,
color: Color(0xFF1A1A1A),
),
),
SizedBox(height: 4),
Text(
"     为了各用户的合法权益得以保障,相关投诉能有效提交,如平台有合理理由相信投诉存在以下情形,将有权根据实际情况调整处理方式。包括但不限于:"
"\n    (1)明知、应知不构成内容违规 而进行投诉;"
"\n    (2)平台已告知未发现内容存在违规仍不断重复投诉且无实质补充等情形;"
"\n    (3)多次或大量提交投诉,但整体通过率低或涉嫌滥用投诉;"
"\n    (4)非合理且正当理由,对平台正常处理其他用户人投诉造成不利影响的情形;"
"\n   上述行为一经发现,将不排除采取特殊的处理机制或限制措施,包括但不限于限制频次、记入非正常投诉名单、调整侵权投诉单处理顺序等,由此将可能导致侵权投诉不可高频提交、无法通过或审核评估时效延长等效果。",
style: TextStyle(
fontSize: 14.sp,
height: 1.5,
fontWeight: MyFontWeight.regular,
color: Color(0xFF1A1A1A),
),
),
],
),
),
flex: 1,
),
],
),
),
);
}
}

195
lib/community/report/report_page.dart

@ -0,0 +1,195 @@
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:huixiang/retrofit/retrofit_api.dart';
import 'package:huixiang/utils/font_weight.dart';
import 'package:huixiang/view_widget/my_appbar.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
class ReportPage extends StatefulWidget {
final Map<String, dynamic> arguments;
ReportPage({this.arguments});
@override
State<StatefulWidget> createState() {
return _ReportPage();
}
}
class _ReportPage extends State<ReportPage> {
ApiService apiService;
int checkIndex = 0;
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: MyAppBar(
background: Color(0xFFFFFFFFF),
leadingColor: Colors.black,
title: "举报",
titleSize: 18,
titleColor: Colors.black,
),
body: Container(
height: double.infinity,
color: Color(0xFFFFFFFF),
child: Stack(
children: [
SingleChildScrollView(
physics: BouncingScrollPhysics(),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: double.infinity,
color: Color(0XFFFFFFFF),
padding: EdgeInsets.only(bottom: 4, left: 16, right: 16),
child: Text.rich(
TextSpan(
children: [
TextSpan(
text: "举报",
style: TextStyle(
fontSize: 16.sp,
fontWeight: MyFontWeight.medium,
color: Color(0xFF1A1A1A),
),
),
TextSpan(
text: "@百花谷",
style: TextStyle(
fontSize: 16.sp,
fontWeight: MyFontWeight.medium,
color: Color(0xFF319E5F),
),
),
TextSpan(
text: "的动态",
style: TextStyle(
fontSize: 16.sp,
fontWeight: MyFontWeight.medium,
color: Color(0xFF1A1A1A),
),
),
],
),
),
),
report(),
],
),
),
Align(
alignment: Alignment.bottomCenter,
child: Container(
width: double.infinity,
height:95,
child: Column(
children: [
GestureDetector(
onTap: () {
Navigator.of(context)
.pushNamed('/router/report_notice');
},
child: Container(
alignment: Alignment.bottomCenter,
margin: EdgeInsets.only(bottom:25),
child: Text(
"投诉须知",
style: TextStyle(
fontSize: 14.sp,
fontWeight: MyFontWeight.regular,
color: Color(0xFF3C425C),
),
),
)),
Expanded(child:
GestureDetector(
onTap: (){
Navigator.of(context)
.pushNamed('/router/report_success');
},
child: Container(
width: double.infinity,
height:double.infinity,
color: Color(0xFF319E5F),
alignment: Alignment.center,
child: Text(
"提交",
style: TextStyle(
fontSize: 16.sp,
fontWeight: MyFontWeight.semi_bold,
color: Color(0xFFFFFFFF),
),
),
),))
],
),
))
],
),
),
);
}
Widget report() {
return Container(
padding: EdgeInsets.only(left: 16, right: 16),
child:
// (articles == null || articles.length == 0)
// ? NoDataView(
// src: "assets/image/dong_tai.png",
// isShowBtn: false,
// text: "目前暂无发布动态,要把开心的事讲出来哦~",
// fontSize: 16.sp,
// margin: EdgeInsets.only(left: 60.w, right: 60.w),
// ) :
ListView.builder(
physics: BouncingScrollPhysics(),
shrinkWrap: true,
itemBuilder: (context, position) {
return GestureDetector(
onTap: () {},
child: reportList(),
);
},
itemCount: 9,
),
);
}
Widget reportList() {
return Container(
padding: EdgeInsets.only(top: 18, bottom: 20),
color: Color(0xFFFFFFFF),
child: Row(
children: [
Image.asset(
"assets/image/icon_radio_unselected.png",
width: 16,
height: 16,
),
SizedBox(
width: 8,
),
Expanded(
child: Text(
"色情低俗",
style: TextStyle(
color: Color(0xFF353535),
fontSize: 14.sp,
fontWeight: MyFontWeight.regular),
))
],
));
}
}

51
lib/community/report/report_success.dart

@ -0,0 +1,51 @@
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:huixiang/generated/l10n.dart';
import 'package:huixiang/retrofit/retrofit_api.dart';
import 'package:huixiang/utils/font_weight.dart';
import 'package:huixiang/view_widget/my_appbar.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
class ReportSuccess extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _ReportSuccess();
}
}
class _ReportSuccess extends State<ReportSuccess> {
ApiService apiService;
int checkIndex = 0;
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: MyAppBar(
background: Color(0xFFFFFFFFF),
leadingColor: Colors.black,
title: "",
titleSize: 18,
titleColor: Colors.black,
),
body: Container(
width: double.infinity,
color: Color(0xFFFFFFFFF),
padding: EdgeInsets.only(left: 16, top: 10, right: 16),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
],
),
),
);
}
}

40
lib/home/home_page.dart

@ -16,6 +16,7 @@ import 'package:huixiang/home/home_view/sign_view.dart';
import 'package:huixiang/home/points_mall_view/points_goods_title.dart';
import 'package:huixiang/home/points_mall_view/points_goods_view.dart';
import 'package:huixiang/main.dart';
import 'package:huixiang/retrofit/data/activity_pos.dart';
import 'package:huixiang/retrofit/data/article.dart';
import 'package:huixiang/retrofit/data/banner.dart';
import 'package:huixiang/retrofit/data/base_data.dart';
@ -30,6 +31,7 @@ import 'package:huixiang/retrofit/retrofit_api.dart';
import 'package:huixiang/utils/event_type.dart';
import 'package:huixiang/utils/font_weight.dart';
import 'package:huixiang/view_widget/activity_coupons.dart';
import 'package:huixiang/view_widget/activity_poster.dart';
import 'package:huixiang/view_widget/classic_header.dart';
import 'package:huixiang/view_widget/invite_success_dialog.dart';
import 'package:huixiang/view_widget/my_appbar.dart';
@ -71,6 +73,7 @@ class HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin {
}
});
queryMsgStats();
queryActivity();
if ((widget.invite ?? "") != "" ||
widget.interviewCouponList != null &&
@ -78,6 +81,8 @@ class HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin {
if (widget.firstLoginCouponList != null && widget.firstLoginCouponList.length > 0)
showNew = true;
}
///
@ -102,6 +107,22 @@ class HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin {
);
}
///
posterShowAlertDialog(ActivityPos activityPos) {
SharedPreferences.getInstance().then((value) {
if((value.getString("ActivityPosCode") ?? "").contains("${activityPos.code}_${value.getString("userId")};"))
return;
value.setString("ActivityPosCode", "${(value.getString("ActivityPosCode")??"")}${activityPos.code}_${value.getString("userId")};");
//
showDialog(
context: context,
builder: (BuildContext context) {
return ActivityPoster(activityPos);
},
);
});
}
final SwiperController controller = SwiperController();
String categoryId;
@ -273,6 +294,25 @@ class HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin {
EasyLoading.dismiss();
}
///
queryActivity() async {
if (apiService == null) {
SharedPreferences value = await SharedPreferences.getInstance();
apiService = ApiService(
Dio(),
context: context,
token: value.getString("token"),
);
}
BaseData<ActivityPos> baseData =
await apiService.appPopup().catchError((onError) {
});
if (baseData != null && baseData.isSuccess) {
if(baseData.data?.enabled ?? true)
posterShowAlertDialog(baseData.data);
}
}
///
queryWiped(memberCouponId) async {
if (apiService == null) {

15
lib/main.dart

@ -56,6 +56,7 @@ import 'package:huixiang/settlement/settlement.dart';
import 'package:huixiang/test_page.dart';
import 'package:huixiang/union/location_map_page.dart';
import 'package:huixiang/utils/ImgCachePath.dart';
import 'package:huixiang/view_widget/activity_poster.dart';
import 'package:huixiang/web/web_page.dart';
import 'package:huixiang/union/union_details_page.dart';
@ -74,10 +75,14 @@ import 'community/community_view/class_details.dart';
import 'community/headlines/headlines_column_details.dart';
import 'community/new_community_details.dart';
import 'community/photo_view_gallery_screen.dart';
import 'community/report/report_notice.dart';
import 'community/report/report_page.dart';
import 'community/report/report_success.dart';
import 'home/guide_page.dart';
import 'home/home_view/activity_list.dart';
import 'main_page.dart';
import 'message/system_details.dart';
import 'mine/edit_signature.dart';
import 'mine/invitation_record.dart';
import 'mine/manage_address_page.dart';
import 'mine/mine_view/community_follow.dart';
@ -85,6 +90,7 @@ import 'mine/mine_vip/binding_assistant_card.dart';
import 'mine/mine_vip/legal_right_details.dart';
import 'mine/mine_vip/mine_attainment_page.dart';
import 'mine/mine_vip/mine_vip_core.dart';
import 'mine/personal_page.dart';
import 'order/exchange_write_off_page.dart';
import 'mine/release_page.dart';
import 'mine/roll_center_page.dart';
@ -298,6 +304,7 @@ Map<String, WidgetBuilder> routers = <String, WidgetBuilder>{
'/router/login_page': (context, {arguments}) =>
LoginPage(arguments: arguments),
'/router/edit_name': (context, {arguments}) => EditName(arguments: arguments),
'/router/edit_signature': (context, {arguments}) => EditSignature(arguments: arguments),
'/router/mine_card_invalid': (context, {arguments}) => MineCardInvalidPage(),
'/router/store_selector_page': (context, {arguments}) => StoreSelectorPage(),
'/router/video_playback_page': (context, {arguments}) => VideoPlaybackPage(),
@ -346,4 +353,12 @@ Map<String, WidgetBuilder> routers = <String, WidgetBuilder>{
SystemDetails(arguments: arguments),
'/router/invitation_record': (context, {arguments}) =>
InvitationRecord(),
'/router/personal_page': (context, {arguments}) =>
PersonalPage(arguments:arguments),
'/router/report_page': (context, {arguments}) =>
ReportPage(arguments:arguments),
'/router/report_notice': (context, {arguments}) =>
ReportNotice(),
'/router/report_success': (context, {arguments}) =>
ReportSuccess(),
};

99
lib/mine/edit_signature.dart

@ -0,0 +1,99 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:huixiang/generated/l10n.dart';
import 'package:huixiang/utils/font_weight.dart';
import 'package:huixiang/view_widget/my_appbar.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
class EditSignature extends StatefulWidget {
final Map<String, dynamic> arguments;
EditSignature({this.arguments});
@override
State<StatefulWidget> createState() {
return _EditSignature();
}
}
class _EditSignature extends State<EditSignature> {
TextEditingController _controller = TextEditingController();
int textLength = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: MyAppBar(
title: "个性签名",
titleColor: Colors.black,
leadingColor: Colors.black,
action: Container(
alignment: Alignment.center,
margin: EdgeInsets.only(right: 16.w),
child: GestureDetector(
onTap: () {
String signature = _controller.text;
if (signature != null && signature != "") {
Navigator.of(context).pop(signature);
} else {
SmartDialog.showToast("请输入个性签名~", alignment: Alignment.center);
}
},
child:Container(
width: 46.w,
height: 24.h,
alignment: Alignment.center,
decoration: BoxDecoration(
color: Color(0xFF319E5F),
borderRadius: BorderRadius.all(Radius.circular(4))),
child: Text(
"保存",
style: TextStyle(
color: Colors.white,
fontSize:14.sp,
fontWeight: FontWeight.bold),
),
),
),
),
),
body: Container(
margin: EdgeInsets.all(16),
child: Column(
children: [
TextField(
maxLines: 5,
controller: _controller,
keyboardType: TextInputType.text,
onChanged: (value) {
setState(() {
textLength = value.length;
});
},
maxLength: 50,
decoration: InputDecoration(
errorBorder: InputBorder.none,
focusedBorder: InputBorder.none,
enabledBorder: InputBorder.none,
hintText: widget.arguments['signature'],
// contentPadding: EdgeInsets.only(top: 12, bottom: 12, left: 12),
hintStyle: TextStyle(
fontSize: 10.sp,
color: Color(0xFFA29E9E),
),
),
textInputAction: TextInputAction.next,
),
Container(
height: 1.h,
color: Color(0xFFD8D8D8),
),
],
),
),
);
}
}

3
lib/mine/mine_page.dart

@ -46,7 +46,8 @@ class _MinePage extends State<MinePage> with AutomaticKeepAliveClientMixin {
.pushNamed('/router/login_page', arguments: {"login": "login"});
return;
}
await Navigator.of(context).pushNamed('/router/user_info_page');
// await Navigator.of(context).pushNamed('/router/user_info_page');
await Navigator.of(context).pushNamed('/router/personal_page',arguments:{"memberId":"0",});
setState(() {});
}

60
lib/mine/mine_view/mine_item.dart

@ -62,24 +62,27 @@ class _MineItem extends State<MineItem> {
),
Row(
children: [
Expanded(child: InkWell(
onTap: () {
SharedPreferences.getInstance().then((value) {
if (value.getString("token") == null ||
value.getString("token") == "") {
LoginTipsDialog().show(context);
return;
}
Navigator.of(context)
.pushNamed('/router/releasePage',
arguments: {});
});
},
child: mineItem(
S.of(context).wodedongtai,
"assets/image/dynamic.png",
),
),),
///
// Expanded(child:
// InkWell(
// onTap: () {
// SharedPreferences.getInstance().then((value) {
// if (value.getString("token") == null ||
// value.getString("token") == "") {
// LoginTipsDialog().show(context);
// return;
// }
// Navigator.of(context)
// .pushNamed('/router/releasePage',
// arguments: {});
// });
// },
// child: mineItem(
// S.of(context).wodedongtai,
// "assets/image/dynamic.png",
// ),
// ),
// ),
Expanded(child: InkWell(
onTap: () {
SharedPreferences.getInstance().then((value) {
@ -128,20 +131,20 @@ class _MineItem extends State<MineItem> {
S.of(context).guanlidizhi,
"assets/image/icon_location_address.png",
),
),)
),),
Expanded(child:InkWell(
onTap: () {
Navigator.of(context).pushNamed('/router/qr_share', arguments: {});
},
child: mineItem(
S.of(context).tuiguangma,
"assets/image/icon_mine_promotion_code.png",
),
),),
],
),
Row(
children: [
Expanded(child:InkWell(
onTap: () {
Navigator.of(context).pushNamed('/router/qr_share', arguments: {});
},
child: mineItem(
S.of(context).tuiguangma,
"assets/image/icon_mine_promotion_code.png",
),
),),
Expanded(child:InkWell(
onTap: () {
Navigator.of(context).pushNamed('/router/invitation_record', arguments: {});
@ -152,6 +155,7 @@ class _MineItem extends State<MineItem> {
),
),),
Expanded(child:Container()),
Expanded(child:Container()),
Expanded(child:Container())
],
),

738
lib/mine/personal_page.dart

@ -0,0 +1,738 @@
import 'dart:convert';
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:huixiang/community/community_view/community_dynamic.dart';
import 'package:huixiang/community/photo_view_gallery_screen.dart';
import 'package:huixiang/generated/l10n.dart';
import 'package:huixiang/retrofit/data/article.dart';
import 'package:huixiang/retrofit/data/base_data.dart';
import 'package:huixiang/retrofit/data/comunity_comment.dart';
import 'package:huixiang/retrofit/data/member_Infor.dart';
import 'package:huixiang/retrofit/data/page.dart';
import 'package:huixiang/retrofit/data/social_info.dart';
import 'package:huixiang/retrofit/data/upload_result.dart';
import 'package:huixiang/retrofit/retrofit_api.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:huixiang/utils/font_weight.dart';
import 'package:huixiang/view_widget/classic_header.dart';
import 'package:huixiang/view_widget/custom_image.dart';
import 'package:huixiang/view_widget/my_footer.dart';
import 'package:huixiang/view_widget/no_data_view.dart';
import 'package:image_pickers/image_pickers.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import 'package:shared_preferences/shared_preferences.dart';
class PersonalPage extends StatefulWidget {
final Map<String, dynamic> arguments;
PersonalPage({this.arguments});
@override
State<StatefulWidget> createState() {
return _PersonalPage();
}
}
class _PersonalPage extends State<PersonalPage> with WidgetsBindingObserver {
ApiService apiService;
final RefreshController refreshController = RefreshController();
final ScrollController scrollController = ScrollController();
var isShrink = false;
int pageNum = 1;
String userId;
List<Article> articles = [];
MemberInfor memberInfor;
String filePath;
bool isLoadMore = false;
String memberId;
Map<String, dynamic> modifyInfo = {
"background": ""
};
@override
void initState() {
super.initState();
memberId = widget.arguments["memberId"];
WidgetsBinding.instance.addObserver(this);
SharedPreferences.getInstance().then((value) => {
apiService = ApiService(Dio(),
context: context, token: value.getString('token')),
_onRefresh(),
});
}
_onRefresh() async {
queryCommunity();
queryMember(memberId);
}
///
queryMember(id) async {
if (apiService == null) {
SharedPreferences value = await SharedPreferences.getInstance();
apiService = ApiService(
Dio(),
context: context,
token: value.getString("token"),
);
}
BaseData<MemberInfor> baseData =
await apiService.memberDetail(id).catchError((error) {
refreshController.refreshFailed();
});
if (baseData != null && baseData.isSuccess) {
setState(() {
memberInfor = baseData.data;
});
refreshController.refreshCompleted();
}else {
refreshController.refreshFailed();
}
}
///
queryCommunity() async {
if (apiService == null) {
SharedPreferences value = await SharedPreferences.getInstance();
userId = value.getString('userId');
apiService = ApiService(
Dio(),
context: context,
token: value.getString("token"),
);
}
if(isLoadMore){
pageNum += 1;
isLoadMore = false;
}
else pageNum = 1;
BaseData<PageInfo<ComunityComment>> baseData = await apiService.trendList({
"mid":memberId == "0" ? userId : memberId,
"onlyFollow": false,
"onlyMe": true,
"pageNum": pageNum,
"pageSize": 10,
"searchKey": ""
}).catchError((error) {
refreshController.refreshFailed();
refreshController.loadFailed();
});
if (baseData.isSuccess) {
refreshController.refreshCompleted();
refreshController.loadComplete();
if (pageNum == 1) {
articles.clear();
}
baseData.data.list.forEach((element) {
var article = Article();
article.id = element.id;
article.content = jsonEncode(element.subjectInfo);
article.mainTitle = element.subject;
article.followed = element.selfFollow;
article.authorHeadImg = element.memberInfo?.avatar;
article.authorName = element.memberInfo?.nickname;
article.location = element.location;
article.createTime = element.createTime;
article.author = element.memberInfo?.mid;
article.viewers = element?.viewers;
article.likes = element?.likes;
article.comments = element?.comments;
articles.add(article);
});
// print("comments: ${comments.length}");
if (int.tryParse(baseData.data.total) < (pageNum * 10)) {
refreshController.loadNoData();
}
}
}
///
_toUserInfo() async {
SharedPreferences shared = await SharedPreferences.getInstance();
if (shared.getString("token") == null || shared.getString("token") == "") {
Navigator.of(context)
.pushNamed('/router/login_page', arguments: {"login": "login"});
return;
}
await Navigator.of(context).pushNamed('/router/user_info_page').then((value) {
_onRefresh();
setState(() {});
});
setState(() {});
}
///
showImagePicker() {
showCupertinoModalPopup(
context: context,
builder: (contetx) {
return CupertinoActionSheet(
title: Text(S.of(context).genghuantouxiang),
actions: [
CupertinoActionSheetAction(
child: Text(S.of(context).paizhao),
onPressed: () {
openCamera();
Navigator.of(context).pop();
},
isDefaultAction: true,
isDestructiveAction: false,
),
CupertinoActionSheetAction(
child: Text(S.of(context).xiangce),
onPressed: () {
openStorage();
Navigator.of(context).pop();
},
isDefaultAction: true,
isDestructiveAction: false,
),
],
cancelButton: CupertinoActionSheetAction(
onPressed: () {
Navigator.of(context).pop();
},
child: Text(S.of(context).quxiao),
isDestructiveAction: true,
),
);
});
}
///
openCamera() async {
if (await Permission.camera.isGranted) {
Media medias = await ImagePickers.openCamera(
cameraMimeType: CameraMimeType.photo,
cropConfig: CropConfig(
enableCrop: true,
width: 200,
height: 200,
),
compressSize: 500,
);
if (medias == null) return;
filePath = medias.path;
fileUpload();
} else {
await Permission.camera.request();
openCamera();
}
}
///
openStorage() async {
if (await Permission.storage.isGranted) {
List<Media> medias = await ImagePickers.pickerPaths(
galleryMode: GalleryMode.image,
selectCount: 1,
showGif: true,
showCamera: false,
compressSize: 500,
uiConfig: UIConfig(
uiThemeColor: Color(0xFFFFFFFF),
),
cropConfig: CropConfig(
enableCrop: true,
width: 200,
height: 200,
),
);
if (medias == null || medias.length == 0) return;
filePath = medias[0].path;
setState(() {});
fileUpload();
} else {
await Permission.storage.request();
openStorage();
}
}
///
modifyInfos() async {
var info = await apiService.editInfo(modifyInfo).catchError((onError) {});
if (info.isSuccess) {
setState(() {
SmartDialog.showToast("用户信息修改成功", alignment: Alignment.center);
});
_onRefresh();
}
}
///
fileUpload() async {
if (filePath != null && filePath != "" && await File(filePath).exists()) {
BaseData<UploadResult> baseData = await apiService.upload(File(filePath), 123123123,false).catchError((onError) {});
if (baseData != null && baseData.isSuccess) {
UploadResult uploadResult = baseData.data;
modifyInfo["background"] = uploadResult.url;
modifyInfos();
}
}
}
@override
Widget build(BuildContext context) {
return SmartRefresher(
controller: refreshController,
enablePullDown: true,
enablePullUp: true,
header: MyHeader(),
footer: CustomFooter(
builder: (context, mode) {
return MyFooter(mode);
},
),
onRefresh: _onRefresh,
onLoading: () {
isLoadMore = true;
setState(() {
_onRefresh();
});
},
physics: BouncingScrollPhysics(),
scrollController: scrollController,
child: SingleChildScrollView(
physics: BouncingScrollPhysics(),
child:Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Stack(
alignment: Alignment.bottomLeft,
children: [
Container(
height: 286,
color: Color(0xFFFFFFFF),
child: Stack(
alignment: Alignment.bottomRight,
children: [
Stack(
children: [
Positioned(
child: Container(
color: Colors.black,
child: Opacity(
opacity: 0.9,
child: MImage(
memberInfor?.background ?? "",
width: double.infinity,
height: 260.h,
fit: BoxFit.cover,
errorSrc:
"assets/image/default_1.png",
fadeSrc:
"assets/image/default_1.png",
)))),
Container(
margin: EdgeInsets.only(
top: 50.h, left: 16.w, right: 16.w),
decoration: BoxDecoration(
color: Colors.transparent,
),
child: Column(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
GestureDetector(
child: Image.asset(
"assets/image/integral_return.png",
width: 24,
height: 24,
),
onTap: () {
Navigator.of(context).pop();
},
),
],
),
),
],
),
if(memberId == "0")
Positioned(
bottom: 49.h,
right: 16.w,
child:GestureDetector(
onTap: (){
showImagePicker();
},
child:Container(
padding: EdgeInsets.only(left: 2, right: 2),
width: 59.w,
height: 21.h,
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(2),
color: Color(0x80000000),
),
child: Text(
"更换背景",
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 12.sp,
fontWeight: MyFontWeight.regular,
color: Color(0xFFFFFFFF),
),
),
),
),
),
],
),
),
homeInfo(),
],
),
Container(
color: Color(0xFFFFFFFF),
child:
Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
margin: EdgeInsets.only(
left: 86, top: 12, right: 16),
child: GestureDetector(
onTap: () {
setState(() {
isShrink = !isShrink;
});
},
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Expanded(
flex: 1,
child: Text(
memberId == "0" ? ((memberInfor?.signature == "") ? "还未编辑个性签名~" : memberInfor?.signature ?? "")
:"个性签名: ${(memberInfor?.signature == "") ? "还未编辑个性签名~" :memberInfor?.signature ?? ""}",
overflow: isShrink
? TextOverflow.visible
: TextOverflow.ellipsis,
maxLines: isShrink ? 10 : 2,
style: TextStyle(
fontSize: 12.sp,
color: Color(0xFF868686),
fontWeight:
MyFontWeight.regular,
height: 1.5),
)),
Icon(
(isShrink != null && !isShrink)
? Icons.chevron_right
: Icons.keyboard_arrow_up,
color: Colors.black,
size: 18,
),
],
),
)),
Container(
margin: EdgeInsets.only(left: 16, right: 16),
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {},
child: Container(
color: Colors.transparent,
padding: EdgeInsets.all(16),
child: Column(
children: [
Text(
memberInfor != null ? memberInfor.follow.toString() : "0",
style: TextStyle(
color: Color(0xFF353535),
fontSize: 16.sp,
fontWeight:
MyFontWeight.semi_bold,
),
),
SizedBox(
height: 4,
),
Text(
S.of(context).guanzhu,
style: TextStyle(
color: Color(0xFF353535),
fontSize: 12.sp,
fontWeight:
MyFontWeight.regular,
),
),
],
)),
),
),
Expanded(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {},
child: Container(
color: Colors.transparent,
padding: EdgeInsets.all(16),
child: Column(
children: [
Text(
memberInfor != null ? memberInfor.fans.toString() : "0",
style: TextStyle(
color: Color(0xFF353535),
fontSize: 16.sp,
fontWeight:
MyFontWeight.semi_bold,
),
),
SizedBox(
height: 4,
),
Text(
S.of(context).fensi,
style: TextStyle(
color: Color(0xFF353535),
fontSize: 12.sp,
fontWeight:
MyFontWeight.regular,
),
),
],
)),
),
),
Expanded(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {},
child: Container(
color: Colors.transparent,
padding: EdgeInsets.all(16),
child: Column(
children: [
Text(
(memberInfor?.trendTotal??0).toString(),
style: TextStyle(
color: Color(0xFF353535),
fontSize: 16.sp,
fontWeight:
MyFontWeight.semi_bold,
),
),
SizedBox(
height: 4,
),
Text(
"动态",
style: TextStyle(
color: Color(0xFF353535),
fontSize: 12.sp,
fontWeight:
MyFontWeight.regular,
),
),
],
)),
),
),
Expanded(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {},
child: Container(
color: Colors.transparent,
padding: EdgeInsets.all(16),
child: Column(
children: [
Text(
(memberInfor?.gainLikeTotal ?? 0).toString(),
style: TextStyle(
color: Color(0xFF353535),
fontSize: 16.sp,
fontWeight:
MyFontWeight.semi_bold,
),
),
SizedBox(
height: 4,
),
Text(
"获赞",
style: TextStyle(
color: Color(0xFF353535),
fontSize: 12.sp,
fontWeight:
MyFontWeight.regular,
),
),
],
)),
),
),
],
),
),
Container(
margin: EdgeInsets.all(16),
height: 1.h,
color: Color(0xFFF7F7F7),
),
Padding(
padding: EdgeInsets.only(left: 16),
child: Text(
memberId != "0" ?
"TA的动态":
"我的动态",
style: TextStyle(
color: Color(0xFF353535),
fontSize: 15.sp,
fontWeight: MyFontWeight.semi_bold,
),
)),
dynamicList()
],
),
),
],
)),
);
}
Widget homeInfo() {
return Container(
padding: EdgeInsets.only(
left: 16,
right: 16,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
GestureDetector(
onTap: (){
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PhotoViewGalleryScreen(
images: [(memberInfor?.headimg ?? "").isEmpty?
"https://lmg.jj20.com/up/allimg/tx30/09041130358711081.jpg":memberInfor?.headimg
], //list
index: 0, //index
),
));
},
child: MImage(
memberInfor?.headimg ?? "",
isCircle: true,
width: 66,
height: 66,
fit: BoxFit.cover,
errorSrc: "assets/image/default_user.png",
fadeSrc: "assets/image/default_user.png",
),
),
SizedBox(width: 10.w),
Text(
memberInfor?.nickname ?? "",
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 16.sp,
fontWeight: MyFontWeight.medium,
color: Color(0xFF353535),
),
),
SizedBox(width: 4.w),
Image.asset(
"assets/image/vip_yk.png",
width: 20,
height: 20,
),
Spacer(),
if(memberId == "0")
GestureDetector(
onTap: () {
setState(() {
_toUserInfo();
});
},
child: Container(
padding: EdgeInsets.only(left: 6, right: 6, bottom: 2, top: 2),
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(100),
border: Border.all(
width: 1,
color: Color(0xFF353535),
style: BorderStyle.solid,
),
),
child: Text(
"编辑个人资料",
style: TextStyle(
fontSize: 12.sp,
fontWeight: MyFontWeight.regular,
color: Color(0xFF353535),
),
),
),
)
],
),);
}
Widget dynamicList() {
return Container(
child: (articles == null || articles.length == 0)? NoDataView(
src: "assets/image/dong_tai.png",
isShowBtn: false,
text: "目前暂无发布动态,要把开心的事讲出来哦~",
fontSize: 16.sp,
margin: EdgeInsets.only(left: 60.w,right: 60.w),
):ListView.builder(
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemBuilder: (context, position) {
return InkWell(
child: CommunityDynamic(
articles[position],
memberId == "0" ? 1 : 0,
exitFull: () {
setState(() {
_onRefresh();
});
},
removalDynamic: () {
setState(() {
_onRefresh();
});
},
),
onTap: () {
Navigator.of(context).pushNamed(
'/router/community_details',
arguments: {
"businessId": articles[position].id,
"userId": userId,
},
).then((value) {
_onRefresh();
});
},
);
},
itemCount: articles.length,
),
);
}
}

5
lib/mine/release_page.dart

@ -55,6 +55,7 @@ class _ReleasePage extends State<ReleasePage> {
}
pageNum += 1;
BaseData<PageInfo<ComunityComment>> baseData = await apiService.trendList({
"mid":"",
"onlyFollow": false,
"onlyMe": true,
"pageNum": pageNum,
@ -76,11 +77,11 @@ class _ReleasePage extends State<ReleasePage> {
article.id = element.id;
article.content = jsonEncode(element.subjectInfo);
article.mainTitle =element.subject;
article.isFollow = element.selfFollow;
article.followed = element.selfFollow;
article.authorHeadImg = element.memberInfo?.avatar;
article.authorName = element.memberInfo?.nickname;
article.createTime = element.createTime;
article.updateUser = element.memberInfo?.mid;
article.author = element.memberInfo?.mid;
article.viewers = element?.viewers;
article.likes = element?.likes;
article.comments = element?.comments;

61
lib/mine/user_info_page.dart

@ -10,6 +10,7 @@ import 'package:huixiang/retrofit/data/upload_result.dart';
import 'package:huixiang/retrofit/data/user_info.dart';
import 'package:huixiang/retrofit/retrofit_api.dart';
import 'package:huixiang/utils/flutter_utils.dart';
import 'package:huixiang/utils/font_weight.dart';
import 'package:huixiang/view_widget/cupertino_date_picker.dart';
import 'package:huixiang/view_widget/custom_image.dart';
import 'package:huixiang/view_widget/my_appbar.dart';
@ -33,7 +34,8 @@ class _UserInfoPage extends State<UserInfoPage> {
"birth": "",
"headimg": "",
"nickname": "",
"sex": ""
"sex": "",
"signature":""
};
@override
@ -44,6 +46,7 @@ class _UserInfoPage extends State<UserInfoPage> {
user = UserInfo.fromJson(jsonDecode(value.getString('user'))),
mobile = value.getString('mobile'),
modifyInfo["nickname"] = user.nickname,
modifyInfo["signature"] = user.signature,
modifyInfo["birth"] = user.birth,
modifyInfo["headimg"] = user.headimg,
modifyInfo["sex"] = user.sex,
@ -173,17 +176,24 @@ class _UserInfoPage extends State<UserInfoPage> {
child: avatarItem(1,
(modifyInfo["nickname"]) == "" ? "回乡" : modifyInfo["nickname"]),
),
InkWell(
onTap: () {
editSignature();
},
child:avatarItem(2,
(modifyInfo["signature"]) == "" ? "还未编辑个性签名~" : modifyInfo["signature"]),
),
InkWell(
onTap:(modifyInfo["birth"] == "")?showDateSelector:(){},
child: avatarItem(
2,
3,
(modifyInfo["birth"] != null && modifyInfo["birth"] != "")
? modifyInfo["birth"]
: S.of(context).wanshanshengrixinxi_yhq),
),
avatarItem(3, mobile),
avatarItem(4, mobile),
avatarItem(
4,
5,
(age == null || age == "")
? S.of(context).wanshanshengrixinxi_nl
: S.of(context).sui(age)),
@ -202,9 +212,20 @@ class _UserInfoPage extends State<UserInfoPage> {
}
}
editSignature() async {
dynamic signature = await Navigator.of(context).pushNamed('/router/edit_signature',
arguments: {"signature": modifyInfo['signature']});
if (signature != null && signature != "") {
modifyInfo["signature"] = signature;
setState(() {});
modifyInfos();
}
}
List<String> itemLefts = [
S.current.touxiang,
S.current.yonghuming,
"个性签名",
S.current.wodeshengri,
S.current.shoujihao,
S.current.wodenianling,
@ -347,6 +368,9 @@ class _UserInfoPage extends State<UserInfoPage> {
modifyInfos() async {
var info = await apiService.editInfo(modifyInfo).catchError((onError) {});
if (info.isSuccess) {
SharedPreferences.getInstance().then((value){
value.setString('user', jsonEncode(modifyInfo));
});
setState(() {
SmartDialog.showToast("用户信息修改成功", alignment: Alignment.center);
});
@ -365,6 +389,8 @@ class _UserInfoPage extends State<UserInfoPage> {
}
}
Widget avatarItem(type, value) {
print("object: $value");
return Container(
@ -383,7 +409,8 @@ class _UserInfoPage extends State<UserInfoPage> {
flex: 1,
),
buildValue(type, value),
if (type != 4 && type != 3 && (((modifyInfo["birth"] == "")) || type != 2)) valueEnd(),
if (type != 5 && type != 4 && type != 3 && (((modifyInfo["birth"] == "")) || type != 3))
valueEnd(),
],
),
);
@ -391,17 +418,10 @@ class _UserInfoPage extends State<UserInfoPage> {
Widget valueEnd() {
return Container(
child: Row(
children: [
SizedBox(
width: 8.w,
),
Icon(
Icons.keyboard_arrow_right,
size: 20.sp,
)
],
),
child: Icon(
Icons.keyboard_arrow_right,
size: 20.sp,
)
);
}
@ -433,6 +453,8 @@ class _UserInfoPage extends State<UserInfoPage> {
} else if (type == 1) {
return Text(
value,
maxLines: 1,
overflow:TextOverflow.ellipsis,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 14.sp,
@ -440,14 +462,17 @@ class _UserInfoPage extends State<UserInfoPage> {
),
);
} else {
return Text(
return Expanded(child: Text(
value,
maxLines: 1,
overflow:TextOverflow.ellipsis,
textAlign: TextAlign.right,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 14.sp,
color: Color(0xFF727272),
),
);
));
}
}
}

50
lib/retrofit/data/activity_pos.dart

@ -0,0 +1,50 @@
/// enabled : true
/// code : "1111"
/// showImage : "https://pos.upload.gznl.top/0000/2022/03/4ca95160-aa19-46e5-ad07-8a16ca11c697.jpg"
/// jumpType : 1
/// jumpUrl : "1417675188681572352"
class ActivityPos {
ActivityPos({
bool enabled,
String code,
String showImage,
int jumpType,
String jumpUrl,}){
_enabled = enabled;
_code = code;
_showImage = showImage;
_jumpType = jumpType;
_jumpUrl = jumpUrl;
}
ActivityPos.fromJson(dynamic json) {
_enabled = json['enabled'];
_code = json['code'];
_showImage = json['showImage'];
_jumpType = json['jumpType'];
_jumpUrl = json['jumpUrl'];
}
bool _enabled;
String _code;
String _showImage;
int _jumpType;
String _jumpUrl;
bool get enabled => _enabled;
String get code => _code;
String get showImage => _showImage;
int get jumpType => _jumpType;
String get jumpUrl => _jumpUrl;
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['enabled'] = _enabled;
map['code'] = _code;
map['showImage'] = _showImage;
map['jumpType'] = _jumpType;
map['jumpUrl'] = _jumpUrl;
return map;
}
}

426
lib/retrofit/data/article.dart

@ -1,269 +1,359 @@
import 'dart:convert';
import 'package:huixiang/retrofit/data/author.dart';
import 'author.dart';
/// id : "1498607093517647872"
/// createTime : "2022-03-01 18:32:29"
/// createUser : "1495959790726152192"
/// updateTime : "2022-03-01 18:45:04"
/// updateUser : "1495959790726152192"
/// storeId : "0"
/// categoryId : "0"
/// mainTitle : "哈哈哈哈"
/// viceTitle : null
/// content : "{\"images\":[],\"video\":\"\",\"type\":\"text\"}"
/// coverImg : ""
/// author : "1495959790726152192"
/// type : 3
/// likes : 0
/// viewers : 2
/// startTime : "2022-03-01 18:32:28"
/// endTime : "2121-03-01 18:32:28"
/// isHot : false
/// state : 1
/// location : ""
/// longitude : "0.000000"
/// latitude : "0.000000"
/// remark : ""
/// isDelete : 0
/// tenantCode : ""
/// storeName : null
/// liked : false
/// followed : false
/// comments : null
/// authorName : "小帽子"
/// authorHeadImg : "https://pos.upload.gznl.top/admin/2022/02/5877a3fe-0d25-405b-a86b-7bac293ab048.jpeg"
class Article {
Article({
String id,
String createTime,
String createUser,
String updateTime,
String updateUser,
String storeId,
String categoryId,
String mainTitle,
dynamic viceTitle,
String content,
String coverImg,
dynamic author,
int type,
int likes,
int viewers,
String startTime,
String endTime,
bool isHot,
int state,
String location,
String longitude,
String latitude,
String remark,
int isDelete,
String tenantCode,
dynamic storeName,
bool liked,
bool followed,
dynamic comments,
String authorName,
String authorHeadImg,}){
_id = id;
_createTime = createTime;
_createUser = createUser;
_updateTime = updateTime;
_updateUser = updateUser;
_storeId = storeId;
_categoryId = categoryId;
_mainTitle = mainTitle;
_viceTitle = viceTitle;
_content = content;
_coverImg = coverImg;
_author = author;
_type = type;
_likes = likes;
_viewers = viewers;
_startTime = startTime;
_endTime = endTime;
_isHot = isHot;
_state = state;
_location = location;
_longitude = longitude;
_latitude = latitude;
_remark = remark;
_isDelete = isDelete;
_tenantCode = tenantCode;
_storeName = storeName;
_liked = liked;
_followed = followed;
_comments = comments;
_authorName = authorName;
_authorHeadImg = authorHeadImg;
}
Article.fromJson(dynamic json) {
_id = json['id'];
_createTime = json['createTime'];
_createUser = json['createUser'];
_updateTime = json['updateTime'];
_updateUser = json['updateUser'];
_storeId = json['storeId'];
_categoryId = json['categoryId'];
_mainTitle = json['mainTitle'];
_viceTitle = json['viceTitle'];
_content = json['content'];
_coverImg = json['coverImg'];
_author = json["author"] == null ? author : json["author"].toString().startsWith("{") ? Author.fromJson(jsonDecode(json["author"])):json["author"];
_type = json['type'];
_likes = json['likes'];
_viewers = json['viewers'];
_startTime = json['startTime'];
_endTime = json['endTime'];
_isHot = json['isHot'];
_state = json['state'];
_location = json['location'];
_longitude = json['longitude'];
_latitude = json['latitude'];
_remark = json['remark'];
_isDelete = json['isDelete'];
_tenantCode = json['tenantCode'];
_storeName = json['storeName'];
_liked = json['liked'];
_followed = json['followed'];
_comments = json['comments'];
_authorName = json['authorName'];
_authorHeadImg = json['authorHeadImg'];
}
String _id;
String _createTime;
dynamic _createUser;
String _createUser;
String _updateTime;
dynamic _updateUser;
String _updateUser;
String _storeId;
String _categoryId;
String _mainTitle;
dynamic _viceTitle;
String _content;
String _coverImg;
dynamic _author;
int _type;
int _likes;
int _viewers;
String _startTime;
String _categoryId;
String _endTime;
bool _isHot;
int _state;
String _location;
String _longitude;
String _latitude;
String _remark;
int _isDelete;
int _likes;
bool _isHot;
String _tenantCode;
dynamic _storeName;
bool _liked;
int _viewers;
int _comments;
bool _followed;
dynamic _comments;
String _authorName;
String _authorHeadImg;
bool isFollow;
dynamic _storeName;
String get id => _id;
String get createTime => _createTime;
dynamic get createUser => _createUser;
String get createUser => _createUser;
String get updateTime => _updateTime;
dynamic get updateUser => _updateUser;
String get updateUser => _updateUser;
String get storeId => _storeId;
String get categoryId => _categoryId;
String get mainTitle => _mainTitle;
dynamic get viceTitle => _viceTitle;
String get content => _content;
String get coverImg => _coverImg;
dynamic get author => _author;
int get type => _type;
int get likes => _likes;
int get viewers => _viewers;
String get startTime => _startTime;
String get categoryId => _categoryId;
String get endTime => _endTime;
bool get isHot => _isHot;
int get state => _state;
String get location => _location;
String get longitude => _longitude;
String get latitude => _latitude;
String get remark => _remark;
int get isDelete => _isDelete;
int get likes => _likes;
bool get isHot => _isHot;
String get tenantCode => _tenantCode;
dynamic get storeName => _storeName;
bool get liked => _liked;
int get viewers => _viewers;
int get comments => _comments;
bool get followed => _followed;
dynamic get comments => _comments;
String get authorName => _authorName;
String get authorHeadImg => _authorHeadImg;
dynamic get storeName => _storeName;
set id(String value) {
_id = value;
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['id'] = _id;
map['createTime'] = _createTime;
map['createUser'] = _createUser;
map['updateTime'] = _updateTime;
map['updateUser'] = _updateUser;
map['storeId'] = _storeId;
map['categoryId'] = _categoryId;
map['mainTitle'] = _mainTitle;
map['viceTitle'] = _viceTitle;
map['content'] = _content;
map['coverImg'] = _coverImg;
map["author"] = _author.toJson() ?? _author;
map['type'] = _type;
map['likes'] = _likes;
map['viewers'] = _viewers;
map['startTime'] = _startTime;
map['endTime'] = _endTime;
map['isHot'] = _isHot;
map['state'] = _state;
map['location'] = _location;
map['longitude'] = _longitude;
map['latitude'] = _latitude;
map['remark'] = _remark;
map['isDelete'] = _isDelete;
map['tenantCode'] = _tenantCode;
map['storeName'] = _storeName;
map['liked'] = _liked;
map['followed'] = _followed;
map['comments'] = _comments;
map['authorName'] = _authorName;
map['authorHeadImg'] = _authorHeadImg;
return map;
}
set likes(int value) {
_likes = value;
set authorHeadImg(String value) {
_authorHeadImg = value;
}
set authorName(String value) {
_authorName = value;
}
set comments(dynamic value) {
_comments = value;
}
set followed(bool value) {
_followed = value;
}
set liked(bool value) {
_liked = value;
}
set viewers(int value) {
_viewers = value;
set storeName(dynamic value) {
_storeName = value;
}
set comments(int value) {
_comments = value;
set tenantCode(String value) {
_tenantCode = value;
}
set authorName(String value) {
_authorName = value;
set isDelete(int value) {
_isDelete = value;
}
set authorHeadImg(String value) {
_authorHeadImg = value;
set remark(String value) {
_remark = value;
}
Article({
String id,
String createTime,
dynamic createUser,
String updateTime,
dynamic updateUser,
String storeId,
String mainTitle,
dynamic viceTitle,
String content,
String coverImg,
Author author,
int type,
String startTime,
String endTime,
int state,
int isDelete,
int likes,
bool isHot,
int viewers,
int comments,
String authorName,
String authorHeadImg,
dynamic storeName}){
_id = id;
_createTime = createTime;
_createUser = createUser;
_updateTime = updateTime;
_updateUser = updateUser;
_storeId = storeId;
_mainTitle = mainTitle;
_viceTitle = viceTitle;
_content = content;
_coverImg = coverImg;
_author = author;
_type = type;
_startTime = startTime;
_categoryId = categoryId;
_endTime = endTime;
_state = state;
_isDelete = isDelete;
_likes = likes;
_isHot = isHot;
_liked = liked;
_viewers = viewers;
_comments = comments;
_authorName = authorName;
_authorHeadImg = authorHeadImg;
_storeName = storeName;
}
set latitude(String value) {
_latitude = value;
}
Article.fromJson(dynamic json) {
_id = json["id"];
_createTime = json["createTime"];
_createUser = json["createUser"];
_updateTime = json["updateTime"];
_updateUser = json["updateUser"];
_storeId = json["storeId"];
_mainTitle = json["mainTitle"];
_viceTitle = json["viceTitle"];
_content = json["content"];
_coverImg = json["coverImg"];
_author = json["author"] == null ? null : json["author"].toString().startsWith("{") ? Author.fromJson(jsonDecode(json["author"])):null;
_type = json["type"];
_startTime = json["startTime"];
_categoryId = json["categoryId"];
_endTime = json["endTime"];
_state = json["state"];
_isDelete = json["isDelete"];
_likes = json["likes"];
_isHot = json["isHot"];
_liked = json["liked"];
_viewers = json["viewers"];
_comments = json["comments"];
_authorName = json["authorName"];
_authorHeadImg = json["authorHeadImg"];
_storeName = json["storeName"];
set longitude(String value) {
_longitude = value;
}
Map<String, dynamic> toJson() {
var map = <String, dynamic>{};
map["id"] = _id;
map["createTime"] = _createTime;
map["createUser"] = _createUser;
map["updateTime"] = _updateTime;
map["updateUser"] = _updateUser;
map["storeId"] = _storeId;
map["mainTitle"] = _mainTitle;
map["viceTitle"] = _viceTitle;
map["content"] = _content;
map["coverImg"] = _coverImg;
map["author"] = _author.toJson();
map["type"] = _type;
map["startTime"] = _startTime;
map["categoryId"] = _categoryId;
map["endTime"] = _endTime;
map["state"] = _state;
map["isDelete"] = _isDelete;
map["likes"] = _likes;
map["isHot"] = _isHot;
map["liked"] = _liked;
map["viewers"] = _viewers;
map["comments"] = _comments;
map["authorName"] = _authorName;
map["authorHeadImg"] = _authorHeadImg;
map["storeName"] = _storeName;
return map;
set location(String value) {
_location = value;
}
set createTime(String value) {
_createTime = value;
set state(int value) {
_state = value;
}
set createUser(dynamic value) {
_createUser = value;
set isHot(bool value) {
_isHot = value;
}
set updateTime(String value) {
_updateTime = value;
set endTime(String value) {
_endTime = value;
}
set updateUser(dynamic value) {
_updateUser = value;
set startTime(String value) {
_startTime = value;
}
set storeId(String value) {
_storeId = value;
set viewers(int value) {
_viewers = value;
}
set mainTitle(String value) {
_mainTitle = value;
set likes(int value) {
_likes = value;
}
set viceTitle(dynamic value) {
_viceTitle = value;
set type(int value) {
_type = value;
}
set content(String value) {
_content = value;
set author(dynamic value) {
_author = value;
}
set coverImg(String value) {
_coverImg = value;
}
set author(dynamic value) {
_author = value;
set content(String value) {
_content = value;
}
set type(int value) {
_type = value;
set viceTitle(dynamic value) {
_viceTitle = value;
}
set startTime(String value) {
_startTime = value;
set mainTitle(String value) {
_mainTitle = value;
}
set categoryId(String value) {
_categoryId = value;
}
set endTime(String value) {
_endTime = value;
set storeId(String value) {
_storeId = value;
}
set state(int value) {
_state = value;
set updateUser(String value) {
_updateUser = value;
}
set isDelete(int value) {
_isDelete = value;
set updateTime(String value) {
_updateTime = value;
}
set isHot(bool value) {
_isHot = value;
set createUser(String value) {
_createUser = value;
}
set storeName(dynamic value) {
_storeName = value;
set createTime(String value) {
_createTime = value;
}
set id(String value) {
_id = value;
}
}

15
lib/retrofit/data/comunity_comment.dart

@ -21,6 +21,9 @@ class ComunityComment {
bool selfLike,
bool selfFollow,
String createTime,
String location,
String longitude,
String latitude,
String coverImg,}){
this.id = id;
this.subject = subject;
@ -32,6 +35,9 @@ class ComunityComment {
this.selfLike = selfLike;
this.selfFollow = selfFollow;
this.createTime = createTime;
this.location = location;
this.longitude = longitude;
this.latitude = latitude;
this.coverImg = coverImg;
}
@ -46,6 +52,9 @@ class ComunityComment {
this.selfLike = json['selfLike'];
this.selfFollow = json['selfFollow'];
this.createTime = json['createTime'];
this.location = json['location'];
this.longitude = json['longitude'];
this.latitude = json['latitude'];
this.coverImg = json['coverImg'];
}
String id;
@ -58,6 +67,9 @@ class ComunityComment {
bool selfLike;
bool selfFollow;
String createTime;
String location;
String longitude;
String latitude;
String coverImg;
Map<String, dynamic> toJson() {
@ -76,6 +88,9 @@ class ComunityComment {
map['selfLike'] = this.selfLike;
map['selfFollow'] = this.selfFollow;
map['createTime'] = this.createTime;
map['location'] = this.location;
map['longitude'] = this.longitude;
map['latitude'] = this.latitude;
map['coverImg'] = this.coverImg;
return map;
}

134
lib/retrofit/data/member_Infor.dart

@ -0,0 +1,134 @@
/// id : "1379254113602109440"
/// nickname : "哈哈哈"
/// headimg : "https://pos.upload.gznl.top/admin/2021/08/1f8d55ed-85d2-42a2-b155-6737a66226e8.jpg"
/// userType : true
/// sex : "0"
/// level : 1
/// remark : ""
/// createTime : "2021-04-06 10:06:21"
/// birth : "1998-09-17"
/// organic : 0
/// age : 23
/// signature : ""
/// background : ""
/// follow : 1
/// fans : 0
/// trendTotal : 4
/// gainLikeTotal : 9
class MemberInfor {
MemberInfor({
String id,
String nickname,
String headimg,
bool userType,
String sex,
int level,
String remark,
String createTime,
String birth,
int organic,
int age,
String signature,
String background,
int follow,
int fans,
int trendTotal,
int gainLikeTotal,}){
_id = id;
_nickname = nickname;
_headimg = headimg;
_userType = userType;
_sex = sex;
_level = level;
_remark = remark;
_createTime = createTime;
_birth = birth;
_organic = organic;
_age = age;
_signature = signature;
_background = background;
_follow = follow;
_fans = fans;
_trendTotal = trendTotal;
_gainLikeTotal = gainLikeTotal;
}
MemberInfor.fromJson(dynamic json) {
_id = json['id'];
_nickname = json['nickname'];
_headimg = json['headimg'];
_userType = json['userType'];
_sex = json['sex'];
_level = json['level'];
_remark = json['remark'];
_createTime = json['createTime'];
_birth = json['birth'];
_organic = json['organic'];
_age = json['age'];
_signature = json['signature'];
_background = json['background'];
_follow = json['follow'];
_fans = json['fans'];
_trendTotal = json['trendTotal'];
_gainLikeTotal = json['gainLikeTotal'];
}
String _id;
String _nickname;
String _headimg;
bool _userType;
String _sex;
int _level;
String _remark;
String _createTime;
String _birth;
int _organic;
int _age;
String _signature;
String _background;
int _follow;
int _fans;
int _trendTotal;
int _gainLikeTotal;
String get id => _id;
String get nickname => _nickname;
String get headimg => _headimg;
bool get userType => _userType;
String get sex => _sex;
int get level => _level;
String get remark => _remark;
String get createTime => _createTime;
String get birth => _birth;
int get organic => _organic;
int get age => _age;
String get signature => _signature;
String get background => _background;
int get follow => _follow;
int get fans => _fans;
int get trendTotal => _trendTotal;
int get gainLikeTotal => _gainLikeTotal;
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['id'] = _id;
map['nickname'] = _nickname;
map['headimg'] = _headimg;
map['userType'] = _userType;
map['sex'] = _sex;
map['level'] = _level;
map['remark'] = _remark;
map['createTime'] = _createTime;
map['birth'] = _birth;
map['organic'] = _organic;
map['age'] = _age;
map['signature'] = _signature;
map['background'] = _background;
map['follow'] = _follow;
map['fans'] = _fans;
map['trendTotal'] = _trendTotal;
map['gainLikeTotal'] = _gainLikeTotal;
return map;
}
}

10
lib/retrofit/data/user_info.dart

@ -41,6 +41,10 @@ class UserInfo {
String masterCardRankName;
MemberRank memberRankVo;
String inviteCode;
String signature;
String background;
factory UserInfo.fromJson(Map<String, dynamic> json) =>
UserInfo()
@ -65,6 +69,8 @@ class UserInfo {
..todayInviteNumber = json['todayInviteNumber'] as int
..masterCardRankName = json['masterCardRankName'] as String
..inviteCode = json['inviteCode'] as String
..signature = json['signature'] as String
..background = json['background'] as String
..memberRankVo = json['memberRankVo'] == null
? null
: MemberRank.fromJson(json['memberRankVo'] as Map<String, dynamic>);
@ -91,6 +97,8 @@ class UserInfo {
"todayInviteNumber": this.todayInviteNumber,
'masterCardRankName': this.masterCardRankName,
'inviteCode' : this.inviteCode,
'memberRankVo': this.memberRankVo == null ? "" : this.memberRankVo.toJson(),
'signature' : this.signature,
'background' : this.background,
'memberRankVo': this.memberRankVo == null ? "" : this.memberRankVo.toJson(),
};
}

4
lib/retrofit/min_api.dart

@ -28,8 +28,8 @@ const baseUrl = "https://pos.api.lotus-wallet.com/app/"; ///正式
// const base_url = "http://user.prod.kunqi.lotus-wallet.com/app/"; ///222
// const baseUrl = "http://user.prod.kunqi.lotus-wallet.com/app/"; ///222
// const base_url = "http://192.168.10.236:8765/app/";///
// const baseUrl = "http://192.168.10.236:8765/app/";///
const base_url = "http://192.168.10.236:8765/app/";///
const baseUrl = "http://192.168.10.236:8765/app/";///
// const base_url = "http://192.168.10.143:8765/app/";///

2
lib/retrofit/min_api.g.dart

@ -9,7 +9,7 @@ part of 'min_api.dart';
class _MinApiService implements MinApiService {
_MinApiService(this._dio, {this.baseUrl}) {
ArgumentError.checkNotNull(_dio, '_dio');
baseUrl ??= 'https://pos.api.lotus-wallet.com/app/';
baseUrl ??= 'http://192.168.10.236:8765/app/';
}
final Dio _dio;

21
lib/retrofit/retrofit_api.dart

@ -19,6 +19,7 @@ import 'package:huixiang/view_widget/login_tips_dialog.dart';
import 'package:retrofit/retrofit.dart';
import 'data/achievement_detail_list.dart';
import 'data/activity_pos.dart';
import 'data/address.dart';
import 'data/banner.dart';
import 'data/brand_data.dart';
@ -36,6 +37,7 @@ import 'data/headlines_list.dart';
import 'data/headlines_list_details.dart';
import 'data/invitation_list.dart';
import 'data/logistics.dart';
import 'data/member_Infor.dart';
import 'data/member_comment_list.dart';
import 'data/message.dart';
import 'data/msg_stats.dart';
@ -52,7 +54,6 @@ import 'data/vip_badges_list.dart';
import 'data/vip_benefit_list.dart';
import 'data/vip_card.dart';
import 'data/vip_rule_details.dart';
import 'data/wx_pay.dart';
part 'retrofit_api.g.dart';
@ -62,8 +63,8 @@ const baseUrl = "https://pos.platform.lotus-wallet.com/app/"; ///正式
// const base_url = "http://platform.prod.kunqi.lotus-wallet.com/app/"; ///222
// const baseUrl = "http://platform.prod.kunqi.lotus-wallet.com/app/"; ///222
// const base_url = "http://192.168.10.236:8766/app/"; ///
// const baseUrl = "http://192.168.10.236:8766/app/"; ///
const base_url = "http://192.168.10.236:8766/app/"; ///
const baseUrl = "http://192.168.10.236:8766/app/"; ///
// const base_url = "http://192.168.10.37:8766/app/";
// const baseUrl = "http://192.168.10.37:8766/app/";
@ -88,8 +89,8 @@ abstract class ApiService {
headers["Environment"] = "app";
}
dio.options = BaseOptions(
connectTimeout: 20000,
receiveTimeout: 20000,
connectTimeout: 60000,
receiveTimeout: 60000,
headers: headers,
responseType: ResponseType.json,
);
@ -496,7 +497,15 @@ abstract class ApiService {
Future<BaseData> wiped(@Path("memberCouponId") String memberCouponId);
///
@GET("coupon/detail/")
@GET("/coupon/detail/")
Future<BaseData<CouponDetail>> couponDetail(@Path("") String memberCouponId);
///
@GET("/member/detail/{id}")
Future<BaseData<MemberInfor>> memberDetail(@Path("id") String id);
///
@GET("/home/appPopup")
Future<BaseData<ActivityPos>> appPopup();
}

45
lib/retrofit/retrofit_api.g.dart

@ -9,7 +9,7 @@ part of 'retrofit_api.dart';
class _ApiService implements ApiService {
_ApiService(this._dio, {this.baseUrl}) {
ArgumentError.checkNotNull(_dio, '_dio');
baseUrl ??= 'https://pos.platform.lotus-wallet.com/app/';
baseUrl ??= 'http://192.168.10.236:8766/app/';
}
final Dio _dio;
@ -1851,4 +1851,47 @@ class _ApiService implements ApiService {
);
return value;
}
@override
Future<BaseData<MemberInfor>> memberDetail(id) async {
ArgumentError.checkNotNull(id, 'id');
const _extra = <String, dynamic>{};
final queryParameters = <String, dynamic>{};
final _data = <String, dynamic>{};
final _result = await _dio.request<Map<String, dynamic>>('/member/detail/$id',
queryParameters: queryParameters,
options: RequestOptions(
method: 'GET',
headers: <String, dynamic>{},
extra: _extra,
baseUrl: baseUrl),
data: _data);
final value = BaseData<MemberInfor>.fromJson(
_result.data,
(json) => MemberInfor.fromJson(json),
);
return value;
}
@override
Future<BaseData<ActivityPos>> appPopup() async {
const _extra = <String, dynamic>{};
final queryParameters = <String, dynamic>{};
final _data = <String, dynamic>{};
final _result = await _dio.request<Map<String, dynamic>>(
'/home/appPopup',
queryParameters: queryParameters,
options: RequestOptions(
method: 'GET',
headers: <String, dynamic>{},
extra: _extra,
baseUrl: baseUrl),
data: _data);
final value = BaseData<ActivityPos>.fromJson(
_result.data,
(json) => ActivityPos.fromJson(json),
);
return value;
}
}

2
lib/store/store_order.dart

@ -506,8 +506,6 @@ class _StoreOrderPage extends State<StoreOrderPage>
}
}
///
showAlertDialog() {
//

113
lib/view_widget/activity_poster.dart

@ -0,0 +1,113 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:huixiang/retrofit/data/activity_pos.dart';
import 'custom_image.dart';
class ActivityPoster extends StatefulWidget {
final ActivityPos activityPos;
ActivityPoster(this.activityPos);
@override
State<StatefulWidget> createState() {
return _ActivityPoster();
}
}
class _ActivityPoster extends State<ActivityPoster> {
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
height: 289,
alignment: Alignment.center,
margin: EdgeInsets.only(
left:37,
right:37,
),
child: Stack(
children: [
GestureDetector(
onTap: (){
jumpClick(widget.activityPos);
},
child:
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),
),
child:MImage(
widget?.activityPos?.showImage ?? "",
width: double.infinity,
height: MediaQuery.of(context).size.height / 2,
fit: BoxFit.cover,
radius: BorderRadius.all(Radius.circular(12)),
errorSrc: "assets/image/default_1.png",
fadeSrc: "assets/image/default_1.png",
),),
),
Container(
padding: EdgeInsets.only(top: 8,right: 8,bottom:8),
child:GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: (){
Navigator.of(context).pop();
},
child: Row(children: [
Spacer(),
Image.asset(
"assets/image/cancel.png",
width: 24,
height: 24,
color: Colors.white,
)
],)
) )
],
),
);
}
/// contentType 0123,4:,5:
jumpClick(ActivityPos activityPos) async {
switch (activityPos.jumpType) {
case 1:
Navigator.of(context).pushNamed('/router/integral_store_page',
arguments: {"goodsId": widget.activityPos.jumpUrl});
break;
case 2:
Navigator.of(context)
.pushNamed('/router/web_page', arguments: {
"activityId": widget.activityPos.jumpUrl,
});
break;
case 3:
Navigator.of(context)
.pushNamed('/router/web_page', arguments: {
"articleId": widget.activityPos.jumpUrl,
});
break;
case 4:
String router = widget.activityPos.jumpUrl;
if (router.contains("?")) {
String params = router.substring(router.indexOf("?"));
params = params.replaceAll("?", "");
Map map = jsonDecode(params);
Navigator.of(context).pushNamed(router, arguments: map);
} else {
Navigator.of(context).pushNamed(router);
}
break;
case 5:
Navigator.of(context)
.pushNamed('/router/class_details', arguments: {
"id": widget.activityPos.jumpUrl,
});
break;
}
}
}

8
lib/view_widget/mine_vip_view.dart

@ -183,7 +183,7 @@ class MineVipView extends StatelessWidget {
style: TextStyle(
color: textColor,
fontWeight: MyFontWeight.semi_bold,
fontSize: 23.sp,
fontSize:22.sp,
),
),
),
@ -228,7 +228,7 @@ class MineVipView extends StatelessWidget {
style: TextStyle(
color: textColor,
fontWeight: MyFontWeight.regular,
fontSize: 14.sp,
fontSize: 12.sp,
),
),
flex: 1,
@ -239,7 +239,7 @@ class MineVipView extends StatelessWidget {
TextSpan(
text: !(showRank??true)?(vipLevel == 3?"":rankMax.toString()):((vipLevel < curLevel)?rankMax.toString():rank.toString()),
style: TextStyle(
fontSize: 26.sp,
fontSize: 20.sp,
fontWeight: MyFontWeight.semi_bold,
color: textColor,
),
@ -257,7 +257,7 @@ class MineVipView extends StatelessWidget {
TextSpan(
text: rankMax > 0 ? "/$rankMax" : "/0",
style: TextStyle(
fontSize: 14.sp,
fontSize: 12.sp,
fontWeight: MyFontWeight.regular,
color: textColor,
),

2
lib/web/web_view/web_content.dart

@ -59,7 +59,7 @@ class _WebContent extends State<WebContent> {
// + "<a storeName=\"前进麦味烘焙*海峡姐妹茶(哈乐城店)\" storeId=\"1432164681279078400\" tenantCode=\"1175\" href=\"/\">立即购买</a><img storeName=\"前进麦味烘焙*海峡姐妹茶(哈乐城店)\" storeId=\"1432164681279078400\" tenantCode=\"1175\" src=\"https://pos.upload.gznl.top/MDAwMA==/2021/12/6edfe416-aaf9-4f0e-b2a4-4dc85db03489.jpg\" />",
style: {
"html": Style(
backgroundColor: Colors.white
backgroundColor: Color(0xffffffff)
)
},
onLinkTap: (url, ct, attributes, element) {

Loading…
Cancel
Save