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
Hide whitespace changes
Inline
Side-by-side
lib/screen/bank_account_manager/bank_account_info_model.dart
View file @
55151ba2
...
@@ -4,22 +4,36 @@ part 'bank_account_info_model.g.dart';
...
@@ -4,22 +4,36 @@ part 'bank_account_info_model.g.dart';
@JsonSerializable
()
@JsonSerializable
()
class
BankAccountInfoModel
{
class
BankAccountInfoModel
{
int
?
id
;
int
?
id
;
@JsonKey
(
name:
'payment_method'
)
String
?
paymentMethod
;
String
?
paymentMethod
;
@JsonKey
(
name:
'card_name'
)
String
?
cardName
;
String
?
cardName
;
@JsonKey
(
name:
'card_number'
)
String
?
cardNumber
;
String
?
cardNumber
;
@JsonKey
(
name:
'card_date'
)
String
?
cardDate
;
String
?
cardDate
;
@JsonKey
(
name:
'bank_logo'
)
String
?
bankLogo
;
String
?
bankLogo
;
@JsonKey
(
name:
'bank_name'
)
String
?
bankName
;
String
?
bankName
;
@JsonKey
(
name:
'bank_short_name'
)
String
?
bankShortName
;
String
?
bankShortName
;
@JsonKey
(
name:
'bank_code'
)
String
?
bankCode
;
String
?
bankCode
;
@JsonKey
(
name:
'is_default'
)
bool
?
isDefault
;
bool
?
isDefault
;
bool
isSelected
;
bool
isSelected
;
@JsonKey
(
name:
'form_bank_title'
)
String
?
formBankTitle
;
String
?
formBankTitle
;
@JsonKey
(
name:
'form_bank_number_title'
)
String
?
formBankNumberTitle
;
String
?
formBankNumberTitle
;
@JsonKey
(
name:
'form_message_delete'
)
String
?
formMessageDelete
;
String
?
formMessageDelete
;
@JsonKey
(
name:
'form_bank_background'
)
String
?
formBankBackground
;
String
?
formBankBackground
;
@JsonKey
(
name:
'form_bank_name'
)
String
?
formBankName
;
String
?
formBankName
;
@JsonKey
(
name:
'form_bank_number'
)
String
?
formBankNumber
;
String
?
formBankNumber
;
BankAccountInfoModel
({
BankAccountInfoModel
({
...
...
lib/screen/bank_account_manager/bank_account_info_model.g.dart
View file @
55151ba2
...
@@ -10,42 +10,42 @@ BankAccountInfoModel _$BankAccountInfoModelFromJson(
...
@@ -10,42 +10,42 @@ BankAccountInfoModel _$BankAccountInfoModelFromJson(
Map
<
String
,
dynamic
>
json
,
Map
<
String
,
dynamic
>
json
,
)
=>
BankAccountInfoModel
(
)
=>
BankAccountInfoModel
(
id:
(
json
[
'id'
]
as
num
?)?.
toInt
(),
id:
(
json
[
'id'
]
as
num
?)?.
toInt
(),
paymentMethod:
json
[
'payment
M
ethod'
]
as
String
?,
paymentMethod:
json
[
'payment
_m
ethod'
]
as
String
?,
cardName:
json
[
'card
N
ame'
]
as
String
?,
cardName:
json
[
'card
_n
ame'
]
as
String
?,
cardNumber:
json
[
'card
N
umber'
]
as
String
?,
cardNumber:
json
[
'card
_n
umber'
]
as
String
?,
cardDate:
json
[
'card
D
ate'
]
as
String
?,
cardDate:
json
[
'card
_d
ate'
]
as
String
?,
bankLogo:
json
[
'bank
L
ogo'
]
as
String
?,
bankLogo:
json
[
'bank
_l
ogo'
]
as
String
?,
bankName:
json
[
'bank
N
ame'
]
as
String
?,
bankName:
json
[
'bank
_n
ame'
]
as
String
?,
bankShortName:
json
[
'bank
S
hort
N
ame'
]
as
String
?,
bankShortName:
json
[
'bank
_s
hort
_n
ame'
]
as
String
?,
bankCode:
json
[
'bank
C
ode'
]
as
String
?,
bankCode:
json
[
'bank
_c
ode'
]
as
String
?,
isDefault:
json
[
'is
D
efault'
]
as
bool
?,
isDefault:
json
[
'is
_d
efault'
]
as
bool
?,
isSelected:
json
[
'isSelected'
]
as
bool
?
??
false
,
isSelected:
json
[
'isSelected'
]
as
bool
?
??
false
,
formBankTitle:
json
[
'form
B
ank
T
itle'
]
as
String
?,
formBankTitle:
json
[
'form
_b
ank
_t
itle'
]
as
String
?,
formBankNumberTitle:
json
[
'form
B
ank
N
umber
T
itle'
]
as
String
?,
formBankNumberTitle:
json
[
'form
_b
ank
_n
umber
_t
itle'
]
as
String
?,
formMessageDelete:
json
[
'form
M
essage
D
elete'
]
as
String
?,
formMessageDelete:
json
[
'form
_m
essage
_d
elete'
]
as
String
?,
formBankBackground:
json
[
'form
B
ank
B
ackground'
]
as
String
?,
formBankBackground:
json
[
'form
_b
ank
_b
ackground'
]
as
String
?,
formBankName:
json
[
'form
B
ank
N
ame'
]
as
String
?,
formBankName:
json
[
'form
_b
ank
_n
ame'
]
as
String
?,
formBankNumber:
json
[
'form
B
ank
N
umber'
]
as
String
?,
formBankNumber:
json
[
'form
_b
ank
_n
umber'
]
as
String
?,
);
);
Map
<
String
,
dynamic
>
_$BankAccountInfoModelToJson
(
Map
<
String
,
dynamic
>
_$BankAccountInfoModelToJson
(
BankAccountInfoModel
instance
,
BankAccountInfoModel
instance
,
)
=>
<
String
,
dynamic
>{
)
=>
<
String
,
dynamic
>{
'id'
:
instance
.
id
,
'id'
:
instance
.
id
,
'payment
M
ethod'
:
instance
.
paymentMethod
,
'payment
_m
ethod'
:
instance
.
paymentMethod
,
'card
N
ame'
:
instance
.
cardName
,
'card
_n
ame'
:
instance
.
cardName
,
'card
N
umber'
:
instance
.
cardNumber
,
'card
_n
umber'
:
instance
.
cardNumber
,
'card
D
ate'
:
instance
.
cardDate
,
'card
_d
ate'
:
instance
.
cardDate
,
'bank
L
ogo'
:
instance
.
bankLogo
,
'bank
_l
ogo'
:
instance
.
bankLogo
,
'bank
N
ame'
:
instance
.
bankName
,
'bank
_n
ame'
:
instance
.
bankName
,
'bank
S
hort
N
ame'
:
instance
.
bankShortName
,
'bank
_s
hort
_n
ame'
:
instance
.
bankShortName
,
'bank
C
ode'
:
instance
.
bankCode
,
'bank
_c
ode'
:
instance
.
bankCode
,
'is
D
efault'
:
instance
.
isDefault
,
'is
_d
efault'
:
instance
.
isDefault
,
'isSelected'
:
instance
.
isSelected
,
'isSelected'
:
instance
.
isSelected
,
'form
B
ank
T
itle'
:
instance
.
formBankTitle
,
'form
_b
ank
_t
itle'
:
instance
.
formBankTitle
,
'form
B
ank
N
umber
T
itle'
:
instance
.
formBankNumberTitle
,
'form
_b
ank
_n
umber
_t
itle'
:
instance
.
formBankNumberTitle
,
'form
M
essage
D
elete'
:
instance
.
formMessageDelete
,
'form
_m
essage
_d
elete'
:
instance
.
formMessageDelete
,
'form
B
ank
B
ackground'
:
instance
.
formBankBackground
,
'form
_b
ank
_b
ackground'
:
instance
.
formBankBackground
,
'form
B
ank
N
ame'
:
instance
.
formBankName
,
'form
_b
ank
_n
ame'
:
instance
.
formBankName
,
'form
B
ank
N
umber'
:
instance
.
formBankNumber
,
'form
_b
ank
_n
umber'
:
instance
.
formBankNumber
,
};
};
lib/screen/bank_account_manager/bank_account_manager_screen.dart
View file @
55151ba2
...
@@ -26,15 +26,17 @@ class _BankAccountManagerScreenState extends State<BankAccountManagerScreen> {
...
@@ -26,15 +26,17 @@ class _BankAccountManagerScreenState extends State<BankAccountManagerScreen> {
return
EmptyWidget
(
content:
"Bạn hiện chưa có tài khoản/ thẻ đã lưu"
);
return
EmptyWidget
(
content:
"Bạn hiện chưa có tài khoản/ thẻ đã lưu"
);
}
}
return
Container
(
return
Container
(
color:
const
Color
(
0xfff
f
9fafb
),
color:
const
Color
(
0xfff9fafb
),
child:
ListView
.
separated
(
child:
ListView
.
separated
(
padding:
const
EdgeInsets
.
symmetric
(
vertical:
8
),
padding:
const
EdgeInsets
.
symmetric
(
vertical:
8
),
itemCount:
viewModel
.
bankAccounts
.
length
,
itemCount:
viewModel
.
bankAccounts
.
length
,
separatorBuilder:
(
_
,
__
)
=>
const
Divider
(
height:
1
,
thickness:
1
),
separatorBuilder:
(
_
,
__
)
=>
const
Divider
(
height:
1
,
thickness:
1
),
itemBuilder:
(
item
,
index
)
=>
_BankAccountItem
(
model:
viewModel
.
bankAccounts
.
value
[
index
],
onTap:
()
{
itemBuilder:
(
item
,
index
)
=>
_BankAccountItem
(
model:
viewModel
.
bankAccounts
.
value
[
index
],
onTap:
()
async
{
Get
.
to
(()
=>
BankAccountDetailScreen
(
await
Get
.
to
(()
=>
BankAccountDetailScreen
(
model:
viewModel
.
bankAccounts
.
value
[
index
],
model:
viewModel
.
bankAccounts
.
value
[
index
],
));
));
print
(
"reload getBankAccountList"
);
viewModel
.
getBankAccountList
();
}),
}),
),
),
);
);
...
@@ -50,7 +52,6 @@ class _BankAccountItem extends StatelessWidget {
...
@@ -50,7 +52,6 @@ class _BankAccountItem extends StatelessWidget {
@override
@override
Widget
build
(
BuildContext
context
)
{
Widget
build
(
BuildContext
context
)
{
final
title
=
model
.
bankShortName
?.
isNotEmpty
==
true
?
model
.
bankShortName
!
:
(
model
.
paymentMethod
??
'Tài khoản/thẻ'
);
return
Material
(
return
Material
(
color:
Colors
.
white
,
color:
Colors
.
white
,
child:
InkWell
(
child:
InkWell
(
...
@@ -58,7 +59,7 @@ class _BankAccountItem extends StatelessWidget {
...
@@ -58,7 +59,7 @@ class _BankAccountItem extends StatelessWidget {
child:
Column
(
child:
Column
(
children:
[
children:
[
Padding
(
Padding
(
padding:
const
EdgeInsets
.
symmetric
(
horizontal:
24
,
vertical:
16
),
padding:
const
EdgeInsets
.
symmetric
(
horizontal:
16
,
vertical:
16
),
child:
Row
(
child:
Row
(
children:
[
children:
[
ClipRRect
(
ClipRRect
(
...
@@ -70,7 +71,7 @@ class _BankAccountItem extends StatelessWidget {
...
@@ -70,7 +71,7 @@ class _BankAccountItem extends StatelessWidget {
child:
Row
(
child:
Row
(
children:
[
children:
[
Text
(
Text
(
'
$
title
${model.cardNumber}
'
,
'
$
{model.bankShortName}
${model.cardNumber}
'
,
maxLines:
1
,
maxLines:
1
,
overflow:
TextOverflow
.
ellipsis
,
overflow:
TextOverflow
.
ellipsis
,
style:
const
TextStyle
(
fontSize:
15
,
color:
Color
(
0xFF1D2129
),
fontWeight:
FontWeight
.
w500
),
style:
const
TextStyle
(
fontSize:
15
,
color:
Color
(
0xFF1D2129
),
fontWeight:
FontWeight
.
w500
),
...
@@ -84,7 +85,7 @@ class _BankAccountItem extends StatelessWidget {
...
@@ -84,7 +85,7 @@ class _BankAccountItem extends StatelessWidget {
),
),
),
),
Padding
(
Padding
(
padding:
const
EdgeInsets
.
symmetric
(
horizontal:
24
),
padding:
const
EdgeInsets
.
symmetric
(
horizontal:
16
),
child:
Divider
(
child:
Divider
(
height:
1
,
height:
1
,
thickness:
1
,
thickness:
1
,
...
...
lib/screen/bank_account_manager/bank_account_manager_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/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
'bank_account_info_model.dart'
;
import
'bank_account_info_model.dart'
;
class
BankAccountManagerViewModel
extends
RestfulApiViewModel
{
class
BankAccountManagerViewModel
extends
RestfulApiViewModel
{
...
@@ -15,54 +16,13 @@ class BankAccountManagerViewModel extends RestfulApiViewModel {
...
@@ -15,54 +16,13 @@ class BankAccountManagerViewModel extends RestfulApiViewModel {
getBankAccountList
()
async
{
getBankAccountList
()
async
{
showLoading
();
showLoading
();
try
{
try
{
Future
.
delayed
(
const
Duration
(
milliseconds:
500
));
final
result
=
await
client
.
getOrderPaymentMyAccounts
();
// final result = await client.getOrderPaymentMyAccounts();
// bankAccounts.value = result.data ?? [];
bankAccounts
.
value
=
[
BankAccountInfoModel
(
id:
1
,
paymentMethod:
"VISA"
,
cardName:
"Nguyen Van A"
,
cardNumber:
"1234 5678 9012 3456"
,
cardDate:
"12/25"
,
bankLogo:
"https://example.com/logo.png"
,
bankName:
"Bank A"
,
bankShortName:
"BA"
,
bankCode:
"BA123"
,
isDefault:
true
,
isSelected:
false
,
),
BankAccountInfoModel
(
id:
2
,
paymentMethod:
"MasterCard"
,
cardName:
"Nguyen Van B"
,
cardNumber:
"2345 6789 0123 4567"
,
cardDate:
"11/24"
,
bankLogo:
"https://example.com/logo2.png"
,
bankName:
"Bank B"
,
bankShortName:
"BB"
,
bankCode:
"BB456"
,
isDefault:
false
,
isSelected:
false
,
),
BankAccountInfoModel
(
id:
3
,
paymentMethod:
"ATM"
,
cardName:
"Nguyen Van C"
,
cardNumber:
"3456 7890 1234 5678"
,
cardDate:
"10/23"
,
bankLogo:
"https://example.com/logo3.png"
,
bankName:
"Bank C"
,
bankShortName:
"BC"
,
bankCode:
"BC789"
,
isDefault:
false
,
isSelected:
false
,
),
];
hideLoading
();
hideLoading
();
bankAccounts
.
value
=
result
.
data
??
[];
}
catch
(
error
)
{
}
catch
(
error
)
{
hideLoading
();
hideLoading
();
print
(
"Error fetching bank accounts:
$error
"
);
}
finally
{
hideLoading
();
}
}
}
}
}
}
\ No newline at end of file
lib/screen/biometric/biometric_viewmodel.dart
View file @
55151ba2
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:local_auth/local_auth.dart'
;
import
'package:local_auth/local_auth.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
'../../configs/constants.dart'
;
import
'../../configs/constants.dart'
;
import
'../../preference/data_preference.dart'
;
import
'../../preference/data_preference.dart'
;
...
...
lib/screen/campaign7day/campaign_7day_screen.dart
View file @
55151ba2
...
@@ -5,7 +5,7 @@ import '../../base/base_screen.dart';
...
@@ -5,7 +5,7 @@ import '../../base/base_screen.dart';
import
'../../base/basic_state.dart'
;
import
'../../base/basic_state.dart'
;
import
'../../resources/base_color.dart'
;
import
'../../resources/base_color.dart'
;
import
'../../widgets/bottom_sheet_helper.dart'
;
import
'../../widgets/bottom_sheet_helper.dart'
;
import
'../home/custom_widget/hover_view.dart'
;
import
'../home/custom_widget/hover_view
_widget
.dart'
;
import
'campaign_7day_guide_dialog.dart'
;
import
'campaign_7day_guide_dialog.dart'
;
import
'campaign_7day_mission_info_dialog.dart'
;
import
'campaign_7day_mission_info_dialog.dart'
;
import
'campaign_7day_reward_dialog.dart'
;
import
'campaign_7day_reward_dialog.dart'
;
...
...
lib/screen/campaign7day/campaign_7day_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
'../../configs/constants.dart'
;
import
'../../configs/constants.dart'
;
import
'models/campaign_7day_info_model.dart'
;
import
'models/campaign_7day_info_model.dart'
;
import
'models/campaign_7day_mission_model.dart'
;
import
'models/campaign_7day_mission_model.dart'
;
...
...
lib/screen/change_pass/change_pass_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
'../../configs/constants.dart'
;
import
'../../configs/constants.dart'
;
import
'../../preference/data_preference.dart'
;
import
'../../preference/data_preference.dart'
;
import
'../create_pass/change_pass_repository.dart'
;
import
'../create_pass/change_pass_repository.dart'
;
...
...
lib/screen/create_pass/change_pass_repository.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
'package:mypoint_flutter_app/screen/create_pass/signup_create_password_repository.dart'
;
import
'package:mypoint_flutter_app/screen/create_pass/signup_create_password_repository.dart'
;
import
'package:mypoint_flutter_app/widgets/custom_toast_message.dart'
;
import
'package:mypoint_flutter_app/widgets/custom_toast_message.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
'../login/login_screen.dart'
;
import
'../login/login_screen.dart'
;
import
'../main_tab_screen/main_tab_screen.dart'
;
import
'../main_tab_screen/main_tab_screen.dart'
;
import
'../splash/splash_screen_viewmodel.dart'
;
import
'../splash/splash_screen_viewmodel.dart'
;
...
...
lib/screen/create_pass/reset_create_password_repository.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
'package:mypoint_flutter_app/screen/create_pass/signup_create_password_repository.dart'
;
import
'package:mypoint_flutter_app/screen/create_pass/signup_create_password_repository.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
'../splash/splash_screen_viewmodel.dart'
;
import
'../splash/splash_screen_viewmodel.dart'
;
class
ResetCreatePasswordRepository
extends
RestfulApiViewModel
implements
ICreatePasswordRepository
{
class
ResetCreatePasswordRepository
extends
RestfulApiViewModel
implements
ICreatePasswordRepository
{
...
...
lib/screen/create_pass/signup_create_password_repository.dart
View file @
55151ba2
import
'dart:async'
;
import
'dart:async'
;
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
'../../base/base_response_model.dart'
;
import
'../../base/base_response_model.dart'
;
import
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
import
'../../permission/biometric_manager.dart'
;
import
'../../permission/biometric_manager.dart'
;
import
'../../preference/data_preference.dart'
;
import
'../../preference/data_preference.dart'
;
import
'../../shared/router_gage.dart'
;
import
'../../shared/router_gage.dart'
;
...
...
lib/screen/daily_checkin/daily_checkin_screen.dart
View file @
55151ba2
import
'dart:ffi'
;
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/extensions/string_extension.dart'
;
import
'package:mypoint_flutter_app/screen/daily_checkin/daily_checkin_models.dart'
;
import
'package:mypoint_flutter_app/screen/daily_checkin/daily_checkin_models.dart'
;
import
'../../base/base_screen.dart'
;
import
'../../base/base_screen.dart'
;
import
'../../base/basic_state.dart'
;
import
'../../base/basic_state.dart'
;
import
'../../extensions/num_extension.dart'
;
import
'../../preference/point/point_manager.dart'
;
import
'../../preference/point/point_manager.dart'
;
import
'../../resources/base_color.dart'
;
import
'../../resources/base_color.dart'
;
import
'../../widgets/custom_navigation_bar.dart'
;
import
'../../widgets/custom_navigation_bar.dart'
;
...
@@ -23,9 +23,9 @@ class _DailyCheckInScreenState extends BaseState<DailyCheckInScreen> with BasicS
...
@@ -23,9 +23,9 @@ class _DailyCheckInScreenState extends BaseState<DailyCheckInScreen> with BasicS
@override
@override
void
initState
()
{
void
initState
()
{
super
.
initState
();
super
.
initState
();
_viewModel
.
onShowAlertError
=
(
message
)
{
_viewModel
.
onShowAlertError
=
(
message
,
onBack
)
{
if
(
message
.
isNotEmpty
)
{
if
(
message
.
isNotEmpty
)
{
showAlertError
(
content:
message
);
showAlertError
(
content:
message
,
onConfirmed:
onBack
?
()
=>
Get
.
back
()
:
null
);
}
}
};
};
_viewModel
.
submitDataResponse
=
(
SubmitCheckInData
?
data
)
{
_viewModel
.
submitDataResponse
=
(
SubmitCheckInData
?
data
)
{
...
@@ -40,6 +40,7 @@ class _DailyCheckInScreenState extends BaseState<DailyCheckInScreen> with BasicS
...
@@ -40,6 +40,7 @@ class _DailyCheckInScreenState extends BaseState<DailyCheckInScreen> with BasicS
return
Scaffold
(
return
Scaffold
(
appBar:
CustomNavigationBar
(
title:
"Check-in nhận quà"
),
appBar:
CustomNavigationBar
(
title:
"Check-in nhận quà"
),
body:
Obx
(()
{
body:
Obx
(()
{
int
point
=
_viewModel
.
submitData
.
value
?.
customerBalance
?.
amountActive
?.
toInt
()
??
UserPointManager
().
point
??
0
;
return
Column
(
return
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
center
,
crossAxisAlignment:
CrossAxisAlignment
.
center
,
children:
[
children:
[
...
@@ -52,7 +53,7 @@ class _DailyCheckInScreenState extends BaseState<DailyCheckInScreen> with BasicS
...
@@ -52,7 +53,7 @@ class _DailyCheckInScreenState extends BaseState<DailyCheckInScreen> with BasicS
Image
.
asset
(
'assets/images/ic_point.png'
,
width:
24
,
fit:
BoxFit
.
cover
),
Image
.
asset
(
'assets/images/ic_point.png'
,
width:
24
,
fit:
BoxFit
.
cover
),
const
SizedBox
(
width:
4
),
const
SizedBox
(
width:
4
),
Text
(
Text
(
_viewModel
.
submitData
.
value
?.
customerBalance
?.
amountActive
??
UserPointManager
().
point
.
toString
(
),
point
.
money
(
CurrencyUnit
.
point
),
style:
TextStyle
(
color:
Colors
.
orange
,
fontSize:
16
,
fontWeight:
FontWeight
.
w600
),
style:
TextStyle
(
color:
Colors
.
orange
,
fontSize:
16
,
fontWeight:
FontWeight
.
w600
),
),
),
],
],
...
...
lib/screen/daily_checkin/daily_checkin_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
'../../configs/constants.dart'
;
import
'../../networking/restful_api_viewmodel.dart'
;
import
'daily_checkin_models.dart'
;
import
'daily_checkin_models.dart'
;
class
DailyCheckInViewModel
extends
RestfulApiViewModel
{
class
DailyCheckInViewModel
extends
RestfulApiViewModel
{
var
checkInData
=
Rxn
<
CheckInDataModel
>();
var
checkInData
=
Rxn
<
CheckInDataModel
>();
var
submitData
=
Rxn
<
SubmitCheckInData
>();
var
submitData
=
Rxn
<
SubmitCheckInData
>();
void
Function
(
String
message
)?
onShowAlertError
;
void
Function
(
String
message
,
bool
onBack
)?
onShowAlertError
;
void
Function
(
SubmitCheckInData
?
data
)?
submitDataResponse
;
void
Function
(
SubmitCheckInData
?
data
)?
submitDataResponse
;
bool
get
todayIsChecked
{
bool
get
todayIsChecked
{
...
@@ -18,7 +19,6 @@ class DailyCheckInViewModel extends RestfulApiViewModel {
...
@@ -18,7 +19,6 @@ class DailyCheckInViewModel extends RestfulApiViewModel {
@override
@override
onInit
()
{
onInit
()
{
super
.
onInit
();
super
.
onInit
();
// UserPointManager().fetchUserPoint();
_rewardOpportunityGetList
();
_rewardOpportunityGetList
();
}
}
...
@@ -28,9 +28,12 @@ class DailyCheckInViewModel extends RestfulApiViewModel {
...
@@ -28,9 +28,12 @@ class DailyCheckInViewModel extends RestfulApiViewModel {
final
response
=
await
client
.
rewardOpportunityGetList
();
final
response
=
await
client
.
rewardOpportunityGetList
();
hideLoading
();
hideLoading
();
checkInData
.
value
=
response
.
data
;
checkInData
.
value
=
response
.
data
;
if
(!
response
.
isSuccess
)
{
onShowAlertError
?.
call
(
response
.
errorMessage
??
Constants
.
commonError
,
true
);
}
}
catch
(
error
)
{
}
catch
(
error
)
{
hideLoading
();
hideLoading
();
onShowAlertError
?.
call
(
"Error fetching product detail:
$error
"
);
onShowAlertError
?.
call
(
Constants
.
commonError
,
true
);
}
}
}
}
...
@@ -42,9 +45,12 @@ class DailyCheckInViewModel extends RestfulApiViewModel {
...
@@ -42,9 +45,12 @@ class DailyCheckInViewModel extends RestfulApiViewModel {
submitData
.
value
=
response
.
data
;
submitData
.
value
=
response
.
data
;
submitDataResponse
?.
call
(
response
.
data
);
submitDataResponse
?.
call
(
response
.
data
);
_rewardOpportunityGetList
();
_rewardOpportunityGetList
();
if
(!
response
.
isSuccess
)
{
onShowAlertError
?.
call
(
response
.
errorMessage
??
Constants
.
commonError
,
false
);
}
}
catch
(
error
)
{
}
catch
(
error
)
{
hideLoading
();
hideLoading
();
onShowAlertError
?.
call
(
"
Error f
etching product detail:
$error
"
);
onShowAlertError
?.
call
(
Constants
.
common
Error
,
f
alse
);
}
}
}
}
}
}
\ No newline at end of file
lib/screen/data_network_service/data_network_service_viewmodel.dart
View file @
55151ba2
import
'package:get/get.dart'
;
import
'package:get/get.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
'package:mypoint_flutter_app/preference/data_preference.dart'
;
import
'package:mypoint_flutter_app/preference/data_preference.dart'
;
import
'package:mypoint_flutter_app/screen/data_network_service/product_network_data_model.dart'
;
import
'package:mypoint_flutter_app/screen/data_network_service/product_network_data_model.dart'
;
import
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
import
'../../configs/constants.dart'
;
import
'../../configs/constants.dart'
;
import
'../../preference/contact_storage_service.dart'
;
import
'../../preference/contact_storage_service.dart'
;
import
'../../preference/point/point_manager.dart'
;
import
'../../preference/point/point_manager.dart'
;
...
@@ -141,7 +141,11 @@ class DataNetworkServiceViewModel extends RestfulApiViewModel {
...
@@ -141,7 +141,11 @@ class DataNetworkServiceViewModel extends RestfulApiViewModel {
}
}
redeemProductMobileCard
()
async
{
redeemProductMobileCard
()
async
{
final
id
=
selectedProduct
.
value
?.
id
.
toString
()
??
""
;
final
id
=
selectedProduct
.
value
?.
id
;
if
(
id
==
null
)
{
onShowAlertError
?.
call
(
"Vui lòng chọn sản phẩm"
);
return
;
}
showLoading
();
showLoading
();
try
{
try
{
final
response
=
await
client
.
redeemProductTopUps
(
id
,
phoneNumber
.
value
);
final
response
=
await
client
.
redeemProductTopUps
(
id
,
phoneNumber
.
value
);
...
...
lib/screen/delete_account/delete_account_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
'package:mypoint_flutter_app/preference/data_preference.dart'
;
import
'package:mypoint_flutter_app/preference/data_preference.dart'
;
import
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
import
'../../configs/constants.dart'
;
import
'../../configs/constants.dart'
;
import
'../otp/delete_account_otp_repository.dart'
;
import
'../otp/delete_account_otp_repository.dart'
;
import
'../otp/otp_screen.dart'
;
import
'../otp/otp_screen.dart'
;
...
...
lib/screen/device_manager/device_manager_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
'../../
base
/restful_api_viewmodel.dart'
;
import
'../../
networking
/restful_api_viewmodel.dart'
;
import
'device_manager_model.dart'
;
import
'device_manager_model.dart'
;
class
DeviceManagerViewModel
extends
RestfulApiViewModel
{
class
DeviceManagerViewModel
extends
RestfulApiViewModel
{
...
...
lib/screen/electric_payment/electric_payment_bill_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/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
'../../configs/constants.dart'
;
import
'../../configs/constants.dart'
;
import
'../transaction/model/payment_method_model.dart'
;
import
'../transaction/model/payment_method_model.dart'
;
import
'models/customer_contract_object_model.dart'
;
import
'models/customer_contract_object_model.dart'
;
...
...
lib/screen/electric_payment/electric_payment_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
'../../configs/constants.dart'
;
import
'../../configs/constants.dart'
;
import
'electric_payment_bill_screen.dart'
;
import
'electric_payment_bill_screen.dart'
;
import
'models/customer_contract_object_model.dart'
;
import
'models/customer_contract_object_model.dart'
;
...
...
lib/screen/faqs/faqs_screen.dart
View file @
55151ba2
...
@@ -63,12 +63,12 @@ class _FAQScreenState extends BaseState<FAQScreen> with BasicState {
...
@@ -63,12 +63,12 @@ class _FAQScreenState extends BaseState<FAQScreen> with BasicState {
Container
(
Container
(
color:
BaseColor
.
second200
,
color:
BaseColor
.
second200
,
child:
ListTile
(
child:
ListTile
(
leading:
const
Icon
(
Icons
.
help_outline
,
color:
BaseColor
.
second
5
00
),
leading:
const
Icon
(
Icons
.
help_outline
,
color:
BaseColor
.
second
8
00
),
title:
Text
(
title:
Text
(
item
.
title
??
""
,
item
.
title
??
""
,
style:
const
TextStyle
(
fontWeight:
FontWeight
.
bold
,
color:
BaseColor
.
second
7
00
),
style:
const
TextStyle
(
fontWeight:
FontWeight
.
bold
,
color:
BaseColor
.
second
8
00
),
),
),
trailing:
Icon
(
Icons
.
arrow_forward_ios
,
size:
16
,
color:
BaseColor
.
second
5
00
),
trailing:
Icon
(
Icons
.
arrow_forward_ios
,
size:
16
,
color:
BaseColor
.
second
8
00
),
),
),
),
),
const
SizedBox
(
height:
8
),
const
SizedBox
(
height:
8
),
...
@@ -76,10 +76,10 @@ class _FAQScreenState extends BaseState<FAQScreen> with BasicState {
...
@@ -76,10 +76,10 @@ class _FAQScreenState extends BaseState<FAQScreen> with BasicState {
padding:
const
EdgeInsets
.
only
(
left:
56
,
right:
16
,
bottom:
10
),
// 👈 56 = icon width + padding mặc định
padding:
const
EdgeInsets
.
only
(
left:
56
,
right:
16
,
bottom:
10
),
// 👈 56 = icon width + padding mặc định
child:
Align
(
child:
Align
(
alignment:
Alignment
.
centerLeft
,
alignment:
Alignment
.
centerLeft
,
child:
Text
(
item
.
chapeau
??
""
,
style:
const
TextStyle
(
fontSize:
1
6
,
color:
BaseColor
.
second
5
00
)),
child:
Text
(
item
.
chapeau
??
""
,
style:
const
TextStyle
(
fontSize:
1
5
,
color:
BaseColor
.
second
6
00
)),
),
),
),
),
const
SizedBox
(
height:
8
),
const
SizedBox
(
height:
4
),
],
],
),
),
);
);
...
...
lib/screen/faqs/faqs_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/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
'faqs_model.dart'
;
import
'faqs_model.dart'
;
class
FAQViewModel
extends
RestfulApiViewModel
{
class
FAQViewModel
extends
RestfulApiViewModel
{
...
...
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