Browse Source

safety

master
fmk 3 years ago
parent
commit
c86fa03ba1
  1. 4
      ios/Podfile.lock
  2. 69
      lib/community/community_child_page.dart
  3. 314
      lib/community/community_details.dart
  4. 136
      lib/community/community_view/community_dynamic.dart
  5. 1
      lib/home/huixiang_brand_page.dart
  6. 9
      lib/integral_store/integral_store_details_page.dart
  7. 3
      lib/retrofit/min_api.dart
  8. 109
      lib/store/store_order.dart
  9. 10
      lib/store/store_view/store_order_list.dart
  10. 27
      lib/web/web_page.dart
  11. 104
      lib/web/web_view/web_content.dart
  12. 305
      pubspec.lock
  13. 13
      pubspec.yaml

4
ios/Podfile.lock

@ -228,8 +228,8 @@ SPEC CHECKSUMS:
tpns_flutter_plugin: a366649c8ad71f19dfb864d3c994ed0480b69daa tpns_flutter_plugin: a366649c8ad71f19dfb864d3c994ed0480b69daa
url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef
video_player: 9cc823b1d9da7e8427ee591e8438bfbcde500e6e video_player: 9cc823b1d9da7e8427ee591e8438bfbcde500e6e
wakelock: bfc7955c418d0db797614075aabbc58a39ab5107 wakelock: d0fc7c864128eac40eba1617cb5264d9c940b46f
webview_flutter: d2b4d6c66968ad042ad94cbb791f5b72b4678a96 webview_flutter: 3603125dfd3bcbc9d8d418c3f80aeecf331c068b
WechatOpenSDK_Fuck: aa8f4b0af902837e887a1d40c62f06c060c1dc98 WechatOpenSDK_Fuck: aa8f4b0af902837e887a1d40c62f06c060c1dc98
ZLPhotoBrowser-objc: c7657d3bc85ae231884e058d0e3638f619164736 ZLPhotoBrowser-objc: c7657d3bc85ae231884e058d0e3638f619164736

69
lib/community/community_child_page.dart

@ -51,7 +51,7 @@ class _CommunityChildPage extends State<CommunityChildPage> {
} }
pageNum += 1; pageNum += 1;
BaseData<PageInfo<ComunityComment>> baseData = await apiService.trendList({ BaseData<PageInfo<ComunityComment>> baseData = await apiService.trendList({
"onlyFollow": widget.typeStr == "关注" ? true:false, "onlyFollow": widget.typeStr == "关注" ? true : false,
"onlyMe": false, "onlyMe": false,
"pageNum": pageNum, "pageNum": pageNum,
"pageSize": 10, "pageSize": 10,
@ -82,39 +82,44 @@ class _CommunityChildPage extends State<CommunityChildPage> {
future: queryCommunity(), future: queryCommunity(),
builder: (context, position) { builder: (context, position) {
return SmartRefresher( return SmartRefresher(
controller: refreshController, controller: refreshController,
enablePullDown: true, enablePullDown: true,
enablePullUp: true, enablePullUp: true,
physics: BouncingScrollPhysics(), physics: BouncingScrollPhysics(),
header: MyHeader(), header: MyHeader(),
footer: CustomFooter( footer: CustomFooter(
builder: (context, mode) { builder: (context, mode) {
return MyFooter(mode); return MyFooter(mode);
},
),
onRefresh: _onRefresh,
onLoading: () {
setState(() {});
}, },
child: ListView.builder( ),
physics: NeverScrollableScrollPhysics(), onRefresh: _onRefresh,
itemBuilder: (context, position) { onLoading: () {
return InkWell( setState(() {});
child: CommunityDynamic(comments[position],0,exitFull: (){setState(() { },
child: ListView.builder(
});},), physics: NeverScrollableScrollPhysics(),
onTap: () { itemBuilder: (context, position) {
Navigator.of(context).pushNamed( return InkWell(
'/router/community_details', child: CommunityDynamic(
arguments: { comments[position],
"comment": comments[position], 0,
}, exitFull: () {
); setState(() {});
}, },
); ),
}, onTap: () {
itemCount: comments.length, Navigator.of(context).pushNamed(
)); '/router/community_details',
arguments: {
"comment": comments[position],
},
);
},
);
},
itemCount: comments.length,
),
);
}, },
); );
} }

314
lib/community/community_details.dart

@ -15,6 +15,7 @@ import 'package:huixiang/retrofit/retrofit_api.dart';
import 'package:huixiang/utils/font_weight.dart'; import 'package:huixiang/utils/font_weight.dart';
import 'package:huixiang/view_widget/comment_menu.dart'; import 'package:huixiang/view_widget/comment_menu.dart';
import 'package:huixiang/view_widget/login_tips_dialog.dart'; import 'package:huixiang/view_widget/login_tips_dialog.dart';
import 'package:huixiang/view_widget/my_appbar.dart';
import 'package:huixiang/view_widget/tips_dialog.dart'; import 'package:huixiang/view_widget/tips_dialog.dart';
import 'package:huixiang/web/web_view/input_comment.dart'; import 'package:huixiang/web/web_view/input_comment.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
@ -48,7 +49,6 @@ class _CommunityDetails extends State<CommunityDetails>
int commentTotal = 0; int commentTotal = 0;
Article article; Article article;
@override @override
void didChangeMetrics() { void didChangeMetrics() {
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
@ -56,15 +56,17 @@ class _CommunityDetails extends State<CommunityDetails>
if (MediaQuery.of(context).viewInsets.bottom == 0) { if (MediaQuery.of(context).viewInsets.bottom == 0) {
if (isKeyBoardShow) { if (isKeyBoardShow) {
FocusScope.of(context).requestFocus(FocusNode()); FocusScope.of(context).requestFocus(FocusNode());
setState(() { if (mounted)
hintText = S.current.liuxianinjingcaidepinglunba; setState(() {
isKeyBoardShow = false; hintText = S.current.liuxianinjingcaidepinglunba;
}); isKeyBoardShow = false;
});
} }
} else { } else {
setState(() { if (mounted)
isKeyBoardShow = true; setState(() {
}); isKeyBoardShow = true;
});
} }
}); });
} }
@ -83,186 +85,140 @@ class _CommunityDetails extends State<CommunityDetails>
queryDetails() async { queryDetails() async {
SharedPreferences value = await SharedPreferences.getInstance(); SharedPreferences value = await SharedPreferences.getInstance();
if (apiService == null) if (apiService == null)
apiService = apiService = ApiService(
ApiService(Dio(), context: context, token: value.getString("token")); Dio(),
BaseData<Article> baseData = await apiService context: context,
.informationInfo(comunity.id) token: value.getString("token"),
.catchError((onError) {}); );
if (baseData != null && baseData.isSuccess) { BaseData<Article> baseData =
} await apiService.informationInfo(comunity.id).catchError((onError) {});
if (baseData != null && baseData.isSuccess) {}
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
body: Container( appBar: MyAppBar(
child: Column( title: "动态详情",
children: [ titleColor: Colors.black,
Expanded( titleSize: 18.sp,
child: NestedScrollView( background: Colors.white,
headerSliverBuilder: (context, position) { leading: true,
return [ leadingColor: Colors.black,
SliverOverlapAbsorber( ),
handle: body: Container(
NestedScrollView.sliverOverlapAbsorberHandleFor(context), child: Column(
sliver: SliverAppBar( children: [
expandedHeight: (height == 0) ? 614 : height, Expanded(
pinned: true, child: SingleChildScrollView(
backgroundColor: Colors.white, child: Column(
title: Text( children: [
"动态详情", CommunityDynamic(
style: TextStyle( comunity,
color: Colors.black, 0,
fontSize: 18.sp, exitFull: () {
fontWeight: MyFontWeight.semi_bold, setState(() {});
), },
), itemCount: 3,
elevation: 0, isDetails: true,
leading: GestureDetector( heightFun: (height) {
onTap: () { this.height = height +
Navigator.of(context).pop(); MediaQuery.of(context).padding.top +
kToolbarHeight +
24;
if (mounted) setState(() {});
}, },
child: Container(
alignment: Alignment.centerRight,
margin: EdgeInsets.only(left: 10),
padding: EdgeInsets.all(6),
child: Icon(
Icons.arrow_back_ios,
color: Colors.black,
size: 24,
),
),
),
flexibleSpace: FlexibleSpaceBar(
//Colors.white,
background: Container(
padding: EdgeInsets.only(
top: MediaQuery.of(context).padding.top +
kToolbarHeight,
),
color: Colors.white,
child: CommunityDynamic(
comunity,0,exitFull: (){setState(() {
});},
itemCount: 3,
isDetails: true,
heightFun: (height) {
this.height = height +
MediaQuery.of(context).padding.top +
kToolbarHeight +
24;
setState(() {});
},
),
),
collapseMode: CollapseMode.pin,
), ),
bottom: PreferredSize( Container(
preferredSize: Size( padding: EdgeInsets.all(16),
MediaQuery.of(context).size.width, color: Colors.white,
46, child: Row(
), children: [
child: Container( Text(
padding: EdgeInsets.all(16), S.of(context).pinglun_(commentTotal.toString()),
margin: EdgeInsets.only(top: 16.h), style: TextStyle(
color: Colors.white, fontSize: 14,
child: Row( fontWeight: FontWeight.bold,
children: [ color: Color(0xff1A1A1A),
Text(
S.of(context).pinglun_(commentTotal.toString()),
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold,
color: Color(0xff1A1A1A),
),
),
SizedBox(
width: 16.w,
), ),
Text( ),
S.of(context).xihuan_( SizedBox(
"${comunity?.likes ?? comunity?.likes ?? "0"}"), width: 16.w,
style: TextStyle( ),
fontSize: 14, Text(
fontWeight: FontWeight.bold, S.of(context).xihuan_(
color: Color(0xff1A1A1A), "${comunity?.likes ?? comunity?.likes ?? "0"}"),
), style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold,
color: Color(0xff1A1A1A),
), ),
], ),
), ],
), ),
), ),
), if (memberList != null && memberList.length > 0)
), ListView.builder(
]; shrinkWrap: true,
}, physics: NeverScrollableScrollPhysics(),
body: Container( itemCount: memberList != null ? memberList.length : 0,
height: MediaQuery.of(context).size.height - scrollDirection: Axis.vertical,
MediaQuery.of(context).padding.top + itemBuilder: (context, position) {
kToolbarHeight - 68, return Material(
margin: EdgeInsets.only(top: 50 + kToolbarHeight), color: Colors.white,
child: Column( child: InkWell(
children: [ onTap: () {
if (memberList != null && memberList.length > 0) showPressMenu(
Expanded(child: ListView.builder( memberList[position].createUser,
shrinkWrap: true, memberList[position],
physics: NeverScrollableScrollPhysics(), );
itemCount: memberList != null ? memberList.length : 0, },
scrollDirection: Axis.vertical, child: CommunityComment(
itemBuilder: (context, position) { memberList[position],
return Material( _queryCommentLike,
color: Colors.white, (memberList.length - 1 == position) ? 1 : 0,
child: InkWell( ),
onTap: () {
showPressMenu(memberList[position].createUser,
memberList[position]);
},
child: CommunityComment(
memberList[position],
_queryCommentLike,
(memberList.length-1 == position)?1:0
), ),
);
},
),
if (memberList == null || memberList.length == 0)
Container(
width: double.infinity,
alignment: Alignment.topCenter,
margin: EdgeInsets.only(top: 40),
padding: EdgeInsets.all(22.h),
child: Text(
S.of(context).zanwupinglun,
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.bold,
color: Color(0xFFA0A0A0),
), ),
);
},
)),
if (memberList == null || memberList.length == 0)
Container(
width: double.infinity,
alignment: Alignment.topCenter,
margin: EdgeInsets.only(top:40),
padding: EdgeInsets.all(22.h),
child: Text(
S.of(context).zanwupinglun,
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.bold,
color: Color(0xFFA0A0A0),
), ),
), ),
), ],
], ),
), ),
flex: 1,
), ),
),
flex: 1,
),
/// ///
InputComment( InputComment(
inputKey, inputKey,
hintText, hintText,
isKeyBoardShow, isKeyBoardShow,
commentFocus, commentFocus,
commentTextController, commentTextController,
_toComment, _toComment,
_queryMemberComment, _queryMemberComment,
_queryInformationLikes, _queryInformationLikes,
isLike: comunity.selfLike, isLike: comunity.selfLike,
),
],
), ),
], ),
))); );
} }
//// ////
@ -271,10 +227,11 @@ class _CommunityDetails extends State<CommunityDetails>
if (baseData != null && baseData.isSuccess) { if (baseData != null && baseData.isSuccess) {
// commentKey.currentState.setState(() {}); // commentKey.currentState.setState(() {});
setState(() { setState(() {
if(comunity.selfLike??false) if (comunity.selfLike ?? false)
comunity.likes -= 1; comunity.likes -= 1;
else comunity.likes += 1; else
comunity.selfLike = !comunity.selfLike??false; comunity.likes += 1;
comunity.selfLike = !comunity.selfLike ?? false;
}); });
} else { } else {
SmartDialog.showToast(baseData.msg, alignment: Alignment.center); SmartDialog.showToast(baseData.msg, alignment: Alignment.center);
@ -303,11 +260,12 @@ class _CommunityDetails extends State<CommunityDetails>
RenderBox firstRenderBox = commentKey.currentContext.findRenderObject(); RenderBox firstRenderBox = commentKey.currentContext.findRenderObject();
Offset first = firstRenderBox.localToGlobal(Offset.zero); Offset first = firstRenderBox.localToGlobal(Offset.zero);
scrollController.animateTo( scrollController.animateTo(
first.dy + first.dy +
scrollController.offset - scrollController.offset -
(kToolbarHeight + MediaQuery.of(context).padding.top), (kToolbarHeight + MediaQuery.of(context).padding.top),
duration: Duration(milliseconds: 300), duration: Duration(milliseconds: 300),
curve: Curves.easeIn); curve: Curves.easeIn,
);
} }
final GlobalKey inputKey = GlobalKey(); final GlobalKey inputKey = GlobalKey();
@ -415,7 +373,7 @@ class _CommunityDetails extends State<CommunityDetails>
commentTotal = baseData.data.size; commentTotal = baseData.data.size;
memberList = baseData.data.list; memberList = baseData.data.list;
contentHeight(); contentHeight();
setState(() {}); if (mounted) setState(() {});
} }
} }
} }

136
lib/community/community_view/community_dynamic.dart

@ -1,3 +1,5 @@
import 'dart:ui';
import 'package:chewie/chewie.dart'; import 'package:chewie/chewie.dart';
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -32,8 +34,8 @@ class CommunityDynamic extends StatefulWidget {
this.itemCount = 9, this.itemCount = 9,
this.heightFun, this.heightFun,
this.isDetails = false, this.isDetails = false,
this.removalDynamic, this.removalDynamic,
this.exitFull this.exitFull,
}) : super(key: key); }) : super(key: key);
@override @override
@ -47,13 +49,50 @@ class _CommunityDynamic extends State<CommunityDynamic> {
double height = 0; double height = 0;
ApiService apiService; ApiService apiService;
VideoPlayerController videoPlayerController;
ChewieController chewieAudioController;
Chewie chewies;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
SharedPreferences.getInstance().then((value) => { SharedPreferences.getInstance().then(
apiService = ApiService(Dio(), (value) => {
context: context, token: value.getString('token')), apiService = ApiService(
Dio(),
context: context,
token: value.getString('token'),
),
},
);
if (widget.comment.subjectInfo.type == "video" &&
widget.comment.subjectInfo.video.isNotEmpty) {
videoPlayerController = VideoPlayerController.network(
widget.comment.subjectInfo.video,
)..initialize().then((value) {
chewieAudioController = ChewieController(
videoPlayerController: videoPlayerController,
aspectRatio: videoPlayerController.value.aspectRatio,
//
autoPlay: false,
//
looping: false,
//
allowFullScreen: true,
//
materialProgressColors: chewie.ChewieProgressColors(
playedColor: Colors.white,
handleColor: Colors.white,
backgroundColor: Colors.grey,
bufferedColor: Colors.transparent,
),
autoInitialize: true,
);
chewieAudioController.addListener(_fullScreenListener);
if (mounted) setState(() {});
}); });
}
} }
//// ////
@ -71,7 +110,6 @@ class _CommunityDynamic extends State<CommunityDynamic> {
BaseData baseData = await apiService.deleteTrend(id); BaseData baseData = await apiService.deleteTrend(id);
if (baseData != null && baseData.isSuccess) { if (baseData != null && baseData.isSuccess) {
SmartDialog.showToast("删除成功", alignment: Alignment.center); SmartDialog.showToast("删除成功", alignment: Alignment.center);
} else { } else {
SmartDialog.showToast(baseData.msg, alignment: Alignment.center); SmartDialog.showToast(baseData.msg, alignment: Alignment.center);
} }
@ -111,7 +149,7 @@ class _CommunityDynamic extends State<CommunityDynamic> {
child: Row( child: Row(
children: [ children: [
MImage( MImage(
widget?.comment?.memberInfo?.avatar??"", widget?.comment?.memberInfo?.avatar ?? "",
width: 44, width: 44,
height: 44, height: 44,
isCircle: true, isCircle: true,
@ -127,7 +165,7 @@ class _CommunityDynamic extends State<CommunityDynamic> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text( Text(
widget?.comment?.memberInfo?.nickname??"", widget?.comment?.memberInfo?.nickname ?? "",
style: TextStyle( style: TextStyle(
fontSize: 14.sp, fontSize: 14.sp,
fontWeight: MyFontWeight.medium, fontWeight: MyFontWeight.medium,
@ -135,7 +173,7 @@ class _CommunityDynamic extends State<CommunityDynamic> {
), ),
), ),
Text( Text(
widget?.comment?.createTime??"", widget?.comment?.createTime ?? "",
style: TextStyle( style: TextStyle(
fontSize: 12.sp, fontSize: 12.sp,
fontWeight: MyFontWeight.regular, fontWeight: MyFontWeight.regular,
@ -244,7 +282,7 @@ class _CommunityDynamic extends State<CommunityDynamic> {
Container( Container(
height: 16, height: 16,
color: Color(0xFFF7F7F7), color: Color(0xFFF7F7F7),
) ),
], ],
); );
} }
@ -262,7 +300,7 @@ class _CommunityDynamic extends State<CommunityDynamic> {
subjectInfo.images[0], subjectInfo.images[0],
fit: BoxFit.cover, fit: BoxFit.cover,
width: MediaQuery.of(context).size.width / 2, width: MediaQuery.of(context).size.width / 2,
height: MediaQuery.of(context).size.width /1, height: MediaQuery.of(context).size.width / 2,
errorSrc: "assets/image/default_2_1.png", errorSrc: "assets/image/default_2_1.png",
fadeSrc: "assets/image/default_2_1.png", fadeSrc: "assets/image/default_2_1.png",
), ),
@ -295,11 +333,13 @@ class _CommunityDynamic extends State<CommunityDynamic> {
itemCount: subjectInfo.images.length, itemCount: subjectInfo.images.length,
); );
} }
} else if (subjectInfo.type == "video" && } else if (subjectInfo.type == "video" && subjectInfo.video.isNotEmpty) {
subjectInfo.video.isNotEmpty) {
widget = videoWidget( widget = videoWidget(
MediaQuery.of(context).size.width - 32, MediaQuery.of(context).size.width - 32,
MediaQuery.of(context).size.width /2, videoPlayerController != null
? (MediaQuery.of(context).size.width - 32) /
videoPlayerController.value.aspectRatio
: MediaQuery.of(context).size.width / 2,
subjectInfo.video); subjectInfo.video);
} }
@ -316,58 +356,44 @@ class _CommunityDynamic extends State<CommunityDynamic> {
); );
} }
VideoPlayerController videoPlayerController; @override
ChewieController chewieAudioController; void dispose() {
Chewie chewies; super.dispose();
Widget videoWidget(double width, double height, src) { if (chewieAudioController != null) {
print("src : $src"); chewieAudioController.pause();
chewieAudioController = ChewieController( chewieAudioController.dispose();
videoPlayerController: videoPlayerController = chewieAudioController = null;
VideoPlayerController.network( }
src,
),
aspectRatio: width / height,
//
autoPlay: false,
//
looping: false,
//
allowFullScreen: true,
// systemOverlaysAfterFullScreen: [],
// systemOverlaysOnEnterFullScreen: [],
// deviceOrientationsAfterFullScreen: [],
// deviceOrientationsOnEnterFullScreen: [],
//
materialProgressColors: chewie.ChewieProgressColors(
playedColor: Colors.white,
handleColor: Colors.white,
backgroundColor: Colors.grey,
bufferedColor: Colors.transparent,
),
autoInitialize: true,
);
chewieAudioController.addListener(_fullScreenListener); if (videoPlayerController != null) {
videoPlayerController.pause();
videoPlayerController.dispose();
}
}
Widget videoWidget(double width, double height, src) {
print("src : $src");
return MediaQuery( return MediaQuery(
data: MediaQuery.of(context).copyWith( data: MediaQuery.of(context).copyWith(
textScaleFactor: 0.9, textScaleFactor: 0.9,
), ),
child: Container( child: chewieAudioController != null
width: MediaQuery.of(context).size.width - 17, ? Container(
height: (MediaQuery.of(context).size.width) / (width / height), width: width,
child: chewies = Chewie( height: height,
controller: chewieAudioController, child: chewies = Chewie(
), controller: chewieAudioController,
), ),
)
: Container(
width: width,
height: height,
),
); );
} }
Future<void> _fullScreenListener() async { Future<void> _fullScreenListener() async {
print("object: isPlaying: ${videoPlayerController.value.isPlaying}");
print("object: isFullScreen: ${chewieAudioController.isFullScreen}");
if (!chewieAudioController.isFullScreen) { if (!chewieAudioController.isFullScreen) {
Future.delayed(Duration(seconds: 1), () { Future.delayed(Duration(seconds: 1), () {
widget.exitFull(); widget.exitFull();

1
lib/home/huixiang_brand_page.dart

@ -182,7 +182,6 @@ class _BrandPage extends State<BrandPage>
child: Html( child: Html(
data: value.content, data: value.content,
customImageRenders: { customImageRenders: {
base64DataUriMatcher(): base64ImageRender(),
assetUriMatcher(): assetImageRender(), assetUriMatcher(): assetImageRender(),
networkSourceMatcher(extension: "svg"): svgNetworkImageRender(), networkSourceMatcher(extension: "svg"): svgNetworkImageRender(),
networkSourceMatcher(): networkImageRender( networkSourceMatcher(): networkImageRender(

9
lib/integral_store/integral_store_details_page.dart

@ -100,19 +100,10 @@ class _IntegralStoreDetailsPage extends State {
child: Html( child: Html(
data: goods != null ? goods.detail : "", data: goods != null ? goods.detail : "",
customImageRenders: { customImageRenders: {
base64DataUriMatcher(): base64ImageRender(),
assetUriMatcher(): assetImageRender(),
networkSourceMatcher(extension: "svg"):
svgNetworkImageRender(),
networkSourceMatcher(): networkImageRender( networkSourceMatcher(): networkImageRender(
loadingWidget: () { loadingWidget: () {
// return Image.asset("assets/image/default_1.png",);
return Container(); return Container();
}, },
// mapUrl: (url) {
// print("objectUrl: $url");
// return "$url?imageMogr2/format/webp/blur/1x0/quality/75";
// }
), ),
}, },
), ),

3
lib/retrofit/min_api.dart

@ -1,7 +1,6 @@
import 'dart:convert'; import 'dart:convert';
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:flare_flutter/flare_testing.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart';
@ -11,8 +10,6 @@ import 'package:huixiang/retrofit/data/address.dart';
import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/base_data.dart';
import 'package:huixiang/retrofit/data/down_order.dart'; import 'package:huixiang/retrofit/data/down_order.dart';
import 'package:huixiang/retrofit/data/min_order_info.dart'; import 'package:huixiang/retrofit/data/min_order_info.dart';
import 'package:huixiang/retrofit/data/placeOrderFirst.dart';
import 'package:huixiang/retrofit/data/settlement_bean.dart';
import 'package:huixiang/retrofit/data/wx_pay.dart'; import 'package:huixiang/retrofit/data/wx_pay.dart';
import 'package:huixiang/view_widget/login_tips_dialog.dart'; import 'package:huixiang/view_widget/login_tips_dialog.dart';
import 'package:retrofit/retrofit.dart'; import 'package:retrofit/retrofit.dart';

109
lib/store/store_order.dart

@ -59,6 +59,8 @@ class _StoreOrderPage extends State<StoreOrderPage>
String tenant = ""; String tenant = "";
String storeId = ""; String storeId = "";
int numberOfPeople = 0; int numberOfPeople = 0;
///token
String minToken;
@override @override
void initState() { void initState() {
@ -91,13 +93,13 @@ class _StoreOrderPage extends State<StoreOrderPage>
token: shared.getString('token'), token: shared.getString('token'),
showLoading: false, showLoading: false,
); );
queryStoreInfo();
apiService.minLogin(storeId).catchError((onError) { apiService.minLogin(storeId).catchError((onError) {
debugPrint(onError); debugPrint(onError);
}).then((baseData) { }).then((baseData) {
if (baseData != null && baseData.isSuccess) { if (baseData != null && baseData.isSuccess) {
Map<String, dynamic> minStoreInfo = baseData.data; Map<String, dynamic> minStoreInfo = baseData.data;
String minToken = minStoreInfo["token"]; minToken = minStoreInfo["token"];
queryStoreInfo();
SharedPreferences.getInstance().then( SharedPreferences.getInstance().then(
(value) => { (value) => {
value.setString('minToken', minToken), value.setString('minToken', minToken),
@ -127,10 +129,8 @@ class _StoreOrderPage extends State<StoreOrderPage>
/// ///
getParentInfo() async { getParentInfo() async {
BaseData baseData = BaseData baseData = await minService.getParentInfo("$tableId")
await minService.getParentInfo("$tableId").catchError((error) { .catchError((error) {debugPrint(error);});
debugPrint(error);
});
if (baseData != null && baseData.isSuccess) { if (baseData != null && baseData.isSuccess) {
if (baseData.data != null) { if (baseData.data != null) {
parentId = baseData.data["id"]; parentId = baseData.data["id"];
@ -244,58 +244,61 @@ class _StoreOrderPage extends State<StoreOrderPage>
StretchMode.fadeTitle, StretchMode.fadeTitle,
StretchMode.blurBackground, StretchMode.blurBackground,
], ],
background: Stack( background: Container(
children: [ color: Colors.white,
Positioned( child: Stack(
child: Column( children: [
children: [ Positioned(
buildSwiper(),
Expanded(
child: Container(
color: Colors.transparent,
),
flex: 1,
),
],
),
top: 0,
bottom: 0,
left: 0,
right: 0,
),
Positioned(
child: Container(
child: Column( child: Column(
children: [ children: [
/// buildSwiper(),
StoreInfoView(storeInfo), Expanded(
child: Container(
/// color: Colors.transparent,
if (storeInfo != null &&
storeInfo.couponVOList != null)
UnionCoupon(
storeInfo,
_receiveCoupon,
coupon: true,
),
if (storeInfo == null ||
storeInfo.couponVOList == null)
SizedBox(
height: 8,
), ),
flex: 1,
///VIP信息 ),
Vip(storeInfo, () {}, false),
], ],
), ),
top: 0,
bottom: 0,
left: 0,
right: 0,
), ),
top: 110.h, Positioned(
bottom: 0, child: Container(
left: 0, child: Column(
right: 0, children: [
), ///
], StoreInfoView(storeInfo),
///
if (storeInfo != null &&
storeInfo.couponVOList != null)
UnionCoupon(
storeInfo,
_receiveCoupon,
coupon: true,
),
if (storeInfo == null ||
storeInfo.couponVOList == null)
SizedBox(
height: 8,
),
///VIP信息
Vip(storeInfo, () {}, false),
],
),
),
top: 110.h,
bottom: 0,
left: 0,
right: 0,
),
],
),
), ),
), ),
backgroundColor: Color(0x33FAFAFA), backgroundColor: Color(0x33FAFAFA),
@ -351,6 +354,8 @@ class _StoreOrderPage extends State<StoreOrderPage>
storeInfo, storeInfo,
shopCarGoods, shopCarGoods,
controller, controller,
minToken,
tenant,
_queryMiNiDetail, _queryMiNiDetail,
), ),

10
lib/store/store_view/store_order_list.dart

@ -19,6 +19,8 @@ class StoreOrderListPage extends StatefulWidget {
final List<Activity> activitys; final List<Activity> activitys;
final StoreInfo storeInfo; final StoreInfo storeInfo;
final ScrollController controller; final ScrollController controller;
final String minToken;
final String tenant;
final Function(String id) queryMiNiDetail; final Function(String id) queryMiNiDetail;
ShoppingCart shopCarGoods; ShoppingCart shopCarGoods;
@ -29,6 +31,8 @@ class StoreOrderListPage extends StatefulWidget {
this.storeInfo, this.storeInfo,
this.shopCarGoods, this.shopCarGoods,
this.controller, this.controller,
this.minToken,
this.tenant,
this.queryMiNiDetail, this.queryMiNiDetail,
); );
@ -59,13 +63,11 @@ class _StoreOrderListPage extends State<StoreOrderListPage> {
/// ///
appletGoods() async { appletGoods() async {
SharedPreferences value = await SharedPreferences.getInstance(); SharedPreferences value = await SharedPreferences.getInstance();
String minToken = value.getString("minToken");
String tenant = value.getString("tenant");
minService = MinApiService( minService = MinApiService(
Dio(), Dio(),
context: context, context: context,
token: minToken, token: widget.minToken,
tenant: tenant, tenant: widget.tenant,
storeId: widget.arguments["id"], storeId: widget.arguments["id"],
); );

27
lib/web/web_page.dart

@ -260,20 +260,25 @@ class _WebPage extends State<WebPage> with WidgetsBindingObserver {
WebHeader(widget.arguments, activity, article, 16), WebHeader(widget.arguments, activity, article, 16),
/// ///
WebContent(activity, article, () { WebContent(
setState(() {}); activity,
}), article,
() {
setState(() {});
},
),
/// ///
CommentList( CommentList(
commentKey, commentKey,
widget.arguments, widget.arguments,
activity, activity,
article, article,
isKeyBoardShow, isKeyBoardShow,
_reply, _reply,
_delCommentTips, _delCommentTips,
12.sp), 12.sp,
),
], ],
), ),
), ),

104
lib/web/web_view/web_content.dart

@ -44,7 +44,6 @@ class _WebContent extends State<WebContent> {
) )
}, },
customImageRenders: { customImageRenders: {
base64DataUriMatcher(): base64ImageRender(),
assetUriMatcher(): assetImageRender(), assetUriMatcher(): assetImageRender(),
networkSourceMatcher(extension: "svg"): networkSourceMatcher(extension: "svg"):
svgNetworkImageRender(), svgNetworkImageRender(),
@ -54,57 +53,58 @@ class _WebContent extends State<WebContent> {
}, },
), ),
}, },
customRender: { // customRender: {
"video": // "video":
(context, parsedChild, attributes, element) { // (context, parsedChild) {
var src = attributes['src']; // var src = attributes['src'];
return videoWidget( // parsedChild.toString()
double.tryParse(attributes['width'] ?? ""), // return videoWidget(
double.tryParse( // double.tryParse(attributes['width'] ?? ""),
element.attributes['height'] ?? ""), // double.tryParse(
(src != null && // element.attributes['height'] ?? ""),
src != "" && // (src != null &&
src.endsWith(".mp4")) // src != "" &&
? src // src.endsWith(".mp4"))
: element // ? src
.children.first.attributes["src"], // : element
element.attributes["sandbox"]); // .children.first.attributes["src"],
}, // element.attributes["sandbox"]);
"iframe": // },
(context, parsedChild, attributes, element) { // "iframe":
var src = attributes['src']; // (context, parsedChild) {
return videoWidget( // var src = attributes['src'];
double.tryParse(attributes['width'] ?? ""), // return videoWidget(
double.tryParse( // double.tryParse(attributes['width'] ?? ""),
element.attributes['height'] ?? ""), // double.tryParse(
(src != null && // element.attributes['height'] ?? ""),
src != "" && // (src != null &&
src.endsWith(".mp4")) // src != "" &&
? src // src.endsWith(".mp4"))
: element // ? src
.children.first.attributes["src"], // : element
element.attributes["sandbox"]); // .children.first.attributes["src"],
}, // element.attributes["sandbox"]);
"audio": // },
(context, parsedChild, attributes, element) { // "audio":
final sources = <String>[ // (context, parsedChild) {
if (element.attributes['src'] != null) // final sources = <String>[
element.attributes['src'], // if (element.attributes['src'] != null)
]; // element.attributes['src'],
if (sources == null || // ];
sources.isEmpty || // if (sources == null ||
sources.first == null) { // sources.isEmpty ||
return EmptyContentElement(); // sources.first == null) {
} // return EmptyContentElement();
return audioWidget( // }
attributes['controls'] != null, // return audioWidget(
attributes['loop'] != null, // attributes['controls'] != null,
attributes['autoplay'] != null, // attributes['loop'] != null,
sources, // attributes['autoplay'] != null,
context.style.width ?? 300.w, // sources,
); // context.style.width ?? 300.w,
}, // );
}, // },
// },
); );
} }

305
pubspec.lock

@ -1,13 +1,6 @@
# Generated by pub # Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile # See https://dart.dev/tools/pub/glossary#lockfile
packages: packages:
_fe_analyzer_shared:
dependency: transitive
description:
name: _fe_analyzer_shared
url: "https://pub.flutter-io.cn"
source: hosted
version: "14.0.0"
ai_decimal_accuracy: ai_decimal_accuracy:
dependency: "direct main" dependency: "direct main"
description: description:
@ -15,13 +8,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
analyzer:
dependency: transitive
description:
name: analyzer
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.41.2"
android_intent_plus: android_intent_plus:
dependency: "direct main" dependency: "direct main"
description: description:
@ -29,13 +15,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.2" version: "1.0.2"
args:
dependency: transitive
description:
name: args
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.3.0"
async: async:
dependency: transitive dependency: transitive
description: description:
@ -71,62 +50,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.1.6" version: "0.1.6"
build:
dependency: transitive
description:
name: build
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.6.2"
build_config:
dependency: transitive
description:
name: build_config
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.4.6"
build_daemon:
dependency: transitive
description:
name: build_daemon
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.10"
build_resolvers:
dependency: transitive
description:
name: build_resolvers
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.5.3"
build_runner:
dependency: "direct dev"
description:
name: build_runner
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.11.5"
build_runner_core:
dependency: transitive
description:
name: build_runner_core
url: "https://pub.flutter-io.cn"
source: hosted
version: "6.1.10"
built_collection:
dependency: transitive
description:
name: built_collection
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.3.2"
built_value:
dependency: transitive
description:
name: built_value
url: "https://pub.flutter-io.cn"
source: hosted
version: "7.1.0"
cached_network_image: cached_network_image:
dependency: "direct main" dependency: "direct main"
description: description:
@ -148,34 +71,20 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.2.0" version: "1.2.0"
checked_yaml:
dependency: transitive
description:
name: checked_yaml
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.4"
chewie: chewie:
dependency: transitive dependency: transitive
description: description:
name: chewie name: chewie
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.12.2" version: "1.2.2"
chewie_audio: chewie_audio:
dependency: "direct main" dependency: "direct main"
description: description:
name: chewie_audio name: chewie_audio
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.2" version: "1.2.0"
cli_util:
dependency: transitive
description:
name: cli_util
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.3.5"
clock: clock:
dependency: transitive dependency: transitive
description: description:
@ -183,13 +92,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
code_builder:
dependency: transitive
description:
name: code_builder
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.7.0"
collection: collection:
dependency: transitive dependency: transitive
description: description:
@ -211,20 +113,13 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.1.5" version: "2.1.5"
css_colors:
dependency: transitive
description:
name: css_colors
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.1"
csslib: csslib:
dependency: transitive dependency: transitive
description: description:
name: csslib name: csslib
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.16.2" version: "0.17.1"
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
@ -232,13 +127,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.3" version: "1.0.3"
dart_style:
dependency: transitive
description:
name: dart_style
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.3.12"
dio: dio:
dependency: "direct main" dependency: "direct main"
description: description:
@ -274,13 +162,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "6.1.2" version: "6.1.2"
fixnum:
dependency: transitive
description:
name: fixnum
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.10.11"
flare_flutter: flare_flutter:
dependency: "direct main" dependency: "direct main"
description: description:
@ -348,19 +229,26 @@ packages:
name: flutter_html name: flutter_html
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.3.0" version: "2.1.5"
flutter_layout_grid: flutter_layout_grid:
dependency: transitive dependency: transitive
description: description:
name: flutter_layout_grid name: flutter_layout_grid
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.10.5" version: "1.0.3"
flutter_localizations: flutter_localizations:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
flutter_math_fork:
dependency: transitive
description:
name: flutter_math_fork
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.3.3+1"
flutter_page_indicator: flutter_page_indicator:
dependency: transitive dependency: transitive
description: description:
@ -416,7 +304,7 @@ packages:
name: flutter_svg name: flutter_svg
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.20.0-nullsafety.3" version: "0.22.0"
flutter_swiper: flutter_swiper:
dependency: "direct main" dependency: "direct main"
description: description:
@ -448,13 +336,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "9.1.0" version: "9.1.0"
glob:
dependency: transitive
description:
name: glob
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.1"
graphs: graphs:
dependency: transitive dependency: transitive
description: description:
@ -468,7 +349,7 @@ packages:
name: html name: html
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.14.0+4" version: "0.15.0"
http: http:
dependency: transitive dependency: transitive
description: description:
@ -476,13 +357,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.12.2" version: "0.12.2"
http_multi_server:
dependency: transitive
description:
name: http_multi_server
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.2.0"
http_parser: http_parser:
dependency: transitive dependency: transitive
description: description:
@ -497,13 +371,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
import_js_library:
dependency: transitive
description:
name: import_js_library
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.2"
intl: intl:
dependency: "direct main" dependency: "direct main"
description: description:
@ -511,13 +378,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.17.0" version: "0.17.0"
io:
dependency: transitive
description:
name: io
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.3.5"
js: js:
dependency: transitive dependency: transitive
description: description:
@ -532,13 +392,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "3.1.1" version: "3.1.1"
json_serializable:
dependency: "direct dev"
description:
name: json_serializable
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.5.1"
keframe: keframe:
dependency: "direct main" dependency: "direct main"
description: description:
@ -560,13 +413,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
logging:
dependency: transitive
description:
name: logging
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.2"
matcher: matcher:
dependency: transitive dependency: transitive
description: description:
@ -581,20 +427,20 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.3.0" version: "1.3.0"
mime: nested:
dependency: transitive dependency: transitive
description: description:
name: mime name: nested
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.1" version: "1.0.0"
package_config: numerus:
dependency: transitive dependency: transitive
description: description:
name: package_config name: numerus
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.9.3" version: "1.1.1"
package_info: package_info:
dependency: "direct main" dependency: "direct main"
description: description:
@ -700,13 +546,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.3" version: "1.0.3"
pool:
dependency: transitive
description:
name: pool
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.5.0"
process: process:
dependency: transitive dependency: transitive
description: description:
@ -714,20 +553,13 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "4.2.3" version: "4.2.3"
pub_semver: provider:
dependency: transitive dependency: transitive
description: description:
name: pub_semver name: provider
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.1.0" version: "5.0.0"
pubspec_parse:
dependency: transitive
description:
name: pubspec_parse
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.1.8"
pull_to_refresh: pull_to_refresh:
dependency: "direct main" dependency: "direct main"
description: description:
@ -755,7 +587,7 @@ packages:
name: quiver name: quiver
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.1.5" version: "3.0.1+1"
retrofit: retrofit:
dependency: "direct main" dependency: "direct main"
description: description:
@ -763,13 +595,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.3.4+1" version: "1.3.4+1"
retrofit_generator:
dependency: "direct dev"
description:
name: retrofit_generator
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.4.1+3"
rive: rive:
dependency: "direct main" dependency: "direct main"
description: description:
@ -833,32 +658,11 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.3.0" version: "1.3.0"
shelf:
dependency: transitive
description:
name: shelf
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.7.9"
shelf_web_socket:
dependency: transitive
description:
name: shelf_web_socket
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.2.4+1"
sky_engine: sky_engine:
dependency: transitive dependency: transitive
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.99" version: "0.0.99"
source_gen:
dependency: transitive
description:
name: source_gen
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.9.10+3"
source_span: source_span:
dependency: transitive dependency: transitive
description: description:
@ -894,13 +698,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
stream_transform:
dependency: transitive
description:
name: stream_transform
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.0"
string_scanner: string_scanner:
dependency: transitive dependency: transitive
description: description:
@ -929,13 +726,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.3.0" version: "0.3.0"
timing:
dependency: transitive
description:
name: timing
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.1.1+3"
tpns_flutter_plugin: tpns_flutter_plugin:
dependency: "direct main" dependency: "direct main"
description: description:
@ -958,7 +748,7 @@ packages:
name: tuple name: tuple
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.3" version: "2.0.0"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:
@ -1028,63 +818,63 @@ packages:
name: video_player name: video_player
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.1" version: "2.2.3"
video_player_platform_interface: video_player_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: video_player_platform_interface name: video_player_platform_interface
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.2.0" version: "4.2.0"
video_player_web: video_player_web:
dependency: transitive dependency: transitive
description: description:
name: video_player_web name: video_player_web
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.1.4+1" version: "2.0.4"
wakelock: wakelock:
dependency: transitive dependency: transitive
description: description:
name: wakelock name: wakelock
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.2.1+1" version: "0.5.6"
wakelock_platform_interface: wakelock_macos:
dependency: transitive dependency: transitive
description: description:
name: wakelock_platform_interface name: wakelock_macos
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.1.0+1" version: "0.4.0"
wakelock_web: wakelock_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: wakelock_web name: wakelock_platform_interface
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.1.0+3" version: "0.3.0"
watcher: wakelock_web:
dependency: transitive dependency: transitive
description: description:
name: watcher name: wakelock_web
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.0" version: "0.4.0"
web_socket_channel: wakelock_windows:
dependency: transitive dependency: transitive
description: description:
name: web_socket_channel name: wakelock_windows
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.2.0" version: "0.2.0"
webview_flutter: webview_flutter:
dependency: "direct main" dependency: transitive
description: description:
name: webview_flutter name: webview_flutter
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.7" version: "2.0.13"
win32: win32:
dependency: transitive dependency: transitive
description: description:
@ -1106,13 +896,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "5.1.2" version: "5.1.2"
yaml:
dependency: transitive
description:
name: yaml
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.1.0"
sdks: sdks:
dart: ">=2.13.0 <3.0.0" dart: ">=2.13.0 <3.0.0"
flutter: ">=2.0.0" flutter: ">=2.2.0"

13
pubspec.yaml

@ -63,12 +63,11 @@ dependencies:
path_provider: ^1.2.0 path_provider: ^1.2.0
cached_network_image: ^2.0.0 cached_network_image: ^2.0.0
flutter_html: ^1.3.0 #2.1.0 flutter_html: ^2.1.5 #2.1.0
webview_flutter: ^1.0.7
chewie_audio: ^1.1.2 chewie_audio: ^1.1.2
photo_view: ^0.11.1 photo_view: ^0.11.1
video_player: ^1.0.1 video_player: ^2.2.3
package_info: ^2.0.2 package_info: ^2.0.2
@ -80,7 +79,7 @@ dependencies:
rive: ^0.6.8 rive: ^0.6.8
flare_flutter: ^3.0.2 flare_flutter: ^3.0.2
flutter_svg: ^0.20.0-nullsafety.3 flutter_svg: ^0.22.0
font_awesome_flutter: ^9.1.0 font_awesome_flutter: ^9.1.0
ai_decimal_accuracy: ^1.1.0 ai_decimal_accuracy: ^1.1.0
@ -88,9 +87,9 @@ dependencies:
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
retrofit_generator: ^1.4.1+3 # retrofit_generator: ^1.4.1+3
build_runner: ^1.11.5 # build_runner: ^1.11.5
json_serializable: ^3.5.1 # json_serializable: ^3.5.1
flutter: flutter:

Loading…
Cancel
Save