Commit 55151ba2 authored by DatHV's avatar DatHV
Browse files

update history point, manager

parent f714cdcc
...@@ -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({
......
...@@ -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['paymentMethod'] as String?, paymentMethod: json['payment_method'] as String?,
cardName: json['cardName'] as String?, cardName: json['card_name'] as String?,
cardNumber: json['cardNumber'] as String?, cardNumber: json['card_number'] as String?,
cardDate: json['cardDate'] as String?, cardDate: json['card_date'] as String?,
bankLogo: json['bankLogo'] as String?, bankLogo: json['bank_logo'] as String?,
bankName: json['bankName'] as String?, bankName: json['bank_name'] as String?,
bankShortName: json['bankShortName'] as String?, bankShortName: json['bank_short_name'] as String?,
bankCode: json['bankCode'] as String?, bankCode: json['bank_code'] as String?,
isDefault: json['isDefault'] as bool?, isDefault: json['is_default'] as bool?,
isSelected: json['isSelected'] as bool? ?? false, isSelected: json['isSelected'] as bool? ?? false,
formBankTitle: json['formBankTitle'] as String?, formBankTitle: json['form_bank_title'] as String?,
formBankNumberTitle: json['formBankNumberTitle'] as String?, formBankNumberTitle: json['form_bank_number_title'] as String?,
formMessageDelete: json['formMessageDelete'] as String?, formMessageDelete: json['form_message_delete'] as String?,
formBankBackground: json['formBankBackground'] as String?, formBankBackground: json['form_bank_background'] as String?,
formBankName: json['formBankName'] as String?, formBankName: json['form_bank_name'] as String?,
formBankNumber: json['formBankNumber'] as String?, formBankNumber: json['form_bank_number'] as String?,
); );
Map<String, dynamic> _$BankAccountInfoModelToJson( Map<String, dynamic> _$BankAccountInfoModelToJson(
BankAccountInfoModel instance, BankAccountInfoModel instance,
) => <String, dynamic>{ ) => <String, dynamic>{
'id': instance.id, 'id': instance.id,
'paymentMethod': instance.paymentMethod, 'payment_method': instance.paymentMethod,
'cardName': instance.cardName, 'card_name': instance.cardName,
'cardNumber': instance.cardNumber, 'card_number': instance.cardNumber,
'cardDate': instance.cardDate, 'card_date': instance.cardDate,
'bankLogo': instance.bankLogo, 'bank_logo': instance.bankLogo,
'bankName': instance.bankName, 'bank_name': instance.bankName,
'bankShortName': instance.bankShortName, 'bank_short_name': instance.bankShortName,
'bankCode': instance.bankCode, 'bank_code': instance.bankCode,
'isDefault': instance.isDefault, 'is_default': instance.isDefault,
'isSelected': instance.isSelected, 'isSelected': instance.isSelected,
'formBankTitle': instance.formBankTitle, 'form_bank_title': instance.formBankTitle,
'formBankNumberTitle': instance.formBankNumberTitle, 'form_bank_number_title': instance.formBankNumberTitle,
'formMessageDelete': instance.formMessageDelete, 'form_message_delete': instance.formMessageDelete,
'formBankBackground': instance.formBankBackground, 'form_bank_background': instance.formBankBackground,
'formBankName': instance.formBankName, 'form_bank_name': instance.formBankName,
'formBankNumber': instance.formBankNumber, 'form_bank_number': instance.formBankNumber,
}; };
...@@ -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(0xffff9fafb), 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,
......
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
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';
......
...@@ -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';
......
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';
......
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';
......
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';
......
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 {
......
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';
......
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),
), ),
], ],
......
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 fetching product detail: $error"); onShowAlertError?.call(Constants.commonError, false);
} }
} }
} }
\ 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/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);
......
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';
......
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 {
......
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';
......
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';
......
...@@ -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.second500), leading: const Icon(Icons.help_outline, color: BaseColor.second800),
title: Text( title: Text(
item.title ?? "", item.title ?? "",
style: const TextStyle(fontWeight: FontWeight.bold, color: BaseColor.second700), style: const TextStyle(fontWeight: FontWeight.bold, color: BaseColor.second800),
), ),
trailing: Icon(Icons.arrow_forward_ios, size: 16, color: BaseColor.second500), trailing: Icon(Icons.arrow_forward_ios, size: 16, color: BaseColor.second800),
), ),
), ),
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: 16, color: BaseColor.second500)), child: Text(item.chapeau ?? "", style: const TextStyle(fontSize: 15, color: BaseColor.second600)),
), ),
), ),
const SizedBox(height: 8), const SizedBox(height: 4),
], ],
), ),
); );
......
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 {
......
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