Browse Source

课程更改

ff_new
w-R 3 years ago
parent
commit
6d4c575881
  1. BIN
      assets/image/2x/ketang_play.png
  2. BIN
      assets/image/3x/ketang_play.png
  3. BIN
      assets/image/ketang_play.png
  4. 6
      lib/community/community_course.dart
  5. 52
      lib/community/community_view/class_details.dart
  6. 99
      lib/community/community_view/class_list_view.dart
  7. 89
      lib/community/community_view/home_class.dart
  8. 18
      lib/home/home_view/shortcut_operation.dart
  9. 33
      lib/integral_store/integral_store_details_page.dart
  10. 70
      lib/retrofit/data/course_details.dart
  11. 11
      lib/retrofit/min_api.dart
  12. 2
      lib/retrofit/min_api.g.dart
  13. 12
      lib/retrofit/retrofit_api.dart
  14. 24
      lib/retrofit/retrofit_api.g.dart
  15. 3
      lib/union/union_page.dart

BIN
assets/image/2x/ketang_play.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 413 B

BIN
assets/image/3x/ketang_play.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 B

BIN
assets/image/ketang_play.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 B

6
lib/community/community_course.dart

@ -7,7 +7,6 @@ import 'package:huixiang/main.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/brand_data.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';
@ -88,7 +87,6 @@ class _CommunityCourse extends State<CommunityCourse>
EasyLoading.dismiss();
}
///
classListAsync() async {
if (apiService == null) {
@ -258,8 +256,8 @@ class _CommunityCourse extends State<CommunityCourse>
SizedBox(height: 28),
///
HomeClass(collect,collectList),
///
HomeClass(collect,collectList,),
///
ClassTitleTab(classSelectList,(index){

52
lib/community/community_view/class_details.dart

@ -10,8 +10,6 @@ import 'package:huixiang/generated/l10n.dart';
import 'package:huixiang/retrofit/data/base_data.dart';
import 'package:huixiang/retrofit/data/chapter.dart';
import 'package:huixiang/retrofit/data/course_details.dart';
import 'package:huixiang/retrofit/data/member_comment_list.dart';
import 'package:huixiang/retrofit/data/page.dart';
import 'package:huixiang/retrofit/retrofit_api.dart';
import 'package:huixiang/utils/font_weight.dart';
import 'package:huixiang/view_widget/custom_image.dart';
@ -176,13 +174,13 @@ class _ClassDetails extends State<ClassDetails> with WidgetsBindingObserver{
crossAxisAlignment: CrossAxisAlignment.center,
children: [
GestureDetector(
child: Icon(
Icons.arrow_back_ios,
color: Colors.white,
size: 24,
child: Image.asset(
"assets/image/integral_return.png",
width: 24,
height: 24,
),
onTap: () {
Navigator.of(context).pop();
Navigator.of(context).pop(course.viewers+1);
},
),
],
@ -268,9 +266,7 @@ class _ClassDetails extends State<ClassDetails> with WidgetsBindingObserver{
),
)),
Text(
"播放次数",
overflow: TextOverflow.ellipsis,
maxLines: 2,
"播放次数:",
style: TextStyle(
fontSize: 12.sp,
fontWeight: MyFontWeight.regular,
@ -352,8 +348,8 @@ class _ClassDetails extends State<ClassDetails> with WidgetsBindingObserver{
commentTextController,
_toComment,
_queryMemberComment,
_queryInformationLikes,
isLike: false,
_queryCourseLikes,
isLike:course?.selfLiked,
),
],
),
@ -527,18 +523,34 @@ class _ClassDetails extends State<ClassDetails> with WidgetsBindingObserver{
);
}
////
_queryInformationLikes() async {
BaseData baseData = await apiService.informationLikes(widget.arguments["id"]).catchError((onError) {});
if (baseData != null && baseData.isSuccess) {
commentKey.currentState.setState(() {});
setState(() {
// if (comunity.selfLike ?? false)
// ////
// _queryInformationLikes() async {
// BaseData baseData = await apiService.courseLikes(widget.arguments["id"]).catchError((onError) {});
// if (baseData != null && baseData.isSuccess) {
// commentKey.currentState.setState(() {});
// setState(() {
// comunity.likes -= 1;
// else
// comunity.likes += 1;
// comunity.selfLike = !comunity.selfLike ?? false;
//
// });
// } else {
// // SmartDialog.showToast(baseData.msg, alignment: Alignment.center);
// }
// }
///
_queryCourseLikes() async {
BaseData baseData = await apiService.courseLikes(widget.arguments["id"]).catchError((onError) {});
if (baseData != null && baseData.isSuccess) {
setState(() {
if (course.selfLiked ?? false)
course.likes -= 1;
else
course.likes += 1;
course.selfLiked = !course.selfLiked ?? false;
});
commentKey.currentState.setState(() {});
} else {
// SmartDialog.showToast(baseData.msg, alignment: Alignment.center);
}

99
lib/community/community_view/class_list_view.dart

@ -31,19 +31,21 @@ class _ClassListView extends State<ClassListView> {
physics: NeverScrollableScrollPhysics(),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
//Widget数量
crossAxisCount: 3,
crossAxisCount:2,
//Widget之间间距
crossAxisSpacing: 11.w,
//Widget之间间距
mainAxisSpacing: 16.w,
//Widget宽高比例 0.59
childAspectRatio:
166 / (281 / 2 + (281 / 2) * AppUtils.textScale(context)),
260 / (281 / 2 + (281 / 2) * AppUtils.textScale(context)),
),
itemBuilder: (context, index) {
return GestureDetector(
onTap: () {
Navigator.of(context).pushNamed('/router/class_details',arguments: {"id": widget.classList[index].id});
Navigator.of(context).pushNamed('/router/class_details',
arguments: {"id": widget.classList[index].id})
.then((value) => {widget.classList[index].viewers = value != null?value:widget.classList[index].viewers+1});
},
child: classListItem(widget.classList[index]),
);
@ -53,13 +55,23 @@ class _ClassListView extends State<ClassListView> {
Widget classListItem(CourseList classList) {
return Container(
width: 106,
height: 189,
decoration: BoxDecoration(
borderRadius: BorderRadius.vertical(
bottom: Radius.circular(4),
),
boxShadow: [
BoxShadow(
color: Colors.black.withAlpha(10),
offset: Offset(0, 3),
blurRadius: 14,
spreadRadius: 0,
)
],
color: Colors.white,
),
margin: EdgeInsets.symmetric(
// horizontal: 6.w,
vertical: 3,
),
color: Colors.white,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@ -67,9 +79,23 @@ class _ClassListView extends State<ClassListView> {
alignment: Alignment(0.9, 0.9),
children: [
Container(
color: Color.fromARGB(80, 0, 0, 0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(4),
boxShadow: [
BoxShadow(
color: Colors.black.withAlpha(10),
offset: Offset(0, 3),
blurRadius: 14,
spreadRadius: 0,
)
],
color: Color.fromARGB(90, 0, 0, 0),
),
child: ClipRRect(
child: MImage(
child:
Opacity(
opacity: 0.6,
child:MImage(
classList.coverImg,
width: double.infinity,
height: 120,
@ -77,6 +103,7 @@ class _ClassListView extends State<ClassListView> {
errorSrc: "assets/image/default_1.png",
fadeSrc: "assets/image/default_1.png",
),
),
borderRadius: BorderRadius.vertical(
top: Radius.circular(4),
),
@ -91,27 +118,7 @@ class _ClassListView extends State<ClassListView> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Image.asset(
"assets/image/ketang_like.png",
width: 16.w,
height: 16.h,
color: Colors.white,
),
SizedBox(width: 5),
Text(
classList.likes.toString(),
style: TextStyle(
fontSize: 12.sp,
fontWeight: MyFontWeight.regular,
color: Colors.white,
),
),
],
),
SizedBox(width: 8),
Row(
children: [
Image.asset(
"assets/image/ketang_message.png",
"assets/image/ketang_play.png",
width: 16.w,
height: 16.h,
color: Colors.white,
@ -127,28 +134,52 @@ class _ClassListView extends State<ClassListView> {
),
],
),
SizedBox(width: 8),
// Row(
// children: [
// Image.asset(
// "assets/image/ketang_message.png",
// width: 16.w,
// height: 16.h,
// color: Colors.white,
// ),
// SizedBox(width: 5),
// Text(
// classList.viewers.toString(),
// style: TextStyle(
// fontSize: 12.sp,
// fontWeight: MyFontWeight.regular,
// color: Colors.white,
// ),
// ),
// ],
// ),
],
),
),
],
),
Container(
padding: EdgeInsets.only(left: 4, top: 3),
Expanded(child:Container(
padding: EdgeInsets.all(10),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
classList.subject,
overflow: TextOverflow.ellipsis,
maxLines: 2,
style: TextStyle(
fontSize: 14.sp,
fontWeight: MyFontWeight.medium,
fontWeight: MyFontWeight.semi_bold,
color: Colors.black,
),
),
SizedBox(height: 2),
Text(
"讲师:${classList.author.name}",
overflow: TextOverflow.ellipsis,
maxLines: 2,
style: TextStyle(
fontSize: 12.sp,
fontWeight: MyFontWeight.regular,
@ -157,7 +188,7 @@ class _ClassListView extends State<ClassListView> {
),
],
),
),
),)
],
),
);

89
lib/community/community_view/home_class.dart

@ -76,7 +76,8 @@ class _HomeClass extends State<HomeClass> {
return GestureDetector(
onTap: () {
Navigator.of(context).pushNamed('/router/class_details',
arguments: {"id":widget.collect[position].id});
arguments: {"id":widget.collect[position].id})
.then((value) => {widget.collect[position].viewers = value != null?value:widget.collect[position].viewers+1});
},
child: classItem(widget.collect[position]),
);
@ -92,19 +93,47 @@ class _HomeClass extends State<HomeClass> {
return Container(
width: 168,
height: 189,
margin: EdgeInsets.symmetric(
horizontal: 6.w,
vertical: 3,
decoration: BoxDecoration(
borderRadius: BorderRadius.vertical(
bottom: Radius.circular(4),
),
boxShadow: [
BoxShadow(
color: Colors.black.withAlpha(10),
offset: Offset(0, 3),
blurRadius: 14,
spreadRadius: 0,
)
],
color: Colors.white,
),
margin: EdgeInsets.symmetric(
horizontal:6,
),
child: Column(
children: [
Stack(
alignment: Alignment.topRight,
children: [
Stack(
alignment: Alignment(0.9,0.9),
children: [
Container(
color: Color.fromARGB(80, 0, 0, 0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(4),
boxShadow: [
BoxShadow(
color: Colors.black.withAlpha(10),
offset: Offset(0, 3),
blurRadius: 14,
spreadRadius: 0,
)
],
color: Color.fromARGB(90, 0, 0, 0),
),
child: ClipRRect(
child: Opacity(
opacity: 0.6,
child: MImage(
collect.coverImg,
width: double.infinity,
@ -113,6 +142,7 @@ class _HomeClass extends State<HomeClass> {
errorSrc: "assets/image/default_1.png",
fadeSrc: "assets/image/default_1.png",
),
),
borderRadius: BorderRadius.vertical(
top: Radius.circular(4),
),
@ -127,14 +157,14 @@ class _HomeClass extends State<HomeClass> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Image.asset(
"assets/image/ketang_like.png",
"assets/image/ketang_play.png",
width: 16.w,
height: 16.h,
color: Colors.white,
),
SizedBox(width:5),
Text(
collect.likes.toString(),
collect.viewers.toString(),
style: TextStyle(
fontSize: 12.sp,
fontWeight: MyFontWeight.regular,
@ -165,56 +195,59 @@ class _HomeClass extends State<HomeClass> {
// ),
],
),
),
],
),
Container(
padding: EdgeInsets.only(left:4,top: 2),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(height:2),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
margin: EdgeInsets.only(top: 8,right: 8),
height: 16.h,
width: 30.w,
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(2),
border: Border.all(
width: 1,
color: Color(0xFFFF7A1A),
style: BorderStyle.solid,
),
color: Color(0xFFFFCD00),
),
child: Text(
( collect?.tags != null && collect.tags.length > 0 )?collect.tags[0] : "",
style: TextStyle(
fontSize: 12.sp,
fontWeight: MyFontWeight.medium,
color: Color(0xFFFF7A1A),
color: Color(0xFF634815),
),
),
),
SizedBox(width:5),
],
),
Expanded(child:
Container(
padding: EdgeInsets.all(10),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(child: Text(
collect.subject,
overflow: TextOverflow.ellipsis,
maxLines: 2,
style: TextStyle(
fontSize: 14.sp,
fontWeight: MyFontWeight.medium,
fontWeight: MyFontWeight.semi_bold,
color: Colors.black,
),
),),
],
),
SizedBox(height:3),
SizedBox(height:5),
Text(
"讲师:${collect.author.name}",
overflow: TextOverflow.ellipsis,
maxLines: 2,
style: TextStyle(
fontSize: 12.sp,
fontWeight: MyFontWeight.regular,
@ -223,7 +256,7 @@ class _HomeClass extends State<HomeClass> {
),
],
),
),
),),
],
),
);

18
lib/home/home_view/shortcut_operation.dart

@ -47,7 +47,7 @@ class _ShortcutOperation extends State<ShortcutOperation> {
child: Container(
width: 106,
color: Colors.white,
margin: EdgeInsets.only(left: 15,right: 15),
margin: EdgeInsets.only(right:10),
padding: EdgeInsets.only(top: 8,bottom: 8),
child: Column(
children: [
@ -69,11 +69,11 @@ class _ShortcutOperation extends State<ShortcutOperation> {
),
),
SizedBox(height: 20),
Image.asset(
Expanded(child: Image.asset(
"assets/image/home_order.png",
width:70,
height:70,
),
),),
],
),
),
@ -85,7 +85,7 @@ class _ShortcutOperation extends State<ShortcutOperation> {
child: Container(
width: 106,
color: Colors.white,
margin: EdgeInsets.only(left: 15,right: 15),
margin: EdgeInsets.only(right:10),
padding: EdgeInsets.only(top: 8,bottom: 8),
child: Column(
children: [
@ -107,11 +107,11 @@ class _ShortcutOperation extends State<ShortcutOperation> {
),
),
SizedBox(height: 20),
Image.asset(
Expanded(child:Image.asset(
"assets/image/home_recharge.png",
width:70,
height:70,
),
),),
],
),
),
@ -123,7 +123,6 @@ class _ShortcutOperation extends State<ShortcutOperation> {
child:Container(
width: 106,
color: Colors.white,
margin: EdgeInsets.only(left: 15,right: 15),
padding: EdgeInsets.only(top: 8,bottom: 8),
child: Column(
children: [
@ -145,11 +144,12 @@ class _ShortcutOperation extends State<ShortcutOperation> {
),
),
SizedBox(height: 20),
Image.asset(
Expanded(child: Image.asset(
"assets/image/home_coupon.png",
width:70,
height:70,
),
), ),
],
),
),

33
lib/integral_store/integral_store_details_page.dart

@ -115,31 +115,34 @@ class _IntegralStoreDetailsPage extends State {
),
GestureDetector(
onTap: () {
if (goods != null &&
points != null &&
int.tryParse(goods.price) < int.tryParse(points)) {
toExchangeOrder();
}
// if (goods != null &&
// points != null &&
// int.tryParse(goods.price) < int.tryParse(points)) {
// toExchangeOrder();
// }
},
child: Container(
padding: EdgeInsets.only(top: 16.h, bottom: 16.h),
decoration: BoxDecoration(
color: (goods != null &&
points != null &&
int.tryParse(goods.price) < int.tryParse(points))
? Color(0xFF32A060)
: Color(0xFFD8D8D8),
color:
// (goods != null &&
// points != null &&
// int.tryParse(goods.price) < int.tryParse(points))
// ? Color(0xFF32A060)
// :
Color(0xFFD8D8D8),
borderRadius: BorderRadius.vertical(
top: Radius.circular(4),
),
),
alignment: Alignment.center,
child: Text(
(goods != null &&
points != null &&
int.tryParse(goods.price) < int.tryParse(points))
? S.of(context).duihuan
: S.of(context).jifenbuzu,
// (goods != null &&
// points != null &&
// int.tryParse(goods.price) < int.tryParse(points))
// ? S.of(context).duihuan
// : S.of(context).jifenbuzu,
"兑换功能暂未开放",
style: TextStyle(
fontSize: 16.sp,
color: Color(0xFFFFFFFF),

70
lib/retrofit/data/course_details.dart

@ -29,6 +29,7 @@ class CourseDetails {
String introduce,
int viewers,
int likes,
bool selfLiked,
bool state,
int isDelete,}){
_id = id;
@ -44,6 +45,7 @@ class CourseDetails {
_introduce = introduce;
_viewers = viewers;
_likes = likes;
_selfLiked = selfLiked;
_state = state;
_isDelete = isDelete;
}
@ -62,6 +64,7 @@ class CourseDetails {
_introduce = json['introduce'];
_viewers = json['viewers'];
_likes = json['likes'];
_selfLiked = json['selfLiked'];
_state = json['state'];
_isDelete = json['isDelete'];
}
@ -78,6 +81,7 @@ class CourseDetails {
String _introduce;
int _viewers;
int _likes;
bool _selfLiked;
bool _state;
int _isDelete;
@ -94,9 +98,15 @@ class CourseDetails {
String get introduce => _introduce;
int get viewers => _viewers;
int get likes => _likes;
bool get selfLiked => _selfLiked;
bool get state => _state;
int get isDelete => _isDelete;
set id(String value) {
_id = value;
}
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['id'] = _id;
@ -114,11 +124,71 @@ class CourseDetails {
map['introduce'] = _introduce;
map['viewers'] = _viewers;
map['likes'] = _likes;
map['selfLiked'] = _selfLiked;
map['state'] = _state;
map['isDelete'] = _isDelete;
return map;
}
set createTime(String value) {
_createTime = value;
}
set createUser(String value) {
_createUser = value;
}
set updateTime(String value) {
_updateTime = value;
}
set updateUser(String value) {
_updateUser = value;
}
set categoryId(String value) {
_categoryId = value;
}
set subject(String value) {
_subject = value;
}
set tags(List<String> value) {
_tags = value;
}
set coverImg(String value) {
_coverImg = value;
}
set author(Author value) {
_author = value;
}
set introduce(String value) {
_introduce = value;
}
set viewers(int value) {
_viewers = value;
}
set likes(int value) {
_likes = value;
}
set selfLiked(bool value) {
_selfLiked = value;
}
set state(bool value) {
_state = value;
}
set isDelete(int value) {
_isDelete = value;
}
}
/// name : "1"

11
lib/retrofit/min_api.dart

@ -21,13 +21,12 @@ import 'data/shoppingCart.dart';
part 'min_api.g.dart';
const base_url = "https://pos.api.lotus-wallet.com/app/"; ///
const baseUrl = "https://pos.api.lotus-wallet.com/app/"; ///
// const base_url = "https://pos.api.lotus-wallet.com/app/"; ///
// const baseUrl = "https://pos.api.lotus-wallet.com/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.236:8765/app/";
///
// const baseUrl = "http://192.168.10.236:8765/app/";
///
// const base_url = "http://192.168.10.37:8766/app/";
// const baseUrl = "http://192.168.10.37:8766/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;

12
lib/retrofit/retrofit_api.dart

@ -45,11 +45,11 @@ import 'data/wx_pay.dart';
part 'retrofit_api.g.dart';
const base_url = "https://pos.platform.lotus-wallet.com/app/"; ///
const baseUrl = "https://pos.platform.lotus-wallet.com/app/"; ///
// const base_url = "https://pos.platform.lotus-wallet.com/app/"; ///
// const baseUrl = "https://pos.platform.lotus-wallet.com/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.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/";
@ -422,4 +422,8 @@ abstract class ApiService {
@GET("/course/{id}")
Future<BaseData<CourseDetails>> course(@Path("id") String id);
////
@GET("/course/likes/{courseId}")
Future<BaseData> courseLikes(@Path("courseId") String courseId);
}

24
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;
@ -1509,4 +1509,26 @@ class _ApiService implements ApiService {
return value;
}
@override
Future<BaseData<dynamic>> courseLikes(courseId) async {
ArgumentError.checkNotNull(courseId, 'courseId');
const _extra = <String, dynamic>{};
final queryParameters = <String, dynamic>{};
final _data = <String, dynamic>{};
final _result = await _dio.request<Map<String, dynamic>>(
'/course/likes/$courseId',
queryParameters: queryParameters,
options: RequestOptions(
method: 'GET',
headers: <String, dynamic>{},
extra: _extra,
baseUrl: baseUrl),
data: _data);
final value = BaseData<dynamic>.fromJson(
_result.data,
(json) => json as dynamic,
);
return value;
}
}

3
lib/union/union_page.dart

@ -1,5 +1,4 @@
import 'dart:ui';
import 'package:dio/dio.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/gestures.dart';
@ -13,7 +12,6 @@ import 'package:huixiang/main.dart';
import 'package:huixiang/retrofit/data/base_data.dart';
import 'package:huixiang/retrofit/data/store.dart';
import 'package:huixiang/retrofit/retrofit_api.dart';
import 'package:huixiang/store/scan.dart';
import 'package:huixiang/utils/event_type.dart';
import 'package:huixiang/utils/location.dart';
import 'package:huixiang/view_widget/border_text.dart';
@ -93,7 +91,6 @@ class _UnionPage extends State<UnionPage>
startLocation() async {
EasyLoading.show(status: S.current.zhengzaijiazai);
Location.getInstance()
.aMapFlutterLocation
.onResultCallback()

Loading…
Cancel
Save