Commit 6b980613 authored by DatHV's avatar DatHV
Browse files

update project structure

parent bfff9e47
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/core/utils/extensions/string_extension.dart';
import 'package:mypoint_flutter_app/screen/daily_checkin/daily_checkin_models.dart'; import 'package:mypoint_flutter_app/features/daily_checkin/daily_checkin_models.dart';
import '../../base/base_screen.dart'; import '../../shared/widgets/base_view/base_screen.dart';
import '../../base/basic_state.dart'; import '../../shared/widgets/base_view/basic_state.dart';
import '../../extensions/num_extension.dart'; import '../../core/utils/extensions/num_extension.dart';
import '../../preference/point/point_manager.dart'; import '../../shared/preferences/point/point_manager.dart';
import '../../resources/base_color.dart'; import '../../core/theme/base_color.dart';
import '../../widgets/custom_navigation_bar.dart'; import '../../shared/widgets/custom_navigation_bar.dart';
import 'daily_checkin_viewmodel.dart'; import 'daily_checkin_viewmodel.dart';
class DailyCheckInScreen extends BaseScreen { class DailyCheckInScreen extends BaseScreen {
...@@ -40,7 +40,7 @@ class _DailyCheckInScreenState extends BaseState<DailyCheckInScreen> with BasicS ...@@ -40,7 +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; int point = _viewModel.submitData.value?.customerBalance?.amountActive?.toInt() ?? UserPointManager().point;
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
...@@ -96,7 +96,7 @@ class _DailyCheckInScreenState extends BaseState<DailyCheckInScreen> with BasicS ...@@ -96,7 +96,7 @@ class _DailyCheckInScreenState extends BaseState<DailyCheckInScreen> with BasicS
Widget _buildCheckInList() { Widget _buildCheckInList() {
final dailyCounters = _viewModel.checkInData.value?.dailyCounter?.values ?? []; 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 checkedCounter = int.tryParse(current?.counterValue ?? '') ?? 0;
final days = List.generate(dailyCounters.length, (index) { final days = List.generate(dailyCounters.length, (index) {
final isChecked = index < checkedCounter; final isChecked = index < checkedCounter;
......
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_client_all_request.dart'; import 'package:mypoint_flutter_app/core/network/restful_api_client_all_request.dart';
import '../../networking/restful_api_viewmodel.dart'; import '../../core/network/restful_api_viewmodel.dart';
import 'daily_checkin_models.dart'; import 'daily_checkin_models.dart';
class DailyCheckInViewModel extends RestfulApiViewModel { class DailyCheckInViewModel extends RestfulApiViewModel {
...@@ -27,7 +27,7 @@ class DailyCheckInViewModel extends RestfulApiViewModel { ...@@ -27,7 +27,7 @@ class DailyCheckInViewModel extends RestfulApiViewModel {
onSuccess: (data, _) { onSuccess: (data, _) {
checkInData.value = data; checkInData.value = data;
}, },
onFailure: (msg, _, __) async { onFailure: (msg, _, _) async {
onShowAlertError?.call(msg, true); onShowAlertError?.call(msg, true);
}, },
); );
...@@ -41,7 +41,7 @@ class DailyCheckInViewModel extends RestfulApiViewModel { ...@@ -41,7 +41,7 @@ class DailyCheckInViewModel extends RestfulApiViewModel {
submitDataResponse?.call(data); submitDataResponse?.call(data);
_rewardOpportunityGetList(); // Refresh data after successful check-in _rewardOpportunityGetList(); // Refresh data after successful check-in
}, },
onFailure: (msg, _, __) async { onFailure: (msg, _, _) async {
onShowAlertError?.call(msg, false); onShowAlertError?.call(msg, false);
}, },
); );
......
import 'dart:async'; import 'dart:async';
import 'package:flutter/foundation.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/extensions/num_extension.dart'; import 'package:mypoint_flutter_app/core/utils/extensions/num_extension.dart';
import 'package:mypoint_flutter_app/extensions/string_extension.dart'; import 'package:mypoint_flutter_app/core/utils/extensions/string_extension.dart';
import 'package:mypoint_flutter_app/screen/data_network_service/product_network_data_model.dart'; import 'package:mypoint_flutter_app/features/data_network_service/product_network_data_model.dart';
import 'package:mypoint_flutter_app/widgets/custom_empty_widget.dart'; import 'package:mypoint_flutter_app/shared/widgets/custom_empty_widget.dart';
import 'package:mypoint_flutter_app/widgets/custom_navigation_bar.dart'; import 'package:mypoint_flutter_app/shared/widgets/custom_navigation_bar.dart';
import 'package:mypoint_flutter_app/widgets/image_loader.dart'; import 'package:mypoint_flutter_app/shared/widgets/image_loader.dart';
import '../../base/base_screen.dart'; import '../../shared/widgets/base_view/base_screen.dart';
import '../../base/basic_state.dart'; import '../../shared/widgets/base_view/basic_state.dart';
import '../../extensions/debouncer.dart'; import '../../core/utils/debouncer.dart';
import '../../preference/data_preference.dart'; import '../../shared/preferences/data_preference.dart';
import '../../preference/point/point_manager.dart'; import '../../shared/preferences/point/point_manager.dart';
import '../../resources/base_color.dart'; import '../../core/theme/base_color.dart';
import '../../widgets/alert/custom_alert_dialog.dart'; import '../../shared/widgets/alert/custom_alert_dialog.dart';
import '../../widgets/alert/data_alert_model.dart'; import '../../shared/widgets/alert/data_alert_model.dart';
import '../contacts/contacts_picker.dart'; import '../contacts/contacts_picker.dart';
import '../topup/brand_select_sheet_widget.dart'; import '../topup/brand_select_sheet_widget.dart';
import 'data_network_service_viewmodel.dart'; import 'data_network_service_viewmodel.dart';
...@@ -59,7 +58,8 @@ class _DataNetworkServiceScreenState extends BaseState<DataNetworkServiceScreen> ...@@ -59,7 +58,8 @@ class _DataNetworkServiceScreenState extends BaseState<DataNetworkServiceScreen>
_buildHeaderPhone(), _buildHeaderPhone(),
Container(height: 6, color: Colors.grey.shade200), Container(height: 6, color: Colors.grey.shade200),
const Divider(height: 8), 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) if (_viewModel.topUpNetworkData.isNotEmpty)
Expanded( Expanded(
child: ListView.builder( child: ListView.builder(
...@@ -258,7 +258,7 @@ class _DataNetworkServiceScreenState extends BaseState<DataNetworkServiceScreen> ...@@ -258,7 +258,7 @@ class _DataNetworkServiceScreenState extends BaseState<DataNetworkServiceScreen>
selectedBrand: _viewModel.selectedBrand.value, selectedBrand: _viewModel.selectedBrand.value,
onSelected: (brand) { onSelected: (brand) {
Navigator.pop(context); 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.selectedProduct.value = null;
_viewModel.selectedBrand.value = brand; _viewModel.selectedBrand.value = brand;
_viewModel.getTelcoDetail(); _viewModel.getTelcoDetail();
...@@ -302,7 +302,7 @@ class _DataNetworkServiceScreenState extends BaseState<DataNetworkServiceScreen> ...@@ -302,7 +302,7 @@ class _DataNetworkServiceScreenState extends BaseState<DataNetworkServiceScreen>
scrollDirection: Axis.horizontal, scrollDirection: Axis.horizontal,
padding: const EdgeInsets.symmetric(horizontal: 8), padding: const EdgeInsets.symmetric(horizontal: 8),
itemCount: histories.length, itemCount: histories.length,
separatorBuilder: (_, __) => const SizedBox(width: 8), separatorBuilder: (_, _) => const SizedBox(width: 8),
itemBuilder: (_, index) { itemBuilder: (_, index) {
final phone = histories[index]; final phone = histories[index];
final myPhone = DataPreference.instance.phone ?? ''; final myPhone = DataPreference.instance.phone ?? '';
...@@ -360,4 +360,4 @@ class _DataNetworkServiceScreenState extends BaseState<DataNetworkServiceScreen> ...@@ -360,4 +360,4 @@ class _DataNetworkServiceScreenState extends BaseState<DataNetworkServiceScreen>
); );
} }
} }
} }
\ No newline at end of file
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/api/product_api.dart' deferred as product_api; import 'package:mypoint_flutter_app/core/network/api/product_api.dart' deferred as product_api;
import 'package:mypoint_flutter_app/preference/data_preference.dart'; import 'package:mypoint_flutter_app/shared/preferences/data_preference.dart';
import 'package:mypoint_flutter_app/screen/data_network_service/product_network_data_model.dart'; import 'package:mypoint_flutter_app/features/data_network_service/product_network_data_model.dart';
import 'package:mypoint_flutter_app/widgets/custom_toast_message.dart'; import 'package:mypoint_flutter_app/shared/widgets/custom_toast_message.dart';
import '../../base/base_response_model.dart'; import '../../shared/widgets/base_view/base_response_model.dart';
import '../../networking/restful_api_viewmodel.dart'; import '../../core/network/restful_api_viewmodel.dart';
import '../../configs/constants.dart'; import '../../app/config/constants.dart';
import '../../preference/contact_storage_service.dart'; import '../../core/services/contact_storage_service.dart';
import '../../preference/point/point_manager.dart'; import '../../shared/preferences/point/point_manager.dart';
import '../topup/models/brand_network_model.dart'; import '../topup/models/brand_network_model.dart';
import '../voucher/models/product_brand_model.dart'; import '../voucher/models/product_brand_model.dart';
......
// delete_account_dialog.dart
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/gestures.dart'; import 'package:flutter/gestures.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:mypoint_flutter_app/extensions/num_extension.dart'; import 'package:mypoint_flutter_app/core/utils/extensions/num_extension.dart';
import 'package:mypoint_flutter_app/preference/data_preference.dart'; import 'package:mypoint_flutter_app/shared/preferences/data_preference.dart';
import 'package:mypoint_flutter_app/resources/base_color.dart'; import 'package:mypoint_flutter_app/core/theme/base_color.dart';
import '../../preference/point/point_manager.dart'; import '../../shared/preferences/point/point_manager.dart';
import '../../resources/button_style.dart'; import '../../shared/resources/button_style.dart';
import '../../resources/text_style.dart'; import '../../shared/resources/text_style.dart';
import '../../shared/router_gage.dart'; import '../../shared/router_gage.dart';
import '../pageDetail/campaign_detail_screen.dart';
import '../pageDetail/model/detail_page_rule_type.dart'; import '../pageDetail/model/detail_page_rule_type.dart';
import 'delete_account_viewmodel.dart'; import 'delete_account_viewmodel.dart';
......
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart'; import 'package:mypoint_flutter_app/core/network/restful_api_client_all_request.dart';
import 'package:mypoint_flutter_app/preference/data_preference.dart'; import 'package:mypoint_flutter_app/shared/preferences/data_preference.dart';
import 'package:mypoint_flutter_app/widgets/custom_toast_message.dart'; import 'package:mypoint_flutter_app/shared/widgets/custom_toast_message.dart';
import '../../networking/restful_api_viewmodel.dart'; import '../../core/network/restful_api_viewmodel.dart';
import '../../configs/constants.dart'; import '../../app/config/constants.dart';
import '../otp/delete_account_otp_repository.dart'; import '../otp/delete_account_otp_repository.dart';
import '../otp/model/create_otp_response_model.dart'; import '../otp/model/create_otp_response_model.dart';
import '../otp/otp_screen.dart'; import '../otp/otp_screen.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/widgets/custom_empty_widget.dart'; import 'package:mypoint_flutter_app/shared/widgets/custom_empty_widget.dart';
import '../../base/base_screen.dart'; import '../../shared/widgets/base_view/base_screen.dart';
import '../../base/basic_state.dart'; import '../../shared/widgets/base_view/basic_state.dart';
import '../../widgets/bottom_sheet_helper.dart'; import '../../shared/widgets/bottom_sheet_helper.dart';
import '../../widgets/custom_navigation_bar.dart'; import '../../shared/widgets/custom_navigation_bar.dart';
import 'device_info_popup.dart'; import 'device_info_popup.dart';
import 'device_manager_model.dart'; import 'device_manager_model.dart';
import 'device_manager_viewmodel.dart'; import 'device_manager_viewmodel.dart';
...@@ -37,7 +37,7 @@ class _DeviceManagerScreenState extends BaseState<DeviceManagerScreen> with Basi ...@@ -37,7 +37,7 @@ class _DeviceManagerScreenState extends BaseState<DeviceManagerScreen> with Basi
appBar: CustomNavigationBar(title: 'Quản lý thiết bị đăng nhập'), appBar: CustomNavigationBar(title: 'Quản lý thiết bị đăng nhập'),
body: Obx(() { body: Obx(() {
final logoutDevices = _viewModel.logoutDevicesResponse.value?.devices ?? []; final logoutDevices = _viewModel.logoutDevicesResponse.value?.devices ?? [];
final logoutDisplayDevices = logoutDevices.take(3).toList() ?? []; final logoutDisplayDevices = logoutDevices.take(3).toList();
final currentDevice = _viewModel.currentDevice.value; final currentDevice = _viewModel.currentDevice.value;
return RefreshIndicator( return RefreshIndicator(
onRefresh: () async => _refresh(), onRefresh: () async => _refresh(),
......
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/core/network/restful_api_client_all_request.dart';
import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart'; import '../../core/network/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 {
......
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/widgets/custom_empty_widget.dart'; import 'package:mypoint_flutter_app/shared/widgets/custom_empty_widget.dart';
import '../../base/base_screen.dart'; import '../../shared/widgets/base_view/base_screen.dart';
import '../../base/basic_state.dart'; import '../../shared/widgets/base_view/basic_state.dart';
import '../../widgets/bottom_sheet_helper.dart'; import '../../shared/widgets/bottom_sheet_helper.dart';
import '../../widgets/custom_navigation_bar.dart'; import '../../shared/widgets/custom_navigation_bar.dart';
import 'device_info_popup.dart'; import 'device_info_popup.dart';
import 'device_manager_model.dart'; import 'device_manager_model.dart';
import 'device_manager_screen.dart'; import 'device_manager_screen.dart';
...@@ -37,16 +37,33 @@ class _LoggedOutDeviceScreenState extends BaseState<LoggedOutDeviceScreen> with ...@@ -37,16 +37,33 @@ class _LoggedOutDeviceScreenState extends BaseState<LoggedOutDeviceScreen> with
appBar: CustomNavigationBar(title: 'Các thiết bị đã đăng xuất'), appBar: CustomNavigationBar(title: 'Các thiết bị đã đăng xuất'),
body: Obx(() { body: Obx(() {
final logoutDevices = _viewModel.logoutDevicesResponse.value?.devices ?? []; 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( return RefreshIndicator(
onRefresh: () async => _refresh(), onRefresh: () async => _refresh(),
child: ListView( child: ListView(
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
physics: const AlwaysScrollableScrollPhysics(),
children: [ children: [
const SizedBox(height: 12), const SizedBox(height: 12),
if (logoutDevices.isEmpty) ...logoutDevices.map((e) => DeviceItemWidget(item: e, onMore: () => _showMore(e))),
EmptyWidget(content: 'Chưa có thiết bị đã đăng xuất gần đây')
else
...logoutDevices.map((e) => DeviceItemWidget(item: e, onMore: () => _showMore(e))),
const SizedBox(height: 32), const SizedBox(height: 32),
], ],
), ),
......
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/num_extension.dart'; import 'package:mypoint_flutter_app/core/utils/extensions/num_extension.dart';
import 'package:mypoint_flutter_app/widgets/image_loader.dart'; import 'package:mypoint_flutter_app/shared/widgets/image_loader.dart';
import '../../resources/base_color.dart'; import '../../core/theme/base_color.dart';
import '../../shared/router_gage.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 '../transaction/model/payment_method_model.dart';
import '../webview/payment_web_view_screen.dart'; import '../webview/payment_web_view_screen.dart';
import 'models/customer_contract_object_model.dart'; import 'models/customer_contract_object_model.dart';
...@@ -28,15 +28,15 @@ class _ElectricPaymentBillScreenState extends State<ElectricPaymentBillScreen> { ...@@ -28,15 +28,15 @@ class _ElectricPaymentBillScreenState extends State<ElectricPaymentBillScreen> {
Get.toNamed( Get.toNamed(
paymentWebViewScreen, paymentWebViewScreen,
arguments: PaymentWebViewInput( arguments: PaymentWebViewInput(
url: data?.vitapayData ?? "", url: data.vitapayData ?? "",
isContract: false, isContract: false,
orderId: data?.requestId ?? "", orderId: data.requestId ?? "",
showAlertBack: false, showAlertBack: false,
callback: (result) { callback: (result) {
if (result == PaymentProcess.success) { if (result == PaymentProcess.success) {
Get.offNamed( Get.offNamed(
transactionHistoryDetailScreen, transactionHistoryDetailScreen,
arguments: {"orderId": data?.requestId ?? "", "canBack": true}, arguments: {"orderId": data.requestId ?? "", "canBack": true},
); );
} }
}, },
......
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/core/utils/extensions/collection_extension.dart';
import 'package:mypoint_flutter_app/networking/api/product_api.dart' deferred as product_api; import 'package:mypoint_flutter_app/core/network/api/product_api.dart' deferred as product_api;
import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart'; import 'package:mypoint_flutter_app/core/network/restful_api_client_all_request.dart';
import '../../networking/restful_api_viewmodel.dart'; import '../../core/network/restful_api_viewmodel.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';
import 'models/electric_payment_response_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 { class ElectricPaymentBillViewModel extends RestfulApiViewModel {
final RxList<PaymentMethodModel> paymentMethods = <PaymentMethodModel>[].obs; final RxList<PaymentMethodModel> paymentMethods = <PaymentMethodModel>[].obs;
......
import 'package:flutter/foundation.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/extensions/num_extension.dart'; import 'package:mypoint_flutter_app/core/utils/extensions/num_extension.dart';
import 'package:mypoint_flutter_app/widgets/custom_empty_widget.dart'; import 'package:mypoint_flutter_app/shared/widgets/custom_empty_widget.dart';
import '../../resources/base_color.dart'; import '../../core/theme/base_color.dart';
import '../../shared/router_gage.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 'models/customer_contract_object_model.dart';
import 'electric_payment_bill_screen.dart'; import 'electric_payment_bill_screen.dart';
import 'electric_payment_viewmodel.dart'; import 'electric_payment_viewmodel.dart';
...@@ -115,7 +114,7 @@ class _ElectricPaymentHistoryScreenState extends State<ElectricPaymentHistoryScr ...@@ -115,7 +114,7 @@ class _ElectricPaymentHistoryScreenState extends State<ElectricPaymentHistoryScr
const SizedBox(height: 8), const SizedBox(height: 8),
Obx(() { Obx(() {
return (_viewModel.billContracts.value.isEmpty) return (_viewModel.billContracts.value.isEmpty)
? Expanded(child: Center(child: EmptyWidget())) ? Expanded(child: Center(child: EmptyWidget(isLoading: _viewModel.isLoading.value)))
: Expanded( : Expanded(
child: ListView.builder( child: ListView.builder(
itemCount: _viewModel.billContracts.value.length, itemCount: _viewModel.billContracts.value.length,
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import '../../base/base_screen.dart'; import '../../shared/widgets/base_view/base_screen.dart';
import '../../base/basic_state.dart'; import '../../shared/widgets/base_view/basic_state.dart';
import '../../resources/base_color.dart'; import '../../core/theme/base_color.dart';
import '../../widgets/custom_navigation_bar.dart'; import '../../shared/widgets/custom_navigation_bar.dart';
import 'electric_payment_viewmodel.dart'; import 'electric_payment_viewmodel.dart';
class ElectricPaymentScreen extends BaseScreen { class ElectricPaymentScreen extends BaseScreen {
......
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart'; import 'package:mypoint_flutter_app/core/network/restful_api_client_all_request.dart';
import '../../networking/restful_api_viewmodel.dart'; import '../../core/network/restful_api_viewmodel.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';
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment