阿库学院

master
章文轩 4 years ago
parent 52e968477c
commit 3b24d5c572

@ -68,7 +68,7 @@ android {
ndk { ndk {
//SO //SO
abiFilters 'arm64-v8a'//, 'arm64-v8a', 'x86', 'x86_64' abiFilters 'arm64-v8a'//, 'arm64-v8a', 'x86', 'x86_64'
abiFilters 'armeabi-v7a' // abiFilters 'armeabi-v7a'
} }
manifestPlaceholders = [ manifestPlaceholders = [
OPENINSTALL_APPKEY : "uapywo", OPENINSTALL_APPKEY : "uapywo",

Binary file not shown.

After

Width:  |  Height:  |  Size: 558 KiB

@ -155,6 +155,12 @@ class UserAPI {
/// ///
String get findCountry => '/v2/app/abroad/search_country'; String get findCountry => '/v2/app/abroad/search_country';
///
String get getAkuVideoList => '/v2/app/aku_school/school_list';
} }
class BenefitAPI { class BenefitAPI {

@ -525,7 +525,8 @@ class _AirlineWidgetState extends State<AirlineWidget> {
_chooseConditon() { _chooseConditon() {
return Container( return Container(
height: 48.rw, height: 48.rw,
margin: EdgeInsets.only(left: 55.rw, right: 55.rw, bottom: 10.rw), //margin: EdgeInsets.only(left: 55.rw, right: 55.rw, bottom: 10.rw),
margin: EdgeInsets.only(left: 85.rw, right: 85.rw, bottom: 10.rw),
//padding: EdgeInsets.symmetric(horizontal: 55.rw), //padding: EdgeInsets.symmetric(horizontal: 55.rw),
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.horizontal( borderRadius: BorderRadius.horizontal(
@ -534,45 +535,45 @@ class _AirlineWidgetState extends State<AirlineWidget> {
color: Colors.white), color: Colors.white),
child: Row( child: Row(
children: [ children: [
GestureDetector( // GestureDetector(
onTap: () async { // onTap: () async {
Options options = await show2DatePicker(context, // Options options = await show2DatePicker(context,
fromNameList: _getAirportNameList(widget.fromText), // fromNameList: _getAirportNameList(widget.fromText),
endNameList: _getAirportNameList(widget.toText)); // endNameList: _getAirportNameList(widget.toText));
_chooseScreen = true; // _chooseScreen = true;
_airLineHandleList = _getList(_airLineList, options); // _airLineHandleList = _getList(_airLineList, options);
if (options.arrive == '' && // if (options.arrive == '' &&
options.company == '' && // options.company == '' &&
options.date == '' && // options.date == '' &&
options.depart == '' && // options.depart == '' &&
options.space == '') { // options.space == '') {
_chooseScreen = false; // _chooseScreen = false;
_airLineHandleList = _airLineList; // _airLineHandleList = _airLineList;
setState(() {}); // setState(() {});
} // }
}, // },
child: Container( // child: Container(
alignment: Alignment.center, // alignment: Alignment.center,
child: Column( // child: Column(
mainAxisAlignment: MainAxisAlignment.center, // mainAxisAlignment: MainAxisAlignment.center,
children: [ // children: [
Image.asset( // Image.asset(
_chooseScreen // _chooseScreen
? R.ASSETS_TICKET_SCREEN_CHOOSE_ICON_PNG // ? R.ASSETS_TICKET_SCREEN_CHOOSE_ICON_PNG
: R.ASSETS_TICKET__SCREEN_ICON_PNG, // : R.ASSETS_TICKET__SCREEN_ICON_PNG,
width: 17.rw, // width: 17.rw,
height: 17.rw, // height: 17.rw,
), // ),
Text( // Text(
'筛选条件', // '筛选条件',
style: TextStyle( // style: TextStyle(
color: _chooseScreen ? Colors.red : Colors.black, // color: _chooseScreen ? Colors.red : Colors.black,
fontSize: 12.rsp), // fontSize: 12.rsp),
), // ),
], // ],
), // ),
), // ),
).expand(), // ).expand(),
GestureDetector( GestureDetector(
onTap: () { onTap: () {
_choosePriceSort = true; _choosePriceSort = true;

@ -26,7 +26,8 @@ class AirplaneReservePage extends StatefulWidget {
this.fromText, this.fromText,
this.toText, this.toText,
this.originDate, this.originDate,
this.index, this.itemId}) this.index,
this.itemId})
: super(key: key); : super(key: key);
@override @override
@ -372,37 +373,103 @@ class _AirplaneReservePageState extends State<AirplaneReservePage>
Column( Column(
children: [ children: [
10.hb, 10.hb,
CustomImageButton( model.seatStatus != 'A'
height: 38.rw, ? CustomImageButton(
width: 44.rw, padding: EdgeInsets.zero,
title: "预订", boxDecoration: BoxDecoration(boxShadow: [
boxDecoration: BoxDecoration( BoxShadow(
gradient: LinearGradient( color: Color(0xFFC92219),
begin: Alignment.centerLeft, blurRadius: 4.rw,
end: Alignment.centerRight, )
colors: [ ]),
Color(0xFFFF493F), height: 38.rw,
Color(0xFFC92219), width: 44.rw,
], child: Column(
), children: [
borderRadius: BorderRadius.all(Radius.circular(4.rw)), Container(
), alignment: Alignment.center,
backgroundColor: Color(0xFFC92219), height: 24.rw,
color: Colors.white, width: double.infinity,
fontSize: 16.rsp, decoration: BoxDecoration(
onPressed: () { gradient: LinearGradient(
Get.to(AirplaneDetailPage( begin: Alignment.centerLeft,
airline: widget.airline, end: Alignment.centerRight,
airlineindex: widget.index, colors: [
airSeat: type == 1 Color(0xFFFF493F),
? _economyclassList[index] Color(0xFFC92219),
: _firstclassList[index], ],
fromText: widget.fromText, ),
toText: widget.toText, borderRadius:
originDate: widget.originDate, BorderRadius.all(Radius.circular(4.rw)),
itemId:widget.itemId)); ),
}, child: Text('预订',
), style: TextStyle(
color: Colors.white,
fontSize: 16.rsp,
)),
),
Container(
alignment: Alignment.center,
height: 14.rw,
width: double.infinity,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(4.rw),
bottomRight: Radius.circular(4.rw)),
),
child: Text("" + model.seatStatus + "",
style: TextStyle(
color: Color(0xFFF64239),
fontSize: 10.rsp,
)),
),
],
),
onPressed: () {
Get.to(AirplaneDetailPage(
airline: widget.airline,
airlineindex: widget.index,
airSeat: type == 1
? _economyclassList[index]
: _firstclassList[index],
fromText: widget.fromText,
toText: widget.toText,
originDate: widget.originDate,
itemId: widget.itemId));
},
)
: CustomImageButton(
height: 38.rw,
width: 44.rw,
title: "预订",
boxDecoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.centerLeft,
end: Alignment.centerRight,
colors: [
Color(0xFFFF493F),
Color(0xFFC92219),
],
),
borderRadius: BorderRadius.all(Radius.circular(4.rw)),
),
backgroundColor: Color(0xFFC92219),
color: Colors.white,
fontSize: 16.rsp,
onPressed: () {
Get.to(AirplaneDetailPage(
airline: widget.airline,
airlineindex: widget.index,
airSeat: type == 1
? _economyclassList[index]
: _firstclassList[index],
fromText: widget.fromText,
toText: widget.toText,
originDate: widget.originDate,
itemId: widget.itemId));
},
),
], ],
), ),
], ],

@ -1,7 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'condition_picker.dart'; import 'condition_picker.dart';
import 'models/airport_city_model.dart';
class RangeDate { class RangeDate {
DateTime start; DateTime start;

@ -30,8 +30,9 @@ import 'goods_import_list_page.dart';
class ClassifyCategoryPage extends StatefulWidget { class ClassifyCategoryPage extends StatefulWidget {
final List<CategoryListModel> data; final List<CategoryListModel> data;
final int countryId;
final String initValue; final String initValue;
ClassifyCategoryPage({Key key, @required this.data, this.initValue}) ClassifyCategoryPage({Key key, @required this.data, this.initValue,this.countryId})
: super(key: key); : super(key: key);
@override @override
State<StatefulWidget> createState() { State<StatefulWidget> createState() {
@ -306,13 +307,11 @@ class _ClassifyCategoryPageState extends BaseStoreState<ClassifyCategoryPage>
// title: firstTitle, // title: firstTitle,
// index: indexIn, // index: indexIn,
// secondCategoryList: secondCategories)); // secondCategoryList: secondCategories));
print(secondCategory.id);
Get.to(GoodsImportListPage( Get.to(GoodsImportListPage(
title: firstTitle, title: firstTitle,
index: indexIn, index: indexIn,
secondCategoryList: secondCategories, secondCategoryList: secondCategories,
countryId: widget.data[index].first.id)); countryId: widget.countryId));
}, },
); );
}); });

@ -314,7 +314,7 @@ class _ClassifyCountryPageState extends BaseStoreState<ClassifyCountryPage>
categoryListModelList = categoryListModelList =
await HomeDao.getCategoryList(secondCategory.id); await HomeDao.getCategoryList(secondCategory.id);
Get.to(ClassifyCategoryPage(data: categoryListModelList)); Get.to(ClassifyCategoryPage(data: categoryListModelList,countryId:secondCategories[indexIn].id));
}, },
); );
}); });

@ -0,0 +1,27 @@
import 'package:recook/constants/api_v2.dart';
import 'package:recook/manager/http_manager.dart';
import 'package:recook/pages/home/model/aku_video_list_model.dart';
class HomeFuc {
//
static Future<AkuVideoListModel> getAkuVideoList(
String title,int page
) async {
ResultData result = await HttpManager.post(
APIV2.userAPI.getAkuVideoList, {'title': title,
'page':{
'limit':10,
'page':page,
}
});
if (result.data != null) {
if (result.data['data'] != null) {
return AkuVideoListModel.fromJson(result.data['data']);
}
}
}
}

@ -1055,15 +1055,15 @@ class _HomePageState extends BaseStoreState<HomePage>
// AppConfig.getShowCommission() ? "我的店铺" : "家居生活", // AppConfig.getShowCommission() ? "我的店铺" : "家居生活",
// '彩票兑换', // '彩票兑换',
//2021 7,27 ios //2021 7,27 ios
'出行服务', '精彩发现',
onPressed: () async { onPressed: () async {
//AppRouter.push(context, RouteName.REDEEM_LOTTERY_PAGE); //AppRouter.push(context, RouteName.REDEEM_LOTTERY_PAGE);
//widget.tabController.animateTo(2); //widget.tabController.animateTo(2);
// UserManager.instance.selectTabbarIndex = 2; UserManager.instance.selectTabbarIndex = 2;
// bool value = UserManager.instance.selectTabbar.value; bool value = UserManager.instance.selectTabbar.value;
// UserManager.instance.selectTabbar.value = !value; UserManager.instance.selectTabbar.value = !value;
Get.to(() => ChooseTicketsTypePage()); //Get.to(() => ChooseTicketsTypePage());
//setState(() {}); //setState(() {});
}, },
// () { // () {

@ -0,0 +1,79 @@
class AkuVideoListModel {
List<AkuVideo> list;
int total;
AkuVideoListModel({this.list, this.total});
AkuVideoListModel.fromJson(Map<String, dynamic> json) {
if (json['list'] != null) {
list = new List<AkuVideo>();
json['list'].forEach((v) {
list.add(new AkuVideo.fromJson(v));
});
}
total = json['total'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.list != null) {
data['list'] = this.list.map((v) => v.toJson()).toList();
}
data['total'] = this.total;
return data;
}
}
class AkuVideo {
int id;
String title;
String subTitle;
int type;//1 2
int isDraft;
String createDTime;
String textBody;
String coverUrl;
String videoUrl;
num numberOfHits;
AkuVideo(
{this.id,
this.title,
this.subTitle,
this.type,
this.isDraft,
this.createDTime,
this.textBody,
this.coverUrl,
this.videoUrl,
this.numberOfHits,
});
AkuVideo.fromJson(Map<String, dynamic> json) {
id = json['id'];
title = json['title'];
subTitle = json['sub_title'];
type = json['type'];
isDraft = json['is_draft'];
createDTime = json['create_d_time'];
textBody = json['text_body'];
coverUrl = json['cover_url'];
videoUrl = json['video_url'];
numberOfHits = json['number_of_hits'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['title'] = this.title;
data['sub_title'] = this.subTitle;
data['type'] = this.type;
data['is_draft'] = this.isDraft;
data['create_d_time'] = this.createDTime;
data['text_body'] = this.textBody;
data['cover_url'] = this.coverUrl;
data['video_url'] = this.videoUrl;
data['number_of_hits'] = this.numberOfHits;
return data;
}
}

@ -0,0 +1,172 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:recook/base/base_store_state.dart';
import 'package:recook/constants/api.dart';
import 'package:recook/constants/constants.dart';
import 'package:recook/constants/header.dart';
import 'package:recook/constants/styles.dart';
import 'package:recook/pages/home/function/home_fuc.dart';
import 'package:recook/pages/home/model/aku_video_list_model.dart';
import 'package:recook/widgets/custom_app_bar.dart';
import 'package:recook/widgets/custom_cache_image.dart';
import 'package:recook/widgets/progress/re_toast.dart';
import 'package:recook/widgets/refresh_widget.dart';
import 'package:recook/widgets/webView.dart';
import 'package:velocity_x/velocity_x.dart';
import 'package:flustars/flustars.dart';
import 'package:chewie/chewie.dart';
import 'package:video_player/video_player.dart';
import 'package:webview_flutter/webview_flutter.dart';
class AkuCollegeDetailPage extends StatefulWidget {
final AkuVideo akuVideo;
const AkuCollegeDetailPage({Key key, @required this.akuVideo})
: super(key: key);
@override
State<StatefulWidget> createState() {
return _AkuCollegeDetailPageState();
}
}
class _AkuCollegeDetailPageState extends BaseStoreState<AkuCollegeDetailPage> {
//final FijkPlayer player = FijkPlayer();
VideoPlayerController _videoPlayerController;
ChewieController _chewieController;
WebViewController _webViewController;
@override
void initState() {
super.initState();
if (widget.akuVideo.type == 1) {
_videoPlayerController = VideoPlayerController.network(
Api.getImgUrl(widget.akuVideo.videoUrl));
_videoPlayerController.initialize().then((_) {
_chewieController = ChewieController(
videoPlayerController: _videoPlayerController,
aspectRatio: _videoPlayerController.value.aspectRatio,
autoPlay: false,
showControls: true,
);
setState(() {});
});
}
// player.setDataSource(Api.getImgUrl(widget.akuVideo.videoUrl),
// autoPlay: false);
}
@override
void dispose() {
_videoPlayerController?.dispose();
_chewieController?.dispose();
super.dispose();
//player.dispose();
}
@override
Widget buildContext(BuildContext context, {store}) {
return Scaffold(
backgroundColor: Color(0xFFFFFFFF),
appBar: CustomAppBar(
title: "".text.bold.size(18.rsp).make(),
themeData: AppThemes.themeDataGrey.appBarTheme,
),
body: _bodyWidget(),
);
}
_bodyWidget() {
return ListView(
children: [
40.hb,
Row(
children: [
30.wb,
Text(
widget.akuVideo.title,
maxLines: 2,
softWrap: true,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 20.rsp,
color: Color(0xFF333333),
fontWeight: FontWeight.bold),
).expand(),
30.wb,
],
),
20.hb,
Row(
children: [
30.wb,
Text(
widget.akuVideo.subTitle,
softWrap: true,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 12.rsp,
color: Color(0xFF333333),
),
),
40.wb,
Container(
padding: EdgeInsets.only(top: 3.rw),
child: Text(
_getDateTime(widget.akuVideo.createDTime),
softWrap: true,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 12.rsp,
color: Color(0xFF999999),
),
),
),
40.wb,
Text(
widget.akuVideo.numberOfHits.toString() + '人已学习',
softWrap: true,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 12.rsp,
color: Color(0xFF999999),
),
),
],
),
widget.akuVideo.type == 1 ? _playVideo() : _playImagText()
],
);
}
_getDateTime(String date) {
if (date.isEmpty) {
return date;
} else {
DateTime dateTime = DateUtil.getDateTime(date);
return DateUtil.formatDate(dateTime, format: 'yyyy-MM-dd');
}
}
_playVideo() {
return Container(
padding: EdgeInsets.only(top: 20.rw, left: 15.rw, right: 15.rw),
height: 230.rw,
child: _chewieController != null
? Chewie(
controller: _chewieController,
)
: SizedBox(),
);
}
// _playImagText() {
// return Container(
// height: 300.rw,
// width: 500.rw,
// child: HtmlWidget(),
// );
// }
}

@ -0,0 +1,260 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:recook/base/base_store_state.dart';
import 'package:recook/constants/api.dart';
import 'package:recook/constants/constants.dart';
import 'package:recook/constants/header.dart';
import 'package:recook/constants/styles.dart';
import 'package:recook/pages/home/function/home_fuc.dart';
import 'package:recook/pages/home/model/aku_video_list_model.dart';
import 'package:recook/widgets/custom_app_bar.dart';
import 'package:recook/widgets/custom_cache_image.dart';
import 'package:recook/widgets/progress/re_toast.dart';
import 'package:recook/widgets/refresh_widget.dart';
import 'package:velocity_x/velocity_x.dart';
import 'aku_college_detail_page.dart';
class AkuCollegePage extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _AkuCollegePageState();
}
}
class _AkuCollegePageState extends BaseStoreState<AkuCollegePage> {
GSRefreshController _refreshController =
GSRefreshController(initialRefresh: true);
TextEditingController _textEditController;
AkuVideoListModel _akuVideoListModel;
List<AkuVideo> _akuVideoList;
String _searchText;
int page = 1;
@override
void initState() {
super.initState();
}
@override
Widget buildContext(BuildContext context, {store}) {
return Scaffold(
backgroundColor: Color(0xFFFFFFFF),
appBar: CustomAppBar(
title: "阿库学院".text.bold.size(18.rsp).make(),
themeData: AppThemes.themeDataGrey.appBarTheme,
),
body: _bodyWidget(),
);
}
_bodyWidget() {
return Column(
children: [
GestureDetector(
onTap: () {},
child: Container(
width: double.infinity,
height: 160.rw,
child: Image.asset(
R.ASSETS_AKU_COLLEGE_PNG,
fit: BoxFit.fill,
),
),
),
50.hb,
Container(
alignment: Alignment.center,
width: 190.rw,
height: 26.rw,
decoration: BoxDecoration(
color: Colors.white,
boxShadow: [
BoxShadow(
offset: Offset(0, 2),
color: Color(0x45B4B1B1),
blurRadius: 4.rw,
)
],
borderRadius: BorderRadius.all(Radius.circular(13.rw)),
),
child: Row(
children: [
Expanded(
child: CupertinoTextField(
keyboardType: TextInputType.text,
controller: _textEditController,
//textInputAction: TextInputAction.search,
onChanged: (text) {},
placeholder: "搜一下是否有您想要的内容",
placeholderStyle: TextStyle(
color: Color(0xFF999999),
fontSize: 10.rsp,
fontWeight: FontWeight.w300),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(Radius.circular(13.rw)),
),
style: TextStyle(color: Colors.black, fontSize: 14.rsp),
),
),
Container(
width: 1.rw,
height: 27.rw,
color: Color(0xFFEEEDED),
),
Container(
width: 37.rw,
padding: EdgeInsets.symmetric(horizontal: 5),
child: Icon(
Icons.search,
size: 15.rw,
color: Color(0xFFC92219),
),
),
],
)),
_buildListView(),
],
);
}
_buildListView() {
return Container(
margin: EdgeInsets.only(left: 8.rw, right: 8.rw, top: 26.rw),
child: RefreshWidget(
controller: _refreshController,
noData: '没有找到您想要的内容',
onRefresh: () async {
Function cancel = ReToast.loading();
_akuVideoListModel =
await HomeFuc.getAkuVideoList(_searchText, page);
setState(() {});
_refreshController.refreshCompleted();
cancel();
},
onLoadMore: () async {
if (_akuVideoListModel.list.length >=
_akuVideoListModel.total) {
_refreshController.loadComplete();
_refreshController.loadNoData();
} else {
_akuVideoListModel =
await HomeFuc.getAkuVideoList(_searchText, page++);
_refreshController.loadComplete();
}
},
body: _akuVideoListModel?.list != null
? GridView.builder(
shrinkWrap: true,
padding: EdgeInsets.zero,
gridDelegate:
const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
childAspectRatio: 170 / 162,
mainAxisSpacing: 10,
crossAxisSpacing: 17),
itemCount: _akuVideoListModel.list.length,
itemBuilder: (BuildContext context, int index) {
return
// Container(
// color: Colors.red,
// );
_akuVideoItem(_akuVideoListModel.list[index]);
},
)
: noDataView('没有找到您想要的内容')))
.expand();
}
_akuVideoItem(AkuVideo akuVideo) {
return Container(
margin: EdgeInsets.only(left: 4.rw, right: 4.rw, top: 4.rw),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(4.rw),
boxShadow: [
BoxShadow(
color: Color(0xFFDBDBDB),
blurRadius: 4,
offset: Offset(0, 2),
),
],
),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
GestureDetector(
onTap: () {
//
Get.to(AkuCollegeDetailPage(akuVideo: akuVideo));
},
child: Stack(
alignment: Alignment.center,
children: [
Positioned(
child: Container(
child: CustomCacheImage(
imageUrl: Api.getImgUrl(akuVideo.coverUrl),
height: 90.rw,
fit: BoxFit.fitWidth,
),
),
),
akuVideo.type == 1
? Positioned(
top: 0,
left: 0,
right: 0,
bottom: 0,
child: Icon(CupertinoIcons.play_circle,
size: 50, color: Colors.white),
)
: SizedBox()
],
),
),
10.hb,
Row(
children: [
16.wb,
Text(
akuVideo.title,
maxLines: 2,
softWrap: true,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 12.rsp,
color: Color(0xFF333333),
fontWeight: FontWeight.bold),
).expand(),
16.wb,
],
),
Spacer(),
Row(
children: [
16.wb,
Text(akuVideo.subTitle,
style: TextStyle(fontSize: 10.rsp, color: Color(0xFF333333))),
Spacer(),
Text(akuVideo.numberOfHits.toString() + '人看过',
style: TextStyle(fontSize: 10.rsp, color: Color(0xFF999999))),
16.wb,
],
),
20.hb,
],
),
);
}
_getNum(int num) {}
}

@ -17,7 +17,6 @@ import 'package:recook/utils/app_router.dart';
import 'package:recook/widgets/custom_cache_image.dart'; import 'package:recook/widgets/custom_cache_image.dart';
import 'package:recook/widgets/goods_item.dart'; import 'package:recook/widgets/goods_item.dart';
import 'package:fijkplayer/fijkplayer.dart';
class GoodsHotListPage extends StatefulWidget { class GoodsHotListPage extends StatefulWidget {
@override @override
@ -28,7 +27,6 @@ class GoodsHotListPage extends StatefulWidget {
class _GoodsHotListPageState extends BaseStoreState<GoodsHotListPage> { class _GoodsHotListPageState extends BaseStoreState<GoodsHotListPage> {
GoodsHotSellListModel _listModel; GoodsHotSellListModel _listModel;
final FijkPlayer player = FijkPlayer();
@override @override
void initState() { void initState() {
super.initState(); super.initState();

@ -18,6 +18,7 @@ import 'package:recook/constants/styles.dart';
import 'package:recook/manager/user_manager.dart'; import 'package:recook/manager/user_manager.dart';
import 'package:recook/pages/business/release_material_page.dart'; import 'package:recook/pages/business/release_material_page.dart';
import 'package:recook/pages/home/home_page.dart'; import 'package:recook/pages/home/home_page.dart';
import 'package:recook/pages/home/widget/aku_college_page.dart';
import 'package:recook/pages/home/widget/goods_hot_list_page.dart'; import 'package:recook/pages/home/widget/goods_hot_list_page.dart';
import 'package:recook/pages/live/functions/live_function.dart'; import 'package:recook/pages/live/functions/live_function.dart';
import 'package:recook/pages/live/pages/discovery_page.dart'; import 'package:recook/pages/live/pages/discovery_page.dart';
@ -206,7 +207,8 @@ class _TabBarWidgetState extends State<TabBarWidget>
HomePage( HomePage(
tabController: _tabController, tabController: _tabController,
), ),
GoodsHotListPage(), //GoodsHotListPage(),
AkuCollegePage(),//------akkuxuyaun
DiscoveryPage(), DiscoveryPage(),
// BusinessPage(), // BusinessPage(),
ShoppingCartPage(), ShoppingCartPage(),

@ -33,11 +33,13 @@ class UserFunc {
.map((e) => UserCommonModel.fromJson(e)) .map((e) => UserCommonModel.fromJson(e))
.toList(); .toList();
} }
//
//
static Future<List<KingCoinListModel>> getKingCoinList() async { static Future<List<KingCoinListModel>> getKingCoinList() async {
ResultData result = ResultData result = await HttpManager.post(APIV2.userAPI.getKingCion, {
await HttpManager.post(APIV2.userAPI.getKingCion, { 'user_id': UserManager.instance.user.info.id != null
'user_id': UserManager.instance.user.info.id, ? UserManager.instance.user.info.id
: 0,
}); });
if (result.data != null) { if (result.data != null) {
if (result.data['data'] != null) { if (result.data['data'] != null) {

@ -1,6 +1,11 @@
import 'package:recook/utils/date/date_models.dart';
import 'package:flutter_custom_calendar/utils/date_util.dart';
import 'package:recook/utils/date/date_models.dart';
import 'package:recook/utils/date/date_utils.dart';
class DateUtilss { class DateUtilss {
// 1000 -800 // 1000 -800
static String getTimeReduce(String timeE, String timeL) { static String getTimeReduce(String timeE, String timeL) {
int hourL = int.parse(timeL.substring(0, 2)); // int hourL = int.parse(timeL.substring(0, 2)); //

@ -0,0 +1,97 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
import 'package:webview_flutter/webview_flutter.dart';
class WebViewLocalPage extends StatefulWidget {
String url;
final String title;
final bool isLocalUrl;
WebViewController _webViewController;
WebViewLocalPage({this.url, this.isLocalUrl = false, this.title});
@override
_WebViewLocalPage createState() => _WebViewLocalPage();
}
class _WebViewLocalPage extends State<WebViewLocalPage> {
JavascriptChannel jsBridge(BuildContext context) => JavascriptChannel(
name: 'jsbridge', // h5
onMessageReceived: (JavascriptMessage message) async{
debugPrint(message.message);
});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: _buildAppbar(),
body: _buildBody()
);
}
_buildAppbar() {
return AppBar(
elevation: 0,
backgroundColor: Color(0xccd0d7),
title: Text(widget.title, style: TextStyle(color: Colors.black),),
centerTitle: true,
leading: IconButton(icon: Icon(Icons.arrow_back, color: Color(0xFF23ADE5),), onPressed: () {
})
);
}
_buildBody() {
return Column(
children: <Widget>[
SizedBox(
height: 1,
width: double.infinity,
child: const DecoratedBox(decoration: BoxDecoration(color: Color(0xFFEEEEEE))),
),
Expanded(
flex: 1,
child: WebView(
initialUrl: widget.isLocalUrl ? Uri.dataFromString(widget.url, mimeType: 'text/html', encoding: Encoding.getByName('utf-8'))
.toString(): widget.url,
javascriptMode: JavascriptMode.unrestricted,
javascriptChannels: <JavascriptChannel>[
jsBridge(context)
].toSet(),
onWebViewCreated: (WebViewController controller){
widget._webViewController = controller;
if(widget.isLocalUrl){
_loadHtmlAssets(controller);
}else{
controller.loadUrl(widget.url);
}
controller.canGoBack().then((value) => debugPrint(value.toString()));
controller.canGoForward().then((value) => debugPrint(value.toString()));
controller.currentUrl().then((value) => debugPrint(value));
},
onPageFinished: (String value){
widget._webViewController.evaluateJavascript('document.title')
.then((title) => debugPrint(title));
},
),
)
],
);
}
//
_loadHtmlAssets(WebViewController controller) async {
String htmlPath = await rootBundle.loadString(widget.url);
controller.loadUrl(Uri.dataFromString(htmlPath,mimeType: 'text/html', encoding: Encoding.getByName('utf-8'))
.toString());
}
}

@ -462,6 +462,7 @@ class GoodsItemWidget extends StatelessWidget {
// color: Colors.red, // color: Colors.red,
// ); // );
CustomCacheImage( CustomCacheImage(
borderRadius: BorderRadius.all(Radius.circular(2.rw)),
imageUrl: Api.getImgUrl(specialSale[index]), imageUrl: Api.getImgUrl(specialSale[index]),
fit: BoxFit.cover, fit: BoxFit.cover,
); );
@ -493,6 +494,7 @@ class GoodsItemWidget extends StatelessWidget {
// color: Colors.red, // color: Colors.red,
// ); // );
CustomCacheImage( CustomCacheImage(
borderRadius: BorderRadius.all(Radius.circular(2.rw)),
imageUrl: Api.getImgUrl(specialIcon[index]), imageUrl: Api.getImgUrl(specialIcon[index]),
fit: BoxFit.cover, fit: BoxFit.cover,
); );

@ -400,13 +400,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.2" version: "1.1.2"
fijkplayer:
dependency: "direct main"
description:
name: fijkplayer
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.10.0"
file: file:
dependency: transitive dependency: transitive
description: description:

@ -2,7 +2,7 @@ name: recook
description: Recook Market App. description: Recook Market App.
publish_to: "none" publish_to: "none"
version: 1.9.1-dev+307 version: 1.11.0-dev+308
environment: environment:
sdk: ">=2.10.0 <3.0.0" sdk: ">=2.10.0 <3.0.0"
@ -221,6 +221,9 @@ dependencies:
#点赞组件 #点赞组件
many_like: ^0.0.6 many_like: ^0.0.6
#加载html
#展开组件 #展开组件
expandable: ^5.0.1 expandable: ^5.0.1
@ -230,8 +233,6 @@ dependencies:
#极光推送 #极光推送
jpush_flutter: 2.1.4 jpush_flutter: 2.1.4
fijkplayer: ^0.10.0
scrollable_positioned_list: ^0.1.7 scrollable_positioned_list: ^0.1.7
flutter_markdown: flutter_markdown:

Loading…
Cancel
Save