Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Hoàng Văn Đạt
mypoint_flutter_app
Commits
55151ba2
Commit
55151ba2
authored
Sep 05, 2025
by
DatHV
Browse files
update history point, manager
parent
f714cdcc
Changes
130
Show whitespace changes
Inline
Side-by-side
lib/screen/location_address/location_address_viewmodel.dart
View file @
55151ba2
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:get/get_core/src/get_main.dart'
;
import
'package:get/get_core/src/get_main.dart'
;
import
'package:get/get_rx/src/rx_types/rx_types.dart'
;
import
'package:get/get_rx/src/rx_types/rx_types.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_request.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_
client_all_
request.dart'
;
import
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
import
'location_address_screen.dart'
;
import
'location_address_screen.dart'
;
import
'models/district_address_model.dart'
;
import
'models/district_address_model.dart'
;
import
'models/province_address_model.dart'
;
import
'models/province_address_model.dart'
;
...
...
lib/screen/login/login_viewmodel.dart
View file @
55151ba2
import
'dart:convert'
;
import
'dart:convert'
;
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/configs/constants.dart'
;
import
'package:mypoint_flutter_app/configs/constants.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_request.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_
client_all_
request.dart'
;
import
'package:mypoint_flutter_app/screen/otp/forgot_pass_otp_repository.dart'
;
import
'package:mypoint_flutter_app/screen/otp/forgot_pass_otp_repository.dart'
;
import
'package:mypoint_flutter_app/screen/otp/otp_screen.dart'
;
import
'package:mypoint_flutter_app/screen/otp/otp_screen.dart'
;
import
'package:mypoint_flutter_app/shared/router_gage.dart'
;
import
'package:mypoint_flutter_app/shared/router_gage.dart'
;
import
'../../base/base_response_model.dart'
;
import
'../../base/base_response_model.dart'
;
import
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
import
'../../model/auth/login_token_response_model.dart'
;
import
'../../model/auth/login_token_response_model.dart'
;
import
'../../permission/biometric_manager.dart'
;
import
'../../permission/biometric_manager.dart'
;
import
'../../preference/data_preference.dart'
;
import
'../../preference/data_preference.dart'
;
...
@@ -72,7 +72,7 @@ class LoginViewModel extends RestfulApiViewModel {
...
@@ -72,7 +72,7 @@ class LoginViewModel extends RestfulApiViewModel {
final
userProfile
=
value
.
data
;
final
userProfile
=
value
.
data
;
if
(
value
.
isSuccess
&&
userProfile
!=
null
)
{
if
(
value
.
isSuccess
&&
userProfile
!=
null
)
{
await
DataPreference
.
instance
.
saveUserProfile
(
userProfile
);
await
DataPreference
.
instance
.
saveUserProfile
(
userProfile
);
Get
.
t
oNamed
(
mainScreen
);
Get
.
o
ffAll
Named
(
mainScreen
);
}
else
{
}
else
{
DataPreference
.
instance
.
clearLoginToken
();
DataPreference
.
instance
.
clearLoginToken
();
final
mgs
=
value
.
errorMessage
??
Constants
.
commonError
;
final
mgs
=
value
.
errorMessage
??
Constants
.
commonError
;
...
@@ -94,14 +94,12 @@ class LoginViewModel extends RestfulApiViewModel {
...
@@ -94,14 +94,12 @@ class LoginViewModel extends RestfulApiViewModel {
showLoading
();
showLoading
();
client
.
otpCreateNew
(
phone
).
then
((
value
)
{
client
.
otpCreateNew
(
phone
).
then
((
value
)
{
hideLoading
();
hideLoading
();
// TODO: handle error later
if
(!
value
.
isSuccess
)
return
;
if
(
value
.
isSuccess
)
{
Get
.
to
(
Get
.
to
(
OtpScreen
(
OtpScreen
(
repository:
ForgotPassOTPRepository
(
phone
,
value
.
data
?.
resendAfterSecond
??
Constants
.
otpTtl
),
repository:
ForgotPassOTPRepository
(
phone
,
value
.
data
?.
resendAfterSecond
??
Constants
.
otpTtl
),
),
),
);
);
}
});
});
}
}
...
...
lib/screen/membership/member_level_header_widget.dart
View file @
55151ba2
...
@@ -6,6 +6,7 @@ import 'package:mypoint_flutter_app/extensions/string_extension.dart';
...
@@ -6,6 +6,7 @@ import 'package:mypoint_flutter_app/extensions/string_extension.dart';
import
'../../preference/data_preference.dart'
;
import
'../../preference/data_preference.dart'
;
import
'../../resources/base_color.dart'
;
import
'../../resources/base_color.dart'
;
import
'../../shared/router_gage.dart'
;
import
'../../widgets/image_loader.dart'
;
import
'../../widgets/image_loader.dart'
;
import
'../../widgets/measure_size.dart'
;
import
'../../widgets/measure_size.dart'
;
import
'models/membership_level_model.dart'
;
import
'models/membership_level_model.dart'
;
...
@@ -95,7 +96,7 @@ class MemberLevelHeaderWidget extends StatelessWidget {
...
@@ -95,7 +96,7 @@ class MemberLevelHeaderWidget extends StatelessWidget {
Expanded
(
Expanded
(
child:
GestureDetector
(
child:
GestureDetector
(
onTap:
()
{
onTap:
()
{
Get
.
toNamed
(
'/pointH
istoryScreen
'
);
Get
.
toNamed
(
h
istory
Point
Screen
);
},
},
behavior:
HitTestBehavior
.
opaque
,
behavior:
HitTestBehavior
.
opaque
,
child:
Column
(
child:
Column
(
...
...
lib/screen/membership/membership_screen.dart
View file @
55151ba2
...
@@ -24,7 +24,6 @@ class _MembershipScreenState extends BaseState<MembershipScreen> with BasicState
...
@@ -24,7 +24,6 @@ class _MembershipScreenState extends BaseState<MembershipScreen> with BasicState
void
initState
()
{
void
initState
()
{
super
.
initState
();
super
.
initState
();
_viewModel
=
Get
.
put
(
MembershipViewModel
());
_viewModel
=
Get
.
put
(
MembershipViewModel
());
// _viewModel.getMembershipLevelInfo();
}
}
@override
@override
...
...
lib/screen/membership/membership_viewmodel.dart
View file @
55151ba2
import
'package:flutter/foundation.dart'
;
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/extensions/collection_extension.dart'
;
import
'package:mypoint_flutter_app/extensions/collection_extension.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_request.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_
client_all_
request.dart'
;
import
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
import
'models/membership_info_response.dart'
;
import
'models/membership_info_response.dart'
;
import
'models/membership_level_model.dart'
;
import
'models/membership_level_model.dart'
;
import
'models/membership_level_term_and_condition_model.dart'
;
import
'models/membership_level_term_and_condition_model.dart'
;
...
@@ -20,7 +21,8 @@ class MembershipViewModel extends RestfulApiViewModel {
...
@@ -20,7 +21,8 @@ class MembershipViewModel extends RestfulApiViewModel {
if
(
levels
==
null
||
levels
!.
isEmpty
)
{
if
(
levels
==
null
||
levels
!.
isEmpty
)
{
return
null
;
return
null
;
}
}
return
levels
?.
safe
(
selectedTab
.
value
)?.
conditions
;
final
level
=
levels
!.
safe
(
selectedTab
.
value
);
return
level
?.
conditions
;
}
}
@override
@override
...
@@ -29,24 +31,42 @@ class MembershipViewModel extends RestfulApiViewModel {
...
@@ -29,24 +31,42 @@ class MembershipViewModel extends RestfulApiViewModel {
getMembershipLevelInfo
();
getMembershipLevelInfo
();
}
}
_makeSelectedLevel
()
{
void
_makeSelectedLevel
()
{
if
(
levels
==
null
||
levels
!.
isEmpty
)
{
if
(
levels
==
null
||
levels
!.
isEmpty
)
{
selectedLevel
=
null
;
selectedLevel
=
null
;
return
;
return
;
}
}
selectedLevel
=
levels
!.
firstWhere
((
e
)
=>
e
.
levelStartAtDate
?.
isNotEmpty
==
true
,
orElse:
()
=>
levels
!.
first
);
try
{
selectedLevel
=
levels
!.
firstWhere
(
(
e
)
=>
e
.
levelStartAtDate
?.
isNotEmpty
==
true
,
orElse:
()
=>
levels
!.
first
);
}
catch
(
e
)
{
if
(
kDebugMode
)
{
print
(
'Failed to select level:
$e
'
);
}
selectedLevel
=
levels
!.
isNotEmpty
?
levels
!.
first
:
null
;
}
}
}
getMembershipLevelInfo
()
async
{
Future
<
void
>
getMembershipLevelInfo
()
async
{
showLoading
();
showLoading
();
try
{
try
{
final
response
=
await
client
.
getMembershipLevelInfo
();
final
response
=
await
client
.
getMembershipLevelInfo
();
if
(
response
.
isSuccess
&&
response
.
data
!=
null
)
{
membershipInfo
.
value
=
response
.
data
;
membershipInfo
.
value
=
response
.
data
;
_makeSelectedLevel
();
_makeSelectedLevel
();
hideLoading
();
}
else
{
if
(
kDebugMode
)
{
print
(
"Failed to get membership info:
${response.errorMessage}
"
);
}
}
}
catch
(
e
)
{
}
catch
(
e
)
{
hideLoading
();
if
(
kDebugMode
)
{
print
(
"Error fetching membership level info:
$e
"
);
print
(
"Error fetching membership level info:
$e
"
);
}
}
}
finally
{
hideLoading
();
}
}
}
}
}
lib/screen/mobile_card/product_mobile_card_viewmodel.dart
View file @
55151ba2
import
'package:get/get_rx/src/rx_types/rx_types.dart'
;
import
'package:get/get_rx/src/rx_types/rx_types.dart'
;
import
'package:mypoint_flutter_app/configs/constants.dart'
;
import
'package:mypoint_flutter_app/configs/constants.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_request.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_
client_all_
request.dart'
;
import
'package:mypoint_flutter_app/screen/mobile_card/models/product_mobile_card_model.dart'
;
import
'package:mypoint_flutter_app/screen/mobile_card/models/product_mobile_card_model.dart'
;
import
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
import
'../../preference/point/point_manager.dart'
;
import
'../../preference/point/point_manager.dart'
;
import
'models/usable_voucher_model.dart'
;
import
'models/usable_voucher_model.dart'
;
...
...
lib/screen/news/news_list_viewmodel.dart
View file @
55151ba2
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_request.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_
client_all_
request.dart'
;
import
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
import
'../../preference/data_preference.dart'
;
import
'../../preference/data_preference.dart'
;
import
'../faqs/faqs_model.dart'
;
import
'../faqs/faqs_model.dart'
;
...
...
lib/screen/notification/notification_viewmodel.dart
View file @
55151ba2
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/configs/constants.dart'
;
import
'package:mypoint_flutter_app/configs/constants.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_request.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_
client_all_
request.dart'
;
import
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
import
'../../preference/data_preference.dart'
;
import
'../../preference/data_preference.dart'
;
import
'models/category_notify_item_model.dart'
;
import
'models/category_notify_item_model.dart'
;
import
'models/notification_item_model.dart'
;
import
'models/notification_item_model.dart'
;
...
...
lib/screen/onboarding/onboarding_viewmodel.dart
View file @
55151ba2
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/extensions/string_extension.dart'
;
import
'package:mypoint_flutter_app/extensions/string_extension.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_request.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_
client_all_
request.dart'
;
import
'../../base/base_response_model.dart'
;
import
'../../base/base_response_model.dart'
;
import
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
import
'model/check_phone_response_model.dart'
;
import
'model/check_phone_response_model.dart'
;
import
'model/onboarding_info_model.dart'
;
import
'model/onboarding_info_model.dart'
;
...
...
lib/screen/otp/delete_account_otp_repository.dart
View file @
55151ba2
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_request.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_
client_all_
request.dart'
;
import
'package:mypoint_flutter_app/shared/router_gage.dart'
;
import
'package:mypoint_flutter_app/shared/router_gage.dart'
;
import
'../../base/base_response_model.dart'
;
import
'../../base/base_response_model.dart'
;
import
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
import
'../../configs/constants.dart'
;
import
'../../configs/constants.dart'
;
import
'../../preference/data_preference.dart'
;
import
'../../preference/data_preference.dart'
;
import
'../../widgets/custom_toast_message.dart'
;
import
'../../widgets/custom_toast_message.dart'
;
...
...
lib/screen/otp/forgot_pass_otp_repository.dart
View file @
55151ba2
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:get/get_core/src/get_main.dart'
;
import
'package:get/get_core/src/get_main.dart'
;
import
'package:mypoint_flutter_app/base/base_response_model.dart'
;
import
'package:mypoint_flutter_app/base/base_response_model.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_request.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_
client_all_
request.dart'
;
import
'package:mypoint_flutter_app/screen/create_pass/create_pass_screen.dart'
;
import
'package:mypoint_flutter_app/screen/create_pass/create_pass_screen.dart'
;
import
'package:mypoint_flutter_app/screen/create_pass/reset_create_password_repository.dart'
;
import
'package:mypoint_flutter_app/screen/create_pass/reset_create_password_repository.dart'
;
import
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
import
'../splash/splash_screen_viewmodel.dart'
;
import
'../splash/splash_screen_viewmodel.dart'
;
import
'otp_viewmodel.dart'
;
import
'otp_viewmodel.dart'
;
...
...
lib/screen/otp/verify_otp_repository.dart
View file @
55151ba2
// sign_up_otp_repository.dart
// sign_up_otp_repository.dart
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_request.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_
client_all_
request.dart'
;
import
'package:mypoint_flutter_app/shared/router_gage.dart'
;
import
'package:mypoint_flutter_app/shared/router_gage.dart'
;
import
'../../base/base_response_model.dart'
;
import
'../../base/base_response_model.dart'
;
import
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
import
'../create_pass/create_pass_screen.dart'
;
import
'../create_pass/create_pass_screen.dart'
;
import
'../create_pass/signup_create_password_repository.dart'
;
import
'../create_pass/signup_create_password_repository.dart'
;
import
'../login/login_screen.dart'
;
import
'../login/login_screen.dart'
;
...
...
lib/screen/pageDetail/campaign_detail_viewmodel.dart
View file @
55151ba2
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:mypoint_flutter_app/configs/constants.dart'
;
import
'package:mypoint_flutter_app/configs/constants.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_request.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_
client_all_
request.dart'
;
import
'../../base/base_response_model.dart'
;
import
'../../base/base_response_model.dart'
;
import
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
import
'model/campaign_detail_model.dart'
;
import
'model/campaign_detail_model.dart'
;
import
'model/detail_page_rule_type.dart'
;
import
'model/detail_page_rule_type.dart'
;
...
...
lib/screen/personal/personal_edit_item_model.dart
View file @
55151ba2
...
@@ -2,7 +2,7 @@ import 'package:flutter/cupertino.dart';
...
@@ -2,7 +2,7 @@ import 'package:flutter/cupertino.dart';
import
'package:mypoint_flutter_app/extensions/datetime_extensions.dart'
;
import
'package:mypoint_flutter_app/extensions/datetime_extensions.dart'
;
import
'package:mypoint_flutter_app/preference/data_preference.dart'
;
import
'package:mypoint_flutter_app/preference/data_preference.dart'
;
import
'package:mypoint_flutter_app/screen/personal/personal_gender.dart'
;
import
'package:mypoint_flutter_app/screen/personal/personal_gender.dart'
;
import
'../../
networking/model_maker
.dart'
;
import
'../../
configs/callbacks
.dart'
;
import
'../location_address/location_address_viewmodel.dart'
;
import
'../location_address/location_address_viewmodel.dart'
;
enum
SectionPersonalEditType
{
enum
SectionPersonalEditType
{
...
...
lib/screen/personal/personal_edit_viewmodel.dart
View file @
55151ba2
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/extensions/string_extension.dart'
;
import
'package:mypoint_flutter_app/extensions/string_extension.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_request.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_
client_all_
request.dart'
;
import
'package:mypoint_flutter_app/screen/personal/personal_edit_item_model.dart'
;
import
'package:mypoint_flutter_app/screen/personal/personal_edit_item_model.dart'
;
import
'package:mypoint_flutter_app/screen/personal/personal_gender.dart'
;
import
'package:mypoint_flutter_app/screen/personal/personal_gender.dart'
;
import
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
import
'../../configs/constants.dart'
;
import
'../../configs/constants.dart'
;
import
'../../preference/data_preference.dart'
;
import
'../../preference/data_preference.dart'
;
import
'../../shared/router_gage.dart'
;
import
'../../shared/router_gage.dart'
;
...
...
lib/screen/personal/personal_screen.dart
View file @
55151ba2
...
@@ -101,7 +101,10 @@ class _PersonalScreenState extends BaseState<PersonalScreen> with BasicState, Po
...
@@ -101,7 +101,10 @@ class _PersonalScreenState extends BaseState<PersonalScreen> with BasicState, Po
Column
(
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
children:
[
Text
(
name
,
style:
const
TextStyle
(
fontSize:
22
,
fontWeight:
FontWeight
.
bold
,
color:
Colors
.
white
)),
Text
(
name
,
style:
const
TextStyle
(
fontSize:
22
,
fontWeight:
FontWeight
.
bold
,
color:
Colors
.
white
),
),
if
(
email
.
isNotEmpty
)
if
(
email
.
isNotEmpty
)
Text
(
Text
(
email
,
email
,
...
@@ -126,12 +129,19 @@ class _PersonalScreenState extends BaseState<PersonalScreen> with BasicState, Po
...
@@ -126,12 +129,19 @@ class _PersonalScreenState extends BaseState<PersonalScreen> with BasicState, Po
children:
[
children:
[
Image
.
asset
(
"assets/images/ic_rank_gray.png"
,
width:
30
,
height:
30
,
color:
Colors
.
white
),
Image
.
asset
(
"assets/images/ic_rank_gray.png"
,
width:
30
,
height:
30
,
color:
Colors
.
white
),
const
SizedBox
(
width:
4
),
const
SizedBox
(
width:
4
),
Text
(
level
,
style:
const
TextStyle
(
color:
Colors
.
white
,
fontSize:
16
,
fontWeight:
FontWeight
.
bold
)),
Text
(
level
,
style:
const
TextStyle
(
color:
Colors
.
white
,
fontSize:
16
,
fontWeight:
FontWeight
.
bold
),
),
],
],
),
),
),
),
const
Spacer
(),
const
Spacer
(),
Row
(
GestureDetector
(
onTap:
()
{
Get
.
toNamed
(
historyPointScreen
);
},
child:
Row
(
children:
[
children:
[
Text
(
Text
(
(
data
.
totalPointActive
??
0
).
money
(
CurrencyUnit
.
point
),
(
data
.
totalPointActive
??
0
).
money
(
CurrencyUnit
.
point
),
...
@@ -141,6 +151,7 @@ class _PersonalScreenState extends BaseState<PersonalScreen> with BasicState, Po
...
@@ -141,6 +151,7 @@ class _PersonalScreenState extends BaseState<PersonalScreen> with BasicState, Po
const
Icon
(
Icons
.
chevron_right
,
color:
Colors
.
white
,
size:
22
),
const
Icon
(
Icons
.
chevron_right
,
color:
Colors
.
white
,
size:
22
),
],
],
),
),
),
],
],
),
),
],
],
...
@@ -185,16 +196,32 @@ class _PersonalScreenState extends BaseState<PersonalScreen> with BasicState, Po
...
@@ -185,16 +196,32 @@ class _PersonalScreenState extends BaseState<PersonalScreen> with BasicState, Po
Widget
_buildMenuItems
()
{
Widget
_buildMenuItems
()
{
final
menuItems
=
[
final
menuItems
=
[
{
'icon'
:
Icons
.
monetization_on_outlined
,
'title'
:
'Săn điểm'
,
'type'
:
'APP_SCREEN_POINT_HUNTING'
},
{
'icon'
:
Icons
.
monetization_on_outlined
,
'assets'
:
'assets/images/ic_point.png'
,
'title'
:
'Săn điểm'
,
'type'
:
'APP_SCREEN_POINT_HUNTING'
,
},
{
'icon'
:
Icons
.
check_box_outlined
,
'title'
:
'Check-in nhận quà'
,
'type'
:
'DAILY_CHECKIN'
},
{
'icon'
:
Icons
.
check_box_outlined
,
'title'
:
'Check-in nhận quà'
,
'type'
:
'DAILY_CHECKIN'
},
{
'icon'
:
Icons
.
emoji_events_outlined
,
'title'
:
'Bảng xếp hạng'
,
'type'
:
'APP_SCREEN_LIST_PAYMENT_OF_ELECTRIC'
},
{
'icon'
:
Icons
.
border_right
,
'title'
:
'Hoá đơn điện'
,
'type'
:
'APP_SCREEN_LIST_PAYMENT_OF_ELECTRIC'
},
// {'icon': Icons.emoji_events_outlined, 'title': 'Bảng xếp hạng', 'type': 'APP_SCREEN_LIST_PAYMENT_OF_ELECTRIC'},
{
'icon'
:
Icons
.
gif_box_outlined
,
'title'
:
'Ưu đãi của tôi'
,
'type'
:
'APP_SCREEN_MY_PURCHASE_ITEMS'
},
{
'icon'
:
Icons
.
gif_box_outlined
,
'title'
:
'Ưu đãi của tôi'
,
'type'
:
'APP_SCREEN_MY_PURCHASE_ITEMS'
},
{
'icon'
:
Icons
.
receipt_long_outlined
,
'title'
:
'Lịch sử giao dịch'
,
'sectionDivider'
:
true
,
'type'
:
'APP_SCREEN_TRANSACTION_HISTORIES'
},
{
{
'icon'
:
Icons
.
history_outlined
,
'title'
:
'Lịch sử điểm'
,
'type'
:
'APP_SCREEN_SURVERY_APP'
},
'icon'
:
Icons
.
receipt_long_outlined
,
{
'icon'
:
Icons
.
history_outlined
,
'title'
:
'Lịch sử hoàn điểm'
,
'type'
:
'APP_SCREEN_REFUND_HISTORY'
},
'title'
:
'Lịch sử giao dịch'
,
'sectionDivider'
:
true
,
'type'
:
'APP_SCREEN_TRANSACTION_HISTORIES'
,
},
{
'icon'
:
Icons
.
history_outlined
,
'title'
:
'Lịch sử điểm'
,
'type'
:
'APP_SCREEN_POINT_HISTORY'
},
{
'icon'
:
Icons
.
history_edu
,
'title'
:
'Lịch sử hoàn điểm'
,
'type'
:
'APP_SCREEN_REFUND_HISTORY'
},
{
'icon'
:
Icons
.
account_balance_wallet_outlined
,
'title'
:
'Quản lý tài khoản/thẻ'
,
'type'
:
'BANK_ACCOUNT_MANAGER'
},
{
'icon'
:
Icons
.
account_balance_wallet_outlined
,
'title'
:
'Quản lý tài khoản/thẻ'
,
'type'
:
'BANK_ACCOUNT_MANAGER'
},
{
'icon'
:
Icons
.
favorite_border
,
'title'
:
'Yêu thích'
,
'type'
:
'APP_SCREEN_CATEGORY_TAB_FAVORITE'
},
{
'icon'
:
Icons
.
favorite_border
,
'title'
:
'Yêu thích'
,
'type'
:
'APP_SCREEN_CATEGORY_TAB_FAVORITE'
},
{
'icon'
:
Icons
.
shopping_bag_outlined
,
'title'
:
'Đơn mua'
,
'sectionDivider'
:
true
,
'type'
:
'APP_SCREEN_ORDER_MENU'
},
{
'icon'
:
Icons
.
shopping_bag_outlined
,
'title'
:
'Đơn mua'
,
'sectionDivider'
:
true
,
'type'
:
'APP_SCREEN_ORDER_MENU'
,
},
{
'icon'
:
Icons
.
info_outline
,
'title'
:
'Giới thiệu MyPoint'
,
'sectionDivider'
:
true
,
'type'
:
'VIEW_WEBSITE_PAGE'
},
{
'icon'
:
Icons
.
info_outline
,
'title'
:
'Giới thiệu MyPoint'
,
'sectionDivider'
:
true
,
'type'
:
'VIEW_WEBSITE_PAGE'
},
{
'icon'
:
Icons
.
headset_mic_outlined
,
'title'
:
'Hỗ trợ'
,
'type'
:
'APP_SCREEN_CUSTOMER_FEEDBACK'
},
{
'icon'
:
Icons
.
headset_mic_outlined
,
'title'
:
'Hỗ trợ'
,
'type'
:
'APP_SCREEN_CUSTOMER_FEEDBACK'
},
{
'icon'
:
Icons
.
settings_outlined
,
'title'
:
'Cài đặt'
,
'type'
:
'APP_SCREEN_SETTING'
},
{
'icon'
:
Icons
.
settings_outlined
,
'title'
:
'Cài đặt'
,
'type'
:
'APP_SCREEN_SETTING'
},
...
@@ -225,6 +252,13 @@ class _PersonalScreenState extends BaseState<PersonalScreen> with BasicState, Po
...
@@ -225,6 +252,13 @@ class _PersonalScreenState extends BaseState<PersonalScreen> with BasicState, Po
padding:
const
EdgeInsets
.
symmetric
(
horizontal:
16
),
padding:
const
EdgeInsets
.
symmetric
(
horizontal:
16
),
child:
Row
(
child:
Row
(
children:
[
children:
[
if
(
item
[
'assets'
]
!=
null
)
Image
.
asset
(
item
[
'assets'
]
as
String
,
width:
24
,
height:
24
,
)
else
Icon
(
Icon
(
item
[
'icon'
]
as
IconData
,
item
[
'icon'
]
as
IconData
,
color:
(
item
[
'color'
]
as
Color
?)
??
Colors
.
black54
,
color:
(
item
[
'color'
]
as
Color
?)
??
Colors
.
black54
,
...
...
lib/screen/
home
/pipi_detail_screen.dart
→
lib/screen/
pipi
/pipi_detail_screen.dart
View file @
55151ba2
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:get/get_core/src/get_main.dart'
;
import
'package:mypoint_flutter_app/screen/pipi/pipi_detail_viewmodel.dart'
;
import
'package:mypoint_flutter_app/screen/home/pipi_detail_viewmodel.dart'
;
import
'package:mypoint_flutter_app/widgets/image_loader.dart'
;
import
'package:mypoint_flutter_app/widgets/image_loader.dart'
;
import
'../home/models/pipi_detail_model.dart'
;
import
'models/pipi_detail_model.dart'
;
class
PipiDetailScreen
extends
StatefulWidget
{
class
PipiDetailScreen
extends
StatefulWidget
{
const
PipiDetailScreen
({
super
.
key
});
const
PipiDetailScreen
({
super
.
key
});
...
...
lib/screen/
home
/pipi_detail_viewmodel.dart
→
lib/screen/
pipi
/pipi_detail_viewmodel.dart
View file @
55151ba2
import
'package:get/get_rx/src/rx_types/rx_types.dart'
;
import
'package:get/get_rx/src/rx_types/rx_types.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_request.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_
client_all_
request.dart'
;
import
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
import
'models/pipi_detail_model.dart'
;
import
'
../home/
models/pipi_detail_model.dart'
;
class
PipiDetailViewModel
extends
RestfulApiViewModel
{
class
PipiDetailViewModel
extends
RestfulApiViewModel
{
var
items
=
RxList
<
PipiSupportItemModel
>();
var
items
=
RxList
<
PipiSupportItemModel
>();
...
...
lib/screen/point_history/point_history_screen.dart
deleted
100644 → 0
View file @
f714cdcc
import
'package:flutter/material.dart'
;
import
'../../widgets/custom_navigation_bar.dart'
;
class
PointHistoryScreen
extends
StatefulWidget
{
const
PointHistoryScreen
({
super
.
key
});
@override
State
<
PointHistoryScreen
>
createState
()
=>
_PointHistoryScreenState
();
}
class
_PointHistoryScreenState
extends
State
<
PointHistoryScreen
>
{
@override
Widget
build
(
BuildContext
context
)
{
return
Scaffold
(
appBar:
CustomNavigationBar
(
title:
"Lịch sử điểm"
),
body:
SafeArea
(
child:
Center
(
child:
Text
(
'Point History Screen'
)),
),
);
}
}
lib/screen/popup_manager/popup_manager_viewmodel.dart
View file @
55151ba2
import
'package:mypoint_flutter_app/networking/restful_api_request.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_
client_all_
request.dart'
;
import
'package:mypoint_flutter_app/screen/popup_manager/popup_manager_model.dart'
;
import
'package:mypoint_flutter_app/screen/popup_manager/popup_manager_model.dart'
;
import
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
class
PopupManagerViewModel
extends
RestfulApiViewModel
{
class
PopupManagerViewModel
extends
RestfulApiViewModel
{
PopupManagerViewModel
.
_
();
PopupManagerViewModel
.
_
();
...
...
Prev
1
2
3
4
5
6
7
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment