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
6b980613
Commit
6b980613
authored
Nov 14, 2025
by
DatHV
Browse files
update project structure
parent
bfff9e47
Changes
507
Hide whitespace changes
Inline
Side-by-side
lib/
screen
/daily_checkin/daily_checkin_screen.dart
→
lib/
features
/daily_checkin/daily_checkin_screen.dart
View file @
6b980613
import
'package:flutter/material.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
'../../
base
/base_screen.dart'
;
import
'../../
base
/basic_state.dart'
;
import
'../../extensions/num_extension.dart'
;
import
'../../preference/point/point_manager.dart'
;
import
'../../
resources
/base_color.dart'
;
import
'../../widgets/custom_navigation_bar.dart'
;
import
'package:mypoint_flutter_app/
core/utils/
extensions/string_extension.dart'
;
import
'package:mypoint_flutter_app/
features
/daily_checkin/daily_checkin_models.dart'
;
import
'../../
shared/widgets/base_view
/base_screen.dart'
;
import
'../../
shared/widgets/base_view
/basic_state.dart'
;
import
'../../
core/utils/
extensions/num_extension.dart'
;
import
'../../
shared/
preference
s
/point/point_manager.dart'
;
import
'../../
core/theme
/base_color.dart'
;
import
'../../
shared/
widgets/custom_navigation_bar.dart'
;
import
'daily_checkin_viewmodel.dart'
;
class
DailyCheckInScreen
extends
BaseScreen
{
...
...
@@ -40,7 +40,7 @@ class _DailyCheckInScreenState extends BaseState<DailyCheckInScreen> with BasicS
return
Scaffold
(
appBar:
CustomNavigationBar
(
title:
"Check-in nhận quà"
),
body:
Obx
(()
{
int
point
=
_viewModel
.
submitData
.
value
?.
customerBalance
?.
amountActive
?.
toInt
()
??
UserPointManager
().
point
??
0
;
int
point
=
_viewModel
.
submitData
.
value
?.
customerBalance
?.
amountActive
?.
toInt
()
??
UserPointManager
().
point
;
return
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
center
,
children:
[
...
...
@@ -96,7 +96,7 @@ class _DailyCheckInScreenState extends BaseState<DailyCheckInScreen> with BasicS
Widget
_buildCheckInList
()
{
final
dailyCounters
=
_viewModel
.
checkInData
.
value
?.
dailyCounter
?.
values
??
[];
final
current
=
_viewModel
.
checkInData
.
value
?.
currentCounter
?.
values
?
.
firstOrNull
;
final
current
=
_viewModel
.
checkInData
.
value
?.
currentCounter
?.
values
.
firstOrNull
;
final
checkedCounter
=
int
.
tryParse
(
current
?.
counterValue
??
''
)
??
0
;
final
days
=
List
.
generate
(
dailyCounters
.
length
,
(
index
)
{
final
isChecked
=
index
<
checkedCounter
;
...
...
lib/
screen
/daily_checkin/daily_checkin_viewmodel.dart
→
lib/
features
/daily_checkin/daily_checkin_viewmodel.dart
View file @
6b980613
import
'package:get/get_rx/src/rx_types/rx_types.dart'
;
import
'package:mypoint_flutter_app/network
ing
/restful_api_client_all_request.dart'
;
import
'../../network
ing
/restful_api_viewmodel.dart'
;
import
'package:mypoint_flutter_app/
core/
network/restful_api_client_all_request.dart'
;
import
'../../
core/
network/restful_api_viewmodel.dart'
;
import
'daily_checkin_models.dart'
;
class
DailyCheckInViewModel
extends
RestfulApiViewModel
{
...
...
@@ -27,7 +27,7 @@ class DailyCheckInViewModel extends RestfulApiViewModel {
onSuccess:
(
data
,
_
)
{
checkInData
.
value
=
data
;
},
onFailure:
(
msg
,
_
,
_
_
)
async
{
onFailure:
(
msg
,
_
,
_
)
async
{
onShowAlertError
?.
call
(
msg
,
true
);
},
);
...
...
@@ -41,7 +41,7 @@ class DailyCheckInViewModel extends RestfulApiViewModel {
submitDataResponse
?.
call
(
data
);
_rewardOpportunityGetList
();
// Refresh data after successful check-in
},
onFailure:
(
msg
,
_
,
_
_
)
async
{
onFailure:
(
msg
,
_
,
_
)
async
{
onShowAlertError
?.
call
(
msg
,
false
);
},
);
...
...
lib/
screen
/data_network_service/data_network_service_screen.dart
→
lib/
features
/data_network_service/data_network_service_screen.dart
View file @
6b980613
import
'dart:async'
;
import
'package:flutter/foundation.dart'
;
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/extensions/num_extension.dart'
;
import
'package:mypoint_flutter_app/extensions/string_extension.dart'
;
import
'package:mypoint_flutter_app/
screen
/data_network_service/product_network_data_model.dart'
;
import
'package:mypoint_flutter_app/widgets/custom_empty_widget.dart'
;
import
'package:mypoint_flutter_app/widgets/custom_navigation_bar.dart'
;
import
'package:mypoint_flutter_app/widgets/image_loader.dart'
;
import
'../../
base
/base_screen.dart'
;
import
'../../
base
/basic_state.dart'
;
import
'../../
extension
s/debouncer.dart'
;
import
'../../preference/data_preference.dart'
;
import
'../../preference/point/point_manager.dart'
;
import
'../../
resources
/base_color.dart'
;
import
'../../widgets/alert/custom_alert_dialog.dart'
;
import
'../../widgets/alert/data_alert_model.dart'
;
import
'package:mypoint_flutter_app/
core/utils/
extensions/num_extension.dart'
;
import
'package:mypoint_flutter_app/
core/utils/
extensions/string_extension.dart'
;
import
'package:mypoint_flutter_app/
features
/data_network_service/product_network_data_model.dart'
;
import
'package:mypoint_flutter_app/
shared/
widgets/custom_empty_widget.dart'
;
import
'package:mypoint_flutter_app/
shared/
widgets/custom_navigation_bar.dart'
;
import
'package:mypoint_flutter_app/
shared/
widgets/image_loader.dart'
;
import
'../../
shared/widgets/base_view
/base_screen.dart'
;
import
'../../
shared/widgets/base_view
/basic_state.dart'
;
import
'../../
core/util
s/debouncer.dart'
;
import
'../../
shared/
preference
s
/data_preference.dart'
;
import
'../../
shared/
preference
s
/point/point_manager.dart'
;
import
'../../
core/theme
/base_color.dart'
;
import
'../../
shared/
widgets/alert/custom_alert_dialog.dart'
;
import
'../../
shared/
widgets/alert/data_alert_model.dart'
;
import
'../contacts/contacts_picker.dart'
;
import
'../topup/brand_select_sheet_widget.dart'
;
import
'data_network_service_viewmodel.dart'
;
...
...
@@ -59,7 +58,8 @@ class _DataNetworkServiceScreenState extends BaseState<DataNetworkServiceScreen>
_buildHeaderPhone
(),
Container
(
height:
6
,
color:
Colors
.
grey
.
shade200
),
const
Divider
(
height:
8
),
if
(
_viewModel
.
topUpNetworkData
.
isEmpty
)
Expanded
(
child:
EmptyWidget
()),
if
(
_viewModel
.
topUpNetworkData
.
isEmpty
)
Expanded
(
child:
EmptyWidget
(
isLoading:
_viewModel
.
isLoading
.
value
)),
if
(
_viewModel
.
topUpNetworkData
.
isNotEmpty
)
Expanded
(
child:
ListView
.
builder
(
...
...
@@ -258,7 +258,7 @@ class _DataNetworkServiceScreenState extends BaseState<DataNetworkServiceScreen>
selectedBrand:
_viewModel
.
selectedBrand
.
value
,
onSelected:
(
brand
)
{
Navigator
.
pop
(
context
);
if
(
brand
==
null
&&
brand
.
id
!=
_viewModel
.
selectedBrand
.
value
?.
id
)
return
;
if
(
brand
.
id
!=
_viewModel
.
selectedBrand
.
value
?.
id
)
return
;
_viewModel
.
selectedProduct
.
value
=
null
;
_viewModel
.
selectedBrand
.
value
=
brand
;
_viewModel
.
getTelcoDetail
();
...
...
@@ -302,7 +302,7 @@ class _DataNetworkServiceScreenState extends BaseState<DataNetworkServiceScreen>
scrollDirection:
Axis
.
horizontal
,
padding:
const
EdgeInsets
.
symmetric
(
horizontal:
8
),
itemCount:
histories
.
length
,
separatorBuilder:
(
_
,
_
_
)
=>
const
SizedBox
(
width:
8
),
separatorBuilder:
(
_
,
_
)
=>
const
SizedBox
(
width:
8
),
itemBuilder:
(
_
,
index
)
{
final
phone
=
histories
[
index
];
final
myPhone
=
DataPreference
.
instance
.
phone
??
''
;
...
...
@@ -360,4 +360,4 @@ class _DataNetworkServiceScreenState extends BaseState<DataNetworkServiceScreen>
);
}
}
}
\ No newline at end of file
}
lib/
screen
/data_network_service/data_network_service_viewmodel.dart
→
lib/
features
/data_network_service/data_network_service_viewmodel.dart
View file @
6b980613
import
'package:get/get.dart'
;
import
'package:get/get_rx/src/rx_types/rx_types.dart'
;
import
'package:mypoint_flutter_app/network
ing
/api/product_api.dart'
deferred
as
product_api
;
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/widgets/custom_toast_message.dart'
;
import
'../../
base
/base_response_model.dart'
;
import
'../../network
ing
/restful_api_viewmodel.dart'
;
import
'../../config
s
/constants.dart'
;
import
'../../
preferen
ce/contact_storage_service.dart'
;
import
'../../preference/point/point_manager.dart'
;
import
'package:mypoint_flutter_app/
core/
network/api/product_api.dart'
deferred
as
product_api
;
import
'package:mypoint_flutter_app/
shared/
preference
s
/data_preference.dart'
;
import
'package:mypoint_flutter_app/
features
/data_network_service/product_network_data_model.dart'
;
import
'package:mypoint_flutter_app/
shared/
widgets/custom_toast_message.dart'
;
import
'../../
shared/widgets/base_view
/base_response_model.dart'
;
import
'../../
core/
network/restful_api_viewmodel.dart'
;
import
'../../
app/
config/constants.dart'
;
import
'../../
core/servi
ce
s
/contact_storage_service.dart'
;
import
'../../
shared/
preference
s
/point/point_manager.dart'
;
import
'../topup/models/brand_network_model.dart'
;
import
'../voucher/models/product_brand_model.dart'
;
...
...
lib/
screen
/data_network_service/product_network_data_model.dart
→
lib/
features
/data_network_service/product_network_data_model.dart
View file @
6b980613
File moved
lib/
screen
/data_network_service/product_network_data_model.g.dart
→
lib/
features
/data_network_service/product_network_data_model.g.dart
View file @
6b980613
File moved
lib/
screen
/delete_account/delete_account_dialog.dart
→
lib/
features
/delete_account/delete_account_dialog.dart
View file @
6b980613
// delete_account_dialog.dart
import
'package:flutter/material.dart'
;
import
'package:flutter/gestures.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/extensions/num_extension.dart'
;
import
'package:mypoint_flutter_app/preference/data_preference.dart'
;
import
'package:mypoint_flutter_app/
resources
/base_color.dart'
;
import
'../../preference/point/point_manager.dart'
;
import
'../../resources/button_style.dart'
;
import
'../../resources/text_style.dart'
;
import
'package:mypoint_flutter_app/
core/utils/
extensions/num_extension.dart'
;
import
'package:mypoint_flutter_app/
shared/
preference
s
/data_preference.dart'
;
import
'package:mypoint_flutter_app/
core/theme
/base_color.dart'
;
import
'../../
shared/
preference
s
/point/point_manager.dart'
;
import
'../../
shared/
resources/button_style.dart'
;
import
'../../
shared/
resources/text_style.dart'
;
import
'../../shared/router_gage.dart'
;
import
'../pageDetail/campaign_detail_screen.dart'
;
import
'../pageDetail/model/detail_page_rule_type.dart'
;
import
'delete_account_viewmodel.dart'
;
...
...
lib/
screen
/delete_account/delete_account_viewmodel.dart
→
lib/
features
/delete_account/delete_account_viewmodel.dart
View file @
6b980613
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/network
ing
/restful_api_client_all_request.dart'
;
import
'package:mypoint_flutter_app/preference/data_preference.dart'
;
import
'package:mypoint_flutter_app/widgets/custom_toast_message.dart'
;
import
'../../network
ing
/restful_api_viewmodel.dart'
;
import
'../../config
s
/constants.dart'
;
import
'package:mypoint_flutter_app/
core/
network/restful_api_client_all_request.dart'
;
import
'package:mypoint_flutter_app/
shared/
preference
s
/data_preference.dart'
;
import
'package:mypoint_flutter_app/
shared/
widgets/custom_toast_message.dart'
;
import
'../../
core/
network/restful_api_viewmodel.dart'
;
import
'../../
app/
config/constants.dart'
;
import
'../otp/delete_account_otp_repository.dart'
;
import
'../otp/model/create_otp_response_model.dart'
;
import
'../otp/otp_screen.dart'
;
...
...
lib/
screen
/device_manager/device_info_popup.dart
→
lib/
features
/device_manager/device_info_popup.dart
View file @
6b980613
File moved
lib/
screen
/device_manager/device_manager_model.dart
→
lib/
features
/device_manager/device_manager_model.dart
View file @
6b980613
File moved
lib/
screen
/device_manager/device_manager_screen.dart
→
lib/
features
/device_manager/device_manager_screen.dart
View file @
6b980613
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/widgets/custom_empty_widget.dart'
;
import
'../../
base
/base_screen.dart'
;
import
'../../
base
/basic_state.dart'
;
import
'../../widgets/bottom_sheet_helper.dart'
;
import
'../../widgets/custom_navigation_bar.dart'
;
import
'package:mypoint_flutter_app/
shared/
widgets/custom_empty_widget.dart'
;
import
'../../
shared/widgets/base_view
/base_screen.dart'
;
import
'../../
shared/widgets/base_view
/basic_state.dart'
;
import
'../../
shared/
widgets/bottom_sheet_helper.dart'
;
import
'../../
shared/
widgets/custom_navigation_bar.dart'
;
import
'device_info_popup.dart'
;
import
'device_manager_model.dart'
;
import
'device_manager_viewmodel.dart'
;
...
...
@@ -37,7 +37,7 @@ class _DeviceManagerScreenState extends BaseState<DeviceManagerScreen> with Basi
appBar:
CustomNavigationBar
(
title:
'Quản lý thiết bị đăng nhập'
),
body:
Obx
(()
{
final
logoutDevices
=
_viewModel
.
logoutDevicesResponse
.
value
?.
devices
??
[];
final
logoutDisplayDevices
=
logoutDevices
.
take
(
3
).
toList
()
??
[]
;
final
logoutDisplayDevices
=
logoutDevices
.
take
(
3
).
toList
();
final
currentDevice
=
_viewModel
.
currentDevice
.
value
;
return
RefreshIndicator
(
onRefresh:
()
async
=>
_refresh
(),
...
...
lib/
screen
/device_manager/device_manager_viewmodel.dart
→
lib/
features
/device_manager/device_manager_viewmodel.dart
View file @
6b980613
import
'package:get/get_rx/src/rx_types/rx_types.dart'
;
import
'package:mypoint_flutter_app/configs/constants.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart'
;
import
'../../networking/restful_api_viewmodel.dart'
;
import
'package:mypoint_flutter_app/core/network/restful_api_client_all_request.dart'
;
import
'../../core/network/restful_api_viewmodel.dart'
;
import
'device_manager_model.dart'
;
class
DeviceManagerViewModel
extends
RestfulApiViewModel
{
...
...
lib/
screen
/device_manager/logged_out_devices_screen.dart
→
lib/
features
/device_manager/logged_out_devices_screen.dart
View file @
6b980613
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/widgets/custom_empty_widget.dart'
;
import
'../../
base
/base_screen.dart'
;
import
'../../
base
/basic_state.dart'
;
import
'../../widgets/bottom_sheet_helper.dart'
;
import
'../../widgets/custom_navigation_bar.dart'
;
import
'package:mypoint_flutter_app/
shared/
widgets/custom_empty_widget.dart'
;
import
'../../
shared/widgets/base_view
/base_screen.dart'
;
import
'../../
shared/widgets/base_view
/basic_state.dart'
;
import
'../../
shared/
widgets/bottom_sheet_helper.dart'
;
import
'../../
shared/
widgets/custom_navigation_bar.dart'
;
import
'device_info_popup.dart'
;
import
'device_manager_model.dart'
;
import
'device_manager_screen.dart'
;
...
...
@@ -37,16 +37,33 @@ class _LoggedOutDeviceScreenState extends BaseState<LoggedOutDeviceScreen> with
appBar:
CustomNavigationBar
(
title:
'Các thiết bị đã đăng xuất'
),
body:
Obx
(()
{
final
logoutDevices
=
_viewModel
.
logoutDevicesResponse
.
value
?.
devices
??
[];
if
(
logoutDevices
.
isEmpty
)
{
return
RefreshIndicator
(
onRefresh:
()
async
=>
_refresh
(),
child:
CustomScrollView
(
physics:
const
AlwaysScrollableScrollPhysics
(),
slivers:
[
SliverFillRemaining
(
hasScrollBody:
false
,
child:
Padding
(
padding:
const
EdgeInsets
.
symmetric
(
horizontal:
16
),
child:
Center
(
child:
EmptyWidget
(
content:
'Chưa có thiết bị đã đăng xuất gần đây'
),
),
),
),
],
),
);
}
return
RefreshIndicator
(
onRefresh:
()
async
=>
_refresh
(),
child:
ListView
(
padding:
EdgeInsets
.
zero
,
physics:
const
AlwaysScrollableScrollPhysics
(),
children:
[
const
SizedBox
(
height:
12
),
if
(
logoutDevices
.
isEmpty
)
EmptyWidget
(
content:
'Chưa có thiết bị đã đăng xuất gần đây'
)
else
...
logoutDevices
.
map
((
e
)
=>
DeviceItemWidget
(
item:
e
,
onMore:
()
=>
_showMore
(
e
))),
...
logoutDevices
.
map
((
e
)
=>
DeviceItemWidget
(
item:
e
,
onMore:
()
=>
_showMore
(
e
))),
const
SizedBox
(
height:
32
),
],
),
...
...
lib/
screen
/electric_payment/electric_payment_bill_screen.dart
→
lib/
features
/electric_payment/electric_payment_bill_screen.dart
View file @
6b980613
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/extensions/num_extension.dart'
;
import
'package:mypoint_flutter_app/widgets/image_loader.dart'
;
import
'../../
resources
/base_color.dart'
;
import
'package:mypoint_flutter_app/
core/utils/
extensions/num_extension.dart'
;
import
'package:mypoint_flutter_app/
shared/
widgets/image_loader.dart'
;
import
'../../
core/theme
/base_color.dart'
;
import
'../../shared/router_gage.dart'
;
import
'../../widgets/custom_navigation_bar.dart'
;
import
'../../
shared/
widgets/custom_navigation_bar.dart'
;
import
'../transaction/model/payment_method_model.dart'
;
import
'../webview/payment_web_view_screen.dart'
;
import
'models/customer_contract_object_model.dart'
;
...
...
@@ -28,15 +28,15 @@ class _ElectricPaymentBillScreenState extends State<ElectricPaymentBillScreen> {
Get
.
toNamed
(
paymentWebViewScreen
,
arguments:
PaymentWebViewInput
(
url:
data
?
.
vitapayData
??
""
,
url:
data
.
vitapayData
??
""
,
isContract:
false
,
orderId:
data
?
.
requestId
??
""
,
orderId:
data
.
requestId
??
""
,
showAlertBack:
false
,
callback:
(
result
)
{
if
(
result
==
PaymentProcess
.
success
)
{
Get
.
offNamed
(
transactionHistoryDetailScreen
,
arguments:
{
"orderId"
:
data
?
.
requestId
??
""
,
"canBack"
:
true
},
arguments:
{
"orderId"
:
data
.
requestId
??
""
,
"canBack"
:
true
},
);
}
},
...
...
lib/
screen
/electric_payment/electric_payment_bill_viewmodel.dart
→
lib/
features
/electric_payment/electric_payment_bill_viewmodel.dart
View file @
6b980613
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/network
ing
/api/product_api.dart'
deferred
as
product_api
;
import
'package:mypoint_flutter_app/network
ing
/restful_api_client_all_request.dart'
;
import
'../../network
ing
/restful_api_viewmodel.dart'
;
import
'package:mypoint_flutter_app/
core/utils/
extensions/collection_extension.dart'
;
import
'package:mypoint_flutter_app/
core/
network/api/product_api.dart'
deferred
as
product_api
;
import
'package:mypoint_flutter_app/
core/
network/restful_api_client_all_request.dart'
;
import
'../../
core/
network/restful_api_viewmodel.dart'
;
import
'../transaction/model/payment_method_model.dart'
;
import
'models/customer_contract_object_model.dart'
;
import
'models/electric_payment_response_model.dart'
;
import
'../../
base
/base_response_model.dart'
;
import
'../../
shared/widgets/base_view
/base_response_model.dart'
;
class
ElectricPaymentBillViewModel
extends
RestfulApiViewModel
{
final
RxList
<
PaymentMethodModel
>
paymentMethods
=
<
PaymentMethodModel
>[].
obs
;
...
...
lib/
screen
/electric_payment/electric_payment_history_screen.dart
→
lib/
features
/electric_payment/electric_payment_history_screen.dart
View file @
6b980613
import
'package:flutter/foundation.dart'
;
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/extensions/num_extension.dart'
;
import
'package:mypoint_flutter_app/widgets/custom_empty_widget.dart'
;
import
'../../
resources
/base_color.dart'
;
import
'package:mypoint_flutter_app/
core/utils/
extensions/num_extension.dart'
;
import
'package:mypoint_flutter_app/
shared/
widgets/custom_empty_widget.dart'
;
import
'../../
core/theme
/base_color.dart'
;
import
'../../shared/router_gage.dart'
;
import
'../../widgets/custom_navigation_bar.dart'
;
import
'../../
shared/
widgets/custom_navigation_bar.dart'
;
import
'models/customer_contract_object_model.dart'
;
import
'electric_payment_bill_screen.dart'
;
import
'electric_payment_viewmodel.dart'
;
...
...
@@ -115,7 +114,7 @@ class _ElectricPaymentHistoryScreenState extends State<ElectricPaymentHistoryScr
const
SizedBox
(
height:
8
),
Obx
(()
{
return
(
_viewModel
.
billContracts
.
value
.
isEmpty
)
?
Expanded
(
child:
Center
(
child:
EmptyWidget
()))
?
Expanded
(
child:
Center
(
child:
EmptyWidget
(
isLoading:
_viewModel
.
isLoading
.
value
)))
:
Expanded
(
child:
ListView
.
builder
(
itemCount:
_viewModel
.
billContracts
.
value
.
length
,
...
...
lib/
screen
/electric_payment/electric_payment_screen.dart
→
lib/
features
/electric_payment/electric_payment_screen.dart
View file @
6b980613
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'../../
base
/base_screen.dart'
;
import
'../../
base
/basic_state.dart'
;
import
'../../
resources
/base_color.dart'
;
import
'../../widgets/custom_navigation_bar.dart'
;
import
'../../
shared/widgets/base_view
/base_screen.dart'
;
import
'../../
shared/widgets/base_view
/basic_state.dart'
;
import
'../../
core/theme
/base_color.dart'
;
import
'../../
shared/
widgets/custom_navigation_bar.dart'
;
import
'electric_payment_viewmodel.dart'
;
class
ElectricPaymentScreen
extends
BaseScreen
{
...
...
lib/
screen
/electric_payment/electric_payment_viewmodel.dart
→
lib/
features
/electric_payment/electric_payment_viewmodel.dart
View file @
6b980613
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/network
ing
/restful_api_client_all_request.dart'
;
import
'../../network
ing
/restful_api_viewmodel.dart'
;
import
'package:mypoint_flutter_app/
core/
network/restful_api_client_all_request.dart'
;
import
'../../
core/
network/restful_api_viewmodel.dart'
;
import
'electric_payment_bill_screen.dart'
;
import
'models/customer_contract_object_model.dart'
;
...
...
lib/
screen
/electric_payment/models/customer_contract_object_model.dart
→
lib/
features
/electric_payment/models/customer_contract_object_model.dart
View file @
6b980613
File moved
lib/
screen
/electric_payment/models/electric_payment_response_model.dart
→
lib/
features
/electric_payment/models/electric_payment_response_model.dart
View file @
6b980613
File moved
Prev
1
…
4
5
6
7
8
9
10
11
12
…
26
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