Browse Source

设施的图片资源与数据仓库创建

liukai 4 months ago
parent
commit
04420e7b5b

+ 9 - 9
packages/cpt_facility/lib/modules/facility/facility_page.dart

@@ -58,8 +58,8 @@ class FacilityPage extends HookConsumerWidget {
                     _buildCategory(
                       context,
                       Assets.facilityBookIcon,
-                      48.5,
-                      40,
+                      36.5,
+                      39.5,
                       S.current.book,
                       tabsRouter.activeIndex == 0,
                     ).onTap(
@@ -70,8 +70,8 @@ class FacilityPage extends HookConsumerWidget {
                     _buildCategory(
                       context,
                       Assets.facilityActiveIcon,
-                      39,
-                      47.5,
+                      35,
+                      46,
                       S.current.facility_active,
                       tabsRouter.activeIndex == 1,
                     ).onTap(
@@ -82,8 +82,8 @@ class FacilityPage extends HookConsumerWidget {
                     _buildCategory(
                       context,
                       Assets.facilityDepositIcon,
-                      35.5,
-                      41.5,
+                      40,
+                      45,
                       S.current.deposit,
                       tabsRouter.activeIndex == 2,
                     ).onTap(
@@ -93,9 +93,9 @@ class FacilityPage extends HookConsumerWidget {
                     ),
                     _buildCategory(
                       context,
-                      Assets.mainLatestPublish,
-                      47.5,
-                      45,
+                      Assets.facilityHistoryIcon,
+                      38,
+                      38,
                       S.current.history,
                       tabsRouter.activeIndex == 3,
                     ).onTap(

+ 52 - 0
packages/cpt_facility/lib/modules/facility/facility_types.dart

@@ -0,0 +1,52 @@
+import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
+
+
+class FacilityTypes {
+  //对应的type类型 对应的icon的图片与宽高
+  static Map<String, Map<String, dynamic>> iconMap = {
+    //Function Room
+    '1': {
+      'name': S.current.function_room,
+      'icon_path': Assets.facilityFunctionRoomIcon,
+      'width': 39.0,
+      'height': 39.5,
+    },
+    //Gourmet Pavilion
+    '2': {
+      'name': S.current.gourmet_pavilion,
+      'icon_path': Assets.facilityGourmetPavilionIcon,
+      'width': 38.0,
+      'height': 33.5,
+    },
+    //Kids Party Room
+    '3': {
+      'name': S.current.kids_party_room,
+      'icon_path': Assets.facilityKidsPartyRoomIcon,
+      'width': 39.0,
+      'height': 39.0,
+    },
+    //Media Room
+    '4': {
+      'name': S.current.media_room,
+      'icon_path': Assets.facilityMediaRoomIcon,
+      'width': 38.5,
+      'height': 38.0,
+    },
+    //Pet Pavilion
+    '5': {
+      'name': S.current.pet_pavilion,
+      'icon_path': Assets.facilityPetPavilionIcon,
+      'width': 38.5,
+      'height': 36.5,
+    },
+    //Tennis Court
+    '6': {
+      'name': S.current.tennis_court,
+      'icon_path': Assets.facilityTennisCourt,
+      'width': 38.5,
+      'height': 38.5,
+    },
+  };
+
+}

+ 20 - 0
packages/cs_domain/lib/constants/api_constants.dart

@@ -99,6 +99,26 @@ class ApiConstants {
   //在线表单的提交详情
   static const apiFormDetail = "/api/v1/user/online-form/apply/detail";
 
+  // =========================== Facility ↓=========================================
+
+  //可用的设施列表
+  static const apiFacilityList = "/api/v1/user/facility/type/index";
+
+  //指定设施在指定日期下的可申请详情
+  static const apiFacilityDate = "/api/v1/user/facility/type/detail";
+
+  //预定指定的设施指定的日期
+  static const apiFacilityBook = "/api/v1/user/facility/booking/book";
+
+  //当前已预定的设施列表
+  static const apiFacilityActiveList = "/api/v1/user/facility/active/index";
+
+  //当前已预定的押金列表
+  static const apiFacilityDepositList = "/api/v1/user/facility/deposit/index";
+
+  //当前已预定的历史记录
+  static const apiFacilityHistoryList = "/api/v1/user/facility/history/index";
+
   // =========================== 其他 ↓=========================================
 
   //服务器时间

+ 68 - 0
packages/cs_domain/lib/repository/facility_repository.dart

@@ -0,0 +1,68 @@
+import 'dart:typed_data';
+
+import 'package:domain/entity/feedback_detail_entity.dart';
+import 'package:domain/entity/form_option_entity.dart';
+import 'package:plugin_platform/platform_export.dart';
+import 'package:plugin_platform/http/dio_engine.dart';
+import 'package:plugin_platform/http/http_result.dart';
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+import 'package:shared/utils/log_utils.dart';
+import 'package:shared/utils/util.dart';
+
+import '../constants/api_constants.dart';
+import 'package:flutter_riverpod/flutter_riverpod.dart';
+import 'package:plugin_basic/provider/http_provider/http_provider.dart';
+import '../entity/form_content_entity.dart';
+import '../entity/form_detail_entity.dart';
+import '../entity/form_list_entity.dart';
+import '../entity/form_submitted_page_entity.dart';
+import '../entity/id_name_entity.dart';
+
+part 'facility_repository.g.dart';
+
+@Riverpod(keepAlive: true)
+FacilityRepository facilityRepository(Ref ref) {
+  final dioEngine = ref.watch(dioEngineProvider);
+  return FacilityRepository(dioEngine: dioEngine);
+}
+
+/*
+ * 设施的数据仓库
+ */
+class FacilityRepository {
+  DioEngine dioEngine;
+
+  FacilityRepository({required this.dioEngine});
+
+
+  Future<HttpResult<IdNameEntity>> fetchFormApplyList({
+    CancelToken? cancelToken,
+  }) async {
+    final result = await dioEngine.requestNetResult(
+      ApiConstants.apiFormList,
+      method: HttpMethod.GET,
+      cancelToken: cancelToken,
+    );
+
+    if (result.isSuccess) {
+      final jsonList = result.getListJson();
+
+      //获取List数据 需要转换一次
+      var list = jsonList
+          ?.map((value) {
+        if (value is Map<String, dynamic>) {
+          return IdNameEntity.fromJson(value);
+        } else {
+          return null;
+        }
+      })
+          .where((item) => item != null)
+          .cast<IdNameEntity>()
+          .toList();
+
+      return result.convert<IdNameEntity>(list: list);
+    }
+    return result.convert<IdNameEntity>();
+  }
+
+}

+ 28 - 0
packages/cs_domain/lib/repository/facility_repository.g.dart

@@ -0,0 +1,28 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'facility_repository.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$facilityRepositoryHash() =>
+    r'1844e210a274e96734c1217c2bf2d25278f67155';
+
+/// See also [facilityRepository].
+@ProviderFor(facilityRepository)
+final facilityRepositoryProvider = Provider<FacilityRepository>.internal(
+  facilityRepository,
+  name: r'facilityRepositoryProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$facilityRepositoryHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+@Deprecated('Will be removed in 3.0. Use Ref instead')
+// ignore: unused_element
+typedef FacilityRepositoryRef = ProviderRef<FacilityRepository>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

BIN
packages/cs_resources/assets/facility/active_icon.webp


BIN
packages/cs_resources/assets/facility/book_icon.webp


BIN
packages/cs_resources/assets/facility/deposit_icon.webp


BIN
packages/cs_resources/assets/facility/function_room_icon.webp


BIN
packages/cs_resources/assets/facility/gourmet_pavilion_icon.webp


BIN
packages/cs_resources/assets/facility/history_icon.webp


BIN
packages/cs_resources/assets/facility/kids_party_room_icon.webp


BIN
packages/cs_resources/assets/facility/media_room_icon.webp


BIN
packages/cs_resources/assets/facility/pet_pavilion_icon.webp


BIN
packages/cs_resources/assets/facility/tennis_court.webp


+ 6 - 0
packages/cs_resources/lib/generated/assets.dart

@@ -73,9 +73,15 @@ class Assets {
   static const String facilityConfirmFacilityIcon = 'assets/facility/confirm_facility_icon.webp';
   static const String facilityConfirmPaymentIcon = 'assets/facility/confirm_payment_icon.webp';
   static const String facilityDepositIcon = 'assets/facility/deposit_icon.webp';
+  static const String facilityFunctionRoomIcon = 'assets/facility/function_room_icon.webp';
+  static const String facilityGourmetPavilionIcon = 'assets/facility/gourmet_pavilion_icon.webp';
   static const String facilityHistoryIcon = 'assets/facility/history_icon.webp';
+  static const String facilityKidsPartyRoomIcon = 'assets/facility/kids_party_room_icon.webp';
+  static const String facilityMediaRoomIcon = 'assets/facility/media_room_icon.webp';
   static const String facilityPaymentSuccessIcon = 'assets/facility/payment_success_icon.webp';
+  static const String facilityPetPavilionIcon = 'assets/facility/pet_pavilion_icon.webp';
   static const String facilityQuestionIcon = 'assets/facility/question_icon.webp';
+  static const String facilityTennisCourt = 'assets/facility/tennis_court.webp';
   static const String facilityTitleLocationIcon = 'assets/facility/title_location_icon.webp';
   static const String formAccessCard = 'assets/form/access_card.webp';
   static const String formApplyIcon = 'assets/form/apply_icon.webp';

+ 8 - 0
packages/cs_resources/lib/generated/intl/messages_en.dart

@@ -176,11 +176,14 @@ class MessageLookup extends MessageLookupByLibrary {
         "form": MessageLookupByLibrary.simpleMessage("Form"),
         "form_submit_title": MessageLookupByLibrary.simpleMessage("Submit"),
         "full_name": MessageLookupByLibrary.simpleMessage("Full Name"),
+        "function_room": MessageLookupByLibrary.simpleMessage("Function Room"),
         "get_code": MessageLookupByLibrary.simpleMessage("Get Code"),
         "get_started":
             MessageLookupByLibrary.simpleMessage("let\'s get started"),
         "get_verification_code":
             MessageLookupByLibrary.simpleMessage("Get Verification Code"),
+        "gourmet_pavilion":
+            MessageLookupByLibrary.simpleMessage("Gourmet Pavilion"),
         "guest_mobile_number":
             MessageLookupByLibrary.simpleMessage("GUEST MOBILE NUMBER"),
         "guest_name": MessageLookupByLibrary.simpleMessage("GUEST NAME"),
@@ -213,6 +216,8 @@ class MessageLookup extends MessageLookupByLibrary {
         "introduction_to_info_pack":
             MessageLookupByLibrary.simpleMessage("Introduction to info-pack"),
         "iu_number": MessageLookupByLibrary.simpleMessage("IU NUMBER"),
+        "kids_party_room":
+            MessageLookupByLibrary.simpleMessage("Kids Party Room"),
         "label_replace_note": MessageLookupByLibrary.simpleMessage(
             "If you would like to leave the Management a note to accompany this application, please leave them here.\n\nFor replacement of car label, please include the serial number of the damaged car label."),
         "label_txt": MessageLookupByLibrary.simpleMessage(
@@ -237,6 +242,7 @@ class MessageLookup extends MessageLookupByLibrary {
             "Are you sure you want to logout?"),
         "mark_all": MessageLookupByLibrary.simpleMessage("Mark All"),
         "me": MessageLookupByLibrary.simpleMessage("Me"),
+        "media_room": MessageLookupByLibrary.simpleMessage("Media Room"),
         "mobile_number_caps":
             MessageLookupByLibrary.simpleMessage("MOBILE NUMBER"),
         "mobile_phone": MessageLookupByLibrary.simpleMessage("Mobile Phone"),
@@ -298,6 +304,7 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("Payment Details"),
         "person_in_charge":
             MessageLookupByLibrary.simpleMessage("PERSON IN CHARGE"),
+        "pet_pavilion": MessageLookupByLibrary.simpleMessage("Pet Pavilion"),
         "phone_email": MessageLookupByLibrary.simpleMessage("Phone/Email"),
         "primary_card": MessageLookupByLibrary.simpleMessage("Primary Card"),
         "privacy_policy":
@@ -399,6 +406,7 @@ class MessageLookup extends MessageLookupByLibrary {
             "I am the tenant of the company that rented the unit"),
         "tenants_desc4": MessageLookupByLibrary.simpleMessage(
             "The Management will verify your application accordingly"),
+        "tennis_court": MessageLookupByLibrary.simpleMessage("Tennis Court"),
         "terms_conditions":
             MessageLookupByLibrary.simpleMessage("Terms & Conditions"),
         "terms_of_service":

+ 60 - 0
packages/cs_resources/lib/generated/l10n.dart

@@ -2760,6 +2760,66 @@ class S {
     );
   }
 
+  /// `Function Room`
+  String get function_room {
+    return Intl.message(
+      'Function Room',
+      name: 'function_room',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Gourmet Pavilion`
+  String get gourmet_pavilion {
+    return Intl.message(
+      'Gourmet Pavilion',
+      name: 'gourmet_pavilion',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Kids Party Room`
+  String get kids_party_room {
+    return Intl.message(
+      'Kids Party Room',
+      name: 'kids_party_room',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Media Room`
+  String get media_room {
+    return Intl.message(
+      'Media Room',
+      name: 'media_room',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Pet Pavilion`
+  String get pet_pavilion {
+    return Intl.message(
+      'Pet Pavilion',
+      name: 'pet_pavilion',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Tennis Court`
+  String get tennis_court {
+    return Intl.message(
+      'Tennis Court',
+      name: 'tennis_court',
+      desc: '',
+      args: [],
+    );
+  }
+
   /// `Other`
   String get other {
     return Intl.message(

+ 6 - 0
packages/cs_resources/lib/l10n/intl_en.arb

@@ -270,5 +270,11 @@
   "send_email": "Email",
   "call_phone": "Call",
   "replied": "Replied",
+  "function_room": "Function Room",
+  "gourmet_pavilion": "Gourmet Pavilion",
+  "kids_party_room": "Kids Party Room",
+  "media_room": "Media Room",
+  "pet_pavilion": "Pet Pavilion",
+  "tennis_court": "Tennis Court",
   "other": "Other"
 }

+ 6 - 0
packages/cs_resources/lib/l10n/intl_zh_CN.arb

@@ -270,5 +270,11 @@
   "send_email": "发送邮件",
   "call_phone": "拨打电话",
   "replied": "已回复",
+  "function_room": "功能房",
+  "gourmet_pavilion": "美食亭",
+  "kids_party_room": "儿童派对室",
+  "media_room": "多媒体室",
+  "pet_pavilion": "宠物亭",
+  "tennis_court": "网球场",
   "other": "其他"
 }

+ 6 - 0
packages/cs_resources/lib/l10n/intl_zh_HK.arb

@@ -256,5 +256,11 @@
   "send_email": "发送邮件",
   "call_phone": "拨打电话",
   "replied": "已回复",
+  "function_room": "功能房",
+  "gourmet_pavilion": "美食亭",
+  "kids_party_room": "儿童派对室",
+  "media_room": "多媒体室",
+  "pet_pavilion": "宠物亭",
+  "tennis_court": "网球场",
   "other": "其他"
 }