From 82e57df230ecb744af6c8865f80870ba03c86d89 Mon Sep 17 00:00:00 2001
From: Linjiajia <319408893@qq.com>
Date: 星期二, 25 七月 2023 22:18:27 +0800
Subject: [PATCH] 基本功能完成

---
 app/src/main/res/layout/activity_family_assets.xml                                                                |  272 
 app_base/src/main/java/com/android/app_base/base/adapter/BaseRVAdapter.java                                       |    2 
 app_base/src/main/java/com/android/app_base/widget/ClearEditText.java                                             |  150 
 app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/BasicInfoActivityViewModel.java         |   65 
 app/src/main/res/layout/activity_basic_info.xml                                                                   |   31 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivityViewModel.java       |  326 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusDetailActivityViewModel.java |  182 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorActivity.java                |  101 
 app/src/main/res/layout/item_growth_experience_holder_condition.xml                                               |   63 
 app_base/src/main/res/layout/dialog_ui.xml                                                                        |    8 
 app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragment.java             |   21 
 app/src/main/java/com/application/zhangshi_app_android/bean/ContactsBean.java                                     |    2 
 app/src/main/java/com/application/zhangshi_app_android/adapter/OldSpouseRvAdapter.java                            |   36 
 app/src/main/res/layout/activity_clean_storage.xml                                                                |  427 
 app/src/main/res/layout/activity_annual_health_status.xml                                                         |  286 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceDetailActivity.java           |  204 
 app/src/main/java/com/application/zhangshi_app_android/adapter/ConsumeRecordRvAdapter.java                        |   62 
 app/src/main/java/com/application/zhangshi_app_android/ui/dialog/ContactsDialog.java                              |   12 
 app/src/main/res/layout/activity_main.xml                                                                         |    2 
 app/src/main/res/layout/item_daily_consume_record.xml                                                             |  125 
 app/src/main/java/com/application/zhangshi_app_android/adapter/DailyConsumeRecordRvAdapter.java                   |  217 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyActivity.java                          |  198 
 app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperiencePrimaryRvAdapter.java              |   91 
 app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyAssetsRvAdapter.java                         |  100 
 app/src/main/res/layout/item_personal_notepad.xml                                                                 |  154 
 app/src/main/java/com/application/zhangshi_app_android/adapter/MemoRvAdapter.java                                 |  211 
 app/src/main/res/drawable-xxhdpi/ic_indication_selected.png                                                       |    0 
 app_base/src/main/java/com/android/app_base/base/adapter/BaseVp2FragmentAdapter.java                              |   14 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismActivity.java                           |  297 
 app/src/main/res/drawable-xhdpi/ic_indication_selected.png                                                        |    0 
 app_base/src/main/java/com/android/app_base/base/adapter/databinding/TextViewAdapter.java                         |   84 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsActivityViewModel.java             |  162 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionActivityViewModel.java          |  168 
 app/src/main/res/layout/activity_login.xml                                                                        |    4 
 app_base/src/main/res/font/cookie_regular.ttf                                                                     |    0 
 app/src/main/java/com/application/zhangshi_app_android/bean/TourismExperienceBean.java                            |   84 
 app/src/main/res/layout/item_pet_image.xml                                                                        |    5 
 app_base/src/main/res/layout/wait_dialog.xml                                                                      |    4 
 app/src/main/java/com/application/zhangshi_app_android/bean/MemoBean.java                                         |   71 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceDetailActivityViewModel.java  |  190 
 app/src/main/res/values/themes.xml                                                                                |    2 
 app/src/main/java/com/application/zhangshi_app_android/adapter/PetRvAdapter.java                                  |   51 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceActivityViewModel.java        |  309 
 app_base/build.gradle                                                                                             |   22 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageDetailActivityViewModel.java       |  181 
 app/src/main/res/values/colors.xml                                                                                |    2 
 app/src/main/res/layout/activity_little_doctor_detail.xml                                                         |   49 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/MarriageActivity.java                          |   67 
 app/src/main/res/drawable-xxhdpi/ic_image_select.png                                                              |    0 
 app/src/main/res/layout/activity_tourism_experience.xml                                                           |  284 
 app/src/main/java/com/application/zhangshi_app_android/widget/TreeView.java                                       |   59 
 app/src/main/java/com/application/zhangshi_app_android/adapter/ElectronicFileAdapter.java                         |   33 
 app/src/main/java/com/application/zhangshi_app_android/bean/FamilyMemorabiliaBean.java                            |   14 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorActivity.java                      |  191 
 app/src/main/res/layout/item_contacts.xml                                                                         |   17 
 app/src/main/java/com/application/zhangshi_app_android/bean/IncomeAndExpensesBean.java                            |   31 
 app/src/main/java/com/application/zhangshi_app_android/bean/HonorCollectionRequestBean.java                       |   74 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadDetailActivityViewModel.java    |  190 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaDetailActivityViewModel.java  |   14 
 app_base/src/main/res/font/roboto_regular.ttf                                                                     |    0 
 app/src/main/res/layout/item_family_assets.xml                                                                    |  105 
 app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceInformationBean.java                  |  401 
 app/src/main/res/layout/item_family_memorabilia.xml                                                               |   97 
 app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragment.java                                  |  464 
 app/src/main/res/layout/activity_tourism.xml                                                                      |  200 
 app/src/main/java/com/application/zhangshi_app_android/bean/LittleDoctorBean.java                                 |   14 
 app/src/main/java/com/application/zhangshi_app_android/bean/AnnualHealthStatusBean.java                           |   30 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyDetailActivity.java                     |   36 
 app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareNursingExaminationBean.java                 |  390 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyDetailActivity.java                    |   37 
 app/src/main/res/drawable/shape_f3f3f3_8.xml                                                                      |    5 
 app/src/main/java/com/application/zhangshi_app_android/bean/PropertyRequestBean.java                              |   67 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragment.java                             |  210 
 app/src/main/res/layout/activity_honor_collection_detail.xml                                                      |   29 
 app/src/main/res/layout/activity_little_doctor.xml                                                                |  253 
 screenMatch_example_dimens.xml                                                                                    |    2 
 app/src/main/res/drawable-xxhdpi/ic_move_to_top.png                                                               |    0 
 app/src/main/res/layout/pop_operate_delete.xml                                                                    |    6 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorDetailActivity.java          |   16 
 .idea/inspectionProfiles/Project_Default.xml                                                                      |    2 
 app/src/main/res/drawable-xxhdpi/ic_indication_normal.png                                                         |    0 
 app/src/main/java/com/application/zhangshi_app_android/bean/PetBean.java                                          |  249 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsDetailActivityViewModel.java       |   60 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionDetailActivity.java             |   19 
 app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/LoginBgChangeActivityViewModel.java     |  103 
 app/src/main/res/layout/activity_family_assets_detail.xml                                                         |   53 
 app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivity.java                                |    6 
 app/src/main/java/com/application/zhangshi_app_android/bean/AnnualHealthStatusRequestBean.java                    |   72 
 app/src/main/java/com/application/zhangshi_app_android/bean/CleanStorageBean.java                                 |  123 
 app/src/main/java/com/application/zhangshi_app_android/bean/TourismBean.java                                      |  103 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadActivityViewModel.java          |  323 
 app/src/main/res/layout/item_income_and_expenses.xml                                                              |  190 
 app/src/main/java/com/application/zhangshi_app_android/adapter/PersonalNotepadRvAdapter.java                      |  153 
 app/src/main/java/com/application/zhangshi_app_android/other/MyTitleBarStyle.java                                 |   18 
 app/src/main/res/layout/activity_marriage.xml                                                                     |  383 
 app/src/main/java/com/application/zhangshi_app_android/adapter/databinding/ImageViewAdapter.java                  |   78 
 app_base/src/main/res/values/arrts.xml                                                                            |    5 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorDetailActivity.java                |  148 
 app/src/main/res/layout/activity_privacy_detail.xml                                                               |   47 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsDetailActivity.java                |   39 
 app/build.gradle                                                                                                  |    7 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorActivityViewModel.java       |  198 
 app/src/main/res/drawable-xhdpi/bg_home_root_net_detail_first.png                                                 |    0 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorActivityViewModel.java             |  244 
 app/src/main/java/com/application/zhangshi_app_android/ui/dialog/PetOwnerInfoDialog.java                          |   19 
 app/src/main/java/com/application/zhangshi_app_android/bean/PetOwnerBean.java                                     |  119 
 app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail_third.png                                                |    0 
 app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail.png                                                      |    0 
 app/src/main/java/com/application/zhangshi_app_android/adapter/PropertyRvAdapter.java                             |   86 
 app/src/main/java/com/application/zhangshi_app_android/data/DataRepository.java                                   |  430 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadActivity.java                   |  292 
 app/src/main/res/layout/activity_pet_memo_detail.xml                                                              |    8 
 app_base/src/main/java/com/android/app_base/utils/rxbus/MessageEvent.java                                         |   39 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismActivityViewModel.java                  |  313 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaDetailActivity.java           |  106 
 app/src/main/res/layout/item_consume_record.xml                                                                   |  112 
 app/src/main/res/layout/activity_hundred_wish_detail.xml                                                          |    6 
 app_base/src/main/java/com/android/app_base/utils/Converter.java                                                  |   26 
 app/src/main/res/layout/activity_personal_notepad_detail.xml                                                      |   57 
 app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareExistingProblemsBean.java                   |  534 
 app_base/src/main/res/drawable/input_delete_ic.xml                                                                |   15 
 app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyMemorabiliaRvAdapter.java                    |  110 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivityViewModel.java        |  173 
 app/src/main/java/com/application/zhangshi_app_android/bean/HonorCollectionBean.java                              |   22 
 app/src/main/java/com/application/zhangshi_app_android/bean/HomeRootBean.java                                     |  362 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PetDetailActivityViewModel.java                |   51 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesDetailActivity.java           |  190 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyActivityViewModel.java                  |  203 
 app/src/main/res/drawable-xhdpi/bg_home_root_net_detail.png                                                       |    0 
 app_base/src/main/java/com/android/app_base/utils/rxbus/RxBus.java                                                |  125 
 app/src/main/res/layout/activity_privacy.xml                                                                      |  377 
 app/src/main/res/layout/activity_honor_collection.xml                                                             |  289 
 app_base/src/main/java/com/android/app_base/base/BaseConfig.java                                                  |    6 
 app/src/main/res/layout/activity_test.xml                                                                         |  110 
 app/src/main/java/com/application/zhangshi_app_android/adapter/PetMemoRvAdapter.java                              |   89 
 app/src/main/java/com/application/zhangshi_app_android/data/source/HttpDataSource.java                            |  316 
 app/src/main/res/layout/activity_contacts.xml                                                                     |  319 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PetActivity.java                               |  250 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyActivityViewModel.java                 |  202 
 app/src/main/java/com/application/zhangshi_app_android/bean/PetRequestBean.java                                   |   50 
 app/src/main/res/layout/activity_certificate_of_honor.xml                                                         |  256 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java                  |   42 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivityViewModel.java               |  237 
 app/src/main/res/layout/item_clean_storage.xml                                                                    |  212 
 app/src/main/java/com/application/zhangshi_app_android/ui/main/MainViewModel.java                                 |   68 
 app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragmentViewModel.java    |   59 
 app/src/main/AndroidManifest.xml                                                                                  |   46 
 app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareLifeHabitsBean.java                         |  415 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyActivity.java                           |  229 
 app/src/main/res/layout/item_pet.xml                                                                              |   83 
 app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/BasicInfoActivity.java                  |   41 
 app/src/main/java/com/application/zhangshi_app_android/ui/TestActivityViewModel.java                              |   33 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/MarriageActivityViewModel.java                 |   61 
 app/src/main/java/com/application/zhangshi_app_android/bean/PropertyBean.java                                     |   81 
 app/src/main/res/layout/dialog_version_update.xml                                                                 |  110 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceActivity.java                 |  297 
 app_base/src/main/java/com/android/app_base/action/TitleBarAction.java                                            |    2 
 app/src/main/java/com/application/zhangshi_app_android/bean/HomeDevicesRequestBean.java                           |   77 
 app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/LoginBgChangeActivity.java              |  160 
 app/src/main/java/com/application/zhangshi_app_android/bean/DailyConsumeRecordBean.java                           |   14 
 app/src/main/res/layout/item_contacts_detail.xml                                                                  |    3 
 app/src/main/res/drawable/shape_gradient_update_progress.xml                                                      |   18 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishActivityViewModel.java              |  209 
 app/src/main/res/layout/fragment_function.xml                                                                     |   95 
 app/src/main/res/layout/dialog_contacts_info.xml                                                                  |   11 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusDetailActivity.java          |  183 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PetActivityViewModel.java                      |  207 
 app/src/main/java/com/application/zhangshi_app_android/bean/IncomeAndExpensesRequestBean.java                     |   66 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageDetailActivity.java                |  144 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesDetailActivityViewModel.java  |  190 
 app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareBaseInfoBean.java                           |  335 
 app/src/main/res/layout/activity_health_care.xml                                                                  |  564 
 app/src/main/res/drawable-xhdpi/ic_operate_select_white.png                                                       |    0 
 app/src/main/java/com/application/zhangshi_app_android/bean/CleanStorageRequestBean.java                          |  107 
 app/src/main/res/layout/activity_property.xml                                                                     |  283 
 app/src/main/java/com/application/zhangshi_app_android/bean/TourismRequestBean.java                               |   47 
 app/src/main/res/layout/activity_hundred_wish.xml                                                                 |  285 
 app/src/main/res/layout/item_privacy.xml                                                                          |  178 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismDetailActivity.java                     |  277 
 app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java                                  |   53 
 app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareNotesContentBean.java                       |  159 
 app/src/main/java/com/application/zhangshi_app_android/adapter/HundredWishRvAdapter.java                          |   88 
 app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseActivity.java                                     |   57 
 app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragmentViewModel.java                         |   86 
 app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceAbroadConditionRvAdapter.java      |   69 
 app/src/main/res/layout/activity_login_bg_change.xml                                                              |   62 
 app/src/main/java/com/application/zhangshi_app_android/bean/FamilyMemorabiliaRequestBean.java                     |   59 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorDetailActivityViewModel.java       |  190 
 app/src/main/res/layout/activity_pet_memo.xml                                                                     |  282 
 app_base/src/main/java/com/android/app_base/base/adapter/databinding/EditTextAdapter.java                         |   67 
 app/src/main/res/layout/item_growth_experience_abroad_condition.xml                                               |   57 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivityViewModel.java                 |   72 
 app/src/main/res/drawable-xhdpi/ic_move_to_top.png                                                                |    0 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadDetailActivity.java             |  183 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragmentViewModel.java            |   24 
 app/src/main/res/layout/item_tourism.xml                                                                          |  145 
 app/src/main/java/com/application/zhangshi_app_android/bean/CertificateOfHonorBean.java                           |  119 
 app/src/main/res/values/styles.xml                                                                                |    2 
 app/src/main/java/com/application/zhangshi_app_android/bean/LittleDoctorRequestBean.java                          |   53 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PetMemoActivity.java                           |  298 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismDetailActivityViewModel.java            |  143 
 app/src/main/res/layout/item_memo.xml                                                                             |  119 
 app_base/src/main/java/com/android/app_base/http/RetrofitManager.java                                             |   42 
 app/src/main/java/com/application/zhangshi_app_android/bean/UpdateVersionBean.java                                |   56 
 app_base/src/main/assets/roboto_regular.ttf                                                                       |    0 
 app/src/main/java/com/application/zhangshi_app_android/ui/TestActivity.java                                       |   64 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PetDetailActivity.java                         |  102 
 app/src/main/res/layout/item_home_devices.xml                                                                     |  182 
 app/src/main/java/com/application/zhangshi_app_android/bean/HomeDevicesBean.java                                  |   52 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivityViewModel.java        |  364 
 app/src/main/java/com/application/zhangshi_app_android/bean/HundredWishRequestBean.java                           |   71 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishDetailActivity.java                 |   16 
 app/src/main/res/layout/activity_clean_storage_detail.xml                                                         |   41 
 app/src/main/java/com/application/zhangshi_app_android/adapter/ImageRvAdapter.java                                |   43 
 app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail_exp.png                                                  |    0 
 app/src/main/res/layout/dialog_pet_owner_info.xml                                                                 |  333 
 app/src/main/res/layout/activity_family_memorabilia.xml                                                           |  257 
 app/src/main/java/com/application/zhangshi_app_android/adapter/PetImageRvAdapter.java                             |    3 
 app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail_first.png                                                |    0 
 app/src/main/res/layout/pop_operate_person_center.xml                                                             |   14 
 app/src/main/java/com/application/zhangshi_app_android/bean/FamilyAssetsBean.java                                 |   32 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragment.java                     |  120 
 app/src/main/java/com/application/zhangshi_app_android/adapter/HomeDevicesRvAdapter.java                          |  157 
 app/src/main/java/com/application/zhangshi_app_android/bean/PageResponseBean.java                                 |   49 
 app/src/main/res/layout/pop_basic_information.xml                                                                 | 3077 ++--
 app/src/main/res/layout/item_honor_collection.xml                                                                 |  127 
 app/src/main/java/com/application/zhangshi_app_android/MyApplication.java                                         |    8 
 app/src/main/res/layout/item_growth_experience_relationship.xml                                                   |   72 
 app/src/main/java/com/application/zhangshi_app_android/adapter/HonorCollectionRvAdapter.java                      |   89 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesActivity.java                       |  305 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyDetailActivityViewModel.java           |   57 
 app/src/main/java/com/application/zhangshi_app_android/bean/ConsumeRecordBean.java                                |  120 
 .idea/deploymentTargetDropDown.xml                                                                                |    2 
 app/src/main/res/layout/fragment_home.xml                                                                         | 1202 +
 app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesActivityViewModel.java              |  290 
 app/src/main/res/layout/activity_home_devices_detail.xml                                                          |   97 
 app_base/src/main/java/com/android/app_base/utils/Utils.java                                                      |  228 
 app/src/main/res/layout/item_electronic_file.xml                                                                  |   41 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivity.java                 |  262 
 app/src/main/java/com/application/zhangshi_app_android/adapter/CleanStorageRvAdapter.java                         |  157 
 app/src/main/res/layout/item_annual_health_status.xml                                                             |  196 
 app/src/main/res/layout/item_tourism_experience.xml                                                               |  187 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageActivityViewModel.java             |  255 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PetMemoActivityViewModel.java                  |  219 
 app/src/main/res/layout/activity_property_detail.xml                                                              |   63 
 app/src/main/res/layout/acitivity_tourism_experience_detail.xml                                                   |   72 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageActivity.java                      |  206 
 app/src/main/res/layout/pop_operate_pet.xml                                                                       |   22 
 app/src/main/res/drawable-xxhdpi/ic_operate_select_white.png                                                      |    0 
 app/src/main/java/com/application/zhangshi_app_android/data/source/http/ApiService.java                           |  386 
 app/src/main/res/layout/pop_annual_health_status.xml                                                              |   19 
 app/src/main/res/xml/file_paths.xml                                                                               |    7 
 app/src/main/res/layout/item_property.xml                                                                         |  174 
 app/src/main/java/com/application/zhangshi_app_android/bean/PersonalNotepadRequestBean.java                       |   72 
 app/src/main/res/layout/activity_personal_notepad.xml                                                             |  290 
 app/src/main/res/layout/pop_operate_home_root_net.xml                                                             |   85 
 app/src/main/java/com/application/zhangshi_app_android/bean/CertificateOfHonorRequestBean.java                    |   47 
 app/src/main/res/drawable/shape_fffad1e0_10_10_0_10.xml                                                           |    4 
 app/src/main/res/layout/activity_genealogy.xml                                                                    |  367 
 app/src/main/java/com/application/zhangshi_app_android/ui/dialog/VersionUpdateDialog.java                         |  231 
 app/src/main/res/layout/dialog_add_daily_consume_record.xml                                                       |    6 
 app/src/main/res/layout/item_home_member_list.xml                                                                 |  342 
 app/src/main/res/layout/activity_pet_detail.xml                                                                   |  418 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivity.java                        |  194 
 app/src/main/res/layout/activity_tourism_detail.xml                                                               |  345 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PetMemoDetailActivity.java                     |   16 
 app/src/main/java/com/application/zhangshi_app_android/adapter/ContactsRvAdapter.java                             |   70 
 app/src/main/java/com/application/zhangshi_app_android/ui/home/GenealogyActivity.java                             |  192 
 app/src/main/java/com/application/zhangshi_app_android/adapter/TourismRvAdapter.java                              |  165 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivity.java                 |  222 
 app/src/main/res/layout/activity_growth_experience.xml                                                            |  156 
 app_base/src/main/res/values/styles.xml                                                                           |    1 
 app/src/main/java/com/application/zhangshi_app_android/adapter/PrivacyRvAdapter.java                              |   86 
 app/src/main/res/layout/activity_annual_health_status_detail.xml                                                  |   99 
 app/src/main/res/layout/item_pet_memo.xml                                                                         |   74 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionActivity.java                   |  211 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesActivity.java                 |  288 
 app/src/main/res/layout/activity_family_memorabilia_detail.xml                                                    |  127 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsActivity.java                      |  218 
 app_base/src/main/java/com/android/app_base/base/viewmodel/BaseViewModel.java                                     |    6 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivity.java                |  293 
 app_base/src/main/java/com/android/app_base/base/adapter/databinding/ImageViewAdapter.java                        |   27 
 app/src/main/java/com/application/zhangshi_app_android/bean/HomeMemberBean.java                                   |  129 
 app/src/main/java/com/application/zhangshi_app_android/adapter/AnnualHealthStatusRvAdapter.java                   |  155 
 app/src/main/java/com/application/zhangshi_app_android/adapter/CertificateOfHonorRvAdapter.java                   |   92 
 app/src/main/java/com/application/zhangshi_app_android/bean/MarriageInfoBean.java                                 |  309 
 app/src/main/java/com/application/zhangshi_app_android/bean/FamilyAssetsRequestBean.java                          |   76 
 app/src/main/res/layout/activity_pet.xml                                                                          |  449 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyDetailActivityViewModel.java            |   57 
 app/src/main/res/drawable-xhdpi/bg_home_root_net_detail_third.png                                                 |    0 
 app_base/src/main/java/com/android/app_base/utils/RxUtils.java                                                    |   17 
 app/src/main/res/drawable-xhdpi/bg_home_root_net_detail_second.png                                                |    0 
 app_base/src/main/java/com/android/app_base/base/adapter/databinding/ViewAdapter.java                             |   39 
 app/src/main/java/com/application/zhangshi_app_android/data/source/http/HttpDataSourceImpl.java                   |  488 
 app/src/main/java/com/application/zhangshi_app_android/bean/ContactsRequestBean.java                              |  102 
 app/src/main/java/com/application/zhangshi_app_android/bean/TourismExperienceRequestBean.java                     |   83 
 app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceRelationshipRvAdapter.java         |   68 
 app/src/main/res/layout/item_hundred_wish.xml                                                                     |  106 
 app/src/main/res/layout/item_growth_experience_primary.xml                                                        |  110 
 app_base/src/main/java/com/android/app_base/base/view/BaseFragment.java                                           |    5 
 app/src/main/java/com/application/zhangshi_app_android/adapter/TourismExperienceRvAdapter.java                    |  157 
 app/src/main/res/layout/fragment_personal_center.xml                                                              |   18 
 app/src/main/java/com/application/zhangshi_app_android/bean/PrivacyBean.java                                      |  114 
 app/src/main/java/com/application/zhangshi_app_android/bean/PageRequestBean.java                                  |   40 
 app/src/main/res/layout/activity_certificate_of_honor_detail.xml                                                  |   26 
 app/src/main/res/layout/item_old_spouse.xml                                                                       |  162 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragmentViewModel.java                    |   24 
 app/src/main/java/com/application/zhangshi_app_android/adapter/ContactsDetailAdapter.java                         |    2 
 app/src/main/res/layout/fragment_video.xml                                                                        |   47 
 app/src/main/java/com/application/zhangshi_app_android/bean/HomeMemberRequestBean.java                            |   60 
 app/src/main/java/com/application/zhangshi_app_android/bean/PersonalNotepadBean.java                              |   30 
 app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseFragment.java                                     |    5 
 app/src/main/java/com/application/zhangshi_app_android/ui/home/GenealogyActivityViewModel.java                    |  172 
 app/src/main/java/com/application/zhangshi_app_android/bean/PrivacyRequestBean.java                               |   91 
 app/src/main/res/layout/pop_operate.xml                                                                           |    1 
 app/src/main/java/com/application/zhangshi_app_android/bean/PetMemoRequestBean.java                               |   84 
 app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivityViewModel.java                       |   11 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishActivity.java                       |  202 
 app/src/main/java/com/application/zhangshi_app_android/bean/PetMemoBean.java                                      |   64 
 app_base/src/main/res/values/dimens.xml                                                                           |    2 
 app/src/main/res/layout/fragment_image_carousel.xml                                                               |   42 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivity.java                          |  118 
 app/src/main/res/drawable-xhdpi/ic_indication_normal.png                                                          |    0 
 app/src/main/res/layout/item_little_doctor.xml                                                                    |  196 
 app/src/main/java/com/application/zhangshi_app_android/adapter/HomeMemberAdapter.java                             |   71 
 app/src/main/java/com/application/zhangshi_app_android/bean/BannerBean.java                                       |   49 
 app/src/main/java/com/application/zhangshi_app_android/adapter/LittleDoctorRvAdapter.java                         |  161 
 app/src/main/java/com/application/zhangshi_app_android/bean/HundredWishBean.java                                  |   57 
 app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceHolderConditionRvAdapter.java      |   73 
 app/src/main/res/layout/activity_home_devices.xml                                                                 |  329 
 app/src/main/res/layout/activity_income_and_expenses_detail.xml                                                   |   64 
 app/src/main/res/layout/pop_switch_video_or_image.xml                                                             |   42 
 /dev/null                                                                                                         |   25 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragment.java                          |  100 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragmentViewModel.java                 |   63 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesActivityViewModel.java        |  309 
 app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java                                           |    4 
 app/src/main/res/layout/item_certificate_of_honor.xml                                                             |  118 
 app/src/main/res/layout/activity_income_and_expenses.xml                                                          |  287 
 app/src/main/res/drawable-xhdpi/ic_image_select.png                                                               |    0 
 app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail_second.png                                               |    0 
 app/src/main/res/layout/item_image.xml                                                                            |   18 
 app/src/main/java/com/application/zhangshi_app_android/adapter/IncomeAndExpensesRvAdapter.java                    |  155 
 343 files changed, 37,497 insertions(+), 7,495 deletions(-)

diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index aec7213..0cc1b9e 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -12,6 +12,6 @@
         </deviceKey>
       </Target>
     </targetSelectedWithDropDown>
-    <timeTargetWasSelectedWithDropDown value="2023-04-24T13:39:33.778993800Z" />
+    <timeTargetWasSelectedWithDropDown value="2023-06-02T09:12:50.343936200Z" />
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
index 1d88dea..fcc3490 100644
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -2,7 +2,7 @@
   <profile version="1.0">
     <option name="myName" value="Project Default" />
     <inspection_tool class="AutoCloseableResource" enabled="true" level="WARNING" enabled_by_default="true">
-      <option name="METHOD_MATCHER_CONFIG" value="java.util.Formatter,format,java.io.Writer,append,com.google.common.base.Preconditions,checkNotNull,org.hibernate.Session,close,java.io.PrintWriter,printf,java.io.PrintStream,printf,okhttp3.Interceptor.Chain,proceed" />
+      <option name="METHOD_MATCHER_CONFIG" value="java.util.Formatter,format,java.io.Writer,append,com.google.common.base.Preconditions,checkNotNull,org.hibernate.Session,close,java.io.PrintWriter,printf,java.io.PrintStream,printf,okhttp3.Interceptor.Chain,proceed,android.content.Context,obtainStyledAttributes" />
     </inspection_tool>
     <inspection_tool class="JavadocDeclaration" enabled="true" level="WARNING" enabled_by_default="true">
       <option name="ADDITIONAL_TAGS" value="date,desc" />
diff --git a/app/build.gradle b/app/build.gradle
index f8cf1da..ac2855e 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,7 @@
         minSdk 24
         targetSdk 33
         versionCode 1
-        versionName "1.0"
-
+        versionName getVersionName()
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
     }
     signingConfigs {
@@ -64,4 +63,8 @@
 
     implementation project(path: ':app_base')
 
+}
+
+def getVersionName() {
+    return new Date().format("yyyyMMddHHmmss", TimeZone.getTimeZone("UTC"))
 }
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ce05cea..615b20e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools">
+    xmlns:tools="http://schemas.android.com/tools"
+    >
     <!-- 缃戠粶鐩稿叧 -->
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
@@ -17,13 +18,13 @@
     <uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- Android 13鐗堟湰閫傞厤锛岀粏鍖栧瓨鍌ㄦ潈闄�,READ_EXTERNAL_STORAGE鏃犳硶鍐嶄娇鐢� -->
     <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
     <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
-    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <!-- 闇囧姩鏉冮檺 -->
-    <uses-permission android:name="android.permission.VIBRATE" /> <!-- 钃濈墮鏉冮檺 -->
-    <uses-permission android:name="android.permission.BLUETOOTH" /> <!-- 鎷嶇収鏉冮檺 -->
-    <uses-permission android:name="android.permission.CAMERA" /> <!-- 瀹夎鏉冮檺 -->
-    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <!-- 瀹氫綅鏉冮檺锛堢敤浜� WebView 瀹氫綅锛� -->
-    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
-    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
+<!--    <uses-permission android:name="android.permission.VIBRATE" />  &lt;!&ndash; 闇囧姩鏉冮檺 &ndash;&gt;-->
+<!--    <uses-permission android:name="android.permission.BLUETOOTH" /> &lt;!&ndash; 钃濈墮鏉冮檺 &ndash;&gt;-->
+    <uses-permission android:name="android.permission.CAMERA" /> <!-- 鎷嶇収鏉冮檺 -->
+    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <!-- 瀹夎鏉冮檺 -->
+<!--    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />&lt;!&ndash; 瀹氫綅鏉冮檺锛堢敤浜� WebView 瀹氫綅锛� &ndash;&gt;-->
+<!--    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />-->
 
     <queries package="${applicationId}">
         <intent>
@@ -48,6 +49,7 @@
         android:theme="@style/Theme.app"
         android:usesCleartextTraffic="true"
         tools:targetApi="31">
+
         <!-- 娌夋蹈寮忕姸鎬佹爮鍏ㄩ潰灞� -->
         <meta-data
             android:name="android.max_aspect"
@@ -65,9 +67,22 @@
             android:name="design_height_in_dp"
             android:value="640" />
 
+        <!-- 瀹夎APP -->
+        <provider
+            android:name="androidx.core.content.FileProvider"
+            android:authorities="${applicationId}.fileprovider"
+            android:exported="false"
+            android:grantUriPermissions="true">
+            <meta-data
+                android:name="android.support.FILE_PROVIDER_PATHS"
+                android:resource="@xml/file_paths" />
+        </provider>
+
         <activity
             android:name=".ui.main.MainActivity"
-            android:exported="true" />
+            android:exported="true"
+            android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
+            />
         <activity
             android:name=".ui.login.LoginActivity"
             android:exported="true"
@@ -82,7 +97,7 @@
             android:name=".ui.function.FamilyMemorabiliaActivity"
             android:exported="false" />
         <activity
-            android:name=".ui.function.CreateFamilyProjectActivity"
+            android:name=".ui.function.FamilyMemorabiliaDetailActivity"
             android:exported="false" />
         <activity
             android:name=".ui.function.FamilyAssetsActivity"
@@ -145,7 +160,7 @@
             android:name=".ui.function.MarriageActivity"
             android:exported="false" />
         <activity
-            android:name=".ui.function.PetActivity"
+            android:name=".ui.function.PetDetailActivity"
             android:exported="false" />
         <activity
             android:name=".ui.function.PetMemoActivity"
@@ -192,6 +207,15 @@
         <activity
             android:name=".ui.function.PersonalNotepadDetailActivity"
             android:exported="false" />
+        <activity
+            android:name=".ui.function.PetActivity"
+            android:exported="false" />
+        <activity android:name=".ui.home.GenealogyActivity"
+            android:exported="false"/>
+        <activity android:name=".ui.TestActivity"
+            />
+        <activity android:name=".ui.personal_center.LoginBgChangeActivity"
+            android:exported="false"/>
     </application>
 
 </manifest>
\ No newline at end of file
diff --git a/app/src/main/java/com/application/zhangshi_app_android/MyApplication.java b/app/src/main/java/com/application/zhangshi_app_android/MyApplication.java
index f19306e..056e6d3 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/MyApplication.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/MyApplication.java
@@ -2,6 +2,9 @@
 
 import com.android.app_base.base.BaseApplication;
 import com.application.zhangshi_app_android.other.MyTitleBarStyle;
+import com.github.gzuliyujiang.dialog.DialogColor;
+import com.github.gzuliyujiang.dialog.DialogConfig;
+import com.github.gzuliyujiang.dialog.DialogStyle;
 import com.hjq.bar.TitleBar;
 
 //import me.jessyan.autosize.AutoSizeConfig;
@@ -17,5 +20,10 @@
         super.onCreate();
         // 鍒濆鍖� TitleBar 榛樿鏍峰紡
         TitleBar.setDefaultStyle(new MyTitleBarStyle());
+
+        DialogConfig.setDialogStyle(DialogStyle.Three);
+        DialogConfig.setDialogColor(new DialogColor()
+                .cancelTextColor(0xFF999999)
+                .okTextColor(0xFF2B83DD));
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/AnnualHealthStatusRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/AnnualHealthStatusRvAdapter.java
index 9c2a138..5b3d298 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/AnnualHealthStatusRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/AnnualHealthStatusRvAdapter.java
@@ -5,30 +5,46 @@
 import android.view.View;
 import android.view.animation.Animation;
 import android.view.animation.Transformation;
+import android.widget.CompoundButton;
 import android.widget.FrameLayout;
 
 import androidx.recyclerview.widget.GridLayoutManager;
 
+import com.android.app_base.base.BaseConfig;
 import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.AnnualHealthStatusBean;
+import com.application.zhangshi_app_android.bean.PersonalNotepadBean;
 import com.application.zhangshi_app_android.databinding.ItemAnnualHealthStatusBinding;
+import com.application.zhangshi_app_android.ui.function.AnnualHealthStatusActivityViewModel;
 import com.application.zhangshi_app_android.ui.function.AnnualHealthStatusDetailActivity;
 import com.application.zhangshi_app_android.ui.function.CleanStorageDetailActivity;
+import com.application.zhangshi_app_android.ui.function.PersonalNotepadActivityViewModel;
+import com.application.zhangshi_app_android.ui.function.PersonalNotepadDetailActivity;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Ljj
  * @date 2023.04.28. 19:20
- * @desc
+ * @desc 骞村害鍋ュ悍鐘跺喌閫傞厤鍣�
  */
 public class AnnualHealthStatusRvAdapter extends BaseRVAdapter<AnnualHealthStatusBean, ItemAnnualHealthStatusBinding, AnnualHealthStatusRvAdapter.ViewHolder> {
-    public AnnualHealthStatusRvAdapter(Context context) {
+    private AnnualHealthStatusActivityViewModel viewModel;
+    private final Map<AnnualHealthStatusBean, Boolean> expendMap = new HashMap<>();
+    private boolean isCheckable;
+
+    public AnnualHealthStatusRvAdapter(Context context, AnnualHealthStatusActivityViewModel viewModel) {
         super(context);
+        this.viewModel = viewModel;
     }
 
     @Override
@@ -49,83 +65,108 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
+        if (isCheckable){
+            holder.getBinding().checkbox.setVisibility(View.VISIBLE);
+            holder.getBinding().checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+                @Override
+                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                    if (viewModel.getCheckListLiveData().getValue() == null){
+                        viewModel.getCheckListLiveData().setValue(new ArrayList<>());
+                    }
+                    List<AnnualHealthStatusBean> list = new ArrayList<>(viewModel.getCheckListLiveData().getValue());
+                    if (isChecked){
+                        if (!list.contains(mDataList.get(position))){
+                            list.add(mDataList.get(position));
+                        }
+                    }else{
+                        list.remove(mDataList.get(position));
+                    }
+                    viewModel.getCheckListLiveData().setValue(list);
+                }
+            });
+            holder.getBinding().checkbox.setChecked(viewModel.getCheckListLiveData().getValue().contains(mDataList.get(position)));
+        }else{
+            holder.getBinding().checkbox.setVisibility(View.GONE);
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
                 }
             }
         });
         holder.getBinding().layoutContent.setOnClickListener(v -> {
             AppManager.getAppManager().startActivity(
                     new Intent(getRecyclerView().getContext(), AnnualHealthStatusDetailActivity.class)
+                            .putExtra(BaseConfig.EXTRA_TYPE,0)
                             .putExtra("bean",mDataList.get(position)));
         });
 
-        ImageRvAdapter adapter = new ImageRvAdapter(mContext);
+        holder.getBinding().layoutModify.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(
+                        new Intent(getRecyclerView().getContext(), AnnualHealthStatusDetailActivity.class)
+                                .putExtra(BaseConfig.EXTRA_TYPE,2)
+                                .putExtra("bean",mDataList.get(position)));
+            }
+        });
+        holder.getBinding().layoutDelete.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                new UIDialog.Builder(mContext)
+                        .setTitle("鎮ㄧ‘瀹氳鍒犻櫎璇ラ」鐩悧")
+                        .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                        .setConfirm("纭畾")
+                        .setCancel("鍙栨秷")
+                        .setListener(new UIDialog.OnListener() {
+                            @Override
+                            public void onConfirm(BaseDialog dialog) {
+                                viewModel.deleteItem(mDataList.get(position));
+                            }
+                        })
+                        .show();
+            }
+        });
+        ElectronicFileAdapter adapter = new ElectronicFileAdapter(mContext);
         holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3));
         holder.getBinding().rvImage.setAdapter(adapter);
-        String url = mDataList.get(position).getUrl();
-        if (url == null||url.isEmpty()){
-            return;
-        }
-        List<String> list;
-        if (url.contains(",")){
-            String[] split = url.split(",");
-            list = new ArrayList<>(Arrays.asList(split));
-        }else {
-            list = new ArrayList<>();
-            list.add(url);
-        }
-        adapter.setData(list);
+        adapter.setData(Utils.splitString2List(mDataList.get(position).getUrl(),","));
+
     }
-
+    public void setCheckable(boolean b) {
+        isCheckable = b;
+        notifyDataSetChanged();
+    }
     public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemAnnualHealthStatusBinding> {
-        private boolean isExpended;
-
         public ViewHolder(ItemAnnualHealthStatusBinding binding) {
             super(binding);
         }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/CertificateOfHonorRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/CertificateOfHonorRvAdapter.java
index ab99150..bcf2d84 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/CertificateOfHonorRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/CertificateOfHonorRvAdapter.java
@@ -11,14 +11,19 @@
 
 import com.android.app_base.base.adapter.BaseRVAdapter;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.CertificateOfHonorBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemCertificateOfHonorBinding;
 import com.application.zhangshi_app_android.ui.function.CertificateOfHonorDetailActivity;
+import com.application.zhangshi_app_android.ui.function.FamilyAssetsDetailActivity;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Ljj
@@ -26,6 +31,8 @@
  * @desc 鑽h獕璇佷功 Adapter
  */
 public class CertificateOfHonorRvAdapter extends BaseRVAdapter<CertificateOfHonorBean, ItemCertificateOfHonorBinding, CertificateOfHonorRvAdapter.ViewHolder> {
+    private final Map<CertificateOfHonorBean, Boolean> expendMap = new HashMap<>();
+
     public CertificateOfHonorRvAdapter(Context context) {
         super(context);
     }
@@ -48,83 +55,56 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
                 }
             }
         });
         holder.getBinding().layoutContent.setOnClickListener(v -> {
             AppManager.getAppManager().startActivity(
-                    new Intent(getRecyclerView().getContext(), CertificateOfHonorDetailActivity.class)
+                    new Intent(getRecyclerView().getContext(), FamilyAssetsDetailActivity.class)
                             .putExtra("bean",mDataList.get(position)));
         });
-
-        ImageRvAdapter adapter = new ImageRvAdapter(mContext);
+        ElectronicFileAdapter adapter = new ElectronicFileAdapter(mContext);
         holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3));
         holder.getBinding().rvImage.setAdapter(adapter);
-        String url = mDataList.get(position).getUrl();
-        if (url == null||url.isEmpty()){
-            return;
-        }
-        List<String> list;
-        if (url.contains(",")){
-            String[] split = url.split(",");
-            list = new ArrayList<>(Arrays.asList(split));
-        }else {
-            list = new ArrayList<>();
-            list.add(url);
-        }
-        adapter.setData(list);
+        adapter.setData(Utils.splitString2List(mDataList.get(position).getUrl(),","));
+
+
     }
 
     public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemCertificateOfHonorBinding> {
-        private boolean isExpended;
-
         public ViewHolder(ItemCertificateOfHonorBinding binding) {
             super(binding);
         }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/CleanStorageRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/CleanStorageRvAdapter.java
index 574b8e6..01cde63 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/CleanStorageRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/CleanStorageRvAdapter.java
@@ -3,25 +3,29 @@
 import android.content.Context;
 import android.content.Intent;
 import android.view.View;
-import android.view.animation.Animation;
-import android.view.animation.Transformation;
+import android.widget.CompoundButton;
 import android.widget.FrameLayout;
 
 import androidx.recyclerview.widget.GridLayoutManager;
 
+import com.android.app_base.base.BaseConfig;
 import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.CleanStorageBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemCleanStorageBinding;
-import com.application.zhangshi_app_android.databinding.ItemFamilyAssetsBinding;
-import com.application.zhangshi_app_android.ui.function.CleanStorageActivity;
+import com.application.zhangshi_app_android.ui.function.CleanStorageActivityViewModel;
 import com.application.zhangshi_app_android.ui.function.CleanStorageDetailActivity;
-import com.application.zhangshi_app_android.ui.function.FamilyAssetsDetailActivity;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Ljj
@@ -29,8 +33,12 @@
  * @desc
  */
 public class CleanStorageRvAdapter extends BaseRVAdapter<CleanStorageBean, ItemCleanStorageBinding, CleanStorageRvAdapter.ViewHolder>{
-    public CleanStorageRvAdapter(Context context) {
+    private CleanStorageActivityViewModel viewModel;
+    private final Map<CleanStorageBean, Boolean> expendMap = new HashMap<>();
+    private boolean isCheckable;
+    public CleanStorageRvAdapter(Context context, CleanStorageActivityViewModel viewModel) {
         super(context);
+        this.viewModel = viewModel;
     }
 
     @Override
@@ -51,83 +59,112 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
+        if (isCheckable){
+            holder.getBinding().checkbox.setVisibility(View.VISIBLE);
+            holder.getBinding().checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+                @Override
+                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                    if (viewModel.getCheckListLiveData().getValue() == null){
+                        viewModel.getCheckListLiveData().setValue(new ArrayList<>());
+                    }
+                    List<CleanStorageBean> list = new ArrayList<>(viewModel.getCheckListLiveData().getValue());
+                    if (isChecked){
+                        if (!list.contains(mDataList.get(position))){
+                            list.add(mDataList.get(position));
+                        }
+                    }else{
+                        list.remove(mDataList.get(position));
+                    }
+                    viewModel.getCheckListLiveData().setValue(list);
+                }
+            });
+            holder.getBinding().checkbox.setChecked(viewModel.getCheckListLiveData().getValue().contains(mDataList.get(position)));
+        }else{
+            holder.getBinding().checkbox.setVisibility(View.GONE);
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
                 }
             }
         });
         holder.getBinding().layoutContent.setOnClickListener(v -> {
             AppManager.getAppManager().startActivity(
                     new Intent(getRecyclerView().getContext(), CleanStorageDetailActivity.class)
+                            .putExtra(BaseConfig.EXTRA_TYPE,0)
                             .putExtra("bean",mDataList.get(position)));
         });
 
-        ImageRvAdapter adapter = new ImageRvAdapter(mContext);
+        holder.getBinding().layoutModify.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(
+                        new Intent(getRecyclerView().getContext(), CleanStorageDetailActivity.class)
+                                .putExtra(BaseConfig.EXTRA_TYPE,2)
+                                .putExtra("bean",mDataList.get(position)));
+            }
+        });
+        holder.getBinding().layoutDelete.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                new UIDialog.Builder(mContext)
+                        .setTitle("鎮ㄧ‘瀹氳鍒犻櫎璇ラ」鐩悧")
+                        .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                        .setConfirm("纭畾")
+                        .setCancel("鍙栨秷")
+                        .setListener(new UIDialog.OnListener() {
+                            @Override
+                            public void onConfirm(BaseDialog dialog) {
+                                viewModel.deleteItem(mDataList.get(position));
+                            }
+                        })
+                        .show();
+            }
+        });
+
+        ElectronicFileAdapter adapter = new ElectronicFileAdapter(mContext);
         holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3));
         holder.getBinding().rvImage.setAdapter(adapter);
-        String url = mDataList.get(position).getUrl();
-        if (url == null||url.isEmpty()){
-            return;
-        }
-        List<String> list;
-        if (url.contains(",")){
-            String[] split = url.split(",");
-            list = new ArrayList<>(Arrays.asList(split));
-        }else {
-            list = new ArrayList<>();
-            list.add(url);
-        }
-        adapter.setData(list);
+        adapter.setData(Utils.splitString2List(mDataList.get(position).getUrl(),","));
+
+    }
+    public void setCheckable(boolean b) {
+        isCheckable = b;
+        notifyItemRangeChanged(0,getItemCount());
+
     }
 
     public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemCleanStorageBinding> {
-        private boolean isExpended;
-
         public ViewHolder(ItemCleanStorageBinding binding) {
             super(binding);
         }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/ConsumeRecordRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/ConsumeRecordRvAdapter.java
index 4f2aada..23edfa0 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/ConsumeRecordRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/ConsumeRecordRvAdapter.java
@@ -1,11 +1,24 @@
 package com.application.zhangshi_app_android.adapter;
 
 import android.content.Context;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.view.View;
+
+import androidx.lifecycle.LifecycleOwner;
+import androidx.lifecycle.Observer;
 
 import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.utils.rxbus.MessageEvent;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.ConsumeRecordBean;
 import com.application.zhangshi_app_android.databinding.ItemConsumeRecordBinding;
+import com.application.zhangshi_app_android.ui.function.TourismDetailActivityViewModel;
+
+import java.math.BigDecimal;
 
 /**
  * @author Ljj
@@ -13,8 +26,11 @@
  * @desc 娑堣垂璁板綍閫傞厤鍣�
  */
 public class ConsumeRecordRvAdapter extends BaseRVAdapter<ConsumeRecordBean, ItemConsumeRecordBinding,BaseRVAdapter.BaseViewHolder<ItemConsumeRecordBinding>> {
-    public ConsumeRecordRvAdapter(Context context) {
+    private TourismDetailActivityViewModel viewModel;
+
+    public ConsumeRecordRvAdapter(Context context,TourismDetailActivityViewModel viewModel) {
         super(context);
+        this.viewModel = viewModel;
     }
 
     @Override
@@ -24,7 +40,51 @@
 
     @Override
     protected void onBind(BaseViewHolder<ItemConsumeRecordBinding> holder, int position) {
+        ConsumeRecordBean item = getItem(position);
+        holder.getBinding().setLifecycleOwner((LifecycleOwner) mContext);
         holder.getBinding().setBean(getItem(position));
+        holder.getBinding().setViewModel(viewModel);
+        holder.getBinding().ivDelete.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                new UIDialog.Builder(mContext)
+                        .setTitle("鎮ㄧ‘瀹氳鍒犻櫎璇ユ潯娑堣垂璁板綍鍚�")
+                        .setContent("鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                        .setConfirm("纭畾")
+                        .setCancel("鍙栨秷")
+                        .setListener(new UIDialog.OnListener() {
+                            @Override
+                            public void onConfirm(BaseDialog dialog) {
+                                removeItem(position);
+                                RxBus.getInstance().post(new MessageEvent(MessageEvent.EVENT_TOURISM_CONSUME_CHANGE));
+                            }
+                        })
+                        .show();
+            }
+        });
+        TextWatcher textWatcher = new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                BigDecimal decimal = BigDecimal.valueOf(item.getEat()+item.getStay()+item.getShopping()+item.getTraffic()+item.getEntrance());
+                holder.getBinding().etTotalCost.setText(decimal.stripTrailingZeros().toPlainString());
+                RxBus.getInstance().post(new MessageEvent(MessageEvent.EVENT_TOURISM_CONSUME_CHANGE));
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        };
+        holder.getBinding().etEat.addTextChangedListener(textWatcher);
+        holder.getBinding().etStay.addTextChangedListener(textWatcher);
+        holder.getBinding().etShopping.addTextChangedListener(textWatcher);
+        holder.getBinding().etTraffic.addTextChangedListener(textWatcher);
+        holder.getBinding().etEntrance.addTextChangedListener(textWatcher);
     }
 
     @Override
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/ContactsDetailAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/ContactsDetailAdapter.java
index 2020ff7..a4f19f1 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/ContactsDetailAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/ContactsDetailAdapter.java
@@ -12,7 +12,7 @@
 /**
  * @author Ljj
  * @date 2023.05.12. 22:50
- * @desc
+ * @desc 閫氳褰曡鎯� Adapter
  */
 public class ContactsDetailAdapter extends BaseRVAdapter<ContactsDetailBean,ItemContactsDetailBinding,BaseRVAdapter.BaseViewHolder<ItemContactsDetailBinding>> {
     public ContactsDetailAdapter(Context context) {
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/ContactsRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/ContactsRvAdapter.java
index a34d30f..48c64a5 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/ContactsRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/ContactsRvAdapter.java
@@ -7,10 +7,15 @@
 import android.widget.FrameLayout;
 
 import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.ContactsBean;
 import com.application.zhangshi_app_android.bean.ContactsDetailBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemContactsBinding;
+
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @author Gss
@@ -18,7 +23,7 @@
  * @desc 閫氳褰� recyclerView 鐨� adapter
  */
 public class ContactsRvAdapter extends BaseRVAdapter<ContactsBean, ItemContactsBinding, ContactsRvAdapter.ViewHolder> {
-
+    private final Map<ContactsBean, Boolean> expendMap = new HashMap<>();
 
     public ContactsRvAdapter(Context context) {
         super(context);
@@ -45,53 +50,36 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    expendMap.put(getItem(position),false);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    holder.getBinding().cardView.measure(View.MeasureSpec.UNSPECIFIED,View.MeasureSpec.UNSPECIFIED);
+                    holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    expendMap.put(getItem(position),true);
                 }
             }
         });
@@ -100,8 +88,6 @@
 
 
     public static class ViewHolder extends BaseViewHolder<ItemContactsBinding>{
-        private boolean isExpended;
-
         public ViewHolder(ItemContactsBinding binding) {
             super(binding);
         }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/DailyConsumeRecordRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/DailyConsumeRecordRvAdapter.java
index d8bd347..bb848fc 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/DailyConsumeRecordRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/DailyConsumeRecordRvAdapter.java
@@ -1,23 +1,36 @@
 package com.application.zhangshi_app_android.adapter;
 
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.ValueAnimator;
+import android.app.Activity;
 import android.content.Context;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.animation.Animation;
-import android.view.animation.Transformation;
+import android.graphics.Color;
+import android.widget.FrameLayout;
 
-import androidx.annotation.NonNull;
-import androidx.databinding.ViewDataBinding;
-import androidx.recyclerview.widget.RecyclerView;
+import androidx.lifecycle.LifecycleOwner;
 
 import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.utils.rxbus.MessageEvent;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.ConsumeRecordBean;
 import com.application.zhangshi_app_android.bean.DailyConsumeRecordBean;
 import com.application.zhangshi_app_android.databinding.ItemDailyConsumeRecordBinding;
-import com.application.zhangshi_app_android.databinding.ItemPropertyBinding;
+import com.application.zhangshi_app_android.ui.function.TourismDetailActivityViewModel;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
+import com.github.gzuliyujiang.wheelpicker.entity.DateEntity;
+import com.github.gzuliyujiang.wheelpicker.impl.UnitDateFormatter;
+import com.github.gzuliyujiang.wheelpicker.widget.DateWheelLayout;
+
+import java.math.BigDecimal;
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.Map;
+
+import io.reactivex.functions.Consumer;
 
 /**
  * @author Ljj
@@ -25,8 +38,14 @@
  * @desc 姣忔棩娑堣垂璁板綍閫傞厤鍣�
  */
 public class DailyConsumeRecordRvAdapter extends BaseRVAdapter<DailyConsumeRecordBean, ItemDailyConsumeRecordBinding, DailyConsumeRecordRvAdapter.ViewHolder> {
-    public DailyConsumeRecordRvAdapter(Context context) {
+    private TourismDetailActivityViewModel viewModel;
+
+    private Map<DailyConsumeRecordBean, Boolean> expendMap;
+
+    public DailyConsumeRecordRvAdapter(Context context, TourismDetailActivityViewModel viewModel) {
         super(context);
+        this.viewModel = viewModel;
+        this.expendMap = new HashMap<>();
     }
 
     @Override
@@ -36,22 +55,103 @@
 
     @Override
     protected void onBind(ViewHolder holder, int position) {
-        holder.getBinding().setBean(getItem(position));
-        holder.getBinding().setIsFold(holder.isExpended);
-        ConsumeRecordRvAdapter adapter = new ConsumeRecordRvAdapter(mContext);
-        holder.getBinding().rvConsumeRecord.setAdapter(adapter);
-        adapter.setData(getItem(position).getConsumeRecordBeans());
-        holder.getBinding().ivFold.setOnClickListener(v -> {
-            if (holder.isExpended) {
-                holder.isExpended = false;
-                holder.getBinding().setIsFold(false);
-                collapseView(holder.getBinding().rvConsumeRecord, holder.getBinding().rvConsumeRecord);
-            } else {
-                holder.isExpended = true;
-                holder.getBinding().setIsFold(true);
-                expandView(holder.getBinding().rvConsumeRecord);
+        DailyConsumeRecordBean item = getItem(position);
+        holder.getBinding().setLifecycleOwner((LifecycleOwner) mContext);
+        holder.getBinding().setBean(item);
+        holder.getBinding().setViewModel(viewModel);
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
+        holder.getBinding().layoutTitle.setOnClickListener(v -> {
+            if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+                int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
+                int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
+                Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                expendMap.put(getItem(position),false);
+            }else{
+                final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
+                holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
+                int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
+                Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                expendMap.put(getItem(position),true);
+                holder.getBinding().cardView.postDelayed(new Runnable() {
+                    @Override
+                    public void run() {
+                        holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                        holder.getBinding().cardView.setLayoutParams(holder.getBinding().cardView.getLayoutParams());
+                    }
+                },500);
+
             }
         });
+
+
+        ConsumeRecordRvAdapter adapter = new ConsumeRecordRvAdapter(mContext,viewModel);
+        holder.getBinding().rvConsumeRecord.setAdapter(adapter);
+        adapter.setData(getItem(position).getConsumeRecordBeans());
+
+        holder.getBinding().ivAdd.setOnClickListener(v -> {
+            ConsumeRecordBean bean = new ConsumeRecordBean();
+            adapter.addItem(0,bean);
+        });
+        holder.getBinding().ivDelete.setOnClickListener(v -> {
+            new UIDialog.Builder(mContext)
+                    .setTitle("鎮ㄧ‘瀹氳鍒犻櫎璇ユ棩娑堣垂璁板綍鍚�")
+                    .setContent("鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                    .setConfirm("纭畾")
+                    .setCancel("鍙栨秷")
+                    .setListener(new UIDialog.OnListener() {
+                        @Override
+                        public void onConfirm(BaseDialog dialog) {
+                            removeItem(position);
+                            RxBus.getInstance().post(new MessageEvent(MessageEvent.EVENT_TOURISM_CONSUME_CHANGE));
+                        }
+                    })
+                    .show();
+        });
+
+        holder.getBinding().tvDate.setOnClickListener(v -> {
+            DatePicker datePicker = getDatePicker();
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    holder.getBinding().tvDate.setText(month+"鏈�"+day+"鏃�");
+                }
+            });
+            datePicker.show();
+        });
+        RxBus.getInstance().toObservable((LifecycleOwner) mContext, MessageEvent.class)
+                .subscribe(messageEvent -> {
+                    if (messageEvent.getMessageEventCode() == MessageEvent.EVENT_TOURISM_CONSUME_CHANGE){
+                        if (adapter.getItemCount() == 0 || adapter.getData() == null){
+                            holder.getBinding().etDailyMoney.setText("0.0");
+                            return;
+                        }
+                        BigDecimal bigDecimal = new BigDecimal(0);
+                        for (ConsumeRecordBean bean : adapter.getData()){
+                            bigDecimal = bigDecimal.add(BigDecimal.valueOf(bean.getTotalCost()));
+                        }
+                        holder.getBinding().etDailyMoney.setText(bigDecimal.stripTrailingZeros().toPlainString());
+                        for (ConsumeRecordBean bean : adapter.getData()){
+                            bean.setDayCost(item.getDailyMoney());
+                        }
+                    }
+                });
     }
 
     @Override
@@ -59,54 +159,35 @@
         return new ViewHolder(itemBind);
     }
 
-
     public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemDailyConsumeRecordBinding> {
-        private boolean isExpended;
-
         public ViewHolder(ItemDailyConsumeRecordBinding binding) {
             super(binding);
         }
     }
 
-    public void collapseView(View initialView, View collapsedView){
-        int initialHeight = initialView.getMeasuredHeight();
-        int collapsedHeight = collapsedView.getMeasuredHeight();
-        int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-        Animation a = new Animation() {
-            @Override
-            protected void applyTransformation(float interpolatedTime, Transformation t) {
-                if (interpolatedTime == 1){
-                }
-                initialView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                initialView.requestLayout();
-            }
-
-            @Override
-            public boolean willChangeBounds() {
-                return true;
-            }
-        };
-        a.setDuration(500);
-        initialView.startAnimation(a);
+    public void setFold(boolean isFold,int position){
+        expendMap.put(getItem(position),isFold);
+        notifyItemChanged(position);
     }
-    public void expandView(View initialView){
-        int initialHeight = initialView.getMeasuredHeight();
-        initialView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
-        int targetHeight = initialView.getMeasuredHeight();
-        ValueAnimator animator = ValueAnimator.ofInt(initialHeight,targetHeight);
-        animator.addUpdateListener(animation -> {
-            initialView.getLayoutParams().height = (int) animation.getAnimatedValue();
-            initialView.requestLayout();
-        });
-        animator.addListener(new AnimatorListenerAdapter() {
-            @Override
-            public void onAnimationEnd(Animator animation) {
-                initialView.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT;
-                initialView.setLayoutParams(initialView.getLayoutParams());
-            }
-        });
-        animator.setDuration(500);
-        animator.start();
+
+    private DatePicker getDatePicker(){
+        com.github.gzuliyujiang.wheelpicker.DatePicker datePicker = new DatePicker((Activity) mContext);
+        DateWheelLayout wheelLayout = datePicker.getWheelLayout();
+        wheelLayout.getMonthWheelView().setCurtainCorner(0);//鑳屾櫙鏃犲渾瑙�
+        wheelLayout.getDayWheelView().setCurtainCorner(5);//鑳屾櫙鍙宠竟鏈夊渾瑙�
+        wheelLayout.getYearWheelView().setCurtainCorner(4);//鑳屾櫙宸﹁竟鏈夊渾瑙�
+        wheelLayout.setDateFormatter(new UnitDateFormatter());
+        wheelLayout.setPadding(50, 0, 50, 0);
+        wheelLayout.setItemSpace(ScreenSizeUtils.dip2px(mContext, 20));
+        wheelLayout.setCurtainEnabled(true);
+        wheelLayout.setCurtainColor(Color.parseColor("#4D2F63F8"));
+        wheelLayout.setCurtainRadius(ScreenSizeUtils.dip2px(mContext,4));
+        wheelLayout.setSelectedTextColor(Color.parseColor("#FF2F63F8"));
+        wheelLayout.setTextColor(Color.parseColor("#FF999999"));
+        wheelLayout.setIndicatorEnabled(false);
+        //鏃ユ湡鍙�夎寖鍥�
+        wheelLayout.setRange(DateEntity.target(1900, 1, 1), DateEntity.target(2500, 12, 31),DateEntity.target(Calendar.getInstance()));
+        datePicker.getWheelLayout().setResetWhenLinkage(false);
+        return datePicker;
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/ElectronicFileAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/ElectronicFileAdapter.java
new file mode 100644
index 0000000..3ffb361
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/ElectronicFileAdapter.java
@@ -0,0 +1,33 @@
+package com.application.zhangshi_app_android.adapter;
+
+import android.content.Context;
+
+import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.databinding.ItemElectronicFileBinding;
+
+/**
+ * @author Ljj
+ * @date 2023.05.15. 21:46
+ * @desc 鍗$墖閲岀殑 鐢靛瓙鏂囦欢 閫傞厤鍣�
+ */
+public class ElectronicFileAdapter extends BaseRVAdapter<String,ItemElectronicFileBinding,BaseRVAdapter.BaseViewHolder<ItemElectronicFileBinding>> {
+    public ElectronicFileAdapter(Context context) {
+        super(context);
+    }
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.item_electronic_file;
+    }
+
+    @Override
+    protected void onBind(BaseViewHolder<ItemElectronicFileBinding> holder, int position) {
+        holder.getBinding().setUrl(mDataList.get(position));
+    }
+
+    @Override
+    protected BaseViewHolder<ItemElectronicFileBinding> getViewHolder(ItemElectronicFileBinding itemBind, int viewType) {
+        return new BaseViewHolder<>(itemBind);
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyAssetsRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyAssetsRvAdapter.java
index c28c979..477e247 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyAssetsRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyAssetsRvAdapter.java
@@ -5,29 +5,25 @@
 import android.view.View;
 import android.view.animation.Animation;
 import android.view.animation.Transformation;
-import android.widget.CompoundButton;
 import android.widget.FrameLayout;
 
 import androidx.recyclerview.widget.GridLayoutManager;
 
-import com.android.app_base.base.BaseConfig;
 import com.android.app_base.base.adapter.BaseRVAdapter;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.FamilyAssetsBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemFamilyAssetsBinding;
-import com.application.zhangshi_app_android.ui.function.CreateFamilyProjectActivity;
-import com.application.zhangshi_app_android.ui.function.FamilyAssetsActivity;
 import com.application.zhangshi_app_android.ui.function.FamilyAssetsActivityViewModel;
 import com.application.zhangshi_app_android.ui.function.FamilyAssetsDetailActivity;
 
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
-import java.util.Locale;
-import java.util.Objects;
+import java.util.Map;
 
 /**
  * @author Ljj
@@ -36,16 +32,12 @@
  */
 public class FamilyAssetsRvAdapter extends BaseRVAdapter<FamilyAssetsBean, ItemFamilyAssetsBinding, FamilyAssetsRvAdapter.ViewHolder> {
 
-    private FamilyAssetsActivityViewModel viewModel;
+    private final Map<FamilyAssetsBean, Boolean> expendMap = new HashMap<>();
 
     public FamilyAssetsRvAdapter(Context context) {
         super(context);
     }
 
-    public FamilyAssetsRvAdapter(Context context, FamilyAssetsActivityViewModel viewModel) {
-        super(context);
-        this.viewModel = viewModel;
-    }
 
     @Override
     protected int getLayoutId() {
@@ -65,53 +57,38 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
                 }
             }
         });
@@ -120,29 +97,14 @@
                     new Intent(getRecyclerView().getContext(), FamilyAssetsDetailActivity.class)
                             .putExtra("bean",mDataList.get(position)));
         });
-        String time = mDataList.get(position).getCreateTime().split(" ")[0];
-        holder.getBinding().tvTime.setText(time);
-        ImageRvAdapter adapter = new ImageRvAdapter(mContext);
+        ElectronicFileAdapter adapter = new ElectronicFileAdapter(mContext);
         holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3));
         holder.getBinding().rvImage.setAdapter(adapter);
-        String url = mDataList.get(position).getUrl();
-        if (url == null||url.isEmpty()){
-            return;
-        }
-        List<String> list;
-        if (url.contains(",")){
-            String[] split = url.split(",");
-            list = new ArrayList<>(Arrays.asList(split));
-        }else {
-            list = new ArrayList<>();
-            list.add(url);
-        }
-        adapter.setData(list);
+        adapter.setData(Utils.splitString2List(mDataList.get(position).getUrl(),","));
+
     }
 
     public static class ViewHolder extends BaseViewHolder<ItemFamilyAssetsBinding>{
-        private boolean isExpended;
-
         public ViewHolder(ItemFamilyAssetsBinding binding) {
             super(binding);
         }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyMemorabiliaRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyMemorabiliaRvAdapter.java
index 3633bbd..d83ca03 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyMemorabiliaRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyMemorabiliaRvAdapter.java
@@ -8,25 +8,25 @@
 import android.widget.CompoundButton;
 import android.widget.FrameLayout;
 
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
 import androidx.recyclerview.widget.GridLayoutManager;
 
 import com.android.app_base.base.BaseConfig;
 import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemFamilyMemorabiliaBinding;
-import com.application.zhangshi_app_android.ui.function.CreateFamilyProjectActivity;
-import com.application.zhangshi_app_android.ui.function.FamilyMemorabiliaActivity;
+import com.application.zhangshi_app_android.ui.function.FamilyMemorabiliaDetailActivity;
 import com.application.zhangshi_app_android.ui.function.FamilyMemorabiliaActivityViewModel;
 
 import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
-import java.util.Objects;
+import java.util.Map;
 
 /**
  * @author Ljj
@@ -35,8 +35,8 @@
  */
 public class FamilyMemorabiliaRvAdapter extends BaseRVAdapter<FamilyMemorabiliaBean, ItemFamilyMemorabiliaBinding, FamilyMemorabiliaRvAdapter.MyViewHolder> {
 
-
     private FamilyMemorabiliaActivityViewModel viewModel;
+    private final Map<FamilyMemorabiliaBean, Boolean> expendMap = new HashMap<>();
     private boolean isCheckable;
 
     public FamilyMemorabiliaRvAdapter(Context context) {
@@ -66,6 +66,22 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
         if (isCheckable){
             holder.getBinding().checkbox.setVisibility(View.VISIBLE);
             holder.getBinding().checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@@ -92,71 +108,59 @@
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
                 }
+            }
+        });
+        holder.itemView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(
+                        new Intent(getRecyclerView().getContext(), FamilyMemorabiliaDetailActivity.class)
+                                .putExtra(BaseConfig.EXTRA_TYPE,0)
+                                .putExtra("bean",mDataList.get(position)));
             }
         });
         holder.getBinding().layoutModify.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 AppManager.getAppManager().startActivity(
-                        new Intent(getRecyclerView().getContext(), CreateFamilyProjectActivity.class)
-                                .putExtra(BaseConfig.EXTRA_TYPE,0)
+                        new Intent(getRecyclerView().getContext(), FamilyMemorabiliaDetailActivity.class)
+                                .putExtra(BaseConfig.EXTRA_TYPE,2)
                                 .putExtra("bean",mDataList.get(position)));
             }
         });
         holder.getBinding().layoutDelete.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-
+                new UIDialog.Builder(mContext)
+                        .setTitle("鎮ㄧ‘瀹氳鍒犻櫎璇ラ」鐩悧")
+                        .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                        .setConfirm("纭畾")
+                        .setCancel("鍙栨秷")
+                        .setListener(new UIDialog.OnListener() {
+                            @Override
+                            public void onConfirm(BaseDialog dialog) {
+                                viewModel.deleteItem(mDataList.get(position));
+                            }
+                        })
+                        .show();
             }
         });
-        ImageRvAdapter adapter = new ImageRvAdapter(mContext);
-        mDataList.get(position).setUrl(mDataList.get(position).getUrl());
-        adapter.setData(mDataList.get(position).getUrlList());
+        ElectronicFileAdapter adapter = new ElectronicFileAdapter(mContext);
+        adapter.setData(Utils.splitString2List(mDataList.get(position).getUrl(),","));
         holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3));
         holder.getBinding().rvImage.setAdapter(adapter);
     }
@@ -168,8 +172,6 @@
 
 
     public static class MyViewHolder extends BaseViewHolder<ItemFamilyMemorabiliaBinding>{
-        private boolean isExpended;
-
         public MyViewHolder(ItemFamilyMemorabiliaBinding binding) {
             super(binding);
         }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceAbroadConditionRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceAbroadConditionRvAdapter.java
index 53476c0..0fae005 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceAbroadConditionRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceAbroadConditionRvAdapter.java
@@ -12,15 +12,19 @@
 import androidx.databinding.DataBindingUtil;
 import com.android.app_base.base.adapter.BaseRVAdapter;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.GrowthExperienceAbroadConditionBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemGrowthExperienceAbroadConditionBinding;
 import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivity;
 import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivityViewModel;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Gss
@@ -30,6 +34,8 @@
 public class GrowthExperienceAbroadConditionRvAdapter extends BaseRVAdapter<GrowthExperienceAbroadConditionBean, ItemGrowthExperienceAbroadConditionBinding, GrowthExperienceAbroadConditionRvAdapter.ViewHolder> {
 
     private GrowthExperienceActivityViewModel viewModel;
+    private final Map<GrowthExperienceAbroadConditionBean, Boolean> expendMap = new HashMap<>();
+
 
     public GrowthExperienceAbroadConditionRvAdapter(Context context) {
         super(context);
@@ -58,53 +64,38 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
                 }
             }
         });
@@ -112,8 +103,6 @@
     }
 
     public static class ViewHolder extends BaseViewHolder<ItemGrowthExperienceAbroadConditionBinding>{
-        private boolean isExpended;
-
         public ViewHolder(ItemGrowthExperienceAbroadConditionBinding binding) {
             super(binding);
         }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceHolderConditionRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceHolderConditionRvAdapter.java
index 1c79a1a..7fdc6aa 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceHolderConditionRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceHolderConditionRvAdapter.java
@@ -12,15 +12,19 @@
 import androidx.databinding.DataBindingUtil;
 import com.android.app_base.base.adapter.BaseRVAdapter;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.GrowthExperienceBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceHolderConditionBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemGrowthExperienceHolderConditionBinding;
 import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivity;
 import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivityViewModel;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Gss
@@ -29,16 +33,13 @@
  */
 public class GrowthExperienceHolderConditionRvAdapter extends BaseRVAdapter<GrowthExperienceHolderConditionBean, ItemGrowthExperienceHolderConditionBinding, GrowthExperienceHolderConditionRvAdapter.ViewHolder> {
 
-    private GrowthExperienceActivityViewModel viewModel;
+
+    private final Map<GrowthExperienceHolderConditionBean, Boolean> expendMap = new HashMap<>();
 
     public GrowthExperienceHolderConditionRvAdapter(Context context) {
         super(context);
     }
 
-    public GrowthExperienceHolderConditionRvAdapter(Context context, GrowthExperienceActivityViewModel viewModel) {
-        super(context);
-        this.viewModel = viewModel;
-    }
 
     @Override
     protected int getLayoutId() {
@@ -58,53 +59,38 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    expendMap.put(getItem(position),false);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    expendMap.put(getItem(position),true);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
                 }
             }
         });
@@ -112,7 +98,6 @@
     }
 
     public static class ViewHolder extends BaseViewHolder<ItemGrowthExperienceHolderConditionBinding>{
-        private boolean isExpended;
 
         public ViewHolder(ItemGrowthExperienceHolderConditionBinding binding) {
             super(binding);
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperiencePrimaryRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperiencePrimaryRvAdapter.java
index 7bc8ef3..e43d1fe 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperiencePrimaryRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperiencePrimaryRvAdapter.java
@@ -14,14 +14,18 @@
 
 import com.android.app_base.base.adapter.BaseRVAdapter;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.GrowthExperienceBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemGrowthExperiencePrimaryBinding;
 import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivity;
 import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivityViewModel;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Gss
@@ -29,16 +33,10 @@
  * @desc 鎴愰暱缁忓巻(涓昏瀛︿範鍙婂伐浣滅粡鍘�) recyclerView 鐨� adapter
  */
 public class GrowthExperiencePrimaryRvAdapter extends BaseRVAdapter<GrowthExperienceBean, ItemGrowthExperiencePrimaryBinding, GrowthExperiencePrimaryRvAdapter.ViewHolder> {
-
-    private GrowthExperienceActivityViewModel viewModel;
+    private final Map<GrowthExperienceBean, Boolean> expendMap = new HashMap<>();
 
     public GrowthExperiencePrimaryRvAdapter(Context context) {
         super(context);
-    }
-
-    public GrowthExperiencePrimaryRvAdapter(Context context, GrowthExperienceActivityViewModel viewModel) {
-        super(context);
-        this.viewModel = viewModel;
     }
 
     @Override
@@ -61,55 +59,44 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
-                    int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
+                holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+                            int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
+                            int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
+                            Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                            expendMap.put(getItem(position),false);
+                            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                        }else{
+                            final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
+                            holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
+                            int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
+                            Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                            expendMap.put(getItem(position),true);
+                            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
                         }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
-                }else{
-                    int recyclerviewHeight = mRecyclerView.getMeasuredHeight();
-                    final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    holder.getBinding().cardView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
-                    int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
-                }
+                    }
+                });
             }
         });
 
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceRelationshipRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceRelationshipRvAdapter.java
index 7aab133..f2c381d 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceRelationshipRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceRelationshipRvAdapter.java
@@ -12,15 +12,19 @@
 import androidx.databinding.DataBindingUtil;
 import com.android.app_base.base.adapter.BaseRVAdapter;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.GrowthExperienceBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceRelationshipBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemGrowthExperienceRelationshipBinding;
 import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivity;
 import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivityViewModel;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Gss
@@ -28,6 +32,7 @@
  * @desc 鎴愰暱缁忓巻(瀹跺涵鎴愬憳鍙婁富瑕佺ぞ浼氬叧绯绘儏鍐�) recyclerView 鐨� adapter
  */
 public class GrowthExperienceRelationshipRvAdapter extends BaseRVAdapter<GrowthExperienceRelationshipBean, ItemGrowthExperienceRelationshipBinding, GrowthExperienceRelationshipRvAdapter.ViewHolder> {
+    private final Map<GrowthExperienceRelationshipBean, Boolean> expendMap = new HashMap<>();
 
     private GrowthExperienceActivityViewModel viewModel;
 
@@ -59,53 +64,38 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    expendMap.put(getItem(position),false);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    expendMap.put(getItem(position),true);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
                 }
             }
         });
@@ -113,8 +103,6 @@
     }
 
     public static class ViewHolder extends BaseViewHolder<ItemGrowthExperienceRelationshipBinding>{
-        private boolean isExpended;
-
         public ViewHolder(ItemGrowthExperienceRelationshipBinding binding) {
             super(binding);
         }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/HomeDevicesRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/HomeDevicesRvAdapter.java
index 16ca07e..844193f 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/HomeDevicesRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/HomeDevicesRvAdapter.java
@@ -3,24 +3,29 @@
 import android.content.Context;
 import android.content.Intent;
 import android.view.View;
-import android.view.animation.Animation;
-import android.view.animation.Transformation;
+import android.widget.CompoundButton;
 import android.widget.FrameLayout;
 
 import androidx.recyclerview.widget.GridLayoutManager;
 
+import com.android.app_base.base.BaseConfig;
 import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.HomeDevicesBean;
-import com.application.zhangshi_app_android.databinding.ItemFamilyAssetsBinding;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemHomeDevicesBinding;
-import com.application.zhangshi_app_android.ui.function.FamilyAssetsDetailActivity;
+import com.application.zhangshi_app_android.ui.function.HomeDevicesActivityViewModel;
 import com.application.zhangshi_app_android.ui.function.HomeDevicesDetailActivity;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Ljj
@@ -28,8 +33,12 @@
  * @desc 瀹跺涵璁惧 recyclerView 鐨� adapter
  */
 public class HomeDevicesRvAdapter extends BaseRVAdapter<HomeDevicesBean, ItemHomeDevicesBinding, HomeDevicesRvAdapter.ViewHolder>{
-    public HomeDevicesRvAdapter(Context context) {
+    private final HomeDevicesActivityViewModel viewModel;
+    private final Map<HomeDevicesBean, Boolean> expendMap = new HashMap<>();
+    private boolean isCheckable;
+    public HomeDevicesRvAdapter(Context context, HomeDevicesActivityViewModel viewModel) {
         super(context);
+        this.viewModel = viewModel;
     }
 
     @Override
@@ -45,86 +54,114 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
+        if (isCheckable){
+            holder.getBinding().checkbox.setVisibility(View.VISIBLE);
+            holder.getBinding().checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+                @Override
+                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                    if (viewModel.getCheckListLiveData().getValue() == null){
+                        viewModel.getCheckListLiveData().setValue(new ArrayList<>());
+                    }
+                    List<HomeDevicesBean> list = new ArrayList<>(viewModel.getCheckListLiveData().getValue());
+                    if (isChecked){
+                        if (!list.contains(mDataList.get(position))){
+                            list.add(mDataList.get(position));
+                        }
+                    }else{
+                        list.remove(mDataList.get(position));
+                    }
+                    viewModel.getCheckListLiveData().setValue(list);
+                }
+            });
+            holder.getBinding().checkbox.setChecked(viewModel.getCheckListLiveData().getValue().contains(mDataList.get(position)));
+        }else{
+            holder.getBinding().checkbox.setVisibility(View.GONE);
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    expendMap.put(getItem(position),false);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    expendMap.put(getItem(position),true);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
                 }
             }
         });
         holder.getBinding().layoutContent.setOnClickListener(v -> {
             AppManager.getAppManager().startActivity(
                     new Intent(getRecyclerView().getContext(), HomeDevicesDetailActivity.class)
+                            .putExtra(BaseConfig.EXTRA_TYPE,0)
                             .putExtra("bean",mDataList.get(position)));
         });
-        ImageRvAdapter adapter = new ImageRvAdapter(mContext);
+
+        holder.getBinding().layoutModify.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(
+                        new Intent(getRecyclerView().getContext(), HomeDevicesDetailActivity.class)
+                                .putExtra(BaseConfig.EXTRA_TYPE,2)
+                                .putExtra("bean",mDataList.get(position)));
+            }
+        });
+        holder.getBinding().layoutDelete.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                new UIDialog.Builder(mContext)
+                        .setTitle("鎮ㄧ‘瀹氳鍒犻櫎璇ラ」鐩悧")
+                        .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                        .setConfirm("纭畾")
+                        .setCancel("鍙栨秷")
+                        .setListener(new UIDialog.OnListener() {
+                            @Override
+                            public void onConfirm(BaseDialog dialog) {
+                                viewModel.deleteItem(mDataList.get(position));
+                            }
+                        })
+                        .show();
+            }
+        });
+
+        ElectronicFileAdapter adapter = new ElectronicFileAdapter(mContext);
         holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3));
         holder.getBinding().rvImage.setAdapter(adapter);
-        String url = mDataList.get(position).getUrl();
-        if (url == null||url.isEmpty()){
-            return;
-        }
-        List<String> list;
-        if (url.contains(",")){
-            String[] split = url.split(",");
-            list = new ArrayList<>(Arrays.asList(split));
-        }else {
-            list = new ArrayList<>();
-            list.add(url);
-        }
-        adapter.setData(list);
-    }
+        adapter.setData(Utils.splitString2List(mDataList.get(position).getUrl(),","));
 
+    }
+    public void setCheckable(boolean b) {
+        isCheckable = b;
+        notifyItemRangeChanged(0,getItemCount());
+    }
     @Override
     protected ViewHolder getViewHolder(ItemHomeDevicesBinding itemBind,int viewType) {
         return new ViewHolder(itemBind);
     }
 
-    public static class ViewHolder extends BaseViewHolder<ItemHomeDevicesBinding>{
-        private boolean isExpended;
+    public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemHomeDevicesBinding>{
 
         public ViewHolder(ItemHomeDevicesBinding binding) {
             super(binding);
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/HomeMemberAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/HomeMemberAdapter.java
index 9e42148..dbfa7b7 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/HomeMemberAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/HomeMemberAdapter.java
@@ -8,9 +8,14 @@
 import android.widget.FrameLayout;
 
 import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.CertificateOfHonorBean;
 import com.application.zhangshi_app_android.bean.HomeMemberBean;
 import com.application.zhangshi_app_android.databinding.ItemHomeMemberListBinding;
+
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @author Ljj
@@ -18,6 +23,8 @@
  * @desc
  */
 public class HomeMemberAdapter extends BaseRVAdapter<HomeMemberBean, ItemHomeMemberListBinding, HomeMemberAdapter.ViewHolder> {
+
+    private final Map<HomeMemberBean, Boolean> expendMap = new HashMap<>();
 
     public HomeMemberAdapter(Context context) {
         super(context);
@@ -36,53 +43,39 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
                 }
             }
         });
@@ -94,8 +87,6 @@
     }
 
     public static class ViewHolder extends BaseViewHolder<ItemHomeMemberListBinding>{
-        private boolean isExpended;
-
         public ViewHolder(ItemHomeMemberListBinding binding) {
             super(binding);
         }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/HonorCollectionRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/HonorCollectionRvAdapter.java
index e1809aa..8b89896 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/HonorCollectionRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/HonorCollectionRvAdapter.java
@@ -11,15 +11,18 @@
 
 import com.android.app_base.base.adapter.BaseRVAdapter;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.HonorCollectionBean;
-import com.application.zhangshi_app_android.databinding.ItemFamilyAssetsBinding;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemHonorCollectionBinding;
 import com.application.zhangshi_app_android.ui.function.HonorCollectionDetailActivity;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Ljj
@@ -27,6 +30,7 @@
  * @desc 鑽h獕鏀惰棌 Adapter
  */
 public class HonorCollectionRvAdapter extends BaseRVAdapter<HonorCollectionBean, ItemHonorCollectionBinding, HonorCollectionRvAdapter.ViewHolder>{
+    private final Map<HonorCollectionBean, Boolean> expendMap = new HashMap<>();
 
     public HonorCollectionRvAdapter(Context context) {
         super(context);
@@ -45,53 +49,38 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
                 }
             }
         });
@@ -101,26 +90,11 @@
                             .putExtra("bean",mDataList.get(position)));
         });
 
-        if (mDataList.get(position).getGetTime()!=null){
-            String time = mDataList.get(position).getGetTime().split(" ")[0];
-            holder.getBinding().tvTime.setText(time);
-        }
-        ImageRvAdapter adapter = new ImageRvAdapter(mContext);
+        ElectronicFileAdapter adapter = new ElectronicFileAdapter(mContext);
         holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3));
         holder.getBinding().rvImage.setAdapter(adapter);
-        String url = mDataList.get(position).getUrl();
-        if (url == null||url.isEmpty()){
-            return;
-        }
-        List<String> list;
-        if (url.contains(",")){
-            String[] split = url.split(",");
-            list = new ArrayList<>(Arrays.asList(split));
-        }else {
-            list = new ArrayList<>();
-            list.add(url);
-        }
-        adapter.setData(list);
+        adapter.setData(Utils.splitString2List(mDataList.get(position).getUrl(),","));
+
     }
 
     @Override
@@ -129,7 +103,6 @@
     }
 
     public static class ViewHolder extends BaseViewHolder<ItemHonorCollectionBinding>{
-        private boolean isExpended;
 
         public ViewHolder(ItemHonorCollectionBinding binding) {
             super(binding);
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/HundredWishRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/HundredWishRvAdapter.java
index 633aac0..01eb0fd 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/HundredWishRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/HundredWishRvAdapter.java
@@ -11,20 +11,27 @@
 
 import com.android.app_base.base.adapter.BaseRVAdapter;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.HundredWishBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemHundredWishBinding;
 import com.application.zhangshi_app_android.ui.function.HundredWishDetailActivity;
+import com.application.zhangshi_app_android.ui.function.PropertyDetailActivity;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
 * @author Ljj
 * @date 2023.04.23. 20:05
 * @desc
 */public class HundredWishRvAdapter extends BaseRVAdapter<HundredWishBean, ItemHundredWishBinding, HundredWishRvAdapter.ViewHolder> {
+    private final Map<HundredWishBean, Boolean> expendMap = new HashMap<>();
+
     public HundredWishRvAdapter(Context context) {
         super(context);
     }
@@ -47,53 +54,38 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
                 }
             }
         });
@@ -102,27 +94,15 @@
                     new Intent(getRecyclerView().getContext(), HundredWishDetailActivity.class)
                             .putExtra("bean",mDataList.get(position)));
         });
-
-        ImageRvAdapter adapter = new ImageRvAdapter(mContext);
+        ElectronicFileAdapter adapter = new ElectronicFileAdapter(mContext);
         holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3));
         holder.getBinding().rvImage.setAdapter(adapter);
-        String url = mDataList.get(position).getUrl();
-        if (url == null||url.isEmpty()){
-            return;
-        }
-        List<String> list;
-        if (url.contains(",")){
-            String[] split = url.split(",");
-            list = new ArrayList<>(Arrays.asList(split));
-        }else {
-            list = new ArrayList<>();
-            list.add(url);
-        }
-        adapter.setData(list);
+        adapter.setData(Utils.splitString2List(mDataList.get(position).getUrl(),","));
+
+
     }
 
     public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemHundredWishBinding> {
-        private boolean isExpended;
 
         public ViewHolder(ItemHundredWishBinding binding) {
             super(binding);
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/ImageRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/ImageRvAdapter.java
index 62459b4..0c510e7 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/ImageRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/ImageRvAdapter.java
@@ -1,34 +1,30 @@
 package com.application.zhangshi_app_android.adapter;
 
 import android.content.Context;
-import android.media.Image;
 import android.view.View;
 
 import com.android.app_base.base.adapter.BaseRVAdapter;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
 import com.application.zhangshi_app_android.databinding.ItemImageBinding;
-import com.application.zhangshi_app_android.ui.function.CreateFamilyProjectActivityViewModel;
+import com.application.zhangshi_app_android.ui.function.FamilyMemorabiliaDetailActivityViewModel;
 
 import java.util.List;
 
 /**
  * @author Ljj
  * @date 2023.04.01. 22:42
- * @desc
+ * @desc 鍚勮鎯匒ctivity閲岀殑鐢靛瓙鏂囦欢 Adapter
  */
 public class ImageRvAdapter extends BaseRVAdapter<String, ItemImageBinding, BaseRVAdapter.BaseViewHolder<ItemImageBinding>> {
 
-    private boolean isEdited = false;
-    private CreateFamilyProjectActivityViewModel viewModel;
+    private boolean isEdited = false;//鏄惁鏄剧ず鍥炬爣,true 鏄剧ず鍑哄浘鏍囷紝false 闅愯棌鍥炬爣 (鍥炬爣涓哄垹闄ゆ椂鍏ㄩ儴鏄剧ず锛屽浘鏍囦负閫夋嫨鏃跺彧鏄剧ず閫変腑鐨勯偅涓�涓�)
+    private boolean isSelected = false;//鏄惁鍙�夋嫨,true 涓� 閫夋嫨鍥炬爣锛宖alse 涓哄垹闄ゅ浘鏍囷紝
+    private String selectPosition;//閫変腑鐨勪綅缃�
     public ImageRvAdapter(Context context) {
         super(context);
     }
 
-    public ImageRvAdapter(Context context, CreateFamilyProjectActivityViewModel viewModel) {
-        super(context);
-        this.viewModel = viewModel;
-    }
     @Override
     protected int getLayoutId() {
         return R.layout.item_image;
@@ -42,15 +38,16 @@
         } else {
             holder.getBinding().ivDelete.setVisibility(View.GONE);
         }
-        holder.getBinding().ivDelete.setOnClickListener(v -> {
-            FamilyMemorabiliaBean bean = viewModel.getBeanMutableLiveData().getValue();
-            if (bean!=null){
-                List<String> list = bean.getUrlList();
-                list.remove(position);
-                bean.setUrlList(list);
-                viewModel.getBeanMutableLiveData().postValue(bean);
+        if (isSelected) {
+            holder.getBinding().ivDelete.setBackgroundResource(R.drawable.ic_image_select);
+            if (selectPosition.equals(getItem(position))){
+                holder.getBinding().ivDelete.setVisibility(View.VISIBLE);
+            } else {
+                holder.getBinding().ivDelete.setVisibility(View.GONE);
             }
-        });
+        } else {
+            holder.getBinding().ivDelete.setBackgroundResource(R.drawable.ic_image_delete);
+        }
     }
 
     @Override
@@ -63,7 +60,17 @@
     }
 
     public void setIsEdited(boolean edited) {
-        isEdited = edited;
+        this.isEdited = edited;
         notifyItemRangeChanged(0,getItemCount());
     }
+
+    public void setIsSelected(boolean isSelected) {
+        this.isSelected = isSelected;
+        notifyItemRangeChanged(0,getItemCount());
+    }
+    public void setSelectPosition(String selectPosition) {
+        this.selectPosition = selectPosition;
+        notifyItemRangeChanged(0,getItemCount());
+    }
+
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/IncomeAndExpensesRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/IncomeAndExpensesRvAdapter.java
index ce73bca..de5be0c 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/IncomeAndExpensesRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/IncomeAndExpensesRvAdapter.java
@@ -5,23 +5,35 @@
 import android.view.View;
 import android.view.animation.Animation;
 import android.view.animation.Transformation;
+import android.widget.CompoundButton;
 import android.widget.FrameLayout;
 
 import androidx.recyclerview.widget.GridLayoutManager;
 
+import com.android.app_base.base.BaseConfig;
 import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.CleanStorageBean;
 import com.application.zhangshi_app_android.bean.IncomeAndExpensesBean;
+import com.application.zhangshi_app_android.bean.LittleDoctorBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemCleanStorageBinding;
 import com.application.zhangshi_app_android.databinding.ItemIncomeAndExpensesBinding;
 import com.application.zhangshi_app_android.ui.function.CleanStorageDetailActivity;
+import com.application.zhangshi_app_android.ui.function.IncomeAndExpensesActivityViewModel;
 import com.application.zhangshi_app_android.ui.function.IncomeAndExpensesDetailActivity;
+import com.application.zhangshi_app_android.ui.function.LittleDoctorActivityViewModel;
+import com.application.zhangshi_app_android.ui.function.LittleDoctorDetailActivity;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Ljj
@@ -29,9 +41,15 @@
  * @desc
  */
 public class IncomeAndExpensesRvAdapter extends BaseRVAdapter<IncomeAndExpensesBean, ItemIncomeAndExpensesBinding, IncomeAndExpensesRvAdapter.ViewHolder> {
-    public IncomeAndExpensesRvAdapter(Context context) {
+
+    private IncomeAndExpensesActivityViewModel viewModel;
+    private final Map<IncomeAndExpensesBean, Boolean> expendMap = new HashMap<>();
+    private boolean isCheckable;
+    public IncomeAndExpensesRvAdapter(Context context, IncomeAndExpensesActivityViewModel viewModel) {
         super(context);
+        this.viewModel = viewModel;
     }
+
 
     @Override
     protected int getLayoutId() {
@@ -51,82 +69,109 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
+        if (isCheckable){
+            holder.getBinding().checkbox.setVisibility(View.VISIBLE);
+            holder.getBinding().checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+                @Override
+                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                    if (viewModel.getCheckListLiveData().getValue() == null){
+                        viewModel.getCheckListLiveData().setValue(new ArrayList<>());
+                    }
+                    List<IncomeAndExpensesBean> list = new ArrayList<>(viewModel.getCheckListLiveData().getValue());
+                    if (isChecked){
+                        if (!list.contains(mDataList.get(position))){
+                            list.add(mDataList.get(position));
+                        }
+                    }else{
+                        list.remove(mDataList.get(position));
+                    }
+                    viewModel.getCheckListLiveData().setValue(list);
+                }
+            });
+            holder.getBinding().checkbox.setChecked(viewModel.getCheckListLiveData().getValue().contains(mDataList.get(position)));
+        }else{
+            holder.getBinding().checkbox.setVisibility(View.GONE);
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
                 }
             }
         });
         holder.getBinding().layoutContent.setOnClickListener(v -> {
             AppManager.getAppManager().startActivity(
                     new Intent(getRecyclerView().getContext(), IncomeAndExpensesDetailActivity.class)
+                            .putExtra(BaseConfig.EXTRA_TYPE,0)
                             .putExtra("bean",mDataList.get(position)));
         });
 
-        ImageRvAdapter adapter = new ImageRvAdapter(mContext);
+        holder.getBinding().layoutModify.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(
+                        new Intent(getRecyclerView().getContext(), IncomeAndExpensesDetailActivity.class)
+                                .putExtra(BaseConfig.EXTRA_TYPE,2)
+                                .putExtra("bean",mDataList.get(position)));
+            }
+        });
+        holder.getBinding().layoutDelete.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                new UIDialog.Builder(mContext)
+                        .setTitle("鎮ㄧ‘瀹氳鍒犻櫎璇ラ」鐩悧")
+                        .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                        .setConfirm("纭畾")
+                        .setCancel("鍙栨秷")
+                        .setListener(new UIDialog.OnListener() {
+                            @Override
+                            public void onConfirm(BaseDialog dialog) {
+                                viewModel.deleteItem(mDataList.get(position));
+                            }
+                        })
+                        .show();
+            }
+        });
+
+        ElectronicFileAdapter adapter = new ElectronicFileAdapter(mContext);
         holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3));
         holder.getBinding().rvImage.setAdapter(adapter);
-        String url = mDataList.get(position).getUrl();
-        if (url == null||url.isEmpty()){
-            return;
-        }
-        List<String> list;
-        if (url.contains(",")){
-            String[] split = url.split(",");
-            list = new ArrayList<>(Arrays.asList(split));
-        }else {
-            list = new ArrayList<>();
-            list.add(url);
-        }
-        adapter.setData(list);
-    }
+        adapter.setData(Utils.splitString2List(mDataList.get(position).getUrl(),","));
 
+    }
+    public void setCheckable(boolean b) {
+        isCheckable = b;
+        notifyDataSetChanged();
+    }
     public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemIncomeAndExpensesBinding> {
-        private boolean isExpended;
 
         public ViewHolder(ItemIncomeAndExpensesBinding binding) {
             super(binding);
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/LittleDoctorRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/LittleDoctorRvAdapter.java
index 24e7026..9a2d6b3 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/LittleDoctorRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/LittleDoctorRvAdapter.java
@@ -3,35 +3,45 @@
 import android.content.Context;
 import android.content.Intent;
 import android.view.View;
-import android.view.animation.Animation;
-import android.view.animation.Transformation;
+import android.widget.CompoundButton;
 import android.widget.FrameLayout;
 
 import androidx.recyclerview.widget.GridLayoutManager;
 
+import com.android.app_base.base.BaseConfig;
 import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.LittleDoctorBean;
-import com.application.zhangshi_app_android.databinding.ItemHonorCollectionBinding;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemLittleDoctorBinding;
-import com.application.zhangshi_app_android.ui.function.HonorCollectionDetailActivity;
+import com.application.zhangshi_app_android.ui.function.FamilyMemorabiliaDetailActivity;
+import com.application.zhangshi_app_android.ui.function.LittleDoctorActivityViewModel;
 import com.application.zhangshi_app_android.ui.function.LittleDoctorDetailActivity;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Ljj
  * @date 2023.04.15. 15:06
- * @desc
+ * @desc 灏忓尰鐢� recyclerView 鐨� adapter
  */
 public class LittleDoctorRvAdapter extends BaseRVAdapter<LittleDoctorBean, ItemLittleDoctorBinding, LittleDoctorRvAdapter.ViewHolder> {
-    public LittleDoctorRvAdapter(Context context) {
-        super(context);
-    }
+    private LittleDoctorActivityViewModel viewModel;
+    private final Map<LittleDoctorBean, Boolean> expendMap = new HashMap<>();
 
+    private boolean isCheckable;
+    public LittleDoctorRvAdapter(Context context, LittleDoctorActivityViewModel viewModel) {
+        super(context);
+        this.viewModel = viewModel;
+    }
     @Override
     protected int getLayoutId() {
         return R.layout.item_little_doctor;
@@ -45,87 +55,114 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
+        if (isCheckable){
+            holder.getBinding().checkbox.setVisibility(View.VISIBLE);
+            holder.getBinding().checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+                @Override
+                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                    if (viewModel.getCheckListLiveData().getValue() == null){
+                        viewModel.getCheckListLiveData().setValue(new ArrayList<>());
+                    }
+                    List<LittleDoctorBean> list = new ArrayList<>(viewModel.getCheckListLiveData().getValue());
+                    if (isChecked){
+                        if (!list.contains(mDataList.get(position))){
+                            list.add(mDataList.get(position));
+                        }
+                    }else{
+                        list.remove(mDataList.get(position));
+                    }
+                    viewModel.getCheckListLiveData().setValue(list);
+                }
+            });
+            holder.getBinding().checkbox.setChecked(viewModel.getCheckListLiveData().getValue().contains(mDataList.get(position)));
+        }else{
+            holder.getBinding().checkbox.setVisibility(View.GONE);
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
                 }
             }
         });
         holder.getBinding().layoutContent.setOnClickListener(v -> {
             AppManager.getAppManager().startActivity(
                     new Intent(getRecyclerView().getContext(), LittleDoctorDetailActivity.class)
+                            .putExtra(BaseConfig.EXTRA_TYPE,0)
                             .putExtra("bean",mDataList.get(position)));
         });
 
+        holder.getBinding().layoutModify.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(
+                        new Intent(getRecyclerView().getContext(), LittleDoctorDetailActivity.class)
+                                .putExtra(BaseConfig.EXTRA_TYPE,2)
+                                .putExtra("bean",mDataList.get(position)));
+            }
+        });
+        holder.getBinding().layoutDelete.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                new UIDialog.Builder(mContext)
+                        .setTitle("鎮ㄧ‘瀹氳鍒犻櫎璇ラ」鐩悧")
+                        .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                        .setConfirm("纭畾")
+                        .setCancel("鍙栨秷")
+                        .setListener(new UIDialog.OnListener() {
+                            @Override
+                            public void onConfirm(BaseDialog dialog) {
+                                viewModel.deleteItem(mDataList.get(position));
+                            }
+                        })
+                        .show();
+            }
+        });
 
-        ImageRvAdapter adapter = new ImageRvAdapter(mContext);
+        ElectronicFileAdapter adapter = new ElectronicFileAdapter(mContext);
         holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3));
         holder.getBinding().rvImage.setAdapter(adapter);
-        String url = mDataList.get(position).getUrl();
-        if (url == null||url.isEmpty()){
-            return;
-        }
-        List<String> list;
-        if (url.contains(",")){
-            String[] split = url.split(",");
-            list = new ArrayList<>(Arrays.asList(split));
-        }else {
-            list = new ArrayList<>();
-            list.add(url);
-        }
-        adapter.setData(list);
-    }
+        adapter.setData(Utils.splitString2List(mDataList.get(position).getUrl(),","));
 
+    }
+    public void setCheckable(boolean b) {
+        isCheckable = b;
+        notifyItemRangeChanged(0,getItemCount());
+    }
     @Override
     protected ViewHolder getViewHolder(ItemLittleDoctorBinding itemBind, int viewType) {
         return new ViewHolder(itemBind);
     }
 
-    public static class ViewHolder extends BaseViewHolder<ItemLittleDoctorBinding>{
+    public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemLittleDoctorBinding>{
         private boolean isExpended;
 
         public ViewHolder(ItemLittleDoctorBinding binding) {
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/MemoRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/MemoRvAdapter.java
new file mode 100644
index 0000000..419fab8
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/MemoRvAdapter.java
@@ -0,0 +1,211 @@
+package com.application.zhangshi_app_android.adapter;
+
+import android.app.Activity;
+import android.content.Context;
+import android.graphics.Color;
+import android.view.View;
+import android.widget.FrameLayout;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.MemoBean;
+import com.application.zhangshi_app_android.databinding.ItemMemoBinding;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
+import com.github.gzuliyujiang.wheelpicker.entity.DateEntity;
+import com.github.gzuliyujiang.wheelpicker.impl.UnitDateFormatter;
+import com.github.gzuliyujiang.wheelpicker.widget.DateWheelLayout;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.06.12. 13:08
+ * @desc
+ */
+public class MemoRvAdapter extends BaseRVAdapter<MemoBean,ItemMemoBinding,BaseRVAdapter.BaseViewHolder<ItemMemoBinding>> {
+    private final Map<MemoBean, Boolean> expendMap = new HashMap<>();
+    private boolean isEdited = false;
+    private List<MemoBean> deleteList;
+    private List<MemoBean> addList;
+    private List<MemoBean> updateList;
+    public MemoRvAdapter(Context context) {
+        super(context);
+    }
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.item_memo;
+    }
+
+    @Override
+    protected void onBind(BaseViewHolder<ItemMemoBinding> holder, int position) {
+        MemoBean item = getItem(position);
+        holder.getBinding().setBean(item);
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
+        holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+                    int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
+                    int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
+                }else{
+                    final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
+                    holder.getBinding().etContent.setText(item.getContent());
+                    int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(view.getWidth(), View.MeasureSpec.EXACTLY);
+                    int heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
+                    holder.getBinding().cardView.measure(widthMeasureSpec, heightMeasureSpec);
+                    int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
+                }
+            }
+        });
+        if (isEdited) {
+            holder.getBinding().ivDelete.setVisibility(View.VISIBLE);
+            holder.getBinding().etContent.setEnabled(true);
+            holder.getBinding().viewLine.setVisibility(View.VISIBLE);
+            holder.getBinding().tvDate.setClickable(true);
+            holder.getBinding().ivDelete.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View view) {
+                    new UIDialog.Builder(mContext)
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎椤圭洰鍚�")
+                            .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                            .setConfirm("纭畾")
+                            .setCancel("鍙栨秷")
+                            .setListener(new UIDialog.OnListener() {
+                                @Override
+                                public void onConfirm(BaseDialog dialog) {
+                                    removeItem(item);
+                                    if (deleteList == null) {
+                                        deleteList = new ArrayList<>();
+                                    }
+                                    deleteList.add(item);
+                                }
+                            })
+                            .show();
+                }
+            });
+            holder.getBinding().tvDate.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View view) {
+                    DatePicker datePicker = getDatePicker();
+                    datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                        @Override
+                        public void onDatePicked(int year, int month, int day) {
+                            holder.getBinding().tvDate.setText(String.format(Locale.CHINA,"%d-%02d-%02d", year, month, day));
+                        }
+                    });
+                    datePicker.show();
+                }
+            });
+        } else {
+            holder.getBinding().ivDelete.setVisibility(View.GONE);
+            holder.getBinding().etContent.setEnabled(false);
+            holder.getBinding().viewLine.setVisibility(View.GONE);
+            holder.getBinding().tvDate.setClickable(false);
+        }
+    }
+
+    @Override
+    protected BaseViewHolder<ItemMemoBinding> getViewHolder(ItemMemoBinding itemBind, int viewType) {
+        return new BaseViewHolder<ItemMemoBinding>(itemBind);
+    }
+
+    public void setFold(boolean isFold,int position){
+        expendMap.put(getItem(position),isFold);
+        notifyItemChanged(position);
+    }
+    public List<MemoBean> getDeleteList() {
+        return deleteList;
+    }
+
+    public List<MemoBean> getAddList() {
+        return addList;
+    }
+
+    public List<MemoBean> getUpdateList() {
+        return updateList;
+    }
+
+    public void setEdited(boolean edited) {
+        isEdited = edited;
+        notifyDataSetChanged();
+    }
+
+    @Override
+    public void addItem(int position, @NonNull MemoBean item) {
+        super.addItem(position, item);
+        if (addList == null) {
+            addList = new ArrayList<>();
+        }
+        addList.add(item);
+    }
+
+    @Override
+    public void setData(@Nullable List<MemoBean> data) {
+        super.setData(data);
+        for (MemoBean datum : data) {
+            if (updateList == null) {
+                updateList = new ArrayList<>();
+            }
+            updateList.add(datum);
+        }
+    }
+
+    private DatePicker getDatePicker(){
+        com.github.gzuliyujiang.wheelpicker.DatePicker datePicker = new DatePicker((Activity) mContext);
+        DateWheelLayout wheelLayout = datePicker.getWheelLayout();
+        wheelLayout.getMonthWheelView().setCurtainCorner(0);//鑳屾櫙鏃犲渾瑙�
+        wheelLayout.getDayWheelView().setCurtainCorner(5);//鑳屾櫙鍙宠竟鏈夊渾瑙�
+        wheelLayout.getYearWheelView().setCurtainCorner(4);//鑳屾櫙宸﹁竟鏈夊渾瑙�
+        wheelLayout.setDateFormatter(new UnitDateFormatter());
+        wheelLayout.setPadding(50, 0, 50, 0);
+        wheelLayout.setItemSpace(ScreenSizeUtils.dip2px(mContext, 20));
+        wheelLayout.setCurtainEnabled(true);
+        wheelLayout.setCurtainColor(Color.parseColor("#4D2F63F8"));
+        wheelLayout.setCurtainRadius(ScreenSizeUtils.dip2px(mContext,4));
+        wheelLayout.setSelectedTextColor(Color.parseColor("#FF2F63F8"));
+        wheelLayout.setTextColor(Color.parseColor("#FF999999"));
+        wheelLayout.setIndicatorEnabled(false);
+        //鏃ユ湡鍙�夎寖鍥�
+        wheelLayout.setRange(DateEntity.target(1900, 1, 1), DateEntity.target(2500, 12, 31),DateEntity.target(Calendar.getInstance()));
+        datePicker.getWheelLayout().setResetWhenLinkage(false);
+        return datePicker;
+    }
+
+
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/OldSpouseRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/OldSpouseRvAdapter.java
new file mode 100644
index 0000000..0941453
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/OldSpouseRvAdapter.java
@@ -0,0 +1,36 @@
+package com.application.zhangshi_app_android.adapter;
+
+import android.content.Context;
+
+import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.MarriageInfoBean;
+import com.application.zhangshi_app_android.databinding.ItemConsumeRecordBinding;
+import com.application.zhangshi_app_android.databinding.ItemOldSpouseBinding;
+
+/**
+ * @author Ljj
+ * @date 2023.05.23. 19:02
+ * @desc 涓汉濠氬Щ閲� 鍓嶄换 鍒楄〃Adapter
+ */
+public class OldSpouseRvAdapter extends BaseRVAdapter<MarriageInfoBean.OldSpouseBean, ItemOldSpouseBinding, BaseRVAdapter.BaseViewHolder<ItemOldSpouseBinding>> {
+    public OldSpouseRvAdapter(Context context) {
+        super(context);
+    }
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.item_old_spouse;
+    }
+
+    @Override
+    protected void onBind(BaseViewHolder<ItemOldSpouseBinding> holder, int position) {
+        holder.getBinding().setBean(getItem(position));
+    }
+
+
+    @Override
+    protected BaseViewHolder<ItemOldSpouseBinding> getViewHolder(ItemOldSpouseBinding itemBind, int viewType) {
+        return new BaseViewHolder<>(itemBind);
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/PersonalNotepadRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/PersonalNotepadRvAdapter.java
index 2aa6439..629d4f3 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/PersonalNotepadRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/PersonalNotepadRvAdapter.java
@@ -3,22 +3,28 @@
 import android.content.Context;
 import android.content.Intent;
 import android.view.View;
-import android.view.animation.Animation;
-import android.view.animation.Transformation;
+import android.widget.CompoundButton;
 import android.widget.FrameLayout;
 
 import androidx.recyclerview.widget.GridLayoutManager;
 
+import com.android.app_base.base.BaseConfig;
 import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.PersonalNotepadBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemPersonalNotepadBinding;
+import com.application.zhangshi_app_android.ui.function.PersonalNotepadActivityViewModel;
 import com.application.zhangshi_app_android.ui.function.PersonalNotepadDetailActivity;
 
 import java.util.ArrayList;
-import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Ljj
@@ -26,8 +32,13 @@
  * @desc
  */
 public class PersonalNotepadRvAdapter  extends BaseRVAdapter<PersonalNotepadBean, ItemPersonalNotepadBinding, PersonalNotepadRvAdapter.ViewHolder> {
-    public PersonalNotepadRvAdapter(Context context) {
+    private PersonalNotepadActivityViewModel viewModel;
+    private final Map<PersonalNotepadBean, Boolean> expendMap = new HashMap<>();
+
+    private boolean isCheckable;
+    public PersonalNotepadRvAdapter(Context context, PersonalNotepadActivityViewModel viewModel) {
         super(context);
+        this.viewModel = viewModel;
     }
 
     @Override
@@ -48,82 +59,108 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
+        if (isCheckable){
+            holder.getBinding().checkbox.setVisibility(View.VISIBLE);
+            holder.getBinding().checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+                @Override
+                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                    if (viewModel.getCheckListLiveData().getValue() == null){
+                        viewModel.getCheckListLiveData().setValue(new ArrayList<>());
+                    }
+                    List<PersonalNotepadBean> list = new ArrayList<>(viewModel.getCheckListLiveData().getValue());
+                    if (isChecked){
+                        if (!list.contains(mDataList.get(position))){
+                            list.add(mDataList.get(position));
+                        }
+                    }else{
+                        list.remove(mDataList.get(position));
+                    }
+                    viewModel.getCheckListLiveData().setValue(list);
+                }
+            });
+            holder.getBinding().checkbox.setChecked(viewModel.getCheckListLiveData().getValue().contains(mDataList.get(position)));
+        }else{
+            holder.getBinding().checkbox.setVisibility(View.GONE);
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
                 }
             }
         });
         holder.getBinding().layoutContent.setOnClickListener(v -> {
             AppManager.getAppManager().startActivity(
                     new Intent(getRecyclerView().getContext(), PersonalNotepadDetailActivity.class)
+                            .putExtra(BaseConfig.EXTRA_TYPE,0)
                             .putExtra("bean",mDataList.get(position)));
         });
 
-        ImageRvAdapter adapter = new ImageRvAdapter(mContext);
+        holder.getBinding().layoutModify.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(
+                        new Intent(getRecyclerView().getContext(), PersonalNotepadDetailActivity.class)
+                                .putExtra(BaseConfig.EXTRA_TYPE,2)
+                                .putExtra("bean",mDataList.get(position)));
+            }
+        });
+        holder.getBinding().layoutDelete.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                new UIDialog.Builder(mContext)
+                        .setTitle("鎮ㄧ‘瀹氳鍒犻櫎璇ラ」鐩悧")
+                        .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                        .setConfirm("纭畾")
+                        .setCancel("鍙栨秷")
+                        .setListener(new UIDialog.OnListener() {
+                            @Override
+                            public void onConfirm(BaseDialog dialog) {
+                                viewModel.deleteItem(mDataList.get(position));
+                            }
+                        })
+                        .show();
+            }
+        });
+
+        ElectronicFileAdapter adapter = new ElectronicFileAdapter(mContext);
         holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3));
         holder.getBinding().rvImage.setAdapter(adapter);
-        String url = mDataList.get(position).getUrl();
-        if (url == null||url.isEmpty()){
-            return;
-        }
-        List<String> list;
-        if (url.contains(",")){
-            String[] split = url.split(",");
-            list = new ArrayList<>(Arrays.asList(split));
-        }else {
-            list = new ArrayList<>();
-            list.add(url);
-        }
-        adapter.setData(list);
+        adapter.setData(Utils.splitString2List(mDataList.get(position).getUrl(),","));
     }
-
+    public void setCheckable(boolean b) {
+        isCheckable = b;
+        notifyDataSetChanged();
+    }
     public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemPersonalNotepadBinding> {
-        private boolean isExpended;
 
         public ViewHolder(ItemPersonalNotepadBinding binding) {
             super(binding);
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/PetImageRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/PetImageRvAdapter.java
index ecbaf30..fae77e1 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/PetImageRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/PetImageRvAdapter.java
@@ -32,8 +32,7 @@
             @Override
             public void onClick(View v) {
                 BigImageDialog.Builder builder = new BigImageDialog.Builder(mContext);
-//                builder.setBigImage(mDataList.get(position));
-                builder.setBigImage(R.drawable.img_sakura);
+                builder.setBigImage(mDataList.get(position));
                 builder.show();
             }
         });
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/PetMemoRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/PetMemoRvAdapter.java
index 2957a4a..1ba24b5 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/PetMemoRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/PetMemoRvAdapter.java
@@ -11,15 +11,20 @@
 
 import com.android.app_base.base.adapter.BaseRVAdapter;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.PetMemoBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemPetMemoBinding;
 import com.application.zhangshi_app_android.ui.function.CleanStorageDetailActivity;
+import com.application.zhangshi_app_android.ui.function.HundredWishDetailActivity;
 import com.application.zhangshi_app_android.ui.function.PetMemoDetailActivity;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Ljj
@@ -27,6 +32,8 @@
  * @desc
  */
 public class PetMemoRvAdapter extends BaseRVAdapter<PetMemoBean, ItemPetMemoBinding, PetMemoRvAdapter.ViewHolder> {
+    private final Map<PetMemoBean, Boolean> expendMap = new HashMap<>();
+
     public PetMemoRvAdapter(Context context) {
         super(context);
     }
@@ -49,53 +56,38 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
                 }
             }
         });
@@ -104,29 +96,16 @@
                     new Intent(getRecyclerView().getContext(), PetMemoDetailActivity.class)
                             .putExtra("bean",mDataList.get(position)));
         });
-
-        ImageRvAdapter adapter = new ImageRvAdapter(mContext);
+        ElectronicFileAdapter adapter = new ElectronicFileAdapter(mContext);
         holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3));
         holder.getBinding().rvImage.setAdapter(adapter);
-        String url = mDataList.get(position).getUrl();
-        if (url == null||url.isEmpty()){
-            return;
-        }
-        List<String> list;
-        if (url.contains(",")){
-            String[] split = url.split(",");
-            list = new ArrayList<>(Arrays.asList(split));
-        }else {
-            list = new ArrayList<>();
-            list.add(url);
-        }
-        adapter.setData(list);
+        adapter.setData(Utils.splitString2List(mDataList.get(position).getUrl(),","));
+
+
 
     }
 
     public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemPetMemoBinding> {
-        private boolean isExpended;
-
         public ViewHolder(ItemPetMemoBinding binding) {
             super(binding);
         }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/PetRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/PetRvAdapter.java
new file mode 100644
index 0000000..0985e7b
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/PetRvAdapter.java
@@ -0,0 +1,51 @@
+package com.application.zhangshi_app_android.adapter;
+
+import android.content.Context;
+import android.content.Intent;
+
+import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.manager.AppManager;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.PetBean;
+import com.application.zhangshi_app_android.databinding.ItemPetBinding;
+import com.application.zhangshi_app_android.ui.function.FamilyAssetsDetailActivity;
+import com.application.zhangshi_app_android.ui.function.PetActivity;
+import com.application.zhangshi_app_android.ui.function.PetDetailActivity;
+
+/**
+ * @author Ljj
+ * @date 2023.05.22. 23:04
+ * @desc
+ */
+public class PetRvAdapter extends BaseRVAdapter<PetBean, ItemPetBinding,BaseRVAdapter.BaseViewHolder<ItemPetBinding>> {
+
+
+    public PetRvAdapter(Context context) {
+        super(context);
+    }
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.item_pet;
+    }
+
+    @Override
+    protected void onBind(BaseViewHolder<ItemPetBinding> holder, int position) {
+        holder.getBinding().setBean(mDataList.get(position));
+        if (position % 2 != 0){
+            holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue));
+        }else {
+            holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
+        }
+        holder.getBinding().layoutTitle.setOnClickListener(v -> {
+            AppManager.getAppManager().startActivity(
+                    new Intent(mContext, PetDetailActivity.class)
+                            .putExtra("bean",mDataList.get(position)));
+        });
+    }
+
+    @Override
+    protected BaseViewHolder<ItemPetBinding> getViewHolder(ItemPetBinding itemBind, int viewType) {
+        return new BaseViewHolder<ItemPetBinding>(itemBind);
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/PrivacyRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/PrivacyRvAdapter.java
index bcfc0e9..3b6a2c4 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/PrivacyRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/PrivacyRvAdapter.java
@@ -11,14 +11,18 @@
 
 import com.android.app_base.base.adapter.BaseRVAdapter;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.PrivacyBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemPrivacyBinding;
 import com.application.zhangshi_app_android.ui.function.PrivacyDetailActivity;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Ljj
@@ -26,6 +30,8 @@
  * @desc
  */
 public class PrivacyRvAdapter extends BaseRVAdapter<PrivacyBean, ItemPrivacyBinding, PrivacyRvAdapter.ViewHolder> {
+    private final Map<PrivacyBean, Boolean> expendMap = new HashMap<>();
+
     public PrivacyRvAdapter(Context context) {
         super(context);
     }
@@ -48,53 +54,38 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
                 }
             }
         });
@@ -104,27 +95,14 @@
                             .putExtra("bean",mDataList.get(position)));
         });
 
-        ImageRvAdapter adapter = new ImageRvAdapter(mContext);
+        ElectronicFileAdapter adapter = new ElectronicFileAdapter(mContext);
         holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3));
         holder.getBinding().rvImage.setAdapter(adapter);
-        String url = mDataList.get(position).getUrl();
-        if (url == null||url.isEmpty()){
-            return;
-        }
-        List<String> list;
-        if (url.contains(",")){
-            String[] split = url.split(",");
-            list = new ArrayList<>(Arrays.asList(split));
-        }else {
-            list = new ArrayList<>();
-            list.add(url);
-        }
-        adapter.setData(list);
+        adapter.setData(Utils.splitString2List(mDataList.get(position).getUrl(),","));
+
     }
 
     public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemPrivacyBinding> {
-        private boolean isExpended;
-
         public ViewHolder(ItemPrivacyBinding binding) {
             super(binding);
         }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/PropertyRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/PropertyRvAdapter.java
index 38c457d..6f38389 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/PropertyRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/PropertyRvAdapter.java
@@ -11,16 +11,21 @@
 
 import com.android.app_base.base.adapter.BaseRVAdapter;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.PropertyBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ItemCleanStorageBinding;
 import com.application.zhangshi_app_android.databinding.ItemPropertyBinding;
 import com.application.zhangshi_app_android.ui.function.CleanStorageDetailActivity;
+import com.application.zhangshi_app_android.ui.function.FamilyAssetsDetailActivity;
 import com.application.zhangshi_app_android.ui.function.PropertyDetailActivity;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Ljj
@@ -28,6 +33,8 @@
  * @desc 涓汉璐骇 Adapter
  */
 public class PropertyRvAdapter extends BaseRVAdapter<PropertyBean, ItemPropertyBinding, PropertyRvAdapter.ViewHolder> {
+    private final Map<PropertyBean, Boolean> expendMap = new HashMap<>();
+
     public PropertyRvAdapter(Context context) {
         super(context);
     }
@@ -50,53 +57,38 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
                 }
             }
         });
@@ -105,23 +97,11 @@
                     new Intent(getRecyclerView().getContext(), PropertyDetailActivity.class)
                             .putExtra("bean",mDataList.get(position)));
         });
-
-        ImageRvAdapter adapter = new ImageRvAdapter(mContext);
+        ElectronicFileAdapter adapter = new ElectronicFileAdapter(mContext);
         holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3));
         holder.getBinding().rvImage.setAdapter(adapter);
-        String url = mDataList.get(position).getUrl();
-        if (url == null||url.isEmpty()){
-            return;
-        }
-        List<String> list;
-        if (url.contains(",")){
-            String[] split = url.split(",");
-            list = new ArrayList<>(Arrays.asList(split));
-        }else {
-            list = new ArrayList<>();
-            list.add(url);
-        }
-        adapter.setData(list);
+        adapter.setData(Utils.splitString2List(mDataList.get(position).getUrl(),","));
+
     }
 
     public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemPropertyBinding> {
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/TourismExperienceRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/TourismExperienceRvAdapter.java
index aabf71d..119ff3c 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/TourismExperienceRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/TourismExperienceRvAdapter.java
@@ -5,22 +5,34 @@
 import android.view.View;
 import android.view.animation.Animation;
 import android.view.animation.Transformation;
+import android.widget.CompoundButton;
 import android.widget.FrameLayout;
 
 import androidx.recyclerview.widget.GridLayoutManager;
 
+import com.android.app_base.base.BaseConfig;
 import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.IncomeAndExpensesBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.bean.TourismExperienceBean;
 import com.application.zhangshi_app_android.databinding.ItemPropertyBinding;
 import com.application.zhangshi_app_android.databinding.ItemTourismExperienceBinding;
+import com.application.zhangshi_app_android.ui.function.IncomeAndExpensesActivityViewModel;
+import com.application.zhangshi_app_android.ui.function.IncomeAndExpensesDetailActivity;
 import com.application.zhangshi_app_android.ui.function.PropertyDetailActivity;
+import com.application.zhangshi_app_android.ui.function.TourismExperienceActivityViewModel;
 import com.application.zhangshi_app_android.ui.function.TourismExperienceDetailActivity;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Ljj
@@ -28,10 +40,15 @@
  * @desc
  */
 public class TourismExperienceRvAdapter extends BaseRVAdapter<TourismExperienceBean, ItemTourismExperienceBinding, TourismExperienceRvAdapter.ViewHolder> {
-    public TourismExperienceRvAdapter(Context context) {
-        super(context);
-    }
+    private final Map<TourismExperienceBean, Boolean> expendMap = new HashMap<>();
+    private TourismExperienceActivityViewModel viewModel;
+    private boolean isCheckable;
 
+
+    public TourismExperienceRvAdapter(Context context, TourismExperienceActivityViewModel viewModel) {
+        super(context);
+        this.viewModel = viewModel;
+    }
     @Override
     protected int getLayoutId() {
         return R.layout.item_tourism_experience;
@@ -50,53 +67,61 @@
         } else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
+        if (isCheckable){
+            holder.getBinding().checkbox.setVisibility(View.VISIBLE);
+            holder.getBinding().checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+                @Override
+                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                    if (viewModel.getCheckListLiveData().getValue() == null){
+                        viewModel.getCheckListLiveData().setValue(new ArrayList<>());
+                    }
+                    List<TourismExperienceBean> list = new ArrayList<>(viewModel.getCheckListLiveData().getValue());
+                    if (isChecked){
+                        if (!list.contains(mDataList.get(position))){
+                            list.add(mDataList.get(position));
+                        }
+                    }else{
+                        list.remove(mDataList.get(position));
+                    }
+                    viewModel.getCheckListLiveData().setValue(list);
+                }
+            });
+            holder.getBinding().checkbox.setChecked(viewModel.getCheckListLiveData().getValue().contains(mDataList.get(position)));
+        }else{
+            holder.getBinding().checkbox.setVisibility(View.GONE);
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended) {
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1) {
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
-                } else {
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
+                }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1) {
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
                 }
             }
         });
@@ -105,28 +130,44 @@
                     new Intent(getRecyclerView().getContext(), TourismExperienceDetailActivity.class)
                             .putExtra("bean", mDataList.get(position)));
         });
+        holder.getBinding().layoutModify.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(
+                        new Intent(getRecyclerView().getContext(), IncomeAndExpensesDetailActivity.class)
+                                .putExtra(BaseConfig.EXTRA_TYPE,2)
+                                .putExtra("bean",mDataList.get(position)));
+            }
+        });
+        holder.getBinding().layoutDelete.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                new UIDialog.Builder(mContext)
+                        .setTitle("鎮ㄧ‘瀹氳鍒犻櫎璇ラ」鐩悧")
+                        .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                        .setConfirm("纭畾")
+                        .setCancel("鍙栨秷")
+                        .setListener(new UIDialog.OnListener() {
+                            @Override
+                            public void onConfirm(BaseDialog dialog) {
+                                viewModel.deleteItem(mDataList.get(position));
+                            }
+                        })
+                        .show();
+            }
+        });
 
         ImageRvAdapter adapter = new ImageRvAdapter(mContext);
         holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext, 3));
         holder.getBinding().rvImage.setAdapter(adapter);
-        String url = mDataList.get(position).getUrl();
-        if (url == null || url.isEmpty()) {
-            return;
-        }
-        List<String> list;
-        if (url.contains(",")) {
-            String[] split = url.split(",");
-            list = new ArrayList<>(Arrays.asList(split));
-        } else {
-            list = new ArrayList<>();
-            list.add(url);
-        }
-        adapter.setData(list);
+        adapter.setData(Utils.splitString2List(mDataList.get(position).getUrl(),","));
+
     }
-
+    public void setCheckable(boolean b) {
+        isCheckable = b;
+        notifyDataSetChanged();
+    }
     public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemTourismExperienceBinding> {
-        private boolean isExpended;
-
         public ViewHolder(ItemTourismExperienceBinding binding) {
             super(binding);
         }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/TourismRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/TourismRvAdapter.java
index 6ab1686..5e1ab0c 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/TourismRvAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/TourismRvAdapter.java
@@ -3,31 +3,50 @@
 import android.content.Context;
 import android.content.Intent;
 import android.view.View;
-import android.view.animation.Animation;
-import android.view.animation.Transformation;
+import android.widget.CompoundButton;
 import android.widget.FrameLayout;
 
 
+import androidx.recyclerview.widget.GridLayoutManager;
+
+import com.android.app_base.base.BaseConfig;
 import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.DailyConsumeRecordBean;
+import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
 import com.application.zhangshi_app_android.bean.TourismBean;
+import com.application.zhangshi_app_android.databinding.ItemFamilyMemorabiliaBinding;
 import com.application.zhangshi_app_android.databinding.ItemTourismBinding;
+import com.application.zhangshi_app_android.ui.function.FamilyMemorabiliaActivityViewModel;
+import com.application.zhangshi_app_android.ui.function.FamilyMemorabiliaDetailActivity;
+import com.application.zhangshi_app_android.ui.function.TourismActivityViewModel;
 import com.application.zhangshi_app_android.ui.function.TourismDetailActivity;
 import com.application.zhangshi_app_android.ui.function.TourismExperienceActivity;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 
 /**
  * @author Ljj
  * @date 2023.04.28. 21:18
- * @desc
+ * @desc 鏃呮父缁忓巻鍒楄〃 Adapter
  */
 public class TourismRvAdapter extends BaseRVAdapter<TourismBean, ItemTourismBinding, TourismRvAdapter.ViewHolder> {
-    public TourismRvAdapter(Context context) {
-        super(context);
-    }
+    private final TourismActivityViewModel viewModel;
+    private boolean isCheckable;
+    private final Map<TourismBean, Boolean> expendMap = new HashMap<>();
 
+    public TourismRvAdapter(Context context, TourismActivityViewModel viewModel) {
+        super(context);
+        this.viewModel = viewModel;
+    }
     @Override
     protected int getLayoutId() {
         return R.layout.item_tourism;
@@ -46,76 +65,116 @@
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
+        if (!expendMap.containsKey(getItem(position))){
+            expendMap.put(getItem(position),false);
+        }
+        if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+                holder.getBinding().cardView.requestLayout();
+            });
+        }else{
+            holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+            holder.getBinding().cardView.post(() -> {
+                holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+                holder.getBinding().cardView.requestLayout();
+            });
+        }
+        if (isCheckable){
+            holder.getBinding().checkbox.setVisibility(View.VISIBLE);
+            holder.getBinding().checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+                @Override
+                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                    if (viewModel.getCheckListLiveData().getValue() == null){
+                        viewModel.getCheckListLiveData().setValue(new ArrayList<>());
+                    }
+                    List<TourismBean> list = new ArrayList<>(viewModel.getCheckListLiveData().getValue());
+                    if (isChecked){
+                        if (!list.contains(mDataList.get(position))){
+                            list.add(mDataList.get(position));
+                        }
+                    }else{
+                        list.remove(mDataList.get(position));
+                    }
+                    viewModel.getCheckListLiveData().setValue(list);
+                }
+            });
+            holder.getBinding().checkbox.setChecked(viewModel.getCheckListLiveData().getValue().contains(mDataList.get(position)));
+        }else{
+            holder.getBinding().checkbox.setVisibility(View.GONE);
+        }
         holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (holder.isExpended){
+                if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
                     int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
-                    int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = false;
+                    Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+                    expendMap.put(getItem(position),false);
                 }else{
                     final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
                     holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
                     int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
-                    int distanceToExpand = targetHeight - initialHeight;
-                    Animation a = new Animation() {
-                        @Override
-                        protected void applyTransformation(float interpolatedTime, Transformation t) {
-                            if (interpolatedTime == 1){
-                            }
-                            holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
-                            holder.getBinding().cardView.requestLayout();
-                        }
-
-                        @Override
-                        public boolean willChangeBounds() {
-                            return true;
-                        }
-                    };
-                    a.setDuration(500);
-                    holder.getBinding().cardView.startAnimation(a);
-                    holder.isExpended = true;
+                    Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+                    holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+                    expendMap.put(getItem(position),true);
                 }
             }
         });
-        holder.getBinding().layoutContent.setOnClickListener(v -> {
-            AppManager.getAppManager().startActivity(
-                    new Intent(getRecyclerView().getContext(), TourismDetailActivity.class)
-                            .putExtra("bean",mDataList.get(position)));
+        holder.itemView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(
+                        new Intent(getRecyclerView().getContext(), TourismDetailActivity.class)
+                                .putExtra(BaseConfig.EXTRA_TYPE,0)
+                                .putExtra("bean",mDataList.get(position)));
+            }
         });
-
+        holder.getBinding().layoutModify.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(
+                        new Intent(getRecyclerView().getContext(), TourismDetailActivity.class)
+                                .putExtra(BaseConfig.EXTRA_TYPE,2)
+                                .putExtra("bean",mDataList.get(position)));
+            }
+        });
+        holder.getBinding().layoutDelete.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                new UIDialog.Builder(mContext)
+                        .setTitle("鎮ㄧ‘瀹氳鍒犻櫎璇ラ」鐩悧")
+                        .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                        .setConfirm("纭畾")
+                        .setCancel("鍙栨秷")
+                        .setListener(new UIDialog.OnListener() {
+                            @Override
+                            public void onConfirm(BaseDialog dialog) {
+                                viewModel.deleteItem(mDataList.get(position));
+                            }
+                        })
+                        .show();
+            }
+        });
         holder.getBinding().tvDetail.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 AppManager.getAppManager().startActivity(
                         new Intent(getRecyclerView().getContext(), TourismExperienceActivity.class)
-                                .putExtra("bean",mDataList.get(position)));
+                                .putExtra("id",mDataList.get(position).getId()));
             }
         });
-
     }
 
-    public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemTourismBinding> {
-        private boolean isExpended;
+    public void setCheckable(boolean b) {
+        isCheckable = b;
+        notifyItemRangeChanged(0,getItemCount());
+    }
 
+
+    public static class ViewHolder extends BaseViewHolder<ItemTourismBinding>{
         public ViewHolder(ItemTourismBinding binding) {
             super(binding);
         }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/databinding/ImageViewAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/databinding/ImageViewAdapter.java
new file mode 100644
index 0000000..5bc1b5d
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/databinding/ImageViewAdapter.java
@@ -0,0 +1,78 @@
+package com.application.zhangshi_app_android.adapter.databinding;
+
+import android.graphics.drawable.Drawable;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.appcompat.content.res.AppCompatResources;
+import androidx.core.content.res.ResourcesCompat;
+import androidx.databinding.BindingAdapter;
+import androidx.databinding.InverseBindingAdapter;
+import androidx.databinding.InverseBindingListener;
+
+import com.application.zhangshi_app_android.MyApplication;
+import com.application.zhangshi_app_android.R;
+
+import java.math.BigDecimal;
+
+/**
+ * @author Ljj
+ * @date 2023.07.23. 19:19
+ * @desc
+ */
+public class ImageViewAdapter {
+
+    /**
+     * 鏍规嵁 int 鐘舵�佸�间负 imageView璁剧疆鑳屾櫙
+     * @param state 1 閫変腑 0 鏈�変腑
+     */
+    @BindingAdapter("select_state")
+    public static void setSelectState(ImageView imageView, int state) {
+        if (state == 1){
+            imageView.setBackgroundResource(R.drawable.ic_radio_button_selected);
+        }else {
+            imageView.setBackgroundResource(R.drawable.ic_radio_button_unselected);
+        }
+
+    }
+
+    /**
+     * 鏍规嵁imageView鐨勮儗鏅幏鍙栭�変腑鐘舵��
+     * @return 1 閫変腑 0 鏈�変腑
+     */
+    @InverseBindingAdapter(attribute = "select_state")
+    public static int getSelectState(ImageView imageView) {
+        Drawable drawable = AppCompatResources.getDrawable(imageView.getContext(),R.drawable.ic_radio_button_selected);
+        if (imageView.getBackground().getConstantState().equals(drawable.getConstantState())) {
+            return 1;
+        } else{
+            return 0;
+        }
+
+    }
+
+    /**
+     * 璁剧疆閫変腑鐘舵�佹敼鍙樼洃鍚�
+     */
+    @BindingAdapter("select_stateAttrChanged")
+    public static void setSelectStateAttrChanged(ImageView imageView, final InverseBindingListener listener) {
+        imageView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Drawable drawable = AppCompatResources.getDrawable(imageView.getContext(),R.drawable.ic_radio_button_selected);
+                boolean isSelect = imageView.getBackground().getConstantState().equals(drawable.getConstantState());
+                if (isSelect) {
+                    imageView.setBackgroundResource(R.drawable.ic_radio_button_unselected);
+                } else{
+                    imageView.setBackgroundResource(R.drawable.ic_radio_button_selected);
+                }
+                listener.onChange();
+            }
+        });
+        //榛樿涓�寮�濮嬩笉鍙偣鍑�
+        imageView.setClickable(false);
+    }
+
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/AnnualHealthStatusBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/AnnualHealthStatusBean.java
index c474cd2..c706f47 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/AnnualHealthStatusBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/AnnualHealthStatusBean.java
@@ -11,15 +11,15 @@
     //搴忓彿
     private int id;
     //浣撴鏃堕棿
-    private String time;
+    private String checkTime;
     //绫诲埆
     private String type;
     //灏辩梾鍖婚櫌
     private String hospital;
     //鎻愬悕
-    private String name;
+    private String title;
     //娉ㄦ剰浜嬮」
-    private String attention;
+    private String notice;
     //澶囨敞
     private String remark;
     //鐢靛瓙鏂囦欢
@@ -33,12 +33,12 @@
         this.id = id;
     }
 
-    public String getTime() {
-        return time;
+    public String getCheckTime() {
+        return checkTime;
     }
 
-    public void setTime(String time) {
-        this.time = time;
+    public void setCheckTime(String checkTime) {
+        this.checkTime = checkTime;
     }
 
     public String getType() {
@@ -57,20 +57,20 @@
         this.hospital = hospital;
     }
 
-    public String getName() {
-        return name;
+    public String getTitle() {
+        return title;
     }
 
-    public void setName(String name) {
-        this.name = name;
+    public void setTitle(String title) {
+        this.title = title;
     }
 
-    public String getAttention() {
-        return attention;
+    public String getNotice() {
+        return notice;
     }
 
-    public void setAttention(String attention) {
-        this.attention = attention;
+    public void setNotice(String notice) {
+        this.notice = notice;
     }
 
     public String getRemark() {
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/AnnualHealthStatusRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/AnnualHealthStatusRequestBean.java
new file mode 100644
index 0000000..6df6a6c
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/AnnualHealthStatusRequestBean.java
@@ -0,0 +1,72 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.07.12. 20:16
+ * @desc
+ */
+public class AnnualHealthStatusRequestBean extends PageRequestBean{
+    //棰樺悕
+    private String title;
+    //灏辩梾鍖婚櫌
+    private String hospital;
+    //绫诲埆
+    private String type;
+    //鍙戠敓鏃堕棿寮�濮�
+    private String happenStartTime;
+    //鍙戠敓鏃堕棿缁撴潫
+    private String happenEndTime;
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getHospital() {
+        return hospital;
+    }
+
+    public void setHospital(String hospital) {
+        this.hospital = hospital;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getHappenStartTime() {
+        return happenStartTime;
+    }
+
+    public void setHappenStartTime(String happenStartTime) {
+        this.happenStartTime = happenStartTime;
+    }
+
+    public String getHappenEndTime() {
+        return happenEndTime;
+    }
+
+    public void setHappenEndTime(String happenEndTime) {
+        this.happenEndTime = happenEndTime;
+    }
+
+    @Override
+    public Map<String, Object> toMap() {
+        Map<String, Object> map = super.toMap();
+        map.put("title", title==null?"":title);
+        map.put("hospital", hospital==null?"":hospital);
+        map.put("type", type==null?"":type);
+        map.put("happenStartTime", happenStartTime==null?"":happenStartTime);
+        map.put("happenEndTime", happenEndTime==null?"":happenEndTime);
+        return map;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/BannerBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/BannerBean.java
new file mode 100644
index 0000000..b3f2b48
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/BannerBean.java
@@ -0,0 +1,49 @@
+package com.application.zhangshi_app_android.bean;
+
+/**
+ * @author Ljj
+ * @date 2023.07.17. 22:03
+ * @desc 杞挱鍥� bean
+ */
+public class BannerBean {
+    //id
+    private int id;
+    //涓汉id
+    private int uid;
+    //鏂囦欢鍦板潃
+    private String url;
+    //鏂囦欢绫诲瀷 1 瑙嗛 0 鍥剧墖
+    private int flag;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public int getUid() {
+        return uid;
+    }
+
+    public void setUid(int uid) {
+        this.uid = uid;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public int getFlag() {
+        return flag;
+    }
+
+    public void setFlag(int flag) {
+        this.flag = flag;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/CertificateOfHonorBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/CertificateOfHonorBean.java
index a9fd745..4267723 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/CertificateOfHonorBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/CertificateOfHonorBean.java
@@ -8,26 +8,70 @@
  * @desc 鑽h獕璇佷功 Bean
  */
 public class CertificateOfHonorBean implements Serializable {
+    private int id;
+    //鐢ㄦ埛id
+    private String userId;
+    //绫诲埆 0.璇佷欢 1.鑽h獕  2.璧勮川
+    private int type;
     //鍚嶇О
     private String name;
-    //鏃堕棿
-    private String time;
-    //绫诲埆
-    private String type;
-    //璇佸彿
-    private String certificateNumber;
+    //璇佸彿/涓撲笟
+    private String idNo;
     //绾у埆
-    private String level;
+    private String grade;
     //鏈夋晥鏃堕棿
-    private String effectiveTime;
+    private String validityDate;
     //鑾峰緱鏃堕棿
-    private String getTime;
+    private String getDate;
     //瀛樻斁浣嶇疆
     private String location;
     //澶囨敞
     private String remark;
     //鐢靛瓙鏂囦欢
     private String url;
+    //鍒涘缓鏃堕棿
+    private String createTime;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getType() {
+        if (type == 0){
+            return "璇佷欢";
+        }else if (type == 1){
+            return "鑽h獕";
+        }else if (type == 2){
+            return "璧勮川";
+        }
+        return "";
+    }
+
+    public void setType(String type) {
+        switch (type) {
+            case "璇佷欢":
+                this.type = 0;
+                break;
+            case "鑽h獕":
+                this.type = 1;
+                break;
+            case "璧勮川":
+                this.type = 2;
+                break;
+        }
+    }
 
     public String getName() {
         return name;
@@ -37,52 +81,36 @@
         this.name = name;
     }
 
-    public String getTime() {
-        return time;
+    public String getIdNo() {
+        return idNo;
     }
 
-    public void setTime(String time) {
-        this.time = time;
+    public void setIdNo(String idNo) {
+        this.idNo = idNo;
     }
 
-    public String getType() {
-        return type;
+    public String getGrade() {
+        return grade;
     }
 
-    public void setType(String type) {
-        this.type = type;
+    public void setGrade(String grade) {
+        this.grade = grade;
     }
 
-    public String getCertificateNumber() {
-        return certificateNumber;
+    public String getValidityDate() {
+        return validityDate;
     }
 
-    public void setCertificateNumber(String certificateNumber) {
-        this.certificateNumber = certificateNumber;
+    public void setValidityDate(String validityDate) {
+        this.validityDate = validityDate;
     }
 
-    public String getLevel() {
-        return level;
+    public String getGetDate() {
+        return getDate;
     }
 
-    public void setLevel(String level) {
-        this.level = level;
-    }
-
-    public String getEffectiveTime() {
-        return effectiveTime;
-    }
-
-    public void setEffectiveTime(String effectiveTime) {
-        this.effectiveTime = effectiveTime;
-    }
-
-    public String getGetTime() {
-        return getTime;
-    }
-
-    public void setGetTime(String getTime) {
-        this.getTime = getTime;
+    public void setGetDate(String getDate) {
+        this.getDate = getDate;
     }
 
     public String getLocation() {
@@ -108,4 +136,13 @@
     public void setUrl(String url) {
         this.url = url;
     }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/CertificateOfHonorRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/CertificateOfHonorRequestBean.java
new file mode 100644
index 0000000..c4ea448
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/CertificateOfHonorRequestBean.java
@@ -0,0 +1,47 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.05.22. 20:15
+ * @desc
+ */
+public class CertificateOfHonorRequestBean extends PageRequestBean{
+    private String name;
+    private String type;
+    private String grade;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getGrade() {
+        return grade;
+    }
+
+    public void setGrade(String grade) {
+        this.grade = grade;
+    }
+
+    @Override
+    public Map<String, Object> toMap() {
+        Map<String, Object> map = super.toMap();
+        map.put("name",name==null?"":name);
+        map.put("type",type==null?"":type);
+        map.put("grade",grade==null?"":grade);
+        return map;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/CleanStorageBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/CleanStorageBean.java
index 4ee7a4f..d492e81 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/CleanStorageBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/CleanStorageBean.java
@@ -1,5 +1,8 @@
 package com.application.zhangshi_app_android.bean;
 
+import androidx.databinding.BaseObservable;
+import androidx.databinding.Bindable;
+
 import java.io.Serializable;
 
 /**
@@ -10,33 +13,27 @@
 public class CleanStorageBean implements Serializable {
     //搴忓彿
     private int id;
-    //绫诲瀷
-    private String type;
+    //绫诲瀷 0.淇濇磥 1.鏀剁撼
+    private int kind;
     //閫傜敤浜�
-    private String suitablePeople;
+    private String suitable;
     //绫诲埆
-    private String category;
+    private String type;
     //淇濇磥鏂规硶
-    private String cleanMethod;
+    private String method;
     //鏉愭枡瀛樻斁鍦�
-    private String materialStorageLocation;
+    private String place;
     //鏀剧疆鍦扮偣
-    private String placementLocation;
+    private String location;
     //澶囨敞
     private String remark;
     private String url;
-
-    public CleanStorageBean(int id, String type, String suitablePeople, String category, String cleanMethod, String materialStorageLocation, String placementLocation, String remark, String url) {
-        this.id = id;
-        this.type = type;
-        this.suitablePeople = suitablePeople;
-        this.category = category;
-        this.cleanMethod = cleanMethod;
-        this.materialStorageLocation = materialStorageLocation;
-        this.placementLocation = placementLocation;
-        this.remark = remark;
-        this.url = url;
-    }
+    //瀹跺涵id
+    private String familyId;
+    //鍒涘缓鏃堕棿
+    private String createTime;
+    //鍙戠敓鏃堕棿
+    private String happenTime;
 
     public int getId() {
         return id;
@@ -44,6 +41,30 @@
 
     public void setId(int id) {
         this.id = id;
+    }
+
+
+    public void setKind(String kind) {
+        if (kind.equals("鏀剁撼")) {
+            this.kind = 1;
+        } else{
+            this.kind = 0;
+        }
+    }
+    public String getKind() {
+        if (kind == 1) {
+            return "鏀剁撼";
+        } else {
+            return "淇濇磥";
+        }
+    }
+
+    public String getSuitable() {
+        return suitable;
+    }
+
+    public void setSuitable(String suitable) {
+        this.suitable = suitable;
     }
 
     public String getType() {
@@ -54,44 +75,28 @@
         this.type = type;
     }
 
-    public String getSuitablePeople() {
-        return suitablePeople;
+    public String getMethod() {
+        return method;
     }
 
-    public void setSuitablePeople(String suitablePeople) {
-        this.suitablePeople = suitablePeople;
+    public void setMethod(String method) {
+        this.method = method;
     }
 
-    public String getCategory() {
-        return category;
+    public String getPlace() {
+        return place;
     }
 
-    public void setCategory(String category) {
-        this.category = category;
+    public void setPlace(String place) {
+        this.place = place;
     }
 
-    public String getCleanMethod() {
-        return cleanMethod;
+    public String getLocation() {
+        return location;
     }
 
-    public void setCleanMethod(String cleanMethod) {
-        this.cleanMethod = cleanMethod;
-    }
-
-    public String getMaterialStorageLocation() {
-        return materialStorageLocation;
-    }
-
-    public void setMaterialStorageLocation(String materialStorageLocation) {
-        this.materialStorageLocation = materialStorageLocation;
-    }
-
-    public String getPlacementLocation() {
-        return placementLocation;
-    }
-
-    public void setPlacementLocation(String placementLocation) {
-        this.placementLocation = placementLocation;
+    public void setLocation(String location) {
+        this.location = location;
     }
 
     public String getRemark() {
@@ -109,4 +114,28 @@
     public void setUrl(String url) {
         this.url = url;
     }
+
+    public String getFamilyId() {
+        return familyId;
+    }
+
+    public void setFamilyId(String familyId) {
+        this.familyId = familyId;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getHappenTime() {
+        return happenTime;
+    }
+
+    public void setHappenTime(String happenTime) {
+        this.happenTime = happenTime;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/CleanStorageRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/CleanStorageRequestBean.java
new file mode 100644
index 0000000..9d9d6de
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/CleanStorageRequestBean.java
@@ -0,0 +1,107 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.05.20. 17:55
+ * @desc
+ */
+public class CleanStorageRequestBean extends PageRequestBean{
+    //搴忓彿
+    private int id = -1;
+    //绫诲瀷 0.淇濇磥 1.鏀剁撼
+    private String kind;
+    //绫诲埆
+    private String type;
+    //淇濇磥鏂规硶
+    private String method;
+    //閫傜敤浜�
+    private String suitable;
+    //鏉愭枡瀛樻斁鍦�
+    private String place;
+    //鏀剧疆鍦扮偣
+    private String location;
+    //澶囨敞
+    private String remark;
+
+
+    public String getKind() {
+        return kind;
+    }
+
+    public void setKind(String kind) {
+        this.kind = kind;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getMethod() {
+        return method;
+    }
+
+    public void setMethod(String method) {
+        this.method = method;
+    }
+
+    public String getSuitable() {
+        return suitable;
+    }
+
+    public void setSuitable(String suitable) {
+        this.suitable = suitable;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getPlace() {
+        return place;
+    }
+
+    public void setPlace(String place) {
+        this.place = place;
+    }
+
+    public String getLocation() {
+        return location;
+    }
+
+    public void setLocation(String location) {
+        this.location = location;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Map<String,Object> toMap() {
+        Map<String,Object> map = super.toMap();
+        if (id != -1) {
+            map.put("id",id);
+        }
+        map.put("kind",kind==null?"":kind);
+        map.put("type",type==null?"":type);
+        map.put("method",method==null?"":method);
+        map.put("suitable",suitable==null?"":suitable);
+        map.put("place",place==null?"":place);
+        map.put("location",location==null?"":location);
+        map.put("remark",remark==null?"":remark);
+        return map;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/ConsumeRecordBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/ConsumeRecordBean.java
index 71da392..a40c160 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/ConsumeRecordBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/ConsumeRecordBean.java
@@ -8,20 +8,53 @@
  * @desc 娑堣垂璇︾粏璁板綍
  */
 public class ConsumeRecordBean implements Serializable {
+    //id
+    private String id;
+    //瀵瑰簲鐨勬梾娓歌垂鐢ㄨ褰昳d
+    private String feeId;
+    //娑堣垂鏃堕棿
+    private String happenTime;
     //鍐呭
     private String content;
     //鎬婚噾棰�
-    private String totalMoney;
+    private double totalCost;
     //椁愯垂
-    private String mealMoney;
+    private double eat;
     //浣忓璐�
-    private String hotelMoney;
+    private double stay;
     //浜ら�氳垂
-    private String trafficMoney;
+    private double traffic;
     //璐墿
-    private String shoppingMoney;
+    private double shopping;
     //闂ㄧエ
-    private String ticketMoney;
+    private double entrance;
+    //姣忔棩閲戦
+    private double dayCost;
+
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getFeeId() {
+        return feeId;
+    }
+
+    public void setFeeId(String feeId) {
+        this.feeId = feeId;
+    }
+
+    public String getHappenTime() {
+        return happenTime;
+    }
+
+    public void setHappenTime(String happenTime) {
+        this.happenTime = happenTime;
+    }
 
     public String getContent() {
         return content;
@@ -31,51 +64,78 @@
         this.content = content;
     }
 
-    public String getTotalMoney() {
-        return totalMoney;
+    public double getTotalCost() {
+        return totalCost;
     }
 
-    public void setTotalMoney(String totalMoney) {
-        this.totalMoney = totalMoney;
+    public void setTotalCost(double totalCost) {
+        this.totalCost = totalCost;
     }
 
-    public String getMealMoney() {
-        return mealMoney;
+    public double getEat() {
+        return eat;
     }
 
-    public void setMealMoney(String mealMoney) {
-        this.mealMoney = mealMoney;
+    public void setEat(double eat) {
+        this.eat = eat;
     }
 
-    public String getHotelMoney() {
-        return hotelMoney;
+
+    public double getStay() {
+        return stay;
     }
 
-    public void setHotelMoney(String hotelMoney) {
-        this.hotelMoney = hotelMoney;
+    public void setStay(double stay) {
+        this.stay = stay;
     }
 
-    public String getTrafficMoney() {
-        return trafficMoney;
+    public void setStay(String stay) {
+        this.stay = Double.parseDouble(stay);
     }
 
-    public void setTrafficMoney(String trafficMoney) {
-        this.trafficMoney = trafficMoney;
+    public double getTraffic() {
+        return traffic;
     }
 
-    public String getShoppingMoney() {
-        return shoppingMoney;
+    public void setTraffic(double traffic) {
+        this.traffic = traffic;
     }
 
-    public void setShoppingMoney(String shoppingMoney) {
-        this.shoppingMoney = shoppingMoney;
+    public void setTraffic(String traffic) {
+        this.traffic = Double.parseDouble(traffic);
     }
 
-    public String getTicketMoney() {
-        return ticketMoney;
+    public double getShopping() {
+        return shopping;
     }
 
-    public void setTicketMoney(String ticketMoney) {
-        this.ticketMoney = ticketMoney;
+    public void setShopping(double shopping) {
+        this.shopping = shopping;
     }
+
+    public void setShopping(String shopping) {
+        this.shopping = Double.parseDouble(shopping);
+    }
+
+    public double getEntrance() {
+        return entrance;
+    }
+
+    public void setEntrance(double entrance) {
+        this.entrance = entrance;
+    }
+
+    public void setEntrance(String entrance) {
+        this.entrance = Double.parseDouble(entrance);
+    }
+
+    public double getDayCost() {
+        return dayCost;
+    }
+
+    public void setDayCost(double dayCost) {
+        this.dayCost = dayCost;
+    }
+
+
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/ContactsBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/ContactsBean.java
index 9fd9c1e..fb7b4e5 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/ContactsBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/ContactsBean.java
@@ -10,7 +10,7 @@
 public class ContactsBean {
     //灞炰簬璋佺殑閫氳褰�
     private String myName;
-
+    //鍏蜂綋閫氳褰�
     private List<ContactsDetailBean> contactsDetailBeans;
 
     public String getMyName() {
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/ContactsRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/ContactsRequestBean.java
index 268b0c6..22c33fa 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/ContactsRequestBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/ContactsRequestBean.java
@@ -8,7 +8,7 @@
  * @date 2023.05.13. 0:29
  * @desc
  */
-public class ContactsRequestBean {
+public class ContactsRequestBean extends PageRequestBean{
     //鎴愬憳濮撳悕
     private String myName;
     //绉板懠
@@ -19,60 +19,54 @@
     private String work;
     //鎵嬫満鍙风爜
     private String phone;
-    //寰俊
-    private String wx;
-    //QQ
-    private String qq;
-    //鎺ㄧ壒
-    private String twitter;
-    //鏄惁甯歌仈绯� 0 鍚� 1 鏄�
-    private int is_always;
-    //澶囨敞
-    private String remark;
-    private int pageNum = 1;
-    private int pageSize = 20;
 
-    public Map<String, Object> toMap() {
-        Map<String, Object> map = new HashMap<>();
-        if (myName == null) {
-            myName = "";
-        }
-        if (nickName == null) {
-            nickName = "";
-        }
-        if (name == null) {
-            name = "";
-        }
-        if (work == null) {
-            work = "";
-        }
-        if (phone == null) {
-            phone = "";
-        }
-        if (wx == null) {
-            wx = "";
-        }
-        if (qq == null) {
-            qq = "";
-        }
-        if (twitter == null) {
-            twitter = "";
-        }
-        if (remark == null) {
-            remark = "";
-        }
-        map.put("myName", myName);
-        map.put("nickName", nickName);
-        map.put("name", name);
-        map.put("work", work);
-        map.put("phone", phone);
-        map.put("wx", wx);
-        map.put("qq", qq);
-        map.put("twitter", twitter);
-        map.put("is_always", is_always);
-        map.put("remark", remark);
-        map.put("pageNum", pageNum);
-        map.put("pageSize", pageSize);
+    public String getMyName() {
+        return myName;
+    }
+
+    public void setMyName(String myName) {
+        this.myName = myName;
+    }
+
+    public String getNickName() {
+        return nickName;
+    }
+
+    public void setNickName(String nickName) {
+        this.nickName = nickName;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getWork() {
+        return work;
+    }
+
+    public void setWork(String work) {
+        this.work = work;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public Map<String,Object> toMap(){
+        Map<String,Object> map = super.toMap();
+        map.put("myName",myName==null?"":myName);
+        map.put("nickName",nickName==null?"":nickName);
+        map.put("name",name==null?"":name);
+        map.put("work",work==null?"":work);
+        map.put("phone",phone==null?"":phone);
         return map;
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/ContactsResponseBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/ContactsResponseBean.java
deleted file mode 100644
index 63567ec..0000000
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/ContactsResponseBean.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.application.zhangshi_app_android.bean;
-
-import java.util.List;
-
-/**
- * @author Ljj
- * @date 2023.05.13. 0:30
- * @desc
- */
-public class ContactsResponseBean {
-    private List<ContactsDetailBean> data;
-    private long pageNum;
-    private long pageSize;
-    private long total;
-
-    public List<ContactsDetailBean> getData() {
-        return data;
-    }
-
-    public void setData(List<ContactsDetailBean> data) {
-        this.data = data;
-    }
-
-    public long getPageNum() { return pageNum; }
-    public void setPageNum(long value) { this.pageNum = value; }
-
-    public long getPageSize() { return pageSize; }
-    public void setPageSize(long value) { this.pageSize = value; }
-
-    public long getTotal() { return total; }
-    public void setTotal(long value) { this.total = value; }
-}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/DailyConsumeRecordBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/DailyConsumeRecordBean.java
index 64724af..ce1ad0c 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/DailyConsumeRecordBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/DailyConsumeRecordBean.java
@@ -1,6 +1,7 @@
 package com.application.zhangshi_app_android.bean;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -12,9 +13,9 @@
     //鏃ユ湡
     private String date;
     //姣忔棩閲戦
-    private String dailyMoney;
+    private double dailyMoney;
     //娑堣垂璁板綍
-    private List<ConsumeRecordBean> consumeRecordBeans;
+    private List<ConsumeRecordBean> consumeRecordBeans = new ArrayList<>();
 
     public String getDate() {
         return date;
@@ -32,11 +33,14 @@
         this.consumeRecordBeans = consumeRecordBeans;
     }
 
-    public String getDailyMoney() {
+    public double getDailyMoney() {
         return dailyMoney;
     }
 
-    public void setDailyMoney(String dailyMoney) {
+    public void setDailyMoney(double dailyMoney) {
         this.dailyMoney = dailyMoney;
     }
-}
+
+    public void setDailyMoney(String dailyMoney) {
+        this.dailyMoney = Double.parseDouble(dailyMoney);
+    }}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyAssetsBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyAssetsBean.java
index afdddcb..a07bdcb 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyAssetsBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyAssetsBean.java
@@ -8,15 +8,25 @@
  * @desc 瀹舵棌璧勪骇
  */
 public class FamilyAssetsBean implements Serializable {
-    private String address;
-    private String createTime;
-    private String holder;
     private long id;
-    private String location;
-    private String remark;
-    private String title;
+    //璧勪骇绫诲瀷
     private String type;
+    //鏁版嵁鍒涘缓鏃堕棿
+    private String createTime;
+    //鏍囬锛堣处鍙枫�佸崱鍙凤級
+    private String title;
+    //寮�鎴疯锛堣祫浜у湴鍧�锛�
+    private String location;
+    //鎸佹湁浜哄悕瀛�
+    private String holder;
+    //瀛樻斁鍦板潃
+    private String address;
+    //澶囨敞
+    private String remark;
+    //鐢靛瓙鏂囦欢鍦板潃
     private String url;
+    //鍙戠敓鏃堕棿
+    private String happenTime;
 
     public String getAddress() { return address; }
     public void setAddress(String value) { this.address = value; }
@@ -44,4 +54,14 @@
 
     public String getUrl() { return url; }
     public void setUrl(String value) { this.url = value; }
+
+    public String getHappenTime() {
+        return happenTime;
+    }
+
+    public void setHappenTime(String happenTime) {
+        this.happenTime = happenTime;
+    }
+
+
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyAssetsRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyAssetsRequestBean.java
new file mode 100644
index 0000000..e34f226
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyAssetsRequestBean.java
@@ -0,0 +1,76 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.05.16. 20:09
+ * @desc 瀹舵棌璧勪骇璇锋眰鍙傛暟
+ */
+public class FamilyAssetsRequestBean extends PageRequestBean {
+    //璧勪骇绫诲瀷
+    private String type;
+    //鎸佹湁浜哄悕瀛�
+    private String holder;
+    //瀛樻斁鍦板潃
+    private String address;
+    //鍙戠敓鏃堕棿寮�濮�
+    private String happenStartTime;
+    //鍙戠敓鏃堕棿缁撴潫
+    private String happenEndTime;
+
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+
+    public String getHolder() {
+        return holder;
+    }
+
+    public void setHolder(String holder) {
+        this.holder = holder;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getHappenStartTime() {
+        return happenStartTime;
+    }
+
+    public void setHappenStartTime(String happenStartTime) {
+        this.happenStartTime = happenStartTime;
+    }
+
+    public String getHappenEndTime() {
+        return happenEndTime;
+    }
+
+    public void setHappenEndTime(String happenEndTime) {
+        this.happenEndTime = happenEndTime;
+    }
+
+    public Map<String,Object> toMap(){
+        Map<String,Object> map = new HashMap<>();
+        map.put("pageNum",pageNum);
+        map.put("pageSize",pageSize);
+        map.put("type",type==null?"":type);
+        map.put("holder",holder==null?"":holder);
+        map.put("address",address==null?"":address);
+        map.put("happenStartTime",happenStartTime==null?"":happenStartTime);
+        map.put("happenEndTime",happenEndTime==null?"":happenEndTime);
+        return map;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyAssetsResponseBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyAssetsResponseBean.java
deleted file mode 100644
index 2da7ad3..0000000
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyAssetsResponseBean.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.application.zhangshi_app_android.bean;
-
-import java.util.List;
-
-/**
- * @author Ljj
- * @date 2023.04.03. 21:31
- * @desc
- */
-public class FamilyAssetsResponseBean {
-    private List<FamilyAssetsBean> data;
-    private long pageNum;
-    private long pageSize;
-    private long total;
-
-    public List<FamilyAssetsBean> getData() { return data; }
-    public void setData(List<FamilyAssetsBean> value) { this.data = value; }
-
-    public long getPageNum() { return pageNum; }
-    public void setPageNum(long value) { this.pageNum = value; }
-
-    public long getPageSize() { return pageSize; }
-    public void setPageSize(long value) { this.pageSize = value; }
-
-    public long getTotal() { return total; }
-    public void setTotal(long value) { this.total = value; }
-}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyMemorabiliaBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyMemorabiliaBean.java
index adae770..5a22f43 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyMemorabiliaBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyMemorabiliaBean.java
@@ -14,12 +14,14 @@
  */
 public class FamilyMemorabiliaBean implements Serializable {
     private long id;
-    private String address;
     private String createTime;
     private String people;
-    private String remark;
+    private String address;
     private String title;
+    private String remark;
     private String url;
+    private String happenTime;
+
     private List<String> urlList;
 
     public String getAddress() { return address; }
@@ -86,6 +88,14 @@
     public String getTitle() { return title; }
     public void setTitle(String value) { this.title = value; }
 
+    public String getHappenTime() {
+        return happenTime;
+    }
+
+    public void setHappenTime(String happenTime) {
+        this.happenTime = happenTime;
+    }
+
     @Override
     public String toString() {
         return "FamilyMemorabiliaBean{" +
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyMemorabiliaRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyMemorabiliaRequestBean.java
index 3440681..6100a2e 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyMemorabiliaRequestBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyMemorabiliaRequestBean.java
@@ -8,15 +8,14 @@
  * @date 2023.03.28. 15:57
  * @desc
  */
-public class FamilyMemorabiliaRequestBean {
+public class FamilyMemorabiliaRequestBean extends PageRequestBean{
     private String people;
     private String address;
     private String remark;
     private String title;
 
-    private String createTime;
-    private int pageNum = 1;
-    private int pageSize = 20;
+    private String happenStartTime;
+    private String happenEndTime;
 
     public String getPeople() {
         return people;
@@ -50,51 +49,31 @@
         this.title = title;
     }
 
-    public int getPageNum() {
-        return pageNum;
+
+    public String getHappenStartTime() {
+        return happenStartTime;
     }
 
-    public void setPageNum(int pageNum) {
-        this.pageNum = pageNum;
+    public void setHappenStartTime(String happenStartTime) {
+        this.happenStartTime = happenStartTime;
     }
 
-    public int getPageSize() {
-        return pageSize;
+    public String getHappenEndTime() {
+        return happenEndTime;
     }
 
-    public void setPageSize(int pageSize) {
-        this.pageSize = pageSize;
-    }
-    public String getCreateTime() {
-        return createTime;
+    public void setHappenEndTime(String happenEndTime) {
+        this.happenEndTime = happenEndTime;
     }
 
-    public void setCreateTime(String createTime) {
-        this.createTime = createTime;
-    }
-
-    public Map<String, Object> getMap() {
+    public Map<String, Object> toMap() {
         Map<String, Object> map = new HashMap<>();
-        if (people == null) {
-            people = "";
-        }
-        if (address == null) {
-            address = "";
-        }
-        if (remark == null) {
-            remark = "";
-        }
-        if (title == null) {
-            title = "";
-        }
-        if (createTime == null) {
-            createTime = "";
-        }
-        map.put("people", people);
-        map.put("address", address);
-        map.put("remark", remark);
-        map.put("title", title);
-        map.put("createTime", createTime);
+        map.put("people", people == null ? "" : people);
+        map.put("address", address == null ? "" : address);
+        map.put("remark", remark == null ? "" : remark);
+        map.put("title", title == null ? "" : title);
+        map.put("happenStartTime", happenStartTime == null ? "" : happenStartTime);
+        map.put("happenEndTime", happenEndTime == null ? "" : happenEndTime);
         map.put("pageNum", pageNum);
         map.put("pageSize", pageSize);
         return map;
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyMemorabiliaResponseBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyMemorabiliaResponseBean.java
deleted file mode 100644
index dbc171a..0000000
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyMemorabiliaResponseBean.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.application.zhangshi_app_android.bean;
-
-import java.util.List;
-
-/**
- * @author Ljj
- * @date 2023.03.28. 13:52
- * @desc 鑾峰彇瀹跺ぇ浜嬭鐨勮繑鍥炵被
- */
-public class FamilyMemorabiliaResponseBean {
-    private List<FamilyMemorabiliaBean> data;
-    private long pageNum;
-    private long pageSize;
-    private long total;
-
-    public List<FamilyMemorabiliaBean> getData() { return data; }
-    public void setData(List<FamilyMemorabiliaBean> value) { this.data = value; }
-
-    public long getPageNum() { return pageNum; }
-    public void setPageNum(long value) { this.pageNum = value; }
-
-    public long getPageSize() { return pageSize; }
-    public void setPageSize(long value) { this.pageSize = value; }
-
-    public long getTotal() { return total; }
-    public void setTotal(long value) { this.total = value; }
-}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceInformationBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceInformationBean.java
index 8acae11..68ed9b8 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceInformationBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceInformationBean.java
@@ -8,63 +8,350 @@
  */
 public class GrowthExperienceInformationBean implements Serializable {
     private int userId;
-    private String nickName;
-    private String oldName;
-    private int sex;
-    private  String nationality;
-    private  String nation;
-    private  int maritalStatus;
-    private  String politicalOutlook;
-    private  String phoneNumber;
-    private String idNum;
-    private String locationAddress;
-    private String alwaysAddress;
-    private String alwaysPolice;
-    private String unit;
-    private String position;
-    private int outStatus;
-    private String idNo;
-    private String img;
-    private String birth;
-    private String url;
-    public int getUserId() { return userId; }
-    public void setUserId(int value) { this.userId = value; }
-    public String getNickName() { return nickName; }
-    public void setNickName(String value) { this.nickName = value; }
-    public String getOldName() { return oldName; }
-    public void setOldName(String value) { this.oldName = value; }
-    public int getSex() { return sex; }
-    public void setSex(int value) { this.sex = value; }
-    public String getNationality() { return nationality; }
-    public void setNationality(String value) { this.nationality = value; }
-    public String getNation() { return nation; }
-    public void setNation(String value) { this.nation = value; }
-    public int getMaritalStatus() { return maritalStatus; }
-    public void setMaritalStatus(int value) { this.maritalStatus = value; }
-    public String getPoliticalOutlook() { return politicalOutlook; }
-    public void setPoliticalOutlook(String value) { this.politicalOutlook = value; }
-    public String getPhoneNumber() { return phoneNumber; }
-    public void setPhoneNumber(String value) { this.phoneNumber = value; }
-    public String getIdNum() { return idNum; }
-    public void setIdNum(String value) { this.idNum = value; }
+    private String nickName;//濮撳悕
+    private String oldName;//鏇剧敤鍚�
+    private int sex;//鎬у埆 0 濂� 1 鐢�
+    private String nationality;//鍥界睄
+    private String nation;//姘戞棌
+    private int maritalStatus;//濠氬Щ鐘跺喌 0 鏈 1 宸插 2 绂诲
+    private String politicalOutlook;//鏀挎不闈㈣矊
+    private String phoneNumber; //鎵嬫満鍙�
+    private String idNum; //韬唤璇佸彿
+    private String locationAddress; //鎴风睄鍦板潃
+    private String alwaysAddress; //甯镐綇鍦板潃
+    private String locationPolice;//鎴风睄鍦板叕瀹夋満鍏�
+    private String alwaysPolice; //甯镐綇鍦板叕瀹夋満鍏�
+    private String unit; //鎵�鍦ㄥ崟浣�/瀛︽牎
+    private String position; //鑱屽姟/韬唤
+    private int outStatus;//鏄惁澶栫睄銆佸澶栨案涔呭眳鐣欐潈 0 鍚� 1 鏄�
+    private String idNo;//澶栫睄銆佸澶栫浉鍏宠瘉浠跺彿鐮�
+    private String deadDay;//姝讳骸鏃ユ湡
+    private String constellation;//鏄熷骇
+    private String wxNo;//寰俊
+    private String qqNo;//qq
+    private String shengXiao;//鐢熻倴
+    private int isMyFamily;
+    private String familyName;// 鎵�灞炲搴悕瀛�
+    private String roleName;//鎵�灞炶鑹�
+    private String img; //鍥剧墖鍦板潃
+    private String fatherId;//鐖朵翰id
+    private String spouseId;
+    private String momId;//姣嶄翰id
+    private String birth;//鍑虹敓鏃ユ湡
+    private String email;//閭
+    private String createTime;//鍒涘缓鏃堕棿
+    private String url;//涓汉鑳屾櫙瑙嗛銆佸浘鐗�
+    private String secondFamilyId;//鍏朵粬瀹跺涵鎺堟潈鐨勫搴璱d
 
-    public String getLocationAddress() { return locationAddress; }
-    public void setLocationAddress(String value) { this.locationAddress = value; }
+    public int getUserId() {
+        return userId;
+    }
 
-    public String getAlwaysAddress() { return alwaysAddress; }
-    public void setAlwaysAddress(String value) { this.alwaysAddress = value; }
-    public String getUnit() { return unit; }
-    public void setUnit(String value) { this.unit = value; }
-    public String getPosition() { return position; }
-    public void setPosition(String value) { this.position = value; }
-    public int getOutStatus() { return outStatus; }
-    public void setOutStatus(int value) { this.outStatus = value; }
-    public String getIdNo() { return idNo; }
-    public void setIdNo(String value) { this.idNo = value; }
-    public String getImg() { return img; }
-    public void setImg(String value) { this.img = value; }
-    public String getBirth() { return birth; }
-    public void setBirth(String value) { this.birth = value; }
-    public String getUrl() { return url; }
-    public void setUrl(String value) { this.url = value; }
+    public void setUserId(int userId) {
+        this.userId = userId;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getNickName() {
+        return nickName;
+    }
+
+    public void setNickName(String nickName) {
+        this.nickName = nickName;
+    }
+
+    public String getOldName() {
+        return oldName;
+    }
+
+    public void setOldName(String oldName) {
+        this.oldName = oldName;
+    }
+
+    public void setSex(int sex) {
+        this.sex = sex;
+    }
+
+    public int getSex() {
+        return sex;
+    }
+
+    public String getSexStr() {
+        return sex==0?"濂�":"鐢�";
+    }
+
+    public void setSexStr(String sex) {
+        if (sex!=null){
+            this.sex = sex.equals("濂�")?0:1;
+        }
+    }
+
+    public String getNationality() {
+        return nationality;
+    }
+
+    public void setNationality(String nationality) {
+        this.nationality = nationality;
+    }
+
+    public String getNation() {
+        return nation;
+    }
+
+    public void setNation(String nation) {
+        this.nation = nation;
+    }
+
+    public String getMaritalStatus() {
+        if (maritalStatus==0){
+            return "鏈";
+        }else if (maritalStatus==1){
+            return "宸插";
+        }else if (maritalStatus==2){
+            return "绂诲";
+        }else {
+            return "鏈煡";
+        }
+    }
+
+    public void setMaritalStatus(String maritalStatus) {
+        if (maritalStatus!=null){
+            if (maritalStatus.equals("鏈")){
+                this.maritalStatus = 0;
+            }else if (maritalStatus.equals("宸插")){
+                this.maritalStatus = 1;
+            }else if (maritalStatus.equals("绂诲")){
+                this.maritalStatus = 2;
+            }else {
+                this.maritalStatus = 0;
+            }
+        }
+    }
+
+    public String getPoliticalOutlook() {
+        return politicalOutlook;
+    }
+
+    public void setPoliticalOutlook(String politicalOutlook) {
+        this.politicalOutlook = politicalOutlook;
+    }
+
+    public String getPhoneNumber() {
+        return phoneNumber;
+    }
+
+    public void setPhoneNumber(String phoneNumber) {
+        this.phoneNumber = phoneNumber;
+    }
+
+    public String getIdNum() {
+        return idNum;
+    }
+
+    public void setIdNum(String idNum) {
+        this.idNum = idNum;
+    }
+
+    public String getLocationAddress() {
+        return locationAddress;
+    }
+
+    public void setLocationAddress(String locationAddress) {
+        this.locationAddress = locationAddress;
+    }
+
+    public String getAlwaysAddress() {
+        return alwaysAddress;
+    }
+
+    public void setAlwaysAddress(String alwaysAddress) {
+        this.alwaysAddress = alwaysAddress;
+    }
+
+    public String getLocationPolice() {
+        return locationPolice;
+    }
+
+    public void setLocationPolice(String locationPolice) {
+        this.locationPolice = locationPolice;
+    }
+
+    public String getAlwaysPolice() {
+        return alwaysPolice;
+    }
+
+    public void setAlwaysPolice(String alwaysPolice) {
+        this.alwaysPolice = alwaysPolice;
+    }
+
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    public String getPosition() {
+        return position;
+    }
+
+    public void setPosition(String position) {
+        this.position = position;
+    }
+
+    public String getImg() {
+        return img;
+    }
+
+    public void setImg(String img) {
+        this.img = img;
+    }
+
+    public String getFatherId() {
+        return fatherId;
+    }
+
+    public void setFatherId(String fatherId) {
+        this.fatherId = fatherId;
+    }
+
+    public String getMomId() {
+        return momId;
+    }
+
+    public void setMomId(String momId) {
+        this.momId = momId;
+    }
+
+    public String getBirth() {
+        return birth;
+    }
+
+    public void setBirth(String birth) {
+        this.birth = birth;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public int getOutStatus() {
+        return outStatus;
+    }
+
+    public void setOutStatus(int outStatus) {
+        this.outStatus = outStatus;
+    }
+
+    public String getIdNo() {
+        return idNo;
+    }
+
+    public void setIdNo(String idNo) {
+        this.idNo = idNo;
+    }
+
+    public String getSecondFamilyId() {
+        return secondFamilyId;
+    }
+
+    public void setSecondFamilyId(String secondFamilyId) {
+        this.secondFamilyId = secondFamilyId;
+    }
+
+    public void setMaritalStatus(int maritalStatus) {
+        this.maritalStatus = maritalStatus;
+    }
+
+    public String getDeadDay() {
+        return deadDay;
+    }
+
+    public void setDeadDay(String deadDay) {
+        this.deadDay = deadDay;
+    }
+
+    public String getConstellation() {
+        return constellation;
+    }
+
+    public void setConstellation(String constellation) {
+        this.constellation = constellation;
+    }
+
+    public String getWxNo() {
+        return wxNo;
+    }
+
+    public void setWxNo(String wxNo) {
+        this.wxNo = wxNo;
+    }
+
+    public String getQqNo() {
+        return qqNo;
+    }
+
+    public void setQqNo(String qqNo) {
+        this.qqNo = qqNo;
+    }
+
+    public String getShengXiao() {
+        return shengXiao;
+    }
+
+    public void setShengXiao(String shengXiao) {
+        this.shengXiao = shengXiao;
+    }
+
+    public int getIsMyFamily() {
+        return isMyFamily;
+    }
+
+    public void setIsMyFamily(int isMyFamily) {
+        this.isMyFamily = isMyFamily;
+    }
+
+    public String getFamilyName() {
+        return familyName;
+    }
+
+    public void setFamilyName(String familyName) {
+        this.familyName = familyName;
+    }
+
+    public String getRoleName() {
+        return roleName;
+    }
+
+    public void setRoleName(String roleName) {
+        this.roleName = roleName;
+    }
+
+    public String getSpouseId() {
+        return spouseId;
+    }
+
+    public void setSpouseId(String spouseId) {
+        this.spouseId = spouseId;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareBaseInfoBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareBaseInfoBean.java
new file mode 100644
index 0000000..4ce1f9b
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareBaseInfoBean.java
@@ -0,0 +1,335 @@
+package com.application.zhangshi_app_android.bean;
+
+
+
+/**
+ * @author Ljj
+ * @date 2023.07.21. 18:09
+ * @desc 鍋ュ悍淇濆仴鍩烘湰淇℃伅
+ */
+public class HealthCareBaseInfoBean{
+    private int id;
+    //鐢ㄦ埛id
+    private int uid;
+    //濮撳悕
+    private String name;
+    //鎬у埆 1 鐢� 0 濂�
+    private int sex;
+    //鏂囧寲绋嬪害
+    private String educationLevel;
+    //鑱屼笟
+    private String work;
+    //鐢佃瘽
+    private String phone;
+    //閭
+    private String email;
+    //鍦板潃
+    private String address;
+    //琛�鍨�
+    private BloodClass bloodClass;
+    //杩囨晱鍙�
+    private AllergyClass allergyClass;
+    //閬椾紶鐥呭彶
+    private GeneticDiseaseClass geneticDiseaseClass;
+    //甯哥敤鑽墿
+    private String medicine;
+    //鐩墠鍩虹鐥�
+    private String baseDisease;
+
+    public static class BloodClass {
+        //a琛�鍨� 1鏄� 0鍚�
+        private int a;
+        //b琛�鍨�
+        private int b;
+        //o
+        private int o;
+        //ab
+        private int ab;
+        //rh
+        private int rh;
+        //other
+        private int other;
+        //鍏朵粬琛�鍨�
+        private String otherText;
+        //涓嶆竻妤�
+        private int unknown;
+
+        public int getA() {
+            return a;
+        }
+
+        public void setA(int a) {
+            this.a = a;
+        }
+
+        public int getB() {
+            return b;
+        }
+
+        public void setB(int b) {
+            this.b = b;
+        }
+
+        public int getO() {
+            return o;
+        }
+
+        public void setO(int o) {
+            this.o = o;
+        }
+
+        public int getAb() {
+            return ab;
+        }
+
+        public void setAb(int ab) {
+            this.ab = ab;
+        }
+
+        public int getRh() {
+            return rh;
+        }
+
+        public void setRh(int rh) {
+            this.rh = rh;
+        }
+
+        public int getOther() {
+            return other;
+        }
+
+        public void setOther(int other) {
+            this.other = other;
+        }
+
+        public String getOtherText() {
+            return otherText;
+        }
+
+        public void setOtherText(String otherText) {
+            this.otherText = otherText;
+        }
+
+        public int getUnknown() {
+            return unknown;
+        }
+
+        public void setUnknown(int unknown) {
+            this.unknown = unknown;
+        }
+    }
+    public static class AllergyClass {
+        //鑽墿 1鏄� 0鍚�
+        private int medicine;
+        //椋熺墿
+        private int food;
+        //鍏朵粬
+        private int other;
+        private String otherText;
+
+        public int getMedicine() {
+            return medicine;
+        }
+
+        public void setMedicine(int medicine) {
+            this.medicine = medicine;
+        }
+
+        public int getFood() {
+            return food;
+        }
+
+        public void setFood(int food) {
+            this.food = food;
+        }
+
+        public int getOther() {
+            return other;
+        }
+
+        public void setOther(int other) {
+            this.other = other;
+        }
+
+        public String getOtherText() {
+            return otherText;
+        }
+
+        public void setOtherText(String otherText) {
+            this.otherText = otherText;
+        }
+    }
+    public static class GeneticDiseaseClass{
+        //楂樿鍘� 1鏄� 0鍚�
+        private int hypertension;
+        //绯栧翱鐥�
+        private int diabetes;
+        //鑲跨槫
+        private int tumor;
+        private int other;//鍏朵粬
+        private String otherText;
+
+        public int getHypertension() {
+            return hypertension;
+        }
+
+        public void setHypertension(int hypertension) {
+            this.hypertension = hypertension;
+        }
+
+        public int getDiabetes() {
+            return diabetes;
+        }
+
+        public void setDiabetes(int diabetes) {
+            this.diabetes = diabetes;
+        }
+
+        public int getTumor() {
+            return tumor;
+        }
+
+        public void setTumor(int tumor) {
+            this.tumor = tumor;
+        }
+
+        public int getOther() {
+            return other;
+        }
+
+        public void setOther(int other) {
+            this.other = other;
+        }
+
+        public String getOtherText() {
+            return otherText;
+        }
+
+        public void setOtherText(String otherText) {
+            this.otherText = otherText;
+        }
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public int getUid() {
+        return uid;
+    }
+
+    public void setUid(int uid) {
+        this.uid = uid;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getSex() {
+        return sex;
+    }
+
+    public void setSex(int sex) {
+        this.sex = sex;
+    }
+
+    public String getSexStr(){
+        return sex == 1 ? "鐢�" : "濂�";
+    }
+    public void setSexStr(String sexStr){
+        if (sexStr.equals("鐢�")){
+            setSex(1);
+        }else {
+            setSex(0);
+        }
+    }
+
+    public String getEducationLevel() {
+        return educationLevel;
+    }
+
+    public void setEducationLevel(String educationLevel) {
+        this.educationLevel = educationLevel;
+    }
+
+    public String getWork() {
+        return work;
+    }
+
+    public void setWork(String work) {
+        this.work = work;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public BloodClass getBloodClass() {
+        return bloodClass;
+    }
+
+    public void setBloodClass(BloodClass bloodClass) {
+        this.bloodClass = bloodClass;
+    }
+
+    public AllergyClass getAllergyClass() {
+        return allergyClass;
+    }
+
+    public void setAllergyClass(AllergyClass allergyClass) {
+        this.allergyClass = allergyClass;
+    }
+
+    public GeneticDiseaseClass getGeneticDiseaseClass() {
+        return geneticDiseaseClass;
+    }
+
+    public void setGeneticDiseaseClass(GeneticDiseaseClass geneticDiseaseClass) {
+        this.geneticDiseaseClass = geneticDiseaseClass;
+    }
+
+    public String getMedicine() {
+        return medicine;
+    }
+
+    public void setMedicine(String medicine) {
+        this.medicine = medicine;
+    }
+
+    public String getBaseDisease() {
+        return baseDisease;
+    }
+
+    public void setBaseDisease(String baseDisease) {
+        this.baseDisease = baseDisease;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareExistingProblemsBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareExistingProblemsBean.java
new file mode 100644
index 0000000..4b86d30
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareExistingProblemsBean.java
@@ -0,0 +1,534 @@
+package com.application.zhangshi_app_android.bean;
+
+/**
+ * @author Ljj
+ * @date 2023.07.21. 20:07
+ * @desc 鍋ュ悍淇濆仴鐜板瓨闂
+ */
+public class HealthCareExistingProblemsBean {
+    //鑴戣绠$柧鐥�
+    private BrainDiseaseClass brainDiseaseClass;
+    //蹇冭剰鐤剧梾
+    private HeartDiseaseClass heartDiseaseClass;
+    //琛�绠$柧鐥�
+    private VascularDiseaseClass vascularDiseaseClass;
+    //娑堝寲绯荤粺鐤剧梾
+    private DigestiveSystemDiseaseClass digestiveSystemDiseaseClass;
+    //鍛煎惛绯荤粺鐤剧梾
+    private RespiratorySystemDiseaseClass respiratorySystemDiseaseClass;
+    //鑲捐剰鐤剧梾
+    private KidneyDiseaseClass kidneyDiseaseClass;
+    //鍐呭垎娉岀郴缁熺柧鐥�
+    private OtherDiseaseClass otherDiseaseClass;
+
+    public void setBrainDiseaseClass(BrainDiseaseClass brainDiseaseClass){
+        this.brainDiseaseClass = brainDiseaseClass;
+    }
+    public BrainDiseaseClass getBrainDiseaseClass(){
+        return this.brainDiseaseClass;
+    }
+    public void setHeartDiseaseClass(HeartDiseaseClass heartDiseaseClass){
+        this.heartDiseaseClass = heartDiseaseClass;
+    }
+    public HeartDiseaseClass getHeartDiseaseClass(){
+        return this.heartDiseaseClass;
+    }
+    public void setVascularDiseaseClass(VascularDiseaseClass vascularDiseaseClass){
+        this.vascularDiseaseClass = vascularDiseaseClass;
+    }
+    public VascularDiseaseClass getVascularDiseaseClass(){
+        return this.vascularDiseaseClass;
+    }
+    public void setDigestiveSystemDiseaseClass(DigestiveSystemDiseaseClass digestiveSystemDiseaseClass){
+        this.digestiveSystemDiseaseClass = digestiveSystemDiseaseClass;
+    }
+    public DigestiveSystemDiseaseClass getDigestiveSystemDiseaseClass(){
+        return this.digestiveSystemDiseaseClass;
+    }
+    public void setRespiratorySystemDiseaseClass(RespiratorySystemDiseaseClass respiratorySystemDiseaseClass){
+        this.respiratorySystemDiseaseClass = respiratorySystemDiseaseClass;
+    }
+    public RespiratorySystemDiseaseClass getRespiratorySystemDiseaseClass(){
+        return this.respiratorySystemDiseaseClass;
+    }
+    public void setKidneyDiseaseClass(KidneyDiseaseClass kidneyDiseaseClass){
+        this.kidneyDiseaseClass = kidneyDiseaseClass;
+    }
+    public KidneyDiseaseClass getKidneyDiseaseClass(){
+        return this.kidneyDiseaseClass;
+    }
+    public void setOtherDiseaseClass(OtherDiseaseClass otherDiseaseClass){
+        this.otherDiseaseClass = otherDiseaseClass;
+    }
+    public OtherDiseaseClass getOtherDiseaseClass(){
+        return this.otherDiseaseClass;
+    }
+    public static class BrainDiseaseClass {
+        //缂鸿鎬ц剳鍗掍腑
+        private int ischemicStroke;
+        //鑴戝嚭琛�
+        private int cerebralHemorrhage;
+        //铔涚綉鑶滀笅鑵斿嚭琛�
+        private int subarachnoidHemorrhage;
+        //鐭殏鎬ц剳缂鸿鍙戜綔
+        private int tia;
+        //鍏朵粬
+        private int other;
+
+        private String otherText;
+
+
+        public void setIschemicStroke(int ischemicStroke){
+            this.ischemicStroke = ischemicStroke;
+        }
+        public int getIschemicStroke(){
+            return this.ischemicStroke;
+        }
+        public void setCerebralHemorrhage(int cerebralHemorrhage){
+            this.cerebralHemorrhage = cerebralHemorrhage;
+        }
+        public int getCerebralHemorrhage(){
+            return this.cerebralHemorrhage;
+        }
+        public void setSubarachnoidHemorrhage(int subarachnoidHemorrhage){
+            this.subarachnoidHemorrhage = subarachnoidHemorrhage;
+        }
+        public int getSubarachnoidHemorrhage(){
+            return this.subarachnoidHemorrhage;
+        }
+        public void setOther(int other){
+            this.other = other;
+        }
+        public int getOther(){
+            return this.other;
+        }
+        public void setOtherText(String otherText){
+            this.otherText = otherText;
+        }
+        public String getOtherText(){
+            return this.otherText;
+        }
+        public void setTia(int tia){
+            this.tia = tia;
+        }
+        public int getTia(){
+            return this.tia;
+        }
+
+    }
+
+    public static class HeartDiseaseClass {
+        //蹇冭倢姊楀
+        private int myocardialInfarct;
+        //蹇冪粸鐥�
+        private int anginaPectoris;
+        //鍐犵姸鍔ㄨ剦琛�杩愰噸寤�
+        private int coronaryRevascularization;
+        //鍏呰鎬у績鍔涜“绔�
+        private int congestiveHeartFailure;
+        //蹇冨墠鍖虹柤鐥�
+        private int precordialPain;
+        //鍏朵粬
+        private int other;
+
+        private String otherText;
+
+        public void setMyocardialInfarct(int myocardialInfarct){
+            this.myocardialInfarct = myocardialInfarct;
+        }
+        public int getMyocardialInfarct(){
+            return this.myocardialInfarct;
+        }
+        public void setAnginaPectoris(int anginaPectoris){
+            this.anginaPectoris = anginaPectoris;
+        }
+        public int getAnginaPectoris(){
+            return this.anginaPectoris;
+        }
+        public void setCoronaryRevascularization(int coronaryRevascularization){
+            this.coronaryRevascularization = coronaryRevascularization;
+        }
+        public int getCoronaryRevascularization(){
+            return this.coronaryRevascularization;
+        }
+        public void setCongestiveHeartFailure(int congestiveHeartFailure){
+            this.congestiveHeartFailure = congestiveHeartFailure;
+        }
+        public int getCongestiveHeartFailure(){
+            return this.congestiveHeartFailure;
+        }
+        public void setPrecordialPain(int precordialPain){
+            this.precordialPain = precordialPain;
+        }
+        public int getPrecordialPain(){
+            return this.precordialPain;
+        }
+        public void setOther(int other){
+            this.other = other;
+        }
+        public int getOther(){
+            return this.other;
+        }
+        public void setOtherText(String otherText){
+            this.otherText = otherText;
+        }
+        public String getOtherText(){
+            return this.otherText;
+        }
+
+    }
+
+    public static class VascularDiseaseClass {
+        //澶瑰眰鍔ㄨ剦鐦�
+        private int dissectingAneurysm;
+        //鍔ㄨ剦闂鎬х柧鐥�
+        private int arterialOcclusiveDiseases;
+        //鍏朵粬
+        private int other;
+
+        private String otherText;
+
+        public void setDissectingAneurysm(int dissectingAneurysm){
+            this.dissectingAneurysm = dissectingAneurysm;
+        }
+        public int getDissectingAneurysm(){
+            return this.dissectingAneurysm;
+        }
+        public void setArterialOcclusiveDiseases(int arterialOcclusiveDiseases){
+            this.arterialOcclusiveDiseases = arterialOcclusiveDiseases;
+        }
+        public int getArterialOcclusiveDiseases(){
+            return this.arterialOcclusiveDiseases;
+        }
+        public void setOther(int other){
+            this.other = other;
+        }
+        public int getOther(){
+            return this.other;
+        }
+        public void setOtherText(String otherText){
+            this.otherText = otherText;
+        }
+        public String getOtherText(){
+            return this.otherText;
+        }
+
+    }
+
+    public static class DigestiveSystemDiseaseClass {
+        //鑳冨崄浜屾寚鑲犳簝鐤�
+        private int gastroduodenalUlcer;
+        //鍙嶆祦鎬ч绠$値
+        private int esophagitis;
+        //鎱㈡�ц儍鐐�
+        private int gastritis;
+        //婧冪枴鎬х粨鑲犵値
+        private int colitis;
+        //鑲濈値
+        private int hepatitis;
+        //鑳嗗泭鐐�
+        private int cholecystitis;
+        //鑳嗙粨鐭�
+        private int cholelithiasis;
+        //鑴傝偑鑲�
+        private int fattyLiver;
+        //楂樿剛琛�鐥�
+        private int hyperlipidemia;
+        //鐥旂柈
+        private int haemorrhoids;
+        //鍏朵粬
+        private int other;
+
+        private String otherText;
+
+        public void setGastroduodenalUlcer(int gastroduodenalUlcer){
+            this.gastroduodenalUlcer = gastroduodenalUlcer;
+        }
+        public int getGastroduodenalUlcer(){
+            return this.gastroduodenalUlcer;
+        }
+        public void setEsophagitis(int esophagitis){
+            this.esophagitis = esophagitis;
+        }
+        public int getEsophagitis(){
+            return this.esophagitis;
+        }
+        public void setGastritis(int gastritis){
+            this.gastritis = gastritis;
+        }
+        public int getGastritis(){
+            return this.gastritis;
+        }
+        public void setColitis(int colitis){
+            this.colitis = colitis;
+        }
+        public int getColitis(){
+            return this.colitis;
+        }
+        public void setHepatitis(int hepatitis){
+            this.hepatitis = hepatitis;
+        }
+        public int getHepatitis(){
+            return this.hepatitis;
+        }
+        public void setCholecystitis(int cholecystitis){
+            this.cholecystitis = cholecystitis;
+        }
+        public int getCholecystitis(){
+            return this.cholecystitis;
+        }
+        public void setCholelithiasis(int cholelithiasis){
+            this.cholelithiasis = cholelithiasis;
+        }
+        public int getCholelithiasis(){
+            return this.cholelithiasis;
+        }
+        public void setFattyLiver(int fattyLiver){
+            this.fattyLiver = fattyLiver;
+        }
+        public int getFattyLiver(){
+            return this.fattyLiver;
+        }
+        public void setHyperlipidemia(int hyperlipidemia){
+            this.hyperlipidemia = hyperlipidemia;
+        }
+        public int getHyperlipidemia(){
+            return this.hyperlipidemia;
+        }
+        public void setHaemorrhoids(int haemorrhoids){
+            this.haemorrhoids = haemorrhoids;
+        }
+        public int getHaemorrhoids(){
+            return this.haemorrhoids;
+        }
+        public void setOther(int other){
+            this.other = other;
+        }
+        public int getOther(){
+            return this.other;
+        }
+        public void setOtherText(String otherText){
+            this.otherText = otherText;
+        }
+        public String getOtherText(){
+            return this.otherText;
+        }
+
+    }
+
+    public static class RespiratorySystemDiseaseClass {
+        //COPD
+        private int copd;
+        //鑲虹値
+        private int pneumonia;
+        //鏀皵绠$値
+        private int bronchitis;
+        //鏀皵绠″摦鍠�
+        private int bronchialAsthma;
+        //鑲虹粨鏍�
+        private int pulmonaryTuberculosis;
+        //涓婂懠鍚搁亾鎰熸煋
+        private int upperRespiratoryTractInfection;
+
+        private int other;
+
+        private String otherText;
+
+
+        public void setPneumonia(int pneumonia){
+            this.pneumonia = pneumonia;
+        }
+        public int getPneumonia(){
+            return this.pneumonia;
+        }
+        public void setBronchitis(int bronchitis){
+            this.bronchitis = bronchitis;
+        }
+        public int getBronchitis(){
+            return this.bronchitis;
+        }
+        public void setBronchialAsthma(int bronchialAsthma){
+            this.bronchialAsthma = bronchialAsthma;
+        }
+        public int getBronchialAsthma(){
+            return this.bronchialAsthma;
+        }
+        public void setPulmonaryTuberculosis(int pulmonaryTuberculosis){
+            this.pulmonaryTuberculosis = pulmonaryTuberculosis;
+        }
+        public int getPulmonaryTuberculosis(){
+            return this.pulmonaryTuberculosis;
+        }
+        public void setUpperRespiratoryTractInfection(int upperRespiratoryTractInfection){
+            this.upperRespiratoryTractInfection = upperRespiratoryTractInfection;
+        }
+        public int getUpperRespiratoryTractInfection(){
+            return this.upperRespiratoryTractInfection;
+        }
+        public void setOther(int other){
+            this.other = other;
+        }
+        public int getOther(){
+            return this.other;
+        }
+        public void setOtherText(String otherText){
+            this.otherText = otherText;
+        }
+        public String getOtherText(){
+            return this.otherText;
+        }
+        public void setCopd(int copd){
+            this.copd = copd;
+        }
+        public int getCopd(){
+            return this.copd;
+        }
+
+    }
+
+    public static class KidneyDiseaseClass {
+        //绯栧翱鐥呰偩鐥�
+        private int diabetes;
+        //鑲惧姛鑳借“绔�
+        private int renalFailure;
+        //鎬ユ�ц偩鐐�
+        private int acuteNephritis;
+        //鎱㈡�ц偩鐐�
+        private int chronicNephritis;
+        //娉屽翱绯荤粺缁撶煶
+        private int urinaryCalculus;
+        //娉屽翱绯荤粺鎰熸煋
+        private int urinaryTractInfection;
+        //鍏朵粬
+        private int other;
+
+        private String otherText;
+
+        public void setDiabetes(int diabetes){
+            this.diabetes = diabetes;
+        }
+        public int getDiabetes(){
+            return this.diabetes;
+        }
+        public void setRenalFailure(int renalFailure){
+            this.renalFailure = renalFailure;
+        }
+        public int getRenalFailure(){
+            return this.renalFailure;
+        }
+        public void setAcuteNephritis(int acuteNephritis){
+            this.acuteNephritis = acuteNephritis;
+        }
+        public int getAcuteNephritis(){
+            return this.acuteNephritis;
+        }
+        public void setChronicNephritis(int chronicNephritis){
+            this.chronicNephritis = chronicNephritis;
+        }
+        public int getChronicNephritis(){
+            return this.chronicNephritis;
+        }
+        public void setUrinaryCalculus(int urinaryCalculus){
+            this.urinaryCalculus = urinaryCalculus;
+        }
+        public int getUrinaryCalculus(){
+            return this.urinaryCalculus;
+        }
+        public void setUrinaryTractInfection(int urinaryTractInfection){
+            this.urinaryTractInfection = urinaryTractInfection;
+        }
+        public int getUrinaryTractInfection(){
+            return this.urinaryTractInfection;
+        }
+        public void setOther(int other){
+            this.other = other;
+        }
+        public int getOther(){
+            return this.other;
+        }
+        public void setOtherText(String otherText){
+            this.otherText = otherText;
+        }
+        public String getOtherText(){
+            return this.otherText;
+        }
+
+    }
+
+    public static class OtherDiseaseClass {
+        //瀛曟湡涓変釜鏈堝唴
+        private int pregnant;
+        //鐥呮瘨鎬ч噸鎰�
+        private int cold;
+        //浼犳煋鎬х柧鐥�
+        private int infectious;
+        //鑲哄ぇ鐤�
+        private int pulmonaryBulla;
+        //缁撴牳鎬х┖娲炲舰鎴愮殑鍜
+        private int hemoptysis;
+        //鏈粡澶勭悊鐨勬皵鑳�
+        private int pneumothorax;
+        //娲诲姩鎬у嚭琛�
+        private int activeBleeding;
+
+        private int other;
+
+        private String otherText;
+
+        public void setPregnant(int pregnant){
+            this.pregnant = pregnant;
+        }
+        public int getPregnant(){
+            return this.pregnant;
+        }
+        public void setCold(int cold){
+            this.cold = cold;
+        }
+        public int getCold(){
+            return this.cold;
+        }
+        public void setInfectious(int infectious){
+            this.infectious = infectious;
+        }
+        public int getInfectious(){
+            return this.infectious;
+        }
+        public void setPulmonaryBulla(int pulmonaryBulla){
+            this.pulmonaryBulla = pulmonaryBulla;
+        }
+        public int getPulmonaryBulla(){
+            return this.pulmonaryBulla;
+        }
+        public void setHemoptysis(int hemoptysis){
+            this.hemoptysis = hemoptysis;
+        }
+        public int getHemoptysis(){
+            return this.hemoptysis;
+        }
+        public void setPneumothorax(int pneumothorax){
+            this.pneumothorax = pneumothorax;
+        }
+        public int getPneumothorax(){
+            return this.pneumothorax;
+        }
+        public void setActiveBleeding(int activeBleeding){
+            this.activeBleeding = activeBleeding;
+        }
+        public int getActiveBleeding(){
+            return this.activeBleeding;
+        }
+        public void setOther(int other){
+            this.other = other;
+        }
+        public int getOther(){
+            return this.other;
+        }
+        public void setOtherText(String otherText){
+            this.otherText = otherText;
+        }
+        public String getOtherText(){
+            return this.otherText;
+        }
+
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareLifeHabitsBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareLifeHabitsBean.java
new file mode 100644
index 0000000..c5fde59
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareLifeHabitsBean.java
@@ -0,0 +1,415 @@
+package com.application.zhangshi_app_android.bean;
+
+/**
+ * @author Ljj
+ * @date 2023.07.21. 20:06
+ * @desc 鍋ュ悍淇濆仴鐢熸椿涔犳儻
+ */
+public class HealthCareLifeHabitsBean {
+    private int id;
+    //鐢ㄦ埛id
+    private int uid;
+    //楗涔犳儻(鍠�)
+    private String eatGood;
+    //楗涔犳儻(蹇�)
+    private String eatBad;
+    //鐖卞ソ
+    private String hobby;
+    //鍡滃ソ
+    private String addition;
+    //澶т究
+    private String stool;
+    //灏忎究
+    private String urine;
+    //鐫$湢
+    private SleepClass sleepClass;
+    //澶т究瑙勫緥
+    private StoolStatusClass stoolStatusClass;
+    //灏忎究瑙勫緥
+    private UrineStatusClass urineStatusClass;
+    //楗涔犳儻
+    private EatingHabitsClass eatingHabitsClass;
+    //鐢熸椿浜嬩欢
+    private LifeEventClass lifeEventClass;
+
+    public void setId(int id){
+        this.id = id;
+    }
+    public int getId(){
+        return this.id;
+    }
+    public void setUid(int uid){
+        this.uid = uid;
+    }
+    public int getUid(){
+        return this.uid;
+    }
+    public void setEatGood(String eatGood){
+        this.eatGood = eatGood;
+    }
+    public String getEatGood(){
+        return this.eatGood;
+    }
+    public void setEatBad(String eatBad){
+        this.eatBad = eatBad;
+    }
+    public String getEatBad(){
+        return this.eatBad;
+    }
+    public void setHobby(String hobby){
+        this.hobby = hobby;
+    }
+    public String getHobby(){
+        return this.hobby;
+    }
+    public void setAddition(String addition){
+        this.addition = addition;
+    }
+    public String getAddition(){
+        return this.addition;
+    }
+    public void setStool(String stool){
+        this.stool = stool;
+    }
+    public String getStool(){
+        return this.stool;
+    }
+    public void setUrine(String urine){
+        this.urine = urine;
+    }
+    public String getUrine(){
+        return this.urine;
+    }
+    public void setSleepClass(SleepClass sleepClass){
+        this.sleepClass = sleepClass;
+    }
+    public SleepClass getSleepClass(){
+        return this.sleepClass;
+    }
+    public void setStoolStatusClass(StoolStatusClass stoolStatusClass){
+        this.stoolStatusClass = stoolStatusClass;
+    }
+    public StoolStatusClass getStoolStatusClass(){
+        return this.stoolStatusClass;
+    }
+    public void setUrineStatusClass(UrineStatusClass urineStatusClass){
+        this.urineStatusClass = urineStatusClass;
+    }
+    public UrineStatusClass getUrineStatusClass(){
+        return this.urineStatusClass;
+    }
+    public void setEatingHabitsClass(EatingHabitsClass eatingHabitsClass){
+        this.eatingHabitsClass = eatingHabitsClass;
+    }
+    public EatingHabitsClass getEatingHabitsClass(){
+        return this.eatingHabitsClass;
+    }
+    public void setLifeEventClass(LifeEventClass lifeEventClass){
+        this.lifeEventClass = lifeEventClass;
+    }
+    public LifeEventClass getLifeEventClass(){
+        return this.lifeEventClass;
+    }
+    public static class SleepClass {
+        //鑹ソ 1 鏄� 0 鍚�
+        private int good;
+        //涓�鑸� 1 鏄� 0 鍚�
+        private int general;
+        //鏄撻啋 1 鏄� 0 鍚�
+        private int easyWake;
+        //澶氭ⅵ 1 鏄� 0 鍚�
+        private int dreaminess;
+        //澶辩湢 1 鏄� 0 鍚�
+        private int sleepless;
+        //鎵撻季 1 鏄� 0 鍚�
+        private int snore;
+        //鐫′笉鐔� 1 鏄� 0 鍚�
+        private int wakefulness;
+        //鍏朵粬 1 鏄� 0 鍚�
+        private int other;
+
+        private String otherText;
+
+        public void setGood(int good){
+            this.good = good;
+        }
+        public int getGood(){
+            return this.good;
+        }
+        public void setGeneral(int general){
+            this.general = general;
+        }
+        public int getGeneral(){
+            return this.general;
+        }
+        public void setEasyWake(int easyWake){
+            this.easyWake = easyWake;
+        }
+        public int getEasyWake(){
+            return this.easyWake;
+        }
+        public void setDreaminess(int dreaminess){
+            this.dreaminess = dreaminess;
+        }
+        public int getDreaminess(){
+            return this.dreaminess;
+        }
+        public void setSleepless(int sleepless){
+            this.sleepless = sleepless;
+        }
+        public int getSleepless(){
+            return this.sleepless;
+        }
+        public void setSnore(int snore){
+            this.snore = snore;
+        }
+        public int getSnore(){
+            return this.snore;
+        }
+        public void setWakefulness(int wakefulness){
+            this.wakefulness = wakefulness;
+        }
+        public int getWakefulness(){
+            return this.wakefulness;
+        }
+        public void setOther(int other){
+            this.other = other;
+        }
+        public int getOther(){
+            return this.other;
+        }
+        public void setOtherText(String otherText){
+            this.otherText = otherText;
+        }
+        public String getOtherText(){
+            return this.otherText;
+        }
+
+    }
+
+    public static class StoolStatusClass {
+        //姝e父 1 鏄� 0 鍚�
+        private int normal;
+        //绉樼粨 1 鏄� 0 鍚�
+        private int constipation;
+        //鑵规郴 1 鏄� 0 鍚�
+        private int diarrhea;
+        //澶辩 1 鏄� 0 鍚�
+        private int incontinence;
+        private int other;
+        private String otherText;
+
+        public void setNormal(int normal){
+            this.normal = normal;
+        }
+        public int getNormal(){
+            return this.normal;
+        }
+        public void setConstipation(int constipation){
+            this.constipation = constipation;
+        }
+        public int getConstipation(){
+            return this.constipation;
+        }
+        public void setDiarrhea(int diarrhea){
+            this.diarrhea = diarrhea;
+        }
+        public int getDiarrhea(){
+            return this.diarrhea;
+        }
+        public void setIncontinence(int incontinence){
+            this.incontinence = incontinence;
+        }
+        public int getIncontinence(){
+            return this.incontinence;
+        }
+        public void setOther(int other){
+            this.other = other;
+        }
+        public int getOther(){
+            return this.other;
+        }
+        public void setOtherText(String otherText){
+            this.otherText = otherText;
+        }
+        public String getOtherText(){
+            return this.otherText;
+        }
+
+    }
+
+    public static class UrineStatusClass {
+        //姝e父 1 鏄� 0 鍚�
+        private int normal;
+        //澶滃翱娼寸暀 1 鏄� 0 鍚�
+        private int nightUrinaryRetention;
+        //澶辩 1 鏄� 0 鍚�
+        private int incontinence;
+        //閬楀翱 1 鏄� 0 鍚�
+        private int enuresis;
+        private int other;
+        private String otherText;
+
+        public void setNormal(int normal){
+            this.normal = normal;
+        }
+        public int getNormal(){
+            return this.normal;
+        }
+        public void setNightUrinaryRetention(int nightUrinaryRetention){
+            this.nightUrinaryRetention = nightUrinaryRetention;
+        }
+        public int getNightUrinaryRetention(){
+            return this.nightUrinaryRetention;
+        }
+        public void setIncontinence(int incontinence){
+            this.incontinence = incontinence;
+        }
+        public int getIncontinence(){
+            return this.incontinence;
+        }
+        public void setEnuresis(int enuresis){
+            this.enuresis = enuresis;
+        }
+        public int getEnuresis(){
+            return this.enuresis;
+        }
+        public void setOther(int other){
+            this.other = other;
+        }
+        public int getOther(){
+            return this.other;
+        }
+        public void setOtherText(String otherText){
+            this.otherText = otherText;
+        }
+        public String getOtherText(){
+            return this.otherText;
+        }
+
+    }
+
+    public static class EatingHabitsClass {
+        //鑽ょ礌鍧囧寑 1 鏄� 0 鍚�
+        private int uniformityOfMeatAndVegetables;
+        //鑽ら涓轰富 1 鏄� 0 鍚�
+        private int meat;
+        //绱犻涓轰富 1 鏄� 0 鍚�
+        private int vegetable;
+        //鍡滅洂 1 鏄� 0 鍚�
+        private int salt;
+        //鍡滄补 1 鏄� 0 鍚�
+        private int oil;
+        //鍡滅硸 1 鏄� 0 鍚�
+        private int sugar;
+        //鍡滈厭 1 鏄� 0 鍚�
+        private int other;
+
+        private String otherText;
+
+        public void setUniformityOfMeatAndVegetables(int uniformityOfMeatAndVegetables){
+            this.uniformityOfMeatAndVegetables = uniformityOfMeatAndVegetables;
+        }
+        public int getUniformityOfMeatAndVegetables(){
+            return this.uniformityOfMeatAndVegetables;
+        }
+        public void setMeat(int meat){
+            this.meat = meat;
+        }
+        public int getMeat(){
+            return this.meat;
+        }
+        public void setVegetable(int vegetable){
+            this.vegetable = vegetable;
+        }
+        public int getVegetable(){
+            return this.vegetable;
+        }
+        public void setSalt(int salt){
+            this.salt = salt;
+        }
+        public int getSalt(){
+            return this.salt;
+        }
+        public void setOil(int oil){
+            this.oil = oil;
+        }
+        public int getOil(){
+            return this.oil;
+        }
+        public void setSugar(int sugar){
+            this.sugar = sugar;
+        }
+        public int getSugar(){
+            return this.sugar;
+        }
+        public void setOther(int other){
+            this.other = other;
+        }
+        public int getOther(){
+            return this.other;
+        }
+        public void setOtherText(String otherText){
+            this.otherText = otherText;
+        }
+        public String getOtherText(){
+            return this.otherText;
+        }
+
+    }
+
+    public static class LifeEventClass {
+        //涓у伓 1 鏄� 0 鍚�
+        private int bereave;
+        //鐙眳 1 鏄� 0 鍚�
+        private int liveAlone;
+        //涓�骞村唴浣忛櫌 1 鏄� 0 鍚�
+        private int inHospital;
+        //瀛愬コ鍒嗗 1 鏄� 0 鍚�
+        private int divide;
+
+        private int other;
+
+        private String otherText;
+
+        public void setBereave(int bereave){
+            this.bereave = bereave;
+        }
+        public int getBereave(){
+            return this.bereave;
+        }
+        public void setLiveAlone(int liveAlone){
+            this.liveAlone = liveAlone;
+        }
+        public int getLiveAlone(){
+            return this.liveAlone;
+        }
+        public void setInHospital(int inHospital){
+            this.inHospital = inHospital;
+        }
+        public int getInHospital(){
+            return this.inHospital;
+        }
+        public void setDivide(int divide){
+            this.divide = divide;
+        }
+        public int getDivide(){
+            return this.divide;
+        }
+        public void setOther(int other){
+            this.other = other;
+        }
+        public int getOther(){
+            return this.other;
+        }
+        public void setOtherText(String otherText){
+            this.otherText = otherText;
+        }
+        public String getOtherText(){
+            return this.otherText;
+        }
+
+    }
+
+
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareNotesContentBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareNotesContentBean.java
new file mode 100644
index 0000000..9dd1e64
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareNotesContentBean.java
@@ -0,0 +1,159 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.07.21. 20:07
+ * @desc 鍋ュ悍淇濆仴绗旇鍐呭
+ */
+public class HealthCareNotesContentBean {
+    //id
+    private int id;
+    //鐢ㄦ埛id
+    private int uid;
+    //鐢熸椿涔犳儻
+    private String lifeHabits;
+    //浠ュ線鐥呭彶
+    private String historyDisease;
+    //璇婃不鎯呭喌
+    private String treatmentInfo;
+    //瀹舵棌鐥呭彶
+    private String familyDisease;
+    //鐜扮梾鍙�
+    private String nowDisease;
+    //鐤剧梾鐨勫彂鐢�
+    private String diseaseHappen;
+    //鐤剧梾鐨勫彂灞�
+    private String diseaseDevelop;
+    //鐤剧梾鐨勬不鐤�
+    private String diseaseTreat;
+    //鐤剧梾鐨勮浆褰�
+    private String diseaseBack;
+
+    public void setId(int id){
+        this.id = id;
+    }
+    public int getId(){
+        return this.id;
+    }
+    public void setUid(int uid){
+        this.uid = uid;
+    }
+    public int getUid(){
+        return this.uid;
+    }
+    public void setLifeHabits(String lifeHabits){
+        this.lifeHabits = lifeHabits;
+    }
+    public String getLifeHabits(){
+        return this.lifeHabits;
+    }
+    public void setHistoryDisease(String historyDisease){
+        this.historyDisease = historyDisease;
+    }
+    public String getHistoryDisease(){
+        return this.historyDisease;
+    }
+    public void setTreatmentInfo(String treatmentInfo){
+        this.treatmentInfo = treatmentInfo;
+    }
+    public String getTreatmentInfo(){
+        return this.treatmentInfo;
+    }
+    public void setFamilyDisease(String familyDisease){
+        this.familyDisease = familyDisease;
+    }
+    public String getFamilyDisease(){
+        return this.familyDisease;
+    }
+    public void setNowDisease(String nowDisease){
+        this.nowDisease = nowDisease;
+    }
+    public String getNowDisease(){
+        return this.nowDisease;
+    }
+    public void setDiseaseHappen(String diseaseHappen){
+        this.diseaseHappen = diseaseHappen;
+    }
+    public String getDiseaseHappen(){
+        return this.diseaseHappen;
+    }
+    public void setDiseaseDevelop(String diseaseDevelop){
+        this.diseaseDevelop = diseaseDevelop;
+    }
+    public String getDiseaseDevelop(){
+        return this.diseaseDevelop;
+    }
+    public void setDiseaseTreat(String diseaseTreat){
+        this.diseaseTreat = diseaseTreat;
+    }
+    public String getDiseaseTreat(){
+        return this.diseaseTreat;
+    }
+    public void setDiseaseBack(String diseaseBack){
+        this.diseaseBack = diseaseBack;
+    }
+    public String getDiseaseBack(){
+        return this.diseaseBack;
+    }
+
+    public List<String> getTabList(){
+        List<String> tabList = new ArrayList<>();
+        tabList.add("鐢熸椿涔犳儻");
+        tabList.add("浠ュ線鐥呭彶");
+        tabList.add("璇婃不鎯呭喌");
+        tabList.add("瀹舵棌鐥呭彶");
+        tabList.add("鐜扮梾鍙�");
+        tabList.add("鐤剧梾鐨勫彂鐢�");
+        tabList.add("鐤剧梾鐨勫彂灞�");
+        tabList.add("鐤剧梾鐨勬不鐤�");
+        tabList.add("鐤剧梾鐨勮浆褰�");
+        return tabList;
+    }
+
+    public List<String> getContentList() {
+        List<String> contentList = new ArrayList<>();
+        contentList.add(lifeHabits);
+        contentList.add(historyDisease);
+        contentList.add(treatmentInfo);
+        contentList.add(familyDisease);
+        contentList.add(nowDisease);
+        contentList.add(diseaseHappen);
+        contentList.add(diseaseDevelop);
+        contentList.add(diseaseTreat);
+        contentList.add(diseaseBack);
+        return contentList;
+    }
+
+    public void setContent(List<String> contentList) {
+        this.lifeHabits = contentList.get(0);
+        this.historyDisease = contentList.get(1);
+        this.treatmentInfo = contentList.get(2);
+        this.familyDisease = contentList.get(3);
+        this.nowDisease = contentList.get(4);
+        this.diseaseHappen = contentList.get(5);
+        this.diseaseDevelop = contentList.get(6);
+        this.diseaseTreat = contentList.get(7);
+        this.diseaseBack = contentList.get(8);
+    }
+
+    @Override
+    public String toString() {
+        return super.toString() + ",HealthCareNotesContentBean{" +
+                "id=" + id +
+                ", uid=" + uid +
+                ", lifeHabits='" + lifeHabits + '\'' +
+                ", historyDisease='" + historyDisease + '\'' +
+                ", treatmentInfo='" + treatmentInfo + '\'' +
+                ", familyDisease='" + familyDisease + '\'' +
+                ", nowDisease='" + nowDisease + '\'' +
+                ", diseaseHappen='" + diseaseHappen + '\'' +
+                ", diseaseDevelop='" + diseaseDevelop + '\'' +
+                ", diseaseTreat='" + diseaseTreat + '\'' +
+                ", diseaseBack='" + diseaseBack + '\'' +
+                '}';
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareNursingExaminationBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareNursingExaminationBean.java
new file mode 100644
index 0000000..63cb5f3
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/HealthCareNursingExaminationBean.java
@@ -0,0 +1,390 @@
+package com.application.zhangshi_app_android.bean;
+
+/**
+ * @author Ljj
+ * @date 2023.07.21. 20:07
+ * @desc 鍋ュ悍淇濆仴鎶ょ悊鏌ヤ綋
+ */
+public class HealthCareNursingExaminationBean {
+    //id
+    private int id;
+    //鐢ㄦ埛id
+    private int uid;
+    //浣撴俯
+    private String temperature;
+    //鑴夋悘
+    private String pulse;
+    //
+    private String breathe;
+    //琛�鍘�
+    private String bloodPressure;
+    //浣撻噸
+    private String weight;
+    //鍥涜偄娲诲姩
+    private String movement;
+    //鐨偆绮樿啘
+    private SkinTypeClass skinTypeClass;
+    //蹇冪悊鐘舵��
+    private PsychologyTypeClass psychologyTypeClass;
+    //鐥呯悊鎬佸害
+    private AttitudeClass attitudeClass;
+    //钀ュ吇鐘跺喌
+    private NutritionClass nutritionClass;
+
+    public void setId(int id){
+        this.id = id;
+    }
+    public int getId(){
+        return this.id;
+    }
+    public void setUid(int uid){
+        this.uid = uid;
+    }
+    public int getUid(){
+        return this.uid;
+    }
+    public void setTemperature(String temperature){
+        this.temperature = temperature;
+    }
+    public String getTemperature(){
+        return this.temperature;
+    }
+    public void setPulse(String pulse){
+        this.pulse = pulse;
+    }
+    public String getPulse(){
+        return this.pulse;
+    }
+    public void setBreathe(String breathe){
+        this.breathe = breathe;
+    }
+    public String getBreathe(){
+        return this.breathe;
+    }
+    public void setBloodPressure(String bloodPressure){
+        this.bloodPressure = bloodPressure;
+    }
+    public String getBloodPressure(){
+        return this.bloodPressure;
+    }
+    public void setWeight(String weight){
+        this.weight = weight;
+    }
+    public String getWeight(){
+        return this.weight;
+    }
+    public void setMovement(String movement){
+        this.movement = movement;
+    }
+    public String getMovement(){
+        return this.movement;
+    }
+    public void setSkinTypeClass(SkinTypeClass skinTypeClass){
+        this.skinTypeClass = skinTypeClass;
+    }
+    public SkinTypeClass getSkinTypeClass(){
+        return this.skinTypeClass;
+    }
+    public void setPsychologyTypeClass(PsychologyTypeClass psychologyTypeClass){
+        this.psychologyTypeClass = psychologyTypeClass;
+    }
+    public PsychologyTypeClass getPsychologyTypeClass(){
+        return this.psychologyTypeClass;
+    }
+    public void setAttitudeClass(AttitudeClass attitudeClass){
+        this.attitudeClass = attitudeClass;
+    }
+    public AttitudeClass getAttitudeClass(){
+        return this.attitudeClass;
+    }
+    public void setNutritionClass(NutritionClass nutritionClass){
+        this.nutritionClass = nutritionClass;
+    }
+    public NutritionClass getNutritionClass(){
+        return this.nutritionClass;
+    }
+    public static class SkinTypeClass {
+        //闈掓槬鐥� 0鍚� 1鏄�
+        private int acne;
+        //鐗涚毊鐧� 0鍚� 1鏄�
+        private int psoriasis;
+        //鑹茬礌娌夌潃 0鍚� 1鏄�
+        private int color;
+        //姘磋偪 0鍚� 1鏄�
+        private int edema;
+        //鐨柟 0鍚� 1鏄�
+        private int rash;
+        //鐦�鏂� 0鍚� 1鏄�
+        private int bloodStasis;
+        //鐨笅缁撹妭鎴栬偪鍧� 0鍚� 1鏄�
+        private int snom;
+        //铚樿洓鐥� 0鍚� 1鏄�
+        private int nevus;
+        //婧冪枴 0鍚� 1鏄�
+        private int ulcer;
+        //鍏朵粬 0鍚� 1鏄�
+        private int other;
+
+        private String otherText;
+
+        public void setAcne(int acne){
+            this.acne = acne;
+        }
+        public int getAcne(){
+            return this.acne;
+        }
+        public void setPsoriasis(int psoriasis){
+            this.psoriasis = psoriasis;
+        }
+        public int getPsoriasis(){
+            return this.psoriasis;
+        }
+        public void setColor(int color){
+            this.color = color;
+        }
+        public int getColor(){
+            return this.color;
+        }
+        public void setEdema(int edema){
+            this.edema = edema;
+        }
+        public int getEdema(){
+            return this.edema;
+        }
+        public void setRash(int rash){
+            this.rash = rash;
+        }
+        public int getRash(){
+            return this.rash;
+        }
+        public void setBloodStasis(int bloodStasis){
+            this.bloodStasis = bloodStasis;
+        }
+        public int getBloodStasis(){
+            return this.bloodStasis;
+        }
+        public void setSnom(int snom){
+            this.snom = snom;
+        }
+        public int getSnom(){
+            return this.snom;
+        }
+        public void setNevus(int nevus){
+            this.nevus = nevus;
+        }
+        public int getNevus(){
+            return this.nevus;
+        }
+        public void setUlcer(int ulcer){
+            this.ulcer = ulcer;
+        }
+        public int getUlcer(){
+            return this.ulcer;
+        }
+        public void setOther(int other){
+            this.other = other;
+        }
+        public int getOther(){
+            return this.other;
+        }
+        public void setOtherText(String otherText){
+            this.otherText = otherText;
+        }
+        public String getOtherText(){
+            return this.otherText;
+        }
+
+    }
+
+    public static class PsychologyTypeClass {
+        //寮�鏈� 0鍚� 1鏄�
+        private int optimistic;
+        //鐒﹁檻 0鍚� 1鏄�
+        private int worry;
+        //蹇ф剚鎭愭儳 0鍚� 1鏄�
+        private int fear;
+        //鐚滅枒 0鍚� 1鏄�
+        private int suspicion;
+        //鍘嬫姂 0鍚� 1鏄�
+        private int constrain;
+        //鎬濆康 0鍚� 1鏄�
+        private int miss;
+
+        private int other;
+
+        private String otherText;
+
+        public void setOptimistic(int optimistic){
+            this.optimistic = optimistic;
+        }
+        public int getOptimistic(){
+            return this.optimistic;
+        }
+        public void setWorry(int worry){
+            this.worry = worry;
+        }
+        public int getWorry(){
+            return this.worry;
+        }
+        public void setFear(int fear){
+            this.fear = fear;
+        }
+        public int getFear(){
+            return this.fear;
+        }
+        public void setSuspicion(int suspicion){
+            this.suspicion = suspicion;
+        }
+        public int getSuspicion(){
+            return this.suspicion;
+        }
+        public void setConstrain(int constrain){
+            this.constrain = constrain;
+        }
+        public int getConstrain(){
+            return this.constrain;
+        }
+        public void setMiss(int miss){
+            this.miss = miss;
+        }
+        public int getMiss(){
+            return this.miss;
+        }
+        public void setOther(int other){
+            this.other = other;
+        }
+        public int getOther(){
+            return this.other;
+        }
+        public void setOtherText(String otherText){
+            this.otherText = otherText;
+        }
+        public String getOtherText(){
+            return this.otherText;
+        }
+
+    }
+
+    public static class AttitudeClass {
+        //鏄庢湕 0鍚� 1鏄�
+        private int lucidity;
+        //涓嶄簡瑙� 0鍚� 1鏄�
+        private int unknown;
+        //姝e父 0鍚� 1鏄�
+        private int normal;
+        //涓嶆甯� 0鍚� 1鏄�
+        private int abnormal;
+        //鍏朵粬 0鍚� 1鏄�
+        private int other;
+
+        private String otherText;
+
+        public void setLucidity(int lucidity){
+            this.lucidity = lucidity;
+        }
+        public int getLucidity(){
+            return this.lucidity;
+        }
+        public void setUnknown(int unknown){
+            this.unknown = unknown;
+        }
+        public int getUnknown(){
+            return this.unknown;
+        }
+        public void setNormal(int normal){
+            this.normal = normal;
+        }
+        public int getNormal(){
+            return this.normal;
+        }
+        public void setAbnormal(int abnormal){
+            this.abnormal = abnormal;
+        }
+        public int getAbnormal(){
+            return this.abnormal;
+        }
+        public void setOther(int other){
+            this.other = other;
+        }
+        public int getOther(){
+            return this.other;
+        }
+        public void setOtherText(String otherText){
+            this.otherText = otherText;
+        }
+        public String getOtherText(){
+            return this.otherText;
+        }
+
+    }
+
+    public static class NutritionClass {
+        //鑹ソ 0鍚� 1鏄�
+        private int good;
+        //涓瓑 0鍚� 1鏄�
+        private int medium;
+        //娆犱匠 0鍚� 1鏄�
+        private int poor;
+        //鑲ヨ儢 0鍚� 1鏄�
+        private int obesity;
+        //娑堢槮 0鍚� 1鏄�
+        private int thin;
+        //鎭舵恫璐� 0鍚� 1鏄�
+        private int fluid;
+
+        private int other;
+
+        private String otherText;
+
+        public void setGood(int good){
+            this.good = good;
+        }
+        public int getGood(){
+            return this.good;
+        }
+        public void setMedium(int medium){
+            this.medium = medium;
+        }
+        public int getMedium(){
+            return this.medium;
+        }
+        public void setPoor(int poor){
+            this.poor = poor;
+        }
+        public int getPoor(){
+            return this.poor;
+        }
+        public void setObesity(int obesity){
+            this.obesity = obesity;
+        }
+        public int getObesity(){
+            return this.obesity;
+        }
+        public void setThin(int thin){
+            this.thin = thin;
+        }
+        public int getThin(){
+            return this.thin;
+        }
+        public void setFluid(int fluid){
+            this.fluid = fluid;
+        }
+        public int getFluid(){
+            return this.fluid;
+        }
+        public void setOther(int other){
+            this.other = other;
+        }
+        public int getOther(){
+            return this.other;
+        }
+        public void setOtherText(String otherText){
+            this.otherText = otherText;
+        }
+        public String getOtherText(){
+            return this.otherText;
+        }
+
+    }
+
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/HomeDevicesBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/HomeDevicesBean.java
index aede4e7..c04a953 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/HomeDevicesBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/HomeDevicesBean.java
@@ -8,26 +8,18 @@
  * @desc 瀹跺涵璁惧 bean
  */
 public class HomeDevicesBean implements Serializable {
-    private long id;
-    private String name;
-    private String createDate;
-    private String buyer;
-    private String content;
-    private String location;
+    private int id;
+    private String name;//璁惧鍚嶇О
+    private String createTime;//鍒涘缓鏃堕棿
+    private String buyer;//璐拱浜�
+    private String content;//浜嬮」鍐呭
+    private String location;//瀛樻斁浣嶇疆
     private String remark;
     private String url;
     private String familyId;
+    private String happenTime;//鍙戠敓鏃堕棿
 
-    public HomeDevicesBean(long id, String name, String createTime, String people, String content, String address, String remark, String url) {
-        this.id = id;
-        this.name = name;
-        this.createDate = createTime;
-        this.buyer = people;
-        this.content = content;
-        this.location = address;
-        this.remark = remark;
-        this.url = url;
-    }
+    private int status;//鐘舵�� 0锛氭湭杩囨湡 1锛氬凡杩囨湡
 
     public String getName() {
         return name;
@@ -37,12 +29,12 @@
         this.name = name;
     }
 
-    public String getCreateDate() {
-        return createDate;
+    public String getCreateTime() {
+        return createTime;
     }
 
-    public void setCreateDate(String createDate) {
-        this.createDate = createDate;
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
     }
 
     public String getBuyer() {
@@ -84,11 +76,11 @@
     public void setUrl(String url) {
         this.url = url;
     }
-    public long getId() {
+    public int getId() {
         return id;
     }
 
-    public void setId(long id) {
+    public void setId(int id) {
         this.id = id;
     }
 
@@ -99,4 +91,20 @@
     public void setFamilyId(String familyId) {
         this.familyId = familyId;
     }
+
+    public String getHappenTime() {
+        return happenTime;
+    }
+
+    public void setHappenTime(String happenTime) {
+        this.happenTime = happenTime;
+    }
+
+    public int getStatus() {
+        return status;
+    }
+
+    public void setStatus(int status) {
+        this.status = status;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/HomeDevicesRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/HomeDevicesRequestBean.java
new file mode 100644
index 0000000..c798fb6
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/HomeDevicesRequestBean.java
@@ -0,0 +1,77 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.05.21. 17:11
+ * @desc
+ */
+public class HomeDevicesRequestBean extends PageRequestBean{
+    private String content;//浜嬮」鍐呭
+    private String name;//璁惧鍚嶇О
+    private String buyer;//璐拱浜�
+    private String happenStartTime;//鍙戠敓鏃堕棿寮�濮�
+    private String happenEndTime;//鍙戠敓鏃堕棿缁撴潫
+    private String location;//瀛樻斁浣嶇疆
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getBuyer() {
+        return buyer;
+    }
+
+    public void setBuyer(String buyer) {
+        this.buyer = buyer;
+    }
+
+    public String getHappenStartTime() {
+        return happenStartTime;
+    }
+
+    public void setHappenStartTime(String happenStartTime) {
+        this.happenStartTime = happenStartTime;
+    }
+
+    public String getHappenEndTime() {
+        return happenEndTime;
+    }
+
+    public void setHappenEndTime(String happenEndTime) {
+        this.happenEndTime = happenEndTime;
+    }
+
+    public String getLocation() {
+        return location;
+    }
+
+    public void setLocation(String location) {
+        this.location = location;
+    }
+
+    @Override
+    public Map<String, Object> toMap() {
+        Map<String, Object> map = super.toMap();
+        map.put("content",content==null?"":content);
+        map.put("name",name==null?"":name);
+        map.put("buyer",buyer==null?"":buyer);
+        map.put("location",location==null?"":location);
+        map.put("happenStartTime",happenStartTime==null?"":happenStartTime);
+        map.put("happenEndTime",happenEndTime==null?"":happenEndTime);
+        return map;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/HomeDevicesResponseBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/HomeDevicesResponseBean.java
deleted file mode 100644
index 23b7cff..0000000
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/HomeDevicesResponseBean.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.application.zhangshi_app_android.bean;
-
-import java.util.List;
-
-/**
- * @author Ljj
- * @date 2023.04.04. 15:03
- * @desc
- */
-public class HomeDevicesResponseBean {
-    private List<HomeDevicesBean> data;
-    private long pageNum;
-    private long pageSize;
-    private long total;
-
-    public List<HomeDevicesBean> getData() { return data; }
-    public void setData(List<HomeDevicesBean> value) { this.data = value; }
-
-    public long getPageNum() { return pageNum; }
-    public void setPageNum(long value) { this.pageNum = value; }
-
-    public long getPageSize() { return pageSize; }
-    public void setPageSize(long value) { this.pageSize = value; }
-
-    public long getTotal() { return total; }
-    public void setTotal(long value) { this.total = value; }
-}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/HomeMemberBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/HomeMemberBean.java
index b360426..ebe709f 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/HomeMemberBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/HomeMemberBean.java
@@ -6,97 +6,114 @@
  * @desc 棣栭〉鎴愬憳淇℃伅
  */
 public class HomeMemberBean {
-    private String generation;
-    private String name;
-    private String gender;
-    private String url;
-    private String birthday;
-    private String deathDay;
-    private String phone;
-    private String company;
-    private String spouse;
-
-    public HomeMemberBean(String generation, String name, String gender, String url, String birthday, String deathDay, String phone, String company, String spouse) {
-        this.generation = generation;
-        this.name = name;
-        this.gender = gender;
-        this.url = url;
-        this.birthday = birthday;
-        this.deathDay = deathDay;
-        this.phone = phone;
-        this.company = company;
-        this.spouse = spouse;
+    //id
+    private int userId;
+    //韬唤浠f暟
+    private String identity;
+    //濮撳悕
+    private String nickName;
+    //鎬у埆 1鐢� 0濂�
+    private int sex;
+    //鐢熸棩
+    private String birth;
+    //姝讳骸鏃ユ湡锛堝叏鐢熷懡鍛ㄦ湡锛�
+    private String deadDay;
+    //鎵嬫満鍙�
+    private String phoneNumber;
+    //鎵�鍦ㄥ崟浣�
+    private String unit;
+    //閰嶅伓鍚嶇О
+    private String spouseName;
+    //鍥惧儚
+    private String img;
+    //鏄惁鏄垜鐨勫鏃� 1鏄� 0鍚� (鐢ㄤ簬鍒ゆ柇鏄惁鏄剧ず韬唤浠f暟)
+    private int isMyFamily;
+    public int getUserId() {
+        return userId;
     }
 
-    public String getGeneration() {
-        return generation;
+    public void setUserId(int userId) {
+        this.userId = userId;
     }
 
-    public void setGeneration(String generation) {
-        this.generation = generation;
+    public String getIdentity() {
+        return identity;
     }
 
-    public String getName() {
-        return name;
+    public void setIdentity(String identity) {
+        this.identity = identity;
     }
 
-    public void setName(String name) {
-        this.name = name;
+    public String getNickName() {
+        return nickName;
     }
 
-    public String getGender() {
-        return gender;
+    public void setNickName(String nickName) {
+        this.nickName = nickName;
     }
 
-    public void setGender(String gender) {
-        this.gender = gender;
+
+    public String getSex() {
+        return sex==1?"鐢�":"濂�";
     }
 
-    public String getUrl() {
-        return url;
+    public void setSex(String sex) {
+        this.sex = sex.equals("鐢�")?1:0;
     }
 
-    public void setUrl(String url) {
-        this.url = url;
+    public String getBirth() {
+        return birth;
     }
 
-    public String getBirthday() {
-        return birthday;
+    public void setBirth(String birth) {
+        this.birth = birth;
     }
 
-    public void setBirthday(String birthday) {
-        this.birthday = birthday;
+    public String getDeadDay() {
+        return deadDay;
     }
 
-    public String getDeathDay() {
-        return deathDay;
+    public void setDeadDay(String deadDay) {
+        this.deadDay = deadDay;
     }
 
-    public void setDeathDay(String deathDay) {
-        this.deathDay = deathDay;
+    public String getPhoneNumber() {
+        return phoneNumber;
     }
 
-    public String getPhone() {
-        return phone;
+    public void setPhoneNumber(String phoneNumber) {
+        this.phoneNumber = phoneNumber;
     }
 
-    public void setPhone(String phone) {
-        this.phone = phone;
+    public String getUnit() {
+        return unit;
     }
 
-    public String getCompany() {
-        return company;
+    public void setUnit(String unit) {
+        this.unit = unit;
     }
 
-    public void setCompany(String company) {
-        this.company = company;
+    public String getSpouseName() {
+        return spouseName;
     }
 
-    public String getSpouse() {
-        return spouse;
+    public void setSpouseName(String spouseName) {
+        this.spouseName = spouseName;
     }
 
-    public void setSpouse(String spouse) {
-        this.spouse = spouse;
+    public String getImg() {
+        return img;
+    }
+
+    public void setImg(String img) {
+        this.img = img;
+    }
+
+    public int getIsMyFamily() {
+        return isMyFamily;
+    }
+
+    public void setIsMyFamily(int isMyFamily) {
+        this.isMyFamily = isMyFamily;
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/HomeMemberRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/HomeMemberRequestBean.java
new file mode 100644
index 0000000..9f33a75
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/HomeMemberRequestBean.java
@@ -0,0 +1,60 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.06.12. 16:07
+ * @desc
+ */
+public class HomeMemberRequestBean extends PageRequestBean{
+    private String nickName;//濮撳悕
+    private int identity;//韬唤浠f暟
+    private int sex = -1;//鎬у埆 1鐢� 0濂�
+    private String birth;//鐢熸棩
+
+    public String getNickName() {
+        return nickName;
+    }
+
+    public void setNickName(String nickName) {
+        this.nickName = nickName;
+    }
+
+    public int getIdentity() {
+        return identity;
+    }
+
+    public void setIdentity(int identity) {
+        this.identity = identity;
+    }
+    public int getSex() {
+        return sex;
+    }
+
+    public void setSex(int sex) {
+        this.sex = sex;
+    }
+
+    public String getBirth() {
+        return birth;
+    }
+
+    public void setBirth(String birth) {
+        this.birth = birth;
+    }
+
+    @Override
+    public Map<String, Object> toMap() {
+        Map<String, Object> map = super.toMap();
+        map.put("nickName", nickName==null?"":nickName);
+        if (identity != 0) {
+            map.put("identity", identity);
+        }
+        if (sex != -1){
+            map.put("sex",sex);
+        }
+        map.put("birth",birth==null?"":birth);
+        return map;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/HomeRootBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/HomeRootBean.java
new file mode 100644
index 0000000..de80603
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/HomeRootBean.java
@@ -0,0 +1,362 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.List;
+
+/**
+ * @author Ljj
+ * @date 2023.07.11. 20:18
+ * @desc 瀹舵牴缃� 鎴愬憳Bean
+ */
+public class HomeRootBean {
+    // id
+    int userId;
+    // 濮撳悕
+    String nickName;
+    // 鏇剧敤鍚�
+    String oldName;
+    // 鎬у埆 1鐢� 0濂�
+    int sex;
+    // 鍥藉
+    String nationality;
+    // 姘戞棌
+    String nation;
+    // 濠氬Щ鐘跺喌 1宸插 0鏈 2绂诲
+    int maritalStatus;
+    // 鏀挎不闈㈣矊
+    String politicalOutlook;
+    // 鐢佃瘽
+    String phoneNumber;
+    // 韬唤璇佸彿
+    String idNum;
+    // 鎴风睄鍦板潃
+    String locationAddress;
+    // 甯镐綇鍦板潃
+    String alwaysAddress;
+    // 鎴风睄鍦板潃鍏畨鏈哄叧
+    String locationPolice;
+    // 甯镐綇鍦板潃鍏畨鏈哄叧
+    String alwaysPolice;
+    // 鍗曚綅
+    String unit;
+    // 鑱屽姟
+    String position;
+    // 0銆�1
+    String outStatus;
+    String idNo;
+    // 鍘讳笘鏃ユ湡
+    String deadDay;
+    // 鏄熷骇
+    String constellation;
+    // 寰俊鍙�
+    String wxNo;
+    // QQ鍙�
+    String qqNo;
+    // 鐢熻倴
+    String shengXiao;
+    // 澶村儚img
+    String img;
+    // 閰嶅伓id
+    int spouseId;
+    // 閰嶅伓淇℃伅
+    HomeRootBean spouse;
+    // 鐖朵翰id
+    int fatherId;
+    // 姣嶄翰id
+    int momId;
+    // 鐢熸棩
+    String birth;
+    // 鐢靛瓙鏂囦欢
+    String url;
+    // 瀹跺涵id
+    String familyId;
+    // 绗簩瀹跺涵id
+    String secondFamilyId;
+    //韬唤浠f暟
+    int identity;
+    // 瀛愪唬鍒楄〃
+    List<HomeRootBean> childList;
+
+    public int getUserId() {
+        return userId;
+    }
+
+    public void setUserId(int userId) {
+        this.userId = userId;
+    }
+
+    public String getNickName() {
+        return nickName;
+    }
+
+    public void setNickName(String nickName) {
+        this.nickName = nickName;
+    }
+
+    public String getOldName() {
+        return oldName;
+    }
+
+    public void setOldName(String oldName) {
+        this.oldName = oldName;
+    }
+
+    public int getSex() {
+        return sex;
+    }
+
+    public void setSex(int sex) {
+        this.sex = sex;
+    }
+
+    public String getNationality() {
+        return nationality;
+    }
+
+    public void setNationality(String nationality) {
+        this.nationality = nationality;
+    }
+
+    public String getNation() {
+        return nation;
+    }
+
+    public void setNation(String nation) {
+        this.nation = nation;
+    }
+
+    public int getMaritalStatus() {
+        return maritalStatus;
+    }
+    public String getMaritalStatusStr() {
+        if (maritalStatus == 0) {
+            return "鏈";
+        } else if (maritalStatus == 1) {
+            return "宸插";
+        } else if (maritalStatus == 2) {
+            return "绂诲";
+        } else {
+            return "";
+        }
+    }
+
+
+    public void setMaritalStatus(int maritalStatus) {
+        this.maritalStatus = maritalStatus;
+    }
+
+    public String getPoliticalOutlook() {
+        return politicalOutlook;
+    }
+
+    public void setPoliticalOutlook(String politicalOutlook) {
+        this.politicalOutlook = politicalOutlook;
+    }
+
+    public String getPhoneNumber() {
+        return phoneNumber;
+    }
+
+    public void setPhoneNumber(String phoneNumber) {
+        this.phoneNumber = phoneNumber;
+    }
+
+    public String getIdNum() {
+        return idNum;
+    }
+
+    public void setIdNum(String idNum) {
+        this.idNum = idNum;
+    }
+
+    public String getLocationAddress() {
+        return locationAddress;
+    }
+
+    public void setLocationAddress(String locationAddress) {
+        this.locationAddress = locationAddress;
+    }
+
+    public String getAlwaysAddress() {
+        return alwaysAddress;
+    }
+
+    public void setAlwaysAddress(String alwaysAddress) {
+        this.alwaysAddress = alwaysAddress;
+    }
+
+    public String getLocationPolice() {
+        return locationPolice;
+    }
+
+    public void setLocationPolice(String locationPolice) {
+        this.locationPolice = locationPolice;
+    }
+
+    public String getAlwaysPolice() {
+        return alwaysPolice;
+    }
+
+    public void setAlwaysPolice(String alwaysPolice) {
+        this.alwaysPolice = alwaysPolice;
+    }
+
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    public String getPosition() {
+        return position;
+    }
+
+    public void setPosition(String position) {
+        this.position = position;
+    }
+
+    public String getOutStatus() {
+        return outStatus;
+    }
+
+    public void setOutStatus(String outStatus) {
+        this.outStatus = outStatus;
+    }
+
+    public String getIdNo() {
+        return idNo;
+    }
+
+    public void setIdNo(String idNo) {
+        this.idNo = idNo;
+    }
+
+    public String getDeadDay() {
+        return deadDay;
+    }
+
+    public void setDeadDay(String deadDay) {
+        this.deadDay = deadDay;
+    }
+
+    public String getConstellation() {
+        return constellation;
+    }
+
+    public void setConstellation(String constellation) {
+        this.constellation = constellation;
+    }
+
+    public String getWxNo() {
+        return wxNo;
+    }
+
+    public void setWxNo(String wxNo) {
+        this.wxNo = wxNo;
+    }
+
+    public String getQqNo() {
+        return qqNo;
+    }
+
+    public void setQqNo(String qqNo) {
+        this.qqNo = qqNo;
+    }
+
+    public String getShengXiao() {
+        return shengXiao;
+    }
+
+    public void setShengXiao(String shengXiao) {
+        this.shengXiao = shengXiao;
+    }
+
+    public String getImg() {
+        return img;
+    }
+
+    public void setImg(String img) {
+        this.img = img;
+    }
+
+    public int getSpouseId() {
+        return spouseId;
+    }
+
+    public void setSpouseId(int spouseId) {
+        this.spouseId = spouseId;
+    }
+
+    public int getFatherId() {
+        return fatherId;
+    }
+
+    public void setFatherId(int fatherId) {
+        this.fatherId = fatherId;
+    }
+
+    public int getMomId() {
+        return momId;
+    }
+
+    public void setMomId(int momId) {
+        this.momId = momId;
+    }
+
+    public String getBirth() {
+        return birth;
+    }
+
+    public void setBirth(String birth) {
+        this.birth = birth;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getFamilyId() {
+        return familyId;
+    }
+
+    public void setFamilyId(String familyId) {
+        this.familyId = familyId;
+    }
+
+    public String getSecondFamilyId() {
+        return secondFamilyId;
+    }
+
+    public void setSecondFamilyId(String secondFamilyId) {
+        this.secondFamilyId = secondFamilyId;
+    }
+
+    public int getIdentity() {
+        return identity;
+    }
+
+    public void setIdentity(int identity) {
+        this.identity = identity;
+    }
+
+    public List<HomeRootBean> getChildList() {
+        return childList;
+    }
+
+    public void setChildList(List<HomeRootBean> childList) {
+        this.childList = childList;
+    }
+
+    public HomeRootBean getSpouse() {
+        return spouse;
+    }
+
+    public void setSpouse(HomeRootBean spouse) {
+        this.spouse = spouse;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/HonorCollectionBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/HonorCollectionBean.java
index 885f8da..4c4ad38 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/HonorCollectionBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/HonorCollectionBean.java
@@ -9,17 +9,17 @@
  */
 public class HonorCollectionBean implements Serializable {
     private int id;
+    private String happenTime;//鑾峰緱鏃堕棿
     private String type;//绫诲瀷
     private String name;//鍚嶇О
-    private String getTime;//鑾峰緱鏃堕棿
     private String source;//鏉ユ簮
-    private String price;//浠峰��
     private String owner;//鎵�鏈夎��
+    private String price;//浠峰��
     private String location;//瀛樻斁鍦扮偣
     private String remark;//澶囨敞
     private String url;//鐢靛瓙鏂囦欢
     private String familyId;//瀹跺涵id
-    private int ownData;//鎷ユ湁鏁版嵁
+    private String createTime;//鍒涘缓鏃堕棿
 
     public String getName() {
         return name;
@@ -37,12 +37,12 @@
         this.name = name;
     }
 
-    public String getGetTime() {
-        return getTime;
+    public String getHappenTime() {
+        return happenTime;
     }
 
-    public void setGetTime(String getTime) {
-        this.getTime = getTime;
+    public void setHappenTime(String happenTime) {
+        this.happenTime = happenTime;
     }
 
     public String getSource() {
@@ -109,11 +109,11 @@
         this.familyId = familyId;
     }
 
-    public int getOwnData() {
-        return ownData;
+    public String getCreateTime() {
+        return createTime;
     }
 
-    public void setOwnData(int ownData) {
-        this.ownData = ownData;
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/HonorCollectionRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/HonorCollectionRequestBean.java
index 35c4f24..c0ae8d6 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/HonorCollectionRequestBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/HonorCollectionRequestBean.java
@@ -9,55 +9,20 @@
  * @desc 鑽h獕鏀惰棌 璇锋眰Bean
  */
 public class HonorCollectionRequestBean {
-    private String type;//绫诲瀷
-    private String name;//鍚嶇О
-    private String getTime;//鑾峰緱鏃堕棿
-    private String source;//鏉ユ簮
-    private String price;//浠峰��
+    private String type;//绫诲埆
     private String owner;//鎵�鏈夎��
     private String location;//瀛樻斁鍦扮偣
-    private String remark;//澶囨敞
+
     private int pageNum = 1;//椤电爜
     private int pageSize = 20;//姣忛〉鏉℃暟
-
+    private String happenStartTime;//鎼滅储鑼冨洿寮�濮嬫椂闂�
+    private String happenEndTime;//鎼滅储鑼冨洿缁撴潫鏃堕棿
     public String getType() {
         return type;
     }
 
     public void setType(String type) {
         this.type = type;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getGetTime() {
-        return getTime;
-    }
-
-    public void setGetTime(String getTime) {
-        this.getTime = getTime;
-    }
-
-    public String getSource() {
-        return source;
-    }
-
-    public void setSource(String source) {
-        this.source = source;
-    }
-
-    public String getPrice() {
-        return price;
-    }
-
-    public void setPrice(String price) {
-        this.price = price;
     }
 
     public String getOwner() {
@@ -76,14 +41,6 @@
         this.location = location;
     }
 
-    public String getRemark() {
-        return remark;
-    }
-
-    public void setRemark(String remark) {
-        this.remark = remark;
-    }
-
     public int getPageNum() {
         return pageNum;
     }
@@ -100,17 +57,30 @@
         this.pageSize = pageSize;
     }
 
+    public String getHappenStartTime() {
+        return happenStartTime;
+    }
+
+    public void setHappenStartTime(String happenStartTime) {
+        this.happenStartTime = happenStartTime;
+    }
+
+    public String getHappenEndTime() {
+        return happenEndTime;
+    }
+
+    public void setHappenEndTime(String happenEndTime) {
+        this.happenEndTime = happenEndTime;
+    }
+
     //map
     public Map<String, Object> toMap() {
         Map<String, Object> map = new HashMap<>();
         map.put("type", type == null ? "" : type);
-        map.put("name", name == null ? "" : name);
-        map.put("getTime", getTime == null ? "" : getTime);
-        map.put("source", source == null ? "" : source);
-        map.put("price", price == null ? "" : price);
         map.put("owner", owner == null ? "" : owner);
         map.put("location", location == null ? "" : location);
-        map.put("remark", remark == null ? "" : remark);
+        map.put("happenStartTime", happenStartTime == null ? "" : happenStartTime);
+        map.put("happenEndTime", happenEndTime == null ? "" : happenEndTime);
         map.put("pageNum", pageNum);
         map.put("pageSize", pageSize);
         return map;
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/HundredWishBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/HundredWishBean.java
index e675863..f9cfa5d 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/HundredWishBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/HundredWishBean.java
@@ -8,24 +8,45 @@
  * @desc
  */
 public class HundredWishBean implements Serializable {
-    //鏍囬
+    //id
+    private int id;
+    //鐞嗘兂鏍囬/鐧惧勾鎰挎湜
     private String title;
-    //鍒涘缓鏃堕棿
-    private String createTime;
     //濮嬩簬浣曞洜
-    private String reason;
+    private String cause;
     //鍙楁儬浜�
     private String beneficiary;
-    //缁ф壙浜�
-    private String heir;
     //瀹炵幇闅惧害
     private String difficulty;
+    //缁ф壙浜�
+    private String heir;
     //鏄惁渚濇棫鏈夋晥 1鏈夋晥 0鏃犳晥
     private int isEffective;
+    //鍒涘缓鏃堕棿
+    private String createTime;
     //澶囨敞
     private String remark;
     //鐢靛瓙鏂囦欢
     private String url;
+    //鍙戠敓鏃堕棿
+    private String happenTime;
+    //鎵�灞炵敤鎴穒d
+    private int uid;
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getHappenTime() {
+        return happenTime;
+    }
+
+    public void setHappenTime(String happenTime) {
+        this.happenTime = happenTime;
+    }
 
     public String getTitle() {
         return title;
@@ -43,12 +64,12 @@
         this.createTime = createTime;
     }
 
-    public String getReason() {
-        return reason;
+    public String getCause() {
+        return cause;
     }
 
-    public void setReason(String reason) {
-        this.reason = reason;
+    public void setCause(String cause) {
+        this.cause = cause;
     }
 
     public String getBeneficiary() {
@@ -75,12 +96,12 @@
         this.difficulty = difficulty;
     }
 
-    public int getIsEffective() {
-        return isEffective;
+    public String getIsEffective() {
+        return isEffective==1?"鏄�":"鍚�";
     }
 
-    public void setIsEffective(int isEffective) {
-        this.isEffective = isEffective;
+    public void setIsEffective(String isEffective) {
+        this.isEffective = isEffective.equals("鏄�")?1:0;
     }
 
     public String getRemark() {
@@ -98,4 +119,12 @@
     public void setUrl(String url) {
         this.url = url;
     }
+
+    public int getUid() {
+        return uid;
+    }
+
+    public void setUid(int uid) {
+        this.uid = uid;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/HundredWishRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/HundredWishRequestBean.java
new file mode 100644
index 0000000..38a11ae
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/HundredWishRequestBean.java
@@ -0,0 +1,71 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.05.22. 22:17
+ * @desc
+ */
+public class HundredWishRequestBean extends PageRequestBean{
+    //鏍囬
+    private String title;
+    //鍙楁儬浜�
+    private String beneficiary;
+    //缁ф壙浜�
+    private String heir;
+    //鏃堕棿
+    private String happenStartTime;
+    private String happenEndTime;
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getBeneficiary() {
+        return beneficiary;
+    }
+
+    public void setBeneficiary(String beneficiary) {
+        this.beneficiary = beneficiary;
+    }
+
+    public String getHeir() {
+        return heir;
+    }
+
+    public void setHeir(String heir) {
+        this.heir = heir;
+    }
+
+    public String getHappenStartTime() {
+        return happenStartTime;
+    }
+
+    public void setHappenStartTime(String happenStartTime) {
+        this.happenStartTime = happenStartTime;
+    }
+
+    public String getHappenEndTime() {
+        return happenEndTime;
+    }
+
+    public void setHappenEndTime(String happenEndTime) {
+        this.happenEndTime = happenEndTime;
+    }
+
+    @Override
+    public Map<String, Object> toMap() {
+        Map<String, Object> map = super.toMap();
+        map.put("title",title==null?"":title);
+        map.put("beneficiary",beneficiary==null?"":beneficiary);
+        map.put("heir",heir==null?"":heir);
+        map.put("happenStartTime",happenStartTime==null?"":happenStartTime);
+        map.put("happenEndTime",happenEndTime==null?"":happenEndTime);
+        return map;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/IncomeAndExpensesBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/IncomeAndExpensesBean.java
index 8dbea95..cf05769 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/IncomeAndExpensesBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/IncomeAndExpensesBean.java
@@ -9,17 +9,18 @@
  */
 public class IncomeAndExpensesBean implements Serializable {
     private int id;
-    private int type;//0=鍩洪噾,1=鍙拌处
+    private String type;//鍙拌处
     private String createTime;
     private String price;//閲戦
     private String useFor;//鐢ㄩ��
     private String usePeople;//浣跨敤浜�
-    private int kind;//0=鐜伴噾,1=鑷姩鍒掓墸
+    private String kind;//鐜伴噾/鑷姩鍒掓墸
     private String balance;//浣欓
     private String remark;//澶囨敞
     private String url;//鐢靛瓙鏂囦欢
     private String familyId;//瀹跺涵id
     private int ownData;//鏄惁鏄湰瀹跺涵鐨勬暟鎹� 0=鍚�,1=鏄�
+    private String happenTime;//鍙戠敓鏃堕棿
 
     public int getId() {
         return id;
@@ -29,12 +30,28 @@
         this.id = id;
     }
 
-    public int getType() {
+    public String getType() {
         return type;
     }
 
-    public void setType(int type) {
+    public void setType(String type) {
         this.type = type;
+    }
+
+    public String getKind() {
+        return kind;
+    }
+
+    public void setKind(String kind) {
+        this.kind = kind;
+    }
+
+    public String getHappenTime() {
+        return happenTime;
+    }
+
+    public void setHappenTime(String happenTime) {
+        this.happenTime = happenTime;
     }
 
     public String getCreateTime() {
@@ -69,13 +86,7 @@
         this.usePeople = usePeople;
     }
 
-    public int getKind() {
-        return kind;
-    }
 
-    public void setKind(int kind) {
-        this.kind = kind;
-    }
 
     public String getBalance() {
         return balance;
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/IncomeAndExpensesRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/IncomeAndExpensesRequestBean.java
new file mode 100644
index 0000000..67fe25e
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/IncomeAndExpensesRequestBean.java
@@ -0,0 +1,66 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.05.20. 22:59
+ * @desc
+ */
+public class IncomeAndExpensesRequestBean extends PageRequestBean{
+    private String type;//鍩洪噾/鍙拌处
+    private String happenStartTime;//鍙戠敓鏃堕棿寮�濮�
+    private String happenEndTime;//鍙戠敓鏃堕棿缁撴潫
+    private String useFor;//鐢ㄩ��
+    private String usePeople;//浣跨敤浜�
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getHappenStartTime() {
+        return happenStartTime;
+    }
+
+    public void setHappenStartTime(String happenStartTime) {
+        this.happenStartTime = happenStartTime;
+    }
+
+    public String getHappenEndTime() {
+        return happenEndTime;
+    }
+
+    public void setHappenEndTime(String happenEndTime) {
+        this.happenEndTime = happenEndTime;
+    }
+
+    public String getUseFor() {
+        return useFor;
+    }
+
+    public void setUseFor(String useFor) {
+        this.useFor = useFor;
+    }
+
+    public String getUsePeople() {
+        return usePeople;
+    }
+
+    public void setUsePeople(String usePeople) {
+        this.usePeople = usePeople;
+    }
+
+    public Map<String, Object> toMap() {
+        Map<String, Object> map = super.toMap();
+        map.put("type", type==null?"":type);
+        map.put("happenStartTime", happenStartTime==null?"":happenStartTime);
+        map.put("happenEndTime", happenEndTime==null?"":happenEndTime);
+        map.put("useFor", useFor==null?"":useFor);
+        map.put("usePeople", usePeople==null?"":usePeople);
+        return map;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/IncomeAndExpensesResponseBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/IncomeAndExpensesResponseBean.java
deleted file mode 100644
index cccd3fe..0000000
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/IncomeAndExpensesResponseBean.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.application.zhangshi_app_android.bean;
-
-import java.util.List;
-
-/**
- * @author Ljj
- * @date 2023.04.20. 22:50
- * @desc
- */
-public class IncomeAndExpensesResponseBean {
-    private List<IncomeAndExpensesBean> data;
-    private long pageNum;
-    private long pageSize;
-    private long total;
-
-    public List<IncomeAndExpensesBean> getData() {
-        return data;
-    }
-
-    public void setData(List<IncomeAndExpensesBean> data) {
-        this.data = data;
-    }
-
-    public long getPageNum() {
-        return pageNum;
-    }
-
-    public void setPageNum(long pageNum) {
-        this.pageNum = pageNum;
-    }
-
-    public long getPageSize() {
-        return pageSize;
-    }
-
-    public void setPageSize(long pageSize) {
-        this.pageSize = pageSize;
-    }
-
-    public long getTotal() {
-        return total;
-    }
-
-    public void setTotal(long total) {
-        this.total = total;
-    }
-}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/LittleDoctorBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/LittleDoctorBean.java
index d11237d..d4a0fb1 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/LittleDoctorBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/LittleDoctorBean.java
@@ -13,11 +13,11 @@
     private String symptom;//鐥囩姸
     private String duration;//鎸佺画鏃堕棿
     private String cmedical;//涓尰澶勬柟
-    private String wmedical;
-    private String effect;
-    private String suitable;
-    private String remark;
-    private String url;
+    private String wmedical;//瑗垮尰澶勬柟
+    private String effect;//鍔熸晥
+    private String suitable;//閫傜敤浜虹兢
+    private String remark;//澶囨敞
+    private String url;//鐢靛瓙鏂囦欢鍦板潃
 
     public LittleDoctorBean(int id, String symptoms, String usingPeople, String duration, String type, String tcmPrescription, String westernMedicinePrescription, String efficacy, String remark, String url) {
         this.id = id;
@@ -32,6 +32,10 @@
         this.url = url;
     }
 
+    public LittleDoctorBean() {
+
+    }
+
     public int getId() {
         return id;
     }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/LittleDoctorRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/LittleDoctorRequestBean.java
index 70bc6a0..293e2b3 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/LittleDoctorRequestBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/LittleDoctorRequestBean.java
@@ -1,5 +1,7 @@
 package com.application.zhangshi_app_android.bean;
 
+import android.text.TextUtils;
+
 import java.util.HashMap;
 import java.util.Map;
 
@@ -8,17 +10,56 @@
  * @date 2023.04.15. 21:30
  * @desc
  */
-public class LittleDoctorRequestBean {
-    private int pageNum = 1;
-    private int pageSize = 20;
+public class LittleDoctorRequestBean extends PageRequestBean{
+    private String type;//绫诲瀷
+    private String symptom;//鐥囩姸
+    private String prescription;//澶勬柟
+    private String suitable;//閫傜敤浜虹兢
 
     public LittleDoctorRequestBean() {
     }
 
+    @Override
     public Map<String, Object> toMap() {
-        Map<String, Object> map = new HashMap<>();
-        map.put("page", pageNum);
-        map.put("pageSize", pageSize);
+        Map<String, Object> map = super.toMap();
+        map.put("type",type==null?"":type);
+        map.put("symptom",symptom==null?"":symptom);
+        if (!TextUtils.isEmpty(prescription)){
+            map.put("prescription",prescription==null?"":prescription);
+        }
+        map.put("suitable",suitable==null?"":suitable);
         return map;
     }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getSymptom() {
+        return symptom;
+    }
+
+    public void setSymptom(String symptom) {
+        this.symptom = symptom;
+    }
+
+    public String getPrescription() {
+        return prescription;
+    }
+
+    public void setPrescription(String prescription) {
+        this.prescription = prescription;
+    }
+
+    public String getSuitable() {
+        return suitable;
+    }
+
+    public void setSuitable(String suitable) {
+        this.suitable = suitable;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/LittleDoctorResponseBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/LittleDoctorResponseBean.java
deleted file mode 100644
index 5dd79d3..0000000
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/LittleDoctorResponseBean.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.application.zhangshi_app_android.bean;
-
-import java.util.List;
-
-/**
- * @author Ljj
- * @date 2023.04.17. 22:17
- * @desc 灏忓尰鐢熻繑鍥炴暟鎹�
- */
-public class LittleDoctorResponseBean {
-    private List<LittleDoctorBean> data;
-    private long pageNum;
-    private long pageSize;
-    private long total;
-
-    public List<LittleDoctorBean> getData() {
-        return data;
-    }
-
-    public void setData(List<LittleDoctorBean> data) {
-        this.data = data;
-    }
-
-    public long getPageNum() {
-        return pageNum;
-    }
-
-    public void setPageNum(long pageNum) {
-        this.pageNum = pageNum;
-    }
-
-    public long getPageSize() {
-        return pageSize;
-    }
-
-    public void setPageSize(long pageSize) {
-        this.pageSize = pageSize;
-    }
-
-    public long getTotal() {
-        return total;
-    }
-
-    public void setTotal(long total) {
-        this.total = total;
-    }
-}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/MarriageInfoBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/MarriageInfoBean.java
new file mode 100644
index 0000000..5c3c592
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/MarriageInfoBean.java
@@ -0,0 +1,309 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.List;
+
+/**
+ * @author Ljj
+ * @date 2023.05.21. 22:43
+ * @desc 濠氬Щ淇℃伅
+ */
+public class MarriageInfoBean {
+    //鏈汉淇℃伅
+    //鏈汉id
+    private String id;
+    //鏈汉鍚嶅瓧
+    private String name;
+    //鏈汉鍑虹敓鏃ユ湡
+    private String birthday;
+    //鏈汉鎴风睄鍦板潃
+    private String address;
+    //宸ヤ綔鍦板潃
+    private String workAddress;
+    //鏈汉濠氬Щ鐘舵�� 0鏈 1鍒濆 2绂诲 3鍐嶅
+    private int marryStatus;
+    //鏈汉鎬у埆 0濂� 1鐢�
+    private int sex;
+    //鏈汉姘戞棌
+    private String nation;
+    //鏈汉鐢佃瘽鍙风爜
+    private String phone;
+    //鏈汉韬唤璇佸彿鐮�
+    private String idNo;
+
+    //閰嶅伓淇℃伅
+    //閰嶅伓id
+    private String spouseId;
+    //閰嶅伓鍚嶅瓧
+    private String spouseName;
+    //閰嶅伓鍑虹敓鏃ユ湡
+    private String spouseBirthday;
+    //閰嶅伓鎴风睄鍦板潃
+    private String spouseAddress;
+    //閰嶅伓宸ヤ綔鍦板潃
+    private String spouseWorkAddress;
+    //閰嶅伓濠氬Щ鐘舵�� 0鏈 1鍒濆 2绂诲 3鍐嶅
+    private int spouseMarryStatus;
+    //閰嶅伓鎬у埆 0濂� 1鐢�
+    private int spouseSex;
+    //閰嶅伓姘戞棌
+    private String spouseNation;
+    //閰嶅伓鐢佃瘽鍙风爜
+    private String spousePhone;
+    //閰嶅伓韬唤璇佸彿鐮�
+    private String spouseIdNo;
+
+    //缁撳淇℃伅
+    //缁撳id
+    private int marryId;
+    //缁撳鏃堕棿
+    private String marryTime;
+    //鐢熻偛鎯呭喌 0鏈敓鑲� 1鍦ㄥ瓡 2宸茬敓鑲�
+    private int bearStatus;
+    //鏄惁棰嗗彇璁″垝鐢熻偛鏈嶅姟鎵嬪唽 0鏈鍙� 1宸查鍙�
+    private int handbookStatus;
+    //棰嗗彇璁″垝鐢熻偛鏈嶅姟鎵嬪唽鏃堕棿
+    private String handbookTime;
+    //鏄惁棰嗗彇鐙敓瀛愬コ璇� 0鏈鍙� 1宸查鍙�
+    private int oneBorn;
+    //棰嗗彇鐙敓瀛愬コ璇佹椂闂�
+    private String oneBornTime;
+    //闇�瑕佸0鏄庣殑鎯呭喌
+    private String content;
+    private String contentTime;
+    //澶囨敞
+    private String remark;
+    private String remarkTime;
+
+    private List<OldSpouseBean> oldSpouseList;
+
+
+    public String getAddress() { return address; }
+    public void setAddress(String value) { this.address = value; }
+
+    public String getBearStatus() {
+        if (bearStatus == 0) {
+            return "鏈敓鑲�";
+        } else if (bearStatus == 1) {
+            return "鍦ㄥ瓡";
+        } else if (bearStatus == 2) {
+            return "宸茬敓鑲�";
+        } else {
+            return "鏈煡";
+        }
+    }
+
+    public void setBearStatus(int bearStatus) {
+        this.bearStatus = bearStatus;
+    }
+
+    public String getBirthday() { return birthday; }
+    public void setBirthday(String value) { this.birthday = value; }
+
+    public String getContent() { return content; }
+    public void setContent(String value) { this.content = value; }
+
+    public String getHandbookStatus() {
+        return handbookStatus == 0 ? "鍚�" : "鏄�";
+    }
+
+    public void setHandbookStatus(int value) { this.handbookStatus = value; }
+
+    public String getHandbookTime() { return handbookTime; }
+    public void setHandbookTime(String value) { this.handbookTime = value; }
+
+    public String getid() { return id; }
+    public void setid(String value) { this.id = value; }
+
+    public int getMarryId() { return marryId; }
+    public void setMarryId(int value) { this.marryId = value; }
+
+    public String getMarryStatus() {
+        if (marryStatus == 0) {
+            return "鏈";
+        } else if (marryStatus == 1) {
+            return "鍒濆";
+        } else if (marryStatus == 2) {
+            return "绂诲";
+        } else if (marryStatus == 3) {
+            return "鍐嶅";
+        } else {
+            return "鏈煡";
+        }
+    }
+
+    public void setMarryStatus(int marryStatus) {
+        this.marryStatus = marryStatus;
+    }
+
+    public String getMarryTime() { return marryTime; }
+    public void setMarryTime(String value) { this.marryTime = value; }
+
+    public String getName() { return name; }
+    public void setName(String value) { this.name = value; }
+
+    public String getNation() { return nation; }
+    public void setNation(String value) { this.nation = value; }
+
+    public String getIdNo() {
+        return idNo;
+    }
+
+    public void setIdNo(String idNo) {
+        this.idNo = idNo;
+    }
+
+    public String getSpouseIdNo() {
+        return spouseIdNo;
+    }
+
+    public void setSpouseIdNo(String spouseIdNo) {
+        this.spouseIdNo = spouseIdNo;
+    }
+
+    public String getContentTime() {
+        return contentTime;
+    }
+
+    public void setContentTime(String contentTime) {
+        this.contentTime = contentTime;
+    }
+
+    public String getRemarkTime() {
+        return remarkTime;
+    }
+
+    public void setRemarkTime(String remarkTime) {
+        this.remarkTime = remarkTime;
+    }
+
+    /**
+     * 鍓嶄换鐨勪俊鎭垪琛�
+     */
+    public List<OldSpouseBean> getOldSpouseList() { return oldSpouseList; }
+    public void setOldSpouseList(List<OldSpouseBean> value) { this.oldSpouseList = value; }
+
+    public String getOneBorn() {
+        return oneBorn == 0 ? "鍚�" : "鏄�";
+    }
+    public void setOneBorn(int value) { this.oneBorn = value; }
+
+    public String getOneBornTime() { return oneBornTime; }
+    public void setOneBornTime(String value) { this.oneBornTime = value; }
+
+    public String getPhone() { return phone; }
+    public void setPhone(String value) { this.phone = value; }
+
+    public String getRemark() { return remark; }
+    public void setRemark(String value) { this.remark = value; }
+
+    public String getSex() {
+        return sex == 0 ? "濂�" : "鐢�";
+    }
+    public void setSex(String value) {
+        this.sex = value.equals("濂�") ? 0 : 1;
+    }
+
+    public String getSpouseAddress() { return spouseAddress; }
+    public void setSpouseAddress(String value) { this.spouseAddress = value; }
+
+    public String getSpouseBirthday() { return spouseBirthday; }
+    public void setSpouseBirthday(String value) { this.spouseBirthday = value; }
+
+    /**
+     * 鐜颁换淇℃伅
+     */
+    public String getSpouseId() { return spouseId; }
+    public void setSpouseId(String value) { this.spouseId = value; }
+
+
+    public String getSpouseMarryStatus() {
+        if (spouseMarryStatus == 0) {
+            return "鏈";
+        } else if (spouseMarryStatus == 1) {
+            return "鍒濆";
+        } else if (spouseMarryStatus == 2) {
+            return "绂诲";
+        } else if (spouseMarryStatus == 3) {
+            return "鍐嶅";
+        } else {
+            return "鏈煡";
+        }
+    }
+
+    public void setSpouseMarryStatus(int spouseMarryStatus) {
+        this.spouseMarryStatus = spouseMarryStatus;
+    }
+
+    public String getSpouseName() { return spouseName; }
+    public void setSpouseName(String value) { this.spouseName = value; }
+
+    public String getSpouseNation() { return spouseNation; }
+    public void setSpouseNation(String value) { this.spouseNation = value; }
+
+    public String getSpousePhone() { return spousePhone; }
+    public void setSpousePhone(String value) { this.spousePhone = value; }
+
+    public int getSpouseSex() { return spouseSex; }
+    public void setSpouseSex(int value) { this.spouseSex = value; }
+
+    public String getSpouseWorkAddress() { return spouseWorkAddress; }
+    public void setSpouseWorkAddress(String value) { this.spouseWorkAddress = value; }
+
+    public String getWorkAddress() { return workAddress; }
+    public void setWorkAddress(String value) { this.workAddress = value; }
+
+    public static class OldSpouseBean {
+        private String id;
+        private String name;
+        private String address;
+        private String birthday;
+        private int marryStatus;
+        private Object myId;
+        private String nation;
+        private String phone;
+        private int sex;
+        private String workAddress;
+
+        public String getAddress() { return address; }
+        public void setAddress(String value) { this.address = value; }
+
+        public String getBirthday() { return birthday; }
+        public void setBirthday(String value) { this.birthday = value; }
+
+        public String getid() { return id; }
+        public void setid(String value) { this.id = value; }
+
+        public String getMarryStatus() {
+            if (marryStatus == 0) {
+                return "鏈";
+            } else if (marryStatus == 1) {
+                return "鍒濆";
+            } else if (marryStatus == 2) {
+                return "绂诲";
+            } else if (marryStatus == 3) {
+                return "鍐嶅";
+            } else {
+                return "鏈煡";
+            }
+        }
+        public void setMarryStatus(int value) { this.marryStatus = value; }
+
+        public Object getMyId() { return myId; }
+        public void setMyId(Object value) { this.myId = value; }
+
+        public String getName() { return name; }
+        public void setName(String value) { this.name = value; }
+
+        public String getNation() { return nation; }
+        public void setNation(String value) { this.nation = value; }
+
+        public String getPhone() { return phone; }
+        public void setPhone(String value) { this.phone = value; }
+
+        public int getSex() { return sex; }
+        public void setSex(int value) { this.sex = value; }
+
+        public String getWorkAddress() { return workAddress; }
+        public void setWorkAddress(String value) { this.workAddress = value; }
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/MemoBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/MemoBean.java
new file mode 100644
index 0000000..8c2dc1a
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/MemoBean.java
@@ -0,0 +1,71 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.io.Serializable;
+
+/**
+ * @author Ljj
+ * @date 2023.06.11. 23:15
+ * @desc
+ */
+public class MemoBean implements Serializable {
+    //id
+    private int id;
+    //妯″潡id 瀹跺涵璧勪骇2007  瀹跺涵璁惧2017  璐骇:2026  闅愮:2031
+    private int fid;
+    //鏃堕棿
+    private String happenTime;
+    //鍒涘缓鏃堕棿
+    private String createTime;
+    //鍐呭
+    private String content;
+    //瀵瑰簲鐨勮褰昳d
+    private int cid;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public int getFid() {
+        return fid;
+    }
+
+    public void setFid(int fid) {
+        this.fid = fid;
+    }
+
+    public String getHappenTime() {
+        return happenTime;
+    }
+
+    public void setHappenTime(String happenTime) {
+        this.happenTime = happenTime;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public int getCid() {
+        return cid;
+    }
+
+    public void setCid(int cid) {
+        this.cid = cid;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/PageRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/PageRequestBean.java
new file mode 100644
index 0000000..1857136
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/PageRequestBean.java
@@ -0,0 +1,40 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.05.20. 17:57
+ * @desc 鍒嗛〉璇锋眰鍙傛暟 鍩虹被
+ */
+public class PageRequestBean {
+    //椤电爜
+    protected int pageNum = 1;
+    //姣忛〉鏁伴噺
+    protected int pageSize = 20;
+
+    public int getPageNum() {
+        return pageNum;
+    }
+
+    public void setPageNum(int pageNum) {
+        this.pageNum = pageNum;
+    }
+
+    public int getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(int pageSize) {
+        this.pageSize = pageSize;
+    }
+
+    public Map<String,Object> toMap() {
+        Map<String,Object> map = new HashMap<>();
+        map.put("pageNum",pageNum);
+        map.put("pageSize",pageSize);
+        return map;
+    }
+
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/PageResponseBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/PageResponseBean.java
new file mode 100644
index 0000000..9c60abf
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/PageResponseBean.java
@@ -0,0 +1,49 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.List;
+
+/**
+ * @author Ljj
+ * @date 2023.05.20. 17:59
+ * @desc 鏁版嵁鍒嗛〉杩斿洖绫�
+ */
+public class PageResponseBean<T> {
+    private int pageNum;
+    private int pageSize;
+    private int total;
+
+    private List<T> data;
+
+
+    public int getPageNum() {
+        return pageNum;
+    }
+
+    public void setPageNum(int pageNum) {
+        this.pageNum = pageNum;
+    }
+
+    public int getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(int pageSize) {
+        this.pageSize = pageSize;
+    }
+
+    public int getTotal() {
+        return total;
+    }
+
+    public void setTotal(int total) {
+        this.total = total;
+    }
+
+    public List<T> getData() {
+        return data;
+    }
+
+    public void setData(List<T> data) {
+        this.data = data;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/PersonalNotepadBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/PersonalNotepadBean.java
index 783bcfb..2b3ea18 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/PersonalNotepadBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/PersonalNotepadBean.java
@@ -13,11 +13,11 @@
     //鏍囬
     private String title;
     //鏃堕棿
-    private String time;
+    private String happenTime;
     //浜虹墿
-    private String person;
+    private String people;
     //鍦扮偣
-    private String place;
+    private String address;
     //澶囨敞
     private String remark;
     //鐢靛瓙鏂囦欢
@@ -39,28 +39,28 @@
         this.title = title;
     }
 
-    public String getTime() {
-        return time;
+    public String getHappenTime() {
+        return happenTime;
     }
 
-    public void setTime(String time) {
-        this.time = time;
+    public void setHappenTime(String happenTime) {
+        this.happenTime = happenTime;
     }
 
-    public String getPerson() {
-        return person;
+    public String getPeople() {
+        return people;
     }
 
-    public void setPerson(String person) {
-        this.person = person;
+    public void setPeople(String people) {
+        this.people = people;
     }
 
-    public String getPlace() {
-        return place;
+    public String getAddress() {
+        return address;
     }
 
-    public void setPlace(String place) {
-        this.place = place;
+    public void setAddress(String address) {
+        this.address = address;
     }
 
     public String getRemark() {
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/PersonalNotepadRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/PersonalNotepadRequestBean.java
new file mode 100644
index 0000000..bd6850c
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/PersonalNotepadRequestBean.java
@@ -0,0 +1,72 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.05.22. 15:28
+ * @desc
+ */
+public class PersonalNotepadRequestBean extends PageRequestBean{
+    //鏍囬
+    private String title;
+    //鍦扮偣
+    private String address;
+    //浜虹墿
+    private String people;
+    //鍙戠敓鏃堕棿寮�濮�
+    private String happenStartTime;
+    //鍙戠敓鏃堕棿缁撴潫
+    private String happenEndTime;
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getPeople() {
+        return people;
+    }
+
+    public void setPeople(String people) {
+        this.people = people;
+    }
+
+    public String getHappenStartTime() {
+        return happenStartTime;
+    }
+
+    public void setHappenStartTime(String happenStartTime) {
+        this.happenStartTime = happenStartTime;
+    }
+
+    public String getHappenEndTime() {
+        return happenEndTime;
+    }
+
+    public void setHappenEndTime(String happenEndTime) {
+        this.happenEndTime = happenEndTime;
+    }
+
+    @Override
+    public Map<String, Object> toMap() {
+        Map<String, Object> map = super.toMap();
+        map.put("title", title==null?"":title);
+        map.put("address", address ==null?"": address);
+        map.put("people", people ==null?"": people);
+        map.put("happenStartTime", happenStartTime==null?"":happenStartTime);
+        map.put("happenEndTime", happenEndTime==null?"":happenEndTime);
+        return map;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/PetBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/PetBean.java
new file mode 100644
index 0000000..1e6568a
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/PetBean.java
@@ -0,0 +1,249 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.io.Serializable;
+
+/**
+ * @author Ljj
+ * @date 2023.05.22. 22:58
+ * @desc
+ */
+public class PetBean implements Serializable {
+    //id
+    private String id;
+    //鐘瘉鍙风爜
+    private String idNum;
+    //闃蹭吉鐮�
+    private String securityCode;
+    //鐘
+    private String type;
+    //鍚嶅瓧
+    private String name;
+    //鍑虹敓鏃ユ湡
+    private String birth;
+    //鎬у埆 0 闆� 1 闆�
+    private int sex;
+    //姣涜壊
+    private String color;
+    //鐘彧鎬ц川
+    private String properties;
+    //楗涔犳儻锛堝枩锛�
+    private String eatHabit;
+    //楗涔犳儻锛堝繉锛�
+    private String disEatHabit;
+    //鐢熸椿涔犳儻锛堝枩锛�
+    private String lifeHabit;
+    //鐢熸椿涔犳儻锛堝繉锛�
+    private String disLifeHabit;
+    //灞呬綇鍦板潃
+    private String address;
+    //鑳藉惉鎳傜殑鏂硅█
+    private String dialect;
+
+    private int familyId;
+    private int ownData;
+    private String createTime;
+    private String headPicture;
+    //鍏ㄨ韩鐓�
+    private String fullPicture;
+    //鐘富濮撳悕
+    private String masterName;
+    //鐘富韬唤璇佸彿
+    private String masterIdNum;
+    //鐘富鐢佃瘽
+    private String phone;
+    //鐘富鍦板潃
+    private String masterAddress;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getIdNum() {
+        return idNum;
+    }
+
+    public void setIdNum(String idNum) {
+        this.idNum = idNum;
+    }
+
+    public String getSecurityCode() {
+        return securityCode;
+    }
+
+    public void setSecurityCode(String securityCode) {
+        this.securityCode = securityCode;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getBirth() {
+        return birth;
+    }
+
+    public void setBirth(String birth) {
+        this.birth = birth;
+    }
+
+    public String getSex() {
+        return sex==0?"闆�":"闆�";
+    }
+
+    public void setSex(String sex) {
+        this.sex = sex.equals("闆�")?0:1;
+    }
+
+    public String getColor() {
+        return color;
+    }
+
+    public void setColor(String color) {
+        this.color = color;
+    }
+
+    public String getProperties() {
+        return properties;
+    }
+
+    public void setProperties(String properties) {
+        this.properties = properties;
+    }
+
+    public String getEatHabit() {
+        return eatHabit;
+    }
+
+    public void setEatHabit(String eatHabit) {
+        this.eatHabit = eatHabit;
+    }
+
+    public String getDisEatHabit() {
+        return disEatHabit;
+    }
+
+    public void setDisEatHabit(String disEatHabit) {
+        this.disEatHabit = disEatHabit;
+    }
+
+    public String getLifeHabit() {
+        return lifeHabit;
+    }
+
+    public void setLifeHabit(String lifeHabit) {
+        this.lifeHabit = lifeHabit;
+    }
+
+    public String getDisLifeHabit() {
+        return disLifeHabit;
+    }
+
+    public void setDisLifeHabit(String disLifeHabit) {
+        this.disLifeHabit = disLifeHabit;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getDialect() {
+        return dialect;
+    }
+
+    public void setDialect(String dialect) {
+        this.dialect = dialect;
+    }
+
+
+    public int getFamilyId() {
+        return familyId;
+    }
+
+    public void setFamilyId(int familyId) {
+        this.familyId = familyId;
+    }
+
+    public int getOwnData() {
+        return ownData;
+    }
+
+    public void setOwnData(int ownData) {
+        this.ownData = ownData;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getHeadPicture() {
+        return headPicture;
+    }
+
+    public void setHeadPicture(String headPicture) {
+        this.headPicture = headPicture;
+    }
+
+    public String getFullPicture() {
+        return fullPicture;
+    }
+
+    public void setFullPicture(String fullPicture) {
+        this.fullPicture = fullPicture;
+    }
+
+    public String getMasterName() {
+        return masterName;
+    }
+
+    public void setMasterName(String masterName) {
+        this.masterName = masterName;
+    }
+
+    public String getMasterIdNum() {
+        return masterIdNum;
+    }
+
+    public void setMasterIdNum(String masterIdNum) {
+        this.masterIdNum = masterIdNum;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getMasterAddress() {
+        return masterAddress;
+    }
+
+    public void setMasterAddress(String masterAddress) {
+        this.masterAddress = masterAddress;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/PetMemoBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/PetMemoBean.java
index 1352ee8..0c4667c 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/PetMemoBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/PetMemoBean.java
@@ -8,37 +8,59 @@
  * @desc
  */
 public class PetMemoBean implements Serializable {
-    //棰樺悕
-    private String name;
-    //鏃ユ湡
-    private String time;
+    private String id;
+    //瀹犵墿id
+    private String pid;
+    //鍒涘缓鏃堕棿
+    private String createTime;
     //鎻愰啋鏃堕棿
-    private String reminderTime;
+    private String remindTime;
+    //鍙戠敓鏃堕棿
+    private String happenTime;
+    //棰樺悕
+    private String title;
+
     private String remark;
     private String url;
 
-    public String getName() {
-        return name;
+    public String getId() {
+        return id;
     }
 
-    public void setName(String name) {
-        this.name = name;
+    public void setId(String id) {
+        this.id = id;
     }
 
-    public String getTime() {
-        return time;
+    public String getPid() {
+        return pid;
     }
 
-    public void setTime(String time) {
-        this.time = time;
+    public void setPid(String pid) {
+        this.pid = pid;
     }
 
-    public String getReminderTime() {
-        return reminderTime;
+    public String getCreateTime() {
+        return createTime;
     }
 
-    public void setReminderTime(String reminderTime) {
-        this.reminderTime = reminderTime;
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getRemindTime() {
+        return remindTime;
+    }
+
+    public void setRemindTime(String remindTime) {
+        this.remindTime = remindTime;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
     }
 
     public String getRemark() {
@@ -56,4 +78,12 @@
     public void setUrl(String url) {
         this.url = url;
     }
+
+    public String getHappenTime() {
+        return happenTime;
+    }
+
+    public void setHappenTime(String happenTime) {
+        this.happenTime = happenTime;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/PetMemoRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/PetMemoRequestBean.java
new file mode 100644
index 0000000..ec5e5ab
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/PetMemoRequestBean.java
@@ -0,0 +1,84 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.05.23. 16:14
+ * @desc
+ */
+public class PetMemoRequestBean extends PageRequestBean{
+    //瀹犵墿id
+    private String pid;
+    //棰樺悕
+    private String title;
+    //寮�濮嬫椂闂�
+    private String happenStartTime;
+    //缁撴潫鏃堕棿
+    private String happenEndTime;
+    //鎻愰啋鏃堕棿寮�濮�
+    private String remindStartTime;
+    //鎻愰啋鏃堕棿缁撴潫
+    private String remindEndTime;
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getHappenStartTime() {
+        return happenStartTime;
+    }
+
+    public void setHappenStartTime(String happenStartTime) {
+        this.happenStartTime = happenStartTime;
+    }
+
+    public String getHappenEndTime() {
+        return happenEndTime;
+    }
+
+    public void setHappenEndTime(String happenEndTime) {
+        this.happenEndTime = happenEndTime;
+    }
+
+    public String getRemindStartTime() {
+        return remindStartTime;
+    }
+
+    public void setRemindStartTime(String remindStartTime) {
+        this.remindStartTime = remindStartTime;
+    }
+
+    public String getRemindEndTime() {
+        return remindEndTime;
+    }
+
+    public void setRemindEndTime(String remindEndTime) {
+        this.remindEndTime = remindEndTime;
+    }
+    public void setPid(String pid) {
+        this.pid = pid;
+    }
+
+    public String getPid() {
+        return pid;
+    }
+
+    @Override
+    public Map<String, Object> toMap() {
+        Map<String, Object> map = super.toMap();
+        map.put("pid", pid == null ? "" : pid);
+        map.put("title", title == null ? "" : title);
+        map.put("happenStartTime", happenStartTime == null ? "" : happenStartTime);
+        map.put("happenEndTime", happenEndTime == null ? "" : happenEndTime);
+        map.put("remindStartTime", remindStartTime == null ? "" : remindStartTime);
+        map.put("remindEndTime", remindEndTime == null ? "" : remindEndTime);
+        return map;
+    }
+
+
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/PetOwnerBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/PetOwnerBean.java
new file mode 100644
index 0000000..41a5e22
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/PetOwnerBean.java
@@ -0,0 +1,119 @@
+package com.application.zhangshi_app_android.bean;
+
+/**
+ * @author Ljj
+ * @date 2023.05.23. 15:20
+ * @desc 瀹犵墿涓讳汉
+ */
+public class PetOwnerBean {
+    //id
+    private long id;
+    //瀹犵墿琛↖d
+    private String petId;
+    //瀹犵墿涓讳汉鍚嶇О
+    private String name;
+    //璇佷欢绫诲瀷
+    private String certificateType;
+    //璇佷欢鍙风爜
+    private String certificateNo;
+    //鍥哄畾鍙风爜
+    private String fixedNo;
+    //绉诲姩鍙风爜
+    private String phoneNo;
+    //鎷ユ湁鏁伴噺
+    private int many;
+    //浣忔墍璇︾粏鍦板潃
+    private String address;
+    //浣忔墍鎬ц川
+    private String property;
+    //鐢靛瓙閭欢
+    private String email;
+
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public String getPetId() {
+        return petId;
+    }
+
+    public void setPetId(String petId) {
+        this.petId = petId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCertificateType() {
+        return certificateType;
+    }
+
+    public void setCertificateType(String certificateType) {
+        this.certificateType = certificateType;
+    }
+
+    public String getCertificateNo() {
+        return certificateNo;
+    }
+
+    public void setCertificateNo(String certificateNo) {
+        this.certificateNo = certificateNo;
+    }
+
+    public String getFixedNo() {
+        return fixedNo;
+    }
+
+    public void setFixedNo(String fixedNo) {
+        this.fixedNo = fixedNo;
+    }
+
+    public String getPhoneNo() {
+        return phoneNo;
+    }
+
+    public void setPhoneNo(String phoneNo) {
+        this.phoneNo = phoneNo;
+    }
+
+    public int getMany() {
+        return many;
+    }
+
+    public void setMany(int many) {
+        this.many = many;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getProperty() {
+        return property;
+    }
+
+    public void setProperty(String property) {
+        this.property = property;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/PetRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/PetRequestBean.java
new file mode 100644
index 0000000..b5bbd1f
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/PetRequestBean.java
@@ -0,0 +1,50 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.05.22. 22:59
+ * @desc
+ */
+public class PetRequestBean extends PageRequestBean{
+    //鍚嶅瓧
+    private String name;
+    //鍑虹敓鏃ユ湡寮�濮嬫椂闂�
+    private String happenStartTime;
+    //鍑虹敓鏃ユ湡缁撴潫鏃堕棿
+    private String happenEndTime;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getHappenStartTime() {
+        return happenStartTime;
+    }
+
+    public void setHappenStartTime(String happenStartTime) {
+        this.happenStartTime = happenStartTime;
+    }
+
+    public String getHappenEndTime() {
+        return happenEndTime;
+    }
+
+    public void setHappenEndTime(String happenEndTime) {
+        this.happenEndTime = happenEndTime;
+    }
+
+    @Override
+    public Map<String, Object> toMap() {
+        Map<String, Object> map = super.toMap();
+        map.put("name",name==null?"":name);
+        map.put("happenStartTime",happenStartTime==null?"":happenStartTime);
+        map.put("happenEndTime",happenEndTime==null?"":happenEndTime);
+        return map;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/PrivacyBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/PrivacyBean.java
index 1c58add..350ef9c 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/PrivacyBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/PrivacyBean.java
@@ -1,6 +1,7 @@
 package com.application.zhangshi_app_android.bean;
 
 import java.io.Serializable;
+import java.util.Objects;
 
 /**
  * @author Ljj
@@ -8,28 +9,41 @@
  * @desc
  */
 public class PrivacyBean implements Serializable {
+    private int id;
     //绫诲埆
     private String type;
+    //璐﹀彿(鍚悊璐㈡敹鐩�)
+    private String accNo;
     //鏃堕棿
-    private String time;
-    //璐﹀彿
-    private String account;
-    //瀵嗙爜
-    private String password;
+    private String happenTime;
     //鏈夋晥鏃堕棿
-    private String effectiveTime;
-    //鏄惁寮�鍚寚绾�
-    private int isFingerprint;
-    //鏄惁寮�鍚汉鑴歌瘑鍒�
+    private String validityDate;
+    //瀵嗙爜(瀛樻姌鍜屽崱鐢ㄩ�楀彿闅斿紑)
+    private String password;
+    //鏄惁寮�鍚寚绾� 0鍚� 1鏄�
+    private int isFinger;
+    //鏄惁寮�鍚汉鑴歌瘑鍒� 0鍚� 1鏄�
     private int isFace;
-    //绉佹湁杩樻槸鍏湁
-    private int isPublic;
+    //鏄惁绉佹湁 0鍚� 1鏄�
+    private int isPrivate;
     //瀛樻斁浣嶇疆
     private String location;
     //澶囨敞
     private String remark;
     //鐢靛瓙鏂囦欢
     private String url;
+    //鐢ㄦ埛id
+    private String userId;
+    //鍒涘缓鏃堕棿
+    private String createTime;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
 
     public String getType() {
         return type;
@@ -39,20 +53,28 @@
         this.type = type;
     }
 
-    public String getTime() {
-        return time;
+    public String getAccNo() {
+        return accNo;
     }
 
-    public void setTime(String time) {
-        this.time = time;
+    public void setAccNo(String accNo) {
+        this.accNo = accNo;
     }
 
-    public String getAccount() {
-        return account;
+    public String getHappenTime() {
+        return happenTime;
     }
 
-    public void setAccount(String account) {
-        this.account = account;
+    public void setHappenTime(String happenTime) {
+        this.happenTime = happenTime;
+    }
+
+    public String getValidityDate() {
+        return validityDate;
+    }
+
+    public void setValidityDate(String validityDate) {
+        this.validityDate = validityDate;
     }
 
     public String getPassword() {
@@ -63,36 +85,34 @@
         this.password = password;
     }
 
-    public String getEffectiveTime() {
-        return effectiveTime;
+    public String getIsFinger() {
+        return isFinger==0?"鍚�":"鏄�";
     }
 
-    public void setEffectiveTime(String effectiveTime) {
-        this.effectiveTime = effectiveTime;
+    public void setIsFinger(String isFinger) {
+        if (isFinger != null){
+            this.isFinger = isFinger.equals("鍚�")?0:1;
+        }
     }
 
-    public int getIsFingerprint() {
-        return isFingerprint;
+    public String getIsFace() {
+        return isFace==0?"鍚�":"鏄�";
     }
 
-    public void setIsFingerprint(int isFingerprint) {
-        this.isFingerprint = isFingerprint;
+    public void setIsFace(String isFace) {
+        if (isFace != null){
+            this.isFace = isFace.equals("鍚�")?0:1;
+        }
     }
 
-    public int getIsFace() {
-        return isFace;
+    public String getIsPrivate() {
+        return isPrivate==0?"鍏湁":"绉佹湁";
     }
 
-    public void setIsFace(int isFace) {
-        this.isFace = isFace;
-    }
-
-    public int getIsPublic() {
-        return isPublic;
-    }
-
-    public void setIsPublic(int isPublic) {
-        this.isPublic = isPublic;
+    public void setIsPrivate(String isPrivate) {
+        if (isPrivate != null){
+            this.isPrivate = isPrivate.equals("鍚�")?0:1;
+        }
     }
 
     public String getLocation() {
@@ -118,4 +138,20 @@
     public void setUrl(String url) {
         this.url = url;
     }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/PrivacyRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/PrivacyRequestBean.java
new file mode 100644
index 0000000..c2487a6
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/PrivacyRequestBean.java
@@ -0,0 +1,91 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.05.22. 19:33
+ * @desc
+ */
+public class PrivacyRequestBean extends PageRequestBean{
+    private String type;//绫诲埆
+    private String accNo;//璐﹀彿
+    private String happenStartTime;//寮�濮嬫椂闂�
+    private String happenEndTime;//缁撴潫鏃堕棿
+    private int isPrivate = -1;//鏄惁绉佹湁 0鍚� 1鏄�
+    private String location;//瀛樻斁浣嶇疆
+    private int isFinger = -1;//鏄惁寮�鍚寚绾� 0鍚� 1鏄�
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getAccNo() {
+        return accNo;
+    }
+
+    public void setAccNo(String accNo) {
+        this.accNo = accNo;
+    }
+
+    public String getHappenStartTime() {
+        return happenStartTime;
+    }
+
+    public void setHappenStartTime(String happenStartTime) {
+        this.happenStartTime = happenStartTime;
+    }
+
+    public String getHappenEndTime() {
+        return happenEndTime;
+    }
+
+    public void setHappenEndTime(String happenEndTime) {
+        this.happenEndTime = happenEndTime;
+    }
+
+    public int getIsPrivate() {
+        return isPrivate;
+    }
+
+    public void setIsPrivate(int isPrivate) {
+        this.isPrivate = isPrivate;
+    }
+
+    public String getLocation() {
+        return location;
+    }
+
+    public void setLocation(String location) {
+        this.location = location;
+    }
+
+    public int getIsFinger() {
+        return isFinger;
+    }
+
+    public void setIsFinger(int isFinger) {
+        this.isFinger = isFinger;
+    }
+
+    @Override
+    public Map<String, Object> toMap() {
+        Map<String, Object> map = super.toMap();
+        map.put("type",type==null?"":type);
+        map.put("accNo",accNo==null?"":accNo);
+        map.put("happenStartTime",happenStartTime==null?"":happenStartTime);
+        map.put("happenEndTime",happenEndTime==null?"":happenEndTime);
+        if (isFinger != -1){
+            map.put("isFinger",isFinger);
+        }
+        if (isPrivate != -1){
+            map.put("isPrivate",isPrivate);
+        }
+        map.put("location",location==null?"":location);
+        return map;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/PropertyBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/PropertyBean.java
index 2792be0..ddd71a3 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/PropertyBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/PropertyBean.java
@@ -8,31 +8,38 @@
  * @desc 涓汉璐骇 Bean
  */
 public class PropertyBean implements Serializable {
-
-    private String type;
-    private String name;
+    private int id;//id
+    private int userId;//鐢ㄦ埛id
+    private String type;//璐骇绫诲埆
+    private String incomeName;//鏀舵敮鍚嶇О
     private String price;//浠峰��
-    private String createTime;//鏃堕棿
-    private String term;//鏈熼檺
-    private String status;//鍙樻洿鎴栨敞閿�
+    private String timeLimit;//鏈熼檺
+    private String isChange;//鍙樻洿鎴栨敞閿�
     private String propertyRight;//浜ф潈
     private String location;//浣嶇疆
+    private String createTime;//鍒涘缓鏃堕棿
     private String remark;//澶囨敞
     private String url;//鐢靛瓙鏂囦欢
+    private int status;//鏄惁娉ㄩ攢 1.鏄� 0.鍚�
+    private String happenTime;//鍙戠敓鏃堕棿
 
     public PropertyBean() {
     }
-    public PropertyBean(String type, String name, String price, String createTime, String term, String status, String propertyRight, String location, String remark, String url) {
-        this.type = type;
-        this.name = name;
-        this.price = price;
-        this.createTime = createTime;
-        this.term = term;
-        this.status = status;
-        this.propertyRight = propertyRight;
-        this.location = location;
-        this.remark = remark;
-        this.url = url;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getHappenTime() {
+        return happenTime;
+    }
+
+    public void setHappenTime(String happenTime) {
+        this.happenTime = happenTime;
     }
 
     public String getType() {
@@ -43,12 +50,12 @@
         this.type = type;
     }
 
-    public String getName() {
-        return name;
+    public String getIncomeName() {
+        return incomeName;
     }
 
-    public void setName(String name) {
-        this.name = name;
+    public void setIncomeName(String incomeName) {
+        this.incomeName = incomeName;
     }
 
     public String getPrice() {
@@ -67,20 +74,20 @@
         this.createTime = createTime;
     }
 
-    public String getTerm() {
-        return term;
+    public String getTimeLimit() {
+        return timeLimit;
     }
 
-    public void setTerm(String term) {
-        this.term = term;
+    public void setTimeLimit(String timeLimit) {
+        this.timeLimit = timeLimit;
     }
 
-    public String getStatus() {
-        return status;
+    public String getIsChange() {
+        return isChange;
     }
 
-    public void setStatus(String status) {
-        this.status = status;
+    public void setIsChange(String isChange) {
+        this.isChange = isChange;
     }
 
     public String getPropertyRight() {
@@ -114,4 +121,20 @@
     public void setUrl(String url) {
         this.url = url;
     }
+
+    public int getUserId() {
+        return userId;
+    }
+
+    public void setUserId(int userId) {
+        this.userId = userId;
+    }
+
+    public String getStatus() {
+        return status==1?"鏄�":"鍚�";
+    }
+
+    public void setStatus(String status) {
+        this.status = status.equals("鏄�")?1:0;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/PropertyRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/PropertyRequestBean.java
new file mode 100644
index 0000000..2ef3bf3
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/PropertyRequestBean.java
@@ -0,0 +1,67 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.05.22. 21:51
+ * @desc
+ */
+public class PropertyRequestBean extends PageRequestBean{
+    private String type;//绫诲瀷
+    private String name;//鍚嶇О
+    private String term;//鏈熼檺
+    private String happenStartTime;//鏃堕棿寮�濮�
+    private String happenEndTime;//鏃堕棿缁撴潫
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getTerm() {
+        return term;
+    }
+
+    public void setTerm(String term) {
+        this.term = term;
+    }
+
+    public String getHappenStartTime() {
+        return happenStartTime;
+    }
+
+    public void setHappenStartTime(String happenStartTime) {
+        this.happenStartTime = happenStartTime;
+    }
+
+    public String getHappenEndTime() {
+        return happenEndTime;
+    }
+
+    public void setHappenEndTime(String happenEndTime) {
+        this.happenEndTime = happenEndTime;
+    }
+
+    @Override
+    public Map<String, Object> toMap() {
+        Map<String, Object> map = super.toMap();
+        map.put("type",type==null?"":type);
+        map.put("name",name==null?"":name);
+        map.put("term",term==null?"":term);
+        map.put("happenStartTime",happenStartTime==null?"":happenStartTime);
+        map.put("happenEndTime",happenEndTime==null?"":happenEndTime);
+        return map;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/TourismBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/TourismBean.java
index e9372be..c0825a1 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/TourismBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/TourismBean.java
@@ -1,36 +1,51 @@
 package com.application.zhangshi_app_android.bean;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
  * @author Ljj
  * @date 2023.04.28. 21:17
- * @desc
+ * @desc 鏃呮父璐圭敤璁板綍
  */
 public class TourismBean implements Serializable {
+    //id
+    private String id;
     //鏍囬
     private String title;
     //寮�濮嬫椂闂�
     private String startTime;
     //缁撴潫鏃堕棿
     private String endTime;
+    //鍒涘缓鏃堕棿
+    private String createTime;
     //鎬诲ぉ鏁�
     private String totalDay;
     //鎬婚噾棰�
-    private String totalMoney;
+    private double totalCost;
     //椁愯垂
-    private String mealMoney;
+    private double eat;
     //浣忓璐�
-    private String hotelMoney;
+    private double stay;
     //浜ら�氳垂
-    private String trafficMoney;
+    private double traffic;
     //璐墿
-    private String shoppingMoney;
+    private double shopping;
     //闂ㄧエ
-    private String ticketMoney;
+    private double entrance;
+    //鐢ㄦ埛id
+    private String myId;
     //姣忔棩娑堣垂璇︾粏璁板綍
-    private List<DailyConsumeRecordBean> dailyConsumeRecordBeans;
+    private List<ConsumeRecordBean> detailList = new ArrayList<>();
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
 
     public String getTitle() {
         return title;
@@ -56,6 +71,14 @@
         this.endTime = endTime;
     }
 
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
     public String getTotalDay() {
         return totalDay;
     }
@@ -64,59 +87,67 @@
         this.totalDay = totalDay;
     }
 
-    public String getTotalMoney() {
-        return totalMoney;
+    public double getTotalCost() {
+        return totalCost;
     }
 
-    public void setTotalMoney(String totalMoney) {
-        this.totalMoney = totalMoney;
+    public void setTotalCost(double totalCost) {
+        this.totalCost = totalCost;
     }
 
-    public String getMealMoney() {
-        return mealMoney;
+    public double getEat() {
+        return eat;
     }
 
-    public void setMealMoney(String mealMoney) {
-        this.mealMoney = mealMoney;
+    public void setEat(double eat) {
+        this.eat = eat;
     }
 
-    public String getHotelMoney() {
-        return hotelMoney;
+    public double getStay() {
+        return stay;
     }
 
-    public void setHotelMoney(String hotelMoney) {
-        this.hotelMoney = hotelMoney;
+    public void setStay(double stay) {
+        this.stay = stay;
     }
 
-    public String getTrafficMoney() {
-        return trafficMoney;
+    public double getTraffic() {
+        return traffic;
     }
 
-    public void setTrafficMoney(String trafficMoney) {
-        this.trafficMoney = trafficMoney;
+    public void setTraffic(double traffic) {
+        this.traffic = traffic;
     }
 
-    public String getShoppingMoney() {
-        return shoppingMoney;
+    public double getShopping() {
+        return shopping;
     }
 
-    public void setShoppingMoney(String shoppingMoney) {
-        this.shoppingMoney = shoppingMoney;
+    public void setShopping(double shopping) {
+        this.shopping = shopping;
     }
 
-    public String getTicketMoney() {
-        return ticketMoney;
+    public double getEntrance() {
+        return entrance;
     }
 
-    public void setTicketMoney(String ticketMoney) {
-        this.ticketMoney = ticketMoney;
+    public void setEntrance(double entrance) {
+        this.entrance = entrance;
     }
 
-    public List<DailyConsumeRecordBean> getDailyConsumeRecordBeans() {
-        return dailyConsumeRecordBeans;
+    public String getMyId() {
+        return myId;
     }
 
-    public void setDailyConsumeRecordBeans(List<DailyConsumeRecordBean> dailyConsumeRecordBeans) {
-        this.dailyConsumeRecordBeans = dailyConsumeRecordBeans;
+    public void setMyId(String myId) {
+        this.myId = myId;
+    }
+
+    public List<ConsumeRecordBean> getDetailList() {
+        return detailList;
+    }
+
+    public void setDetailList(List<ConsumeRecordBean> detailList) {
+        this.detailList = detailList;
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/TourismExperienceBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/TourismExperienceBean.java
index 7c87586..b0ce0c6 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/TourismExperienceBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/TourismExperienceBean.java
@@ -8,26 +8,32 @@
  * @desc 鏃呮父缁忓巻 Bean
  */
 public class TourismExperienceBean implements Serializable{
+    //id
+    private int id;
     //鏍囬
     private String title;
-    //鏃堕棿
-    private String time;
+    //鍙戠敓鏃堕棿
+    private String happenTime;
     //鍦扮偣
     private String address;
     //浜虹墿
-    private String person;
+    private String people;
     //鏃呮湡
-    private String travelTime;
+    private String travelPeriod;
     //鎸佽瘉鏃呮父
     private String certificate;
     //璐圭敤
-    private String cost;
-    //鍏垂/鑷垂
-    private int free;
+    private String totalPrice;
+    //0.鍏垂 1.鑷垂
+    private int self;
     //澶囨敞
     private String remark;
     //鐢靛瓙鏂囦欢
     private String url;
+    //鍒涘缓鏃堕棿
+    private String createTime;
+    //璐圭敤璁板綍琛╥d
+    private String feeId;
 
     public String getTitle() {
         return title;
@@ -37,12 +43,12 @@
         this.title = title;
     }
 
-    public String getTime() {
-        return time;
+    public String getHappenTime() {
+        return happenTime;
     }
 
-    public void setTime(String time) {
-        this.time = time;
+    public void setHappenTime(String happenTime) {
+        this.happenTime = happenTime;
     }
 
     public String getAddress() {
@@ -53,20 +59,20 @@
         this.address = address;
     }
 
-    public String getPerson() {
-        return person;
+    public String getPeople() {
+        return people;
     }
 
-    public void setPerson(String person) {
-        this.person = person;
+    public void setPeople(String people) {
+        this.people = people;
     }
 
-    public String getTravelTime() {
-        return travelTime;
+    public String getTravelPeriod() {
+        return travelPeriod;
     }
 
-    public void setTravelTime(String travelTime) {
-        this.travelTime = travelTime;
+    public void setTravelPeriod(String travelPeriod) {
+        this.travelPeriod = travelPeriod;
     }
 
     public String getCertificate() {
@@ -77,20 +83,20 @@
         this.certificate = certificate;
     }
 
-    public String getCost() {
-        return cost;
+    public String getTotalPrice() {
+        return totalPrice;
     }
 
-    public void setCost(String cost) {
-        this.cost = cost;
+    public void setTotalPrice(String totalPrice) {
+        this.totalPrice = totalPrice;
     }
 
-    public int getFree() {
-        return free;
+    public int getSelf() {
+        return self;
     }
 
-    public void setFree(int free) {
-        this.free = free;
+    public void setSelf(int self) {
+        this.self = self;
     }
 
     public String getRemark() {
@@ -108,4 +114,28 @@
     public void setUrl(String url) {
         this.url = url;
     }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getFeeId() {
+        return feeId;
+    }
+
+    public void setFeeId(String feeId) {
+        this.feeId = feeId;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/TourismExperienceRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/TourismExperienceRequestBean.java
new file mode 100644
index 0000000..463e6cf
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/TourismExperienceRequestBean.java
@@ -0,0 +1,83 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.06.11. 16:50
+ * @desc
+ */
+public class TourismExperienceRequestBean extends PageRequestBean{
+    //璐圭敤id
+    private String fid;
+    //寮�濮嬫椂闂�
+    private String happenStartTime;
+    //缁撴潫鏃堕棿
+    private String happenEndTime;
+    //鏍囬
+    private String title;
+    //鍦扮偣
+    private String address;
+    //浜虹墿
+    private String people;
+
+    public String getHappenStartTime() {
+        return happenStartTime;
+    }
+
+    public void setHappenStartTime(String happenStartTime) {
+        this.happenStartTime = happenStartTime;
+    }
+
+    public String getHappenEndTime() {
+        return happenEndTime;
+    }
+
+    public void setHappenEndTime(String happenEndTime) {
+        this.happenEndTime = happenEndTime;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getPeople() {
+        return people;
+    }
+
+    public void setPeople(String people) {
+        this.people = people;
+    }
+
+    public String getFid() {
+        return fid;
+    }
+
+    public void setFid(String fid) {
+        this.fid = fid;
+    }
+
+    @Override
+    public Map<String, Object> toMap() {
+        Map<String, Object> map = super.toMap();
+        map.put("fid",fid == null ? "" : fid);
+        map.put("happenStartTime",happenStartTime == null ? "" : happenStartTime);
+        map.put("happenEndTime",happenEndTime == null ? "" : happenEndTime);
+        map.put("title",title == null ? "" : title);
+        map.put("address",address == null ? "" : address);
+        map.put("people",people == null ? "" : people);
+        return map;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/TourismRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/TourismRequestBean.java
new file mode 100644
index 0000000..dccf48c
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/TourismRequestBean.java
@@ -0,0 +1,47 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.06.06. 15:09
+ * @desc
+ */
+public class TourismRequestBean extends PageRequestBean{
+    private String start;
+    private String end;
+    private String totalDay;
+
+    public String getStart() {
+        return start;
+    }
+
+    public void setStart(String start) {
+        this.start = start;
+    }
+
+    public String getEnd() {
+        return end;
+    }
+
+    public void setEnd(String end) {
+        this.end = end;
+    }
+
+    public String getTotalDay() {
+        return totalDay;
+    }
+
+    public void setTotalDay(String totalDay) {
+        this.totalDay = totalDay;
+    }
+
+    @Override
+    public Map<String, Object> toMap() {
+        Map<String, Object> map = super.toMap();
+        map.put("start", start == null ? "" : start);
+        map.put("end", end == null ? "" : end);
+        map.put("totalDay",totalDay == null ? "" : totalDay);
+        return map;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/UpdateVersionBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/UpdateVersionBean.java
new file mode 100644
index 0000000..67dc0cb
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/UpdateVersionBean.java
@@ -0,0 +1,56 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.io.Serializable;
+
+/**
+ * @author Ljj
+ * @date 2023.07.25. 16:06
+ * @desc
+ */
+public class UpdateVersionBean implements Serializable {
+    private int versionCode;
+    private String appUrl;
+    private String content;
+    private String publishTime;
+    private boolean forceUpdate;
+
+    public int getVersionCode() {
+        return versionCode;
+    }
+
+    public void setVersionCode(int versionCode) {
+        this.versionCode = versionCode;
+    }
+
+    public String getAppUrl() {
+        return appUrl;
+    }
+
+    public void setAppUrl(String appUrl) {
+        this.appUrl = appUrl;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public String getPublishTime() {
+        return publishTime;
+    }
+
+    public void setPublishTime(String publishTime) {
+        this.publishTime = publishTime;
+    }
+
+    public boolean isForceUpdate() {
+        return forceUpdate;
+    }
+
+    public void setForceUpdate(boolean forceUpdate) {
+        this.forceUpdate = forceUpdate;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/data/DataRepository.java b/app/src/main/java/com/application/zhangshi_app_android/data/DataRepository.java
index cf16090..40d0633 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/data/DataRepository.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/data/DataRepository.java
@@ -4,24 +4,45 @@
 
 import com.android.app_base.base.model.BaseModel;
 import com.android.app_base.http.ResultData;
+import com.application.zhangshi_app_android.bean.AnnualHealthStatusBean;
+import com.application.zhangshi_app_android.bean.BannerBean;
 import com.application.zhangshi_app_android.bean.CaptchaImageBean;
+import com.application.zhangshi_app_android.bean.CertificateOfHonorBean;
+import com.application.zhangshi_app_android.bean.CleanStorageBean;
 import com.application.zhangshi_app_android.bean.ContactsDetailBean;
-import com.application.zhangshi_app_android.bean.ContactsResponseBean;
-import com.application.zhangshi_app_android.bean.FamilyAssetsResponseBean;
+import com.application.zhangshi_app_android.bean.FamilyAssetsBean;
 import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
-import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceAbroadConditionBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceAutobiographyBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceHolderConditionBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceInformationBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceRelationshipBean;
-import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean;
+import com.application.zhangshi_app_android.bean.HealthCareBaseInfoBean;
+import com.application.zhangshi_app_android.bean.HealthCareExistingProblemsBean;
+import com.application.zhangshi_app_android.bean.HealthCareLifeHabitsBean;
+import com.application.zhangshi_app_android.bean.HealthCareNotesContentBean;
+import com.application.zhangshi_app_android.bean.HealthCareNursingExaminationBean;
+import com.application.zhangshi_app_android.bean.HomeDevicesBean;
+import com.application.zhangshi_app_android.bean.HomeMemberBean;
+import com.application.zhangshi_app_android.bean.HomeRootBean;
 import com.application.zhangshi_app_android.bean.HonorCollectionResponseBean;
-import com.application.zhangshi_app_android.bean.IncomeAndExpensesResponseBean;
-import com.application.zhangshi_app_android.bean.LittleDoctorResponseBean;
+import com.application.zhangshi_app_android.bean.HundredWishBean;
+import com.application.zhangshi_app_android.bean.IncomeAndExpensesBean;
+import com.application.zhangshi_app_android.bean.MarriageInfoBean;
+import com.application.zhangshi_app_android.bean.MemoBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
+import com.application.zhangshi_app_android.bean.LittleDoctorBean;
 import com.application.zhangshi_app_android.bean.LoginRequestBean;
 import com.application.zhangshi_app_android.bean.LoginResponseBean;
+import com.application.zhangshi_app_android.bean.PersonalNotepadBean;
+import com.application.zhangshi_app_android.bean.PetBean;
+import com.application.zhangshi_app_android.bean.PetMemoBean;
+import com.application.zhangshi_app_android.bean.PrivacyBean;
+import com.application.zhangshi_app_android.bean.PropertyBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
+import com.application.zhangshi_app_android.bean.TourismExperienceBean;
+import com.application.zhangshi_app_android.bean.UpdateVersionBean;
 import com.application.zhangshi_app_android.bean.UploadFileResponseBean;
 import com.application.zhangshi_app_android.data.source.HttpDataSource;
 import com.application.zhangshi_app_android.data.source.LocalDataSource;
@@ -31,6 +52,7 @@
 import java.util.List;
 import java.util.Map;
 
+import io.reactivex.Completable;
 import io.reactivex.Observable;
 import okhttp3.MultipartBody;
 
@@ -96,7 +118,7 @@
      * 鑾峰彇瀹跺ぇ浜嬭
      */
     @Override
-    public Observable<ResultData<FamilyMemorabiliaResponseBean>> getFamilyMemorabilia(Map<String,Object> paramsMap) {
+    public Observable<ResultData<PageResponseBean<FamilyMemorabiliaBean>>> getFamilyMemorabilia(Map<String,Object> paramsMap) {
         return mHttpDataSource.getFamilyMemorabilia(paramsMap);
     }
     /**
@@ -131,16 +153,35 @@
     /**
      * 鑾峰彇瀹跺涵璧勪骇
      */
-    public Observable<ResultData<FamilyAssetsResponseBean>> getFamilyAssets(Map<String,Object> paramsMap) {
+    public Observable<ResultData<PageResponseBean<FamilyAssetsBean>>> getFamilyAssets(Map<String,Object> paramsMap) {
         return mHttpDataSource.getFamilyAssets(paramsMap);
     }
 
     /**
      * 鑾峰彇瀹跺涵璁惧
      */
-    public Observable<ResultData<HomeDevicesResponseBean>> getHomeDevices(Map<String, Object> paramsMap) {
+    public Observable<ResultData<PageResponseBean<HomeDevicesBean>>> getHomeDevices(Map<String, Object> paramsMap) {
         return mHttpDataSource.getHomeDevices(paramsMap);
     }
+    /**
+     * 娣诲姞瀹跺涵璁惧
+     */
+    public Observable<ResultData<String>> addHomeDevices(HomeDevicesBean homeDevicesBean) {
+        return mHttpDataSource.addHomeDevices(homeDevicesBean);
+    }
+    /**
+     * 鍒犻櫎瀹跺涵璁惧
+     */
+    public Observable<ResultData<String>> deleteHomeDevices(String ids) {
+        return mHttpDataSource.deleteHomeDevices(ids);
+    }
+    /**
+     * 淇敼瀹跺涵璁惧
+     */
+    public Observable<ResultData<String>> updateHomeDevices(HomeDevicesBean homeDevicesBean) {
+        return mHttpDataSource.updateHomeDevices(homeDevicesBean);
+    }
+
     /**
      * 鑾峰彇鎴愰暱缁忓巻
      */
@@ -152,6 +193,11 @@
      */
     public Observable<ResultData<GrowthExperienceInformationBean>> getGrowthExperienceInformation() {
         return mHttpDataSource.getGrowthExperienceInformation();
+    }
+
+    @Override
+    public Observable<ResultData<String>> updateGrowthExperienceInformation(GrowthExperienceInformationBean growthExperienceInformationBean) {
+        return mHttpDataSource.updateGrowthExperienceInformation(growthExperienceInformationBean);
     }
 
     /**
@@ -187,7 +233,7 @@
     /**
      * 鑾峰彇閫氳褰�
      */
-    public Observable<ResultData<ContactsResponseBean>> getContacts(Map<String, Object> paramsMap) {
+    public Observable<ResultData<PageResponseBean<ContactsDetailBean>>> getContacts(Map<String, Object> paramsMap) {
         return mHttpDataSource.getContacts(paramsMap);
     }
 
@@ -201,17 +247,377 @@
     /**
      * 鑾峰彇灏忓尰鐢�
      */
-    public Observable<ResultData<LittleDoctorResponseBean>> getLittleDoctors(Map<String, Object> map) {
+    public Observable<ResultData<PageResponseBean<LittleDoctorBean>>> getLittleDoctors(Map<String, Object> map) {
         return mHttpDataSource.getLittleDoctors(map);
+    }
+    /**
+     * 鍒犻櫎灏忓尰鐢�
+     */
+    public Observable<ResultData<String>> deleteLittleDoctors(String ids) {
+        return mHttpDataSource.deleteLittleDoctors(ids);
+    }
+    /**
+     * 澧炲姞灏忓尰鐢�
+     */
+    public Observable<ResultData<String>> addLittleDoctor(LittleDoctorBean littleDoctorBean) {
+        return mHttpDataSource.addLittleDoctor(littleDoctorBean);
+    }
+
+    /**
+     * 淇敼灏忓尰鐢�
+     */
+    public Observable<ResultData<String>> updateLittleDoctor(LittleDoctorBean littleDoctorBean) {
+        return mHttpDataSource.updateLittleDoctor(littleDoctorBean);
     }
 
     /**
      *  鑾峰彇鏀舵敮鍙拌处
      */
-    public Observable<ResultData<IncomeAndExpensesResponseBean>> getIncomeAndExpenses(Map<String, Object> map) {
+    public Observable<ResultData<PageResponseBean<IncomeAndExpensesBean>>> getIncomeAndExpenses(Map<String, Object> map) {
         return mHttpDataSource.getIncomeAndExpenses(map);
     }
 
+    /**
+     *  澧炲姞鏀舵敮鍙拌处
+     */
+    @Override
+    public Observable<ResultData<String>> addIncomeAndExpenses(IncomeAndExpensesBean incomeAndExpensesBean) {
+        return mHttpDataSource.addIncomeAndExpenses(incomeAndExpensesBean);
+    }
+
+    /**
+     *  鍒犻櫎鏀舵敮鍙拌处
+     */
+    @Override
+    public Observable<ResultData<String>> deleteIncomeAndExpenses(String ids) {
+        return mHttpDataSource.deleteIncomeAndExpenses(ids);
+    }
+
+    /**
+     *  淇敼鏀舵敮鍙拌处
+     */
+    @Override
+    public Observable<ResultData<String>> updateIncomeAndExpenses(IncomeAndExpensesBean incomeAndExpensesBean) {
+        return mHttpDataSource.updateIncomeAndExpenses(incomeAndExpensesBean);
+    }
+
+    /**
+     * 鑾峰彇淇濇磥鏀剁撼
+     */
+    public Observable<ResultData<PageResponseBean<CleanStorageBean>>> getCleanStorages(Map<String, Object> map) {
+        return mHttpDataSource.getCleanStorages(map);
+    }
+    /**
+     * 鍒犻櫎淇濇磥鏀剁撼
+     */
+    public Observable<ResultData<String>> deleteCleanStorages(String ids) {
+        return mHttpDataSource.deleteCleanStorages(ids);
+    }
+    /**
+     * 澧炲姞淇濇磥鏀剁撼
+     */
+    public Observable<ResultData<String>> addCleanStorage(CleanStorageBean cleanStorageBean) {
+        return mHttpDataSource.addCleanStorage(cleanStorageBean);
+    }
+    /**
+     * 淇敼淇濇磥鏀剁撼
+     */
+    public Observable<ResultData<String>> updateCleanStorage(CleanStorageBean cleanStorageBean) {
+        return mHttpDataSource.updateCleanStorage(cleanStorageBean);
+    }
+
+    /**
+     * 鑾峰彇涓汉濠氬Щ淇℃伅
+     */
+    public Observable<ResultData<MarriageInfoBean>> getMarriageInfo() {
+        return mHttpDataSource.getMarriageInfo();
+    }
+
+    /**
+     * 鑾峰彇涓汉璁颁簨鏈�
+     */
+    public Observable<ResultData<PageResponseBean<PersonalNotepadBean>>> getPersonalNotepad(Map<String, Object> toMap) {
+        return mHttpDataSource.getPersonalNotepad(toMap);
+    }
+    /**
+     * 鍒犻櫎涓汉璁颁簨鏈�
+     */
+    public Observable<ResultData<String>> deletePersonalNotepad(String ids) {
+        return mHttpDataSource.deletePersonalNotepad(ids);
+    }
+    /**
+     * 澧炲姞涓汉璁颁簨鏈�
+     */
+    public Observable<ResultData<String>> addPersonalNotepad(PersonalNotepadBean personalNotepadBean) {
+        return mHttpDataSource.addPersonalNotepad(personalNotepadBean);
+    }
+    /**
+     * 淇敼涓汉璁颁簨鏈�
+     */
+    public Observable<ResultData<String>> updatePersonalNotepad(PersonalNotepadBean personalNotepadBean) {
+        return mHttpDataSource.updatePersonalNotepad(personalNotepadBean);
+    }
+
+    /**
+     * 鑾峰彇涓汉闅愮
+     */
+    public Observable<ResultData<PageResponseBean<PrivacyBean>>> getPrivacy(Map<String, Object> toMap) {
+        return mHttpDataSource.getPrivacy(toMap);
+    }
+
+    /**
+     * 鑾峰彇鑽h獕璇佷功
+     */
+    public Observable<ResultData<PageResponseBean<CertificateOfHonorBean>>> getCertificateOfHonor(Map<String, Object> toMap) {
+        return mHttpDataSource.getCertificateOfHonor(toMap);
+    }
+
+    /**
+     * 鑾峰彇涓汉璧勪骇
+     */
+    public Observable<ResultData<PageResponseBean<PropertyBean>>> getProperty(Map<String, Object> toMap) {
+        return mHttpDataSource.getProperty(toMap);
+    }
+
+    /**
+     * 鑾峰彇鐧惧勾蹇冩効
+     */
+    public Observable<ResultData<PageResponseBean<HundredWishBean>>> getHundredWish(Map<String, Object> toMap) {
+        return mHttpDataSource.getHundredWish(toMap);
+    }
+
+    /**
+     * 鑾峰彇榄呭疇
+     */
+    public Observable<ResultData<PageResponseBean<PetBean>>> getPets(Map<String, Object> toMap) {
+        return mHttpDataSource.getPets(toMap);
+    }
+
+    @Override
+    public Observable<ResultData<PageResponseBean<PetMemoBean>>> getPetMemo(Map<String, Object> toMap) {
+        return mHttpDataSource.getPetMemo(toMap);
+    }
+
+    /**
+     * 鑾峰彇鏃呮父娑堣垂璁板綍
+     */
+    @Override
+    public Observable<ResultData<PageResponseBean<TourismBean>>> getTourism(Map<String, Object> toMap) {
+        return mHttpDataSource.getTourism(toMap);
+    }
+
+    /**
+     * 鏂板鏃呮父娑堣垂璁板綍
+     */
+    @Override
+    public Observable<ResultData<String>> addTourism(TourismBean tourismBean) {
+        return mHttpDataSource.addTourism(tourismBean);
+    }
+
+    /**
+     * 鍒犻櫎鏃呮父娑堣垂璁板綍
+     */
+    @Override
+    public Observable<ResultData<String>> deleteTourism(String ids) {
+        return mHttpDataSource.deleteTourism(ids);
+    }
+
+    /**
+     * 淇敼鏃呮父娑堣垂璁板綍
+     */
+    @Override
+    public Observable<ResultData<String>> updateTourism(TourismBean tourismBean) {
+        return mHttpDataSource.updateTourism(tourismBean);
+    }
+
+    /**
+     * 鑾峰彇鏃呮父缁忓巻
+     */
+    public Observable<ResultData<PageResponseBean<TourismExperienceBean>>> getTourismExperience(Map<String, Object> toMap) {
+        return mHttpDataSource.getTourismExperience(toMap);
+    }
+
+    /**
+     * 鏂板鏃呮父缁忓巻
+     */
+    public Observable<ResultData<String>> addTourismExperience(TourismExperienceBean tourismExperienceBean) {
+        return mHttpDataSource.addTourismExperience(tourismExperienceBean);
+    }
+
+    /**
+     * 鍒犻櫎鏃呮父缁忓巻
+     */
+    public Observable<ResultData<String>> deleteTourismExperience(String ids) {
+        return mHttpDataSource.deleteTourismExperience(ids);
+    }
+
+    /**
+     * 淇敼鏃呮父缁忓巻
+     */
+    public Observable<ResultData<String>> updateTourismExperience(TourismExperienceBean tourismExperienceBean) {
+        return mHttpDataSource.updateTourismExperience(tourismExperienceBean);
+    }
+
+    /**
+     * 鑾峰彇澶囧繕鏈�
+     */
+    public Observable<ResultData<List<MemoBean>>> getMemos(String fid, String cid) {
+        return mHttpDataSource.getMemos(fid,cid);
+    }
+
+    /**
+     * 澧炲姞澶囧繕鏈�
+     */
+    public Observable<ResultData<String>> addMemo(MemoBean memoBean) {
+        return mHttpDataSource.addMemo(memoBean);
+    }
+
+    /**
+     * 鍒犻櫎澶囧繕鏈�
+     */
+    public Observable<ResultData<String>> deleteMemo(String ids) {
+        return mHttpDataSource.deleteMemo(ids);
+    }
+
+    /**
+     * 淇敼澶囧繕鏈�
+     */
+    public Observable<ResultData<String>> updateMemo(MemoBean memoBean) {
+        return mHttpDataSource.updateMemo(memoBean);
+    }
+
+
+    /**
+     * 鑾峰彇瀹惰氨
+     */
+    public Observable<ResultData<PageResponseBean<HomeMemberBean>>> getHomeMembers(Map<String, Object> toMap) {
+        return mHttpDataSource.getHomeMembers(toMap);
+    }
+
+    /**
+     *  鑾峰彇瀹舵牴缃�
+     */
+    @Override
+    public Observable<ResultData<List<HomeRootBean>>> getHomeRoot(String depth) {
+        return mHttpDataSource.getHomeRoot(depth);
+    }
+
+    /**
+     *  鑾峰彇骞村害鍋ュ悍鐘跺喌
+     */
+    @Override
+    public Observable<ResultData<PageResponseBean<AnnualHealthStatusBean>>> getAnnualHealthStatus(Map<String, Object> toMap) {
+        return mHttpDataSource.getAnnualHealthStatus(toMap);
+    }
+
+    /**
+     *  鏂板骞村害鍋ュ悍鐘跺喌
+     */
+    @Override
+    public Observable<ResultData<String>> addAnnualHealthStatus(AnnualHealthStatusBean annualHealthStatusBean) {
+        return mHttpDataSource.addAnnualHealthStatus(annualHealthStatusBean);
+    }
+
+    /**
+     *  鍒犻櫎骞村害鍋ュ悍鐘跺喌
+     */
+    @Override
+    public Observable<ResultData<String>> deleteAnnualHealthStatus(String ids) {
+        return mHttpDataSource.deleteAnnualHealthStatus(ids);
+    }
+
+    /**
+     *  淇敼骞村害鍋ュ悍鐘跺喌
+     */
+    @Override
+    public Observable<ResultData<String>> updateAnnualHealthStatus(AnnualHealthStatusBean annualHealthStatusBean) {
+        return mHttpDataSource.updateAnnualHealthStatus(annualHealthStatusBean);
+    }
+
+    /**
+     *  鑾峰彇杞挱鍥炬暟鎹�
+     */
+    public Observable<ResultData<List<BannerBean>>> getBannerData() {
+        return mHttpDataSource.getBannerData();
+    }
+
+    /**
+     *  鑾峰彇鍋ュ悍淇濆仴鍩烘湰淇℃伅
+     */
+    public Observable<ResultData<HealthCareBaseInfoBean>> getHealthCareBaseInfo() {
+        return mHttpDataSource.getHealthCareBaseInfo();
+    }
+
+    /**
+     *  淇敼鍋ュ悍淇濆仴鍩烘湰淇℃伅
+     */
+    public Observable<ResultData<String>> updateHealthCareBaseInfo(HealthCareBaseInfoBean healthCareBaseInfoBean) {
+        return mHttpDataSource.updateHealthCareBaseInfo(healthCareBaseInfoBean);
+    }
+
+    /**
+     *  鑾峰彇鍋ュ悍淇濆仴鐢熸椿涔犳儻
+     */
+    public Observable<ResultData<HealthCareLifeHabitsBean>> getHealthCareLifeHabits() {
+        return mHttpDataSource.getHealthCareLifeHabits();
+    }
+
+    /**
+     *  淇敼鍋ュ悍淇濆仴鐢熸椿涔犳儻
+     */
+    public Observable<ResultData<String>> updateHealthCareLifeHabits(HealthCareLifeHabitsBean healthCareLifeHabitsBean) {
+        return mHttpDataSource.updateHealthCareLifeHabits(healthCareLifeHabitsBean);
+    }
+
+    /**
+     *  鑾峰彇鍋ュ悍淇濆仴鎶ょ悊鏌ヤ綋
+     */
+    public Observable<ResultData<HealthCareNursingExaminationBean>> getHealthCareNursingExamination() {
+        return mHttpDataSource.getHealthCareNursingExamination();
+    }
+
+    /**
+     *  淇敼鍋ュ悍淇濆仴鎶ょ悊鏌ヤ綋
+     */
+    public Observable<ResultData<String>> updateHealthCareNursingExamination(HealthCareNursingExaminationBean healthCareNursingExaminationBean) {
+        return mHttpDataSource.updateHealthCareNursingExamination(healthCareNursingExaminationBean);
+    }
+
+    /**
+     *  鑾峰彇鍋ュ悍淇濆仴鐜板瓨鍋ュ悍闂
+     */
+    public Observable<ResultData<HealthCareExistingProblemsBean>> getHealthCareExistingProblems() {
+        return mHttpDataSource.getHealthCareExistingProblems();
+    }
+
+    /**
+     *  淇敼鍋ュ悍淇濆仴鐜板瓨鍋ュ悍闂
+     */
+    public Observable<ResultData<String>> updateHealthCareExistingProblems(HealthCareExistingProblemsBean healthCareExistingProblemsBean) {
+        return mHttpDataSource.updateHealthCareExistingProblems(healthCareExistingProblemsBean);
+    }
+
+    /**
+     *  鑾峰彇鍋ュ悍淇濆仴绗旇鍐呭
+     */
+    public Observable<ResultData<HealthCareNotesContentBean>> getHealthCareNotesContent() {
+        return mHttpDataSource.getHealthCareNotesContent();
+    }
+
+    /**
+     *  淇敼鍋ュ悍淇濆仴绗旇鍐呭
+     */
+    public Observable<ResultData<String>> updateHealthCareNotesContent(HealthCareNotesContentBean healthCareNotesContentBean) {
+        return mHttpDataSource.updateHealthCareNotesContent(healthCareNotesContentBean);
+    }
+
+    /**
+     *  鑾峰彇鐗堟湰鏇存柊
+     */
+    public Observable<ResultData<UpdateVersionBean>> getUpdateVersion() {
+        return mHttpDataSource.getUpdateVersion();
+    }
+
 
     /**
      * @see LocalDataSourceImpl
diff --git a/app/src/main/java/com/application/zhangshi_app_android/data/source/HttpDataSource.java b/app/src/main/java/com/application/zhangshi_app_android/data/source/HttpDataSource.java
index 618c2fc..481145e 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/data/source/HttpDataSource.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/data/source/HttpDataSource.java
@@ -1,29 +1,52 @@
 package com.application.zhangshi_app_android.data.source;
 
 import com.android.app_base.http.ResultData;
+import com.application.zhangshi_app_android.bean.AnnualHealthStatusBean;
+import com.application.zhangshi_app_android.bean.BannerBean;
 import com.application.zhangshi_app_android.bean.CaptchaImageBean;
+import com.application.zhangshi_app_android.bean.CertificateOfHonorBean;
+import com.application.zhangshi_app_android.bean.CleanStorageBean;
 import com.application.zhangshi_app_android.bean.ContactsDetailBean;
-import com.application.zhangshi_app_android.bean.ContactsResponseBean;
-import com.application.zhangshi_app_android.bean.FamilyAssetsResponseBean;
+import com.application.zhangshi_app_android.bean.HealthCareBaseInfoBean;
+import com.application.zhangshi_app_android.bean.HealthCareExistingProblemsBean;
+import com.application.zhangshi_app_android.bean.HealthCareLifeHabitsBean;
+import com.application.zhangshi_app_android.bean.HealthCareNotesContentBean;
+import com.application.zhangshi_app_android.bean.HealthCareNursingExaminationBean;
+import com.application.zhangshi_app_android.bean.HomeDevicesBean;
+import com.application.zhangshi_app_android.bean.HomeMemberBean;
+import com.application.zhangshi_app_android.bean.HomeRootBean;
+import com.application.zhangshi_app_android.bean.HundredWishBean;
+import com.application.zhangshi_app_android.bean.IncomeAndExpensesBean;
+import com.application.zhangshi_app_android.bean.MarriageInfoBean;
+import com.application.zhangshi_app_android.bean.MemoBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
+import com.application.zhangshi_app_android.bean.FamilyAssetsBean;
 import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
-import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceAbroadConditionBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceAutobiographyBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceHolderConditionBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceInformationBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceRelationshipBean;
-import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean;
 import com.application.zhangshi_app_android.bean.HonorCollectionResponseBean;
-import com.application.zhangshi_app_android.bean.IncomeAndExpensesResponseBean;
-import com.application.zhangshi_app_android.bean.LittleDoctorResponseBean;
+import com.application.zhangshi_app_android.bean.LittleDoctorBean;
 import com.application.zhangshi_app_android.bean.LoginRequestBean;
 import com.application.zhangshi_app_android.bean.LoginResponseBean;
+import com.application.zhangshi_app_android.bean.PersonalNotepadBean;
+import com.application.zhangshi_app_android.bean.PetBean;
+import com.application.zhangshi_app_android.bean.PetMemoBean;
+import com.application.zhangshi_app_android.bean.PetOwnerBean;
+import com.application.zhangshi_app_android.bean.PrivacyBean;
+import com.application.zhangshi_app_android.bean.PropertyBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
+import com.application.zhangshi_app_android.bean.TourismExperienceBean;
+import com.application.zhangshi_app_android.bean.UpdateVersionBean;
 import com.application.zhangshi_app_android.bean.UploadFileResponseBean;
 
 import java.util.List;
 import java.util.Map;
 
+import io.reactivex.Completable;
 import io.reactivex.Observable;
 import okhttp3.MultipartBody;
 
@@ -50,7 +73,7 @@
     /**
      * 鑾峰彇瀹跺ぇ浜嬭
      */
-    Observable<ResultData<FamilyMemorabiliaResponseBean>> getFamilyMemorabilia(Map<String,Object> paramsMap);
+    Observable<ResultData<PageResponseBean<FamilyMemorabiliaBean>>> getFamilyMemorabilia(Map<String,Object> paramsMap);
 
     /**
      * 澧炲姞瀹跺ぇ浜嬭
@@ -62,7 +85,7 @@
     Observable<ResultData<String>> deleteFamilyMemorabilia(String ids);
 
     /**
-     * 淇敼
+     * 淇敼瀹跺ぇ浜嬭
      */
     Observable<ResultData<String>> updateFamilyMemorabilia(FamilyMemorabiliaBean familyMemorabiliaBean);
 
@@ -74,11 +97,23 @@
     /**
      * 鑾峰彇瀹跺涵璧勪骇
      */
-    Observable<ResultData<FamilyAssetsResponseBean>> getFamilyAssets(Map<String, Object> paramsMap);
+    Observable<ResultData<PageResponseBean<FamilyAssetsBean>>> getFamilyAssets(Map<String, Object> paramsMap);
     /**
      * 鑾峰彇瀹跺涵璁惧
      */
-    Observable<ResultData<HomeDevicesResponseBean>> getHomeDevices(Map<String, Object> paramsMap);
+    Observable<ResultData<PageResponseBean<HomeDevicesBean>>> getHomeDevices(Map<String, Object> paramsMap);
+    /**
+     * 澧炲姞瀹跺涵璁惧
+     */
+    Observable<ResultData<String>> addHomeDevices(HomeDevicesBean homeDevicesBean);
+    /**
+     * 鍒犻櫎瀹跺涵璁惧
+     */
+    Observable<ResultData<String>> deleteHomeDevices(String ids);
+    /**
+     * 淇敼瀹跺涵璁惧
+     */
+    Observable<ResultData<String>> updateHomeDevices(HomeDevicesBean homeDevicesBean);
 
     /**
      * 鑾峰彇瀹跺涵鑽h獕
@@ -88,12 +123,36 @@
     /**
      * 鑾峰彇灏忓尰鐢�
      */
-    Observable<ResultData<LittleDoctorResponseBean>> getLittleDoctors(Map<String, Object> map);
+    Observable<ResultData<PageResponseBean<LittleDoctorBean>>> getLittleDoctors(Map<String, Object> map);
+    /**
+     * 澧炲姞灏忓尰鐢�
+     */
+    Observable<ResultData<String>> addLittleDoctor(LittleDoctorBean littleDoctorBean);
+    /**
+     * 鍒犻櫎灏忓尰鐢�
+     */
+    Observable<ResultData<String>> deleteLittleDoctors(String ids);
+    /**
+     * 淇敼灏忓尰鐢�
+     */
+    Observable<ResultData<String>> updateLittleDoctor(LittleDoctorBean littleDoctorBean);
 
     /**
      * 鑾峰彇鏀舵敮
      */
-    Observable<ResultData<IncomeAndExpensesResponseBean>> getIncomeAndExpenses(Map<String, Object> map);
+    Observable<ResultData<PageResponseBean<IncomeAndExpensesBean>>> getIncomeAndExpenses(Map<String, Object> map);
+    /**
+     * 澧炲姞鏀舵敮
+     */
+    Observable<ResultData<String>> addIncomeAndExpenses(IncomeAndExpensesBean incomeAndExpensesBean);
+    /**
+     * 鍒犻櫎鏀舵敮
+     */
+    Observable<ResultData<String>> deleteIncomeAndExpenses(String ids);
+    /**
+     * 淇敼鏀舵敮
+     */
+    Observable<ResultData<String>> updateIncomeAndExpenses(IncomeAndExpensesBean incomeAndExpensesBean);
     /**
      * 鑾峰彇鎴愰暱缁忓巻
      */
@@ -102,6 +161,13 @@
      * 鑾峰彇鎴愰暱缁忓巻涓汉淇℃伅
      */
     Observable<ResultData<GrowthExperienceInformationBean>> getGrowthExperienceInformation();
+
+
+    /**
+     * 淇敼鎴愰暱缁忓巻涓汉淇℃伅
+     */
+    Observable<ResultData<String>> updateGrowthExperienceInformation(GrowthExperienceInformationBean growthExperienceInformationBean);
+
     /**
      * 鑾峰彇鎴愰暱缁忓巻鍏崇郴鎯呭喌
      */
@@ -123,7 +189,231 @@
     /**
      * 鑾峰彇閫氳褰�
      */
-    Observable<ResultData<ContactsResponseBean>> getContacts(Map<String, Object> paramsMap);
+    Observable<ResultData<PageResponseBean<ContactsDetailBean>>> getContacts(Map<String, Object> paramsMap);
+
+
+    /**
+     * 鑾峰彇淇濇磥鏀剁撼
+     */
+    Observable<ResultData<PageResponseBean<CleanStorageBean>>> getCleanStorages(Map<String, Object> map);
+    /**
+     * 澧炲姞淇濇磥鏀剁撼
+     */
+    Observable<ResultData<String>> addCleanStorage(CleanStorageBean cleanStorageBean);
+    /**
+     * 鍒犻櫎淇濇磥鏀剁撼
+     */
+    Observable<ResultData<String>> deleteCleanStorages(String ids);
+    /**
+     * 淇敼淇濇磥鏀剁撼
+     */
+    Observable<ResultData<String>> updateCleanStorage(CleanStorageBean cleanStorageBean);
+
+    /**
+     * 鑾峰彇涓汉濠氬Щ淇℃伅
+     */
+    Observable<ResultData<MarriageInfoBean>> getMarriageInfo();
+
+    /**
+     * 鑾峰彇涓汉璁颁簨鏈�
+     */
+    Observable<ResultData<PageResponseBean<PersonalNotepadBean>>> getPersonalNotepad(Map<String, Object> toMap);
+
+    /**
+     * 澧炲姞涓汉璁颁簨鏈�
+     */
+    Observable<ResultData<String>> addPersonalNotepad(PersonalNotepadBean personalNotepadBean);
+
+    /**
+     * 鍒犻櫎涓汉璁颁簨鏈�
+     */
+    Observable<ResultData<String>> deletePersonalNotepad(String ids);
+
+    /**
+     * 淇敼涓汉璁颁簨鏈�
+     */
+    Observable<ResultData<String>> updatePersonalNotepad(PersonalNotepadBean personalNotepadBean);
+
+    /**
+     * 鑾峰彇涓汉淇℃伅
+     */
+    Observable<ResultData<PageResponseBean<PrivacyBean>>> getPrivacy(Map<String, Object> toMap);
+
+    /**
+     * 鑾峰彇鑽h獕璇佷功
+     */
+    Observable<ResultData<PageResponseBean<CertificateOfHonorBean>>> getCertificateOfHonor(Map<String, Object> toMap);
+
+    /**
+     *  鑾峰彇涓汉璐骇
+     */
+    Observable<ResultData<PageResponseBean<PropertyBean>>> getProperty(Map<String, Object> toMap);
+
+    /**
+     * 鑾峰彇鐧惧勾蹇冩効
+     */
+    Observable<ResultData<PageResponseBean<HundredWishBean>>> getHundredWish(Map<String, Object> toMap);
+
+    /**
+     * 鑾峰彇榄呭疇
+     */
+    Observable<ResultData<PageResponseBean<PetBean>>> getPets(Map<String, Object> toMap);
+
+
+    /**
+     * 鑾峰彇瀹犵墿澶囧繕褰�
+     */
+    Observable<ResultData<PageResponseBean<PetMemoBean>>> getPetMemo(Map<String, Object> toMap);
+
+    /**
+     * 鑾峰彇鏃呮父璐圭敤璁板綍
+     */
+    Observable<ResultData<PageResponseBean<TourismBean>>> getTourism(Map<String, Object> toMap);
+
+    /**
+     * 鏂板鏃呮父璐圭敤璁板綍
+     */
+    Observable<ResultData<String>> addTourism(TourismBean tourismBean);
+
+    /**
+     * 鍒犻櫎鏃呮父璐圭敤璁板綍
+     */
+    Observable<ResultData<String>> deleteTourism(String ids);
+
+    /**
+     * 淇敼鏃呮父璐圭敤璁板綍
+     */
+    Observable<ResultData<String>> updateTourism(TourismBean tourismBean);
+
+    /**
+     * 鑾峰彇鏃呮父缁忓巻
+     */
+    Observable<ResultData<PageResponseBean<TourismExperienceBean>>> getTourismExperience(Map<String, Object> toMap);
+
+    /**
+     * 鏂板鏃呮父缁忓巻
+     */
+    Observable<ResultData<String>> addTourismExperience(TourismExperienceBean tourismExperienceBean);
+
+    /**
+     * 鍒犻櫎鏃呮父缁忓巻
+     */
+    Observable<ResultData<String>> deleteTourismExperience(String ids);
+
+    /**
+     * 淇敼鏃呮父缁忓巻
+     */
+    Observable<ResultData<String>> updateTourismExperience(TourismExperienceBean tourismExperienceBean);
+
+    /**
+     * 鑾峰彇澶囧繕鏈�
+     */
+    Observable<ResultData<List<MemoBean>>> getMemos(String fid, String cid);
+
+    /**
+     * 鏂板澶囧繕鏈�
+     */
+    Observable<ResultData<String>> addMemo(MemoBean memoBean);
+
+    /**
+     * 鍒犻櫎澶囧繕鏈�
+     */
+    Observable<ResultData<String>> deleteMemo(String ids);
+
+    /**
+     * 淇敼澶囧繕鏈�
+     */
+    Observable<ResultData<String>> updateMemo(MemoBean memoBean);
+
+    /**
+     * 鑾峰彇瀹惰氨
+     */
+    Observable<ResultData<PageResponseBean<HomeMemberBean>>> getHomeMembers(Map<String, Object> toMap);
+
+    /**
+     * 鑾峰彇瀹舵牴缃�
+     */
+    Observable<ResultData<List<HomeRootBean>>> getHomeRoot(String depth);
+
+    /**
+     * 鑾峰彇骞村害鍋ュ悍鐘跺喌
+     */
+    Observable<ResultData<PageResponseBean<AnnualHealthStatusBean>>> getAnnualHealthStatus(Map<String, Object> toMap);
+
+    /**
+     * 娣诲姞骞村害鍋ュ悍鐘跺喌
+     */
+    Observable<ResultData<String>> addAnnualHealthStatus(AnnualHealthStatusBean annualHealthStatusBean);
+
+    /**
+     * 鍒犻櫎骞村害鍋ュ悍鐘跺喌
+     */
+    Observable<ResultData<String>> deleteAnnualHealthStatus(String ids);
+
+    /**
+     * 淇敼骞村害鍋ュ悍鐘跺喌
+     */
+    Observable<ResultData<String>> updateAnnualHealthStatus(AnnualHealthStatusBean annualHealthStatusBean);
+
+    /**
+     * 鑾峰彇鍔熻兘涓婚〉杞挱鍥炬暟鎹�
+     */
+    Observable<ResultData<List<BannerBean>>> getBannerData();
+
+    /**
+     * 鑾峰彇鍋ュ悍淇濆仴鍩烘湰淇℃伅
+     */
+    Observable<ResultData<HealthCareBaseInfoBean>> getHealthCareBaseInfo();
+
+    /**
+     * 淇敼鍋ュ悍淇濆仴鍩烘湰淇℃伅
+     */
+    Observable<ResultData<String>> updateHealthCareBaseInfo(HealthCareBaseInfoBean healthCareBaseInfoBean);
+
+    /**
+     *  鑾峰彇鍋ュ悍淇濆仴鐢熸椿涔犳儻
+     */
+    Observable<ResultData<HealthCareLifeHabitsBean>> getHealthCareLifeHabits();
+
+    /**
+     *  淇敼鍋ュ悍淇濆仴鐢熸椿涔犳儻
+     */
+    Observable<ResultData<String>> updateHealthCareLifeHabits(HealthCareLifeHabitsBean healthCareLifeHabitsBean);
+
+    /**
+     *  鑾峰彇鍋ュ悍淇濆仴鎶ょ悊鏌ヤ綋
+     */
+    Observable<ResultData<HealthCareNursingExaminationBean>> getHealthCareNursingExamination();
+
+    /**
+     *  淇敼鍋ュ悍淇濆仴鎶ょ悊鏌ヤ綋
+     */
+    Observable<ResultData<String>> updateHealthCareNursingExamination(HealthCareNursingExaminationBean healthCareNursingExaminationBean);
+
+    /**
+     *  鑾峰彇鍋ュ悍淇濆仴鐜板瓨鍋ュ悍闂
+     */
+    Observable<ResultData<HealthCareExistingProblemsBean>> getHealthCareExistingProblems();
+
+    /**
+     *  淇敼鍋ュ悍淇濆仴鐜板瓨鍋ュ悍闂
+     */
+    Observable<ResultData<String>> updateHealthCareExistingProblems(HealthCareExistingProblemsBean healthCareExistingProblemsBean);
+
+    /**
+     *  鑾峰彇鍋ュ悍淇濆仴绗旇鍐呭
+     */
+    Observable<ResultData<HealthCareNotesContentBean>> getHealthCareNotesContent();
+
+    /**
+     *  淇敼鍋ュ悍淇濆仴绗旇鍐呭
+     */
+    Observable<ResultData<String>> updateHealthCareNotesContent(HealthCareNotesContentBean healthCareNotesContentBean);
+
+    /**
+     *  鑾峰彇鐗堟湰鏇存柊
+     */
+    Observable<ResultData<UpdateVersionBean>> getUpdateVersion();
 }
 
 
diff --git a/app/src/main/java/com/application/zhangshi_app_android/data/source/http/ApiService.java b/app/src/main/java/com/application/zhangshi_app_android/data/source/http/ApiService.java
index e57fe1d..5dbf681 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/data/source/http/ApiService.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/data/source/http/ApiService.java
@@ -1,24 +1,46 @@
 package com.application.zhangshi_app_android.data.source.http;
 
 import com.android.app_base.http.ResultData;
+import com.application.zhangshi_app_android.bean.AnnualHealthStatusBean;
+import com.application.zhangshi_app_android.bean.BannerBean;
 import com.application.zhangshi_app_android.bean.CaptchaImageBean;
+import com.application.zhangshi_app_android.bean.CertificateOfHonorBean;
+import com.application.zhangshi_app_android.bean.CleanStorageBean;
 import com.application.zhangshi_app_android.bean.ContactsDetailBean;
-import com.application.zhangshi_app_android.bean.ContactsResponseBean;
-import com.application.zhangshi_app_android.bean.FamilyAssetsResponseBean;
+import com.application.zhangshi_app_android.bean.HealthCareBaseInfoBean;
+import com.application.zhangshi_app_android.bean.HealthCareExistingProblemsBean;
+import com.application.zhangshi_app_android.bean.HealthCareLifeHabitsBean;
+import com.application.zhangshi_app_android.bean.HealthCareNotesContentBean;
+import com.application.zhangshi_app_android.bean.HealthCareNursingExaminationBean;
+import com.application.zhangshi_app_android.bean.HomeDevicesBean;
+import com.application.zhangshi_app_android.bean.HomeMemberBean;
+import com.application.zhangshi_app_android.bean.HomeRootBean;
+import com.application.zhangshi_app_android.bean.HundredWishBean;
+import com.application.zhangshi_app_android.bean.IncomeAndExpensesBean;
+import com.application.zhangshi_app_android.bean.MarriageInfoBean;
+import com.application.zhangshi_app_android.bean.MemoBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
+import com.application.zhangshi_app_android.bean.FamilyAssetsBean;
 import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
-import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceAbroadConditionBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceAutobiographyBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceHolderConditionBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceInformationBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceRelationshipBean;
-import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean;
 import com.application.zhangshi_app_android.bean.HonorCollectionResponseBean;
-import com.application.zhangshi_app_android.bean.IncomeAndExpensesResponseBean;
-import com.application.zhangshi_app_android.bean.LittleDoctorResponseBean;
+import com.application.zhangshi_app_android.bean.LittleDoctorBean;
 import com.application.zhangshi_app_android.bean.LoginRequestBean;
 import com.application.zhangshi_app_android.bean.LoginResponseBean;
+import com.application.zhangshi_app_android.bean.PersonalNotepadBean;
+import com.application.zhangshi_app_android.bean.PetBean;
+import com.application.zhangshi_app_android.bean.PetMemoBean;
+import com.application.zhangshi_app_android.bean.PetOwnerBean;
+import com.application.zhangshi_app_android.bean.PrivacyBean;
+import com.application.zhangshi_app_android.bean.PropertyBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
+import com.application.zhangshi_app_android.bean.TourismExperienceBean;
+import com.application.zhangshi_app_android.bean.UpdateVersionBean;
 import com.application.zhangshi_app_android.bean.UploadFileResponseBean;
 
 import java.util.List;
@@ -34,7 +56,9 @@
 import retrofit2.http.PUT;
 import retrofit2.http.Part;
 import retrofit2.http.Path;
+import retrofit2.http.Query;
 import retrofit2.http.QueryMap;
+import retrofit2.http.QueryName;
 
 /**
  * @author Ljj
@@ -63,7 +87,7 @@
      * 鑾峰彇瀹跺ぇ浜嬩欢
      */
     @GET("family/zfEvent/all")
-    Observable<ResultData<FamilyMemorabiliaResponseBean>> getFamilyMemorabilia(@QueryMap Map<String,Object> paramsMap);
+    Observable<ResultData<PageResponseBean<FamilyMemorabiliaBean>>> getFamilyMemorabilia(@QueryMap Map<String,Object> paramsMap);
     /**
      * 澧炲姞瀹跺ぇ浜嬭
      */
@@ -92,16 +116,33 @@
      * 鑾峰彇瀹跺涵璧勪骇
      */
     @GET("/family/property/all")
-    Observable<ResultData<FamilyAssetsResponseBean>> getFamilyAssets(@QueryMap Map<String, Object> paramsMap);
+    Observable<ResultData<PageResponseBean<FamilyAssetsBean>>> getFamilyAssets(@QueryMap Map<String, Object> paramsMap);
 
     /**
      * 鑾峰彇瀹跺涵璁惧
      */
     @GET("/zfEquipment/all")
-    Observable<ResultData<HomeDevicesResponseBean>> getHomeDevices(@QueryMap Map<String, Object> paramsMap);
+    Observable<ResultData<PageResponseBean<HomeDevicesBean>>> getHomeDevices(@QueryMap Map<String, Object> paramsMap);
 
     /**
-<<<<<<< HEAD
+     * 娣诲姞瀹跺涵璁惧
+     */
+    @POST("/zfEquipment")
+    Observable<ResultData<String>> addHomeDevices(@Body HomeDevicesBean homeDevicesBean);
+
+    /**
+     * 鍒犻櫎瀹跺涵璁惧
+     */
+    @DELETE("/zfEquipment/{ids}")
+    Observable<ResultData<String>> deleteHomeDevices(@Path("ids") String ids);
+
+    /**
+     * 淇敼瀹跺涵璁惧
+     */
+    @PUT("/zfEquipment")
+    Observable<ResultData<String>> updateHomeDevices(@Body HomeDevicesBean homeDevicesBean);
+
+    /**
      * 鑾峰彇瀹跺涵鑽h獕
      */
     @GET("/zfCollection/all")
@@ -111,19 +152,62 @@
      * 鑾峰彇灏忓尰鐢�
      */
     @GET("/zfDoctor/all")
-    Observable<ResultData<LittleDoctorResponseBean>> getLittleDoctors(@QueryMap Map<String, Object> map);
+    Observable<ResultData<PageResponseBean<LittleDoctorBean>>> getLittleDoctors(@QueryMap Map<String, Object> map);
+
+    /**
+     * 娣诲姞灏忓尰鐢�
+     */
+    @POST("/zfDoctor")
+    Observable<ResultData<String>> addLittleDoctor(@Body LittleDoctorBean littleDoctorBean);
+
+    /**
+     * 鍒犻櫎灏忓尰鐢�
+     */
+    @DELETE("/zfDoctor/{ids}")
+    Observable<ResultData<String>> deleteLittleDoctors(@Path("ids") String ids);
+
+    /**
+     * 淇敼灏忓尰鐢�
+     */
+    @PUT("/zfDoctor")
+    Observable<ResultData<String>> updateLittleDoctor(@Body LittleDoctorBean littleDoctorBean);
 
     /**
      * 鑾峰彇鏀舵敮
      */
     @GET("/zfEconomy/all")
-    Observable<ResultData<IncomeAndExpensesResponseBean>> getIncomeAndExpenses(@QueryMap Map<String, Object> map);
+    Observable<ResultData<PageResponseBean<IncomeAndExpensesBean>>> getIncomeAndExpenses(@QueryMap Map<String, Object> map);
+
+    /**
+     * 娣诲姞鏀舵敮
+     */
+    @POST("/zfEconomy")
+    Observable<ResultData<String>> addIncomeAndExpenses(@Body IncomeAndExpensesBean incomeAndExpensesBean);
+
+    /**
+     * 鍒犻櫎鏀舵敮
+     */
+    @DELETE("/zfEconomy/{ids}")
+    Observable<ResultData<String>> deleteIncomeAndExpenses(@Path("ids") String ids);
+
+    /**
+     * 淇敼鏀舵敮
+     */
+    @PUT("/zfEconomy")
+    Observable<ResultData<String>> updateIncomeAndExpenses(@Body IncomeAndExpensesBean incomeAndExpensesBean);
+
 
     /**
      * 鑾峰彇鎴愰暱缁忓巻涓汉淇℃伅
      */
     @GET("/self/user")
     Observable<ResultData<GrowthExperienceInformationBean>> getGrowthExperienceInformation();
+
+    /**
+     * 淇敼鎴愰暱缁忓巻涓汉淇℃伅
+     */
+    @PUT("/self/user")
+Observable<ResultData<String>> updateGrowthExperienceInformation(@Body GrowthExperienceInformationBean growthExperienceInformationBean);
 
     /**
      * 鑾峰彇鎴愰暱缁忓巻锛堜富瑕佸涔犲強宸ヤ綔缁忓巻锛�
@@ -158,5 +242,281 @@
      * 鑾峰彇閫氳褰�
      */
     @GET("/zfContact/all")
-    Observable<ResultData<ContactsResponseBean>> getContacts(@QueryMap Map<String, Object> paramsMap);
+    Observable<ResultData<PageResponseBean<ContactsDetailBean>>> getContacts(@QueryMap Map<String, Object> paramsMap);
+
+    /**
+     * 鑾峰彇淇濇磥鏀剁撼
+     */
+    @GET("/zfClean/all")
+    Observable<ResultData<PageResponseBean<CleanStorageBean>>> getCleanStorages(@QueryMap Map<String, Object> paramsMap);
+
+
+    /**
+     * 娣诲姞淇濇磥鏀剁撼
+     */
+    @POST("/zfClean")
+    Observable<ResultData<String>> addCleanStorage(@Body CleanStorageBean cleanStorageBean);
+
+    /**
+     * 鍒犻櫎淇濇磥鏀剁撼
+     */
+    @DELETE("/zfClean/{ids}")
+    Observable<ResultData<String>> deleteCleanStorages(@Path("ids") String ids);
+
+    /**
+     * 淇敼淇濇磥鏀剁撼
+     */
+    @PUT("/zfClean")
+    Observable<ResultData<String>> updateCleanStorage(@Body CleanStorageBean cleanStorageBean);
+
+    /**
+     * 鑾峰彇涓汉濠氬Щ淇℃伅
+     */
+    @GET("/zMarry/list")
+    Observable<ResultData<MarriageInfoBean>> getMarriageInfo();
+
+    /**
+     * 鑾峰彇涓汉璁颁簨鏈�
+     */
+    @GET("/zSelfNote/all")
+    Observable<ResultData<PageResponseBean<PersonalNotepadBean>>> getPersonalNotepad(@QueryMap Map<String, Object> toMap);
+
+    /**
+     * 娣诲姞涓汉璁颁簨鏈�
+     */
+    @POST("/zSelfNote")
+    Observable<ResultData<String>> addPersonalNotepad(@Body PersonalNotepadBean personalNotepadBean);
+
+    /**
+     * 鍒犻櫎涓汉璁颁簨鏈�
+     */
+    @DELETE("/zSelfNote/{ids}")
+    Observable<ResultData<String>> deletePersonalNotepad(@Path("ids") String ids);
+
+    /**
+     * 淇敼涓汉璁颁簨鏈�
+     */
+    @PUT("/zSelfNote")
+    Observable<ResultData<String>> updatePersonalNotepad(@Body PersonalNotepadBean personalNotepadBean);
+
+    /**
+     * 鑾峰彇涓汉闅愮
+     */
+    @GET("/zSecret/all")
+    Observable<ResultData<PageResponseBean<PrivacyBean>>> getPrivacy(@QueryMap Map<String, Object> toMap);
+
+    /**
+     * 鑾峰彇鑽h獕璇佷功
+     */
+    @GET("/zHonor/all")
+    Observable<ResultData<PageResponseBean<CertificateOfHonorBean>>> getCertificateOfHonor(@QueryMap Map<String, Object> toMap);
+
+    /**
+     * 鑾峰彇涓汉璧勪骇
+     */
+    @GET("/zProperty/all")
+    Observable<ResultData<PageResponseBean<PropertyBean>>> getProperty(@QueryMap Map<String, Object> toMap);
+
+
+    /**
+     * 鑾峰彇鐧惧勾蹇冩効
+     */
+    @GET("/zIdea/all")
+    Observable<ResultData<PageResponseBean<HundredWishBean>>> getHundredWish(@QueryMap Map<String, Object> toMap);
+
+    /**
+     * 鑾峰彇瀹犵墿
+     */
+    @GET("/zfPet/all")
+    Observable<ResultData<PageResponseBean<PetBean>>> getPets(@QueryMap Map<String, Object> toMap);
+
+    /**
+     * 鑾峰彇瀹犵墿澶囧繕褰�
+     */
+    @GET("/family/zfPetNote")
+    Observable<ResultData<PageResponseBean<PetMemoBean>>> getPetMemo(@QueryMap Map<String, Object> toMap);
+
+    /**
+     * 鑾峰彇鏃呮父璐圭敤璁板綍
+     */
+    @GET("/zTravelPrice/all")
+    Observable<ResultData<PageResponseBean<TourismBean>>> getTourism(@QueryMap Map<String, Object> toMap);
+
+    /**
+     * 娣诲姞鏃呮父璐圭敤璁板綍
+     */
+    @POST("/zTravelPrice")
+    Observable<ResultData<String>> addTourism(@Body TourismBean tourismBean);
+
+    /**
+     * 鍒犻櫎鏃呮父璐圭敤璁板綍
+     */
+    @DELETE("/zTravelPrice/{ids}")
+    Observable<ResultData<String>> deleteTourism(@Path("ids") String ids);
+
+    /**
+     * 淇敼鏃呮父璐圭敤璁板綍
+     */
+    @PUT("/zTravelPrice")
+    Observable<ResultData<String>> updateTourism(@Body TourismBean tourismBean);
+
+    /**
+     * 鑾峰彇鏃呮父缁忓巻
+     */
+    @GET("/zTravelBase/all")
+    Observable<ResultData<PageResponseBean<TourismExperienceBean>>> getTourismExperience(@QueryMap Map<String, Object> toMap);
+
+    /**
+     * 鏂板鏃呮父缁忓巻
+     */
+    @POST("/zTravelBase")
+    Observable<ResultData<String>> addTourismExperience(@Body TourismExperienceBean tourismExperienceBean);
+
+    /**
+     * 鍒犻櫎鏃呮父缁忓巻
+     */
+    @DELETE("/zTravelBase/{ids}")
+    Observable<ResultData<String>> deleteTourismExperience(@Path("ids") String ids);
+
+    /**
+     * 淇敼鏃呮父缁忓巻
+     */
+    @PUT("/zTravelBase")
+    Observable<ResultData<String>> updateTourismExperience(@Body TourismExperienceBean tourismExperienceBean);
+
+    /**
+     * 鑾峰彇澶囧繕鏈�
+     */
+    @GET("/memoBook/all")
+    Observable<ResultData<List<MemoBean>>> getMemos(@Query("fid") String fid,@Query("cid") String cid);
+
+    /**
+     * 娣诲姞澶囧繕鏈�
+     */
+    @POST("/memoBook")
+    Observable<ResultData<String>> addMemo(@Body MemoBean memoBean);
+
+    /**
+     * 鍒犻櫎澶囧繕鏈�
+     */
+    @DELETE("/memoBook")
+    Observable<ResultData<String>> deleteMemo(@Query("id") String ids);
+
+    /**
+     * 淇敼澶囧繕鏈�
+     */
+    @PUT("/memoBook")
+    Observable<ResultData<String>> updateMemo(@Body MemoBean memoBean);
+
+
+    /**
+     * 鑾峰彇瀹惰氨
+     */
+    @GET("/self/user/list/genealogy")
+    Observable<ResultData<PageResponseBean<HomeMemberBean>>> getHomeMembers(@QueryMap Map<String, Object> toMap);
+
+    /**
+     * 鑾峰彇瀹舵牴缃�
+     * @param depth 浠f暟锛岃緭鍏ュ嚑灏辨槸鏌ュ埌绗嚑浠�
+     * @return
+     */
+    @GET("/self/user/root")
+    Observable<ResultData<List<HomeRootBean>>> getHomeRoot(@Query("depth") String depth);
+
+    /**
+     * 鑾峰彇骞村害鍋ュ悍鐘跺喌
+     */
+    @GET("/zYearInfo/all")
+    Observable<ResultData<PageResponseBean<AnnualHealthStatusBean>>> getAnnualHealthStatus(@QueryMap Map<String, Object> toMap);
+
+    /**
+     * 鍒犻櫎骞村害鍋ュ悍鐘跺喌
+     */
+    @DELETE("/zYearInfo/{ids}")
+    Observable<ResultData<String>> deleteAnnualHealthStatus(@Path("ids") String ids);
+
+    /**
+     * 淇敼骞村害鍋ュ悍鐘跺喌
+     */
+    @PUT("/zYearInfo")
+    Observable<ResultData<String>> updateAnnualHealthStatus(@Body AnnualHealthStatusBean annualHealthStatusBean);
+
+    /**
+     * 娣诲姞骞村害鍋ュ悍鐘跺喌
+     */
+    @POST("/zYearInfo")
+    Observable<ResultData<String>> addAnnualHealthStatus(@Body AnnualHealthStatusBean annualHealthStatusBean);
+
+    /**
+     * 鑾峰彇杞挱鍥炬暟鎹�
+     */
+    @GET("/rotation/all")
+    Observable<ResultData<List<BannerBean>>> getBannerData();
+
+
+    /**
+     * 鑾峰彇鍋ュ悍淇濆仴鍩烘湰淇℃伅
+     */
+    @GET("/zHealthBase/all")
+    Observable<ResultData<HealthCareBaseInfoBean>> getHealthCareBaseInfo();
+
+    /**
+     * 淇敼鍋ュ悍淇濆仴鍩烘湰淇℃伅
+     */
+    @POST("/zHealthBase")
+    Observable<ResultData<String>> updateHealthCareBaseInfo(@Body HealthCareBaseInfoBean healthCareBaseInfoBean);
+
+    /**
+     * 鑾峰彇鍋ュ悍淇濆仴鐢熸椿涔犳儻
+     */
+    @GET("/zHealthHabit/all")
+    Observable<ResultData<HealthCareLifeHabitsBean>> getHealthCareLifeHabits();
+
+    /**
+     * 淇敼鍋ュ悍淇濆仴鐢熸椿涔犳儻
+     */
+    @POST("/zHealthHabit")
+    Observable<ResultData<String>> updateHealthCareLifeHabits(@Body HealthCareLifeHabitsBean healthCareLifeHabitsBean);
+
+    /**
+     * 鑾峰彇鍋ュ悍淇濆仴鎶ょ悊鏌ヤ綋
+     */
+    @GET("/zHealthInfo/all")
+    Observable<ResultData<HealthCareNursingExaminationBean>> getHealthCareNursingExamination();
+
+    /**
+     * 淇敼鍋ュ悍淇濆仴鎶ょ悊鏌ヤ綋
+     */
+    @POST("/zHealthInfo")
+    Observable<ResultData<String>> updateHealthCareNursingExamination(@Body HealthCareNursingExaminationBean healthCareNursingExaminationBean);
+
+    /**
+     * 鑾峰彇鍋ュ悍淇濆仴鐜板瓨鍋ュ悍闂
+     */
+    @GET("/zHealthNow/all")
+    Observable<ResultData<HealthCareExistingProblemsBean>> getHealthCareExistingProblems();
+
+    /**
+     * 淇敼鍋ュ悍淇濆仴鐜板瓨鍋ュ悍闂
+     */
+    @POST("/zHealthNow")
+    Observable<ResultData<String>> updateHealthCareExistingProblems(@Body HealthCareExistingProblemsBean healthCareExistingProblemsBean);
+
+    /**
+     * 鑾峰彇鍋ュ悍淇濆仴绗旇鍐呭
+     */
+    @GET("/zHealthNote")
+    Observable<ResultData<HealthCareNotesContentBean>> getHealthCareNotesContent();
+
+    /**
+     * 淇敼鍋ュ悍淇濆仴绗旇鍐呭
+     */
+    @POST("/zHealthNote")
+    Observable<ResultData<String>> updateHealthCareNotesContent(@Body HealthCareNotesContentBean healthCareNotesContentBean);
+
+    /**
+     * 鑾峰彇鐗堟湰鏇存柊
+     */
+    @GET("/version")
+    Observable<ResultData<UpdateVersionBean>> getUpdateVersion();
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/data/source/http/HttpDataSourceImpl.java b/app/src/main/java/com/application/zhangshi_app_android/data/source/http/HttpDataSourceImpl.java
index 76e39cb..325b543 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/data/source/http/HttpDataSourceImpl.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/data/source/http/HttpDataSourceImpl.java
@@ -2,25 +2,46 @@
 
 import com.android.app_base.http.ResultData;
 import com.android.app_base.http.RetrofitManager;
+import com.application.zhangshi_app_android.bean.AnnualHealthStatusBean;
+import com.application.zhangshi_app_android.bean.BannerBean;
 import com.application.zhangshi_app_android.bean.CaptchaImageBean;
+import com.application.zhangshi_app_android.bean.CertificateOfHonorBean;
+import com.application.zhangshi_app_android.bean.CleanStorageBean;
 import com.application.zhangshi_app_android.bean.ContactsDetailBean;
-import com.application.zhangshi_app_android.bean.ContactsResponseBean;
-import com.application.zhangshi_app_android.bean.FamilyAssetsResponseBean;
+import com.application.zhangshi_app_android.bean.HealthCareBaseInfoBean;
+import com.application.zhangshi_app_android.bean.HealthCareExistingProblemsBean;
+import com.application.zhangshi_app_android.bean.HealthCareLifeHabitsBean;
+import com.application.zhangshi_app_android.bean.HealthCareNotesContentBean;
+import com.application.zhangshi_app_android.bean.HealthCareNursingExaminationBean;
+import com.application.zhangshi_app_android.bean.HomeDevicesBean;
+import com.application.zhangshi_app_android.bean.HomeMemberBean;
+import com.application.zhangshi_app_android.bean.HomeRootBean;
+import com.application.zhangshi_app_android.bean.HundredWishBean;
+import com.application.zhangshi_app_android.bean.IncomeAndExpensesBean;
+import com.application.zhangshi_app_android.bean.MarriageInfoBean;
+import com.application.zhangshi_app_android.bean.MemoBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
+import com.application.zhangshi_app_android.bean.FamilyAssetsBean;
 import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
-import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceAbroadConditionBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceAutobiographyBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceHolderConditionBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceInformationBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceRelationshipBean;
-import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean;
 import com.application.zhangshi_app_android.bean.HonorCollectionResponseBean;
-import com.application.zhangshi_app_android.bean.IncomeAndExpensesResponseBean;
-import com.application.zhangshi_app_android.bean.LittleDoctorResponseBean;
+import com.application.zhangshi_app_android.bean.LittleDoctorBean;
 import com.application.zhangshi_app_android.bean.LoginRequestBean;
 import com.application.zhangshi_app_android.bean.LoginResponseBean;
 import com.android.app_base.base.BaseConfig;
+import com.application.zhangshi_app_android.bean.PersonalNotepadBean;
+import com.application.zhangshi_app_android.bean.PetBean;
+import com.application.zhangshi_app_android.bean.PetMemoBean;
+import com.application.zhangshi_app_android.bean.PrivacyBean;
+import com.application.zhangshi_app_android.bean.PropertyBean;
+import com.application.zhangshi_app_android.bean.TourismBean;
+import com.application.zhangshi_app_android.bean.TourismExperienceBean;
+import com.application.zhangshi_app_android.bean.UpdateVersionBean;
 import com.application.zhangshi_app_android.bean.UploadFileResponseBean;
 import com.application.zhangshi_app_android.data.source.HttpDataSource;
 
@@ -29,7 +50,6 @@
 
 import io.reactivex.Observable;
 import okhttp3.MultipartBody;
-import retrofit2.http.QueryMap;
 
 /**
  * @author Ljj
@@ -88,7 +108,7 @@
      * 鑾峰彇瀹跺ぇ浜嬭
      */
     @Override
-    public Observable<ResultData<FamilyMemorabiliaResponseBean>> getFamilyMemorabilia(Map<String,Object> paramsMap) {
+    public Observable<ResultData<PageResponseBean<FamilyMemorabiliaBean>>> getFamilyMemorabilia(Map<String,Object> paramsMap) {
         return apiService.getFamilyMemorabilia(paramsMap);
     }
     /**
@@ -126,7 +146,7 @@
      * 鑾峰彇瀹跺涵璧勪骇
      */
     @Override
-    public Observable<ResultData<FamilyAssetsResponseBean>> getFamilyAssets(Map<String, Object> paramsMap) {
+    public Observable<ResultData<PageResponseBean<FamilyAssetsBean>>> getFamilyAssets(Map<String, Object> paramsMap) {
         return apiService.getFamilyAssets(paramsMap);
     }
 
@@ -134,12 +154,32 @@
      * 鑾峰彇瀹跺涵璁惧
      */
     @Override
-    public Observable<ResultData<HomeDevicesResponseBean>> getHomeDevices(Map<String, Object> paramsMap) {
+    public Observable<ResultData<PageResponseBean<HomeDevicesBean>>> getHomeDevices(Map<String, Object> paramsMap) {
         return apiService.getHomeDevices(paramsMap);
+    }
+    /**
+     * 澧炲姞瀹跺涵璁惧
+     */
+    @Override
+    public Observable<ResultData<String>> addHomeDevices(HomeDevicesBean homeDevicesBean) {
+        return apiService.addHomeDevices(homeDevicesBean);
+    }
+    /**
+     * 鍒犻櫎瀹跺涵璁惧
+     */
+    @Override
+    public Observable<ResultData<String>> deleteHomeDevices(String ids) {
+        return apiService.deleteHomeDevices(ids);
+    }
+    /**
+     * 淇敼瀹跺涵璁惧
+     */
+    @Override
+    public Observable<ResultData<String>> updateHomeDevices(HomeDevicesBean homeDevicesBean) {
+        return apiService.updateHomeDevices(homeDevicesBean);
     }
 
     /**
-<<<<<<< HEAD
      * 鑾峰彇瀹跺涵鑽h獕
      */
     @Override
@@ -151,17 +191,61 @@
      * 鑾峰彇灏忓尰鐢�
      */
     @Override
-    public Observable<ResultData<LittleDoctorResponseBean>> getLittleDoctors(Map<String, Object> map) {
+    public Observable<ResultData<PageResponseBean<LittleDoctorBean>>> getLittleDoctors(Map<String, Object> map) {
         return apiService.getLittleDoctors(map);
+    }
+    /**
+     * 澧炲姞灏忓尰鐢�
+     */
+    @Override
+    public Observable<ResultData<String>> addLittleDoctor(LittleDoctorBean littleDoctorBean) {
+        return apiService.addLittleDoctor(littleDoctorBean);
+    }
+    /**
+     * 鍒犻櫎灏忓尰鐢�
+     */
+    @Override
+    public Observable<ResultData<String>> deleteLittleDoctors(String ids) {
+        return apiService.deleteLittleDoctors(ids);
+    }
+    /**
+     * 淇敼灏忓尰鐢�
+     */
+    @Override
+    public Observable<ResultData<String>> updateLittleDoctor(LittleDoctorBean littleDoctorBean) {
+        return apiService.updateLittleDoctor(littleDoctorBean);
     }
 
     /**
      * 鑾峰彇鏀舵敮
      */
     @Override
-    public Observable<ResultData<IncomeAndExpensesResponseBean>> getIncomeAndExpenses(Map<String, Object> map) {
+    public Observable<ResultData<PageResponseBean<IncomeAndExpensesBean>>> getIncomeAndExpenses(Map<String, Object> map) {
         return apiService.getIncomeAndExpenses(map);
     }
+
+    /**
+     * 澧炲姞鏀舵敮
+     */
+    @Override
+    public Observable<ResultData<String>> addIncomeAndExpenses(IncomeAndExpensesBean incomeAndExpensesBean) {
+        return apiService.addIncomeAndExpenses(incomeAndExpensesBean);
+    }
+    /**
+     * 鍒犻櫎鏀舵敮
+     */
+    @Override
+    public Observable<ResultData<String>> deleteIncomeAndExpenses(String ids) {
+        return apiService.deleteIncomeAndExpenses(ids);
+    }
+    /**
+     * 淇敼鏀舵敮
+     */
+    @Override
+    public Observable<ResultData<String>> updateIncomeAndExpenses(IncomeAndExpensesBean incomeAndExpensesBean) {
+        return apiService.updateIncomeAndExpenses(incomeAndExpensesBean);
+    }
+
 
     /**
      * 鑾峰彇鎴愰暱缁忓巻
@@ -177,6 +261,17 @@
     public Observable<ResultData<GrowthExperienceInformationBean>> getGrowthExperienceInformation() {
         return apiService.getGrowthExperienceInformation();
     }
+
+    /**
+     *  淇敼涓汉淇℃伅
+     */
+    @Override
+    public Observable<ResultData<String>> updateGrowthExperienceInformation(GrowthExperienceInformationBean growthExperienceInformationBean) {
+        return apiService.updateGrowthExperienceInformation(growthExperienceInformationBean);
+    }
+
+
+
     /**
      * 鑾峰彇鎴愰暱缁忓巻鍏崇郴鎯呭喌
      */
@@ -208,9 +303,374 @@
         return apiService.getGrowthExperienceAutobiography();
     }
 
+    /**
+     *  鑾峰彇閫氳褰�
+     */
     @Override
-    public Observable<ResultData<ContactsResponseBean>> getContacts(Map<String, Object> paramsMap) {
+    public Observable<ResultData<PageResponseBean<ContactsDetailBean>>> getContacts(Map<String, Object> paramsMap) {
         return apiService.getContacts(paramsMap);
     }
 
+    /**
+     *  鑾峰彇淇濇磥鏀剁撼
+     */
+    @Override
+    public Observable<ResultData<PageResponseBean<CleanStorageBean>>> getCleanStorages(Map<String, Object> map) {
+        return apiService.getCleanStorages(map);
+    }
+
+    /**
+     *  澧炲姞淇濇磥鏀剁撼
+     */
+    @Override
+    public Observable<ResultData<String>> addCleanStorage(CleanStorageBean cleanStorageBean) {
+        return apiService.addCleanStorage(cleanStorageBean);
+    }
+
+    /**
+     *  鍒犻櫎淇濇磥鏀剁撼
+     */
+    @Override
+    public Observable<ResultData<String>> deleteCleanStorages(String ids) {
+        return apiService.deleteCleanStorages(ids);
+    }
+
+    /**
+     *  淇敼淇濇磥鏀剁撼
+     */
+    @Override
+    public Observable<ResultData<String>> updateCleanStorage(CleanStorageBean cleanStorageBean) {
+        return apiService.updateCleanStorage(cleanStorageBean);
+    }
+
+    /**
+     *  鑾峰彇涓汉濠氬Щ淇℃伅
+     */
+    @Override
+    public Observable<ResultData<MarriageInfoBean>> getMarriageInfo() {
+        return apiService.getMarriageInfo();
+    }
+
+    /**
+     *  鑾峰彇涓汉璁颁簨鏈�
+     */
+    @Override
+    public Observable<ResultData<PageResponseBean<PersonalNotepadBean>>> getPersonalNotepad(Map<String, Object> toMap) {
+        return apiService.getPersonalNotepad(toMap);
+    }
+
+    /**
+     *  澧炲姞涓汉璁颁簨鏈�
+     */
+    @Override
+    public Observable<ResultData<String>> addPersonalNotepad(PersonalNotepadBean personalNotepadBean) {
+        return apiService.addPersonalNotepad(personalNotepadBean);
+    }
+
+    /**
+     *  鍒犻櫎涓汉璁颁簨鏈�
+     */
+    @Override
+    public Observable<ResultData<String>> deletePersonalNotepad(String ids) {
+        return apiService.deletePersonalNotepad(ids);
+    }
+
+    /**
+     *  淇敼涓汉璁颁簨鏈�
+     */
+    @Override
+    public Observable<ResultData<String>> updatePersonalNotepad(PersonalNotepadBean personalNotepadBean) {
+        return apiService.updatePersonalNotepad(personalNotepadBean);
+    }
+
+    /**
+     *  鑾峰彇涓汉闅愮
+     */
+    @Override
+    public Observable<ResultData<PageResponseBean<PrivacyBean>>> getPrivacy(Map<String, Object> toMap) {
+        return apiService.getPrivacy(toMap);
+    }
+
+    /**
+     *  鑾峰彇鑽h獕璇佷功
+     */
+    @Override
+    public Observable<ResultData<PageResponseBean<CertificateOfHonorBean>>> getCertificateOfHonor(Map<String, Object> toMap) {
+        return apiService.getCertificateOfHonor(toMap);
+    }
+
+    /**
+     *  鑾峰彇涓汉璐骇
+     */
+    @Override
+    public Observable<ResultData<PageResponseBean<PropertyBean>>> getProperty(Map<String, Object> toMap) {
+        return apiService.getProperty(toMap);
+    }
+
+    /**
+     *  鑾峰彇鐧惧勾蹇冩効
+     */
+    @Override
+    public Observable<ResultData<PageResponseBean<HundredWishBean>>> getHundredWish(Map<String, Object> toMap) {
+        return apiService.getHundredWish(toMap);
+    }
+
+    /**
+     *  鑾峰彇瀹犵墿
+     */
+    @Override
+    public Observable<ResultData<PageResponseBean<PetBean>>> getPets(Map<String, Object> toMap) {
+        return apiService.getPets(toMap);
+    }
+
+
+    /**
+     *  鑾峰彇瀹犵墿澶囧繕褰�
+     */
+    @Override
+    public Observable<ResultData<PageResponseBean<PetMemoBean>>> getPetMemo(Map<String, Object> toMap) {
+        return apiService.getPetMemo(toMap);
+    }
+
+    /**
+     *  鑾峰彇鏃呮父璐圭敤璁板綍
+     */
+    @Override
+    public Observable<ResultData<PageResponseBean<TourismBean>>> getTourism(Map<String, Object> toMap) {
+        return apiService.getTourism(toMap);
+    }
+
+    /**
+     *  鏂板鏃呮父璐圭敤璁板綍
+     */
+    @Override
+    public Observable<ResultData<String>> addTourism(TourismBean tourismBean) {
+        return apiService.addTourism(tourismBean);
+    }
+
+    /**
+     *  鍒犻櫎鏃呮父璐圭敤璁板綍
+     */
+    @Override
+    public Observable<ResultData<String>> deleteTourism(String ids) {
+        return apiService.deleteTourism(ids);
+    }
+
+    /**
+     *  淇敼鏃呮父璐圭敤璁板綍
+     */
+    @Override
+    public Observable<ResultData<String>> updateTourism(TourismBean tourismBean) {
+        return apiService.updateTourism(tourismBean);
+    }
+
+    /**
+     * 鑾峰彇鏃呮父缁忓巻
+     */
+    @Override
+    public Observable<ResultData<PageResponseBean<TourismExperienceBean>>> getTourismExperience(Map<String, Object> toMap) {
+        return apiService.getTourismExperience(toMap);
+    }
+
+    /**
+     *  鏂板鏃呮父缁忓巻
+     */
+    @Override
+    public Observable<ResultData<String>> addTourismExperience(TourismExperienceBean tourismExperienceBean) {
+        return apiService.addTourismExperience(tourismExperienceBean);
+    }
+
+    /**
+     *  鍒犻櫎鏃呮父缁忓巻
+     */
+    @Override
+    public Observable<ResultData<String>> deleteTourismExperience(String ids) {
+        return apiService.deleteTourismExperience(ids);
+    }
+
+    /**
+     *  淇敼鏃呮父缁忓巻
+     */
+    @Override
+    public Observable<ResultData<String>> updateTourismExperience(TourismExperienceBean tourismExperienceBean) {
+        return apiService.updateTourismExperience(tourismExperienceBean);
+    }
+
+    /**
+     * 鑾峰彇澶囧繕褰�
+     */
+    @Override
+    public Observable<ResultData<List<MemoBean>>> getMemos(String fid, String cid) {
+        return apiService.getMemos(fid, cid);
+    }
+
+    /**
+     *  鏂板澶囧繕褰�
+     */
+    @Override
+    public Observable<ResultData<String>> addMemo(MemoBean memoBean) {
+        return apiService.addMemo(memoBean);
+    }
+
+    /**
+     *  鍒犻櫎澶囧繕褰�
+     */
+    @Override
+    public Observable<ResultData<String>> deleteMemo(String ids) {
+        return apiService.deleteMemo(ids);
+    }
+
+    /**
+     *  淇敼澶囧繕褰�
+     */
+    @Override
+    public Observable<ResultData<String>> updateMemo(MemoBean memoBean) {
+        return apiService.updateMemo(memoBean);
+    }
+
+
+
+    /**
+     *  鑾峰彇瀹惰氨
+     */
+    @Override
+    public Observable<ResultData<PageResponseBean<HomeMemberBean>>> getHomeMembers(Map<String, Object> toMap) {
+        return apiService.getHomeMembers(toMap);
+    }
+
+    /**
+     *  鑾峰彇瀹舵牴缃�
+     */
+    @Override
+    public Observable<ResultData<List<HomeRootBean>>> getHomeRoot(String depth) {
+        return apiService.getHomeRoot(depth);
+    }
+
+    /**
+     *  鑾峰彇骞村害鍋ュ悍鐘跺喌
+     */
+    @Override
+    public Observable<ResultData<PageResponseBean<AnnualHealthStatusBean>>> getAnnualHealthStatus(Map<String, Object> toMap) {
+        return apiService.getAnnualHealthStatus(toMap);
+    }
+
+    /**
+     *  鏂板骞村害鍋ュ悍鐘跺喌
+     */
+    @Override
+    public Observable<ResultData<String>> addAnnualHealthStatus(AnnualHealthStatusBean annualHealthStatusBean) {
+        return apiService.addAnnualHealthStatus(annualHealthStatusBean);
+    }
+
+    /**
+     *  鍒犻櫎骞村害鍋ュ悍鐘跺喌
+     */
+    @Override
+    public Observable<ResultData<String>> deleteAnnualHealthStatus(String ids) {
+        return apiService.deleteAnnualHealthStatus(ids);
+    }
+
+    /**
+     *  淇敼骞村害鍋ュ悍鐘跺喌
+     */
+    @Override
+    public Observable<ResultData<String>> updateAnnualHealthStatus(AnnualHealthStatusBean annualHealthStatusBean) {
+        return apiService.updateAnnualHealthStatus(annualHealthStatusBean);
+    }
+
+    /**
+     *  鑾峰彇杞挱鍥炬暟鎹�
+     */
+    @Override
+    public Observable<ResultData<List<BannerBean>>> getBannerData() {
+        return apiService.getBannerData();
+    }
+
+    /**
+     *  鑾峰彇鍋ュ悍淇濆仴鍩烘湰淇℃伅
+     */
+    @Override
+    public Observable<ResultData<HealthCareBaseInfoBean>> getHealthCareBaseInfo() {
+        return apiService.getHealthCareBaseInfo();
+    }
+
+    /**
+     *  淇敼鍋ュ悍淇濆仴鍩烘湰淇℃伅
+     */
+    @Override
+    public Observable<ResultData<String>> updateHealthCareBaseInfo(HealthCareBaseInfoBean healthCareBaseInfoBean) {
+        return apiService.updateHealthCareBaseInfo(healthCareBaseInfoBean);
+    }
+
+    /**
+     *  鑾峰彇鍋ュ悍淇濆仴鐢熸椿涔犳儻
+     */
+    @Override
+    public Observable<ResultData<HealthCareLifeHabitsBean>> getHealthCareLifeHabits() {
+        return apiService.getHealthCareLifeHabits();
+    }
+
+    /**
+     *  淇敼鍋ュ悍淇濆仴鐢熸椿涔犳儻
+     */
+    @Override
+    public Observable<ResultData<String>> updateHealthCareLifeHabits(HealthCareLifeHabitsBean healthCareLifeHabitsBean) {
+        return apiService.updateHealthCareLifeHabits(healthCareLifeHabitsBean);
+    }
+
+    /**
+     *  鑾峰彇鍋ュ悍淇濆仴鎶ょ悊鏌ヤ綋
+     */
+    @Override
+    public Observable<ResultData<HealthCareNursingExaminationBean>> getHealthCareNursingExamination() {
+        return apiService.getHealthCareNursingExamination();
+    }
+
+    /**
+     *  淇敼鍋ュ悍淇濆仴鎶ょ悊鏌ヤ綋
+     */
+    @Override
+    public Observable<ResultData<String>> updateHealthCareNursingExamination(HealthCareNursingExaminationBean healthCareNursingExaminationBean) {
+        return apiService.updateHealthCareNursingExamination(healthCareNursingExaminationBean);
+    }
+
+    /**
+     *  鑾峰彇鍋ュ悍淇濆仴鐜板瓨鍋ュ悍闂
+     */
+    @Override
+    public Observable<ResultData<HealthCareExistingProblemsBean>> getHealthCareExistingProblems() {
+        return apiService.getHealthCareExistingProblems();
+    }
+
+    /**
+     *  淇敼鍋ュ悍淇濆仴鐜板瓨鍋ュ悍闂
+     */
+    @Override
+    public Observable<ResultData<String>> updateHealthCareExistingProblems(HealthCareExistingProblemsBean healthCareExistingProblemsBean) {
+        return apiService.updateHealthCareExistingProblems(healthCareExistingProblemsBean);
+    }
+
+    /**
+     *  鑾峰彇鍋ュ悍淇濆仴绗旇鍐呭
+     */
+    @Override
+    public Observable<ResultData<HealthCareNotesContentBean>> getHealthCareNotesContent() {
+        return apiService.getHealthCareNotesContent();
+    }
+
+    /**
+     *  淇敼鍋ュ悍淇濆仴绗旇鍐呭
+     */
+    @Override
+    public Observable<ResultData<String>> updateHealthCareNotesContent(HealthCareNotesContentBean healthCareNotesContentBean) {
+        return apiService.updateHealthCareNotesContent(healthCareNotesContentBean);
+    }
+
+    /**
+     *  鑾峰彇鐗堟湰鏇存柊
+     */
+    @Override
+    public Observable<ResultData<UpdateVersionBean>> getUpdateVersion() {
+        return apiService.getUpdateVersion();
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/other/MyTitleBarStyle.java b/app/src/main/java/com/application/zhangshi_app_android/other/MyTitleBarStyle.java
index a5246a7..112d96b 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/other/MyTitleBarStyle.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/other/MyTitleBarStyle.java
@@ -2,6 +2,7 @@
 
 import android.content.Context;
 import android.content.res.ColorStateList;
+import android.graphics.Typeface;
 import android.graphics.drawable.ColorDrawable;
 import android.graphics.drawable.Drawable;
 import android.util.TypedValue;
@@ -19,9 +20,20 @@
  * @desc TitleBar缁熶竴鏍峰紡
  */
 public class MyTitleBarStyle extends CommonBarStyle {
+
     @Override
-    public TextView createLeftView(Context context) {
-        return super.createLeftView(context);
+    public Typeface getTitleTypeface(Context context, int style) {
+        return Typeface.createFromAsset(context.getAssets(), "roboto_regular.ttf");
+    }
+
+    @Override
+    public Typeface getLeftTitleTypeface(Context context, int style) {
+        return Typeface.createFromAsset(context.getAssets(), "roboto_regular.ttf");
+    }
+
+    @Override
+    public Typeface getRightTitleTypeface(Context context, int style) {
+        return Typeface.createFromAsset(context.getAssets(), "roboto_regular.ttf");
     }
 
     @Override
@@ -79,4 +91,6 @@
         return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16, context.getResources().getDisplayMetrics());
     }
 
+
+
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseActivity.java
index 2dab2a6..e41f787 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseActivity.java
@@ -18,6 +18,7 @@
 import com.android.app_base.base.view.BaseActivity;
 import com.android.app_base.base.viewmodel.BaseViewModel;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.ScreenSizeUtils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.ui.function.CertificateOfHonorActivity;
 import com.application.zhangshi_app_android.ui.function.CleanStorageActivity;
@@ -33,12 +34,23 @@
 import com.application.zhangshi_app_android.ui.function.LittleDoctorActivity;
 import com.application.zhangshi_app_android.ui.function.MarriageActivity;
 import com.application.zhangshi_app_android.ui.function.PetActivity;
+import com.application.zhangshi_app_android.ui.function.PetDetailActivity;
 import com.application.zhangshi_app_android.ui.function.PrivacyActivity;
 import com.application.zhangshi_app_android.ui.function.PropertyActivity;
 import com.application.zhangshi_app_android.ui.function.TourismActivity;
+import com.application.zhangshi_app_android.ui.home.HomeFragment;
+import com.application.zhangshi_app_android.ui.main.MainActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.OptionPicker;
+import com.github.gzuliyujiang.wheelpicker.entity.DateEntity;
+import com.github.gzuliyujiang.wheelpicker.impl.UnitDateFormatter;
+import com.github.gzuliyujiang.wheelpicker.widget.DateWheelLayout;
+import com.github.gzuliyujiang.wheelpicker.widget.OptionWheelLayout;
 import com.hjq.bar.TitleBar;
 
+import java.util.Calendar;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -89,7 +101,7 @@
         super.onCreate(savedInstanceState);
 
         if (mDrawerLayout != null) {
-            classMap.put(null,(LinearLayout) findViewById(R.id.dl_home_root_net));
+            classMap.put(HomeFragment.class,(LinearLayout) findViewById(R.id.dl_home_root_net));
             classMap.put(FamilyMemorabiliaActivity.class,(LinearLayout) findViewById(R.id.dl_family_memorabilia));
             classMap.put(FamilyAssetsActivity.class,(LinearLayout) findViewById(R.id.dl_family_assets));
             classMap.put(HomeDevicesActivity.class,(LinearLayout) findViewById(R.id.dl_home_devices));
@@ -114,7 +126,11 @@
                 if (linearLayout != null) {
                     linearLayout.setOnClickListener(v -> {
                         if (set.getKey() != null){
-                            AppManager.getAppManager().startActivity(set.getKey());
+                            if (set.getKey() == HomeFragment.class) {
+                                MainActivity.start(this, HomeFragment.class);
+                            }else{
+                                AppManager.getAppManager().startActivity(set.getKey());
+                            }
                         }
                     });
                 } else {
@@ -168,4 +184,41 @@
         popupWindow.setOutsideTouchable(false);
         return popupWindow;
     }
+
+    public DatePicker getDatePicker(){
+        DatePicker datePicker = new DatePicker(this);
+        DateWheelLayout wheelLayout = datePicker.getWheelLayout();
+        wheelLayout.getMonthWheelView().setCurtainCorner(0);//鑳屾櫙鏃犲渾瑙�
+        wheelLayout.getDayWheelView().setCurtainCorner(5);//鑳屾櫙鍙宠竟鏈夊渾瑙�
+        wheelLayout.getYearWheelView().setCurtainCorner(4);//鑳屾櫙宸﹁竟鏈夊渾瑙�
+        wheelLayout.setDateFormatter(new UnitDateFormatter());
+        wheelLayout.setPadding(50, 0, 50, 0);
+        wheelLayout.setItemSpace(ScreenSizeUtils.dip2px(getSelfActivity(), 20));
+        wheelLayout.setCurtainEnabled(true);
+        wheelLayout.setCurtainColor(Color.parseColor("#4D2F63F8"));
+        wheelLayout.setCurtainRadius(ScreenSizeUtils.dip2px(getSelfActivity(),4));
+        wheelLayout.setSelectedTextColor(Color.parseColor("#FF2F63F8"));
+        wheelLayout.setTextColor(Color.parseColor("#FF999999"));
+        wheelLayout.setIndicatorEnabled(false);
+        //鏃ユ湡鍙�夎寖鍥�
+        wheelLayout.setRange(DateEntity.target(1900, 1, 1), DateEntity.target(2500, 12, 31),DateEntity.target(Calendar.getInstance()));
+        datePicker.getWheelLayout().setResetWhenLinkage(false);
+        return datePicker;
+    }
+
+    public OptionPicker getOptionPicker(List<String> list){
+        OptionPicker picker = new OptionPicker(this);
+        OptionWheelLayout wheelLayout = picker.getWheelLayout();
+        wheelLayout.setCurtainCorner(1);//鑳屾櫙鏃犲渾瑙�
+        wheelLayout.setPadding(50, 0, 50, 0);
+        wheelLayout.setItemSpace(ScreenSizeUtils.dip2px(getSelfActivity(), 20));
+        wheelLayout.setCurtainEnabled(true);
+        wheelLayout.setCurtainColor(Color.parseColor("#4D2F63F8"));
+        wheelLayout.setCurtainRadius(ScreenSizeUtils.dip2px(getSelfActivity(),4));
+        wheelLayout.setSelectedTextColor(Color.parseColor("#FF2F63F8"));
+        wheelLayout.setTextColor(Color.parseColor("#FF999999"));
+        wheelLayout.setIndicatorEnabled(false);
+        picker.setData(list);
+        return picker;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseFragment.java b/app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseFragment.java
index 06c3b84..805e396 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseFragment.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseFragment.java
@@ -16,7 +16,6 @@
 import androidx.databinding.ViewDataBinding;
 import androidx.drawerlayout.widget.DrawerLayout;
 
-import com.android.app_base.base.view.BaseActivity;
 import com.android.app_base.base.view.BaseFragment;
 import com.android.app_base.base.viewmodel.BaseViewModel;
 import com.android.app_base.manager.AppManager;
@@ -34,7 +33,7 @@
 import com.application.zhangshi_app_android.ui.function.IncomeAndExpensesActivity;
 import com.application.zhangshi_app_android.ui.function.LittleDoctorActivity;
 import com.application.zhangshi_app_android.ui.function.MarriageActivity;
-import com.application.zhangshi_app_android.ui.function.PetActivity;
+import com.application.zhangshi_app_android.ui.function.PetDetailActivity;
 import com.application.zhangshi_app_android.ui.function.PrivacyActivity;
 import com.application.zhangshi_app_android.ui.function.PropertyActivity;
 import com.application.zhangshi_app_android.ui.function.TourismActivity;
@@ -99,7 +98,7 @@
             classMap.put(LittleDoctorActivity.class,(LinearLayout) findViewById(R.id.dl_little_doctor));
             classMap.put(CleanStorageActivity.class,(LinearLayout) findViewById(R.id.dl_clean_storage));
             classMap.put(ContactsActivity.class,(LinearLayout) findViewById(R.id.dl_contacts));
-            classMap.put(PetActivity.class,(LinearLayout) findViewById(R.id.dl_pet));
+            classMap.put(PetDetailActivity.class,(LinearLayout) findViewById(R.id.dl_pet));
             classMap.put(IncomeAndExpensesActivity.class,(LinearLayout) findViewById(R.id.dl_income_and_expenses));
             classMap.put(GrowthExperienceActivity.class,(LinearLayout) findViewById(R.id.dl_growing_up));
             classMap.put(MarriageActivity.class,(LinearLayout) findViewById(R.id.dl_marriage));
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/TestActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/TestActivity.java
new file mode 100644
index 0000000..31de2b1
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/TestActivity.java
@@ -0,0 +1,64 @@
+package com.application.zhangshi_app_android.ui;
+
+import android.graphics.Color;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+
+import com.android.app_base.base.view.BaseActivity;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.application.zhangshi_app_android.BR;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.databinding.ActivityTestBinding;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.annotation.DateMode;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
+import com.github.gzuliyujiang.wheelpicker.entity.DateEntity;
+import com.github.gzuliyujiang.wheelpicker.impl.UnitDateFormatter;
+import com.github.gzuliyujiang.wheelpicker.widget.DateWheelLayout;
+import com.github.gzuliyujiang.wheelview.annotation.CurtainCorner;
+
+import java.util.Calendar;
+
+
+public class TestActivity extends BaseActivity<ActivityTestBinding,TestActivityViewModel>{
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_test;
+    }
+
+    @Override
+    public int getVariableId() {
+        return BR.viewModel;
+    }
+
+    @Override
+    public void initParam() {
+
+    }
+
+    @Override
+    public void initView() {
+        binding.btn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+
+            }
+        });
+
+    }
+
+
+    @Override
+    public void initData() {
+
+    }
+
+    @Override
+    public void initLiveDataObserve() {
+
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/TestActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/TestActivityViewModel.java
new file mode 100644
index 0000000..39210e1
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/TestActivityViewModel.java
@@ -0,0 +1,33 @@
+package com.application.zhangshi_app_android.ui;
+
+import android.app.Application;
+
+import androidx.annotation.NonNull;
+
+import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.application.zhangshi_app_android.data.DataRepository;
+
+/**
+ * @author Ljj
+ * @date 2023.06.06. 17:48
+ * @desc
+ */
+public class TestActivityViewModel extends BaseViewModel<DataRepository> {
+    private String text;
+    public TestActivityViewModel(@NonNull Application application) {
+        super(application);
+    }
+
+    @Override
+    protected DataRepository initModel() {
+        return null;
+    }
+
+    public String getText() {
+        return text;
+    }
+
+    public void setText(String text) {
+        this.text = text;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/ContactsDialog.java b/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/ContactsDialog.java
index adab1c5..3e2a063 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/ContactsDialog.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/ContactsDialog.java
@@ -8,9 +8,14 @@
 import android.widget.ImageView;
 
 import androidx.databinding.DataBindingUtil;
+import androidx.recyclerview.widget.GridLayoutManager;
 
 import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.widget.GridSpaceItemDecoration;
 import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.adapter.PetImageRvAdapter;
 import com.application.zhangshi_app_android.bean.ContactsDetailBean;
 import com.application.zhangshi_app_android.databinding.DialogContactsInfoBinding;
 
@@ -22,6 +27,7 @@
 public class ContactsDialog {
     public static class Builder extends BaseDialog.Builder<ContactsDialog.Builder> {
         private DialogContactsInfoBinding binding;
+        private PetImageRvAdapter adapter;
         public Builder(Context context) {
             super(context);
             binding = DataBindingUtil.inflate(LayoutInflater.from(getContext()),R.layout.dialog_contacts_info,new FrameLayout(getContext()),false);
@@ -33,6 +39,11 @@
             ImageView iv_dialog_close = findViewById(R.id.iv_dialog_close);
             setOnClickListener(iv_dialog_close);
 
+            adapter = new PetImageRvAdapter(context);
+            GridSpaceItemDecoration decoration = new GridSpaceItemDecoration(3, ScreenSizeUtils.dip2px(context,10),ScreenSizeUtils.dip2px(context,20));
+            binding.recyclerView.addItemDecoration(decoration);
+            binding.recyclerView.setLayoutManager(new GridLayoutManager(context,3));
+            binding.recyclerView.setAdapter(adapter);
         }
 
 
@@ -47,6 +58,7 @@
         }
         public Builder setBean(ContactsDetailBean bean){
             binding.setBean(bean);
+            adapter.setData(Utils.splitString2List(bean.getUrl(),","));
             return this;
         }
     }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/PetOwnerInfoDialog.java b/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/PetOwnerInfoDialog.java
index f5767fb..ce509c6 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/PetOwnerInfoDialog.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/PetOwnerInfoDialog.java
@@ -2,15 +2,23 @@
 
 import android.content.Context;
 import android.view.Gravity;
+import android.view.LayoutInflater;
 import android.view.View;
+import android.widget.FrameLayout;
 import android.widget.ImageView;
 
 import androidx.annotation.DrawableRes;
 import androidx.constraintlayout.utils.widget.ImageFilterView;
+import androidx.databinding.DataBindingUtil;
 
 import com.android.app_base.base.dialog.BaseDialog;
 import com.android.app_base.utils.GlideUtil;
 import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.ContactsDetailBean;
+import com.application.zhangshi_app_android.bean.PetBean;
+import com.application.zhangshi_app_android.bean.PetOwnerBean;
+import com.application.zhangshi_app_android.databinding.DialogContactsInfoBinding;
+import com.application.zhangshi_app_android.databinding.DialogPetOwnerInfoBinding;
 
 /**
  * @author Ljj
@@ -19,20 +27,23 @@
  */
 public class PetOwnerInfoDialog {
     public static class Builder extends BaseDialog.Builder<PetOwnerInfoDialog.Builder> {
+        private DialogPetOwnerInfoBinding binding;
         public Builder(Context context) {
             super(context);
-            setContentView(R.layout.dialog_pet_owner_info);
+            binding = DataBindingUtil.inflate(LayoutInflater.from(getContext()),R.layout.dialog_pet_owner_info,new FrameLayout(getContext()),false);
+            setContentView(binding.getRoot());
             setAnimStyle(BaseDialog.ANIM_IOS);
             setBackgroundDimEnabled(false);
             setCancelable(false);
             setGravity(Gravity.CENTER);
-
             ImageView iv_dialog_close = findViewById(R.id.iv_dialog_close);
             setOnClickListener(iv_dialog_close);
 
         }
-
-
+        public PetOwnerInfoDialog.Builder setBean(PetBean bean){
+            binding.setOwner(bean);
+            return this;
+        }
         @Override
         public void onClick(View v) {
             super.onClick(v);
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/VersionUpdateDialog.java b/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/VersionUpdateDialog.java
new file mode 100644
index 0000000..509caa6
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/VersionUpdateDialog.java
@@ -0,0 +1,231 @@
+package com.application.zhangshi_app_android.ui.dialog;
+
+import static com.blankj.utilcode.util.StringUtils.getString;
+
+import android.annotation.SuppressLint;
+import android.app.DownloadManager;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Environment;
+import android.os.Handler;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.View;
+import android.widget.ProgressBar;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.annotation.StringRes;
+
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.utils.Utils;
+import com.application.zhangshi_app_android.MyApplication;
+import com.application.zhangshi_app_android.R;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+/**
+ * @author Ljj
+ * @date 2023.07.25. 16:59
+ * @desc
+ */
+public final class VersionUpdateDialog {
+    @SuppressWarnings("unchecked")
+    public static class Builder<B extends VersionUpdateDialog.Builder<B>>
+            extends BaseDialog.Builder<B> {
+
+        private boolean mAutoDismiss = true;
+
+        private final TextView mTitleView;
+        private final TextView mContentView;
+        private final TextView mConfirmView;
+        private final ProgressBar progressBar;
+        private final TextView tv_pro;
+        private final TextView tv_pro_percent;
+        private final RelativeLayout layout_progress;
+
+        private String downloadUrl;
+
+        public Builder(Context context) {
+            super(context);
+            setContentView(R.layout.dialog_version_update);
+            setAnimStyle(BaseDialog.ANIM_IOS);
+            setGravity(Gravity.CENTER);
+            setBackgroundDimAmount(0.5F);
+            setCanceledOnTouchOutside(true);
+            mTitleView = findViewById(R.id.tv_update_dialog_title);
+            mContentView = findViewById(R.id.tv_update_dialog_content);
+            mConfirmView = findViewById(R.id.tv_update_dialog_confirm);
+            progressBar = findViewById(R.id.pb_download);
+            tv_pro = findViewById(R.id.tv_pro);
+            tv_pro_percent = findViewById(R.id.tv_pro_percent);
+            layout_progress = findViewById(R.id.layout_progress);
+            setOnClickListener(mConfirmView);
+        }
+
+        public B setDownloadUrl(String downloadUrl) {
+            this.downloadUrl = downloadUrl;
+            return (B) this;
+        }
+
+        public B setTitle(@StringRes int id) {
+            return setTitle(getString(id));
+        }
+
+        public B setTitle(CharSequence text) {
+            mTitleView.setText(text);
+            return (B) this;
+        }
+
+        public B setContent(CharSequence text) {
+            mContentView.setText(text);
+            return (B) this;
+        }
+
+        public B setConfirm(@StringRes int id) {
+            return setConfirm(getString(id));
+        }
+
+        public B setConfirm(CharSequence text) {
+            mConfirmView.setText(text);
+            return (B) this;
+        }
+
+        public B setAutoDismiss(boolean dismiss) {
+            mAutoDismiss = dismiss;
+            return (B) this;
+        }
+
+        public void autoDismiss() {
+            if (mAutoDismiss) {
+                dismiss();
+            }
+        }
+
+        @Override
+        public void onClick(View v) {
+            if (v == mConfirmView) {
+                changeVisi(View.GONE,View.VISIBLE);
+                if (downloadUrl != null){
+                    startDownLoadApp(downloadUrl);
+                }
+            }
+        }
+
+
+        @Override
+        public BaseDialog show() {
+            return super.show();
+        }
+
+
+        public long totalBytes;
+        public long downloadBytes;
+        public int dl_progress;
+
+        private Handler handler = new Handler();
+        Runnable runnable = new Runnable() {
+            @Override
+            public void run() {
+                // TODO Auto-generated method stub
+                progressBar.setProgress(dl_progress);
+                tv_pro.setText((downloadBytes * 100 / totalBytes) + "%");
+                tv_pro_percent.setText((downloadBytes * 100 / totalBytes) + "/100");
+            }
+        };
+
+        public void changeVisi(int a, int b) {
+            mConfirmView.setVisibility(a);
+            layout_progress.setVisibility(b);
+            progressBar.setProgress(0);
+            tv_pro.setText("0");
+            tv_pro_percent.setText("0/100");
+        }
+
+        /**
+         * 涓嶆秹鍙婃暟鎹簱锛屽崟鐙笅杞芥枃浠�
+         */
+        public void startDownLoadApp(String url) {
+            String fileName = "app_update";
+            //鍒涘缓涓嬭浇浠诲姟,downloadUrl灏辨槸涓嬭浇閾炬帴
+            DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
+            request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);//涓嬭浇杩涜涓拰涓嬭浇瀹屾垚鐨勯�氱煡鏍忔槸鍚︽樉绀�
+            //鐢ㄤ簬璁剧疆涓嬭浇鏃舵椂鍊欏湪鐘舵�佹爮鏄剧ず閫氱煡淇℃伅
+            request.setNotificationVisibility(request.VISIBILITY_VISIBLE);
+            request.allowScanningByMediaScanner();//璁剧疆鍏佽琚壂鎻忓埌
+            request.setVisibleInDownloadsUi(true);//涓嬭浇鐨勬枃浠跺彲浠ヨ绯荤粺鐨凞ownloads搴旂敤鎵弿鍒板苟绠$悊
+
+            request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName); //鎸囧畾涓嬭浇璺緞鍜屼笅杞芥枃浠跺悕
+
+            final DownloadManager downloadManager = (DownloadManager) MyApplication.getInstance().getSystemService(Context.DOWNLOAD_SERVICE);//鑾峰彇涓嬭浇绠$悊鍣�
+            final long downloadID = downloadManager.enqueue(request);//灏嗕笅杞戒换鍔″姞鍏ヤ笅杞介槦鍒楋紝鍚﹀垯涓嶄細杩涜涓嬭浇
+
+            final DownloadManager.Query query = new DownloadManager.Query();
+            query.setFilterById(downloadID);//绛涢�変笅杞戒换鍔★紝浼犲叆浠诲姟ID锛屽彲鍙樺弬鏁�
+
+
+            final Timer mTimer = new Timer();
+            mTimer.schedule(new TimerTask() {
+                @Override
+                public void run() {
+                    updateDownloadSize(query, mTimer, downloadManager, fileName);
+                }
+            }, 0, 1000);
+        }
+
+        @SuppressLint("Range")
+        private void updateDownloadSize(DownloadManager.Query query, Timer mTimer, DownloadManager downloadManager, String fileName) {
+            Cursor c = null;
+            try {
+                c = downloadManager.query(query);
+                if (c != null) {
+                    if (c.moveToFirst()) {
+                        int downloadBytesIdx = c.getColumnIndexOrThrow(
+                                DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR);
+                        int totalBytesIdx = c.getColumnIndexOrThrow(
+                                DownloadManager.COLUMN_TOTAL_SIZE_BYTES);
+                        totalBytes = c.getLong(totalBytesIdx);
+                        downloadBytes = c.getLong(downloadBytesIdx);
+                        int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS));
+                        // 宸蹭笅杞界殑瀛楄妭澶у皬
+                        final long downloadedSoFar = c.getLong(c.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR));
+                        // 涓嬭浇鏂囦欢鐨勬�诲瓧鑺傚ぇ灏�
+                        final long totalSize = c.getLong(c.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES));
+                        dl_progress = (int) (downloadedSoFar * 100 / totalSize);
+                        switch (status) {
+                            case DownloadManager.STATUS_PAUSED:
+                                Log.d("APPUpdate", "涓嬭浇鏆傚仠:" + fileName);
+                            case DownloadManager.STATUS_PENDING:
+                                Log.d("APPUpdate", "涓嬭浇寤惰繜:" + fileName);
+                            case DownloadManager.STATUS_RUNNING:
+                                Log.d("APPUpdate", "姝e湪涓嬭浇:" + fileName);
+                                handler.postDelayed(runnable, 100);
+                                break;
+                            case DownloadManager.STATUS_SUCCESSFUL:
+                                Log.d("APPUpdate", "涓嬭浇瀹屾垚:" + fileName);
+                                mTimer.cancel();
+                                dismiss();
+                                handler=null;
+                                //涓嬭浇瀹屾垚瀹夎APK
+                                Utils.installAPK(getContext(), fileName);
+                                break;
+                            case DownloadManager.STATUS_FAILED:
+                                Log.d("APPUpdate", "涓嬭浇澶辫触:" + fileName);
+                                setContent("涓嬭浇澶辫触锛岃閲嶆柊涓嬭浇");
+                                changeVisi(View.VISIBLE,View.GONE);
+                                break;
+                        }
+                    }
+                }
+            } finally {
+                if (c != null) {
+                    c.close();
+                }
+            }
+
+        }
+
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivity.java
index a1e1bf6..8cbc7af 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivity.java
@@ -1,13 +1,30 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import android.content.Intent;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.AnnualHealthStatusRvAdapter;
-import com.application.zhangshi_app_android.adapter.CleanStorageRvAdapter;
+import com.application.zhangshi_app_android.bean.AnnualHealthStatusBean;
 import com.application.zhangshi_app_android.databinding.ActivityAnnualHealthStatusBinding;
-import com.application.zhangshi_app_android.databinding.ActivityCleanStorageBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
+import com.hjq.bar.TitleBar;
 
 /**
  * @author Ljj
@@ -17,7 +34,8 @@
 public class AnnualHealthStatusActivity extends DLBaseActivity<ActivityAnnualHealthStatusBinding,AnnualHealthStatusActivityViewModel > {
 
     private AnnualHealthStatusRvAdapter adapter;
-
+    private boolean isSearchLayoutVisible;
+    private PopupWindow mOperatePopupWindow;
     @Override
     public int getLayoutId() {
         return R.layout.activity_annual_health_status;
@@ -35,13 +53,159 @@
 
     @Override
     public void initView() {
-        adapter = new AnnualHealthStatusRvAdapter(this);
+        //涓嬫媺鍒锋柊甯冨眬
+        binding.refreshLayout.setEnableRefresh(false);
+        binding.refreshLayout.setEnableLoadMore(true);
+        binding.refreshLayout.setEnableOverScrollDrag(true);
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+            viewModel.getMoreAnnualHealthStatus();
+        });
+        //recyclerView閫傞厤鍣�
+        adapter = new AnnualHealthStatusRvAdapter(this,viewModel);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
         itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         binding.recyclerView.addItemDecoration(itemDecoration);
         binding.recyclerView.setAdapter(adapter);
+        //鍙充笂瑙掓搷浣滃脊绐�
+        mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
+        setOnClickListener(
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_add),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_select),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new)
+        );
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
+        });
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.dropExpand(binding.containerSearchParameter,0,targetHeight);
+                isSearchLayoutVisible = true;
+            }
+        });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getAnnualHealthStatus();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+        //鐐瑰嚮娣诲姞鎸夐挳璺宠浆鍒板垱寤哄澶т簨璁伴〉闈�
+        binding.fabAdd.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(new Intent(getSelfActivity(), AnnualHealthStatusDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
+            }
+        });
+        binding.etStartTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etEndTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etEndTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etStartTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etStartTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨寮�濮嬫椂闂�");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    //浠yyy-MM-dd鐨勬牸寮忔樉绀猴紝鏈堟棩灏忎簬10鏃跺墠闈㈣ˉ0
+                    binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etEndTime.getText().toString().isEmpty()){
+                        binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.etEndTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨缁撴潫鏃堕棿");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etStartTime.getText().toString().isEmpty()){
+                        binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.ivTimeClear.setOnClickListener(v -> {
+            binding.etStartTime.setText("");
+            binding.etEndTime.setText("");
+        });
     }
 
     @Override
@@ -54,5 +218,126 @@
         viewModel.getDataListLiveData().observe(this, dataList -> {
             adapter.setData(dataList);
         });
+        viewModel.getCheckListLiveData().observe(this, checkList -> {
+            if (0 == viewModel.getOperateTypeLiveData().getValue()){
+                return;
+            }
+            if (checkList.isEmpty()){
+                viewModel.getOperateTypeLiveData().setValue(1);
+            }else{
+                viewModel.getOperateTypeLiveData().setValue(2);
+            }
+        });
+        viewModel.getMoreListLiveData().observe(this, moreList -> {
+            adapter.addData(moreList);
+        });
+        viewModel.getOperateTypeLiveData().observe(this, integer -> {
+            if (integer == 0){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_operate);
+                binding.ivOperate.setOnClickListener(v -> {
+                    mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+                });
+                adapter.setCheckable(false);
+            }else if (integer == 1){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_operate_finish);
+                binding.ivOperate.setOnClickListener(v -> {
+                    viewModel.getOperateTypeLiveData().postValue(0);
+                });
+                adapter.setCheckable(true);
+            }else if (integer == 2){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_delete_white);
+                binding.ivOperate.setOnClickListener(v -> {
+                    new UIDialog.Builder(this)
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎閫変腑鐨勯」鐩悧")
+                            .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                            .setConfirm("纭畾")
+                            .setCancel("鍙栨秷")
+                            .setListener(new UIDialog.OnListener() {
+                                @Override
+                                public void onConfirm(BaseDialog dialog) {
+                                    viewModel.deleteCheckList();
+                                }
+                            })
+                            .show();
+                });
+            }
+        });
+
+        viewModel.getFinishDeleteListLiveData().observe(this, beans -> {
+            for (AnnualHealthStatusBean bean : beans) {
+                adapter.removeItem(bean);
+            }
+        });
+
+        //瑙傚療鏁版嵁鐨勫彉鍖栵紝鏈夊彉鍖栧寘鎷坊鍔犮�佷慨鏀广�佸垹闄ら兘浼氬彂閫佹秷鎭紝鎺ユ敹鍒版秷鎭悗閲嶆柊鑾峰彇鏁版嵁杩涜鍒锋柊
+        RxBus.getInstance().toObservable(this, AnnualHealthStatusBean.class)
+                .subscribe(bean -> {
+                    viewModel.getAnnualHealthStatus();
+                });
+    }
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
+    }
+
+    @Override
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.tv_add){
+            AppManager.getAppManager().startActivity(new Intent(this, AnnualHealthStatusDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
+            mOperatePopupWindow.dismiss();
+        }else if (id == R.id.tv_select){
+            viewModel.getOperateTypeLiveData().postValue(1);
+            mOperatePopupWindow.dismiss();
+        }else if (id == R.id.tv_from_new_to_old) {
+            viewModel.changeOrder(true);
+            mOperatePopupWindow.dismiss();
+        } else if (id == R.id.tv_from_old_to_new) {
+            viewModel.changeOrder(false);
+            mOperatePopupWindow.dismiss();
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (mOperatePopupWindow != null){
+            mOperatePopupWindow.dismiss();
+        }
+    }
+
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
+    }
+
+    @Override
+    public void onLeftClick(TitleBar titleBar) {
+        finish();
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivityViewModel.java
index e47e190..858180e 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivityViewModel.java
@@ -1,17 +1,33 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
+import androidx.lifecycle.LiveData;
 import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.bean.AnnualHealthStatusBean;
-import com.application.zhangshi_app_android.bean.CleanStorageBean;
+import com.application.zhangshi_app_android.bean.AnnualHealthStatusRequestBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
+import com.application.zhangshi_app_android.bean.AnnualHealthStatusBean;
+import com.application.zhangshi_app_android.bean.AnnualHealthStatusRequestBean;
 import com.application.zhangshi_app_android.data.DataRepository;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
@@ -20,7 +36,12 @@
  */
 public class AnnualHealthStatusActivityViewModel extends BaseViewModel<DataRepository> {
     private MutableLiveData<List<AnnualHealthStatusBean>> dataListLiveData;
+    private MutableLiveData<List<AnnualHealthStatusBean>> checkListLiveData;//閫変腑鐨勬暟鎹�
+    private MutableLiveData<List<AnnualHealthStatusBean>> moreListLiveData;//涓嬫媺鍔犺浇鏁版嵁
+    private MutableLiveData<AnnualHealthStatusRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
+    private MutableLiveData<List<AnnualHealthStatusBean>> finishDeleteListLiveData;//宸茬粡瀹屾垚鍒犻櫎鐨勬暟鎹紝鐢ㄤ簬adapter鐨剅emove鎿嶄綔
 
+    private MutableLiveData<Integer> operateTypeLiveData;//鎿嶄綔绫诲瀷 0 閫夋嫨鎿嶄綔 1.瀹屾垚 2.鍒犻櫎
     public AnnualHealthStatusActivityViewModel(@NonNull Application application) {
         super(application);
     }
@@ -30,8 +51,207 @@
         return DataRepository.getInstance();
     }
 
+    /**
+     *  鑾峰彇骞村害鍋ュ悍鎯呭喌
+     */
+    public void getAnnualHealthStatus() {
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new AnnualHealthStatusRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        model.getAnnualHealthStatus(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<PageResponseBean<AnnualHealthStatusBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<AnnualHealthStatusBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                changeStateView(StateViewEnum.DATA_NULL);
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                dataListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void getMoreAnnualHealthStatus() {
+        if (true){
+            changeStateView(StateViewEnum.DATA_NULL);
+            return;
+        }
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new AnnualHealthStatusRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getAnnualHealthStatus(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<PageResponseBean<AnnualHealthStatusBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<AnnualHealthStatusBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎澶氶�夐�変腑鐨勬暟鎹�
+     */
+    public void deleteCheckList() {
+        List<AnnualHealthStatusBean> deleteList = getCheckListLiveData().getValue();
+        if (deleteList == null){
+            return;
+        }
+        StringBuffer sb = new StringBuffer();
+        deleteList.forEach(AnnualHealthStatusBean -> sb.append(AnnualHealthStatusBean.getId()).append(","));
+        sb.deleteCharAt(sb.length()-1);
+        model.deleteAnnualHealthStatus(sb.toString())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            finishDeleteListLiveData.postValue(checkListLiveData.getValue());
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                            getCheckListLiveData().postValue(new ArrayList<>());
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎鍗曚釜鏁版嵁
+     */
+    public void deleteItem(AnnualHealthStatusBean AnnualHealthStatusBean) {
+        model.deleteAnnualHealthStatus(String.valueOf(AnnualHealthStatusBean.getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            List<AnnualHealthStatusBean> list = new ArrayList<>();
+                            list.add(AnnualHealthStatusBean);
+                            finishDeleteListLiveData.postValue(list);
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    public MutableLiveData<List<AnnualHealthStatusBean>> getCheckListLiveData() {
+        if (checkListLiveData==null){
+            checkListLiveData = new MutableLiveData<>();
+            checkListLiveData.postValue(new ArrayList<>());
+        }
+        if (checkListLiveData.getValue() == null){
+            checkListLiveData.postValue(new ArrayList<>());
+        }
+        return checkListLiveData;
+    }
+
+    public void setCheckListLiveData(MutableLiveData<List<AnnualHealthStatusBean>> checkListLiveData) {
+        this.checkListLiveData = checkListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<AnnualHealthStatusRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null){
+            requestBeanLiveData = new MutableLiveData<>();
+        }
+        if (requestBeanLiveData.getValue() == null){
+            requestBeanLiveData.setValue(new AnnualHealthStatusRequestBean());
+        }
+        return requestBeanLiveData;
+    }
+
+    public void setRequestBeanLiveData(MutableLiveData<AnnualHealthStatusRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
+    }
+
     public MutableLiveData<List<AnnualHealthStatusBean>> getDataListLiveData() {
-        if (dataListLiveData == null) {
+        if (dataListLiveData == null){
             dataListLiveData = new MutableLiveData<>();
         }
         return dataListLiveData;
@@ -41,22 +261,92 @@
         this.dataListLiveData = dataListLiveData;
     }
 
-    /**
-     *  鑾峰彇骞村害鍋ュ悍鎯呭喌
-     */
-    public void getAnnualHealthStatus() {
-        List<AnnualHealthStatusBean> beans =  new ArrayList<>();
-        for (int i = 0; i < 10; i++) {
-            AnnualHealthStatusBean bean = new AnnualHealthStatusBean();
-            bean.setId(i);
-            bean.setTime("2020-0" + i + "-01");
-            bean.setType("浣撴");
-            bean.setHospital("浜烘皯鍖婚櫌");
-            bean.setName("浣撴牸妫�鏌�");
-            bean.setAttention("娉ㄦ剰淇濆仴");
-            bean.setRemark("鍏ㄥ叏韬鏌�");
-            beans.add(bean);
+    @NonNull
+    public MutableLiveData<List<AnnualHealthStatusBean>> getMoreListLiveData() {
+        if (moreListLiveData == null){
+            moreListLiveData = new MutableLiveData<>();
         }
-        dataListLiveData.setValue(beans);
+        return moreListLiveData;
+    }
+
+    public void setMoreListLiveData(MutableLiveData<List<AnnualHealthStatusBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<Integer> getOperateTypeLiveData() {
+        if (operateTypeLiveData == null){
+            operateTypeLiveData = new MutableLiveData<>();
+            operateTypeLiveData.setValue(0);
+        }
+        return operateTypeLiveData;
+    }
+
+    public void setOperateTypeLiveData(MutableLiveData<Integer> operateTypeLiveData) {
+        this.operateTypeLiveData = operateTypeLiveData;
+    }
+
+    public LiveData<List<AnnualHealthStatusBean>> getFinishDeleteListLiveData() {
+        if (finishDeleteListLiveData == null){
+            finishDeleteListLiveData = new MutableLiveData<>();
+        }
+        return finishDeleteListLiveData;
+    }
+
+    public void setFinishDeleteListLiveData(MutableLiveData<List<AnnualHealthStatusBean>> finishDeleteListLiveData) {
+        this.finishDeleteListLiveData = finishDeleteListLiveData;
+    }
+
+    /**
+     * 鏀瑰彉鎺掑簭
+     * @param b true 闄嶅簭 false 鍗囧簭
+     */
+    public void changeOrder(boolean b) {
+        List<AnnualHealthStatusBean> list = getDataListLiveData().getValue();
+        if (list == null || list.isEmpty()){
+            return;
+        }
+        if (b) {
+            // 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getCheckTime();
+                String happenTime2 = o2.getCheckTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return 1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return -1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date2.compareTo(date1);
+                    }
+                    return 0;
+                }
+            });
+        } else  {
+            // 浠庢棫鍒版柊锛宯ull鎺掓渶鍓�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getCheckTime();
+                String happenTime2 = o2.getCheckTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return -1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return 1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date1.compareTo(date2);
+                    }
+                    return 0;
+                }
+            });
+        }
+        getDataListLiveData().setValue(list);
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusDetailActivity.java
index c589eba..20c658b 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusDetailActivity.java
@@ -3,21 +3,39 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.EditText;
+import android.widget.PopupWindow;
 
 import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.manager.UserManager;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.ImageRvAdapter;
 import com.application.zhangshi_app_android.bean.AnnualHealthStatusBean;
 import com.application.zhangshi_app_android.bean.CertificateOfHonorBean;
+import com.application.zhangshi_app_android.bean.PersonalNotepadBean;
 import com.application.zhangshi_app_android.databinding.ActivityAnnualHealthStatusDetailBinding;
 import com.application.zhangshi_app_android.databinding.ActivityCertificateOfHonorDetailBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
+import com.hjq.bar.TitleBar;
+import com.luck.picture.lib.entity.LocalMedia;
+import com.luck.picture.lib.interfaces.OnResultCallbackListener;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Locale;
+import java.util.function.Consumer;
 
 /**
  * @author Ljj
@@ -27,7 +45,8 @@
 public class AnnualHealthStatusDetailActivity extends DLBaseActivity<ActivityAnnualHealthStatusDetailBinding,AnnualHealthStatusDetailActivityViewModel> {
 
     private ImageRvAdapter adapter;
-
+    private int type;// 0 鏌ョ湅鍙慨鏀瑰垹闄� 1 鏂板 2 鐩存帴淇敼
+    private PopupWindow popupWindow;
     @Override
     public int getLayoutId() {
         return R.layout.activity_annual_health_status_detail;
@@ -40,8 +59,12 @@
 
     @Override
     public void initParam() {
-        if (getIntent().hasExtra("bean")){
-            viewModel.getBeanLiveData().setValue((AnnualHealthStatusBean) getIntent().getSerializableExtra("bean"));
+        type = getIntent().getIntExtra(BaseConfig.EXTRA_TYPE,0);
+        if (type == 0 || type == 2){
+            AnnualHealthStatusBean bean = (AnnualHealthStatusBean) getIntent().getSerializableExtra("bean");
+            if (bean !=null){
+                viewModel.getBeanLiveData().setValue(bean);
+            }
         }
     }
 
@@ -51,7 +74,99 @@
         GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
         binding.rvImage.setLayoutManager(gridLayoutManager);
         binding.rvImage.setNestedScrollingEnabled(false);
-        setIsEdited(false);
+        View footerView = View.inflate(this,R.layout.item_image_footer,null);
+        binding.rvImage.addFooterView(footerView);
+        binding.rvImage.requestLayout();
+        footerView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                UserManager.getInstance().selectImage(getSelfActivity(), 9, new OnResultCallbackListener<LocalMedia>() {
+                    @Override
+                    public void onResult(ArrayList<LocalMedia> result) {
+                        if (result.size() == 0) return;
+                        for (LocalMedia media : result) {
+                            String path = media.getRealPath();
+                            File file = new File(path);
+                            if (file.exists()) {
+                                viewModel.uploadFile(file);
+                            }
+                        }
+                    }
+
+                    @Override
+                    public void onCancel() {
+
+                    }
+                });
+            }
+        });
+        adapter.setOnChildClickListener(R.id.iv_delete, new BaseRVAdapter.OnChildClickListener() {
+            @Override
+            public void onChildClick(RecyclerView recyclerView, View childView, int position) {
+                AnnualHealthStatusBean bean = viewModel.getBeanLiveData().getValue();
+                if (bean !=null){
+                    List<String> urlList = Utils.splitString2List(bean.getUrl(),",");
+                    urlList.remove(adapter.getItem(position));
+                    bean.setUrl(Utils.appendList2String(urlList,","));
+                }
+                adapter.removeItem(position);
+                viewModel.getBeanLiveData().setValue(bean);
+            }
+        });
+        binding.rvImage.setAdapter(adapter);
+
+        if (type == 1){
+            viewModel.getTypeLiveData().postValue(true);
+            binding.ivOperate.setOnClickListener(v -> {
+                viewModel.add();
+            });
+        }else if (type == 0){
+            popupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate_delete,null));
+            popupWindow.getContentView().findViewById(R.id.tv_modify).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    viewModel.getTypeLiveData().postValue(true);
+                    popupWindow.dismiss();
+                }
+            });
+            popupWindow.getContentView().findViewById(R.id.tv_delete).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    popupWindow.dismiss();
+                    new UIDialog.Builder(getSelfActivity())
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎椤圭洰鍚�")
+                            .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                            .setConfirm("纭畾")
+                            .setCancel("鍙栨秷")
+                            .setListener(new UIDialog.OnListener() {
+                                @Override
+                                public void onConfirm(BaseDialog dialog) {
+                                    viewModel.delete();
+                                }
+                            })
+                            .show();
+                }
+            });
+            viewModel.getTypeLiveData().postValue(false);
+        }else if (type == 2){
+            viewModel.getTypeLiveData().postValue(true);
+
+        }
+        binding.etTime.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                DatePicker picker = getDatePicker();
+                picker.setTitle("閫夋嫨鏃堕棿");
+                picker.setOnDatePickedListener(new OnDatePickedListener() {
+                    @Override
+                    public void onDatePicked(int year, int month, int day) {
+                        String date = String.format(Locale.CHINA, "%d-%02d-%02d", year, month, day);
+                        binding.etTime.setText(date);
+                    }
+                });
+                picker.show();
+            }
+        });
     }
 
     @Override
@@ -63,40 +178,48 @@
     public void initLiveDataObserve() {
         viewModel.getBeanLiveData().observe(this,bean -> {
             if (bean!=null){
-                String url = bean.getUrl();
-                if (url == null||url.isEmpty()){
-                    return;
-                }
-                List<String> list;
-                if (url.contains(",")){
-                    String[] split = url.split(",");
-                    list = new ArrayList<>(Arrays.asList(split));
+                adapter.setData(Utils.splitString2List(bean.getUrl(),","));
+            }
+        });
+        viewModel.getTypeLiveData().observe(this,operateType -> {
+            if (operateType){
+                if (type == 1) {
+                    binding.ivOperate.setOnClickListener(v -> {
+                        viewModel.add();
+                    });
                 }else {
-                    list = new ArrayList<>();
-                    list.add(url);
+                    binding.ivOperate.setOnClickListener(v -> {
+                        viewModel.update();
+                    });
                 }
-                adapter.setData(list);
+                binding.rvImage.getFooterViews().forEach(new Consumer<View>() {
+                    @Override
+                    public void accept(View view) {
+                        view.setVisibility(View.VISIBLE);
+                    }
+                });
+                setIsEdited(true);
+            }else {
+                binding.ivOperate.setOnClickListener(v -> {
+                    popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+                });
+                binding.rvImage.getFooterViews().forEach(new Consumer<View>() {
+                    @Override
+                    public void accept(View view) {
+                        view.setVisibility(View.GONE);
+                    }
+                });
+                setIsEdited(false);
             }
         });
     }
 
     public void setIsEdited(boolean isEdited){
-        disableAllEditText(getContentView(),isEdited);
         adapter.setIsEdited(isEdited);
     }
-    public void disableAllEditText(ViewGroup viewGroup, boolean isEdited) {
-        for (int i = 0; i < viewGroup.getChildCount(); i++) {
-            View child = viewGroup.getChildAt(i);
-            if (child instanceof ViewGroup) {
-                disableAllEditText((ViewGroup) child,isEdited);
-            } else if (child instanceof EditText) {
-                child.setEnabled(isEdited);
-                child.setFocusable(isEdited);
-                child.setFocusableInTouchMode(isEdited);
-                if (!isEdited){
-                    child.clearFocus();
-                }
-            }
-        }
+
+    @Override
+    public void onLeftClick(TitleBar titleBar) {
+        finish();
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusDetailActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusDetailActivityViewModel.java
index 91d1842..9a50334 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusDetailActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusDetailActivityViewModel.java
@@ -1,14 +1,28 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.application.zhangshi_app_android.bean.AnnualHealthStatusBean;
-import com.application.zhangshi_app_android.bean.CertificateOfHonorBean;
+import com.application.zhangshi_app_android.bean.UploadFileResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.io.File;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
 
 /**
  * @author Ljj
@@ -18,6 +32,7 @@
 public class AnnualHealthStatusDetailActivityViewModel extends BaseViewModel<DataRepository> {
 
     private MutableLiveData<AnnualHealthStatusBean> beanLiveData;
+    private MutableLiveData<Boolean> typeLiveData;//true 缂栬緫鐘舵�� false 灞曠ず鐘舵��
 
     public AnnualHealthStatusDetailActivityViewModel(@NonNull Application application) {
         super(application);
@@ -28,11 +43,176 @@
         return DataRepository.getInstance();
     }
 
+    /**
+     * 娣诲姞
+     */
+    public void add() {
+        System.out.println(beanLiveData.getValue());
+        model.addAnnualHealthStatus(beanLiveData.getValue())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("娣诲姞鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎
+     */
+    public void delete() {
+        if (beanLiveData.getValue() == null){
+            return;
+        }
+        model.deleteAnnualHealthStatus(String.valueOf(beanLiveData.getValue().getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 淇敼
+     */
+    public void update() {
+        model.updateAnnualHealthStatus(beanLiveData.getValue())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("淇敼鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    /**
+     * 涓婁紶鐢靛瓙鏂囦欢
+     */
+    public void uploadFile(File file) {
+        RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
+        MultipartBody.Part body = MultipartBody.Part.createFormData("uploadFile", file.getName(), requestBody);
+        model.uploadFile(body)
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<UploadFileResponseBean>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<UploadFileResponseBean> resultData) {
+                        if (resultData.getCode() == CODE_SUCCESS){
+                            AnnualHealthStatusBean bean = beanLiveData.getValue();
+                            String url;
+                            if (bean != null){
+                                url = bean.getUrl();
+                                if (url == null){
+                                    url = resultData.getData().getUrl();
+                                }else {
+                                    url = url + "," + resultData.getData().getUrl();
+                                }
+                                bean.setUrl(url);
+                                beanLiveData.postValue(bean);
+                            }
+                        }else {
+                            messageLiveData.postValue(resultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    public MutableLiveData<Boolean> getTypeLiveData() {
+        if (typeLiveData == null){
+            typeLiveData = new MutableLiveData<>();
+        }
+        return typeLiveData;
+    }
+
+    public void setTypeLiveData(MutableLiveData<Boolean> typeLiveData) {
+        this.typeLiveData = typeLiveData;
+    }
 
     public MutableLiveData<AnnualHealthStatusBean> getBeanLiveData() {
         if (beanLiveData == null) {
             beanLiveData = new MutableLiveData<>();
         }
+        if (beanLiveData.getValue() == null){
+            beanLiveData.setValue(new AnnualHealthStatusBean());
+        }
         return beanLiveData;
     }
 
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorActivity.java
index de202ac..be3e046 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorActivity.java
@@ -1,11 +1,19 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import android.text.TextUtils;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.CertificateOfHonorRvAdapter;
 import com.application.zhangshi_app_android.databinding.ActivityCertificateOfHonorBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.hjq.bar.TitleBarSupport;
 
 /**
  * @author Ljj
@@ -15,7 +23,9 @@
 public class CertificateOfHonorActivity extends DLBaseActivity<ActivityCertificateOfHonorBinding, CertificateOfHonorActivityViewModel> {
 
     private CertificateOfHonorRvAdapter adapter;
+    private PopupWindow mOperatePopupWindow;
 
+    private boolean isSearchLayoutVisible;
     @Override
     public int getLayoutId() {
         return R.layout.activity_certificate_of_honor;
@@ -33,6 +43,14 @@
 
     @Override
     public void initView() {
+        //涓嬫媺鍒锋柊甯冨眬
+        binding.refreshLayout.setEnableRefresh(false);
+        binding.refreshLayout.setEnableLoadMore(true);
+        binding.refreshLayout.setEnableOverScrollDrag(true);
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+            viewModel.loadMoreFamilyAssets();
+        });
+        //recyclerView閫傞厤鍣�
         adapter = new CertificateOfHonorRvAdapter(this);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
@@ -40,11 +58,69 @@
         itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         binding.recyclerView.addItemDecoration(itemDecoration);
         binding.recyclerView.setAdapter(adapter);
+        //鍙充笂瑙掓搷浣滃脊绐�
+        mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
+        mOperatePopupWindow.getContentView().findViewById(R.id.layout_add).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.layout_select).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old).setOnClickListener(v -> {
+            viewModel.sortDataList(0);
+            mOperatePopupWindow.dismiss();
+        });
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new).setOnClickListener(v -> {
+            viewModel.sortDataList(1);
+            mOperatePopupWindow.dismiss();
+        });
+        //鐐瑰嚮寮瑰嚭鎿嶄綔寮圭獥
+        binding.ivOperate.setOnClickListener(v -> {
+            mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+        });
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
+        });
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.dropExpand(binding.containerSearchParameter,0, targetHeight);
+                isSearchLayoutVisible = true;
+            }
+        });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getCertificateOfHonor();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+
+    }
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
     }
 
     @Override
     public void initData() {
-        viewModel.getHundredWish();
+        viewModel.getCertificateOfHonor();
     }
 
     @Override
@@ -52,5 +128,28 @@
         viewModel.getDataListLiveData().observe(this, dataList -> {
             adapter.setData(dataList);
         });
+        viewModel.getMoreListLiveData().observe(this, list -> {
+            adapter.addData(list);
+        });
+    }
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
+    }
+
+    @Override
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorActivityViewModel.java
index 1433e74..94341b7 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorActivityViewModel.java
@@ -1,17 +1,30 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.bean.CertificateOfHonorBean;
-import com.application.zhangshi_app_android.bean.HundredWishBean;
+import com.application.zhangshi_app_android.bean.CertificateOfHonorRequestBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
@@ -20,7 +33,9 @@
  */
 public class CertificateOfHonorActivityViewModel  extends BaseViewModel<DataRepository> {
     private MutableLiveData<List<CertificateOfHonorBean>> dataListLiveData;
+    private MutableLiveData<List<CertificateOfHonorBean>> moreListLiveData;//鍔犺浇鏇村鏁版嵁
 
+    private MutableLiveData<CertificateOfHonorRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
     public CertificateOfHonorActivityViewModel(@NonNull Application application) {
         super(application);
     }
@@ -30,32 +45,181 @@
         return DataRepository.getInstance();
     }
 
+    /**
+     * 鑾峰彇鏁版嵁
+     */
+    public void getCertificateOfHonor(){
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new CertificateOfHonorRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        model.getCertificateOfHonor(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<PageResponseBean<CertificateOfHonorBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<CertificateOfHonorBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                changeStateView(StateViewEnum.DATA_NULL);
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                dataListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void loadMoreFamilyAssets(){
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new CertificateOfHonorRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getCertificateOfHonor(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<PageResponseBean<CertificateOfHonorBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<CertificateOfHonorBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+
     public MutableLiveData<List<CertificateOfHonorBean>> getDataListLiveData() {
-        if (dataListLiveData == null) {
+        if (dataListLiveData == null){
             dataListLiveData = new MutableLiveData<>();
         }
         return dataListLiveData;
+    }
+
+    public MutableLiveData<CertificateOfHonorRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null){
+            requestBeanLiveData = new MutableLiveData<>();
+        }
+        if (requestBeanLiveData.getValue() == null){
+            requestBeanLiveData.setValue(new CertificateOfHonorRequestBean());
+        }
+        return requestBeanLiveData;
+    }
+
+    public void setRequestBeanLiveData(MutableLiveData<CertificateOfHonorRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
     }
 
     public void setDataListLiveData(MutableLiveData<List<CertificateOfHonorBean>> dataListLiveData) {
         this.dataListLiveData = dataListLiveData;
     }
 
-    public void getHundredWish() {
-        List<CertificateOfHonorBean> beans =  new ArrayList<>();
-        for (int i = 0; i < 10; i++) {
-            CertificateOfHonorBean bean = new CertificateOfHonorBean();
-            bean.setName("鑽h獕璇佷功" + i);
-            bean.setTime("2023-01-01");
-            bean.setType("绫诲埆" + i);
-            bean.setCertificateNumber("璇佸彿" + i);
-            bean.setLevel("绾у埆" + i);
-            bean.setEffectiveTime("2030-01-01");
-            bean.setGetTime("2020-01-01");
-            bean.setLocation("瀛樻斁浣嶇疆" + i);
-            bean.setRemark("澶囨敞");
-            beans.add(bean);
+    public MutableLiveData<List<CertificateOfHonorBean>> getMoreListLiveData() {
+        if (moreListLiveData == null){
+            moreListLiveData = new MutableLiveData<>();
         }
-        dataListLiveData.setValue(beans);
+        return moreListLiveData;
     }
+
+    public void setMoreListLiveData(MutableLiveData<List<CertificateOfHonorBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
+    }
+
+    public void sortDataList(int type){
+        List<CertificateOfHonorBean> list = dataListLiveData.getValue();
+        if (list == null || list.isEmpty()){
+            return;
+        }
+        System.out.println(dataListLiveData.getValue().size());
+        if (type == 0) {
+            // 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getCreateTime();
+                String happenTime2 = o2.getCreateTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return 1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return -1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date2.compareTo(date1);
+                    }
+                    return 0;
+                }
+            });
+        } else if (type == 1) {
+            // 浠庢棫鍒版柊锛宯ull鎺掓渶鍓�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getCreateTime();
+                String happenTime2 = o2.getCreateTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return -1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return 1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date1.compareTo(date2);
+                    }
+                    return 0;
+                }
+            });
+        }
+        dataListLiveData.postValue(list);
+    }
+
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorDetailActivity.java
index ae955e4..1f53495 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorDetailActivity.java
@@ -6,6 +6,7 @@
 
 import androidx.recyclerview.widget.GridLayoutManager;
 
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.ImageRvAdapter;
@@ -51,6 +52,7 @@
         GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
         binding.rvImage.setLayoutManager(gridLayoutManager);
         binding.rvImage.setNestedScrollingEnabled(false);
+        binding.rvImage.setAdapter(adapter);
         setIsEdited(false);
     }
 
@@ -63,19 +65,7 @@
     public void initLiveDataObserve() {
         viewModel.getBeanLiveData().observe(this,bean -> {
             if (bean!=null){
-                String url = bean.getUrl();
-                if (url == null||url.isEmpty()){
-                    return;
-                }
-                List<String> list;
-                if (url.contains(",")){
-                    String[] split = url.split(",");
-                    list = new ArrayList<>(Arrays.asList(split));
-                }else {
-                    list = new ArrayList<>();
-                    list.add(url);
-                }
-                adapter.setData(list);
+                adapter.setData(Utils.splitString2List(bean.getUrl(),","));
             }
         });
     }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageActivity.java
index 36f3f4b..f4f6681 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageActivity.java
@@ -2,20 +2,34 @@
 
 import androidx.appcompat.app.AppCompatActivity;
 
+import android.content.Intent;
 import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.PopupWindow;
 
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.CleanStorageRvAdapter;
-import com.application.zhangshi_app_android.adapter.LittleDoctorRvAdapter;
+import com.application.zhangshi_app_android.bean.CleanStorageBean;
 import com.application.zhangshi_app_android.databinding.ActivityCleanStorageBinding;
-import com.application.zhangshi_app_android.databinding.ActivityLittleDoctorBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
 
 public class CleanStorageActivity extends DLBaseActivity<ActivityCleanStorageBinding, CleanStorageActivityViewModel> {
 
     private CleanStorageRvAdapter adapter;
+    private boolean isSearchLayoutVisible;
+    private PopupWindow mOperatePopupWindow;
 
     @Override
     public int getLayoutId() {
@@ -34,13 +48,91 @@
 
     @Override
     public void initView() {
-        adapter = new CleanStorageRvAdapter(this);
+        //涓嬫媺鍒锋柊甯冨眬
+        binding.refreshLayout.setEnableRefresh(false);
+        binding.refreshLayout.setEnableLoadMore(true);
+        binding.refreshLayout.setEnableOverScrollDrag(true);
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+            viewModel.getMoreCleanStorages();
+        });
+        //recyclerView閫傞厤鍣�
+        adapter = new CleanStorageRvAdapter(this,viewModel);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
         itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         binding.recyclerView.addItemDecoration(itemDecoration);
         binding.recyclerView.setAdapter(adapter);
+        //鍙充笂瑙掓搷浣滃脊绐�
+        mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.view_select_underline).setVisibility(View.GONE);
+        setOnClickListener(
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_add),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_select)
+        );
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
+        });
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.dropExpand(binding.containerSearchParameter,0,targetHeight);
+                isSearchLayoutVisible = true;
+            }
+        });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getCleanStorages();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+        //鐐瑰嚮娣诲姞鎸夐挳璺宠浆鍒板垱寤哄澶т簨璁伴〉闈�
+        binding.fabAdd.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(new Intent(getSelfActivity(), CleanStorageDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
+            }
+        });
+
+        binding.etSearchId.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                int id = -1;
+                try {
+                    id = Integer.parseInt(s.toString());
+                }catch (Exception e){
+                    e.printStackTrace();
+                }
+                if (id == -1){
+                    return;
+                }
+                viewModel.getRequestBeanLiveData().getValue().setId(id);
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
     }
 
     @Override
@@ -53,5 +145,113 @@
         viewModel.getDataListLiveData().observe(this, dataList -> {
             adapter.setData(dataList);
         });
+        viewModel.getCheckListLiveData().observe(this, checkList -> {
+            if (0 == viewModel.getOperateTypeLiveData().getValue()){
+                return;
+            }
+            if (checkList.isEmpty()){
+                viewModel.getOperateTypeLiveData().setValue(1);
+            }else{
+                viewModel.getOperateTypeLiveData().setValue(2);
+            }
+        });
+        viewModel.getMoreListLiveData().observe(this, moreList -> {
+            adapter.addData(moreList);
+        });
+        viewModel.getOperateTypeLiveData().observe(this, integer -> {
+            if (integer == 0){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_operate);
+                binding.ivOperate.setOnClickListener(v -> {
+                    mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+                });
+                adapter.setCheckable(false);
+            }else if (integer == 1){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_operate_finish);
+                binding.ivOperate.setOnClickListener(v -> {
+                    viewModel.getOperateTypeLiveData().postValue(0);
+                });
+                adapter.setCheckable(true);
+            }else if (integer == 2){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_delete_white);
+                binding.ivOperate.setOnClickListener(v -> {
+                    new UIDialog.Builder(this)
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎閫変腑鐨勯」鐩悧")
+                            .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                            .setConfirm("纭畾")
+                            .setCancel("鍙栨秷")
+                            .setListener(new UIDialog.OnListener() {
+                                @Override
+                                public void onConfirm(BaseDialog dialog) {
+                                    viewModel.deleteCheckList();
+                                }
+                            })
+                            .show();
+                });
+            }
+        });
+
+        viewModel.getFinishDeleteListLiveData().observe(this, beans -> {
+            for (CleanStorageBean bean : beans) {
+                adapter.removeItem(bean);
+            }
+        });
+
+        //瑙傚療鏁版嵁鐨勫彉鍖栵紝鏈夊彉鍖栧寘鎷坊鍔犮�佷慨鏀广�佸垹闄ら兘浼氬彂閫佹秷鎭紝鎺ユ敹鍒版秷鎭悗閲嶆柊鑾峰彇鏁版嵁杩涜鍒锋柊
+        RxBus.getInstance().toObservable(this, CleanStorageBean.class)
+                .subscribe(bean -> {
+                    viewModel.getCleanStorages();
+                });
+    }
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
+    }
+
+    @Override
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
+    }
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.tv_add){
+            AppManager.getAppManager().startActivity(new Intent(this, CleanStorageDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
+            mOperatePopupWindow.dismiss();
+        }else if (id == R.id.tv_select){
+            viewModel.getOperateTypeLiveData().postValue(1);
+            mOperatePopupWindow.dismiss();
+        }
+    }
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (mOperatePopupWindow != null){
+            mOperatePopupWindow.dismiss();
+        }
     }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageActivityViewModel.java
index a0bda32..65920f9 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageActivityViewModel.java
@@ -1,17 +1,28 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.LiveData;
 import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
 import com.application.zhangshi_app_android.bean.CleanStorageBean;
+import com.application.zhangshi_app_android.bean.CleanStorageRequestBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
 
 import java.util.ArrayList;
 import java.util.List;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
@@ -20,6 +31,11 @@
  */
 public class CleanStorageActivityViewModel extends BaseViewModel<DataRepository> {
     private MutableLiveData<List<CleanStorageBean>> dataListLiveData;
+    private MutableLiveData<List<CleanStorageBean>> checkListLiveData;//閫変腑鐨勬暟鎹�
+    private MutableLiveData<List<CleanStorageBean>> moreListLiveData;//涓嬫媺鍔犺浇鏁版嵁
+    private MutableLiveData<CleanStorageRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
+    private MutableLiveData<List<CleanStorageBean>> finishDeleteListLiveData;//宸茬粡瀹屾垚鍒犻櫎鐨勬暟鎹紝鐢ㄤ簬adapter鐨剅emove鎿嶄綔
+    private MutableLiveData<Integer> operateTypeLiveData;//鎿嶄綔绫诲瀷 0 閫夋嫨鎿嶄綔 1.瀹屾垚 2.鍒犻櫎
 
     public CleanStorageActivityViewModel(@NonNull Application application) {
         super(application);
@@ -30,8 +46,203 @@
         return DataRepository.getInstance();
     }
 
+    /**
+     * 鑾峰彇鏁版嵁
+     */
+    public void getCleanStorages() {
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new CleanStorageRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        model.getCleanStorages(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<PageResponseBean<CleanStorageBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<CleanStorageBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                changeStateView(StateViewEnum.DATA_NULL);
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                dataListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void getMoreCleanStorages() {
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new CleanStorageRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getCleanStorages(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<PageResponseBean<CleanStorageBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<CleanStorageBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎澶氶�夐�変腑鐨勬暟鎹�
+     */
+    public void deleteCheckList() {
+        List<CleanStorageBean> deleteList = getCheckListLiveData().getValue();
+        if (deleteList == null){
+            return;
+        }
+        StringBuffer sb = new StringBuffer();
+        deleteList.forEach(CleanStorageBean -> sb.append(CleanStorageBean.getId()).append(","));
+        sb.deleteCharAt(sb.length()-1);
+        model.deleteCleanStorages(sb.toString())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            finishDeleteListLiveData.postValue(checkListLiveData.getValue());
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                            getCheckListLiveData().postValue(new ArrayList<>());
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎鍗曚釜鏁版嵁
+     */
+    public void deleteItem(CleanStorageBean CleanStorageBean) {
+        model.deleteCleanStorages(String.valueOf(CleanStorageBean.getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            List<CleanStorageBean> list = new ArrayList<>();
+                            list.add(CleanStorageBean);
+                            finishDeleteListLiveData.postValue(list);
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    public MutableLiveData<List<CleanStorageBean>> getCheckListLiveData() {
+        if (checkListLiveData==null){
+            checkListLiveData = new MutableLiveData<>();
+            checkListLiveData.postValue(new ArrayList<>());
+        }
+        if (checkListLiveData.getValue() == null){
+            checkListLiveData.postValue(new ArrayList<>());
+        }
+        return checkListLiveData;
+    }
+
+    public void setCheckListLiveData(MutableLiveData<List<CleanStorageBean>> checkListLiveData) {
+        this.checkListLiveData = checkListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<CleanStorageRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null){
+            requestBeanLiveData = new MutableLiveData<>();
+        }
+        if (requestBeanLiveData.getValue() == null){
+            requestBeanLiveData.setValue(new CleanStorageRequestBean());
+        }
+        return requestBeanLiveData;
+    }
+
+    public void setRequestBeanLiveData(MutableLiveData<CleanStorageRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
+    }
+
     public MutableLiveData<List<CleanStorageBean>> getDataListLiveData() {
-        if (dataListLiveData == null) {
+        if (dataListLiveData == null){
             dataListLiveData = new MutableLiveData<>();
         }
         return dataListLiveData;
@@ -41,12 +252,40 @@
         this.dataListLiveData = dataListLiveData;
     }
 
-    public void getCleanStorages() {
-        List<CleanStorageBean> cleanStorageBeans =  new ArrayList<>();
-        cleanStorageBeans.add(new CleanStorageBean(1,"淇濇磥","鍏ㄤ綋","鐜荤拑绐�","鐜荤拑姘存礂","鏉傜墿鎴�","绐楁埛","鎿﹀共",null));
-        cleanStorageBeans.add(new CleanStorageBean(1,"淇濇磥","鍏ㄤ綋","鐜荤拑绐�","鐜荤拑姘存礂","鏉傜墿鎴�","绐楁埛","鎿﹀共",null));
-        cleanStorageBeans.add(new CleanStorageBean(1,"淇濇磥","鍏ㄤ綋","鐜荤拑绐�","鐜荤拑姘存礂","鏉傜墿鎴�","绐楁埛","鎿﹀共",null));
-        cleanStorageBeans.add(new CleanStorageBean(1,"淇濇磥","鍏ㄤ綋","鐜荤拑绐�","鐜荤拑姘存礂","鏉傜墿鎴�","绐楁埛","鎿﹀共",null));
-        dataListLiveData.setValue(cleanStorageBeans);
+    @NonNull
+    public MutableLiveData<List<CleanStorageBean>> getMoreListLiveData() {
+        if (moreListLiveData == null){
+            moreListLiveData = new MutableLiveData<>();
+        }
+        return moreListLiveData;
     }
+
+    public void setMoreListLiveData(MutableLiveData<List<CleanStorageBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<Integer> getOperateTypeLiveData() {
+        if (operateTypeLiveData == null){
+            operateTypeLiveData = new MutableLiveData<>();
+            operateTypeLiveData.setValue(0);
+        }
+        return operateTypeLiveData;
+    }
+
+    public void setOperateTypeLiveData(MutableLiveData<Integer> operateTypeLiveData) {
+        this.operateTypeLiveData = operateTypeLiveData;
+    }
+
+    public LiveData<List<CleanStorageBean>> getFinishDeleteListLiveData() {
+        if (finishDeleteListLiveData == null){
+            finishDeleteListLiveData = new MutableLiveData<>();
+        }
+        return finishDeleteListLiveData;
+    }
+
+    public void setFinishDeleteListLiveData(MutableLiveData<List<CleanStorageBean>> finishDeleteListLiveData) {
+        this.finishDeleteListLiveData = finishDeleteListLiveData;
+    }
+
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageDetailActivity.java
index 912bc05..118b57d 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageDetailActivity.java
@@ -2,12 +2,21 @@
 
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
 import android.os.Bundle;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.EditText;
+import android.widget.PopupWindow;
 
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.manager.UserManager;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.ImageRvAdapter;
@@ -16,14 +25,19 @@
 import com.application.zhangshi_app_android.databinding.ActivityCleanStorageDetailBinding;
 import com.application.zhangshi_app_android.databinding.ActivityLittleDoctorDetailBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.luck.picture.lib.entity.LocalMedia;
+import com.luck.picture.lib.interfaces.OnResultCallbackListener;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.function.Consumer;
 
 public class CleanStorageDetailActivity extends DLBaseActivity<ActivityCleanStorageDetailBinding,CleanStorageDetailActivityViewModel> {
-
     private ImageRvAdapter adapter;
+    private int type;// 0 鏌ョ湅鍙慨鏀瑰垹闄� 1 鏂板 2 鐩存帴淇敼
+    private PopupWindow popupWindow;
 
     @Override
     public int getLayoutId() {
@@ -37,8 +51,12 @@
 
     @Override
     public void initParam() {
-        if (getIntent().hasExtra("bean")){
-            viewModel.getBeanLiveData().setValue((CleanStorageBean) getIntent().getSerializableExtra("bean"));
+        type = getIntent().getIntExtra(BaseConfig.EXTRA_TYPE,0);
+        if (type == 0 || type == 2){
+            CleanStorageBean bean = (CleanStorageBean) getIntent().getSerializableExtra("bean");
+            if (bean !=null){
+                viewModel.getBeanLiveData().setValue(bean);
+            }
         }
     }
 
@@ -48,7 +66,84 @@
         GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
         binding.rvImage.setLayoutManager(gridLayoutManager);
         binding.rvImage.setNestedScrollingEnabled(false);
-        setIsEdited(false);
+        View footerView = View.inflate(this,R.layout.item_image_footer,null);
+        binding.rvImage.addFooterView(footerView);
+        binding.rvImage.requestLayout();
+        footerView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                UserManager.getInstance().selectImage(getSelfActivity(), 9, new OnResultCallbackListener<LocalMedia>() {
+                    @Override
+                    public void onResult(ArrayList<LocalMedia> result) {
+                        if (result.size() == 0) return;
+                        for (LocalMedia media : result) {
+                            String path = media.getRealPath();
+                            File file = new File(path);
+                            if (file.exists()) {
+                                viewModel.uploadFile(file);
+                            }
+                        }
+                    }
+
+                    @Override
+                    public void onCancel() {
+
+                    }
+                });
+            }
+        });
+        adapter.setOnChildClickListener(R.id.iv_delete, new BaseRVAdapter.OnChildClickListener() {
+            @Override
+            public void onChildClick(RecyclerView recyclerView, View childView, int position) {
+                CleanStorageBean bean = viewModel.getBeanLiveData().getValue();
+                if (bean !=null){
+                    List<String> urlList = Utils.splitString2List(bean.getUrl(),",");
+                    urlList.remove(adapter.getItem(position));
+                    bean.setUrl(Utils.appendList2String(urlList,","));
+                }
+                adapter.removeItem(position);
+                viewModel.getBeanLiveData().setValue(bean);
+            }
+        });
+        binding.rvImage.setAdapter(adapter);
+
+        if (type == 1){
+            viewModel.getTypeLiveData().postValue(true);
+            binding.ivOperate.setOnClickListener(v -> {
+                viewModel.add();
+            });
+        }else if (type == 0){
+            popupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate_delete,null));
+            popupWindow.getContentView().findViewById(R.id.tv_modify).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    viewModel.getTypeLiveData().postValue(true);
+                    popupWindow.dismiss();
+                }
+            });
+            popupWindow.getContentView().findViewById(R.id.tv_delete).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    popupWindow.dismiss();
+                    new UIDialog.Builder(getSelfActivity())
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎椤圭洰鍚�")
+                            .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                            .setConfirm("纭畾")
+                            .setCancel("鍙栨秷")
+                            .setListener(new UIDialog.OnListener() {
+                                @Override
+                                public void onConfirm(BaseDialog dialog) {
+                                    viewModel.delete();
+                                }
+                            })
+                            .show();
+                }
+            });
+            viewModel.getTypeLiveData().postValue(false);
+        }else if (type == 2){
+            viewModel.getTypeLiveData().postValue(true);
+
+        }
     }
 
     @Override
@@ -60,19 +155,38 @@
     public void initLiveDataObserve() {
         viewModel.getBeanLiveData().observe(this,bean -> {
             if (bean!=null){
-                String url = bean.getUrl();
-                if (url == null||url.isEmpty()){
-                    return;
-                }
-                List<String> list;
-                if (url.contains(",")){
-                    String[] split = url.split(",");
-                    list = new ArrayList<>(Arrays.asList(split));
+                adapter.setData(Utils.splitString2List(bean.getUrl(),","));
+            }
+        });
+        viewModel.getTypeLiveData().observe(this,operateType -> {
+            if (operateType){
+                if (type == 1) {
+                    binding.ivOperate.setOnClickListener(v -> {
+                        viewModel.add();
+                    });
                 }else {
-                    list = new ArrayList<>();
-                    list.add(url);
+                    binding.ivOperate.setOnClickListener(v -> {
+                        viewModel.update();
+                    });
                 }
-                adapter.setData(list);
+                binding.rvImage.getFooterViews().forEach(new Consumer<View>() {
+                    @Override
+                    public void accept(View view) {
+                        view.setVisibility(View.VISIBLE);
+                    }
+                });
+                setIsEdited(true);
+            }else {
+                binding.ivOperate.setOnClickListener(v -> {
+                    popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+                });
+                binding.rvImage.getFooterViews().forEach(new Consumer<View>() {
+                    @Override
+                    public void accept(View view) {
+                        view.setVisibility(View.GONE);
+                    }
+                });
+                setIsEdited(false);
             }
         });
     }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageDetailActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageDetailActivityViewModel.java
index 2860b62..b2c26ad 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageDetailActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageDetailActivityViewModel.java
@@ -1,13 +1,29 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.application.zhangshi_app_android.bean.CleanStorageBean;
+import com.application.zhangshi_app_android.bean.LittleDoctorBean;
+import com.application.zhangshi_app_android.bean.UploadFileResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.io.File;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
 
 /**
  * @author Ljj
@@ -17,6 +33,7 @@
 public class CleanStorageDetailActivityViewModel extends BaseViewModel<DataRepository> {
 
     private MutableLiveData<CleanStorageBean> beanLiveData;
+    private MutableLiveData<Boolean> typeLiveData;//true 缂栬緫鐘舵�� false 灞曠ず鐘舵��
 
     public CleanStorageDetailActivityViewModel(@NonNull Application application) {
         super(application);
@@ -27,11 +44,175 @@
         return DataRepository.getInstance();
     }
 
+    /**
+     * 澧炲姞淇濇磥鏀剁撼
+     */
+    public void add() {
+        model.addCleanStorage(beanLiveData.getValue())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
 
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("娣诲姞鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎淇濇磥鏀剁撼
+     */
+    public void delete() {
+        if (beanLiveData.getValue() == null){
+            return;
+        }
+        model.deleteLittleDoctors(String.valueOf(beanLiveData.getValue().getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 淇敼灏忓尰鐢�
+     */
+    public void update() {
+        model.updateCleanStorage(beanLiveData.getValue())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("淇敼鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    /**
+     * 涓婁紶鐢靛瓙鏂囦欢
+     */
+    public void uploadFile(File file) {
+        RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
+        MultipartBody.Part body = MultipartBody.Part.createFormData("uploadFile", file.getName(), requestBody);
+        model.uploadFile(body)
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<UploadFileResponseBean>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<UploadFileResponseBean> resultData) {
+                        if (resultData.getCode() == CODE_SUCCESS){
+                            CleanStorageBean bean = beanLiveData.getValue();
+                            String url;
+                            if (bean != null){
+                                url = bean.getUrl();
+                                if (url == null){
+                                    url = resultData.getData().getUrl();
+                                }else {
+                                    url = url + "," + resultData.getData().getUrl();
+                                }
+                                bean.setUrl(url);
+                                beanLiveData.postValue(bean);
+                            }
+                        }else {
+                            messageLiveData.postValue(resultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    public MutableLiveData<Boolean> getTypeLiveData() {
+        if (typeLiveData == null){
+            typeLiveData = new MutableLiveData<>();
+        }
+        return typeLiveData;
+    }
+
+    public void setTypeLiveData(MutableLiveData<Boolean> typeLiveData) {
+        this.typeLiveData = typeLiveData;
+    }
     public MutableLiveData<CleanStorageBean> getBeanLiveData() {
         if (beanLiveData == null) {
             beanLiveData = new MutableLiveData<>();
         }
+        if (beanLiveData.getValue() == null){
+            beanLiveData.setValue(new CleanStorageBean());
+        }
         return beanLiveData;
     }
 
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivity.java
index e47ded6..9d5349d 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivity.java
@@ -1,5 +1,6 @@
 package com.application.zhangshi_app_android.ui.function;
 import android.graphics.drawable.ColorDrawable;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.PopupWindow;
@@ -8,6 +9,7 @@
 import androidx.lifecycle.Observer;
 
 import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.R;
 
@@ -31,6 +33,8 @@
 public class ContactsActivity extends DLBaseActivity<ActivityContactsBinding,ContactsActivityViewModel> {
     private ContactsRvAdapter adapter;
     private PopupWindow mOperatePopupWindow;
+    private boolean isSearchLayoutVisible;
+
     @Override
     public int getLayoutId() {
         return R.layout.activity_contacts;
@@ -48,6 +52,14 @@
 
     @Override
     public void initView() {
+        //涓嬫媺鍒锋柊甯冨眬
+        binding.refreshLayout.setEnableRefresh(false);
+        binding.refreshLayout.setEnableLoadMore(true);
+        binding.refreshLayout.setEnableOverScrollDrag(true);
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+            viewModel.loadMoreContacts();
+        });
+        //recyclerView閫傞厤鍣�
         adapter = new ContactsRvAdapter(this);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
@@ -55,12 +67,58 @@
         itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         binding.recyclerView.addItemDecoration(itemDecoration);
         binding.recyclerView.setAdapter(adapter);
-
+        //鍙充笂瑙掓搷浣滃脊绐�
         mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_contacts_import,null));
-
+        mOperatePopupWindow.getContentView().findViewById(R.id.layout_contacts_import).setOnClickListener(v -> {
+            mOperatePopupWindow.dismiss();
+            //TODO 瀵煎叆閫氳褰�
+        });
+        //鐐瑰嚮寮瑰嚭鎿嶄綔寮圭獥
         binding.ivOperate.setOnClickListener(v -> {
             mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
         });
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
+        });
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.dropExpand(binding.containerSearchParameter,0, targetHeight);
+                isSearchLayoutVisible = true;
+            }
+        });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getContacts();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+    }
+
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
     }
 
     @Override
@@ -91,13 +149,59 @@
             }
             adapter.setData(list);
         });
+        viewModel.getMoreListLiveData().observe(this, list -> {
+            //宸茬粡鏈夊悕瀛楃殑,鐩存帴娣诲姞鍒板搴旂殑鍚嶅瓧涓嬮潰
+            //娌℃湁鍚嶅瓧鐨�,鏂板缓涓�涓悕瀛�,娣诲姞鍒板搴旂殑鍚嶅瓧涓嬮潰
+            List<ContactsBean> data = adapter.getData();
+            List<ContactsDetailBean> newData = new ArrayList<>();
+            Set<String> maNames = new HashSet<>();
+            for (ContactsDetailBean contactsDetailBean : list) {
+                boolean isAdd = false;
+                for (ContactsBean bean : data) {
+                    if (contactsDetailBean.getMyName().equals(bean.getMyName())) {
+                        bean.getContactsDetailBeans().add(contactsDetailBean);
+                        isAdd = true;
+                        break;
+                    }
+                }
+                if (!isAdd) {
+                    maNames.add(contactsDetailBean.getMyName());
+                    newData.add(contactsDetailBean);
+                }
+            }
+            for (String name : maNames) {
+                ContactsBean bean = new ContactsBean();
+                bean.setMyName(name);
+                List<ContactsDetailBean> detailBeans = new ArrayList<>();
+                for (ContactsDetailBean detailBean : list) {
+                    if (name.equals(detailBean.getMyName())) {
+                        detailBeans.add(detailBean);
+                    }
+                }
+                bean.setContactsDetailBeans(detailBeans);
+                adapter.addItem(bean);
+            }
+        });
     }
 
     @Override
-    public void onClick(View v) {
-        super.onClick(v);
-        if (v.getId() == R.id.layout_contacts_import){
-            mOperatePopupWindow.dismiss();
-        }
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
+    }
+
+    @Override
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivityViewModel.java
index 3f2c5b4..6857a58 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivityViewModel.java
@@ -15,14 +15,14 @@
 import com.application.zhangshi_app_android.bean.ContactsDetailBean;
 
 import com.application.zhangshi_app_android.bean.ContactsRequestBean;
-import com.application.zhangshi_app_android.bean.ContactsResponseBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
 
-import java.util.HashMap;
 import java.util.List;
 
 import io.reactivex.Observer;
 import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Gss
@@ -33,6 +33,7 @@
 
     private MutableLiveData<ContactsRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
     private MutableLiveData<List<ContactsDetailBean>> dataListLiveData;//鎵�鏈夋暟鎹�
+    private MutableLiveData<List<ContactsDetailBean>> moreListLiveData;//鍔犺浇鏇村鏁版嵁
 
 
     public ContactsActivityViewModel(@NonNull Application application) {
@@ -44,21 +45,24 @@
         return DataRepository.getInstance();
     }
 
-
+    /**
+     * 鑾峰彇閫氳褰�
+     */
     public void getContacts(){
         if (getRequestBeanLiveData().getValue() == null){
             getRequestBeanLiveData().setValue(new ContactsRequestBean());
         }
+        getRequestBeanLiveData().getValue().setPageNum(1);
         model.getContacts(getRequestBeanLiveData().getValue().toMap())
                 .compose(RxUtils.schedulersTransformer())
-                .subscribe(new Observer<ResultData<ContactsResponseBean>>() {
+                .subscribe(new Observer<ResultData<PageResponseBean<ContactsDetailBean>>>() {
                     @Override
                     public void onSubscribe(Disposable d) {
                         addSubscribe(d);
                     }
 
                     @Override
-                    public void onNext(ResultData<ContactsResponseBean> data) {
+                    public void onNext(ResultData<PageResponseBean<ContactsDetailBean>> data) {
                         if (data.getCode() == CODE_SUCCESS){
                             if (data.getData().getData().isEmpty()){
                                 changeStateView(StateViewEnum.DATA_NULL);
@@ -83,6 +87,53 @@
                 });
     }
 
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void loadMoreContacts(){
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new ContactsRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getContacts(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<PageResponseBean<ContactsDetailBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<ContactsDetailBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
 
 
     public MutableLiveData<List<ContactsDetailBean>> getDataListLiveData() {
@@ -104,6 +155,17 @@
         return requestBeanLiveData;
     }
 
+    public MutableLiveData<List<ContactsDetailBean>> getMoreListLiveData() {
+        if (moreListLiveData == null){
+            moreListLiveData = new MutableLiveData<>();
+        }
+        return moreListLiveData;
+    }
+
+    public void setMoreListLiveData(MutableLiveData<List<ContactsDetailBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
+    }
+
     public void setRequestBeanLiveData(MutableLiveData<ContactsRequestBean> requestBeanLiveData) {
         this.requestBeanLiveData = requestBeanLiveData;
     }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsActivity.java
index 4db7449..2951379 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsActivity.java
@@ -1,23 +1,28 @@
 package com.application.zhangshi_app_android.ui.function;
 
-import android.graphics.drawable.ColorDrawable;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
 import android.view.View;
-import android.view.ViewGroup;
 import android.widget.PopupWindow;
 
 import androidx.databinding.library.baseAdapters.BR;
 
 import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.FamilyAssetsRvAdapter;
 import com.application.zhangshi_app_android.databinding.ActivityFamilyAssetsBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
 
 /**
  * @author Ljj
  * @date 2023.04.03. 19:40
- * @desc
+ * @desc 瀹跺涵璧勪骇
  */
 public class FamilyAssetsActivity extends DLBaseActivity<ActivityFamilyAssetsBinding,FamilyAssetsActivityViewModel> {
 
@@ -25,6 +30,7 @@
     private FamilyAssetsRvAdapter adapter;
     private PopupWindow mOperatePopupWindow;
 
+    private boolean isSearchLayoutVisible;
 
     @Override
     public int getLayoutId() {
@@ -43,13 +49,14 @@
 
     @Override
     public void initView() {
+        //涓嬫媺鍒锋柊甯冨眬
         binding.refreshLayout.setEnableRefresh(false);
         binding.refreshLayout.setEnableLoadMore(true);
         binding.refreshLayout.setEnableOverScrollDrag(true);
         binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
-//            viewModel.getMoreFamilyMemorabilia();
+            viewModel.loadMoreFamilyAssets();
         });
-
+        //recyclerView閫傞厤鍣�
         adapter = new FamilyAssetsRvAdapter(this);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
@@ -57,7 +64,7 @@
         itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         binding.recyclerView.addItemDecoration(itemDecoration);
         binding.recyclerView.setAdapter(adapter);
-
+        //鍙充笂瑙掓搷浣滃脊绐�
         mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
         mOperatePopupWindow.getContentView().findViewById(R.id.layout_add).setVisibility(View.GONE);
         mOperatePopupWindow.getContentView().findViewById(R.id.layout_select).setVisibility(View.GONE);
@@ -69,10 +76,163 @@
             viewModel.sortDataList(1);
             mOperatePopupWindow.dismiss();
         });
+        //鐐瑰嚮寮瑰嚭鎿嶄綔寮圭獥
         binding.ivOperate.setOnClickListener(v -> {
             mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
         });
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
+        });
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.dropExpand(binding.containerSearchParameter,0, targetHeight);
+                isSearchLayoutVisible = true;
+            }
+        });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getFamilyAssets();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+
+        binding.etStartTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etEndTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etEndTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etStartTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etStartTime.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                hideSoftKeyboard();
+                DatePicker datePicker = getDatePicker();
+                datePicker.setTitle("璇烽�夋嫨寮�濮嬫椂闂�");
+                datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                    @Override
+                    public void onDatePicked(int year, int month, int day) {
+                        //浠yyy-MM-dd鐨勬牸寮忔樉绀猴紝鏈堟棩灏忎簬10鏃跺墠闈㈣ˉ0
+                        binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                        if (binding.etEndTime.getText().toString().isEmpty()){
+                            binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                        }else {
+                            //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                            String startTime = binding.etStartTime.getText().toString();
+                            String endTime = binding.etEndTime.getText().toString();
+                            if (Utils.compareDate(startTime,endTime) > 0){
+                                //浜ゆ崲
+                                binding.etStartTime.setText(endTime);
+                                binding.etEndTime.setText(startTime);
+                            }
+                        }
+                    }
+                });
+                datePicker.show();
+            }
+        });
+        binding.etEndTime.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                hideSoftKeyboard();
+                DatePicker datePicker = getDatePicker();
+                datePicker.setTitle("璇烽�夋嫨缁撴潫鏃堕棿");
+                datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                    @Override
+                    public void onDatePicked(int year, int month, int day) {
+                        binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                        if (binding.etStartTime.getText().toString().isEmpty()){
+                            binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                        }else {
+                            //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                            String startTime = binding.etStartTime.getText().toString();
+                            String endTime = binding.etEndTime.getText().toString();
+                            if (Utils.compareDate(startTime,endTime) > 0){
+                                //浜ゆ崲
+                                binding.etStartTime.setText(endTime);
+                                binding.etEndTime.setText(startTime);
+                            }
+                        }
+                    }
+                });
+                datePicker.show();
+            }
+        });
+        binding.ivTimeClear.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                binding.etStartTime.setText("");
+                binding.etEndTime.setText("");
+            }
+        });
+
     }
+
+
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
+    }
+
+
+
 
     @Override
     public void initData() {
@@ -81,27 +241,33 @@
 
     @Override
     public void initLiveDataObserve() {
-        viewModel.getDataListLiveData().observe(this, familyAssetsBeans -> {
-            adapter.setData(familyAssetsBeans);
+        viewModel.getDataListLiveData().observe(this, list -> {
+            adapter.setData(list);
+        });
+        viewModel.getMoreListLiveData().observe(this, list -> {
+            adapter.addData(list);
         });
     }
-    public PopupWindow initPopUpWindow(View view){
-        PopupWindow popupWindow = new PopupWindow(this);
-        // 璁剧疆甯冨眬鏂囦欢
-        popupWindow.setContentView(view);
-        // 涓轰簡閬垮厤閮ㄥ垎鏈哄瀷涓嶆樉绀猴紝闇�瑕侀噸鏂拌缃竴涓嬪楂�
-        popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
-        popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
-        // 璁剧疆pop閫忔槑鏁堟灉
-        popupWindow.setBackgroundDrawable(new ColorDrawable(0x0000));
-        // 璁剧疆pop鍑哄叆鍔ㄧ敾
-        popupWindow.setAnimationStyle(com.android.app_base.R.style.pop_operate);
-        // 璁剧疆pop鑾峰彇鐒︾偣锛屽鏋滀负false鐐瑰嚮杩斿洖鎸夐挳浼氶��鍑哄綋鍓岮ctivity锛屽鏋減op涓湁Editor鐨勮瘽锛宖ocusable蹇呴』瑕佷负true
-        popupWindow.setFocusable(true);
-        // 璁剧疆pop鍙偣鍑伙紝涓篺alse鐐瑰嚮浜嬩欢鏃犳晥锛岄粯璁や负true
-        popupWindow.setTouchable(true);
-        // 璁剧疆鐐瑰嚮pop澶栦晶娑堝け锛岄粯璁や负false锛涘湪focusable涓簍rue鏃剁偣鍑诲渚у缁堟秷澶�
-        popupWindow.setOutsideTouchable(false);
-        return popupWindow;
+
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
     }
+
+    @Override
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
+    }
+
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsActivityViewModel.java
index 9dfd101..23811e1 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsActivityViewModel.java
@@ -3,6 +3,7 @@
 import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
 
 import android.app.Application;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
@@ -12,21 +13,18 @@
 import com.android.app_base.base.viewmodel.BaseViewModel;
 import com.android.app_base.http.ResultData;
 import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.bean.FamilyAssetsBean;
-import com.application.zhangshi_app_android.bean.FamilyAssetsResponseBean;
-import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
-import com.application.zhangshi_app_android.bean.HomeDevicesBean;
+import com.application.zhangshi_app_android.bean.FamilyAssetsRequestBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
 
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Comparator;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 
 import io.reactivex.Observer;
 import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
@@ -34,10 +32,10 @@
  * @desc
  */
 public class FamilyAssetsActivityViewModel extends BaseViewModel<DataRepository> {
-
-    private MutableLiveData<List<FamilyAssetsBean>> checkListLiveData;//閫変腑鐨勬暟鎹�
     private MutableLiveData<List<FamilyAssetsBean>> dataListLiveData;//鎵�鏈夋暟鎹�
+    private MutableLiveData<List<FamilyAssetsBean>> moreListLiveData;//鍔犺浇鏇村鏁版嵁
 
+    private MutableLiveData<FamilyAssetsRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
 
     public FamilyAssetsActivityViewModel(@NonNull Application application) {
         super(application);
@@ -49,17 +47,24 @@
     }
 
 
+    /**
+     * 鑾峰彇瀹跺涵璧勪骇
+     */
     public void getFamilyAssets(){
-        model.getFamilyAssets(new HashMap<>())
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new FamilyAssetsRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        model.getFamilyAssets(getRequestBeanLiveData().getValue().toMap())
                 .compose(RxUtils.schedulersTransformer())
-                .subscribe(new Observer<ResultData<FamilyAssetsResponseBean>>() {
+                .subscribe(new Observer<ResultData<PageResponseBean<FamilyAssetsBean>>>() {
                     @Override
                     public void onSubscribe(Disposable d) {
                         addSubscribe(d);
                     }
 
                     @Override
-                    public void onNext(ResultData<FamilyAssetsResponseBean> data) {
+                    public void onNext(ResultData<PageResponseBean<FamilyAssetsBean>> data) {
                         if (data.getCode() == CODE_SUCCESS){
                             if (data.getData().getData().isEmpty()){
                                 changeStateView(StateViewEnum.DATA_NULL);
@@ -84,13 +89,54 @@
                 });
     }
 
-    public MutableLiveData<List<FamilyAssetsBean>> getCheckListLiveData() {
-        return checkListLiveData;
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void loadMoreFamilyAssets(){
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new FamilyAssetsRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getFamilyAssets(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<PageResponseBean<FamilyAssetsBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<FamilyAssetsBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
     }
 
-    public void setCheckListLiveData(MutableLiveData<List<FamilyAssetsBean>> checkListLiveData) {
-        this.checkListLiveData = checkListLiveData;
-    }
 
     public MutableLiveData<List<FamilyAssetsBean>> getDataListLiveData() {
         if (dataListLiveData == null){
@@ -99,8 +145,33 @@
         return dataListLiveData;
     }
 
+    public MutableLiveData<FamilyAssetsRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null){
+            requestBeanLiveData = new MutableLiveData<>();
+        }
+        if (requestBeanLiveData.getValue() == null){
+            requestBeanLiveData.setValue(new FamilyAssetsRequestBean());
+        }
+        return requestBeanLiveData;
+    }
+
+    public void setRequestBeanLiveData(MutableLiveData<FamilyAssetsRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
+    }
+
     public void setDataListLiveData(MutableLiveData<List<FamilyAssetsBean>> dataListLiveData) {
         this.dataListLiveData = dataListLiveData;
+    }
+
+    public MutableLiveData<List<FamilyAssetsBean>> getMoreListLiveData() {
+        if (moreListLiveData == null){
+            moreListLiveData = new MutableLiveData<>();
+        }
+        return moreListLiveData;
+    }
+
+    public void setMoreListLiveData(MutableLiveData<List<FamilyAssetsBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
     }
 
     public void sortDataList(int type){
@@ -108,29 +179,48 @@
         if (list == null || list.isEmpty()){
             return;
         }
-
-        list.sort(new Comparator<FamilyAssetsBean>() {
-            @Override
-            public int compare(FamilyAssetsBean o1, FamilyAssetsBean o2) {
-                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd", java.util.Locale.getDefault());
-                Date date1 = null;
-                Date date2 = null;
-                try {
-                    date1 = format.parse(o1.getCreateTime());
-                    date2 = format.parse(o2.getCreateTime());
-                } catch (ParseException e) {
-                    throw new RuntimeException(e);
-                }
-                if (date1 != null && date2 != null) {
-                    if (type == 0){
+        System.out.println(dataListLiveData.getValue().size());
+        if (type == 0) {
+            // 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return 1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return -1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
                         return date2.compareTo(date1);
-                    }else {
+                    }
+                    return 0;
+                }
+            });
+        } else if (type == 1) {
+            // 浠庢棫鍒版柊锛宯ull鎺掓渶鍓�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return -1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return 1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
                         return date1.compareTo(date2);
                     }
+                    return 0;
                 }
-                return 0;
-            }
-        });
+            });
+        }
         dataListLiveData.postValue(list);
     }
 
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsDetailActivity.java
index cf1c034..814648d 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsDetailActivity.java
@@ -6,9 +6,13 @@
 
 import androidx.recyclerview.widget.GridLayoutManager;
 
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.ImageRvAdapter;
+import com.application.zhangshi_app_android.adapter.MemoRvAdapter;
 import com.application.zhangshi_app_android.bean.FamilyAssetsBean;
 import com.application.zhangshi_app_android.databinding.ActivityFamilyAssetsDetailBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
@@ -24,7 +28,7 @@
  */
 public class FamilyAssetsDetailActivity extends DLBaseActivity<ActivityFamilyAssetsDetailBinding,FamilyAssetsDetailActivityViewModel> {
     private ImageRvAdapter adapter;
-
+    private MemoRvAdapter memoRvAdapter;
 
     @Override
     public int getLayoutId() {
@@ -49,34 +53,32 @@
         GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
         binding.rvImage.setLayoutManager(gridLayoutManager);
         binding.rvImage.setNestedScrollingEnabled(false);
+        binding.rvImage.setAdapter(adapter);
+
+        memoRvAdapter = new MemoRvAdapter(this);
+        LinearItemDecoration itemDecoration = new LinearItemDecoration();
+        itemDecoration.setBottomSpace(ScreenSizeUtils.dip2px(this, 15));
+        binding.rvMemo.addItemDecoration(itemDecoration);
+        binding.rvMemo.setAdapter(memoRvAdapter);
+
         setIsEdited(false);
     }
 
     @Override
     public void initData() {
-
+        viewModel.getMemos();
     }
 
     @Override
     public void initLiveDataObserve() {
         viewModel.getBeanLiveData().observe(this,bean -> {
             if (bean!=null){
-                if (getTitleBar() != null){
-                    getTitleBar().setTitle(bean.getHolder() + "鐨�" + bean.getType());
-                }
-                String url = bean.getUrl();
-                if (url == null||url.isEmpty()){
-                    return;
-                }
-                List<String> list;
-                if (url.contains(",")){
-                    String[] split = url.split(",");
-                    list = new ArrayList<>(Arrays.asList(split));
-                }else {
-                    list = new ArrayList<>();
-                    list.add(url);
-                }
-                adapter.setData(list);
+                adapter.setData(Utils.splitString2List(bean.getUrl(),","));
+            }
+        });
+        viewModel.getMemoListLiveData().observe(this, memoBeans -> {
+            if (memoBeans!=null){
+                memoRvAdapter.setData(memoBeans);
             }
         });
     }
@@ -84,6 +86,7 @@
     public void setIsEdited(boolean isEdited){
         disableAllEditText(getContentView(),isEdited);
         adapter.setIsEdited(isEdited);
+        memoRvAdapter.setEdited(isEdited);
     }
     public void disableAllEditText(ViewGroup viewGroup, boolean isEdited) {
         for (int i = 0; i < viewGroup.getChildCount(); i++) {
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsDetailActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsDetailActivityViewModel.java
index 9eded93..9f9717f 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsDetailActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsDetailActivityViewModel.java
@@ -1,14 +1,27 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
 import com.application.zhangshi_app_android.bean.CaptchaImageBean;
 import com.application.zhangshi_app_android.bean.FamilyAssetsBean;
+import com.application.zhangshi_app_android.bean.MemoBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.util.List;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
 
 /**
  * @author Ljj
@@ -17,6 +30,7 @@
  */
 public class FamilyAssetsDetailActivityViewModel extends BaseViewModel<DataRepository> {
     private MutableLiveData<FamilyAssetsBean> beanLiveData;
+    private MutableLiveData<List<MemoBean>> memoListLiveData;
 
     public MutableLiveData<FamilyAssetsBean> getBeanLiveData() {
         if (beanLiveData == null){
@@ -33,10 +47,56 @@
         super(application);
     }
 
+    public MutableLiveData<List<MemoBean>> getMemoListLiveData() {
+        if (memoListLiveData == null){
+            memoListLiveData = new MutableLiveData<>();
+        }
+        return memoListLiveData;
+    }
+
+    public void setMemoListLiveData(MutableLiveData<List<MemoBean>> memoListLiveData) {
+        this.memoListLiveData = memoListLiveData;
+    }
+
     @Override
     protected DataRepository initModel() {
         return DataRepository.getInstance();
     }
 
 
+    /**
+     * 鑾峰彇澶囧繕褰�
+     */
+    public void getMemos() {
+        if (beanLiveData.getValue() == null) {
+            return;
+        }
+        model.getMemos(BaseConfig.MEMO_FID_FAMILY_ASSETS+"", String.valueOf(beanLiveData.getValue().getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<List<MemoBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<List<MemoBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            memoListLiveData.postValue(data.getData());
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivity.java
index 2ef8c27..fce4d09 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivity.java
@@ -1,16 +1,13 @@
 package com.application.zhangshi_app_android.ui.function;
 
 import android.content.Intent;
-import android.graphics.drawable.ColorDrawable;
-import android.view.KeyEvent;
-import android.view.LayoutInflater;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
 import android.view.View;
-import android.view.ViewGroup;
-import android.view.inputmethod.EditorInfo;
 import android.widget.PopupWindow;
-import android.widget.TextView;
 
-import androidx.databinding.DataBindingUtil;
 import androidx.lifecycle.Observer;
 
 import com.android.app_base.base.BaseConfig;
@@ -18,28 +15,34 @@
 import com.android.app_base.base.dialog.UIDialog;
 import com.android.app_base.manager.AppManager;
 import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.FamilyMemorabiliaRvAdapter;
 import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
 import com.application.zhangshi_app_android.databinding.ActivityFamilyMemorabiliaBinding;
-import com.application.zhangshi_app_android.databinding.PopSearchBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
 
+import java.util.Calendar;
 import java.util.List;
+
+import io.reactivex.functions.Consumer;
 
 /**
  * @author Ljj
  * @date 2023.03.18. 10:00
  * @desc 瀹跺ぇ浜嬭 Activity
  */
-public class FamilyMemorabiliaActivity extends DLBaseActivity<ActivityFamilyMemorabiliaBinding,FamilyMemorabiliaActivityViewModel> {
+public class FamilyMemorabiliaActivity extends DLBaseActivity<ActivityFamilyMemorabiliaBinding,FamilyMemorabiliaActivityViewModel>{
 
     FamilyMemorabiliaRvAdapter adapter;
     private PopupWindow mOperatePopupWindow;
-    private PopupWindow mSearchPopupWindow;
-    private PopSearchBinding mSearchPopBinding;
+    private boolean isSearchLayoutVisible;
+    private int dateType; //0:寮�濮嬫椂闂� 1:缁撴潫鏃堕棿
 
     @Override
     public int getLayoutId() {
@@ -58,79 +61,166 @@
 
     @Override
     public void initView() {
+        //涓嬫媺鍒锋柊甯冨眬
         binding.refreshLayout.setEnableRefresh(false);
         binding.refreshLayout.setEnableLoadMore(true);
         binding.refreshLayout.setEnableOverScrollDrag(true);
-            binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
             viewModel.getMoreFamilyMemorabilia();
         });
-
+        //recyclerView閫傞厤鍣�
         adapter = new FamilyMemorabiliaRvAdapter(this,viewModel);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
         itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
-        itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         binding.recyclerView.addItemDecoration(itemDecoration);
         binding.recyclerView.setAdapter(adapter);
-
-        mSearchPopBinding = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.pop_search, null, false);
-        mSearchPopBinding.setViewModel(viewModel);
-        mSearchPopupWindow = initPopUpWindow(mSearchPopBinding.getRoot());
-
+        //鍙充笂瑙掓搷浣滃脊绐�
         mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
-
+        setOnClickListener(
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_add),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_select),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new)
+        );
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
         binding.ivSearchDefault.setOnClickListener(v -> {
             binding.layoutSearch.setVisibility(View.VISIBLE);
             binding.layoutDefault.setVisibility(View.GONE);
         });
-
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
         binding.ivSearchType.setOnClickListener(v -> {
-            hideSoftKeyboard();
-            mSearchPopupWindow.setWidth(binding.layoutSearch.getMeasuredWidth());
-            mSearchPopupWindow.showAsDropDown(binding.layoutSearch,0,0);
-        });
-
-        binding.etSearch.setOnEditorActionListener(new TextView.OnEditorActionListener() {
-            @Override
-            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
-                if ((actionId == EditorInfo.IME_ACTION_UNSPECIFIED || actionId == EditorInfo.IME_ACTION_SEARCH)
-                        && event != null) {
-                    viewModel.getFamilyMemorabilia();
-                    binding.layoutSearch.setVisibility(View.GONE);
-                    binding.layoutDefault.setVisibility(View.VISIBLE);
-                    binding.tvTitle.setText("鎼滅储缁撴灉");
-                    hideSoftKeyboard();
-                    return true;
-                }
-                return false;
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.pullCollapse(binding.containerSearchParameter,0,targetHeight);
+                isSearchLayoutVisible = true;
             }
         });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
         binding.ivSearch.setOnClickListener(v -> {
             viewModel.getFamilyMemorabilia();
             binding.layoutSearch.setVisibility(View.GONE);
             binding.layoutDefault.setVisibility(View.VISIBLE);
             binding.tvTitle.setText("鎼滅储缁撴灉");
-            mSearchPopupWindow.dismiss();
             hideSoftKeyboard();
         });
+        //鐐瑰嚮娣诲姞鎸夐挳璺宠浆鍒板垱寤哄澶т簨璁伴〉闈�
         binding.fabAdd.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                AppManager.getAppManager().startActivity(new Intent(getSelfActivity(),CreateFamilyProjectActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
+                AppManager.getAppManager().startActivity(new Intent(getSelfActivity(), FamilyMemorabiliaDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
             }
         });
+        binding.etStartTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
 
-        setOnClickListener(
-                mSearchPopupWindow.getContentView().findViewById(R.id.iv_clear_person),
-                mSearchPopupWindow.getContentView().findViewById(R.id.iv_clear_place),
-                mSearchPopupWindow.getContentView().findViewById(R.id.iv_clear_time),
-                mSearchPopupWindow.getContentView().findViewById(R.id.iv_clear_title),
-                mOperatePopupWindow.getContentView().findViewById(R.id.tv_add),
-                mOperatePopupWindow.getContentView().findViewById(R.id.tv_select),
-                mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old),
-                mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new)
-                );
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etEndTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
 
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etEndTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etStartTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etStartTime.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                hideSoftKeyboard();
+                DatePicker datePicker = getDatePicker();
+                datePicker.setTitle("璇烽�夋嫨寮�濮嬫椂闂�");
+                datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                    @Override
+                    public void onDatePicked(int year, int month, int day) {
+                        //浠yyy-MM-dd鐨勬牸寮忔樉绀猴紝鏈堟棩灏忎簬10鏃跺墠闈㈣ˉ0
+                        binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                        if (binding.etEndTime.getText().toString().isEmpty()){
+                            binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                        }else {
+                            //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                            String startTime = binding.etStartTime.getText().toString();
+                            String endTime = binding.etEndTime.getText().toString();
+                            if (Utils.compareDate(startTime,endTime) > 0){
+                                //浜ゆ崲
+                                binding.etStartTime.setText(endTime);
+                                binding.etEndTime.setText(startTime);
+                            }
+                        }
+                    }
+                });
+                datePicker.show();
+            }
+        });
+        binding.etEndTime.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                hideSoftKeyboard();
+                DatePicker datePicker = getDatePicker();
+                datePicker.setTitle("璇烽�夋嫨缁撴潫鏃堕棿");
+                datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                    @Override
+                    public void onDatePicked(int year, int month, int day) {
+                        binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                        if (binding.etStartTime.getText().toString().isEmpty()){
+                            binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                        }else {
+                            //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                            String startTime = binding.etStartTime.getText().toString();
+                            String endTime = binding.etEndTime.getText().toString();
+                            if (Utils.compareDate(startTime,endTime) > 0){
+                                //浜ゆ崲
+                                binding.etStartTime.setText(endTime);
+                                binding.etEndTime.setText(startTime);
+                            }
+                        }
+                    }
+                });
+                datePicker.show();
+            }
+        });
+        binding.ivTimeClear.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                binding.etStartTime.setText("");
+                binding.etEndTime.setText("");
+            }
+        });
     }
 
     @Override
@@ -139,7 +229,27 @@
     }
 
     @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
+    }
+
+    @Override
     public void initLiveDataObserve() {
+        viewModel.getDataListLiveData().observe(this, new Observer<List<FamilyMemorabiliaBean>>() {
+            @Override
+            public void onChanged(List<FamilyMemorabiliaBean> familyMemorabiliaBeans) {
+                adapter.setData(familyMemorabiliaBeans);
+            }
+        });
         viewModel.getCheckListLiveData().observe(this, new Observer<List<FamilyMemorabiliaBean>>() {
             @Override
             public void onChanged(List<FamilyMemorabiliaBean> familyMemorabiliaBeans) {
@@ -151,12 +261,6 @@
                 }else{
                     viewModel.getOperateTypeLiveData().setValue(2);
                 }
-            }
-        });
-        viewModel.getDataListLiveData().observe(this, new Observer<List<FamilyMemorabiliaBean>>() {
-            @Override
-            public void onChanged(List<FamilyMemorabiliaBean> familyMemorabiliaBeans) {
-                adapter.setData(familyMemorabiliaBeans);
             }
         });
         viewModel.getMoreListLiveData().observe(this, new Observer<List<FamilyMemorabiliaBean>>() {
@@ -182,48 +286,38 @@
                 binding.ivOperate.setBackgroundResource(R.drawable.ic_delete_white);
                 binding.ivOperate.setOnClickListener(v -> {
                     new UIDialog.Builder(this)
-                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎椤圭洰鍚�")
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎閫変腑鐨勯」鐩悧")
                             .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
                             .setConfirm("纭畾")
                             .setCancel("鍙栨秷")
                             .setListener(new UIDialog.OnListener() {
                                 @Override
                                 public void onConfirm(BaseDialog dialog) {
-                                    viewModel.delete();
+                                    viewModel.deleteCheckList();
                                 }
                             })
                             .show();
                 });
             }
         });
+        viewModel.getFinishDeleteListLiveData().observe(this, beans -> {
+            for (FamilyMemorabiliaBean bean : beans) {
+                adapter.removeItem(bean);
+            }
+        });
+        //瑙傚療瀹跺ぇ浜嬭鏁版嵁鐨勫彉鍖栵紝鏈夊彉鍖栧寘鎷坊鍔犮�佷慨鏀广�佸垹闄ら兘浼氬彂閫佹秷鎭紝鎺ユ敹鍒版秷鎭悗閲嶆柊鑾峰彇鏁版嵁
+        RxBus.getInstance().toObservable(this, FamilyMemorabiliaBean.class)
+                .subscribe(bean -> {
+                    viewModel.getFamilyMemorabilia();
+                });
     }
 
-
-    public PopupWindow initPopUpWindow(View view){
-        PopupWindow popupWindow = new PopupWindow(this);
-        // 璁剧疆甯冨眬鏂囦欢
-        popupWindow.setContentView(view);
-        // 涓轰簡閬垮厤閮ㄥ垎鏈哄瀷涓嶆樉绀猴紝闇�瑕侀噸鏂拌缃竴涓嬪楂�
-        popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
-        popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
-        // 璁剧疆pop閫忔槑鏁堟灉
-        popupWindow.setBackgroundDrawable(new ColorDrawable(0x0000));
-        // 璁剧疆pop鍑哄叆鍔ㄧ敾
-        popupWindow.setAnimationStyle(com.android.app_base.R.style.pop_operate);
-//        // 璁剧疆pop鑾峰彇鐒︾偣锛屽鏋滀负false鐐瑰嚮杩斿洖鎸夐挳浼氶��鍑哄綋鍓岮ctivity锛屽鏋減op涓湁Editor鐨勮瘽锛宖ocusable蹇呴』瑕佷负true
-        popupWindow.setFocusable(true);
-//        // 璁剧疆pop鍙偣鍑伙紝涓篺alse鐐瑰嚮浜嬩欢鏃犳晥锛岄粯璁や负true
-        popupWindow.setTouchable(true);
-        // 璁剧疆鐐瑰嚮pop澶栦晶娑堝け锛岄粯璁や负false锛涘湪focusable涓簍rue鏃剁偣鍑诲渚у缁堟秷澶�
-        popupWindow.setOutsideTouchable(false);
-        return popupWindow;
-    }
 
     @Override
     protected void dataNull() {
         super.dataNull();
         binding.layoutDataNull.setVisibility(View.VISIBLE);
-        binding.recyclerView.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.GONE);
     }
 
     @Override
@@ -236,7 +330,7 @@
     protected void hide() {
         super.hide();
         binding.layoutDataNull.setVisibility(View.GONE);
-        binding.recyclerView.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
         binding.refreshLayout.finishLoadMore();
     }
 
@@ -244,7 +338,7 @@
     public void onClick(View v) {
         int id = v.getId();
         if (id == R.id.tv_add){
-            AppManager.getAppManager().startActivity(new Intent(this,CreateFamilyProjectActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
+            AppManager.getAppManager().startActivity(new Intent(this, FamilyMemorabiliaDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
         }else if (id == R.id.tv_select){
             viewModel.getOperateTypeLiveData().postValue(1);
             mOperatePopupWindow.dismiss();
@@ -260,11 +354,9 @@
     @Override
     protected void onDestroy() {
         super.onDestroy();
-        if (mSearchPopupWindow != null){
-            mSearchPopupWindow.dismiss();
-        }
         if (mOperatePopupWindow != null){
             mOperatePopupWindow.dismiss();
         }
     }
+
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivityViewModel.java
index b363acd..c257c5c 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivityViewModel.java
@@ -3,29 +3,25 @@
 import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
 
 import android.app.Application;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
+import androidx.lifecycle.LiveData;
 import androidx.lifecycle.MutableLiveData;
 
 import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
 import com.android.app_base.http.ResultData;
 import com.android.app_base.utils.RxUtils;
-import com.application.zhangshi_app_android.bean.FamilyAssetsBean;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
 import com.application.zhangshi_app_android.bean.FamilyMemorabiliaRequestBean;
-import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
 
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import io.reactivex.Observer;
 import io.reactivex.disposables.Disposable;
@@ -40,10 +36,10 @@
 
     private MutableLiveData<List<FamilyMemorabiliaBean>> checkListLiveData;//閫変腑鐨勬暟鎹�
     private MutableLiveData<List<FamilyMemorabiliaBean>> dataListLiveData;//鎵�鏈夋暟鎹�
-    private MutableLiveData<Integer> operateTypeLiveData;//鎿嶄綔绫诲瀷 0 閫夋嫨鎿嶄綔 1.瀹屾垚 2.鍒犻櫎
-
-    private MutableLiveData<FamilyMemorabiliaRequestBean> requestBeanMutableLiveData;//璇锋眰鍙傛暟
+    private MutableLiveData<Integer> operateTypeLiveData;//鍙充笂瑙掓搷浣滄 鎿嶄綔绫诲瀷 0 寮瑰嚭閫夋嫨鎿嶄綔 1.瀹屾垚 2.鍒犻櫎
+    private MutableLiveData<FamilyMemorabiliaRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
     private MutableLiveData<List<FamilyMemorabiliaBean>> moreListLiveData;//涓嬫媺鍔犺浇鏁版嵁
+    private MutableLiveData<List<FamilyMemorabiliaBean>> finishDeleteListLiveData;//宸茬粡瀹屾垚鍒犻櫎鐨勬暟鎹紝鐢ㄤ簬adapter鐨剅emove鎿嶄綔
     public FamilyMemorabiliaActivityViewModel(@NonNull Application application) {
         super(application);
     }
@@ -56,17 +52,20 @@
      * 鑾峰彇瀹跺ぇ浜嬭
      */
     public void getFamilyMemorabilia() {
-        System.out.println(getRequestBeanMutableLiveData().getValue());
-        model.getFamilyMemorabilia(getRequestBeanMutableLiveData().getValue().getMap())
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new FamilyMemorabiliaRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        model.getFamilyMemorabilia(getRequestBeanLiveData().getValue().toMap())
                 .compose(RxUtils.schedulersTransformer())
-                .subscribe(new Observer<ResultData<FamilyMemorabiliaResponseBean>>() {
+                .subscribe(new Observer<ResultData<PageResponseBean<FamilyMemorabiliaBean>>>() {
                     @Override
                     public void onSubscribe(Disposable d) {
                         addSubscribe(d);
                     }
 
                     @Override
-                    public void onNext(ResultData<FamilyMemorabiliaResponseBean> data) {
+                    public void onNext(ResultData<PageResponseBean<FamilyMemorabiliaBean>> data) {
                         if (data.getCode() == CODE_SUCCESS){
                             if (data.getData().getData().isEmpty()){
                                 changeStateView(StateViewEnum.DATA_NULL);
@@ -91,11 +90,14 @@
                 });
     }
     /**
-     * 鑾峰彇瀹跺ぇ浜嬭 鍔犺浇鏇村
+     * 鍔犺浇鏇村
      */
     public void getMoreFamilyMemorabilia() {
-        requestBeanMutableLiveData.getValue().setPageNum(requestBeanMutableLiveData.getValue().getPageNum() + 1);
-        model.getFamilyMemorabilia(getRequestBeanMutableLiveData().getValue().getMap())
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new FamilyMemorabiliaRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getFamilyMemorabilia(getRequestBeanLiveData().getValue().toMap())
                 .compose(RxUtils.schedulersTransformer())
                 .doFinally(new Action() {
                     @Override
@@ -103,14 +105,14 @@
                         changeStateView(StateViewEnum.DATA_FINISH);
                     }
                 })
-                .subscribe(new Observer<ResultData<FamilyMemorabiliaResponseBean>>() {
+                .subscribe(new Observer<ResultData<PageResponseBean<FamilyMemorabiliaBean>>>() {
                     @Override
                     public void onSubscribe(Disposable d) {
                         addSubscribe(d);
                     }
 
                     @Override
-                    public void onNext(ResultData<FamilyMemorabiliaResponseBean> data) {
+                    public void onNext(ResultData<PageResponseBean<FamilyMemorabiliaBean>> data) {
                         if (data.getCode() == CODE_SUCCESS){
                             if (data.getData().getData().isEmpty()){
                                 messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
@@ -137,7 +139,7 @@
     /**
      * 鍒犻櫎瀹跺ぇ浜嬭
      */
-    public void delete() {
+    public void deleteCheckList() {
         List<FamilyMemorabiliaBean> deleteList = getCheckListLiveData().getValue();
         if (deleteList == null){
             return;
@@ -145,7 +147,6 @@
         StringBuffer sb = new StringBuffer();
         deleteList.forEach(familyMemorabiliaBean -> sb.append(familyMemorabiliaBean.getId()).append(","));
         sb.deleteCharAt(sb.length()-1);
-        System.out.println();
         model.deleteFamilyMemorabilia(sb.toString())
                 .compose(RxUtils.schedulersTransformer())
                 .subscribe(new Observer<ResultData<String>>() {
@@ -157,13 +158,44 @@
                     @Override
                     public void onNext(ResultData<String> stringResultData) {
                         if (stringResultData.getCode() == CODE_SUCCESS){
-                            List<FamilyMemorabiliaBean> list = getDataListLiveData().getValue();
-                            if (list != null) {
-                                list.removeAll(getCheckListLiveData().getValue());
-                            }
-                            getDataListLiveData().postValue(list);
                             messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                            finishDeleteListLiveData.postValue(checkListLiveData.getValue());
                             getCheckListLiveData().postValue(new ArrayList<>());
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎鍗曚釜鏁版嵁
+     */
+    public void deleteItem(FamilyMemorabiliaBean bean) {
+        model.deleteLittleDoctors(String.valueOf(bean.getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            List<FamilyMemorabiliaBean> list = new ArrayList<>();
+                            list.add(bean);
+                            finishDeleteListLiveData.postValue(list);
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
                         }else {
                             messageLiveData.postValue(stringResultData.getMsg());
                         }
@@ -196,18 +228,19 @@
         this.checkListLiveData = checkListLiveData;
     }
 
-    public MutableLiveData<FamilyMemorabiliaRequestBean> getRequestBeanMutableLiveData() {
-        if (requestBeanMutableLiveData == null){
-            requestBeanMutableLiveData = new MutableLiveData<>();
+    @NonNull
+    public MutableLiveData<FamilyMemorabiliaRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null){
+            requestBeanLiveData = new MutableLiveData<>();
         }
-        if (requestBeanMutableLiveData.getValue() == null){
-            requestBeanMutableLiveData.setValue(new FamilyMemorabiliaRequestBean());
+        if (requestBeanLiveData.getValue() == null){
+            requestBeanLiveData.setValue(new FamilyMemorabiliaRequestBean());
         }
-        return requestBeanMutableLiveData;
+        return requestBeanLiveData;
     }
 
-    public void setRequestBeanMutableLiveData(MutableLiveData<FamilyMemorabiliaRequestBean> requestBeanMutableLiveData) {
-        this.requestBeanMutableLiveData = requestBeanMutableLiveData;
+    public void setRequestBeanLiveData(MutableLiveData<FamilyMemorabiliaRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
     }
 
     public MutableLiveData<List<FamilyMemorabiliaBean>> getDataListLiveData() {
@@ -221,6 +254,7 @@
         this.dataListLiveData = dataListLiveData;
     }
 
+    @NonNull
     public MutableLiveData<List<FamilyMemorabiliaBean>> getMoreListLiveData() {
         if (moreListLiveData == null){
             moreListLiveData = new MutableLiveData<>();
@@ -232,6 +266,7 @@
         this.moreListLiveData = moreListLiveData;
     }
 
+    @NonNull
     public MutableLiveData<Integer> getOperateTypeLiveData() {
         if (operateTypeLiveData == null){
             operateTypeLiveData = new MutableLiveData<>();
@@ -244,6 +279,17 @@
         this.operateTypeLiveData = operateTypeLiveData;
     }
 
+    public LiveData<List<FamilyMemorabiliaBean>> getFinishDeleteListLiveData() {
+        if (finishDeleteListLiveData == null){
+            finishDeleteListLiveData = new MutableLiveData<>();
+        }
+        return finishDeleteListLiveData;
+    }
+
+    public void setFinishDeleteListLiveData(MutableLiveData<List<FamilyMemorabiliaBean>> finishDeleteListLiveData) {
+        this.finishDeleteListLiveData = finishDeleteListLiveData;
+    }
+
     /**
      * 鏀瑰彉鎺掑簭
      * @param b true 闄嶅簭 false 鍗囧簭
@@ -253,28 +299,47 @@
         if (list == null || list.isEmpty()){
             return;
         }
-        list.sort(new Comparator<FamilyMemorabiliaBean>() {
-            @Override
-            public int compare(FamilyMemorabiliaBean o1, FamilyMemorabiliaBean o2) {
-                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd", java.util.Locale.getDefault());
-                Date date1 = null;
-                Date date2 = null;
-                try {
-                    date1 = format.parse(o1.getCreateTime());
-                    date2 = format.parse(o2.getCreateTime());
-                } catch (ParseException e) {
-                    throw new RuntimeException(e);
-                }
-                if (date1 != null && date2 != null) {
-                    if (b){
+        if (b) {
+            // 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return 1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return -1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
                         return date2.compareTo(date1);
-                    }else {
+                    }
+                    return 0;
+                }
+            });
+        } else  {
+            // 浠庢棫鍒版柊锛宯ull鎺掓渶鍓�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return -1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return 1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
                         return date1.compareTo(date2);
                     }
+                    return 0;
                 }
-                return 0;
-            }
-        });
-        getDataListLiveData().postValue(list);
+            });
+        }
+        getDataListLiveData().setValue(list);
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CreateFamilyProjectActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaDetailActivity.java
similarity index 67%
rename from app/src/main/java/com/application/zhangshi_app_android/ui/function/CreateFamilyProjectActivity.java
rename to app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaDetailActivity.java
index b56c433..d70bd2d 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CreateFamilyProjectActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaDetailActivity.java
@@ -8,40 +8,48 @@
 import android.widget.PopupWindow;
 
 import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
 import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.adapter.BaseRVAdapter;
 import com.android.app_base.base.dialog.BaseDialog;
 import com.android.app_base.base.dialog.UIDialog;
 import com.android.app_base.base.view.BaseActivity;
 import com.android.app_base.manager.UserManager;
 import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.ImageRvAdapter;
 import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
-import com.application.zhangshi_app_android.databinding.ActivityFamilyMemorabiliaCreateBinding;
+import com.application.zhangshi_app_android.bean.LittleDoctorBean;
+import com.application.zhangshi_app_android.databinding.ActivityFamilyMemorabiliaDetailBinding;
+import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
 import com.luck.picture.lib.entity.LocalMedia;
 import com.luck.picture.lib.interfaces.OnResultCallbackListener;
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
 import java.util.function.Consumer;
 
 
 /**
  * @author Gss
  * @date 2023.03.25. 16:00
- * @desc 瀹跺ぇ浜嬭 CreateFamilyProjectActivity
+ * @desc 瀹跺ぇ浜嬭 FamilyMemorabiliaDetailActivity
  */
-public class CreateFamilyProjectActivity extends BaseActivity<ActivityFamilyMemorabiliaCreateBinding,CreateFamilyProjectActivityViewModel> {
-    private int type;
+public class FamilyMemorabiliaDetailActivity extends DLBaseActivity<ActivityFamilyMemorabiliaDetailBinding, FamilyMemorabiliaDetailActivityViewModel> {
+    private int type;// 0 鏌ョ湅鍙慨鏀瑰垹闄� 1 鏂板 2 鐩存帴淇敼
     private PopupWindow popupWindow;
-    private FamilyMemorabiliaBean bean;
     private ImageRvAdapter adapter;
 
     @Override
     public int getLayoutId() {
-        return R.layout.activity_family_memorabilia_create;
+        return R.layout.activity_family_memorabilia_detail;
     }
 
     @Override
@@ -52,17 +60,17 @@
     @Override
     public void initParam() {
         type = getIntent().getIntExtra(BaseConfig.EXTRA_TYPE,0);
-        if (type == 0){
-            bean = (FamilyMemorabiliaBean) getIntent().getSerializableExtra("bean");
-            if (bean!=null){
-                viewModel.getBeanMutableLiveData().postValue(bean);
+        if (type == 0 || type == 2){
+            FamilyMemorabiliaBean bean = (FamilyMemorabiliaBean) getIntent().getSerializableExtra("bean");
+            if (bean !=null){
+                viewModel.getBeanMutableLiveData().setValue(bean);
             }
         }
     }
 
     @Override
     public void initView() {
-        adapter = new ImageRvAdapter(this,viewModel);
+        adapter = new ImageRvAdapter(this);
         GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
         binding.rvImage.setLayoutManager(gridLayoutManager);
         binding.rvImage.setNestedScrollingEnabled(false);
@@ -92,31 +100,28 @@
                 });
             }
         });
+        adapter.setOnChildClickListener(R.id.iv_delete, new BaseRVAdapter.OnChildClickListener() {
+            @Override
+            public void onChildClick(RecyclerView recyclerView, View childView, int position) {
+                FamilyMemorabiliaBean bean = viewModel.getBeanMutableLiveData().getValue();
+                if (bean !=null){
+                    List<String> urlList = Utils.splitString2List(bean.getUrl(),",");
+                    urlList.remove(adapter.getItem(position));
+                    bean.setUrl(Utils.appendList2String(urlList,","));
+                }
+                adapter.removeItem(position);
+                viewModel.getBeanMutableLiveData().setValue(bean);
+            }
+        });
         binding.rvImage.setAdapter(adapter);
-
         if (type == 1){
-            viewModel.getTypeLiveData().postValue(true);
+            viewModel.getTypeLiveData().setValue(true);
+            binding.titleBar.setTitle("鏂板瀹跺ぇ浜嬭");
             binding.ivOperate.setOnClickListener(v -> {
                 viewModel.add();
             });
-        }else {
-            popupWindow = new PopupWindow(this);
-            // 璁剧疆甯冨眬鏂囦欢
-            popupWindow.setContentView(LayoutInflater.from(this).inflate(R.layout.pop_operate_delete, null));
-            // 涓轰簡閬垮厤閮ㄥ垎鏈哄瀷涓嶆樉绀猴紝闇�瑕侀噸鏂拌缃竴涓嬪楂�
-            popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
-            popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
-            // 璁剧疆pop閫忔槑鏁堟灉
-            popupWindow.setBackgroundDrawable(new ColorDrawable(0x0000));
-            // 璁剧疆pop鍑哄叆鍔ㄧ敾
-            popupWindow.setAnimationStyle(com.android.app_base.R.style.pop_operate);
-            // 璁剧疆pop鑾峰彇鐒︾偣锛屽鏋滀负false鐐瑰嚮杩斿洖鎸夐挳浼氶��鍑哄綋鍓岮ctivity锛屽鏋減op涓湁Editor鐨勮瘽锛宖ocusable蹇呴』瑕佷负true
-            popupWindow.setFocusable(true);
-            // 璁剧疆pop鍙偣鍑伙紝涓篺alse鐐瑰嚮浜嬩欢鏃犳晥锛岄粯璁や负true
-            popupWindow.setTouchable(true);
-            // 璁剧疆鐐瑰嚮pop澶栦晶娑堝け锛岄粯璁や负false锛涘湪focusable涓簍rue鏃剁偣鍑诲渚у缁堟秷澶�
-            popupWindow.setOutsideTouchable(true);
-
+        }else if (type == 0){
+            popupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate_delete,null));
             popupWindow.getContentView().findViewById(R.id.tv_modify).setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
@@ -143,7 +148,26 @@
                 }
             });
             viewModel.getTypeLiveData().postValue(false);
+        }else if (type == 2){
+            viewModel.getTypeLiveData().postValue(true);
+
         }
+
+        binding.etTime.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                DatePicker picker = getDatePicker();
+                picker.setTitle("閫夋嫨鏃堕棿");
+                picker.setOnDatePickedListener(new OnDatePickedListener() {
+                    @Override
+                    public void onDatePicked(int year, int month, int day) {
+                        String date = String.format(Locale.CHINA, "%d-%02d-%02d", year, month, day);
+                        binding.etTime.setText(date);
+                    }
+                });
+                picker.show();
+            }
+        });
 
     }
 
@@ -157,8 +181,8 @@
     public void initLiveDataObserve() {
         viewModel.getBeanMutableLiveData().observe(this,bean -> {
             if (bean!=null){
-                bean.setUrl(bean.getUrl());
-                adapter.setData(bean.getUrlList());
+                List<String> urlList = Utils.splitString2List(bean.getUrl(),",");
+                adapter.setData(urlList);
             }
         });
         viewModel.getTypeLiveData().observe(this,operateType -> {
@@ -195,22 +219,6 @@
     }
 
     public void setIsEdited(boolean isEdited){
-        disableAllEditText(getContentView(),isEdited);
         adapter.setIsEdited(isEdited);
-    }
-    public void disableAllEditText(ViewGroup viewGroup,boolean isEdited) {
-        for (int i = 0; i < viewGroup.getChildCount(); i++) {
-            View child = viewGroup.getChildAt(i);
-            if (child instanceof ViewGroup) {
-                disableAllEditText((ViewGroup) child,isEdited);
-            } else if (child instanceof EditText) {
-                child.setEnabled(isEdited);
-                child.setFocusable(isEdited);
-                child.setFocusableInTouchMode(isEdited);
-                if (!isEdited){
-                    child.clearFocus();
-                }
-            }
-        }
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CreateFamilyProjectActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaDetailActivityViewModel.java
similarity index 93%
rename from app/src/main/java/com/application/zhangshi_app_android/ui/function/CreateFamilyProjectActivityViewModel.java
rename to app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaDetailActivityViewModel.java
index e37573d..539c971 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CreateFamilyProjectActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaDetailActivityViewModel.java
@@ -11,6 +11,7 @@
 import com.android.app_base.http.ResultData;
 import com.android.app_base.manager.AppManager;
 import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
 import com.application.zhangshi_app_android.bean.UploadFileResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
@@ -23,11 +24,11 @@
 import okhttp3.MultipartBody;
 import okhttp3.RequestBody;
 
-public class CreateFamilyProjectActivityViewModel extends BaseViewModel<DataRepository> {
+public class FamilyMemorabiliaDetailActivityViewModel extends BaseViewModel<DataRepository> {
 
     private MutableLiveData<FamilyMemorabiliaBean> beanMutableLiveData;
     private MutableLiveData<Boolean> typeLiveData;//true 缂栬緫鐘舵�� false 灞曠ず鐘舵��
-    public CreateFamilyProjectActivityViewModel(@NonNull Application application) {
+    public FamilyMemorabiliaDetailActivityViewModel(@NonNull Application application) {
         super(application);
     }
 
@@ -51,8 +52,9 @@
                     @Override
                     public void onNext(ResultData<String> stringResultData) {
                         if (stringResultData.getCode() == CODE_SUCCESS){
-                            messageLiveData.postValue("娣诲姞鎴愬姛");
                             AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanMutableLiveData.getValue());
+                            messageLiveData.postValue("娣诲姞鎴愬姛");
                         }else {
                             messageLiveData.postValue(stringResultData.getMsg());
                         }
@@ -84,8 +86,9 @@
                     @Override
                     public void onNext(ResultData<String> stringResultData) {
                         if (stringResultData.getCode() == CODE_SUCCESS){
-                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
                             AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanMutableLiveData.getValue());
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
                         }else {
                             messageLiveData.postValue(stringResultData.getMsg());
                         }
@@ -117,8 +120,9 @@
                     @Override
                     public void onNext(ResultData<String> stringResultData) {
                         if (stringResultData.getCode() == CODE_SUCCESS){
-                            messageLiveData.postValue("淇敼鎴愬姛");
                             AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanMutableLiveData.getValue());
+                            messageLiveData.postValue("淇敼鎴愬姛");
                         }else {
                             messageLiveData.postValue(stringResultData.getMsg());
                         }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragment.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragment.java
index 78fe5f2..41e34d6 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragment.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragment.java
@@ -2,13 +2,30 @@
 
 import android.os.Bundle;
 import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.PopupWindow;
 
-import com.android.app_base.base.view.BaseFragment;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentTransaction;
+import androidx.lifecycle.Observer;
+
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.GlideUtil;
+import com.android.app_base.utils.ScreenSizeUtils;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.BannerBean;
 import com.application.zhangshi_app_android.databinding.FragmentFunctionBinding;
 import com.application.zhangshi_app_android.ui.DLBaseFragment;
+import com.application.zhangshi_app_android.ui.TestActivity;
+import com.application.zhangshi_app_android.ui.home.HomeFragment;
+import com.application.zhangshi_app_android.ui.main.MainActivity;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 
 /**
  * @author Ljj
@@ -16,7 +33,12 @@
  * @desc 鍔熻兘 Fragment
  */
 public class FunctionFragment extends DLBaseFragment<FragmentFunctionBinding,FunctionFragmentViewModel> {
-    public FunctionFragment() {
+
+    private PopupWindow mOperatePopupWindow;
+    private ImageCarouselFragment imageCarouselFragment;
+    private VideoFragment videoFragment;
+
+    private FunctionFragment() {
     }
 
     public static FunctionFragment newInstance() {
@@ -42,6 +64,12 @@
 
     @Override
     protected void initView() {
+        binding.layoutHomeRootNet.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                MainActivity.start(getSelfActivity(), HomeFragment.class);
+            }
+        });
         binding.layoutFamilyMemorabilia.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
@@ -105,16 +133,66 @@
         binding.layoutContacts.setOnClickListener(v->{
             AppManager.getAppManager().startActivity(ContactsActivity.class);
         });
-    }
+        binding.ivOperate.setOnClickListener(v->{
+            AppManager.getAppManager().startActivity(TestActivity.class);
+        });
 
+        imageCarouselFragment = ImageCarouselFragment.newInstance();
+        videoFragment = VideoFragment.newInstance();
+        replaceFragment(imageCarouselFragment);
+
+        //鍙充笂瑙掓搷浣滃脊绐�
+        mOperatePopupWindow = initPopUpWindow(View.inflate(getSelfActivity(),R.layout.pop_switch_video_or_image,null));
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_image).setOnClickListener(v -> {
+            mOperatePopupWindow.dismiss();
+            if (imageCarouselFragment == null){
+                imageCarouselFragment = ImageCarouselFragment.newInstance();
+            }
+            replaceFragment(imageCarouselFragment);
+
+        });
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_video).setOnClickListener(v -> {
+            mOperatePopupWindow.dismiss();
+            if (videoFragment == null){
+                videoFragment = VideoFragment.newInstance();
+            }
+            replaceFragment(videoFragment);
+        });
+        //鐐瑰嚮寮瑰嚭鎿嶄綔寮圭獥
+        binding.ivOperate.setOnClickListener(v -> {
+            mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(getSelfActivity(),85) +binding.ivOperate.getWidth(),0);
+        });
+    }
+    public void replaceFragment(Fragment fragment){
+        FragmentTransaction transaction = getSelfActivity().getSupportFragmentManager().beginTransaction();
+        transaction.replace(R.id.layout_frame,fragment);
+        transaction.commit();
+    }
     @Override
     protected void initData() {
-
+        viewModel.getBannerData();
     }
 
     @Override
     protected void initLiveDataObserve() {
-
+        viewModel.getBannerListLiveData().observe(this, new Observer<List<BannerBean>>() {
+            @Override
+            public void onChanged(List<BannerBean> bannerBeans) {
+                List<String> imageList = new ArrayList<>();
+                List<String> videoList = new ArrayList<>();
+                for (BannerBean bannerBean : bannerBeans) {
+                    if (bannerBean.getFlag() == 0){
+                        //鍥剧墖
+                        imageList.add(bannerBean.getUrl());
+                    }else if (bannerBean.getFlag() == 1){
+                        //瑙嗛
+                        videoList.add(bannerBean.getUrl());
+                    }
+                }
+                imageCarouselFragment.setImageList(imageList);
+                videoFragment.setVideoList(videoList);
+            }
+        });
     }
 
     @Override
@@ -122,5 +200,17 @@
         return true;
     }
 
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutFrame.setVisibility(View.GONE);
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+    }
 
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutFrame.setVisibility(View.VISIBLE);
+        binding.layoutDataNull.setVisibility(View.GONE);
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragmentViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragmentViewModel.java
index ce11e3e..4f45c59 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragmentViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragmentViewModel.java
@@ -1,11 +1,26 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
+import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.application.zhangshi_app_android.bean.BannerBean;
+import com.application.zhangshi_app_android.bean.HomeDevicesBean;
+import com.application.zhangshi_app_android.bean.HomeDevicesRequestBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.util.List;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
 
 /**
  * @author Ljj
@@ -13,6 +28,8 @@
  * @desc 鍔熻兘 Fragment鐨� ViewModel
  */
 public class FunctionFragmentViewModel extends BaseViewModel<DataRepository> {
+
+    private final MutableLiveData<List<BannerBean>> bannerListLiveData = new MutableLiveData<>();
     public FunctionFragmentViewModel(@NonNull Application application) {
         super(application);
     }
@@ -21,4 +38,50 @@
     protected DataRepository initModel() {
         return DataRepository.getInstance();
     }
+
+    /**
+     * 鑾峰彇banner 杞挱鍥炬暟鎹�
+     */
+    public void getBannerData() {
+        model.getBannerData()
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<List<BannerBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<List<BannerBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().isEmpty()){
+                                changeStateView(StateViewEnum.DATA_NULL);
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                bannerListLiveData.postValue(data.getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    public MutableLiveData<List<BannerBean>> getBannerListLiveData() {
+        return bannerListLiveData;
+    }
+
+    public void setBannerListLiveData(List<BannerBean> bannerListLiveData) {
+        this.bannerListLiveData.postValue(bannerListLiveData);
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java
index ed52c83..3821393 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java
@@ -99,6 +99,26 @@
             mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
         });
 
+        final int SCROLL_THRESHOLD = 400; // 婊戝姩闃堝�硷紝鎸夐挳鍦ㄦ粦鍔ㄨ秴杩囪闃堝�煎悗寮�濮嬫牴鎹秴鍑洪槇鍊艰窛绂绘笎娓愭樉绀哄嚭鏉�
+        final int SCROLL_DISTANCE = 400; // 鎸夐挳浠庨殣钘忓埌鍏ㄩ儴鏄剧ず鍑烘潵闇�瑕佹粦鍔ㄧ殑璺濈
+        binding.fabMoveToTop.setAlpha(0f);
+        binding.nestedScrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
+            @Override
+            public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
+                // 褰撴粦鍔ㄨ窛绂昏秴杩囬槇鍊间竴鍗婃椂锛屽紑濮嬫參鎱㈡樉绀烘寜閽�
+                if (scrollY >= SCROLL_THRESHOLD) {
+                    // 鏍规嵁婊戝姩璺濈璁剧疆鎸夐挳閫忔槑搴�
+                    float alpha = Math.min(1.0f, (float) (scrollY - SCROLL_THRESHOLD) / SCROLL_DISTANCE);
+                    binding.fabMoveToTop.setAlpha(alpha);
+                } else {
+                    binding.fabMoveToTop.setAlpha(0f);
+                }
+            }
+        });
+        binding.fabMoveToTop.setOnClickListener(v -> {
+            // 鐐瑰嚮鎸夐挳杩斿洖椤堕儴
+            binding.nestedScrollView.smoothScrollTo(0, 0);
+        });
     }
 
     @Override
@@ -116,12 +136,12 @@
     public void initLiveDataObserve() {
         viewModel.getIsExperienceExpendedLiveData().observe(this, aBoolean -> {
             if (aBoolean){
-                binding.ivExperienceFold.setOnClickListener(view -> {
+                binding.layoutExperienceTitle.setOnClickListener(view -> {
                     collapseView(binding.layoutExperience,binding.layoutExperienceTitle);
                     viewModel.getIsExperienceExpendedLiveData().setValue(false);
                 });
             }else {
-                binding.ivExperienceFold.setOnClickListener(view -> {
+                binding.layoutExperienceTitle.setOnClickListener(view -> {
                     expendView(binding.layoutExperience);
                     viewModel.getIsExperienceExpendedLiveData().setValue(true);
                 });
@@ -129,12 +149,12 @@
         });
         viewModel.getIsRelationExpendedLiveData().observe(this, aBoolean -> {
             if (aBoolean){
-                binding.ivRelationFold.setOnClickListener(view -> {
+                binding.layoutRelationTitle.setOnClickListener(view -> {
                     collapseView(binding.layoutRelation,binding.layoutRelationTitle);
                     viewModel.getIsRelationExpendedLiveData().setValue(false);
                 });
             }else {
-                binding.ivRelationFold.setOnClickListener(view -> {
+                binding.layoutRelationTitle.setOnClickListener(view -> {
                     expendView(binding.layoutRelation);
                     viewModel.getIsRelationExpendedLiveData().setValue(true);
                 });
@@ -142,12 +162,12 @@
         });
         viewModel.getIsHolderExpendedLiveData().observe(this, aBoolean -> {
             if (aBoolean){
-                binding.ivHolderFold.setOnClickListener(view -> {
+                binding.layoutHolderTitle.setOnClickListener(view -> {
                     collapseView(binding.layoutHolder,binding.layoutHolderTitle);
                     viewModel.getIsHolderExpendedLiveData().setValue(false);
                 });
             }else {
-                binding.ivHolderFold.setOnClickListener(view -> {
+                binding.layoutHolderTitle.setOnClickListener(view -> {
                     expendView(binding.layoutHolder);
                     viewModel.getIsHolderExpendedLiveData().setValue(true);
                 });
@@ -155,12 +175,12 @@
         });
         viewModel.getIsAbroadExpendedLiveData().observe(this, aBoolean -> {
             if (aBoolean){
-                binding.ivAbroadFold.setOnClickListener(view -> {
+                binding.layoutAbroadTitle.setOnClickListener(view -> {
                     collapseView(binding.layoutAbroad,binding.layoutAbroadTitle);
                     viewModel.getIsAbroadExpendedLiveData().setValue(false);
                 });
             }else {
-                binding.ivAbroadFold.setOnClickListener(view -> {
+                binding.layoutAbroadTitle.setOnClickListener(view -> {
                     expendView(binding.layoutAbroad);
                     viewModel.getIsAbroadExpendedLiveData().setValue(true);
                 });
@@ -193,6 +213,12 @@
         viewModel.getAutobiographyLiveData().observe(this, new Observer<List<GrowthExperienceAutobiographyBean>>() {
             @Override
             public void onChanged(List<GrowthExperienceAutobiographyBean> beans) {
+                if (beans==null||beans.size() == 0 ){
+                    binding.tvFill.setVisibility(View.GONE);
+                    return;
+                }else {
+                    binding.tvFill.setVisibility(View.VISIBLE);
+                }
                 binding.tabLayout.removeAllTabs();
                 for (int i = 0; i < beans.size(); i++) {
                     GrowthExperienceAutobiographyBean bean = beans.get(i);
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivity.java
index dd46dac..40c3e98 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivity.java
@@ -3,6 +3,8 @@
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
 import android.animation.ValueAnimator;
+import android.text.Editable;
+import android.text.TextWatcher;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.animation.Animation;
@@ -10,12 +12,24 @@
 import android.widget.FrameLayout;
 import android.widget.PopupWindow;
 
+import androidx.lifecycle.Observer;
+
 import com.android.app_base.manager.AppManager;
 import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.GrowthExperienceAutobiographyBean;
+import com.application.zhangshi_app_android.bean.HealthCareNotesContentBean;
 import com.application.zhangshi_app_android.databinding.ActivityHealthCareBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.OptionPicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnOptionPickedListener;
+import com.google.android.material.tabs.TabLayout;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author Ljj
@@ -53,29 +67,73 @@
                 AppManager.getAppManager().startActivity(AnnualHealthStatusActivity.class);
             }
         });
-
-        binding.ivOperate.setOnClickListener(v -> {
-            popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,118) +binding.ivOperate.getWidth(),0);
+        view.findViewById(R.id.tv_edit).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                popupWindow.dismiss();
+                viewModel.setTypeLiveData(true);
+            }
         });
 
+        binding.tvSex.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                List<String> list = Arrays.asList("濂�","鐢�");
+                OptionPicker picker = getOptionPicker(list);
+                picker.setTitle("鎬у埆");
+                picker.setOnOptionPickedListener(new OnOptionPickedListener() {
+                    @Override
+                    public void onOptionPicked(int position, Object item) {
+                        binding.tvSex.setText(item.toString());
+                    }
+                });
+                picker.show();
+            }
+        });
+
+        final int SCROLL_THRESHOLD = 400; // 婊戝姩闃堝�硷紝鎸夐挳鍦ㄦ粦鍔ㄨ秴杩囪闃堝�煎悗寮�濮嬫牴鎹秴鍑洪槇鍊艰窛绂绘笎娓愭樉绀哄嚭鏉�
+        final int SCROLL_DISTANCE = 400; // 鎸夐挳浠庨殣钘忓埌鍏ㄩ儴鏄剧ず鍑烘潵闇�瑕佹粦鍔ㄧ殑璺濈
+        binding.fabMoveToTop.setAlpha(0f);
+        binding.nestedScrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
+            @Override
+            public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
+                // 褰撴粦鍔ㄨ窛绂昏秴杩囬槇鍊间竴鍗婃椂锛屽紑濮嬫參鎱㈡樉绀烘寜閽�
+                if (scrollY >= SCROLL_THRESHOLD) {
+                    // 鏍规嵁婊戝姩璺濈璁剧疆鎸夐挳閫忔槑搴�
+                    float alpha = Math.min(1.0f, (float) (scrollY - SCROLL_THRESHOLD) / SCROLL_DISTANCE);
+                    binding.fabMoveToTop.setAlpha(alpha);
+                } else {
+                    binding.fabMoveToTop.setAlpha(0f);
+                }
+            }
+        });
+        binding.fabMoveToTop.setOnClickListener(v -> {
+            // 鐐瑰嚮鎸夐挳杩斿洖椤堕儴
+            binding.nestedScrollView.smoothScrollTo(0, 0);
+        });
 
     }
 
     @Override
     public void initData() {
-
+        viewModel.getHealthCareBaseInfo();
+        viewModel.getHealthCareLifeHabits();
+        viewModel.getHealthCareNursingExamination();
+        viewModel.getHealthCareExistingProblems();
+        viewModel.getHealthCareNotesContent();
     }
 
     @Override
     public void initLiveDataObserve() {
+        System.out.println("鎴�"+binding.ivA.isClickable());
         viewModel.getIsLifeHabitsExpendedLiveData().observe(this, aBoolean -> {
             if (aBoolean){
-                binding.ivLifeHabitsFold.setOnClickListener(view -> {
+                binding.layoutTitleLifeHabits.setOnClickListener(view -> {
                     collapseView(binding.cardLifeHabits,binding.layoutTitleLifeHabits);
                     viewModel.getIsLifeHabitsExpendedLiveData().setValue(false);
                 });
             }else {
-                binding.ivLifeHabitsFold.setOnClickListener(view -> {
+                binding.layoutTitleLifeHabits.setOnClickListener(view -> {
                     expendView(binding.cardLifeHabits);
                     viewModel.getIsLifeHabitsExpendedLiveData().setValue(true);
                 });
@@ -83,12 +141,12 @@
         });
         viewModel.getIsHealthExpendedLiveData().observe(this, aBoolean -> {
             if (aBoolean){
-                binding.ivHealthFold.setOnClickListener(view -> {
+                binding.layoutTitleHealth.setOnClickListener(view -> {
                     collapseView(binding.cardHealth,binding.layoutTitleHealth);
                     viewModel.getIsHealthExpendedLiveData().setValue(false);
                 });
             }else {
-                binding.ivHealthFold.setOnClickListener(view -> {
+                binding.layoutTitleHealth.setOnClickListener(view -> {
                     expendView(binding.cardHealth);
                     viewModel.getIsHealthExpendedLiveData().setValue(true);
                 });
@@ -96,15 +154,111 @@
         });
         viewModel.getIsNursingExpendedLiveData().observe(this, aBoolean -> {
             if (aBoolean){
-                binding.ivNursingFold.setOnClickListener(view -> {
+                binding.layoutTitleNursing.setOnClickListener(view -> {
                     collapseView(binding.cardNursing,binding.layoutTitleNursing);
                     viewModel.getIsNursingExpendedLiveData().setValue(false);
                 });
             }else {
-                binding.ivNursingFold.setOnClickListener(view -> {
+                binding.layoutTitleNursing.setOnClickListener(view -> {
                     expendView(binding.cardNursing);
                     viewModel.getIsNursingExpendedLiveData().setValue(true);
                 });
+            }
+        });
+        viewModel.getTypeLiveData().observe(this, new Observer<Boolean>() {
+            @Override
+            public void onChanged(Boolean aBoolean) {
+                if (aBoolean){
+                    binding.ivOperate.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View v) {
+                            viewModel.setTypeLiveData(false);
+                            viewModel.save();
+                        }
+                    });
+                }else {
+                    binding.ivOperate.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View v) {
+                            popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(HealthCareActivity.this,118) +binding.ivOperate.getWidth(),0);
+                        }
+                    });
+                }
+            }
+        });
+        viewModel.getHealthCareNotesContentBeanLiveData().observe(this, new Observer<HealthCareNotesContentBean>() {
+            @Override
+            public void onChanged(HealthCareNotesContentBean bean) {
+                List<String> tabList = bean.getTabList();
+                List<String> contentList = bean.getContentList();
+                if (tabList==null||tabList.size() == 0 ){
+                    binding.etFill.setVisibility(View.GONE);
+                    return;
+                }else {
+                    binding.etFill.setVisibility(View.VISIBLE);
+                }
+                binding.tabLayout.removeAllTabs();
+                for (int i = 0; i < tabList.size(); i++) {
+                    String tabText = tabList.get(i);
+                    TabLayout.Tab tab = binding.tabLayout.newTab().setText(tabText);
+                    if (i % 2 == 0){
+                        tab.view.setBackgroundResource(R.drawable.selector_tab_background_pink);
+                    }else {
+                        tab.view.setBackgroundResource(R.drawable.selector_tab_background_blue);
+                    }
+                    //鍙栨秷tab鐨勯暱鎸夋樉绀烘枃鏈�
+                    tab.view.setOnLongClickListener(new View.OnLongClickListener() {
+                        @Override
+                        public boolean onLongClick(View v) {
+                            return true;
+                        }
+                    });
+                    binding.tabLayout.addTab(tab);
+                }
+                binding.etFill.setText(contentList.get(0));
+                binding.tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
+                    @Override
+                    public void onTabSelected(TabLayout.Tab tab) {
+                        binding.etFill.setText(contentList.get(tab.getPosition()));
+                        binding.etFill.clearFocus();
+                    }
+
+                    @Override
+                    public void onTabUnselected(TabLayout.Tab tab) {
+
+                    }
+
+                    @Override
+                    public void onTabReselected(TabLayout.Tab tab) {
+
+                    }
+                });
+                binding.etFill.addTextChangedListener(new TextWatcher() {
+                    @Override
+                    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+                    }
+
+                    @Override
+                    public void onTextChanged(CharSequence s, int start, int before, int count) {
+                        int select = binding.tabLayout.getSelectedTabPosition();
+                        contentList.set(select,s.toString());
+                        viewModel.getHealthCareNotesContentBeanLiveData().getValue().setContent(contentList);
+                    }
+
+                    @Override
+                    public void afterTextChanged(Editable s) {
+
+                    }
+                });
+            }
+        });
+        binding.ivA.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                System.out.println("鐐瑰嚮浜咥");
+                System.out.println(v.isClickable());
+                System.out.println(viewModel.getTypeLiveData().getValue());
             }
         });
     }
@@ -112,29 +266,13 @@
     public void collapseView(View initialView,View collapsedView){
         int initialHeight = initialView.getMeasuredHeight();
         int collapsedHeight = collapsedView.getMeasuredHeight();
-        int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-        Animation a = new Animation() {
-            @Override
-            protected void applyTransformation(float interpolatedTime, Transformation t) {
-                if (interpolatedTime == 1){
-                }
-                initialView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                initialView.requestLayout();
-            }
-
-            @Override
-            public boolean willChangeBounds() {
-                return true;
-            }
-        };
-        a.setDuration(500);
-        initialView.startAnimation(a);
+        Utils.pullCollapse(initialView,initialHeight,collapsedHeight);
     }
     public void expendView(View initialView){
         int initialHeight = initialView.getMeasuredHeight();
         initialView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
         int targetHeight = initialView.getMeasuredHeight();
+
         ValueAnimator animator = ValueAnimator.ofInt(initialHeight,targetHeight);
         animator.addUpdateListener(animation -> {
             initialView.getLayoutParams().height = (int) animation.getAnimatedValue();
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivityViewModel.java
index bf13299..8d4e957 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivityViewModel.java
@@ -1,12 +1,31 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
+import androidx.databinding.Bindable;
+import androidx.databinding.InverseBindingAdapter;
 import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.application.zhangshi_app_android.bean.HealthCareBaseInfoBean;
+import com.application.zhangshi_app_android.bean.HealthCareExistingProblemsBean;
+import com.application.zhangshi_app_android.bean.HealthCareLifeHabitsBean;
+import com.application.zhangshi_app_android.bean.HealthCareNotesContentBean;
+import com.application.zhangshi_app_android.bean.HealthCareNursingExaminationBean;
+import com.application.zhangshi_app_android.bean.HomeDevicesBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import io.reactivex.Observable;
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Function5;
 
 /**
  * @author Ljj
@@ -15,11 +34,15 @@
  */
 public class HealthCareActivityViewModel extends BaseViewModel<DataRepository> {
 
+    private MutableLiveData<Boolean> typeLiveData;//true:缂栬緫 false:鏌ョ湅
+    private MutableLiveData<HealthCareBaseInfoBean> healthCareBaseInfoBeanLiveData;//鍋ュ悍淇濆仴鍩烘湰淇℃伅
+    private MutableLiveData<HealthCareLifeHabitsBean> healthCareLifeHabitsBeanLiveData;//鍋ュ悍淇濆仴鐢熸椿涔犳儻
+    private MutableLiveData<HealthCareNursingExaminationBean> healthCareNursingExaminationBeanLiveData;//鍋ュ悍淇濆仴鎶ょ悊妫�鏌�
+    private MutableLiveData<HealthCareExistingProblemsBean> healthCareExistingProblemsBeanLiveData;//鍋ュ悍淇濆仴鐜板瓨闂
+    private MutableLiveData<HealthCareNotesContentBean> healthCareNotesContentBeanLiveData;//鍋ュ悍淇濆仴绗旇鍐呭
     private MutableLiveData<Boolean> isLifeHabitsExpendedLiveData;
     private MutableLiveData<Boolean> isNursingExpendedLiveData;
     private MutableLiveData<Boolean> isHealthExpendedLiveData;
-
-
 
     public HealthCareActivityViewModel(@NonNull Application application) {
         super(application);
@@ -28,6 +51,142 @@
     @Override
     protected DataRepository initModel() {
         return DataRepository.getInstance();
+    }
+
+    public <T> Observer<ResultData<T>> getObserver(MutableLiveData<T> resultData) {
+        return new Observer<ResultData<T>>() {
+            @Override
+            public void onSubscribe(Disposable d) {
+                addSubscribe(d);
+            }
+
+            @Override
+            public void onNext(ResultData<T> data) {
+                if (data.getCode() == CODE_SUCCESS) {
+                    if (data.getData() == null) {
+                        changeStateView(StateViewEnum.DATA_NULL);
+                    } else {
+                        changeStateView(StateViewEnum.HIDE);
+                        resultData.postValue(data.getData());
+                    }
+                } else {
+                    messageLiveData.postValue(data.getMsg());
+                }
+            }
+
+            @Override
+            public void onError(Throwable e) {
+                messageLiveData.postValue(e.getMessage());
+            }
+
+            @Override
+            public void onComplete() {
+
+            }
+        };
+    }
+
+    /**
+     * 鑾峰彇鍋ュ悍淇濆仴鍩烘湰淇℃伅
+     */
+    public void getHealthCareBaseInfo() {
+        model.getHealthCareBaseInfo()
+                .compose(RxUtils.schedulersTransformer())
+                .doOnSubscribe(disposable -> changeStateView(StateViewEnum.DATA_LOADING))
+                .doFinally(() -> changeStateView(StateViewEnum.DATA_FINISH))
+                .subscribe(getObserver(getHealthCareBaseInfoBeanLiveData()));
+    }
+
+    /**
+     * 鑾峰彇鍋ュ悍淇濆仴鐢熸椿涔犳儻
+     */
+    public void getHealthCareLifeHabits() {
+        model.getHealthCareLifeHabits()
+                .compose(RxUtils.schedulersTransformer())
+                .doOnSubscribe(disposable -> changeStateView(StateViewEnum.DATA_LOADING))
+                .doFinally(() -> changeStateView(StateViewEnum.DATA_FINISH))
+                .subscribe(getObserver(getHealthCareLifeHabitsBeanLiveData()));
+    }
+
+    /**
+     * 鑾峰彇鍋ュ悍淇濆仴鎶ょ悊鏌ヤ綋
+     */
+    public void getHealthCareNursingExamination() {
+        model.getHealthCareNursingExamination()
+                .compose(RxUtils.schedulersTransformer())
+                .doOnSubscribe(disposable -> changeStateView(StateViewEnum.DATA_LOADING))
+                .doFinally(() -> changeStateView(StateViewEnum.DATA_FINISH))
+                .subscribe(getObserver(getHealthCareNursingExaminationBeanLiveData()));
+    }
+
+    /**
+     * 鑾峰彇鍋ュ悍淇濆仴鐜板瓨闂
+     */
+    public void getHealthCareExistingProblems() {
+        model.getHealthCareExistingProblems()
+                .compose(RxUtils.schedulersTransformer())
+                .doOnSubscribe(disposable -> changeStateView(StateViewEnum.DATA_LOADING))
+                .doFinally(() -> changeStateView(StateViewEnum.DATA_FINISH))
+                .subscribe(getObserver(getHealthCareExistingProblemsBeanLiveData()));
+    }
+
+    /**
+     * 鑾峰彇鍋ュ悍淇濆仴绗旇鍐呭
+     */
+    public void getHealthCareNotesContent() {
+        model.getHealthCareNotesContent()
+                .compose(RxUtils.schedulersTransformer())
+                .doOnSubscribe(disposable -> changeStateView(StateViewEnum.DATA_LOADING))
+                .doFinally(() -> changeStateView(StateViewEnum.DATA_FINISH))
+                .subscribe(getObserver(getHealthCareNotesContentBeanLiveData()));
+    }
+
+    /**
+     * 淇敼淇濆瓨
+     */
+    public void save(){
+        Observable.zip(
+                model.updateHealthCareBaseInfo(getHealthCareBaseInfoBeanLiveData().getValue()),
+                model.updateHealthCareLifeHabits(getHealthCareLifeHabitsBeanLiveData().getValue()),
+                model.updateHealthCareNursingExamination(getHealthCareNursingExaminationBeanLiveData().getValue()),
+                model.updateHealthCareExistingProblems(getHealthCareExistingProblemsBeanLiveData().getValue()),
+                model.updateHealthCareNotesContent(getHealthCareNotesContentBeanLiveData().getValue()),
+                new Function5<ResultData<String>, ResultData<String>, ResultData<String>, ResultData<String>, ResultData<String>, String>() {
+                    @Override
+                    public String apply(ResultData<String> stringResultData, ResultData<String> stringResultData2, ResultData<String> stringResultData3, ResultData<String> stringResultData4, ResultData<String> stringResultData5) throws Exception {
+                        if (stringResultData.getCode() == CODE_SUCCESS
+                                && stringResultData2.getCode() == CODE_SUCCESS
+                                && stringResultData3.getCode() == CODE_SUCCESS
+                                && stringResultData4.getCode() == CODE_SUCCESS
+                                && stringResultData5.getCode() == CODE_SUCCESS) {
+                            return "淇濆瓨鎴愬姛";
+                        } else {
+                            throw new Exception("淇濆瓨澶辫触");
+                        }
+                    }
+                }
+        ).compose(RxUtils.schedulersTransformer()).subscribe(new Observer<String>() {
+            @Override
+            public void onSubscribe(Disposable d) {
+                addSubscribe(d);
+                changeStateView(StateViewEnum.DATA_LOADING);
+            }
+
+            @Override
+            public void onNext(String s) {
+                messageLiveData.postValue(s);
+            }
+
+            @Override
+            public void onError(Throwable e) {
+                messageLiveData.postValue(e.getMessage());
+            }
+
+            @Override
+            public void onComplete() {
+                changeStateView(StateViewEnum.DATA_FINISH);
+            }
+        });
     }
 
     public MutableLiveData<Boolean> getIsLifeHabitsExpendedLiveData() {
@@ -65,4 +224,78 @@
     public void setIsHealthExpendedLiveData(MutableLiveData<Boolean> isHealthExpendedLiveData) {
         this.isHealthExpendedLiveData = isHealthExpendedLiveData;
     }
+
+    public MutableLiveData<HealthCareBaseInfoBean> getHealthCareBaseInfoBeanLiveData() {
+        if (healthCareBaseInfoBeanLiveData == null){
+            healthCareBaseInfoBeanLiveData = new MutableLiveData<>();
+        }
+        return healthCareBaseInfoBeanLiveData;
+    }
+
+    public void setHealthCareBaseInfoBeanLiveData(MutableLiveData<HealthCareBaseInfoBean> healthCareBaseInfoBeanLiveData) {
+        this.healthCareBaseInfoBeanLiveData = healthCareBaseInfoBeanLiveData;
+    }
+
+    public MutableLiveData<HealthCareLifeHabitsBean> getHealthCareLifeHabitsBeanLiveData() {
+        if (healthCareLifeHabitsBeanLiveData == null){
+            healthCareLifeHabitsBeanLiveData = new MutableLiveData<>();
+        }
+        return healthCareLifeHabitsBeanLiveData;
+    }
+
+    public void setHealthCareLifeHabitsBeanLiveData(MutableLiveData<HealthCareLifeHabitsBean> healthCareLifeHabitsBeanLiveData) {
+        this.healthCareLifeHabitsBeanLiveData = healthCareLifeHabitsBeanLiveData;
+    }
+
+    public MutableLiveData<HealthCareNursingExaminationBean> getHealthCareNursingExaminationBeanLiveData() {
+        if (healthCareNursingExaminationBeanLiveData == null){
+            healthCareNursingExaminationBeanLiveData = new MutableLiveData<>();
+        }
+        return healthCareNursingExaminationBeanLiveData;
+    }
+
+    public void setHealthCareNursingExaminationBeanLiveData(MutableLiveData<HealthCareNursingExaminationBean> healthCareNursingExaminationBeanLiveData) {
+        this.healthCareNursingExaminationBeanLiveData = healthCareNursingExaminationBeanLiveData;
+    }
+
+    public MutableLiveData<HealthCareExistingProblemsBean> getHealthCareExistingProblemsBeanLiveData() {
+        if (healthCareExistingProblemsBeanLiveData == null){
+            healthCareExistingProblemsBeanLiveData = new MutableLiveData<>();
+        }
+        return healthCareExistingProblemsBeanLiveData;
+    }
+
+    public void setHealthCareExistingProblemsBeanLiveData(MutableLiveData<HealthCareExistingProblemsBean> healthCareExistingProblemsBeanLiveData) {
+        this.healthCareExistingProblemsBeanLiveData = healthCareExistingProblemsBeanLiveData;
+    }
+
+    public MutableLiveData<HealthCareNotesContentBean> getHealthCareNotesContentBeanLiveData() {
+        if (healthCareNotesContentBeanLiveData == null){
+            healthCareNotesContentBeanLiveData = new MutableLiveData<>();
+        }
+        return healthCareNotesContentBeanLiveData;
+    }
+
+    public void setHealthCareNotesContentBeanLiveData(MutableLiveData<HealthCareNotesContentBean> healthCareNotesContentBeanLiveData) {
+        this.healthCareNotesContentBeanLiveData = healthCareNotesContentBeanLiveData;
+    }
+
+    public MutableLiveData<Boolean> getTypeLiveData() {
+        if (typeLiveData == null){
+            typeLiveData = new MutableLiveData<>();
+            typeLiveData.setValue(false);
+        }
+        return typeLiveData;
+    }
+
+    public void setTypeLiveData(MutableLiveData<Boolean> typeLiveData) {
+        this.typeLiveData = typeLiveData;
+    }
+
+    public void setTypeLiveData(boolean type) {
+        if (typeLiveData == null){
+            typeLiveData = new MutableLiveData<>();
+        }
+        typeLiveData.setValue(type);
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesActivity.java
index 5cb3708..0bce664 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesActivity.java
@@ -1,17 +1,29 @@
 package com.application.zhangshi_app_android.ui.function;
 
-import android.graphics.drawable.ColorDrawable;
+import android.content.Intent;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
 import android.view.View;
-import android.view.ViewGroup;
 import android.widget.PopupWindow;
 
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.manager.AppManager;
 import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.HomeDevicesRvAdapter;
+import com.application.zhangshi_app_android.bean.HomeDevicesBean;
 import com.application.zhangshi_app_android.databinding.ActivityHomeDevicesBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
 
 /**
  * @author Ljj
@@ -21,6 +33,7 @@
 public class HomeDevicesActivity extends DLBaseActivity<ActivityHomeDevicesBinding,HomeDevicesActivityViewModel> {
 
     private HomeDevicesRvAdapter adapter;
+    private boolean isSearchLayoutVisible;
     private PopupWindow mOperatePopupWindow;
 
     @Override
@@ -40,7 +53,15 @@
 
     @Override
     public void initView() {
-        adapter = new HomeDevicesRvAdapter(this);
+        //涓嬫媺鍒锋柊甯冨眬
+        binding.refreshLayout.setEnableRefresh(false);
+        binding.refreshLayout.setEnableLoadMore(true);
+        binding.refreshLayout.setEnableOverScrollDrag(true);
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+            viewModel.getMoreHomeDevices();
+        });
+        //recyclerView閫傞厤鍣�
+        adapter = new HomeDevicesRvAdapter(this,viewModel);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
         itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
@@ -48,19 +69,145 @@
         binding.recyclerView.addItemDecoration(itemDecoration);
         binding.recyclerView.setAdapter(adapter);
 
+        //鍙充笂瑙掓搷浣滃脊绐�
         mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
-        mOperatePopupWindow.getContentView().findViewById(R.id.layout_add).setVisibility(View.GONE);
-        mOperatePopupWindow.getContentView().findViewById(R.id.layout_select).setVisibility(View.GONE);
-        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old).setOnClickListener(v -> {
-            viewModel.sortDataList(0);
-            mOperatePopupWindow.dismiss();
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new).setVisibility(View.GONE);
+        setOnClickListener(
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_add),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_select),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new)
+        );
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
         });
-        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new).setOnClickListener(v -> {
-            viewModel.sortDataList(1);
-            mOperatePopupWindow.dismiss();
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.dropExpand(binding.containerSearchParameter,0,targetHeight);
+                isSearchLayoutVisible = true;
+            }
         });
-        binding.ivOperate.setOnClickListener(v -> {
-            mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getHomeDevices();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+        //鐐瑰嚮娣诲姞鎸夐挳璺宠浆鍒板垱寤哄澶т簨璁伴〉闈�
+        binding.fabAdd.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(new Intent(getSelfActivity(), HomeDevicesDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
+            }
+        });
+        binding.etStartTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etEndTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etEndTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etStartTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etStartTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨寮�濮嬫椂闂�");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    //浠yyy-MM-dd鐨勬牸寮忔樉绀猴紝鏈堟棩灏忎簬10鏃跺墠闈㈣ˉ0
+                    binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etEndTime.getText().toString().isEmpty()){
+                        binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.etEndTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨缁撴潫鏃堕棿");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etStartTime.getText().toString().isEmpty()){
+                        binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.ivTimeClear.setOnClickListener(v -> {
+            binding.etStartTime.setText("");
+            binding.etEndTime.setText("");
         });
     }
 
@@ -74,25 +221,121 @@
         viewModel.getDataListLiveData().observe(this, homeDevices -> {
             adapter.setData(homeDevices);
         });
+        viewModel.getCheckListLiveData().observe(this, checkList -> {
+            if (0 == viewModel.getOperateTypeLiveData().getValue()){
+                return;
+            }
+            if (checkList.isEmpty()){
+                viewModel.getOperateTypeLiveData().setValue(1);
+            }else{
+                viewModel.getOperateTypeLiveData().setValue(2);
+            }
+        });
+        viewModel.getMoreListLiveData().observe(this, moreList -> {
+            adapter.addData(moreList);
+        });
+        viewModel.getOperateTypeLiveData().observe(this, integer -> {
+            if (integer == 0){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_operate);
+                binding.ivOperate.setOnClickListener(v -> {
+                    mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+                });
+                adapter.setCheckable(false);
+            }else if (integer == 1){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_operate_finish);
+                binding.ivOperate.setOnClickListener(v -> {
+                    viewModel.getOperateTypeLiveData().postValue(0);
+                });
+                adapter.setCheckable(true);
+            }else if (integer == 2){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_delete_white);
+                binding.ivOperate.setOnClickListener(v -> {
+                    new UIDialog.Builder(this)
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎閫変腑鐨勯」鐩悧")
+                            .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                            .setConfirm("纭畾")
+                            .setCancel("鍙栨秷")
+                            .setListener(new UIDialog.OnListener() {
+                                @Override
+                                public void onConfirm(BaseDialog dialog) {
+                                    viewModel.deleteCheckList();
+                                }
+                            })
+                            .show();
+                });
+            }
+        });
+
+        viewModel.getFinishDeleteListLiveData().observe(this, beans -> {
+            for (HomeDevicesBean bean : beans) {
+                adapter.removeItem(bean);
+            }
+        });
+
+        //瑙傚療鏁版嵁鐨勫彉鍖栵紝鏈夊彉鍖栧寘鎷坊鍔犮�佷慨鏀广�佸垹闄ら兘浼氬彂閫佹秷鎭紝鎺ユ敹鍒版秷鎭悗閲嶆柊鑾峰彇鏁版嵁杩涜鍒锋柊
+        RxBus.getInstance().toObservable(this, HomeDevicesBean.class)
+                .subscribe(bean -> {
+                    viewModel.getHomeDevices();
+                });
     }
-    public PopupWindow initPopUpWindow(View view){
-        PopupWindow popupWindow = new PopupWindow(this);
-        // 璁剧疆甯冨眬鏂囦欢
-        popupWindow.setContentView(view);
-        // 涓轰簡閬垮厤閮ㄥ垎鏈哄瀷涓嶆樉绀猴紝闇�瑕侀噸鏂拌缃竴涓嬪楂�
-        popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
-        popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
-        // 璁剧疆pop閫忔槑鏁堟灉
-        popupWindow.setBackgroundDrawable(new ColorDrawable(0x0000));
-        // 璁剧疆pop鍑哄叆鍔ㄧ敾
-        popupWindow.setAnimationStyle(com.android.app_base.R.style.pop_operate);
-        // 璁剧疆pop鑾峰彇鐒︾偣锛屽鏋滀负false鐐瑰嚮杩斿洖鎸夐挳浼氶��鍑哄綋鍓岮ctivity锛屽鏋減op涓湁Editor鐨勮瘽锛宖ocusable蹇呴』瑕佷负true
-        popupWindow.setFocusable(true);
-        // 璁剧疆pop鍙偣鍑伙紝涓篺alse鐐瑰嚮浜嬩欢鏃犳晥锛岄粯璁や负true
-        popupWindow.setTouchable(true);
-        // 璁剧疆鐐瑰嚮pop澶栦晶娑堝け锛岄粯璁や负false锛涘湪focusable涓簍rue鏃剁偣鍑诲渚у缁堟秷澶�
-        popupWindow.setOutsideTouchable(false);
-        return popupWindow;
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
     }
 
+    @Override
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.tv_add){
+            AppManager.getAppManager().startActivity(new Intent(this, HomeDevicesDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
+            mOperatePopupWindow.dismiss();
+        }else if (id == R.id.tv_select){
+            viewModel.getOperateTypeLiveData().postValue(1);
+            mOperatePopupWindow.dismiss();
+        }else if (id == R.id.tv_from_new_to_old) {
+            viewModel.changeOrder(true);
+            mOperatePopupWindow.dismiss();
+        } else if (id == R.id.tv_from_old_to_new) {
+            viewModel.changeOrder(false);
+            mOperatePopupWindow.dismiss();
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (mOperatePopupWindow != null){
+            mOperatePopupWindow.dismiss();
+        }
+    }
+
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesActivityViewModel.java
index d7d8806..3d70d25 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesActivityViewModel.java
@@ -3,27 +3,30 @@
 import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
 
 import android.app.Application;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
+import androidx.lifecycle.LiveData;
 import androidx.lifecycle.MutableLiveData;
 
 import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
 import com.android.app_base.http.ResultData;
 import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.bean.HomeDevicesBean;
-import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean;
+import com.application.zhangshi_app_android.bean.HomeDevicesRequestBean;
+import com.application.zhangshi_app_android.bean.IncomeAndExpensesBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
 
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Comparator;
+import java.util.ArrayList;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 
 import io.reactivex.Observer;
 import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
@@ -31,8 +34,13 @@
  * @desc 瀹跺涵璁惧 ViewModel
  */
 public class HomeDevicesActivityViewModel extends BaseViewModel<DataRepository> {
-    private MutableLiveData<List<HomeDevicesBean>> dataListLiveData;//鏁版嵁
+    private MutableLiveData<List<HomeDevicesBean>> dataListLiveData;//鑾峰彇鐨勬暟鎹�
+    private MutableLiveData<List<HomeDevicesBean>> checkListLiveData;//閫変腑鐨勬暟鎹�
+    private MutableLiveData<List<HomeDevicesBean>> moreListLiveData;//涓嬫媺鍔犺浇鏁版嵁
+    private MutableLiveData<HomeDevicesRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
+    private MutableLiveData<List<HomeDevicesBean>> finishDeleteListLiveData;//宸茬粡瀹屾垚鍒犻櫎鐨勬暟鎹紝鐢ㄤ簬adapter鐨剅emove鎿嶄綔
 
+    private MutableLiveData<Integer> operateTypeLiveData;//鎿嶄綔绫诲瀷 0 閫夋嫨鎿嶄綔 1.瀹屾垚 2.鍒犻櫎
 
     public HomeDevicesActivityViewModel(@NonNull Application application) {
         super(application);
@@ -43,17 +51,24 @@
         return DataRepository.getInstance();
     }
 
-    public void getHomeDevices(){
-        model.getHomeDevices(new HashMap<>())
+    /**
+     * 鑾峰彇鏁版嵁
+     */
+    public void getHomeDevices() {
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new HomeDevicesRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        model.getHomeDevices(getRequestBeanLiveData().getValue().toMap())
                 .compose(RxUtils.schedulersTransformer())
-                .subscribe(new Observer<ResultData<HomeDevicesResponseBean>>() {
+                .subscribe(new Observer<ResultData<PageResponseBean<HomeDevicesBean>>>() {
                     @Override
                     public void onSubscribe(Disposable d) {
                         addSubscribe(d);
                     }
 
                     @Override
-                    public void onNext(ResultData<HomeDevicesResponseBean> data) {
+                    public void onNext(ResultData<PageResponseBean<HomeDevicesBean>> data) {
                         if (data.getCode() == CODE_SUCCESS){
                             if (data.getData().getData().isEmpty()){
                                 changeStateView(StateViewEnum.DATA_NULL);
@@ -77,6 +92,159 @@
                     }
                 });
     }
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void getMoreHomeDevices() {
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new HomeDevicesRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getHomeDevices(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<PageResponseBean<HomeDevicesBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<HomeDevicesBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎澶氶�夐�変腑鐨勬暟鎹�
+     */
+    public void deleteCheckList() {
+        List<HomeDevicesBean> deleteList = getCheckListLiveData().getValue();
+        if (deleteList == null){
+            return;
+        }
+        StringBuffer sb = new StringBuffer();
+        deleteList.forEach(HomeDevicesBean -> sb.append(HomeDevicesBean.getId()).append(","));
+        sb.deleteCharAt(sb.length()-1);
+        model.deleteHomeDevices(sb.toString())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            finishDeleteListLiveData.postValue(checkListLiveData.getValue());
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                            getCheckListLiveData().postValue(new ArrayList<>());
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎鍗曚釜鏁版嵁
+     */
+    public void deleteItem(HomeDevicesBean HomeDevicesBean) {
+        model.deleteHomeDevices(String.valueOf(HomeDevicesBean.getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            List<HomeDevicesBean> list = new ArrayList<>();
+                            list.add(HomeDevicesBean);
+                            finishDeleteListLiveData.postValue(list);
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    public MutableLiveData<List<HomeDevicesBean>> getCheckListLiveData() {
+        if (checkListLiveData==null){
+            checkListLiveData = new MutableLiveData<>();
+            checkListLiveData.postValue(new ArrayList<>());
+        }
+        if (checkListLiveData.getValue() == null){
+            checkListLiveData.postValue(new ArrayList<>());
+        }
+        return checkListLiveData;
+    }
+
+    public void setCheckListLiveData(MutableLiveData<List<HomeDevicesBean>> checkListLiveData) {
+        this.checkListLiveData = checkListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<HomeDevicesRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null){
+            requestBeanLiveData = new MutableLiveData<>();
+        }
+        if (requestBeanLiveData.getValue() == null){
+            requestBeanLiveData.setValue(new HomeDevicesRequestBean());
+        }
+        return requestBeanLiveData;
+    }
+
+    public void setRequestBeanLiveData(MutableLiveData<HomeDevicesRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
+    }
 
     public MutableLiveData<List<HomeDevicesBean>> getDataListLiveData() {
         if (dataListLiveData == null){
@@ -89,38 +257,92 @@
         this.dataListLiveData = dataListLiveData;
     }
 
+    @NonNull
+    public MutableLiveData<List<HomeDevicesBean>> getMoreListLiveData() {
+        if (moreListLiveData == null){
+            moreListLiveData = new MutableLiveData<>();
+        }
+        return moreListLiveData;
+    }
+
+    public void setMoreListLiveData(MutableLiveData<List<HomeDevicesBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<Integer> getOperateTypeLiveData() {
+        if (operateTypeLiveData == null){
+            operateTypeLiveData = new MutableLiveData<>();
+            operateTypeLiveData.setValue(0);
+        }
+        return operateTypeLiveData;
+    }
+
+    public void setOperateTypeLiveData(MutableLiveData<Integer> operateTypeLiveData) {
+        this.operateTypeLiveData = operateTypeLiveData;
+    }
+
+    public LiveData<List<HomeDevicesBean>> getFinishDeleteListLiveData() {
+        if (finishDeleteListLiveData == null){
+            finishDeleteListLiveData = new MutableLiveData<>();
+        }
+        return finishDeleteListLiveData;
+    }
+
+    public void setFinishDeleteListLiveData(MutableLiveData<List<HomeDevicesBean>> finishDeleteListLiveData) {
+        this.finishDeleteListLiveData = finishDeleteListLiveData;
+    }
+
     /**
-     * 鎸夋椂闂存帓搴�
-     * @param type 0 浠庢柊鍒版棫 1 浠庢棫鍒版柊
+     * 鏀瑰彉鎺掑簭
+     * @param b true 闄嶅簭 false 鍗囧簭
      */
-    public void sortDataList(int type){
-        List<HomeDevicesBean> list = dataListLiveData.getValue();
+    public void changeOrder(boolean b) {
+        List<HomeDevicesBean> list = getDataListLiveData().getValue();
         if (list == null || list.isEmpty()){
             return;
         }
-
-        list.sort(new Comparator<HomeDevicesBean>() {
-            @Override
-            public int compare(HomeDevicesBean o1, HomeDevicesBean o2) {
-                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd", java.util.Locale.getDefault());
-                Date date1 = null;
-                Date date2 = null;
-                try {
-                    date1 = format.parse(o1.getCreateDate());
-                    date2 = format.parse(o2.getCreateDate());
-                } catch (ParseException e) {
-                    throw new RuntimeException(e);
-                }
-                if (date1 != null && date2 != null) {
-                    if (type == 0){
+        if (b) {
+            // 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return 1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return -1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
                         return date2.compareTo(date1);
-                    }else {
+                    }
+                    return 0;
+                }
+            });
+        } else {
+            // 浠庢棫鍒版柊锛宯ull鎺掓渶鍓�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return -1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return 1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
                         return date1.compareTo(date2);
                     }
+                    return 0;
                 }
-                return 0;
-            }
-        });
-        dataListLiveData.postValue(list);
+            });
+        }
+        getDataListLiveData().setValue(list);
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivity.java
index a78bb0c..cdc18b6 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivity.java
@@ -3,20 +3,40 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.EditText;
+import android.widget.PopupWindow;
 
 import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.manager.UserManager;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.ImageRvAdapter;
+import com.application.zhangshi_app_android.adapter.MemoRvAdapter;
 import com.application.zhangshi_app_android.bean.FamilyAssetsBean;
 import com.application.zhangshi_app_android.bean.HomeDevicesBean;
+import com.application.zhangshi_app_android.bean.LittleDoctorBean;
+import com.application.zhangshi_app_android.bean.MemoBean;
 import com.application.zhangshi_app_android.databinding.ActivityHomeDevicesDetailBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
+import com.luck.picture.lib.entity.LocalMedia;
+import com.luck.picture.lib.interfaces.OnResultCallbackListener;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Locale;
+import java.util.function.Consumer;
 
 /**
  * @author Ljj
@@ -25,7 +45,10 @@
  */
 public class HomeDevicesDetailActivity extends DLBaseActivity<ActivityHomeDevicesDetailBinding,HomeDevicesDetailActivityViewModel> {
 
+    private int type;// 0 鏌ョ湅鍙慨鏀瑰垹闄� 1 鏂板 2 鐩存帴淇敼
+    private PopupWindow popupWindow;
     private ImageRvAdapter adapter;
+    private MemoRvAdapter memoRvAdapter;
 
     @Override
     public int getLayoutId() {
@@ -39,8 +62,12 @@
 
     @Override
     public void initParam() {
-        if (getIntent().hasExtra("bean")){
-            viewModel.getBeanLiveData().setValue((HomeDevicesBean) getIntent().getSerializableExtra("bean"));
+        type = getIntent().getIntExtra(BaseConfig.EXTRA_TYPE,0);
+        if (type == 0 || type == 2){
+            HomeDevicesBean bean = (HomeDevicesBean) getIntent().getSerializableExtra("bean");
+            if (bean !=null){
+                viewModel.getBeanLiveData().setValue(bean);
+            }
         }
     }
 
@@ -50,54 +77,181 @@
         GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
         binding.rvImage.setLayoutManager(gridLayoutManager);
         binding.rvImage.setNestedScrollingEnabled(false);
-        setIsEdited(false);
+        View footerView = View.inflate(this,R.layout.item_image_footer,null);
+        binding.rvImage.addFooterView(footerView);
+        binding.rvImage.requestLayout();
+        footerView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                UserManager.getInstance().selectImage(getSelfActivity(), 9, new OnResultCallbackListener<LocalMedia>() {
+                    @Override
+                    public void onResult(ArrayList<LocalMedia> result) {
+                        if (result.size() == 0) return;
+                        for (LocalMedia media : result) {
+                            String path = media.getRealPath();
+                            File file = new File(path);
+                            if (file.exists()) {
+                                viewModel.uploadFile(file);
+                            }
+                        }
+                    }
+
+                    @Override
+                    public void onCancel() {
+
+                    }
+                });
+            }
+        });
+        adapter.setOnChildClickListener(R.id.iv_delete, new BaseRVAdapter.OnChildClickListener() {
+            @Override
+            public void onChildClick(RecyclerView recyclerView, View childView, int position) {
+                HomeDevicesBean bean = viewModel.getBeanLiveData().getValue();
+                if (bean !=null){
+                    List<String> urlList = Utils.splitString2List(bean.getUrl(),",");
+                    urlList.remove(adapter.getItem(position));
+                    bean.setUrl(Utils.appendList2String(urlList,","));
+                }
+                adapter.removeItem(position);
+                viewModel.getBeanLiveData().setValue(bean);
+            }
+        });
+        binding.rvImage.setAdapter(adapter);
+
+        memoRvAdapter = new MemoRvAdapter(this);
+        LinearItemDecoration itemDecoration = new LinearItemDecoration();
+        itemDecoration.setBottomSpace(ScreenSizeUtils.dip2px(this, 15));
+        binding.rvMemo.addItemDecoration(itemDecoration);
+        binding.rvMemo.setAdapter(memoRvAdapter);
+
+        if (type == 1){
+            viewModel.getTypeLiveData().postValue(true);
+            binding.titleBar.setTitle("鏂板瀹跺涵璁惧");
+            binding.ivOperate.setOnClickListener(v -> {
+                viewModel.add();
+            });
+        }else if (type == 0){
+            popupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate_delete,null));
+            popupWindow.getContentView().findViewById(R.id.tv_modify).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    viewModel.getTypeLiveData().postValue(true);
+                    popupWindow.dismiss();
+                }
+            });
+            popupWindow.getContentView().findViewById(R.id.tv_delete).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    popupWindow.dismiss();
+                    new UIDialog.Builder(getSelfActivity())
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎椤圭洰鍚�")
+                            .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                            .setConfirm("纭畾")
+                            .setCancel("鍙栨秷")
+                            .setListener(new UIDialog.OnListener() {
+                                @Override
+                                public void onConfirm(BaseDialog dialog) {
+                                    viewModel.delete();
+                                }
+                            })
+                            .show();
+                }
+            });
+            viewModel.getTypeLiveData().postValue(false);
+        }else if (type == 2){
+            viewModel.getTypeLiveData().postValue(true);
+        }
+        binding.etTime.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                DatePicker picker = getDatePicker();
+                picker.setTitle("閫夋嫨鏃堕棿");
+                picker.setOnDatePickedListener(new OnDatePickedListener() {
+                    @Override
+                    public void onDatePicked(int year, int month, int day) {
+                        String date = String.format(Locale.CHINA, "%d-%02d-%02d", year, month, day);
+                        binding.etTime.setText(date);
+                    }
+                });
+                picker.show();
+            }
+        });
+
+        binding.ivAddMemo.setOnClickListener(v -> {
+            DatePicker picker = getDatePicker();
+            picker.setTitle("閫夋嫨鏃ユ湡");
+            picker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    String date = String.format(Locale.CHINA, "%d-%02d-%02d", year, month, day);
+                    MemoBean bean = new MemoBean();
+                    bean.setFid(BaseConfig.MEMO_FID_HOME_DEVICES);
+                    bean.setCid(viewModel.getBeanLiveData().getValue().getId());
+                    bean.setHappenTime(date);
+                    memoRvAdapter.addItem(0,bean);
+                    memoRvAdapter.setFold(true,0);
+                }
+            });
+            picker.show();
+        });
+
     }
 
     @Override
     public void initData() {
-
+        viewModel.getMemos();
     }
 
     @Override
     public void initLiveDataObserve() {
         viewModel.getBeanLiveData().observe(this,bean -> {
             if (bean!=null){
-                if (getTitleBar() != null){
-                    getTitleBar().setTitle(bean.getName());
-                }
-                String url = bean.getUrl();
-                if (url == null||url.isEmpty()){
-                    return;
-                }
-                List<String> list;
-                if (url.contains(",")){
-                    String[] split = url.split(",");
-                    list = new ArrayList<>(Arrays.asList(split));
+                adapter.setData(Utils.splitString2List(bean.getUrl(),","));
+            }
+        });
+        viewModel.getMemoListLiveData().observe(this, memoBeans -> {
+            if (memoBeans!=null){
+                memoRvAdapter.setData(memoBeans);
+            }
+        });
+        viewModel.getTypeLiveData().observe(this,operateType -> {
+            if (operateType){
+                if (type == 1) {
+                    binding.ivOperate.setOnClickListener(v -> {
+                        viewModel.add();
+                        viewModel.addMemo(memoRvAdapter.getAddList());
+                    });
                 }else {
-                    list = new ArrayList<>();
-                    list.add(url);
+                    binding.ivOperate.setOnClickListener(v -> {
+                        viewModel.addMemo(memoRvAdapter.getAddList());
+                        viewModel.deleteMemo(memoRvAdapter.getDeleteList());
+                        viewModel.updateMemo(memoRvAdapter.getUpdateList());
+                        viewModel.update();
+                    });
                 }
-                adapter.setData(list);
+                binding.rvImage.getFooterViews().forEach(new Consumer<View>() {
+                    @Override
+                    public void accept(View view) {
+                        view.setVisibility(View.VISIBLE);
+                    }
+                });
+                setIsEdited(true);
+            }else {
+                binding.ivOperate.setOnClickListener(v -> {
+                    popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+                });
+                binding.rvImage.getFooterViews().forEach(new Consumer<View>() {
+                    @Override
+                    public void accept(View view) {
+                        view.setVisibility(View.GONE);
+                    }
+                });
+                setIsEdited(false);
             }
         });
     }
     public void setIsEdited(boolean isEdited){
-        disableAllEditText(getContentView(),isEdited);
         adapter.setIsEdited(isEdited);
-    }
-    public void disableAllEditText(ViewGroup viewGroup, boolean isEdited) {
-        for (int i = 0; i < viewGroup.getChildCount(); i++) {
-            View child = viewGroup.getChildAt(i);
-            if (child instanceof ViewGroup) {
-                disableAllEditText((ViewGroup) child,isEdited);
-            } else if (child instanceof EditText) {
-                child.setEnabled(isEdited);
-                child.setFocusable(isEdited);
-                child.setFocusableInTouchMode(isEdited);
-                if (!isEdited){
-                    child.clearFocus();
-                }
-            }
-        }
+        memoRvAdapter.setEdited(isEdited);
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivityViewModel.java
index d79aff7..0e41a12 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivityViewModel.java
@@ -1,14 +1,33 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
 import com.android.app_base.base.viewmodel.BaseViewModel;
-import com.application.zhangshi_app_android.bean.FamilyAssetsBean;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.application.zhangshi_app_android.bean.HomeDevicesBean;
+import com.application.zhangshi_app_android.bean.MemoBean;
+import com.application.zhangshi_app_android.bean.UploadFileResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import io.reactivex.ObservableSource;
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Function;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
 
 /**
  * @author Ljj
@@ -18,6 +37,9 @@
 public class HomeDevicesDetailActivityViewModel extends BaseViewModel<DataRepository> {
     private MutableLiveData<HomeDevicesBean> beanLiveData;
 
+    private MutableLiveData<List<MemoBean>> memoListLiveData;
+
+    private MutableLiveData<Boolean> typeLiveData;//true 缂栬緫鐘舵�� false 灞曠ず鐘舵��
 
     public HomeDevicesDetailActivityViewModel(@NonNull Application application) {
         super(application);
@@ -28,14 +50,346 @@
         return DataRepository.getInstance();
     }
 
-    public MutableLiveData<HomeDevicesBean> getBeanLiveData() {
-        if (beanLiveData == null){
-            beanLiveData = new MutableLiveData<>();
+
+    /**
+     * 澧炲姞瀹跺涵璁惧
+     */
+    public void add() {
+        model.addHomeDevices(beanLiveData.getValue())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("娣诲姞鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎瀹跺涵璁惧
+     */
+    public void delete() {
+        if (beanLiveData.getValue() == null){
+            return;
         }
-        return beanLiveData;
+        model.deleteHomeDevices(String.valueOf(beanLiveData.getValue().getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 淇敼瀹跺涵璁惧
+     */
+    public void update() {
+        model.updateHomeDevices(beanLiveData.getValue())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("淇敼鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    /**
+     * 涓婁紶鐢靛瓙鏂囦欢
+     */
+    public void uploadFile(File file) {
+        RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
+        MultipartBody.Part body = MultipartBody.Part.createFormData("uploadFile", file.getName(), requestBody);
+        model.uploadFile(body)
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<UploadFileResponseBean>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<UploadFileResponseBean> resultData) {
+                        if (resultData.getCode() == CODE_SUCCESS){
+                            HomeDevicesBean bean = beanLiveData.getValue();
+                            String url;
+                            if (bean != null){
+                                url = bean.getUrl();
+                                if (url == null){
+                                    url = resultData.getData().getUrl();
+                                }else {
+                                    url = url + "," + resultData.getData().getUrl();
+                                }
+                                bean.setUrl(url);
+                                beanLiveData.postValue(bean);
+                            }
+                        }else {
+                            messageLiveData.postValue(resultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    /**
+     * 鑾峰彇澶囧繕褰�
+     */
+    public void getMemos() {
+        if (beanLiveData.getValue() == null) {
+            return;
+        }
+        model.getMemos("2017", String.valueOf(beanLiveData.getValue().getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<List<MemoBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<List<MemoBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            memoListLiveData.postValue(data.getData());
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    /**
+     * 娣诲姞澶囧繕褰�
+     */
+    public void addMemo(List<MemoBean> list) {
+        if (list == null || list.size() == 0) {
+            return;
+        }
+        for (MemoBean memoBean : list) {
+            model.addMemo(memoBean)
+                    .compose(RxUtils.schedulersTransformer())
+                    .subscribe(new Observer<ResultData<String>>() {
+                        @Override
+                        public void onSubscribe(Disposable d) {
+                            addSubscribe(d);
+                        }
+
+                        @Override
+                        public void onNext(ResultData<String> data) {
+                            if (data.getCode() == CODE_SUCCESS) {
+                                messageLiveData.postValue("娣诲姞澶囧繕褰曟垚鍔�");
+                            } else {
+                                messageLiveData.postValue(data.getMsg());
+                            }
+                        }
+
+                        @Override
+                        public void onError(Throwable e) {
+                            messageLiveData.postValue(e.getMessage());
+                        }
+
+                        @Override
+                        public void onComplete() {
+
+                        }
+                    });
+        }
+
+    }
+
+    /**
+     * 鍒犻櫎澶囧繕褰�
+     */
+    public void deleteMemo(List<MemoBean> list) {
+        if (list == null || list.size() == 0) {
+            return;
+        }
+        StringBuffer sb = new StringBuffer();
+        list.forEach(HomeDevicesBean -> sb.append(HomeDevicesBean.getId()).append(","));
+        sb.deleteCharAt(sb.length()-1);
+        model.deleteMemo(sb.toString())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            messageLiveData.postValue("鍒犻櫎澶囧繕褰曟垚鍔�");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    /**
+     * 淇敼澶囧繕褰�
+     */
+    public void updateMemo(List<MemoBean> list) {
+        if (list == null || list.size() == 0) {
+            return;
+        }
+        for (MemoBean memoBean : list) {
+            model.updateMemo(memoBean)
+                    .compose(RxUtils.schedulersTransformer())
+                    .subscribe(new Observer<ResultData<String>>() {
+                        @Override
+                        public void onSubscribe(Disposable d) {
+                            addSubscribe(d);
+                        }
+
+                        @Override
+                        public void onNext(ResultData<String> data) {
+                            if (data.getCode() == CODE_SUCCESS) {
+                                messageLiveData.postValue("淇敼澶囧繕褰曟垚鍔�");
+                            } else {
+                                messageLiveData.postValue(data.getMsg());
+                            }
+                        }
+
+                        @Override
+                        public void onError(Throwable e) {
+                            messageLiveData.postValue(e.getMessage());
+                        }
+
+                        @Override
+                        public void onComplete() {
+
+                        }
+                    });
+        }
+    }
+
+
+    public MutableLiveData<Boolean> getTypeLiveData() {
+        if (typeLiveData == null){
+            typeLiveData = new MutableLiveData<>();
+        }
+        return typeLiveData;
+    }
+
+    public void setTypeLiveData(MutableLiveData<Boolean> typeLiveData) {
+        this.typeLiveData = typeLiveData;
     }
 
     public void setBeanLiveData(MutableLiveData<HomeDevicesBean> beanLiveData) {
         this.beanLiveData = beanLiveData;
     }
+
+    public MutableLiveData<HomeDevicesBean> getBeanLiveData() {
+        if (beanLiveData == null){
+            beanLiveData = new MutableLiveData<>();
+        }
+        if (beanLiveData.getValue() == null){
+            beanLiveData.setValue(new HomeDevicesBean());
+        }
+        return beanLiveData;
+    }
+
+    public MutableLiveData<List<MemoBean>> getMemoListLiveData() {
+        if (memoListLiveData == null){
+            memoListLiveData = new MutableLiveData<>();
+        }
+        return memoListLiveData;
+    }
+
+    public void setMemoListLiveData(MutableLiveData<List<MemoBean>> memoListLiveData) {
+        this.memoListLiveData = memoListLiveData;
+    }
+
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionActivity.java
index 6bde34c..101e13e 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionActivity.java
@@ -1,12 +1,22 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
-import com.application.zhangshi_app_android.adapter.FamilyAssetsRvAdapter;
 import com.application.zhangshi_app_android.adapter.HonorCollectionRvAdapter;
 import com.application.zhangshi_app_android.databinding.ActivityHonorCollectionBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
 
 /**
  * @author Ljj
@@ -14,8 +24,9 @@
  * @desc 鑽h獕鏀惰棌 Activity
  */
 public class HonorCollectionActivity extends DLBaseActivity<ActivityHonorCollectionBinding, HonorCollectionActivityViewModel> {
-
     private HonorCollectionRvAdapter adapter;
+    private PopupWindow mOperatePopupWindow;
+    private boolean isSearchLayoutVisible;
 
     @Override
     public int getLayoutId() {
@@ -34,6 +45,14 @@
 
     @Override
     public void initView() {
+        //涓嬫媺鍒锋柊甯冨眬
+        binding.refreshLayout.setEnableRefresh(false);
+        binding.refreshLayout.setEnableLoadMore(true);
+        binding.refreshLayout.setEnableOverScrollDrag(true);
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+            viewModel.loadMoreHonorCollections();
+        });
+        //recyclerView閫傞厤鍣�
         adapter = new HonorCollectionRvAdapter(this);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
@@ -41,6 +60,167 @@
         itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         binding.recyclerView.addItemDecoration(itemDecoration);
         binding.recyclerView.setAdapter(adapter);
+        //鍙充笂瑙掓搷浣滃脊绐�
+        mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
+        mOperatePopupWindow.getContentView().findViewById(R.id.layout_add).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.layout_select).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old).setOnClickListener(v -> {
+            viewModel.sortDataList(0);
+            mOperatePopupWindow.dismiss();
+        });
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new).setOnClickListener(v -> {
+            viewModel.sortDataList(1);
+            mOperatePopupWindow.dismiss();
+        });
+        //鐐瑰嚮寮瑰嚭鎿嶄綔寮圭獥
+        binding.ivOperate.setOnClickListener(v -> {
+            mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+        });
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
+        });
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.pullCollapse(binding.containerSearchParameter,0,targetHeight);
+                isSearchLayoutVisible = true;
+            }
+        });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getHonorCollections();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+        binding.etStartTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etEndTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etEndTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etStartTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etStartTime.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                hideSoftKeyboard();
+                DatePicker datePicker = getDatePicker();
+                datePicker.setTitle("璇烽�夋嫨寮�濮嬫椂闂�");
+                datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                    @Override
+                    public void onDatePicked(int year, int month, int day) {
+                        //浠yyy-MM-dd鐨勬牸寮忔樉绀猴紝鏈堟棩灏忎簬10鏃跺墠闈㈣ˉ0
+                        binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                        if (binding.etEndTime.getText().toString().isEmpty()){
+                            binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                        }else {
+                            //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                            String startTime = binding.etStartTime.getText().toString();
+                            String endTime = binding.etEndTime.getText().toString();
+                            if (Utils.compareDate(startTime,endTime) > 0){
+                                //浜ゆ崲
+                                binding.etStartTime.setText(endTime);
+                                binding.etEndTime.setText(startTime);
+                            }
+                        }
+                    }
+                });
+                datePicker.show();
+            }
+        });
+        binding.etEndTime.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                hideSoftKeyboard();
+                DatePicker datePicker = getDatePicker();
+                datePicker.setTitle("璇烽�夋嫨缁撴潫鏃堕棿");
+                datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                    @Override
+                    public void onDatePicked(int year, int month, int day) {
+                        binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                        if (binding.etStartTime.getText().toString().isEmpty()){
+                            binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                        }else {
+                            //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                            String startTime = binding.etStartTime.getText().toString();
+                            String endTime = binding.etEndTime.getText().toString();
+                            if (Utils.compareDate(startTime,endTime) > 0){
+                                //浜ゆ崲
+                                binding.etStartTime.setText(endTime);
+                                binding.etEndTime.setText(startTime);
+                            }
+                        }
+                    }
+                });
+                datePicker.show();
+            }
+        });
+        binding.ivTimeClear.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                binding.etStartTime.setText("");
+                binding.etEndTime.setText("");
+            }
+        });
+    }
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
     }
 
     @Override
@@ -50,8 +230,31 @@
 
     @Override
     public void initLiveDataObserve() {
-        viewModel.getDataListLiveData().observe(this, homeDevices -> {
-            adapter.setData(homeDevices);
+        viewModel.getDataListLiveData().observe(this, list -> {
+            adapter.setData(list);
         });
+        viewModel.getMoreListLiveData().observe(this, list -> {
+            adapter.addData(list);
+        });
+    }
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
+    }
+
+    @Override
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionActivityViewModel.java
index d12ded7..f463614 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionActivityViewModel.java
@@ -3,6 +3,7 @@
 import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
 
 import android.app.Application;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.LiveData;
@@ -12,18 +13,24 @@
 import com.android.app_base.base.viewmodel.BaseViewModel;
 import com.android.app_base.http.ResultData;
 import com.android.app_base.utils.RxUtils;
-import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.bean.HonorCollectionBean;
 import com.application.zhangshi_app_android.bean.HonorCollectionRequestBean;
 import com.application.zhangshi_app_android.bean.HonorCollectionResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 
 import io.reactivex.Observer;
 import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
@@ -31,9 +38,10 @@
  * @desc 鑽h獕鏀惰棌 ViewModel
  */
 public class HonorCollectionActivityViewModel extends BaseViewModel<DataRepository> {
+    private MutableLiveData<List<HonorCollectionBean>> dataListLiveData;//鎵�鏈夋暟鎹�
+    private MutableLiveData<List<HonorCollectionBean>> moreListLiveData;//鍔犺浇鏇村鏁版嵁
 
-    private MutableLiveData<List<HonorCollectionBean>> dataListLiveData;
-    private HonorCollectionRequestBean requestBean = new HonorCollectionRequestBean();
+    private MutableLiveData<HonorCollectionRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
 
     public HonorCollectionActivityViewModel(@NonNull Application application) {
         super(application);
@@ -44,19 +52,16 @@
         return DataRepository.getInstance();
     }
 
-    public MutableLiveData<List<HonorCollectionBean>> getDataListLiveData() {
-        if (dataListLiveData == null){
-            dataListLiveData = new MutableLiveData<>();
-        }
-        return dataListLiveData;
-    }
 
-    public void setDataListLiveData(MutableLiveData<List<HonorCollectionBean>> dataListLiveData) {
-        this.dataListLiveData = dataListLiveData;
-    }
-
+    /**
+     * 鑾峰彇鑽h獕鏀惰棌
+     */
     public void getHonorCollections() {
-        model.getHonorCollections(requestBean.toMap())
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new HonorCollectionRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        model.getHonorCollections(getRequestBeanLiveData().getValue().toMap())
                 .compose(RxUtils.schedulersTransformer())
                 .subscribe(new Observer<ResultData<HonorCollectionResponseBean>>() {
                     @Override
@@ -89,4 +94,139 @@
                     }
                 });
     }
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void loadMoreHonorCollections(){
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new HonorCollectionRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getHonorCollections(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<HonorCollectionResponseBean>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<HonorCollectionResponseBean> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    public MutableLiveData<List<HonorCollectionBean>> getDataListLiveData() {
+        if (dataListLiveData == null){
+            dataListLiveData = new MutableLiveData<>();
+        }
+        return dataListLiveData;
+    }
+    public void setDataListLiveData(MutableLiveData<List<HonorCollectionBean>> dataListLiveData) {
+        this.dataListLiveData = dataListLiveData;
+    }
+    public MutableLiveData<HonorCollectionRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null){
+            requestBeanLiveData = new MutableLiveData<>();
+        }
+        if (requestBeanLiveData.getValue() == null){
+            requestBeanLiveData.setValue(new HonorCollectionRequestBean());
+        }
+        return requestBeanLiveData;
+    }
+
+    public void setRequestBeanLiveData(MutableLiveData<HonorCollectionRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
+    }
+
+
+
+    public MutableLiveData<List<HonorCollectionBean>> getMoreListLiveData() {
+        if (moreListLiveData == null){
+            moreListLiveData = new MutableLiveData<>();
+        }
+        return moreListLiveData;
+    }
+
+    public void setMoreListLiveData(MutableLiveData<List<HonorCollectionBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
+    }
+
+    /**
+     * 鎺掑簭
+     * @param type 0 浠庢柊鍒版棫 1 浠庢棫鍒版柊
+     */
+    public void sortDataList(int type){
+        List<HonorCollectionBean> list = dataListLiveData.getValue();
+        if (list == null || list.isEmpty()){
+            return;
+        }
+        if (type == 0) {
+            // 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return 1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return -1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date2.compareTo(date1);
+                    }
+                    return 0;
+                }
+            });
+        } else if (type == 1) {
+            // 浠庢棫鍒版柊锛宯ull鎺掓渶鍓�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return -1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return 1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date1.compareTo(date2);
+                    }
+                    return 0;
+                }
+            });
+        }
+        dataListLiveData.setValue(list);
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionDetailActivity.java
index 96263f0..583ed8c 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionDetailActivity.java
@@ -6,13 +6,18 @@
 
 import androidx.recyclerview.widget.GridLayoutManager;
 
+import com.android.app_base.manager.UserManager;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.ImageRvAdapter;
 import com.application.zhangshi_app_android.bean.HonorCollectionBean;
 import com.application.zhangshi_app_android.databinding.ActivityHonorCollectionDetailBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.luck.picture.lib.entity.LocalMedia;
+import com.luck.picture.lib.interfaces.OnResultCallbackListener;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -48,6 +53,7 @@
         GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
         binding.rvImage.setLayoutManager(gridLayoutManager);
         binding.rvImage.setNestedScrollingEnabled(false);
+        binding.rvImage.setAdapter(adapter);
         setIsEdited(false);
     }
 
@@ -60,18 +66,7 @@
     public void initLiveDataObserve() {
         viewModel.getBeanLiveData().observe(this,bean -> {
             if (bean!=null){
-                String url = bean.getUrl();
-                if (url == null||url.isEmpty()){
-                    return;
-                }
-                List<String> list;
-                if (url.contains(",")){
-                    String[] split = url.split(",");
-                    list = new ArrayList<>(Arrays.asList(split));
-                }else {
-                    list = new ArrayList<>();
-                    list.add(url);
-                }
+                List<String> list = Utils.splitString2List(bean.getUrl(),",");
                 adapter.setData(list);
             }
         });
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishActivity.java
index d632efd..4ae256c 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishActivity.java
@@ -1,13 +1,22 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.HundredWishRvAdapter;
-import com.application.zhangshi_app_android.adapter.PropertyRvAdapter;
 import com.application.zhangshi_app_android.databinding.ActivityHundredWishBinding;
-import com.application.zhangshi_app_android.databinding.ActivityPropertyBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
 
 /**
  * @author Ljj
@@ -17,7 +26,8 @@
 public class HundredWishActivity extends DLBaseActivity<ActivityHundredWishBinding, HundredWishActivityViewModel> {
 
     private HundredWishRvAdapter adapter;
-
+    private PopupWindow mOperatePopupWindow;
+    private boolean isSearchLayoutVisible;
     @Override
     public int getLayoutId() {
         return R.layout.activity_hundred_wish;
@@ -35,6 +45,14 @@
 
     @Override
     public void initView() {
+        //涓嬫媺鍒锋柊甯冨眬
+        binding.refreshLayout.setEnableRefresh(false);
+        binding.refreshLayout.setEnableLoadMore(true);
+        binding.refreshLayout.setEnableOverScrollDrag(true);
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+            viewModel.getMoreProperty();
+        });
+        //recyclerView閫傞厤鍣�
         adapter = new HundredWishRvAdapter(this);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
@@ -42,11 +60,164 @@
         itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         binding.recyclerView.addItemDecoration(itemDecoration);
         binding.recyclerView.setAdapter(adapter);
+        //鍙充笂瑙掓搷浣滃脊绐�
+        mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
+        mOperatePopupWindow.getContentView().findViewById(R.id.layout_add).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.layout_select).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old).setOnClickListener(v -> {
+            viewModel.sortDataList(0);
+            mOperatePopupWindow.dismiss();
+        });
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new).setOnClickListener(v -> {
+            viewModel.sortDataList(1);
+            mOperatePopupWindow.dismiss();
+        });
+        //鐐瑰嚮寮瑰嚭鎿嶄綔寮圭獥
+        binding.ivOperate.setOnClickListener(v -> {
+            mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+        });
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
+        });
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.pullCollapse(binding.containerSearchParameter,0,targetHeight);
+                isSearchLayoutVisible = true;
+            }
+        });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getProperty();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+        binding.etStartTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etEndTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etEndTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etStartTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etStartTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨寮�濮嬫椂闂�");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    //浠yyy-MM-dd鐨勬牸寮忔樉绀猴紝鏈堟棩灏忎簬10鏃跺墠闈㈣ˉ0
+                    binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etEndTime.getText().toString().isEmpty()){
+                        binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.etEndTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨缁撴潫鏃堕棿");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etStartTime.getText().toString().isEmpty()){
+                        binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.ivTimeClear.setOnClickListener(v -> {
+            binding.etStartTime.setText("");
+            binding.etEndTime.setText("");
+        });
     }
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
+    }
+
 
     @Override
     public void initData() {
-        viewModel.getHundredWish();
+        viewModel.getProperty();
     }
 
     @Override
@@ -54,5 +225,28 @@
         viewModel.getDataListLiveData().observe(this, dataList -> {
             adapter.setData(dataList);
         });
+        viewModel.getMoreListLiveData().observe(this, list -> {
+            adapter.addData(list);
+        });
+    }
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
+    }
+
+    @Override
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishActivityViewModel.java
index 831bd6f..4e7ea82 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishActivityViewModel.java
@@ -1,17 +1,30 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.bean.HundredWishBean;
-import com.application.zhangshi_app_android.bean.PropertyBean;
+import com.application.zhangshi_app_android.bean.HundredWishRequestBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
@@ -20,6 +33,8 @@
  */
 public class HundredWishActivityViewModel extends BaseViewModel<DataRepository> {
     private MutableLiveData<List<HundredWishBean>> dataListLiveData;
+    private MutableLiveData<List<HundredWishBean>> moreListLiveData;//鍔犺浇鏇村鏁版嵁
+    private MutableLiveData<HundredWishRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
 
     public HundredWishActivityViewModel(@NonNull Application application) {
         super(application);
@@ -29,42 +44,180 @@
     protected DataRepository initModel() {
         return DataRepository.getInstance();
     }
+    /**
+     * 鑾峰彇鏁版嵁
+     */
+    public void getProperty() {
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new HundredWishRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        model.getHundredWish(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<PageResponseBean<HundredWishBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
 
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<HundredWishBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                changeStateView(StateViewEnum.DATA_NULL);
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                dataListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void getMoreProperty(){
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new HundredWishRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getHundredWish(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<PageResponseBean<HundredWishBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<HundredWishBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
     public MutableLiveData<List<HundredWishBean>> getDataListLiveData() {
-        if (dataListLiveData == null) {
+        if (dataListLiveData == null){
             dataListLiveData = new MutableLiveData<>();
         }
         return dataListLiveData;
     }
-
     public void setDataListLiveData(MutableLiveData<List<HundredWishBean>> dataListLiveData) {
         this.dataListLiveData = dataListLiveData;
     }
-
-    public void getHundredWish() {
-        List<HundredWishBean> beans =  new ArrayList<>();
-        for (int i = 0; i < 10; i++) {
-            HundredWishBean bean = new HundredWishBean();
-            bean.setTitle("鏍囬");
-            bean.setCreateTime("2020-01-01");
-            bean.setReason("濮嬩簬浣曞洜");
-            bean.setBeneficiary("鍙楁儬浜�");
-            bean.setHeir("缁ф壙浜�");
-            bean.setDifficulty("瀹炵幇闅惧害");
-            bean.setIsEffective(1);
-            bean.setRemark("澶囨敞");
-            beans.add(bean);
+    public MutableLiveData<HundredWishRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null){
+            requestBeanLiveData = new MutableLiveData<>();
         }
-        HundredWishBean bean = new HundredWishBean();
-        bean.setTitle("鏍囬aaaaaaaaaaaaaa");
-        bean.setCreateTime("2020-01-01");
-        bean.setReason("濮嬩簬浣曞洜");
-        bean.setBeneficiary("鍙楁儬浜�");
-        bean.setHeir("缁ф壙浜�");
-        bean.setDifficulty("瀹炵幇闅惧害");
-        bean.setIsEffective(1);
-        bean.setRemark("澶囨敞");
-        beans.add(bean);
-        dataListLiveData.setValue(beans);
+        if (requestBeanLiveData.getValue() == null){
+            requestBeanLiveData.setValue(new HundredWishRequestBean());
+        }
+        return requestBeanLiveData;
+    }
+
+    public void setRequestBeanLiveData(MutableLiveData<HundredWishRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
+    }
+
+
+
+    public MutableLiveData<List<HundredWishBean>> getMoreListLiveData() {
+        if (moreListLiveData == null){
+            moreListLiveData = new MutableLiveData<>();
+        }
+        return moreListLiveData;
+    }
+
+    public void setMoreListLiveData(MutableLiveData<List<HundredWishBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
+    }
+
+    /**
+     * 鎺掑簭
+     * @param type 0 浠庢柊鍒版棫 1 浠庢棫鍒版柊
+     */
+    public void sortDataList(int type){
+        List<HundredWishBean> list = dataListLiveData.getValue();
+        if (list == null || list.isEmpty()){
+            return;
+        }
+        if (type == 0) {
+            // 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return 1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return -1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date2.compareTo(date1);
+                    }
+                    return 0;
+                }
+            });
+        } else if (type == 1) {
+            // 浠庢棫鍒版柊锛宯ull鎺掓渶鍓�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return -1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return 1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date1.compareTo(date2);
+                    }
+                    return 0;
+                }
+            });
+        }
+        dataListLiveData.setValue(list);
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishDetailActivity.java
index 8fda651..304b90d 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishDetailActivity.java
@@ -6,6 +6,7 @@
 
 import androidx.recyclerview.widget.GridLayoutManager;
 
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.ImageRvAdapter;
@@ -51,6 +52,7 @@
         GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
         binding.rvImage.setLayoutManager(gridLayoutManager);
         binding.rvImage.setNestedScrollingEnabled(false);
+        binding.rvImage.setAdapter(adapter);
         setIsEdited(false);
     }
 
@@ -63,19 +65,7 @@
     public void initLiveDataObserve() {
         viewModel.getBeanLiveData().observe(this,bean -> {
             if (bean!=null){
-                String url = bean.getUrl();
-                if (url == null||url.isEmpty()){
-                    return;
-                }
-                List<String> list;
-                if (url.contains(",")){
-                    String[] split = url.split(",");
-                    list = new ArrayList<>(Arrays.asList(split));
-                }else {
-                    list = new ArrayList<>();
-                    list.add(url);
-                }
-                adapter.setData(list);
+                adapter.setData(Utils.splitString2List(bean.getUrl(),","));
             }
         });
     }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragment.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragment.java
new file mode 100644
index 0000000..8eec0b0
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragment.java
@@ -0,0 +1,120 @@
+package com.application.zhangshi_app_android.ui.function;
+
+import android.os.Bundle;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+
+import com.android.app_base.base.view.BaseFragment;
+import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.utils.GlideUtil;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.databinding.FragmentImageCarouselBinding;
+import com.youth.banner.adapter.BannerImageAdapter;
+import com.youth.banner.holder.BannerImageHolder;
+import com.youth.banner.indicator.CircleIndicator;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Ljj
+ * @date 2023.07.16. 23:23
+ * @desc 鍔熻兘涓婚〉鐨勫浘鐗囪疆鎾� Fragment
+ */
+public class ImageCarouselFragment extends BaseFragment<FragmentImageCarouselBinding, ImageCarouselFragmentViewModel> {
+
+    private List<String> imageList;
+    private BannerImageAdapter<String> adapter;
+    private ImageCarouselFragment() {
+    }
+
+    public static ImageCarouselFragment newInstance() {
+        ImageCarouselFragment fragment = new ImageCarouselFragment();
+        Bundle args = new Bundle();
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    public void setImageList(List<String> imageList) {
+        this.imageList = imageList;
+        Bundle args = new Bundle();
+        args.putSerializable("imgList", (Serializable) imageList);
+        setArguments(args);
+        if (imageList == null || imageList.size() == 0) {
+            binding.layoutDataNull.setVisibility(View.VISIBLE);
+            binding.banner.setVisibility(View.GONE);
+        } else {
+            binding.layoutDataNull.setVisibility(View.GONE);
+            binding.banner.setVisibility(View.VISIBLE);
+            if (adapter != null) {
+                adapter.setDatas(imageList);
+            }
+        }
+
+    }
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.fragment_image_carousel;
+    }
+
+    @Override
+    protected int getVariableId() {
+        return 0;
+    }
+
+    @Override
+    protected void initParam() {
+        if (getArguments() != null) {
+            imageList = (List<String>) getArguments().getSerializable("imgList");
+        }
+    }
+
+    @Override
+    protected void initView() {
+        adapter = new BannerImageAdapter<String>(imageList) {
+            @Override
+            public void onBindView(BannerImageHolder holder, String data, int position, int size) {
+                GlideUtil.loadImage(data, holder.imageView);
+            }
+
+            @Override
+            public BannerImageHolder onCreateHolder(ViewGroup parent, int viewType) {
+                ImageView imageView = new ImageView(parent.getContext());
+                //娉ㄦ剰锛屽繀椤昏缃负match_parent锛岃繖涓槸viewpager2寮哄埗瑕佹眰鐨�
+                ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(
+                        ViewGroup.LayoutParams.MATCH_PARENT,
+                        ViewGroup.LayoutParams.MATCH_PARENT);
+                imageView.setLayoutParams(params);
+                return new BannerImageHolder(imageView);                    }
+        };
+        binding.banner.setAdapter(adapter)
+                .addBannerLifecycleObserver(this)//娣诲姞鐢熷懡鍛ㄦ湡瑙傚療鑰�
+                .setIndicator(new CircleIndicator(getSelfActivity()));
+
+        if (imageList == null || imageList.size() == 0) {
+            binding.layoutDataNull.setVisibility(View.VISIBLE);
+            binding.banner.setVisibility(View.GONE);
+        } else {
+            binding.layoutDataNull.setVisibility(View.GONE);
+            binding.banner.setVisibility(View.VISIBLE);
+            if (adapter != null) {
+                adapter.setDatas(imageList);
+            }
+        }
+
+
+    }
+
+    @Override
+    protected void initData() {
+    }
+
+    @Override
+    protected void initLiveDataObserve() {
+
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragmentViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragmentViewModel.java
new file mode 100644
index 0000000..f11943d
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragmentViewModel.java
@@ -0,0 +1,24 @@
+package com.application.zhangshi_app_android.ui.function;
+
+import android.app.Application;
+
+import androidx.annotation.NonNull;
+
+import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.application.zhangshi_app_android.data.DataRepository;
+
+/**
+ * @author Ljj
+ * @date 2023.07.17. 19:52
+ * @desc
+ */
+public class ImageCarouselFragmentViewModel extends BaseViewModel<DataRepository> {
+    public ImageCarouselFragmentViewModel(@NonNull Application application) {
+        super(application);
+    }
+
+    @Override
+    protected DataRepository initModel() {
+        return DataRepository.getInstance();
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesActivity.java
index df52eb5..81b6c5e 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesActivity.java
@@ -1,13 +1,29 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import android.content.Intent;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
-import com.application.zhangshi_app_android.adapter.CleanStorageRvAdapter;
 import com.application.zhangshi_app_android.adapter.IncomeAndExpensesRvAdapter;
-import com.application.zhangshi_app_android.databinding.ActivityCleanStorageBinding;
+import com.application.zhangshi_app_android.bean.IncomeAndExpensesBean;
 import com.application.zhangshi_app_android.databinding.ActivityIncomeAndExpensesBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
 
 /**
  * @author Ljj
@@ -17,7 +33,8 @@
 public class IncomeAndExpensesActivity extends DLBaseActivity<ActivityIncomeAndExpensesBinding, IncomeAndExpensesActivityViewModel> {
 
     private IncomeAndExpensesRvAdapter adapter;
-
+    private boolean isSearchLayoutVisible;
+    private PopupWindow mOperatePopupWindow;
     @Override
     public int getLayoutId() {
         return R.layout.activity_income_and_expenses;
@@ -35,14 +52,161 @@
 
     @Override
     public void initView() {
-        adapter = new IncomeAndExpensesRvAdapter(this);
+        //涓嬫媺鍒锋柊甯冨眬
+        binding.refreshLayout.setEnableRefresh(false);
+        binding.refreshLayout.setEnableLoadMore(true);
+        binding.refreshLayout.setEnableOverScrollDrag(true);
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+            viewModel.getMoreIncomeAndExpenses();
+        });
+        //recyclerView閫傞厤鍣�
+        adapter = new IncomeAndExpensesRvAdapter(this,viewModel);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
         itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         binding.recyclerView.addItemDecoration(itemDecoration);
         binding.recyclerView.setAdapter(adapter);
+        //鍙充笂瑙掓搷浣滃脊绐�
+        mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
+        setOnClickListener(
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_add),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_select),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new)
+        );
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
+        });
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.dropExpand(binding.containerSearchParameter,0,targetHeight);
+                isSearchLayoutVisible = true;
+            }
+        });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getIncomeAndExpenses();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+        //鐐瑰嚮娣诲姞鎸夐挳璺宠浆鍒板垱寤哄澶т簨璁伴〉闈�
+        binding.fabAdd.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(new Intent(getSelfActivity(), IncomeAndExpensesDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
+            }
+        });
+        binding.etStartTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etEndTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etEndTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etStartTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etStartTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨寮�濮嬫椂闂�");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    //浠yyy-MM-dd鐨勬牸寮忔樉绀猴紝鏈堟棩灏忎簬10鏃跺墠闈㈣ˉ0
+                    binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etEndTime.getText().toString().isEmpty()){
+                        binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.etEndTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨缁撴潫鏃堕棿");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etStartTime.getText().toString().isEmpty()){
+                        binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.ivTimeClear.setOnClickListener(v -> {
+            binding.etStartTime.setText("");
+            binding.etEndTime.setText("");
+        });
     }
+
 
     @Override
     public void initData() {
@@ -54,5 +218,121 @@
         viewModel.getDataListLiveData().observe(this, dataList -> {
             adapter.setData(dataList);
         });
+        viewModel.getCheckListLiveData().observe(this, checkList -> {
+            if (0 == viewModel.getOperateTypeLiveData().getValue()){
+                return;
+            }
+            if (checkList.isEmpty()){
+                viewModel.getOperateTypeLiveData().setValue(1);
+            }else{
+                viewModel.getOperateTypeLiveData().setValue(2);
+            }
+        });
+        viewModel.getMoreListLiveData().observe(this, moreList -> {
+            adapter.addData(moreList);
+        });
+        viewModel.getOperateTypeLiveData().observe(this, integer -> {
+            if (integer == 0){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_operate);
+                binding.ivOperate.setOnClickListener(v -> {
+                    mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+                });
+                adapter.setCheckable(false);
+            }else if (integer == 1){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_operate_finish);
+                binding.ivOperate.setOnClickListener(v -> {
+                    viewModel.getOperateTypeLiveData().postValue(0);
+                });
+                adapter.setCheckable(true);
+            }else if (integer == 2){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_delete_white);
+                binding.ivOperate.setOnClickListener(v -> {
+                    new UIDialog.Builder(this)
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎閫変腑鐨勯」鐩悧")
+                            .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                            .setConfirm("纭畾")
+                            .setCancel("鍙栨秷")
+                            .setListener(new UIDialog.OnListener() {
+                                @Override
+                                public void onConfirm(BaseDialog dialog) {
+                                    viewModel.deleteCheckList();
+                                }
+                            })
+                            .show();
+                });
+            }
+        });
+
+        viewModel.getFinishDeleteListLiveData().observe(this, beans -> {
+            for (IncomeAndExpensesBean bean : beans) {
+                adapter.removeItem(bean);
+            }
+        });
+
+        //瑙傚療鏁版嵁鐨勫彉鍖栵紝鏈夊彉鍖栧寘鎷坊鍔犮�佷慨鏀广�佸垹闄ら兘浼氬彂閫佹秷鎭紝鎺ユ敹鍒版秷鎭悗閲嶆柊鑾峰彇鏁版嵁杩涜鍒锋柊
+        RxBus.getInstance().toObservable(this, IncomeAndExpensesBean.class)
+                .subscribe(bean -> {
+                    viewModel.getIncomeAndExpenses();
+                });
+    }
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
+    }
+
+    @Override
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.tv_add){
+            AppManager.getAppManager().startActivity(new Intent(this, IncomeAndExpensesDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
+            mOperatePopupWindow.dismiss();
+        }else if (id == R.id.tv_select){
+            viewModel.getOperateTypeLiveData().postValue(1);
+            mOperatePopupWindow.dismiss();
+        }else if (id == R.id.tv_from_new_to_old) {
+            viewModel.changeOrder(true);
+            mOperatePopupWindow.dismiss();
+        } else if (id == R.id.tv_from_old_to_new) {
+            viewModel.changeOrder(false);
+            mOperatePopupWindow.dismiss();
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (mOperatePopupWindow != null){
+            mOperatePopupWindow.dismiss();
+        }
+    }
+
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesActivityViewModel.java
index 6d68d42..697bedc 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesActivityViewModel.java
@@ -3,26 +3,30 @@
 import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
 
 import android.app.Application;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
+import androidx.lifecycle.LiveData;
 import androidx.lifecycle.MutableLiveData;
 
 import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
 import com.android.app_base.http.ResultData;
 import com.android.app_base.utils.RxUtils;
-import com.application.zhangshi_app_android.bean.CleanStorageBean;
-import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean;
+import com.android.app_base.utils.Utils;
+import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
 import com.application.zhangshi_app_android.bean.IncomeAndExpensesBean;
-import com.application.zhangshi_app_android.bean.IncomeAndExpensesResponseBean;
+import com.application.zhangshi_app_android.bean.IncomeAndExpensesRequestBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
 
 import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.Date;
 import java.util.List;
 
 import io.reactivex.Observer;
 import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
@@ -30,7 +34,13 @@
  * @desc
  */
 public class IncomeAndExpensesActivityViewModel extends BaseViewModel<DataRepository> {
-    private MutableLiveData<List<IncomeAndExpensesBean>> dataListLiveData;
+    private MutableLiveData<List<IncomeAndExpensesBean>> dataListLiveData;//鍒楄〃鏁版嵁
+    private MutableLiveData<List<IncomeAndExpensesBean>> checkListLiveData;//閫変腑鐨勬暟鎹�
+    private MutableLiveData<List<IncomeAndExpensesBean>> moreListLiveData;//涓嬫媺鍔犺浇鏁版嵁
+    private MutableLiveData<IncomeAndExpensesRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
+    private MutableLiveData<List<IncomeAndExpensesBean>> finishDeleteListLiveData;//宸茬粡瀹屾垚鍒犻櫎鐨勬暟鎹紝鐢ㄤ簬adapter鐨剅emove鎿嶄綔
+
+    private MutableLiveData<Integer> operateTypeLiveData;//鎿嶄綔绫诲瀷 0 閫夋嫨鎿嶄綔 1.瀹屾垚 2.鍒犻櫎
 
     public IncomeAndExpensesActivityViewModel(@NonNull Application application) {
         super(application);
@@ -41,36 +51,32 @@
         return DataRepository.getInstance();
     }
 
-    public MutableLiveData<List<IncomeAndExpensesBean>> getDataListLiveData() {
-        if (dataListLiveData == null) {
-            dataListLiveData = new MutableLiveData<>();
-        }
-        return dataListLiveData;
-    }
-
-    public void setDataListLiveData(MutableLiveData<List<IncomeAndExpensesBean>> dataListLiveData) {
-        this.dataListLiveData = dataListLiveData;
-    }
-
+    /**
+     * 鑾峰彇鏁版嵁
+     */
     public void getIncomeAndExpenses() {
-        model.getIncomeAndExpenses(new HashMap<>())
+        if (getRequestBeanLiveData().getValue() == null) {
+            getRequestBeanLiveData().setValue(new IncomeAndExpensesRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        model.getIncomeAndExpenses(getRequestBeanLiveData().getValue().toMap())
                 .compose(RxUtils.schedulersTransformer())
-                .subscribe(new Observer<ResultData<IncomeAndExpensesResponseBean>>() {
+                .subscribe(new Observer<ResultData<PageResponseBean<IncomeAndExpensesBean>>>() {
                     @Override
                     public void onSubscribe(Disposable d) {
                         addSubscribe(d);
                     }
 
                     @Override
-                    public void onNext(ResultData<IncomeAndExpensesResponseBean> data) {
-                        if (data.getCode() == CODE_SUCCESS){
-                            if (data.getData().getData().isEmpty()){
+                    public void onNext(ResultData<PageResponseBean<IncomeAndExpensesBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS) {
+                            if (data.getData().getData().isEmpty()) {
                                 changeStateView(StateViewEnum.DATA_NULL);
-                            }else {
+                            } else {
                                 changeStateView(StateViewEnum.HIDE);
                                 dataListLiveData.postValue(data.getData().getData());
                             }
-                        }else {
+                        } else {
                             messageLiveData.postValue(data.getMsg());
                         }
                     }
@@ -86,4 +92,261 @@
                     }
                 });
     }
+
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void getMoreIncomeAndExpenses() {
+        if (getRequestBeanLiveData().getValue() == null) {
+            getRequestBeanLiveData().setValue(new IncomeAndExpensesRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getIncomeAndExpenses(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<PageResponseBean<IncomeAndExpensesBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<IncomeAndExpensesBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS) {
+                            if (data.getData().getData().isEmpty()) {
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            } else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        } else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    /**
+     * 鍒犻櫎澶氶�夐�変腑鐨勬暟鎹�
+     */
+    public void deleteCheckList() {
+        List<IncomeAndExpensesBean> deleteList = getCheckListLiveData().getValue();
+        if (deleteList == null) {
+            return;
+        }
+        StringBuffer sb = new StringBuffer();
+        deleteList.forEach(IncomeAndExpensesBean -> sb.append(IncomeAndExpensesBean.getId()).append(","));
+        sb.deleteCharAt(sb.length() - 1);
+        model.deleteIncomeAndExpenses(sb.toString())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS) {
+                            finishDeleteListLiveData.postValue(checkListLiveData.getValue());
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                            getCheckListLiveData().postValue(new ArrayList<>());
+                        } else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    /**
+     * 鍒犻櫎鍗曚釜鏁版嵁
+     */
+    public void deleteItem(IncomeAndExpensesBean IncomeAndExpensesBean) {
+        model.deleteIncomeAndExpenses(String.valueOf(IncomeAndExpensesBean.getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS) {
+                            List<IncomeAndExpensesBean> list = new ArrayList<>();
+                            list.add(IncomeAndExpensesBean);
+                            finishDeleteListLiveData.postValue(list);
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                        } else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    public MutableLiveData<List<IncomeAndExpensesBean>> getCheckListLiveData() {
+        if (checkListLiveData == null) {
+            checkListLiveData = new MutableLiveData<>();
+            checkListLiveData.postValue(new ArrayList<>());
+        }
+        if (checkListLiveData.getValue() == null) {
+            checkListLiveData.postValue(new ArrayList<>());
+        }
+        return checkListLiveData;
+    }
+
+    public void setCheckListLiveData(MutableLiveData<List<IncomeAndExpensesBean>> checkListLiveData) {
+        this.checkListLiveData = checkListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<IncomeAndExpensesRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null) {
+            requestBeanLiveData = new MutableLiveData<>();
+        }
+        if (requestBeanLiveData.getValue() == null) {
+            requestBeanLiveData.setValue(new IncomeAndExpensesRequestBean());
+        }
+        return requestBeanLiveData;
+    }
+
+    public void setRequestBeanLiveData(MutableLiveData<IncomeAndExpensesRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
+    }
+
+    public MutableLiveData<List<IncomeAndExpensesBean>> getDataListLiveData() {
+        if (dataListLiveData == null) {
+            dataListLiveData = new MutableLiveData<>();
+        }
+        return dataListLiveData;
+    }
+
+    public void setDataListLiveData(MutableLiveData<List<IncomeAndExpensesBean>> dataListLiveData) {
+        this.dataListLiveData = dataListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<List<IncomeAndExpensesBean>> getMoreListLiveData() {
+        if (moreListLiveData == null) {
+            moreListLiveData = new MutableLiveData<>();
+        }
+        return moreListLiveData;
+    }
+
+    public void setMoreListLiveData(MutableLiveData<List<IncomeAndExpensesBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<Integer> getOperateTypeLiveData() {
+        if (operateTypeLiveData == null) {
+            operateTypeLiveData = new MutableLiveData<>();
+            operateTypeLiveData.setValue(0);
+        }
+        return operateTypeLiveData;
+    }
+
+    public void setOperateTypeLiveData(MutableLiveData<Integer> operateTypeLiveData) {
+        this.operateTypeLiveData = operateTypeLiveData;
+    }
+
+    public LiveData<List<IncomeAndExpensesBean>> getFinishDeleteListLiveData() {
+        if (finishDeleteListLiveData == null) {
+            finishDeleteListLiveData = new MutableLiveData<>();
+        }
+        return finishDeleteListLiveData;
+    }
+
+    public void setFinishDeleteListLiveData(MutableLiveData<List<IncomeAndExpensesBean>> finishDeleteListLiveData) {
+        this.finishDeleteListLiveData = finishDeleteListLiveData;
+    }
+
+    /**
+     * 鏀瑰彉鎺掑簭
+     *
+     * @param b true 闄嶅簭 false 鍗囧簭
+     */
+    public void changeOrder(boolean b) {
+        List<IncomeAndExpensesBean> list = getDataListLiveData().getValue();
+        if (list == null || list.isEmpty()) {
+            return;
+        }
+        if (b) {
+            // 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return 1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return -1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date2.compareTo(date1);
+                    }
+                    return 0;
+                }
+            });
+        } else {
+            // 浠庢棫鍒版柊锛宯ull鎺掓渶鍓�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return -1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return 1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date1.compareTo(date2);
+                    }
+                    return 0;
+                }
+            });
+        }
+        getDataListLiveData().setValue(list);
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesDetailActivity.java
index b6eaec8..8fd9e61 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesDetailActivity.java
@@ -3,9 +3,18 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.EditText;
+import android.widget.PopupWindow;
 
 import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.manager.UserManager;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.ImageRvAdapter;
@@ -15,10 +24,18 @@
 import com.application.zhangshi_app_android.databinding.ActivityIncomeAndExpensesDetailBinding;
 import com.application.zhangshi_app_android.databinding.ActivityLittleDoctorDetailBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.OptionPicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
+import com.github.gzuliyujiang.wheelpicker.contract.OnOptionPickedListener;
+import com.luck.picture.lib.entity.LocalMedia;
+import com.luck.picture.lib.interfaces.OnResultCallbackListener;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.function.Consumer;
 
 /**
  * @author Ljj
@@ -27,6 +44,8 @@
  */
 public class IncomeAndExpensesDetailActivity extends DLBaseActivity<ActivityIncomeAndExpensesDetailBinding, IncomeAndExpensesDetailActivityViewModel> {
 
+    private int type;// 0 鏌ョ湅鍙慨鏀瑰垹闄� 1 鏂板 2 鐩存帴淇敼
+    private PopupWindow popupWindow;
     private ImageRvAdapter adapter;
 
     @Override
@@ -41,8 +60,12 @@
 
     @Override
     public void initParam() {
-        if (getIntent().hasExtra("bean")){
-            viewModel.getBeanLiveData().setValue((IncomeAndExpensesBean) getIntent().getSerializableExtra("bean"));
+        type = getIntent().getIntExtra(BaseConfig.EXTRA_TYPE,0);
+        if (type == 0 || type == 2){
+            IncomeAndExpensesBean bean = (IncomeAndExpensesBean) getIntent().getSerializableExtra("bean");
+            if (bean !=null){
+                viewModel.getBeanLiveData().setValue(bean);
+            }
         }
     }
 
@@ -52,7 +75,108 @@
         GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
         binding.rvImage.setLayoutManager(gridLayoutManager);
         binding.rvImage.setNestedScrollingEnabled(false);
-        setIsEdited(false);
+        View footerView = View.inflate(this,R.layout.item_image_footer,null);
+        binding.rvImage.addFooterView(footerView);
+        binding.rvImage.requestLayout();
+        footerView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                UserManager.getInstance().selectImage(getSelfActivity(), 9, new OnResultCallbackListener<LocalMedia>() {
+                    @Override
+                    public void onResult(ArrayList<LocalMedia> result) {
+                        if (result.size() == 0) return;
+                        for (LocalMedia media : result) {
+                            String path = media.getRealPath();
+                            File file = new File(path);
+                            if (file.exists()) {
+                                viewModel.uploadFile(file);
+                            }
+                        }
+                    }
+
+                    @Override
+                    public void onCancel() {
+
+                    }
+                });
+            }
+        });
+        adapter.setOnChildClickListener(R.id.iv_delete, new BaseRVAdapter.OnChildClickListener() {
+            @Override
+            public void onChildClick(RecyclerView recyclerView, View childView, int position) {
+                IncomeAndExpensesBean bean = viewModel.getBeanLiveData().getValue();
+                if (bean !=null){
+                    List<String> urlList = Utils.splitString2List(bean.getUrl(),",");
+                    urlList.remove(adapter.getItem(position));
+                    bean.setUrl(Utils.appendList2String(urlList,","));
+                }
+                adapter.removeItem(position);
+                viewModel.getBeanLiveData().setValue(bean);
+            }
+        });
+        binding.rvImage.setAdapter(adapter);
+
+        if (type == 1){
+            viewModel.getTypeLiveData().postValue(true);
+            binding.ivOperate.setOnClickListener(v -> {
+                viewModel.add();
+            });
+        }else if (type == 0){
+            popupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate_delete,null));
+            popupWindow.getContentView().findViewById(R.id.tv_modify).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    viewModel.getTypeLiveData().postValue(true);
+                    popupWindow.dismiss();
+                }
+            });
+            popupWindow.getContentView().findViewById(R.id.tv_delete).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    popupWindow.dismiss();
+                    new UIDialog.Builder(getSelfActivity())
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎椤圭洰鍚�")
+                            .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                            .setConfirm("纭畾")
+                            .setCancel("鍙栨秷")
+                            .setListener(new UIDialog.OnListener() {
+                                @Override
+                                public void onConfirm(BaseDialog dialog) {
+                                    viewModel.delete();
+                                }
+                            })
+                            .show();
+                }
+            });
+            viewModel.getTypeLiveData().postValue(false);
+        }else if (type == 2){
+            viewModel.getTypeLiveData().postValue(true);
+        }
+        binding.etTime.setOnClickListener(v -> {
+            DatePicker picker = getDatePicker();
+            picker.setTitle("閫夋嫨鏃堕棿");
+            picker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    binding.etTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                }
+            });
+            picker.show();
+        });
+        binding.etPrice.setOnClickListener(v -> {
+            List<String> list = Arrays.asList("鏀跺叆","鏀嚭");
+            OptionPicker picker = getOptionPicker(list);
+            picker.setTitle("閫夋嫨鏀舵敮绫诲瀷");
+            picker.setDefaultValue(binding.etPrice.getText().toString());
+            picker.setOnOptionPickedListener(new OnOptionPickedListener() {
+                @Override
+                public void onOptionPicked(int position, Object item) {
+                    binding.etPrice.setText((String) item);
+                }
+            });
+            picker.show();
+        });
+
     }
 
     @Override
@@ -64,40 +188,40 @@
     public void initLiveDataObserve() {
         viewModel.getBeanLiveData().observe(this,bean -> {
             if (bean!=null){
-                String url = bean.getUrl();
-                if (url == null||url.isEmpty()){
-                    return;
-                }
-                List<String> list;
-                if (url.contains(",")){
-                    String[] split = url.split(",");
-                    list = new ArrayList<>(Arrays.asList(split));
+                adapter.setData(Utils.splitString2List(bean.getUrl(),","));
+            }
+        });
+        viewModel.getTypeLiveData().observe(this,operateType -> {
+            if (operateType){
+                if (type == 1) {
+                    binding.ivOperate.setOnClickListener(v -> {
+                        viewModel.add();
+                    });
                 }else {
-                    list = new ArrayList<>();
-                    list.add(url);
+                    binding.ivOperate.setOnClickListener(v -> {
+                        viewModel.update();
+                    });
                 }
-                adapter.setData(list);
+                binding.rvImage.getFooterViews().forEach(new Consumer<View>() {
+                    @Override
+                    public void accept(View view) {
+                        view.setVisibility(View.VISIBLE);
+                    }
+                });
+                adapter.setIsEdited(true);
+            }else {
+                binding.ivOperate.setOnClickListener(v -> {
+                    popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+                });
+                binding.rvImage.getFooterViews().forEach(new Consumer<View>() {
+                    @Override
+                    public void accept(View view) {
+                        view.setVisibility(View.GONE);
+                    }
+                });
+                adapter.setIsEdited(false);
             }
         });
     }
 
-    public void setIsEdited(boolean isEdited){
-        disableAllEditText(getContentView(),isEdited);
-        adapter.setIsEdited(isEdited);
-    }
-    public void disableAllEditText(ViewGroup viewGroup, boolean isEdited) {
-        for (int i = 0; i < viewGroup.getChildCount(); i++) {
-            View child = viewGroup.getChildAt(i);
-            if (child instanceof ViewGroup) {
-                disableAllEditText((ViewGroup) child,isEdited);
-            } else if (child instanceof EditText) {
-                child.setEnabled(isEdited);
-                child.setFocusable(isEdited);
-                child.setFocusableInTouchMode(isEdited);
-                if (!isEdited){
-                    child.clearFocus();
-                }
-            }
-        }
-    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesDetailActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesDetailActivityViewModel.java
index d059b9c..d8c576e 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesDetailActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesDetailActivityViewModel.java
@@ -1,13 +1,28 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.application.zhangshi_app_android.bean.IncomeAndExpensesBean;
+import com.application.zhangshi_app_android.bean.UploadFileResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.io.File;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
 
 /**
  * @author Ljj
@@ -17,6 +32,7 @@
 public class IncomeAndExpensesDetailActivityViewModel extends BaseViewModel<DataRepository> {
 
     private MutableLiveData<IncomeAndExpensesBean> beanLiveData;
+    private MutableLiveData<Boolean> typeLiveData;//true 缂栬緫鐘舵�� false 灞曠ず鐘舵��
 
     public IncomeAndExpensesDetailActivityViewModel(@NonNull Application application) {
         super(application);
@@ -27,14 +43,180 @@
         return DataRepository.getInstance();
     }
 
+    /**
+     * 娣诲姞 鏀舵敮鍙拌处
+     */
+    public void add() {
+        System.out.println(beanLiveData.getValue());
+        model.addIncomeAndExpenses(beanLiveData.getValue())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("娣诲姞鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎 鏀舵敮鍙拌处
+     */
+    public void delete() {
+        if (beanLiveData.getValue() == null){
+            return;
+        }
+        model.deleteIncomeAndExpenses(String.valueOf(beanLiveData.getValue().getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 淇敼灏忓尰鐢�
+     */
+    public void update() {
+        model.updateIncomeAndExpenses(beanLiveData.getValue())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("淇敼鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    /**
+     * 涓婁紶鐢靛瓙鏂囦欢
+     */
+    public void uploadFile(File file) {
+        RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
+        MultipartBody.Part body = MultipartBody.Part.createFormData("uploadFile", file.getName(), requestBody);
+        model.uploadFile(body)
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<UploadFileResponseBean>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<UploadFileResponseBean> resultData) {
+                        if (resultData.getCode() == CODE_SUCCESS){
+                            IncomeAndExpensesBean bean = beanLiveData.getValue();
+                            String url;
+                            if (bean != null){
+                                url = bean.getUrl();
+                                if (url == null){
+                                    url = resultData.getData().getUrl();
+                                }else {
+                                    url = url + "," + resultData.getData().getUrl();
+                                }
+                                bean.setUrl(url);
+                                beanLiveData.postValue(bean);
+                            }
+                        }else {
+                            messageLiveData.postValue(resultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    public MutableLiveData<Boolean> getTypeLiveData() {
+        if (typeLiveData == null){
+            typeLiveData = new MutableLiveData<>();
+        }
+        return typeLiveData;
+    }
+
+    public void setTypeLiveData(MutableLiveData<Boolean> typeLiveData) {
+        this.typeLiveData = typeLiveData;
+    }
+
+    public void setBeanLiveData(MutableLiveData<IncomeAndExpensesBean> beanLiveData) {
+        this.beanLiveData = beanLiveData;
+    }
+
     public MutableLiveData<IncomeAndExpensesBean> getBeanLiveData() {
         if (beanLiveData == null){
             beanLiveData = new MutableLiveData<>();
         }
+        if (beanLiveData.getValue() == null){
+            beanLiveData.setValue(new IncomeAndExpensesBean());
+        }
         return beanLiveData;
-    }
-
-    public void setBeanLiveData(IncomeAndExpensesBean littleDoctorBean) {
-        beanLiveData.setValue(littleDoctorBean);
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorActivity.java
index c0b8fa9..e3f61bc 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorActivity.java
@@ -1,20 +1,40 @@
 package com.application.zhangshi_app_android.ui.function;
 
 import androidx.appcompat.app.AppCompatActivity;
+import androidx.lifecycle.Observer;
 
+import android.content.Intent;
 import android.os.Bundle;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.PopupWindow;
 
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
-import com.application.zhangshi_app_android.adapter.HonorCollectionRvAdapter;
 import com.application.zhangshi_app_android.adapter.LittleDoctorRvAdapter;
+import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
+import com.application.zhangshi_app_android.bean.LittleDoctorBean;
 import com.application.zhangshi_app_android.databinding.ActivityLittleDoctorBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+
+import java.util.List;
+
+import io.reactivex.functions.Consumer;
 
 public class LittleDoctorActivity extends DLBaseActivity<ActivityLittleDoctorBinding,LittleDoctorActivityViewModel> {
 
     private LittleDoctorRvAdapter adapter;
+    private boolean isSearchLayoutVisible;
+    private PopupWindow mOperatePopupWindow;
+
 
     @Override
     public int getLayoutId() {
@@ -33,13 +53,64 @@
 
     @Override
     public void initView() {
-        adapter = new LittleDoctorRvAdapter(this);
+        //涓嬫媺鍒锋柊甯冨眬
+        binding.refreshLayout.setEnableRefresh(false);
+        binding.refreshLayout.setEnableLoadMore(true);
+        binding.refreshLayout.setEnableOverScrollDrag(true);
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+            viewModel.getMoreLittleDoctors();
+        });
+        //recyclerView閫傞厤鍣�
+        adapter = new LittleDoctorRvAdapter(this,viewModel);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
         itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         binding.recyclerView.addItemDecoration(itemDecoration);
         binding.recyclerView.setAdapter(adapter);
+        //鍙充笂瑙掓搷浣滃脊绐�
+        mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new).setVisibility(View.GONE);
+        setOnClickListener(
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_add),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_select)
+        );
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
+        });
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.dropExpand(binding.containerSearchParameter,0,targetHeight);
+                isSearchLayoutVisible = true;
+            }
+        });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getLittleDoctors();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+        //鐐瑰嚮娣诲姞鎸夐挳璺宠浆鍒板垱寤哄澶т簨璁伴〉闈�
+        binding.fabAdd.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(new Intent(getSelfActivity(), LittleDoctorDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
+            }
+        });
     }
 
     @Override
@@ -49,9 +120,121 @@
 
     @Override
     public void initLiveDataObserve() {
-        viewModel.getDataListLiveData().observe(this, homeDevices -> {
-            adapter.setData(homeDevices);
+        viewModel.getDataListLiveData().observe(this, list -> {
+            adapter.setData(list);
         });
+        viewModel.getCheckListLiveData().observe(this, checkList -> {
+            if (0 == viewModel.getOperateTypeLiveData().getValue()){
+                return;
+            }
+            if (checkList.isEmpty()){
+                viewModel.getOperateTypeLiveData().setValue(1);
+            }else{
+                viewModel.getOperateTypeLiveData().setValue(2);
+            }
+        });
+        viewModel.getMoreListLiveData().observe(this, moreList -> {
+            adapter.addData(moreList);
+        });
+        viewModel.getOperateTypeLiveData().observe(this, integer -> {
+            if (integer == 0){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_operate);
+                binding.ivOperate.setOnClickListener(v -> {
+                    mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+                });
+                adapter.setCheckable(false);
+            }else if (integer == 1){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_operate_finish);
+                binding.ivOperate.setOnClickListener(v -> {
+                    viewModel.getOperateTypeLiveData().postValue(0);
+                });
+                adapter.setCheckable(true);
+            }else if (integer == 2){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_delete_white);
+                binding.ivOperate.setOnClickListener(v -> {
+                    new UIDialog.Builder(this)
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎閫変腑鐨勯」鐩悧")
+                            .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                            .setConfirm("纭畾")
+                            .setCancel("鍙栨秷")
+                            .setListener(new UIDialog.OnListener() {
+                                @Override
+                                public void onConfirm(BaseDialog dialog) {
+                                    viewModel.deleteCheckList();
+                                }
+                            })
+                            .show();
+                });
+            }
+        });
+
+        viewModel.getFinishDeleteListLiveData().observe(this, beans -> {
+            for (LittleDoctorBean bean : beans) {
+                adapter.removeItem(bean);
+            }
+        });
+
+        //瑙傚療鏁版嵁鐨勫彉鍖栵紝鏈夊彉鍖栧寘鎷坊鍔犮�佷慨鏀广�佸垹闄ら兘浼氬彂閫佹秷鎭紝鎺ユ敹鍒版秷鎭悗閲嶆柊鑾峰彇鏁版嵁杩涜鍒锋柊
+        RxBus.getInstance().toObservable(this, LittleDoctorBean.class)
+                .subscribe(bean -> {
+                    viewModel.getLittleDoctors();
+                });
+    }
+
+
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
+    }
+
+    @Override
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.tv_add){
+            AppManager.getAppManager().startActivity(new Intent(this, LittleDoctorDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
+            mOperatePopupWindow.dismiss();
+        }else if (id == R.id.tv_select){
+            viewModel.getOperateTypeLiveData().postValue(1);
+            mOperatePopupWindow.dismiss();
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (mOperatePopupWindow != null){
+            mOperatePopupWindow.dismiss();
+        }
+    }
+
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
     }
 
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorActivityViewModel.java
index 5be8866..fa3bc7d 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorActivityViewModel.java
@@ -12,22 +12,20 @@
 import com.android.app_base.base.viewmodel.BaseViewModel;
 import com.android.app_base.http.ResultData;
 import com.android.app_base.utils.RxUtils;
-import com.application.zhangshi_app_android.bean.FamilyMemorabiliaRequestBean;
-import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean;
-import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean;
-import com.application.zhangshi_app_android.bean.HonorCollectionBean;
-import com.application.zhangshi_app_android.bean.HonorCollectionResponseBean;
 import com.application.zhangshi_app_android.bean.LittleDoctorBean;
 import com.application.zhangshi_app_android.bean.LittleDoctorRequestBean;
-import com.application.zhangshi_app_android.bean.LittleDoctorResponseBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
 
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 
 import io.reactivex.Observer;
 import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
@@ -36,9 +34,13 @@
  */
 public class LittleDoctorActivityViewModel extends BaseViewModel<DataRepository> {
 
-    private MutableLiveData<List<LittleDoctorBean>> dataListLiveData;
+    private MutableLiveData<List<LittleDoctorBean>> dataListLiveData;//鑾峰彇鐨勬暟鎹�
+    private MutableLiveData<List<LittleDoctorBean>> checkListLiveData;//閫変腑鐨勬暟鎹�
+    private MutableLiveData<List<LittleDoctorBean>> moreListLiveData;//涓嬫媺鍔犺浇鏁版嵁
+    private MutableLiveData<LittleDoctorRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
+    private MutableLiveData<List<LittleDoctorBean>> finishDeleteListLiveData;//宸茬粡瀹屾垚鍒犻櫎鐨勬暟鎹紝鐢ㄤ簬adapter鐨剅emove鎿嶄綔
 
-    private LittleDoctorRequestBean requestBean = new LittleDoctorRequestBean();
+    private MutableLiveData<Integer> operateTypeLiveData;//鎿嶄綔绫诲瀷 0 閫夋嫨鎿嶄綔 1.瀹屾垚 2.鍒犻櫎
 
     public LittleDoctorActivityViewModel(@NonNull Application application) {
         super(application);
@@ -48,29 +50,25 @@
     protected DataRepository initModel() {
         return DataRepository.getInstance();
     }
-
-    public MutableLiveData<List<LittleDoctorBean>> getDataListLiveData() {
-        if (dataListLiveData == null){
-            dataListLiveData = new MutableLiveData<>();
-        }
-        return dataListLiveData;
-    }
-
-    public void setDataListLiveData(MutableLiveData<List<LittleDoctorBean>> dataListLiveData) {
-        this.dataListLiveData = dataListLiveData;
-    }
-
+    
+    /**
+     * 鑾峰彇鏁版嵁
+     */
     public void getLittleDoctors() {
-        model.getLittleDoctors(requestBean.toMap())
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new LittleDoctorRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        model.getLittleDoctors(getRequestBeanLiveData().getValue().toMap())
                 .compose(RxUtils.schedulersTransformer())
-                .subscribe(new Observer<ResultData<LittleDoctorResponseBean>>() {
+                .subscribe(new Observer<ResultData<PageResponseBean<LittleDoctorBean>>>() {
                     @Override
                     public void onSubscribe(Disposable d) {
                         addSubscribe(d);
                     }
 
                     @Override
-                    public void onNext(ResultData<LittleDoctorResponseBean> data) {
+                    public void onNext(ResultData<PageResponseBean<LittleDoctorBean>> data) {
                         if (data.getCode() == CODE_SUCCESS){
                             if (data.getData().getData().isEmpty()){
                                 changeStateView(StateViewEnum.DATA_NULL);
@@ -94,6 +92,206 @@
                     }
                 });
     }
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void getMoreLittleDoctors() {
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new LittleDoctorRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getLittleDoctors(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<PageResponseBean<LittleDoctorBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<LittleDoctorBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎澶氶�夐�変腑鐨勬暟鎹�
+     */
+    public void deleteCheckList() {
+        List<LittleDoctorBean> deleteList = getCheckListLiveData().getValue();
+        if (deleteList == null){
+            return;
+        }
+        StringBuffer sb = new StringBuffer();
+        deleteList.forEach(LittleDoctorBean -> sb.append(LittleDoctorBean.getId()).append(","));
+        sb.deleteCharAt(sb.length()-1);
+        model.deleteLittleDoctors(sb.toString())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            finishDeleteListLiveData.postValue(checkListLiveData.getValue());
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                            getCheckListLiveData().postValue(new ArrayList<>());
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎鍗曚釜鏁版嵁
+     */
+    public void deleteItem(LittleDoctorBean littleDoctorBean) {
+        model.deleteLittleDoctors(String.valueOf(littleDoctorBean.getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            List<LittleDoctorBean> list = new ArrayList<>();
+                            list.add(littleDoctorBean);
+                            finishDeleteListLiveData.postValue(list);
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    public MutableLiveData<List<LittleDoctorBean>> getCheckListLiveData() {
+        if (checkListLiveData==null){
+            checkListLiveData = new MutableLiveData<>();
+            checkListLiveData.postValue(new ArrayList<>());
+        }
+        if (checkListLiveData.getValue() == null){
+            checkListLiveData.postValue(new ArrayList<>());
+        }
+        return checkListLiveData;
+    }
+
+    public void setCheckListLiveData(MutableLiveData<List<LittleDoctorBean>> checkListLiveData) {
+        this.checkListLiveData = checkListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<LittleDoctorRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null){
+            requestBeanLiveData = new MutableLiveData<>();
+        }
+        if (requestBeanLiveData.getValue() == null){
+            requestBeanLiveData.setValue(new LittleDoctorRequestBean());
+        }
+        return requestBeanLiveData;
+    }
+
+    public void setRequestBeanLiveData(MutableLiveData<LittleDoctorRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
+    }
+
+    public MutableLiveData<List<LittleDoctorBean>> getDataListLiveData() {
+        if (dataListLiveData == null){
+            dataListLiveData = new MutableLiveData<>();
+        }
+        return dataListLiveData;
+    }
+
+    public void setDataListLiveData(MutableLiveData<List<LittleDoctorBean>> dataListLiveData) {
+        this.dataListLiveData = dataListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<List<LittleDoctorBean>> getMoreListLiveData() {
+        if (moreListLiveData == null){
+            moreListLiveData = new MutableLiveData<>();
+        }
+        return moreListLiveData;
+    }
+
+    public void setMoreListLiveData(MutableLiveData<List<LittleDoctorBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<Integer> getOperateTypeLiveData() {
+        if (operateTypeLiveData == null){
+            operateTypeLiveData = new MutableLiveData<>();
+            operateTypeLiveData.setValue(0);
+        }
+        return operateTypeLiveData;
+    }
+
+    public void setOperateTypeLiveData(MutableLiveData<Integer> operateTypeLiveData) {
+        this.operateTypeLiveData = operateTypeLiveData;
+    }
+
+    public LiveData<List<LittleDoctorBean>> getFinishDeleteListLiveData() {
+        if (finishDeleteListLiveData == null){
+            finishDeleteListLiveData = new MutableLiveData<>();
+        }
+        return finishDeleteListLiveData;
+    }
+
+    public void setFinishDeleteListLiveData(MutableLiveData<List<LittleDoctorBean>> finishDeleteListLiveData) {
+        this.finishDeleteListLiveData = finishDeleteListLiveData;
+    }
 
 
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorDetailActivity.java
index c10e656..869db9c 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorDetailActivity.java
@@ -3,24 +3,39 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.EditText;
+import android.widget.PopupWindow;
 
 import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.manager.UserManager;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.ImageRvAdapter;
+import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
 import com.application.zhangshi_app_android.bean.LittleDoctorBean;
 import com.application.zhangshi_app_android.databinding.ActivityLittleDoctorDetailBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.luck.picture.lib.entity.LocalMedia;
+import com.luck.picture.lib.interfaces.OnResultCallbackListener;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.function.Consumer;
 
 public class LittleDoctorDetailActivity extends DLBaseActivity<ActivityLittleDoctorDetailBinding, LittleDoctorDetailActivityViewModel> {
 
+    private int type;// 0 鏌ョ湅鍙慨鏀瑰垹闄� 1 鏂板 2 鐩存帴淇敼
+    private PopupWindow popupWindow;
     private ImageRvAdapter adapter;
-
     @Override
     public int getLayoutId() {
         return R.layout.activity_little_doctor_detail;
@@ -33,8 +48,13 @@
 
     @Override
     public void initParam() {
-        if (getIntent().hasExtra("bean")){
-            viewModel.getBeanLiveData().setValue((LittleDoctorBean) getIntent().getSerializableExtra("bean"));
+
+        type = getIntent().getIntExtra(BaseConfig.EXTRA_TYPE,0);
+        if (type == 0 || type == 2){
+            LittleDoctorBean bean = (LittleDoctorBean) getIntent().getSerializableExtra("bean");
+            if (bean !=null){
+                viewModel.getBeanLiveData().setValue(bean);
+            }
         }
     }
 
@@ -44,7 +64,86 @@
         GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
         binding.rvImage.setLayoutManager(gridLayoutManager);
         binding.rvImage.setNestedScrollingEnabled(false);
-        setIsEdited(false);
+        View footerView = View.inflate(this,R.layout.item_image_footer,null);
+        binding.rvImage.addFooterView(footerView);
+        binding.rvImage.requestLayout();
+        footerView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                UserManager.getInstance().selectImage(getSelfActivity(), 9, new OnResultCallbackListener<LocalMedia>() {
+                    @Override
+                    public void onResult(ArrayList<LocalMedia> result) {
+                        if (result.size() == 0) return;
+                        for (LocalMedia media : result) {
+                            String path = media.getRealPath();
+                            File file = new File(path);
+                            if (file.exists()) {
+                                viewModel.uploadFile(file);
+                            }
+                        }
+                    }
+
+                    @Override
+                    public void onCancel() {
+
+                    }
+                });
+            }
+        });
+        adapter.setOnChildClickListener(R.id.iv_delete, new BaseRVAdapter.OnChildClickListener() {
+            @Override
+            public void onChildClick(RecyclerView recyclerView, View childView, int position) {
+                LittleDoctorBean bean = viewModel.getBeanLiveData().getValue();
+                if (bean !=null){
+                    List<String> urlList = Utils.splitString2List(bean.getUrl(),",");
+                    urlList.remove(adapter.getItem(position));
+                    bean.setUrl(Utils.appendList2String(urlList,","));
+                }
+                adapter.removeItem(position);
+                viewModel.getBeanLiveData().setValue(bean);
+            }
+        });
+        binding.rvImage.setAdapter(adapter);
+
+        if (type == 1){
+            viewModel.getTypeLiveData().postValue(true);
+            binding.titleBar.setTitle("鏂板灏忓尰鐢�");
+            binding.ivOperate.setOnClickListener(v -> {
+                viewModel.add();
+            });
+        }else if (type == 0){
+            popupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate_delete,null));
+            popupWindow.getContentView().findViewById(R.id.tv_modify).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    viewModel.getTypeLiveData().postValue(true);
+                    popupWindow.dismiss();
+                }
+            });
+            popupWindow.getContentView().findViewById(R.id.tv_delete).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    popupWindow.dismiss();
+                    new UIDialog.Builder(getSelfActivity())
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎椤圭洰鍚�")
+                            .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                            .setConfirm("纭畾")
+                            .setCancel("鍙栨秷")
+                            .setListener(new UIDialog.OnListener() {
+                                @Override
+                                public void onConfirm(BaseDialog dialog) {
+                                    viewModel.delete();
+                                }
+                            })
+                            .show();
+                }
+            });
+            viewModel.getTypeLiveData().postValue(false);
+        }else if (type == 2){
+            viewModel.getTypeLiveData().postValue(true);
+
+        }
+
     }
 
     @Override
@@ -56,19 +155,38 @@
     public void initLiveDataObserve() {
         viewModel.getBeanLiveData().observe(this,bean -> {
             if (bean!=null){
-                String url = bean.getUrl();
-                if (url == null||url.isEmpty()){
-                    return;
-                }
-                List<String> list;
-                if (url.contains(",")){
-                    String[] split = url.split(",");
-                    list = new ArrayList<>(Arrays.asList(split));
+                adapter.setData(Utils.splitString2List(bean.getUrl(),","));
+            }
+        });
+        viewModel.getTypeLiveData().observe(this,operateType -> {
+            if (operateType){
+                if (type == 1) {
+                    binding.ivOperate.setOnClickListener(v -> {
+                        viewModel.add();
+                    });
                 }else {
-                    list = new ArrayList<>();
-                    list.add(url);
+                    binding.ivOperate.setOnClickListener(v -> {
+                        viewModel.update();
+                    });
                 }
-                adapter.setData(list);
+                binding.rvImage.getFooterViews().forEach(new Consumer<View>() {
+                    @Override
+                    public void accept(View view) {
+                        view.setVisibility(View.VISIBLE);
+                    }
+                });
+                setIsEdited(true);
+            }else {
+                binding.ivOperate.setOnClickListener(v -> {
+                    popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+                });
+                binding.rvImage.getFooterViews().forEach(new Consumer<View>() {
+                    @Override
+                    public void accept(View view) {
+                        view.setVisibility(View.GONE);
+                    }
+                });
+                setIsEdited(false);
             }
         });
     }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorDetailActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorDetailActivityViewModel.java
index 0ecf7d4..50c36e0 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorDetailActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorDetailActivityViewModel.java
@@ -1,13 +1,29 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.rxbus.RxBus;
+import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
 import com.application.zhangshi_app_android.bean.LittleDoctorBean;
+import com.application.zhangshi_app_android.bean.UploadFileResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.io.File;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
 
 /**
  * @author Ljj
@@ -17,6 +33,7 @@
 public class LittleDoctorDetailActivityViewModel extends BaseViewModel<DataRepository> {
 
     private MutableLiveData<LittleDoctorBean> beanLiveData;
+    private MutableLiveData<Boolean> typeLiveData;//true 缂栬緫鐘舵�� false 灞曠ず鐘舵��
 
     public LittleDoctorDetailActivityViewModel(@NonNull Application application) {
         super(application);
@@ -27,14 +44,181 @@
         return DataRepository.getInstance();
     }
 
+    /**
+     * 澧炲姞灏忓尰鐢�
+     */
+    public void add() {
+        model.addLittleDoctor(beanLiveData.getValue())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("娣诲姞鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎灏忓尰鐢�
+     */
+    public void delete() {
+        if (beanLiveData.getValue() == null){
+            return;
+        }
+        model.deleteLittleDoctors(String.valueOf(beanLiveData.getValue().getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 淇敼灏忓尰鐢�
+     */
+    public void update() {
+        model.updateLittleDoctor(beanLiveData.getValue())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("淇敼鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    /**
+     * 涓婁紶鐢靛瓙鏂囦欢
+     */
+    public void uploadFile(File file) {
+        RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
+        MultipartBody.Part body = MultipartBody.Part.createFormData("uploadFile", file.getName(), requestBody);
+        model.uploadFile(body)
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<UploadFileResponseBean>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<UploadFileResponseBean> resultData) {
+                        if (resultData.getCode() == CODE_SUCCESS){
+                            LittleDoctorBean bean = beanLiveData.getValue();
+                            String url;
+                            if (bean != null){
+                                url = bean.getUrl();
+                                if (url == null){
+                                    url = resultData.getData().getUrl();
+                                }else {
+                                    url = url + "," + resultData.getData().getUrl();
+                                }
+                                bean.setUrl(url);
+                                beanLiveData.postValue(bean);
+                            }
+                        }else {
+                            messageLiveData.postValue(resultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    public MutableLiveData<Boolean> getTypeLiveData() {
+        if (typeLiveData == null){
+            typeLiveData = new MutableLiveData<>();
+        }
+        return typeLiveData;
+    }
+
+    public void setTypeLiveData(MutableLiveData<Boolean> typeLiveData) {
+        this.typeLiveData = typeLiveData;
+    }
+
+    public void setBeanLiveData(MutableLiveData<LittleDoctorBean> beanLiveData) {
+        this.beanLiveData = beanLiveData;
+    }
+
     public MutableLiveData<LittleDoctorBean> getBeanLiveData() {
         if (beanLiveData == null){
             beanLiveData = new MutableLiveData<>();
         }
+        if (beanLiveData.getValue() == null){
+            beanLiveData.setValue(new LittleDoctorBean());
+        }
         return beanLiveData;
     }
 
-    public void setBeanLiveData(LittleDoctorBean littleDoctorBean) {
-        beanLiveData.setValue(littleDoctorBean);
-    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/MarriageActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/MarriageActivity.java
index 364ceeb..d702b95 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/MarriageActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/MarriageActivity.java
@@ -11,9 +11,11 @@
 import android.widget.LinearLayout;
 
 import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.LinearLayoutManager;
 
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.adapter.OldSpouseRvAdapter;
 import com.application.zhangshi_app_android.databinding.ActivityMarriageBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
 
@@ -24,6 +26,7 @@
  */
 public class MarriageActivity extends DLBaseActivity<ActivityMarriageBinding,MarriageActivityViewModel> {
 
+    private OldSpouseRvAdapter adapter;
     @Override
     public int getLayoutId() {
         return R.layout.activity_marriage;
@@ -38,27 +41,49 @@
     public void initParam() {
 
     }
-
-    private boolean isExpended = false;
     @Override
     public void initView() {
+        adapter = new OldSpouseRvAdapter(this);
+        binding.rvPredecessor.setNestedScrollingEnabled(false);
+        binding.rvPredecessor.setAdapter(adapter);
+
+        final int SCROLL_THRESHOLD = 400; // 婊戝姩闃堝�硷紝鎸夐挳鍦ㄦ粦鍔ㄨ秴杩囪闃堝�煎悗寮�濮嬫牴鎹秴鍑洪槇鍊艰窛绂绘笎娓愭樉绀哄嚭鏉�
+        final int SCROLL_DISTANCE = 400; // 鎸夐挳浠庨殣钘忓埌鍏ㄩ儴鏄剧ず鍑烘潵闇�瑕佹粦鍔ㄧ殑璺濈
+        binding.fabMoveToTop.setAlpha(0f);
+        binding.nestedScrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
+            @Override
+            public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
+                // 褰撴粦鍔ㄨ窛绂昏秴杩囬槇鍊间竴鍗婃椂锛屽紑濮嬫參鎱㈡樉绀烘寜閽�
+                if (scrollY >= SCROLL_THRESHOLD) {
+                    // 鏍规嵁婊戝姩璺濈璁剧疆鎸夐挳閫忔槑搴�
+                    float alpha = Math.min(1.0f, (float) (scrollY - SCROLL_THRESHOLD) / SCROLL_DISTANCE);
+                    binding.fabMoveToTop.setAlpha(alpha);
+                } else {
+                    binding.fabMoveToTop.setAlpha(0f);
+                }
+            }
+        });
+        binding.fabMoveToTop.setOnClickListener(v -> {
+            // 鐐瑰嚮鎸夐挳杩斿洖椤堕儴
+            binding.nestedScrollView.smoothScrollTo(0, 0);
+        });
     }
 
     @Override
     public void initData() {
-
+        viewModel.getMarriageInfo();
     }
 
     @Override
     public void initLiveDataObserve() {
         viewModel.getIsSpouseExpendedLiveData().observe(this, aBoolean -> {
             if (aBoolean){
-                binding.ivSpouseFold.setOnClickListener(view -> {
+                binding.layoutTitleSpouse.setOnClickListener(view -> {
                     collapseView(binding.cardSpouse,binding.layoutTitleSpouse);
                     viewModel.getIsSpouseExpendedLiveData().setValue(false);
                 });
             }else {
-                binding.ivSpouseFold.setOnClickListener(view -> {
+                binding.layoutTitleSpouse.setOnClickListener(view -> {
                     expendView(binding.cardSpouse);
                     viewModel.getIsSpouseExpendedLiveData().setValue(true);
                 });
@@ -66,12 +91,12 @@
         });
         viewModel.getIsPredecessorExpendedLiveData().observe(this, aBoolean -> {
             if (aBoolean){
-                binding.ivPredecessorFold.setOnClickListener(view -> {
+                binding.layoutTitlePredecessor.setOnClickListener(view -> {
                     collapseView(binding.cardPredecessor,binding.layoutTitlePredecessor);
                     viewModel.getIsPredecessorExpendedLiveData().setValue(false);
                 });
             }else {
-                binding.ivPredecessorFold.setOnClickListener(new View.OnClickListener() {
+                binding.layoutTitlePredecessor.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View view) {
                         expendView(binding.cardPredecessor);
@@ -82,7 +107,7 @@
         });
         viewModel.getIsProcreateExpendedLiveData().observe(this, aBoolean -> {
             if (aBoolean){
-                binding.ivProcreateFold.setOnClickListener(new View.OnClickListener() {
+                binding.layoutTitleProcreate.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View view) {
                         collapseView(binding.cardProcreate,binding.layoutTitleProcreate);
@@ -90,7 +115,7 @@
                     }
                 });
             }else {
-                binding.ivProcreateFold.setOnClickListener(new View.OnClickListener() {
+                binding.layoutTitleProcreate.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View view) {
                         expendView(binding.cardProcreate);
@@ -99,6 +124,30 @@
                 });
             }
         });
+        viewModel.getInfoLiveData().observe(this, marriageInfoBean -> {
+            if (marriageInfoBean != null){
+                if (marriageInfoBean.getOldSpouseList() == null || marriageInfoBean.getOldSpouseList().size() == 0) {
+                    binding.cardSpouse.setVisibility(View.GONE);
+                }else {
+                    binding.cardSpouse.setVisibility(View.VISIBLE);
+                    adapter.setData(marriageInfoBean.getOldSpouseList());
+                }
+            }
+        });
+    }
+
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.nestedScrollView.setVisibility(View.GONE);
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.nestedScrollView.setVisibility(View.VISIBLE);
     }
 
     public void collapseView(View initialView,View collapsedView){
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/MarriageActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/MarriageActivityViewModel.java
index cd6dc56..0facdb3 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/MarriageActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/MarriageActivityViewModel.java
@@ -1,12 +1,22 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.application.zhangshi_app_android.bean.GrowthExperienceInformationBean;
+import com.application.zhangshi_app_android.bean.MarriageInfoBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
 
 /**
  * @author Ljj
@@ -17,7 +27,7 @@
     private MutableLiveData<Boolean> isSpouseExpendedLiveData;
     private MutableLiveData<Boolean> isPredecessorExpendedLiveData;
     private MutableLiveData<Boolean> isProcreateExpendedLiveData;
-
+    private MutableLiveData<MarriageInfoBean> infoLiveData;
     public MarriageActivityViewModel(@NonNull Application application) {
         super(application);
     }
@@ -27,6 +37,55 @@
         return DataRepository.getInstance();
     }
 
+    /**
+     * 鑾峰彇涓汉濠氬Щ
+     */
+    public void getMarriageInfo(){
+        model.getMarriageInfo()
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<MarriageInfoBean>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<MarriageInfoBean> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            changeStateView(StateViewEnum.HIDE);
+                            infoLiveData.postValue(data.getData());
+                        }else if (data.getCode() == 500){
+                            changeStateView(StateViewEnum.DATA_NULL);
+                            messageLiveData.postValue(data.getMsg());
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    public MutableLiveData<MarriageInfoBean> getInfoLiveData() {
+        if (infoLiveData == null){
+            infoLiveData = new MutableLiveData<>();
+        }
+        return infoLiveData;
+    }
+
+    public void setInfoLiveData(MutableLiveData<MarriageInfoBean> infoLiveData) {
+        this.infoLiveData = infoLiveData;
+    }
+
     public MutableLiveData<Boolean> getIsSpouseExpendedLiveData() {
         if (isSpouseExpendedLiveData == null){
             isSpouseExpendedLiveData = new MutableLiveData<>();
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadActivity.java
index e0f60db..960b45b 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadActivity.java
@@ -1,12 +1,30 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import android.content.Intent;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.PersonalNotepadRvAdapter;
-import com.application.zhangshi_app_android.adapter.PrivacyRvAdapter;
+import com.application.zhangshi_app_android.bean.PersonalNotepadBean;
 import com.application.zhangshi_app_android.databinding.ActivityPersonalNotepadBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
+import com.hjq.bar.TitleBar;
 
 /**
  * @author Ljj
@@ -15,7 +33,8 @@
  */
 public class PersonalNotepadActivity extends DLBaseActivity<ActivityPersonalNotepadBinding,PersonalNotepadActivityViewModel> {
     private PersonalNotepadRvAdapter adapter;
-
+    private boolean isSearchLayoutVisible;
+    private PopupWindow mOperatePopupWindow;
     @Override
     public int getLayoutId() {
         return R.layout.activity_personal_notepad;
@@ -33,13 +52,159 @@
 
     @Override
     public void initView() {
-        adapter = new PersonalNotepadRvAdapter(this);
+        //涓嬫媺鍒锋柊甯冨眬
+        binding.refreshLayout.setEnableRefresh(false);
+        binding.refreshLayout.setEnableLoadMore(true);
+        binding.refreshLayout.setEnableOverScrollDrag(true);
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+            viewModel.getMorePersonalNotepads();
+        });
+        //recyclerView閫傞厤鍣�
+        adapter = new PersonalNotepadRvAdapter(this,viewModel);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
         itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         binding.recyclerView.addItemDecoration(itemDecoration);
         binding.recyclerView.setAdapter(adapter);
+        //鍙充笂瑙掓搷浣滃脊绐�
+        mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
+        setOnClickListener(
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_add),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_select),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new)
+        );
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
+        });
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.dropExpand(binding.containerSearchParameter,0,targetHeight);
+                isSearchLayoutVisible = true;
+            }
+        });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getPersonalNotepads();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+        //鐐瑰嚮娣诲姞鎸夐挳璺宠浆鍒板垱寤哄澶т簨璁伴〉闈�
+        binding.fabAdd.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(new Intent(getSelfActivity(), PersonalNotepadDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
+            }
+        });
+        binding.etStartTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etEndTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etEndTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etStartTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etStartTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨寮�濮嬫椂闂�");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    //浠yyy-MM-dd鐨勬牸寮忔樉绀猴紝鏈堟棩灏忎簬10鏃跺墠闈㈣ˉ0
+                    binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etEndTime.getText().toString().isEmpty()){
+                        binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.etEndTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨缁撴潫鏃堕棿");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etStartTime.getText().toString().isEmpty()){
+                        binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.ivTimeClear.setOnClickListener(v -> {
+            binding.etStartTime.setText("");
+            binding.etEndTime.setText("");
+        });
     }
 
     @Override
@@ -52,5 +217,126 @@
         viewModel.getDataListLiveData().observe(this, dataList -> {
             adapter.setData(dataList);
         });
+        viewModel.getCheckListLiveData().observe(this, checkList -> {
+            if (0 == viewModel.getOperateTypeLiveData().getValue()){
+                return;
+            }
+            if (checkList.isEmpty()){
+                viewModel.getOperateTypeLiveData().setValue(1);
+            }else{
+                viewModel.getOperateTypeLiveData().setValue(2);
+            }
+        });
+        viewModel.getMoreListLiveData().observe(this, moreList -> {
+            adapter.addData(moreList);
+        });
+        viewModel.getOperateTypeLiveData().observe(this, integer -> {
+            if (integer == 0){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_operate);
+                binding.ivOperate.setOnClickListener(v -> {
+                    mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+                });
+                adapter.setCheckable(false);
+            }else if (integer == 1){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_operate_finish);
+                binding.ivOperate.setOnClickListener(v -> {
+                    viewModel.getOperateTypeLiveData().postValue(0);
+                });
+                adapter.setCheckable(true);
+            }else if (integer == 2){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_delete_white);
+                binding.ivOperate.setOnClickListener(v -> {
+                    new UIDialog.Builder(this)
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎閫変腑鐨勯」鐩悧")
+                            .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                            .setConfirm("纭畾")
+                            .setCancel("鍙栨秷")
+                            .setListener(new UIDialog.OnListener() {
+                                @Override
+                                public void onConfirm(BaseDialog dialog) {
+                                    viewModel.deleteCheckList();
+                                }
+                            })
+                            .show();
+                });
+            }
+        });
+
+        viewModel.getFinishDeleteListLiveData().observe(this, beans -> {
+            for (PersonalNotepadBean bean : beans) {
+                adapter.removeItem(bean);
+            }
+        });
+
+        //瑙傚療鏁版嵁鐨勫彉鍖栵紝鏈夊彉鍖栧寘鎷坊鍔犮�佷慨鏀广�佸垹闄ら兘浼氬彂閫佹秷鎭紝鎺ユ敹鍒版秷鎭悗閲嶆柊鑾峰彇鏁版嵁杩涜鍒锋柊
+        RxBus.getInstance().toObservable(this, PersonalNotepadBean.class)
+                .subscribe(bean -> {
+                    viewModel.getPersonalNotepads();
+                });
+    }
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
+    }
+
+    @Override
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.tv_add){
+            AppManager.getAppManager().startActivity(new Intent(this, PersonalNotepadDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
+            mOperatePopupWindow.dismiss();
+        }else if (id == R.id.tv_select){
+            viewModel.getOperateTypeLiveData().postValue(1);
+            mOperatePopupWindow.dismiss();
+        }else if (id == R.id.tv_from_new_to_old) {
+            viewModel.changeOrder(true);
+            mOperatePopupWindow.dismiss();
+        } else if (id == R.id.tv_from_old_to_new) {
+            viewModel.changeOrder(false);
+            mOperatePopupWindow.dismiss();
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (mOperatePopupWindow != null){
+            mOperatePopupWindow.dismiss();
+        }
+    }
+
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
+    }
+
+    @Override
+    public void onLeftClick(TitleBar titleBar) {
+        finish();
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadActivityViewModel.java
index 3d5fe9f..8a07503 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadActivityViewModel.java
@@ -1,17 +1,31 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
+import androidx.lifecycle.LiveData;
 import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.Utils;
+import com.application.zhangshi_app_android.bean.PersonalNotepadRequestBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
 import com.application.zhangshi_app_android.bean.PersonalNotepadBean;
-import com.application.zhangshi_app_android.bean.PrivacyBean;
 import com.application.zhangshi_app_android.data.DataRepository;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
@@ -20,7 +34,12 @@
  */
 public class PersonalNotepadActivityViewModel extends BaseViewModel<DataRepository> {
     private MutableLiveData<List<PersonalNotepadBean>> dataListLiveData;
+    private MutableLiveData<List<PersonalNotepadBean>> checkListLiveData;//閫変腑鐨勬暟鎹�
+    private MutableLiveData<List<PersonalNotepadBean>> moreListLiveData;//涓嬫媺鍔犺浇鏁版嵁
+    private MutableLiveData<PersonalNotepadRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
+    private MutableLiveData<List<PersonalNotepadBean>> finishDeleteListLiveData;//宸茬粡瀹屾垚鍒犻櫎鐨勬暟鎹紝鐢ㄤ簬adapter鐨剅emove鎿嶄綔
 
+    private MutableLiveData<Integer> operateTypeLiveData;//鎿嶄綔绫诲瀷 0 閫夋嫨鎿嶄綔 1.瀹屾垚 2.鍒犻櫎
     public PersonalNotepadActivityViewModel(@NonNull Application application) {
         super(application);
     }
@@ -30,8 +49,207 @@
         return DataRepository.getInstance();
     }
 
+    /**
+     * 鑾峰彇鏁版嵁
+     */
+    public void getPersonalNotepads() {
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new PersonalNotepadRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        model.getPersonalNotepad(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<PageResponseBean<PersonalNotepadBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<PersonalNotepadBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                changeStateView(StateViewEnum.DATA_NULL);
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                dataListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void getMorePersonalNotepads() {
+        if (true){
+            changeStateView(StateViewEnum.DATA_NULL);
+            return;
+        }
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new PersonalNotepadRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getPersonalNotepad(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<PageResponseBean<PersonalNotepadBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<PersonalNotepadBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎澶氶�夐�変腑鐨勬暟鎹�
+     */
+    public void deleteCheckList() {
+        List<PersonalNotepadBean> deleteList = getCheckListLiveData().getValue();
+        if (deleteList == null){
+            return;
+        }
+        StringBuffer sb = new StringBuffer();
+        deleteList.forEach(PersonalNotepadBean -> sb.append(PersonalNotepadBean.getId()).append(","));
+        sb.deleteCharAt(sb.length()-1);
+        model.deletePersonalNotepad(sb.toString())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            finishDeleteListLiveData.postValue(checkListLiveData.getValue());
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                            getCheckListLiveData().postValue(new ArrayList<>());
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎鍗曚釜鏁版嵁
+     */
+    public void deleteItem(PersonalNotepadBean PersonalNotepadBean) {
+        model.deletePersonalNotepad(String.valueOf(PersonalNotepadBean.getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            List<PersonalNotepadBean> list = new ArrayList<>();
+                            list.add(PersonalNotepadBean);
+                            finishDeleteListLiveData.postValue(list);
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    public MutableLiveData<List<PersonalNotepadBean>> getCheckListLiveData() {
+        if (checkListLiveData==null){
+            checkListLiveData = new MutableLiveData<>();
+            checkListLiveData.postValue(new ArrayList<>());
+        }
+        if (checkListLiveData.getValue() == null){
+            checkListLiveData.postValue(new ArrayList<>());
+        }
+        return checkListLiveData;
+    }
+
+    public void setCheckListLiveData(MutableLiveData<List<PersonalNotepadBean>> checkListLiveData) {
+        this.checkListLiveData = checkListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<PersonalNotepadRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null){
+            requestBeanLiveData = new MutableLiveData<>();
+        }
+        if (requestBeanLiveData.getValue() == null){
+            requestBeanLiveData.setValue(new PersonalNotepadRequestBean());
+        }
+        return requestBeanLiveData;
+    }
+
+    public void setRequestBeanLiveData(MutableLiveData<PersonalNotepadRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
+    }
+
     public MutableLiveData<List<PersonalNotepadBean>> getDataListLiveData() {
-        if (dataListLiveData == null) {
+        if (dataListLiveData == null){
             dataListLiveData = new MutableLiveData<>();
         }
         return dataListLiveData;
@@ -41,21 +259,92 @@
         this.dataListLiveData = dataListLiveData;
     }
 
-    /**
-     *  鑾峰彇涓汉璁颁簨鏈垪琛�
-     */
-    public void getPersonalNotepads() {
-        List<PersonalNotepadBean> beans =  new ArrayList<>();
-        for (int i = 0; i < 10; i++) {
-            PersonalNotepadBean bean = new PersonalNotepadBean();
-            bean.setId(i);
-            bean.setTitle("鏍囬"+i);
-            bean.setPerson("寮犱笁"+i);
-            bean.setTime("2020-05-14 20:00:00");
-            bean.setPlace("鍖椾含甯傛捣娣�鍖�"+i);
-            bean.setRemark("澶囨敞"+i);
-            beans.add(bean);
+    @NonNull
+    public MutableLiveData<List<PersonalNotepadBean>> getMoreListLiveData() {
+        if (moreListLiveData == null){
+            moreListLiveData = new MutableLiveData<>();
         }
-        dataListLiveData.setValue(beans);
+        return moreListLiveData;
+    }
+
+    public void setMoreListLiveData(MutableLiveData<List<PersonalNotepadBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<Integer> getOperateTypeLiveData() {
+        if (operateTypeLiveData == null){
+            operateTypeLiveData = new MutableLiveData<>();
+            operateTypeLiveData.setValue(0);
+        }
+        return operateTypeLiveData;
+    }
+
+    public void setOperateTypeLiveData(MutableLiveData<Integer> operateTypeLiveData) {
+        this.operateTypeLiveData = operateTypeLiveData;
+    }
+
+    public LiveData<List<PersonalNotepadBean>> getFinishDeleteListLiveData() {
+        if (finishDeleteListLiveData == null){
+            finishDeleteListLiveData = new MutableLiveData<>();
+        }
+        return finishDeleteListLiveData;
+    }
+
+    public void setFinishDeleteListLiveData(MutableLiveData<List<PersonalNotepadBean>> finishDeleteListLiveData) {
+        this.finishDeleteListLiveData = finishDeleteListLiveData;
+    }
+
+    /**
+     * 鏀瑰彉鎺掑簭
+     * @param b true 闄嶅簭 false 鍗囧簭
+     */
+    public void changeOrder(boolean b) {
+        List<PersonalNotepadBean> list = getDataListLiveData().getValue();
+        if (list == null || list.isEmpty()){
+            return;
+        }
+        if (b) {
+            // 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return 1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return -1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date2.compareTo(date1);
+                    }
+                    return 0;
+                }
+            });
+        } else  {
+            // 浠庢棫鍒版柊锛宯ull鎺掓渶鍓�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return -1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return 1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date1.compareTo(date2);
+                    }
+                    return 0;
+                }
+            });
+        }
+        getDataListLiveData().setValue(list);
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadDetailActivity.java
index f3082b8..c0f7bc5 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadDetailActivity.java
@@ -3,19 +3,35 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.EditText;
+import android.widget.PopupWindow;
 
 import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.manager.UserManager;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.ImageRvAdapter;
 import com.application.zhangshi_app_android.bean.PersonalNotepadBean;
 import com.application.zhangshi_app_android.databinding.ActivityPersonalNotepadDetailBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
+import com.hjq.bar.TitleBar;
+import com.luck.picture.lib.entity.LocalMedia;
+import com.luck.picture.lib.interfaces.OnResultCallbackListener;
 
+import java.io.File;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
+import java.util.Locale;
+import java.util.function.Consumer;
 
 /**
  * @author Ljj
@@ -25,7 +41,8 @@
 public class PersonalNotepadDetailActivity extends DLBaseActivity<ActivityPersonalNotepadDetailBinding,PersonalNotepadDetailActivityViewModel> {
 
     private ImageRvAdapter adapter;
-
+    private int type;// 0 鏌ョ湅鍙慨鏀瑰垹闄� 1 鏂板 2 鐩存帴淇敼
+    private PopupWindow popupWindow;
     @Override
     public int getLayoutId() {
         return R.layout.activity_personal_notepad_detail;
@@ -38,8 +55,12 @@
 
     @Override
     public void initParam() {
-        if (getIntent().hasExtra("bean")){
-            viewModel.getBeanLiveData().setValue((PersonalNotepadBean) getIntent().getSerializableExtra("bean"));
+        type = getIntent().getIntExtra(BaseConfig.EXTRA_TYPE,0);
+        if (type == 0 || type == 2){
+            PersonalNotepadBean bean = (PersonalNotepadBean) getIntent().getSerializableExtra("bean");
+            if (bean !=null){
+                viewModel.getBeanLiveData().setValue(bean);
+            }
         }
     }
 
@@ -49,7 +70,99 @@
         GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
         binding.rvImage.setLayoutManager(gridLayoutManager);
         binding.rvImage.setNestedScrollingEnabled(false);
-        setIsEdited(false);
+        View footerView = View.inflate(this,R.layout.item_image_footer,null);
+        binding.rvImage.addFooterView(footerView);
+        binding.rvImage.requestLayout();
+        footerView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                UserManager.getInstance().selectImage(getSelfActivity(), 9, new OnResultCallbackListener<LocalMedia>() {
+                    @Override
+                    public void onResult(ArrayList<LocalMedia> result) {
+                        if (result.size() == 0) return;
+                        for (LocalMedia media : result) {
+                            String path = media.getRealPath();
+                            File file = new File(path);
+                            if (file.exists()) {
+                                viewModel.uploadFile(file);
+                            }
+                        }
+                    }
+
+                    @Override
+                    public void onCancel() {
+
+                    }
+                });
+            }
+        });
+        adapter.setOnChildClickListener(R.id.iv_delete, new BaseRVAdapter.OnChildClickListener() {
+            @Override
+            public void onChildClick(RecyclerView recyclerView, View childView, int position) {
+                PersonalNotepadBean bean = viewModel.getBeanLiveData().getValue();
+                if (bean !=null){
+                    List<String> urlList = Utils.splitString2List(bean.getUrl(),",");
+                    urlList.remove(adapter.getItem(position));
+                    bean.setUrl(Utils.appendList2String(urlList,","));
+                }
+                adapter.removeItem(position);
+                viewModel.getBeanLiveData().setValue(bean);
+            }
+        });
+        binding.rvImage.setAdapter(adapter);
+
+        if (type == 1){
+            viewModel.getTypeLiveData().postValue(true);
+            binding.ivOperate.setOnClickListener(v -> {
+                viewModel.add();
+            });
+        }else if (type == 0){
+            popupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate_delete,null));
+            popupWindow.getContentView().findViewById(R.id.tv_modify).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    viewModel.getTypeLiveData().postValue(true);
+                    popupWindow.dismiss();
+                }
+            });
+            popupWindow.getContentView().findViewById(R.id.tv_delete).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    popupWindow.dismiss();
+                    new UIDialog.Builder(getSelfActivity())
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎椤圭洰鍚�")
+                            .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                            .setConfirm("纭畾")
+                            .setCancel("鍙栨秷")
+                            .setListener(new UIDialog.OnListener() {
+                                @Override
+                                public void onConfirm(BaseDialog dialog) {
+                                    viewModel.delete();
+                                }
+                            })
+                            .show();
+                }
+            });
+            viewModel.getTypeLiveData().postValue(false);
+        }else if (type == 2){
+            viewModel.getTypeLiveData().postValue(true);
+
+        }
+        binding.etTime.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                DatePicker picker = getDatePicker();
+                picker.setTitle("閫夋嫨鏃堕棿");
+                picker.setOnDatePickedListener(new OnDatePickedListener() {
+                    @Override
+                    public void onDatePicked(int year, int month, int day) {
+                        String date = String.format(Locale.CHINA, "%d-%02d-%02d", year, month, day);
+                        binding.etTime.setText(date);
+                    }
+                });
+                picker.show();
+            }
+        });
     }
 
     @Override
@@ -61,40 +174,48 @@
     public void initLiveDataObserve() {
         viewModel.getBeanLiveData().observe(this,bean -> {
             if (bean!=null){
-                String url = bean.getUrl();
-                if (url == null||url.isEmpty()){
-                    return;
-                }
-                List<String> list;
-                if (url.contains(",")){
-                    String[] split = url.split(",");
-                    list = new ArrayList<>(Arrays.asList(split));
+                adapter.setData(Utils.splitString2List(bean.getUrl(),","));
+            }
+        });
+        viewModel.getTypeLiveData().observe(this,operateType -> {
+            if (operateType){
+                if (type == 1) {
+                    binding.ivOperate.setOnClickListener(v -> {
+                        viewModel.add();
+                    });
                 }else {
-                    list = new ArrayList<>();
-                    list.add(url);
+                    binding.ivOperate.setOnClickListener(v -> {
+                        viewModel.update();
+                    });
                 }
-                adapter.setData(list);
+                binding.rvImage.getFooterViews().forEach(new Consumer<View>() {
+                    @Override
+                    public void accept(View view) {
+                        view.setVisibility(View.VISIBLE);
+                    }
+                });
+                setIsEdited(true);
+            }else {
+                binding.ivOperate.setOnClickListener(v -> {
+                    popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+                });
+                binding.rvImage.getFooterViews().forEach(new Consumer<View>() {
+                    @Override
+                    public void accept(View view) {
+                        view.setVisibility(View.GONE);
+                    }
+                });
+                setIsEdited(false);
             }
         });
     }
 
     public void setIsEdited(boolean isEdited){
-        disableAllEditText(getContentView(),isEdited);
         adapter.setIsEdited(isEdited);
     }
-    public void disableAllEditText(ViewGroup viewGroup, boolean isEdited) {
-        for (int i = 0; i < viewGroup.getChildCount(); i++) {
-            View child = viewGroup.getChildAt(i);
-            if (child instanceof ViewGroup) {
-                disableAllEditText((ViewGroup) child,isEdited);
-            } else if (child instanceof EditText) {
-                child.setEnabled(isEdited);
-                child.setFocusable(isEdited);
-                child.setFocusableInTouchMode(isEdited);
-                if (!isEdited){
-                    child.clearFocus();
-                }
-            }
-        }
+
+    @Override
+    public void onLeftClick(TitleBar titleBar) {
+        finish();
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadDetailActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadDetailActivityViewModel.java
index 6503fc2..c51c55e 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadDetailActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PersonalNotepadDetailActivityViewModel.java
@@ -1,14 +1,28 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.application.zhangshi_app_android.bean.PersonalNotepadBean;
-import com.application.zhangshi_app_android.bean.PrivacyBean;
+import com.application.zhangshi_app_android.bean.UploadFileResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.io.File;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
 
 /**
  * @author Ljj
@@ -18,6 +32,7 @@
 public class PersonalNotepadDetailActivityViewModel extends BaseViewModel<DataRepository> {
 
     private MutableLiveData<PersonalNotepadBean> beanLiveData;
+    private MutableLiveData<Boolean> typeLiveData;//true 缂栬緫鐘舵�� false 灞曠ず鐘舵��
 
     public PersonalNotepadDetailActivityViewModel(@NonNull Application application) {
         super(application);
@@ -28,15 +43,180 @@
         return DataRepository.getInstance();
     }
 
+    /**
+     * 娣诲姞
+     */
+    public void add() {
+        System.out.println(beanLiveData.getValue());
+        model.addPersonalNotepad(beanLiveData.getValue())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
 
-    public MutableLiveData<PersonalNotepadBean> getBeanLiveData() {
-        if (beanLiveData == null) {
-            beanLiveData = new MutableLiveData<>();
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("娣诲姞鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎
+     */
+    public void delete() {
+        if (beanLiveData.getValue() == null){
+            return;
         }
-        return beanLiveData;
+        model.deletePersonalNotepad(String.valueOf(beanLiveData.getValue().getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 淇敼
+     */
+    public void update() {
+        model.updatePersonalNotepad(beanLiveData.getValue())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("淇敼鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    /**
+     * 涓婁紶鐢靛瓙鏂囦欢
+     */
+    public void uploadFile(File file) {
+        RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
+        MultipartBody.Part body = MultipartBody.Part.createFormData("uploadFile", file.getName(), requestBody);
+        model.uploadFile(body)
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<UploadFileResponseBean>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<UploadFileResponseBean> resultData) {
+                        if (resultData.getCode() == CODE_SUCCESS){
+                            PersonalNotepadBean bean = beanLiveData.getValue();
+                            String url;
+                            if (bean != null){
+                                url = bean.getUrl();
+                                if (url == null){
+                                    url = resultData.getData().getUrl();
+                                }else {
+                                    url = url + "," + resultData.getData().getUrl();
+                                }
+                                bean.setUrl(url);
+                                beanLiveData.postValue(bean);
+                            }
+                        }else {
+                            messageLiveData.postValue(resultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    public MutableLiveData<Boolean> getTypeLiveData() {
+        if (typeLiveData == null){
+            typeLiveData = new MutableLiveData<>();
+        }
+        return typeLiveData;
+    }
+
+    public void setTypeLiveData(MutableLiveData<Boolean> typeLiveData) {
+        this.typeLiveData = typeLiveData;
     }
 
     public void setBeanLiveData(MutableLiveData<PersonalNotepadBean> beanLiveData) {
         this.beanLiveData = beanLiveData;
     }
+
+    public MutableLiveData<PersonalNotepadBean> getBeanLiveData() {
+        if (beanLiveData == null){
+            beanLiveData = new MutableLiveData<>();
+        }
+        if (beanLiveData.getValue() == null){
+            beanLiveData.setValue(new PersonalNotepadBean());
+        }
+        return beanLiveData;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetActivity.java
index d077d9b..da837ad 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetActivity.java
@@ -1,29 +1,36 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
 import android.view.View;
 import android.widget.PopupWindow;
 
-import androidx.recyclerview.widget.GridLayoutManager;
-
-import com.android.app_base.manager.AppManager;
 import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
-import com.application.zhangshi_app_android.adapter.PetImageRvAdapter;
+import com.application.zhangshi_app_android.adapter.PetRvAdapter;
+import com.application.zhangshi_app_android.adapter.PropertyRvAdapter;
 import com.application.zhangshi_app_android.databinding.ActivityPetBinding;
+import com.application.zhangshi_app_android.databinding.ActivityPropertyBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
-import com.application.zhangshi_app_android.ui.dialog.PetOwnerInfoDialog;
-import com.hjq.bar.TitleBar;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
 
 /**
  * @author Ljj
- * @date 2023.04.17. 18:21
+ * @date 2023.05.22. 22:46
  * @desc
  */
-public class PetActivity extends DLBaseActivity<ActivityPetBinding,PetActivityViewModel> {
+public class PetActivity extends DLBaseActivity<ActivityPetBinding, PetActivityViewModel> {
 
-    private PetImageRvAdapter adapter;
-    private PopupWindow popupWindow;
+    private PetRvAdapter adapter;
+    private PopupWindow mOperatePopupWindow;
+    private boolean isSearchLayoutVisible;
+
     @Override
     public int getLayoutId() {
         return R.layout.activity_pet;
@@ -41,55 +48,206 @@
 
     @Override
     public void initView() {
-
-        adapter = new PetImageRvAdapter(this);
-        binding.recyclerView.setLayoutManager(new GridLayoutManager(this,3));
-        binding.recyclerView.setAdapter(adapter);
-        adapter.addItem("");
-        adapter.addItem("");
-        adapter.addItem("");
-        adapter.addItem("");
-
-        View view = View.inflate(this,R.layout.pop_operate_pet,null);
-        popupWindow = initPopUpWindow(view);
-        setOnClickListener(
-                view.findViewById(R.id.tv_owner_info),
-                view.findViewById(R.id.tv_another),
-                view.findViewById(R.id.tv_pet_memo)
-        );
-
-
-        binding.ivOperate.setOnClickListener(v -> {
-            popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+        //涓嬫媺鍒锋柊甯冨眬
+        binding.refreshLayout.setEnableRefresh(false);
+        binding.refreshLayout.setEnableLoadMore(true);
+        binding.refreshLayout.setEnableOverScrollDrag(true);
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+            viewModel.getMorePets();
         });
+        //recyclerView閫傞厤鍣�
+        adapter = new PetRvAdapter(this);
+        LinearItemDecoration itemDecoration = new LinearItemDecoration();
+        itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
+        itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
+        binding.recyclerView.addItemDecoration(itemDecoration);
+        binding.recyclerView.setAdapter(adapter);
+        //鍙充笂瑙掓搷浣滃脊绐�
+        mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
+        mOperatePopupWindow.getContentView().findViewById(R.id.layout_add).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.layout_select).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old).setOnClickListener(v -> {
+            viewModel.sortDataList(0);
+            mOperatePopupWindow.dismiss();
+        });
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new).setOnClickListener(v -> {
+            viewModel.sortDataList(1);
+            mOperatePopupWindow.dismiss();
+        });
+        //鐐瑰嚮寮瑰嚭鎿嶄綔寮圭獥
+        binding.ivOperate.setOnClickListener(v -> {
+            mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+        });
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
+        });
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.pullCollapse(binding.containerSearchParameter,0,targetHeight);
+                isSearchLayoutVisible = true;
+            }
+        });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getPets();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+        binding.etStartTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
 
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etEndTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etEndTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etStartTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etStartTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨寮�濮嬫椂闂�");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    //浠yyy-MM-dd鐨勬牸寮忔樉绀猴紝鏈堟棩灏忎簬10鏃跺墠闈㈣ˉ0
+                    binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etEndTime.getText().toString().isEmpty()){
+                        binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.etEndTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨缁撴潫鏃堕棿");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etStartTime.getText().toString().isEmpty()){
+                        binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.ivTimeClear.setOnClickListener(v -> {
+            binding.etStartTime.setText("");
+            binding.etEndTime.setText("");
+        });
+    }
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
     }
 
     @Override
     public void initData() {
-//        viewModel.getPets();
+        viewModel.getPets();
     }
 
     @Override
     public void initLiveDataObserve() {
-//        viewModel.getDataListLiveData().observe(this, homeDevices -> {
-//            adapter.setData(homeDevices);
-//        });
+        viewModel.getDataListLiveData().observe(this, dataList -> {
+            adapter.setData(dataList);
+        });
+        viewModel.getMoreListLiveData().observe(this, list -> {
+            adapter.addData(list);
+        });
+    }
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
     }
 
     @Override
-    public void onClick(View v) {
-        super.onClick(v);
-        int id = v.getId();
-        if (id == R.id.tv_owner_info){
-            popupWindow.dismiss();
-            PetOwnerInfoDialog.Builder builder = new PetOwnerInfoDialog.Builder(this);
-            builder.show();
-        }else if (id == R.id.tv_another){
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
 
-        }else if (id == R.id.tv_pet_memo){
-            popupWindow.dismiss();
-            AppManager.getAppManager().startActivity(PetMemoActivity.class);
-        }
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetActivityViewModel.java
index 19ebec6..039020d 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetActivityViewModel.java
@@ -1,18 +1,45 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
+import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.Utils;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
+import com.application.zhangshi_app_android.bean.PetBean;
+import com.application.zhangshi_app_android.bean.PetMemoBean;
+import com.application.zhangshi_app_android.bean.PetRequestBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
- * @date 2023.04.17. 18:23
+ * @date 2023.05.22. 22:46
  * @desc
  */
 public class PetActivityViewModel extends BaseViewModel<DataRepository> {
+
+    private MutableLiveData<List<PetBean>> dataListLiveData;
+
+    private MutableLiveData<List<PetBean>> moreListLiveData;//鍔犺浇鏇村鏁版嵁
+
+    private MutableLiveData<PetRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
+
     public PetActivityViewModel(@NonNull Application application) {
         super(application);
     }
@@ -21,4 +48,182 @@
     protected DataRepository initModel() {
         return DataRepository.getInstance();
     }
+
+    /**
+     * 鑾峰彇鏁版嵁
+     */
+    public void getPets() {
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new PetRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        model.getPets(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<PageResponseBean<PetBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<PetBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                changeStateView(StateViewEnum.DATA_NULL);
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                dataListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void getMorePets(){
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new PetRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getPets(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<PageResponseBean<PetBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<PetBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    public MutableLiveData<List<PetBean>> getDataListLiveData() {
+        if (dataListLiveData == null){
+            dataListLiveData = new MutableLiveData<>();
+        }
+        return dataListLiveData;
+    }
+    public void setDataListLiveData(MutableLiveData<List<PetBean>> dataListLiveData) {
+        this.dataListLiveData = dataListLiveData;
+    }
+    public MutableLiveData<PetRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null){
+            requestBeanLiveData = new MutableLiveData<>();
+        }
+        if (requestBeanLiveData.getValue() == null){
+            requestBeanLiveData.setValue(new PetRequestBean());
+        }
+        return requestBeanLiveData;
+    }
+
+    public void setRequestBeanLiveData(MutableLiveData<PetRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
+    }
+
+
+
+    public MutableLiveData<List<PetBean>> getMoreListLiveData() {
+        if (moreListLiveData == null){
+            moreListLiveData = new MutableLiveData<>();
+        }
+        return moreListLiveData;
+    }
+
+    public void setMoreListLiveData(MutableLiveData<List<PetBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
+    }
+
+    /**
+     * 鎺掑簭
+     * @param type 0 浠庢柊鍒版棫 1 浠庢棫鍒版柊
+     */
+    public void sortDataList(int type){
+        List<PetBean> list = dataListLiveData.getValue();
+        if (list == null || list.isEmpty()){
+            return;
+        }
+        if (type == 0) {
+            // 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getBirth();
+                String happenTime2 = o2.getBirth();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return 1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return -1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date2.compareTo(date1);
+                    }
+                    return 0;
+                }
+            });
+        } else if (type == 1) {
+            // 浠庢棫鍒版柊锛宯ull鎺掓渶鍓�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getBirth();
+                String happenTime2 = o2.getBirth();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return -1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return 1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date1.compareTo(date2);
+                    }
+                    return 0;
+                }
+            });
+        }
+        dataListLiveData.setValue(list);
+    }
+
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetDetailActivity.java
new file mode 100644
index 0000000..354b1c7
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetDetailActivity.java
@@ -0,0 +1,102 @@
+package com.application.zhangshi_app_android.ui.function;
+
+import android.content.Intent;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import androidx.recyclerview.widget.GridLayoutManager;
+
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.widget.GridSpaceItemDecoration;
+import com.application.zhangshi_app_android.BR;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.adapter.PetImageRvAdapter;
+import com.application.zhangshi_app_android.bean.FamilyAssetsBean;
+import com.application.zhangshi_app_android.bean.PetBean;
+import com.application.zhangshi_app_android.databinding.ActivityPetDetailBinding;
+import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.application.zhangshi_app_android.ui.dialog.PetOwnerInfoDialog;
+
+import java.util.List;
+
+/**
+ * @author Ljj
+ * @date 2023.04.17. 18:21
+ * @desc
+ */
+public class PetDetailActivity extends DLBaseActivity<ActivityPetDetailBinding, PetDetailActivityViewModel> {
+
+    private PetImageRvAdapter adapter;
+    private PopupWindow popupWindow;
+
+    PetOwnerInfoDialog.Builder petOwnerInfoDialogBuilder;
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_pet_detail;
+    }
+
+    @Override
+    public int getVariableId() {
+        return BR.viewModel;
+    }
+
+    @Override
+    public void initParam() {
+        if (getIntent().hasExtra("bean")){
+            viewModel.getBeanLiveData().setValue((PetBean) getIntent().getSerializableExtra("bean"));
+        }
+    }
+
+    @Override
+    public void initView() {
+        adapter = new PetImageRvAdapter(this);
+        GridSpaceItemDecoration decoration = new GridSpaceItemDecoration(3,ScreenSizeUtils.dip2px(this,10),ScreenSizeUtils.dip2px(this,20));
+        binding.recyclerView.addItemDecoration(decoration);
+        binding.recyclerView.setLayoutManager(new GridLayoutManager(this,3));
+        binding.recyclerView.setAdapter(adapter);
+
+        View view = View.inflate(this,R.layout.pop_operate_pet,null);
+        popupWindow = initPopUpWindow(view);
+        setOnClickListener(
+                view.findViewById(R.id.tv_owner_info),
+                view.findViewById(R.id.tv_pet_memo)
+        );
+
+        binding.ivOperate.setOnClickListener(v -> {
+            popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+        });
+
+        petOwnerInfoDialogBuilder = new PetOwnerInfoDialog.Builder(this);
+    }
+
+    @Override
+    public void initData() {
+    }
+
+    @Override
+    public void initLiveDataObserve() {
+        viewModel.getBeanLiveData().observe(this, bean -> {
+            if (bean != null){
+                List<String> list = Utils.splitString2List(bean.getHeadPicture(),",");
+                list.addAll(Utils.splitString2List(bean.getFullPicture(),","));
+                adapter.setData(list);
+                petOwnerInfoDialogBuilder.setBean(bean);
+            }
+        });
+    }
+
+    @Override
+    public void onClick(View v) {
+        super.onClick(v);
+        int id = v.getId();
+        if (id == R.id.tv_owner_info){
+            popupWindow.dismiss();
+            petOwnerInfoDialogBuilder.show();
+        }else if (id == R.id.tv_pet_memo){
+            popupWindow.dismiss();
+            AppManager.getAppManager().startActivity(new Intent(this,PetMemoActivity.class).putExtra("bean",viewModel.getBeanLiveData().getValue()));
+        }
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetDetailActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetDetailActivityViewModel.java
new file mode 100644
index 0000000..e1be3bd
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetDetailActivityViewModel.java
@@ -0,0 +1,51 @@
+package com.application.zhangshi_app_android.ui.function;
+
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
+import android.app.Application;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.MutableLiveData;
+
+import com.android.app_base.base.StateViewEnum;
+import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.application.zhangshi_app_android.bean.HomeDevicesBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
+import com.application.zhangshi_app_android.bean.PetBean;
+import com.application.zhangshi_app_android.bean.PetOwnerBean;
+import com.application.zhangshi_app_android.data.DataRepository;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+
+/**
+ * @author Ljj
+ * @date 2023.04.17. 18:23
+ * @desc
+ */
+public class PetDetailActivityViewModel extends BaseViewModel<DataRepository> {
+    private MutableLiveData<PetBean> beanLiveData;
+
+    public PetDetailActivityViewModel(@NonNull Application application) {
+        super(application);
+    }
+
+    @Override
+    protected DataRepository initModel() {
+        return DataRepository.getInstance();
+    }
+
+
+    public MutableLiveData<PetBean> getBeanLiveData() {
+        if (beanLiveData == null){
+            beanLiveData = new MutableLiveData<>();
+        }
+        return beanLiveData;
+    }
+
+    public void setBeanLiveData(MutableLiveData<PetBean> beanLiveData) {
+        this.beanLiveData = beanLiveData;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetMemoActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetMemoActivity.java
index 2d6219f..215a6da 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetMemoActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetMemoActivity.java
@@ -1,13 +1,25 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.CleanStorageRvAdapter;
 import com.application.zhangshi_app_android.adapter.PetMemoRvAdapter;
+import com.application.zhangshi_app_android.bean.PetBean;
 import com.application.zhangshi_app_android.databinding.ActivityCleanStorageBinding;
 import com.application.zhangshi_app_android.databinding.ActivityPetMemoBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
 import com.hjq.bar.TitleBar;
 
 /**
@@ -18,7 +30,8 @@
 public class PetMemoActivity extends DLBaseActivity<ActivityPetMemoBinding, PetMemoActivityViewModel> {
 
     private PetMemoRvAdapter adapter;
-
+    private PopupWindow mOperatePopupWindow;
+    private boolean isSearchLayoutVisible;
     @Override
     public int getLayoutId() {
         return R.layout.activity_pet_memo;
@@ -31,11 +44,21 @@
 
     @Override
     public void initParam() {
-
+        if (getIntent().hasExtra("bean")){
+            viewModel.getBeanLiveData().setValue((PetBean) getIntent().getSerializableExtra("bean"));
+        }
     }
 
     @Override
     public void initView() {
+        //涓嬫媺鍒锋柊甯冨眬
+        binding.refreshLayout.setEnableRefresh(false);
+        binding.refreshLayout.setEnableLoadMore(true);
+        binding.refreshLayout.setEnableOverScrollDrag(true);
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+            viewModel.getMorePetMemo();
+        });
+        //recyclerView閫傞厤鍣�
         adapter = new PetMemoRvAdapter(this);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
@@ -43,6 +66,254 @@
         itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         binding.recyclerView.addItemDecoration(itemDecoration);
         binding.recyclerView.setAdapter(adapter);
+        //鍙充笂瑙掓搷浣滃脊绐�
+        mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
+        mOperatePopupWindow.getContentView().findViewById(R.id.layout_add).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.layout_select).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old).setOnClickListener(v -> {
+            viewModel.sortDataList(0);
+            mOperatePopupWindow.dismiss();
+        });
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new).setOnClickListener(v -> {
+            viewModel.sortDataList(1);
+            mOperatePopupWindow.dismiss();
+        });
+        //鐐瑰嚮寮瑰嚭鎿嶄綔寮圭獥
+        binding.ivOperate.setOnClickListener(v -> {
+            mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+        });
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
+        });
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.pullCollapse(binding.containerSearchParameter,0,targetHeight);
+                isSearchLayoutVisible = true;
+            }
+        });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getPetMemo();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+        binding.etStartTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etEndTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etEndTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etStartTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etStartTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨寮�濮嬫椂闂�");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    //浠yyy-MM-dd鐨勬牸寮忔樉绀猴紝鏈堟棩灏忎簬10鏃跺墠闈㈣ˉ0
+                    binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etEndTime.getText().toString().isEmpty()){
+                        binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.etEndTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨缁撴潫鏃堕棿");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etStartTime.getText().toString().isEmpty()){
+                        binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.ivTimeClear.setOnClickListener(v -> {
+            binding.etStartTime.setText("");
+            binding.etEndTime.setText("");
+        });
+
+        binding.etRemindStartTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivRemindTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etRemindEndTime.getText().toString())) {
+                        binding.ivRemindTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etRemindEndTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivRemindTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etRemindStartTime.getText().toString())) {
+                        binding.ivRemindTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etRemindStartTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨寮�濮嬫椂闂�");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    //浠yyy-MM-dd鐨勬牸寮忔樉绀猴紝鏈堟棩灏忎簬10鏃跺墠闈㈣ˉ0
+                    binding.etRemindStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etRemindEndTime.getText().toString().isEmpty()){
+                        binding.etRemindEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etRemindStartTime.getText().toString();
+                        String endTime = binding.etRemindEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etRemindStartTime.setText(endTime);
+                            binding.etRemindEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.etRemindEndTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨缁撴潫鏃堕棿");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    binding.etRemindEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etRemindStartTime.getText().toString().isEmpty()){
+                        binding.etRemindStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etRemindStartTime.getText().toString();
+                        String endTime = binding.etRemindEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etRemindStartTime.setText(endTime);
+                            binding.etRemindEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.ivRemindTimeClear.setOnClickListener(v -> {
+            binding.etRemindStartTime.setText("");
+            binding.etRemindEndTime.setText("");
+        });
+    }
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
     }
 
     @Override
@@ -55,6 +326,29 @@
         viewModel.getDataListLiveData().observe(this, dataList -> {
             adapter.setData(dataList);
         });
+        viewModel.getMoreListLiveData().observe(this, list -> {
+            adapter.addData(list);
+        });
+    }
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
+    }
+
+    @Override
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
     }
 
     @Override
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetMemoActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetMemoActivityViewModel.java
index b9f5c94..da4291f 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetMemoActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetMemoActivityViewModel.java
@@ -1,17 +1,34 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.bean.CleanStorageBean;
+import com.application.zhangshi_app_android.bean.HundredWishBean;
+import com.application.zhangshi_app_android.bean.HundredWishRequestBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
+import com.application.zhangshi_app_android.bean.PetBean;
 import com.application.zhangshi_app_android.bean.PetMemoBean;
+import com.application.zhangshi_app_android.bean.PetMemoRequestBean;
 import com.application.zhangshi_app_android.data.DataRepository;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
@@ -19,8 +36,10 @@
  * @desc
  */
 public class PetMemoActivityViewModel extends BaseViewModel<DataRepository> {
+    private MutableLiveData<PetBean> beanLiveData;//瀹犵墿bean
     private MutableLiveData<List<PetMemoBean>> dataListLiveData;
-
+    private MutableLiveData<List<PetMemoBean>> moreListLiveData;//鍔犺浇鏇村鏁版嵁
+    private MutableLiveData<PetMemoRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
     public PetMemoActivityViewModel(@NonNull Application application) {
         super(application);
     }
@@ -30,27 +49,199 @@
         return DataRepository.getInstance();
     }
 
+    /**
+     * 鑾峰彇鏁版嵁
+     */
+    public void getPetMemo() {
+        if (beanLiveData.getValue() == null){
+            return;
+        }
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new PetMemoRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        getRequestBeanLiveData().getValue().setPid(beanLiveData.getValue().getId());
+        model.getPetMemo(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<PageResponseBean<PetMemoBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<PetMemoBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                changeStateView(StateViewEnum.DATA_NULL);
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                dataListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void getMorePetMemo(){
+        if (beanLiveData.getValue() == null){
+            return;
+        }
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new PetMemoRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        getRequestBeanLiveData().getValue().setPid(beanLiveData.getValue().getId());
+        model.getPetMemo(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<PageResponseBean<PetMemoBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<PetMemoBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
     public MutableLiveData<List<PetMemoBean>> getDataListLiveData() {
-        if (dataListLiveData == null) {
+        if (dataListLiveData == null){
             dataListLiveData = new MutableLiveData<>();
         }
         return dataListLiveData;
     }
-
     public void setDataListLiveData(MutableLiveData<List<PetMemoBean>> dataListLiveData) {
         this.dataListLiveData = dataListLiveData;
     }
-
-    public void getPetMemo() {
-        List<PetMemoBean> beans =  new ArrayList<>();
-        for (int i = 0; i < 10; i++) {
-            PetMemoBean bean = new PetMemoBean();
-            bean.setName("鎵撻闃查拡");
-            bean.setTime("2022-01-01");
-            bean.setReminderTime("2021-01-01");
-            bean.setRemark("甯︿笂璇佹槑");
-            beans.add(bean);
+    public MutableLiveData<PetMemoRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null){
+            requestBeanLiveData = new MutableLiveData<>();
         }
-        dataListLiveData.setValue(beans);
+        if (requestBeanLiveData.getValue() == null){
+            requestBeanLiveData.setValue(new PetMemoRequestBean());
+        }
+        return requestBeanLiveData;
+    }
+
+    public void setRequestBeanLiveData(MutableLiveData<PetMemoRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
+    }
+
+
+
+    public MutableLiveData<List<PetMemoBean>> getMoreListLiveData() {
+        if (moreListLiveData == null){
+            moreListLiveData = new MutableLiveData<>();
+        }
+        return moreListLiveData;
+    }
+
+    public void setMoreListLiveData(MutableLiveData<List<PetMemoBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
+    }
+
+    public MutableLiveData<PetBean> getBeanLiveData() {
+        if (beanLiveData == null){
+            beanLiveData = new MutableLiveData<>();
+        }
+        return beanLiveData;
+    }
+
+    public void setBeanLiveData(MutableLiveData<PetBean> beanLiveData) {
+        this.beanLiveData = beanLiveData;
+    }
+
+    /**
+     * 鎺掑簭
+     * @param type 0 浠庢柊鍒版棫 1 浠庢棫鍒版柊
+     */
+    public void sortDataList(int type){
+        List<PetMemoBean> list = dataListLiveData.getValue();
+        if (list == null || list.isEmpty()){
+            return;
+        }
+        if (type == 0) {
+            // 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return 1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return -1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date2.compareTo(date1);
+                    }
+                    return 0;
+                }
+            });
+        } else if (type == 1) {
+            // 浠庢棫鍒版柊锛宯ull鎺掓渶鍓�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return -1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return 1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date1.compareTo(date2);
+                    }
+                    return 0;
+                }
+            });
+        }
+        dataListLiveData.setValue(list);
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetMemoDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetMemoDetailActivity.java
index dd427b2..f8fdce4 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetMemoDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PetMemoDetailActivity.java
@@ -6,6 +6,7 @@
 
 import androidx.recyclerview.widget.GridLayoutManager;
 
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.ImageRvAdapter;
@@ -52,6 +53,7 @@
         GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
         binding.rvImage.setLayoutManager(gridLayoutManager);
         binding.rvImage.setNestedScrollingEnabled(false);
+        binding.rvImage.setAdapter(adapter);
         setIsEdited(false);
     }
 
@@ -64,19 +66,7 @@
     public void initLiveDataObserve() {
         viewModel.getBeanLiveData().observe(this,bean -> {
             if (bean!=null){
-                String url = bean.getUrl();
-                if (url == null||url.isEmpty()){
-                    return;
-                }
-                List<String> list;
-                if (url.contains(",")){
-                    String[] split = url.split(",");
-                    list = new ArrayList<>(Arrays.asList(split));
-                }else {
-                    list = new ArrayList<>();
-                    list.add(url);
-                }
-                adapter.setData(list);
+                adapter.setData(Utils.splitString2List(bean.getUrl(),","));
             }
         });
     }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyActivity.java
index dc68dc6..703195d 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyActivity.java
@@ -1,11 +1,27 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.PrivacyRvAdapter;
 import com.application.zhangshi_app_android.databinding.ActivityPrivacyBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.OptionPicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
+import com.github.gzuliyujiang.wheelpicker.contract.OnOptionPickedListener;
+
+import java.util.Arrays;
+import java.util.List;
 
 /**
  * @author Ljj
@@ -15,6 +31,8 @@
 public class PrivacyActivity extends DLBaseActivity<ActivityPrivacyBinding,PrivacyActivityViewModel > {
 
     private PrivacyRvAdapter adapter;
+    private PopupWindow mOperatePopupWindow;
+    private boolean isSearchLayoutVisible;
 
     @Override
     public int getLayoutId() {
@@ -33,6 +51,14 @@
 
     @Override
     public void initView() {
+        //涓嬫媺鍒锋柊甯冨眬
+        binding.refreshLayout.setEnableRefresh(false);
+        binding.refreshLayout.setEnableLoadMore(true);
+        binding.refreshLayout.setEnableOverScrollDrag(true);
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+            viewModel.loadMorePrivacy();
+        });
+        //recyclerView閫傞厤鍣�
         adapter = new PrivacyRvAdapter(this);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
@@ -40,6 +66,186 @@
         itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         binding.recyclerView.addItemDecoration(itemDecoration);
         binding.recyclerView.setAdapter(adapter);
+        //鍙充笂瑙掓搷浣滃脊绐�
+        mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
+        mOperatePopupWindow.getContentView().findViewById(R.id.layout_add).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.layout_select).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old).setOnClickListener(v -> {
+            viewModel.sortDataList(0);
+            mOperatePopupWindow.dismiss();
+        });
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new).setOnClickListener(v -> {
+            viewModel.sortDataList(1);
+            mOperatePopupWindow.dismiss();
+        });
+        //鐐瑰嚮寮瑰嚭鎿嶄綔寮圭獥
+        binding.ivOperate.setOnClickListener(v -> {
+            mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+        });
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
+        });
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.pullCollapse(binding.containerSearchParameter,0,targetHeight);
+                isSearchLayoutVisible = true;
+            }
+        });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getPrivacy();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+        binding.etStartTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etEndTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etEndTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etStartTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etStartTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨寮�濮嬫椂闂�");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    //浠yyy-MM-dd鐨勬牸寮忔樉绀猴紝鏈堟棩灏忎簬10鏃跺墠闈㈣ˉ0
+                    binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etEndTime.getText().toString().isEmpty()){
+                        binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.etEndTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨缁撴潫鏃堕棿");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etStartTime.getText().toString().isEmpty()){
+                        binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.ivTimeClear.setOnClickListener(v -> {
+            binding.etStartTime.setText("");
+            binding.etEndTime.setText("");
+        });
+
+        binding.etIsFinger.setOnClickListener(v -> {
+            List<String> list = Arrays.asList("鍚�","鏄�");
+            OptionPicker picker = getOptionPicker(list);
+            picker.setTitle("鏄惁寮�鍚寚绾�");
+            picker.setOnOptionPickedListener(new OnOptionPickedListener() {
+                @Override
+                public void onOptionPicked(int position, Object item) {
+                    viewModel.getRequestBeanLiveData().getValue().setIsFinger(position);
+                    binding.etIsFinger.setText(item.toString());
+                }
+            });
+            picker.show();
+        });
+
+        binding.etIsPrivate.setOnClickListener(v -> {
+            List<String> list = Arrays.asList("鍏湁","绉佹湁");
+            OptionPicker picker = getOptionPicker(list);
+            picker.setTitle("绉佹湁/鍏湁");
+            picker.setOnOptionPickedListener(new OnOptionPickedListener() {
+                @Override
+                public void onOptionPicked(int position, Object item) {
+                    viewModel.getRequestBeanLiveData().getValue().setIsPrivate(position);
+                    binding.etIsPrivate.setText(item.toString());
+                }
+            });
+            picker.show();
+        });
+    }
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
     }
 
     @Override
@@ -52,5 +258,28 @@
         viewModel.getDataListLiveData().observe(this, dataList -> {
             adapter.setData(dataList);
         });
+        viewModel.getMoreListLiveData().observe(this, list -> {
+            adapter.addData(list);
+        });
+    }
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
+    }
+
+    @Override
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyActivityViewModel.java
index 34deb74..4209bff 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyActivityViewModel.java
@@ -1,16 +1,33 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.Utils;
+import com.application.zhangshi_app_android.bean.HonorCollectionBean;
+import com.application.zhangshi_app_android.bean.HonorCollectionRequestBean;
+import com.application.zhangshi_app_android.bean.HonorCollectionResponseBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
 import com.application.zhangshi_app_android.bean.PrivacyBean;
+import com.application.zhangshi_app_android.bean.PrivacyRequestBean;
 import com.application.zhangshi_app_android.data.DataRepository;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
@@ -19,6 +36,10 @@
  */
 public class PrivacyActivityViewModel extends BaseViewModel<DataRepository> {
     private MutableLiveData<List<PrivacyBean>> dataListLiveData;
+
+    private MutableLiveData<List<PrivacyBean>> moreListLiveData;//鍔犺浇鏇村鏁版嵁
+
+    private MutableLiveData<PrivacyRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
 
     public PrivacyActivityViewModel(@NonNull Application application) {
         super(application);
@@ -29,36 +50,180 @@
         return DataRepository.getInstance();
     }
 
+    /**
+     * 鑾峰彇鏁版嵁
+     */
+    public void getPrivacy() {
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new PrivacyRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        model.getPrivacy(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<PageResponseBean<PrivacyBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<PrivacyBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                changeStateView(StateViewEnum.DATA_NULL);
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                dataListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void loadMorePrivacy(){
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new PrivacyRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getPrivacy(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<PageResponseBean<PrivacyBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<PrivacyBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
     public MutableLiveData<List<PrivacyBean>> getDataListLiveData() {
-        if (dataListLiveData == null) {
+        if (dataListLiveData == null){
             dataListLiveData = new MutableLiveData<>();
         }
         return dataListLiveData;
     }
-
     public void setDataListLiveData(MutableLiveData<List<PrivacyBean>> dataListLiveData) {
         this.dataListLiveData = dataListLiveData;
     }
+    public MutableLiveData<PrivacyRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null){
+            requestBeanLiveData = new MutableLiveData<>();
+        }
+        if (requestBeanLiveData.getValue() == null){
+            requestBeanLiveData.setValue(new PrivacyRequestBean());
+        }
+        return requestBeanLiveData;
+    }
+
+    public void setRequestBeanLiveData(MutableLiveData<PrivacyRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
+    }
+
+
+
+    public MutableLiveData<List<PrivacyBean>> getMoreListLiveData() {
+        if (moreListLiveData == null){
+            moreListLiveData = new MutableLiveData<>();
+        }
+        return moreListLiveData;
+    }
+
+    public void setMoreListLiveData(MutableLiveData<List<PrivacyBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
+    }
 
     /**
-     *  鑾峰彇骞村害鍋ュ悍鎯呭喌
+     * 鎺掑簭
+     * @param type 0 浠庢柊鍒版棫 1 浠庢棫鍒版柊
      */
-    public void getPrivacy() {
-        List<PrivacyBean> beans =  new ArrayList<>();
-        for (int i = 0; i < 10; i++) {
-            PrivacyBean bean = new PrivacyBean();
-            bean.setType("QQ鍙�");
-            bean.setTime("2020-01-01");
-            bean.setAccount("12345678");
-            bean.setPassword("000000");
-            bean.setEffectiveTime("2030-01-01");
-            bean.setIsFace(0);
-            bean.setIsFingerprint(0);
-            bean.setIsPublic(1);
-            bean.setLocation("鈥斺�斺�斺��");
-            bean.setRemark("鎴戠殑QQ鍙�");
-            beans.add(bean);
+    public void sortDataList(int type){
+        List<PrivacyBean> list = dataListLiveData.getValue();
+        if (list == null || list.isEmpty()){
+            return;
         }
-        dataListLiveData.setValue(beans);
+        if (type == 0) {
+            // 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return 1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return -1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date2.compareTo(date1);
+                    }
+                    return 0;
+                }
+            });
+        } else if (type == 1) {
+            // 浠庢棫鍒版柊锛宯ull鎺掓渶鍓�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return -1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return 1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date1.compareTo(date2);
+                    }
+                    return 0;
+                }
+            });
+        }
+        dataListLiveData.setValue(list);
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyDetailActivity.java
index de24035..18f1bc6 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyDetailActivity.java
@@ -6,9 +6,13 @@
 
 import androidx.recyclerview.widget.GridLayoutManager;
 
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.ImageRvAdapter;
+import com.application.zhangshi_app_android.adapter.MemoRvAdapter;
 import com.application.zhangshi_app_android.bean.AnnualHealthStatusBean;
 import com.application.zhangshi_app_android.bean.PrivacyBean;
 import com.application.zhangshi_app_android.databinding.ActivityAnnualHealthStatusDetailBinding;
@@ -27,6 +31,7 @@
 public class PrivacyDetailActivity extends DLBaseActivity<ActivityPrivacyDetailBinding,PrivacyDetailActivityViewModel> {
 
     private ImageRvAdapter adapter;
+    private MemoRvAdapter memoRvAdapter;
 
     @Override
     public int getLayoutId() {
@@ -51,31 +56,33 @@
         GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
         binding.rvImage.setLayoutManager(gridLayoutManager);
         binding.rvImage.setNestedScrollingEnabled(false);
+        binding.rvImage.setAdapter(adapter);
+
+        memoRvAdapter = new MemoRvAdapter(this);
+        LinearItemDecoration itemDecoration = new LinearItemDecoration();
+        itemDecoration.setBottomSpace(ScreenSizeUtils.dip2px(this, 15));
+        binding.rvMemo.addItemDecoration(itemDecoration);
+        binding.rvMemo.setAdapter(memoRvAdapter);
+
         setIsEdited(false);
     }
 
     @Override
     public void initData() {
-
+        viewModel.getMemos();
     }
 
     @Override
     public void initLiveDataObserve() {
         viewModel.getBeanLiveData().observe(this,bean -> {
             if (bean!=null){
-                String url = bean.getUrl();
-                if (url == null||url.isEmpty()){
-                    return;
-                }
-                List<String> list;
-                if (url.contains(",")){
-                    String[] split = url.split(",");
-                    list = new ArrayList<>(Arrays.asList(split));
-                }else {
-                    list = new ArrayList<>();
-                    list.add(url);
-                }
-                adapter.setData(list);
+                adapter.setData(Utils.splitString2List(bean.getUrl(),","));
+            }
+        });
+
+        viewModel.getMemoListLiveData().observe(this, memoBeans -> {
+            if (memoBeans!=null){
+                memoRvAdapter.setData(memoBeans);
             }
         });
     }
@@ -83,6 +90,7 @@
     public void setIsEdited(boolean isEdited){
         disableAllEditText(getContentView(),isEdited);
         adapter.setIsEdited(isEdited);
+        memoRvAdapter.setEdited(isEdited);
     }
     public void disableAllEditText(ViewGroup viewGroup, boolean isEdited) {
         for (int i = 0; i < viewGroup.getChildCount(); i++) {
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyDetailActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyDetailActivityViewModel.java
index 352bd7d..aa72e47 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyDetailActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PrivacyDetailActivityViewModel.java
@@ -1,14 +1,25 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.BaseConfig;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
 import com.application.zhangshi_app_android.bean.AnnualHealthStatusBean;
+import com.application.zhangshi_app_android.bean.MemoBean;
 import com.application.zhangshi_app_android.bean.PrivacyBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.util.List;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
 
 /**
  * @author Ljj
@@ -18,6 +29,7 @@
 public class PrivacyDetailActivityViewModel  extends BaseViewModel<DataRepository> {
 
     private MutableLiveData<PrivacyBean> beanLiveData;
+    private MutableLiveData<List<MemoBean>> memoListLiveData;
 
     public PrivacyDetailActivityViewModel(@NonNull Application application) {
         super(application);
@@ -28,7 +40,41 @@
         return DataRepository.getInstance();
     }
 
+    /**
+     * 鑾峰彇澶囧繕褰�
+     */
+    public void getMemos() {
+        if (beanLiveData.getValue() == null) {
+            return;
+        }
+        model.getMemos(BaseConfig.MEMO_FID_PRIVACY+"", String.valueOf(beanLiveData.getValue().getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<List<MemoBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
 
+                    @Override
+                    public void onNext(ResultData<List<MemoBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            memoListLiveData.postValue(data.getData());
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
     public MutableLiveData<PrivacyBean> getBeanLiveData() {
         if (beanLiveData == null) {
             beanLiveData = new MutableLiveData<>();
@@ -39,4 +85,15 @@
     public void setBeanLiveData(MutableLiveData<PrivacyBean> beanLiveData) {
         this.beanLiveData = beanLiveData;
     }
+
+    public MutableLiveData<List<MemoBean>> getMemoListLiveData() {
+        if (memoListLiveData == null){
+            memoListLiveData = new MutableLiveData<>();
+        }
+        return memoListLiveData;
+    }
+
+    public void setMemoListLiveData(MutableLiveData<List<MemoBean>> memoListLiveData) {
+        this.memoListLiveData = memoListLiveData;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyActivity.java
index 799d3af..953df4c 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyActivity.java
@@ -1,11 +1,22 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.PropertyRvAdapter;
 import com.application.zhangshi_app_android.databinding.ActivityPropertyBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
 
 /**
  * @author Ljj
@@ -15,7 +26,8 @@
 public class PropertyActivity extends DLBaseActivity<ActivityPropertyBinding, PropertyActivityViewModel> {
 
     private PropertyRvAdapter adapter;
-
+    private PopupWindow mOperatePopupWindow;
+    private boolean isSearchLayoutVisible;
     @Override
     public int getLayoutId() {
         return R.layout.activity_property;
@@ -33,6 +45,14 @@
 
     @Override
     public void initView() {
+        //涓嬫媺鍒锋柊甯冨眬
+        binding.refreshLayout.setEnableRefresh(false);
+        binding.refreshLayout.setEnableLoadMore(true);
+        binding.refreshLayout.setEnableOverScrollDrag(true);
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+            viewModel.getMoreProperty();
+        });
+        //recyclerView閫傞厤鍣�
         adapter = new PropertyRvAdapter(this);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
@@ -40,7 +60,160 @@
         itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         binding.recyclerView.addItemDecoration(itemDecoration);
         binding.recyclerView.setAdapter(adapter);
+        //鍙充笂瑙掓搷浣滃脊绐�
+        mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
+        mOperatePopupWindow.getContentView().findViewById(R.id.layout_add).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.layout_select).setVisibility(View.GONE);
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old).setOnClickListener(v -> {
+            viewModel.sortDataList(0);
+            mOperatePopupWindow.dismiss();
+        });
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new).setOnClickListener(v -> {
+            viewModel.sortDataList(1);
+            mOperatePopupWindow.dismiss();
+        });
+        //鐐瑰嚮寮瑰嚭鎿嶄綔寮圭獥
+        binding.ivOperate.setOnClickListener(v -> {
+            mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+        });
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
+        });
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.pullCollapse(binding.containerSearchParameter,0,targetHeight);
+                isSearchLayoutVisible = true;
+            }
+        });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getProperty();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+        binding.etStartTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etEndTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etEndTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etStartTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etStartTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨寮�濮嬫椂闂�");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    //浠yyy-MM-dd鐨勬牸寮忔樉绀猴紝鏈堟棩灏忎簬10鏃跺墠闈㈣ˉ0
+                    binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etEndTime.getText().toString().isEmpty()){
+                        binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.etEndTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨缁撴潫鏃堕棿");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etStartTime.getText().toString().isEmpty()){
+                        binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.ivTimeClear.setOnClickListener(v -> {
+            binding.etStartTime.setText("");
+            binding.etEndTime.setText("");
+        });
     }
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
+    }
+
 
     @Override
     public void initData() {
@@ -52,5 +225,28 @@
         viewModel.getDataListLiveData().observe(this, dataList -> {
             adapter.setData(dataList);
         });
+        viewModel.getMoreListLiveData().observe(this, list -> {
+            adapter.addData(list);
+        });
+    }
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
+    }
+
+    @Override
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyActivityViewModel.java
index 91ce4a3..ffa6228 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyActivityViewModel.java
@@ -1,16 +1,32 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.Utils;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
+import com.application.zhangshi_app_android.bean.PrivacyBean;
+import com.application.zhangshi_app_android.bean.PrivacyRequestBean;
 import com.application.zhangshi_app_android.bean.PropertyBean;
+import com.application.zhangshi_app_android.bean.PropertyRequestBean;
 import com.application.zhangshi_app_android.data.DataRepository;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
@@ -19,6 +35,9 @@
  */
 public class PropertyActivityViewModel  extends BaseViewModel<DataRepository> {
     private MutableLiveData<List<PropertyBean>> dataListLiveData;
+    private MutableLiveData<List<PropertyBean>> moreListLiveData;//鍔犺浇鏇村鏁版嵁
+
+    private MutableLiveData<PropertyRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
 
     public PropertyActivityViewModel(@NonNull Application application) {
         super(application);
@@ -28,33 +47,180 @@
     protected DataRepository initModel() {
         return DataRepository.getInstance();
     }
+    /**
+     * 鑾峰彇鏁版嵁
+     */
+    public void getProperty() {
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new PropertyRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        model.getProperty(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<PageResponseBean<PropertyBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
 
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<PropertyBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                changeStateView(StateViewEnum.DATA_NULL);
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                dataListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void getMoreProperty(){
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new PropertyRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getProperty(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<PageResponseBean<PropertyBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<PropertyBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
     public MutableLiveData<List<PropertyBean>> getDataListLiveData() {
-        if (dataListLiveData == null) {
+        if (dataListLiveData == null){
             dataListLiveData = new MutableLiveData<>();
         }
         return dataListLiveData;
     }
-
     public void setDataListLiveData(MutableLiveData<List<PropertyBean>> dataListLiveData) {
         this.dataListLiveData = dataListLiveData;
     }
-
-    public void getProperty() {
-        List<PropertyBean> cleanStorageBeans =  new ArrayList<>();
-        for (int i = 0; i < 10; i++) {
-            PropertyBean bean = new PropertyBean();
-            bean.setType("鎴夸骇");
-            bean.setName("鎴夸骇");
-            bean.setPrice("1000");
-            bean.setCreateTime("2020-01-01");
-            bean.setTerm("2020-01-01");
-            bean.setStatus("鍙樻洿");
-            bean.setPropertyRight("浜ф潈");
-            bean.setLocation("浣嶇疆");
-            bean.setRemark("澶囨敞");
-            cleanStorageBeans.add(bean);
+    public MutableLiveData<PropertyRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null){
+            requestBeanLiveData = new MutableLiveData<>();
         }
-        dataListLiveData.setValue(cleanStorageBeans);
+        if (requestBeanLiveData.getValue() == null){
+            requestBeanLiveData.setValue(new PropertyRequestBean());
+        }
+        return requestBeanLiveData;
+    }
+
+    public void setRequestBeanLiveData(MutableLiveData<PropertyRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
+    }
+
+
+
+    public MutableLiveData<List<PropertyBean>> getMoreListLiveData() {
+        if (moreListLiveData == null){
+            moreListLiveData = new MutableLiveData<>();
+        }
+        return moreListLiveData;
+    }
+
+    public void setMoreListLiveData(MutableLiveData<List<PropertyBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
+    }
+
+    /**
+     * 鎺掑簭
+     * @param type 0 浠庢柊鍒版棫 1 浠庢棫鍒版柊
+     */
+    public void sortDataList(int type){
+        List<PropertyBean> list = dataListLiveData.getValue();
+        if (list == null || list.isEmpty()){
+            return;
+        }
+        if (type == 0) {
+            // 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return 1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return -1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date2.compareTo(date1);
+                    }
+                    return 0;
+                }
+            });
+        } else if (type == 1) {
+            // 浠庢棫鍒版柊锛宯ull鎺掓渶鍓�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return -1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return 1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date1.compareTo(date2);
+                    }
+                    return 0;
+                }
+            });
+        }
+        dataListLiveData.setValue(list);
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyDetailActivity.java
index 1e758b8..9773fcb 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyDetailActivity.java
@@ -6,9 +6,13 @@
 
 import androidx.recyclerview.widget.GridLayoutManager;
 
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.ImageRvAdapter;
+import com.application.zhangshi_app_android.adapter.MemoRvAdapter;
 import com.application.zhangshi_app_android.bean.CleanStorageBean;
 import com.application.zhangshi_app_android.bean.PropertyBean;
 import com.application.zhangshi_app_android.databinding.ActivityCleanStorageDetailBinding;
@@ -22,11 +26,12 @@
 /**
  * @author Ljj
  * @date 2023.04.21. 21:02
- * @desc
+ * @desc 涓汉璐骇 璇︽儏
  */
 public class PropertyDetailActivity extends DLBaseActivity<ActivityPropertyDetailBinding,PropertyDetailActivityViewModel> {
 
     private ImageRvAdapter adapter;
+    private MemoRvAdapter memoRvAdapter;
 
     @Override
     public int getLayoutId() {
@@ -51,31 +56,32 @@
         GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
         binding.rvImage.setLayoutManager(gridLayoutManager);
         binding.rvImage.setNestedScrollingEnabled(false);
+        binding.rvImage.setAdapter(adapter);
+
+        memoRvAdapter = new MemoRvAdapter(this);
+        LinearItemDecoration itemDecoration = new LinearItemDecoration();
+        itemDecoration.setBottomSpace(ScreenSizeUtils.dip2px(this, 15));
+        binding.rvMemo.addItemDecoration(itemDecoration);
+        binding.rvMemo.setAdapter(memoRvAdapter);
+
         setIsEdited(false);
     }
 
     @Override
     public void initData() {
-
+        viewModel.getMemos();
     }
 
     @Override
     public void initLiveDataObserve() {
         viewModel.getBeanLiveData().observe(this,bean -> {
             if (bean!=null){
-                String url = bean.getUrl();
-                if (url == null||url.isEmpty()){
-                    return;
-                }
-                List<String> list;
-                if (url.contains(",")){
-                    String[] split = url.split(",");
-                    list = new ArrayList<>(Arrays.asList(split));
-                }else {
-                    list = new ArrayList<>();
-                    list.add(url);
-                }
-                adapter.setData(list);
+                adapter.setData(Utils.splitString2List(bean.getUrl(),","));
+            }
+        });
+        viewModel.getMemoListLiveData().observe(this, memoBeans -> {
+            if (memoBeans!=null){
+                memoRvAdapter.setData(memoBeans);
             }
         });
     }
@@ -83,6 +89,7 @@
     public void setIsEdited(boolean isEdited){
         disableAllEditText(getContentView(),isEdited);
         adapter.setIsEdited(isEdited);
+        memoRvAdapter.setEdited(isEdited);
     }
     public void disableAllEditText(ViewGroup viewGroup, boolean isEdited) {
         for (int i = 0; i < viewGroup.getChildCount(); i++) {
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyDetailActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyDetailActivityViewModel.java
index ae7e9d1..4d6ccff 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyDetailActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyDetailActivityViewModel.java
@@ -1,14 +1,25 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.BaseConfig;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
 import com.application.zhangshi_app_android.bean.CleanStorageBean;
+import com.application.zhangshi_app_android.bean.MemoBean;
 import com.application.zhangshi_app_android.bean.PropertyBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.util.List;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
 
 /**
  * @author Ljj
@@ -18,6 +29,7 @@
 public class PropertyDetailActivityViewModel extends BaseViewModel<DataRepository> {
 
     private MutableLiveData<PropertyBean> beanLiveData;
+    private MutableLiveData<List<MemoBean>> memoListLiveData;
 
     public PropertyDetailActivityViewModel(@NonNull Application application) {
         super(application);
@@ -28,7 +40,41 @@
         return DataRepository.getInstance();
     }
 
+    /**
+     * 鑾峰彇澶囧繕褰�
+     */
+    public void getMemos() {
+        if (beanLiveData.getValue() == null) {
+            return;
+        }
+        model.getMemos(BaseConfig.MEMO_FID_PROPERTY+"", String.valueOf(beanLiveData.getValue().getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<List<MemoBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
 
+                    @Override
+                    public void onNext(ResultData<List<MemoBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            memoListLiveData.postValue(data.getData());
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
     public MutableLiveData<PropertyBean> getBeanLiveData() {
         if (beanLiveData == null) {
             beanLiveData = new MutableLiveData<>();
@@ -39,4 +85,15 @@
     public void setBeanLiveData(MutableLiveData<PropertyBean> beanLiveData) {
         this.beanLiveData = beanLiveData;
     }
+
+    public MutableLiveData<List<MemoBean>> getMemoListLiveData() {
+        if (memoListLiveData == null){
+            memoListLiveData = new MutableLiveData<>();
+        }
+        return memoListLiveData;
+    }
+
+    public void setMemoListLiveData(MutableLiveData<List<MemoBean>> memoListLiveData) {
+        this.memoListLiveData = memoListLiveData;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismActivity.java
index 1c7f49d..d372ad0 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismActivity.java
@@ -1,21 +1,45 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import android.content.Intent;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import androidx.lifecycle.Observer;
+
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
-import com.application.zhangshi_app_android.adapter.PrivacyRvAdapter;
 import com.application.zhangshi_app_android.adapter.TourismRvAdapter;
+import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.databinding.ActivityTourismBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
+
+import java.util.Calendar;
+import java.util.List;
 
 /**
  * @author Ljj
  * @date 2023.04.28. 20:57
  * @desc
  */
-public class TourismActivity extends DLBaseActivity<ActivityTourismBinding,TourismActivityViewModel > {
+public class TourismActivity extends DLBaseActivity<ActivityTourismBinding,TourismActivityViewModel>{
 
     private TourismRvAdapter adapter;
+    private PopupWindow mOperatePopupWindow;
+    private boolean isSearchLayoutVisible;
 
     @Override
     public int getLayoutId() {
@@ -34,24 +58,285 @@
 
     @Override
     public void initView() {
-        adapter = new TourismRvAdapter(this);
+        //涓嬫媺鍒锋柊甯冨眬
+        binding.refreshLayout.setEnableRefresh(false);
+        binding.refreshLayout.setEnableLoadMore(true);
+        binding.refreshLayout.setEnableOverScrollDrag(true);
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+            viewModel.getMoreTourism();
+        });
+        //recyclerView閫傞厤鍣�
+        adapter = new TourismRvAdapter(this,viewModel);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
         itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
-        itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         binding.recyclerView.addItemDecoration(itemDecoration);
         binding.recyclerView.setAdapter(adapter);
+        //鍙充笂瑙掓搷浣滃脊绐�
+        mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
+        setOnClickListener(
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_add),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_select),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new),
+                binding.etEndTime,
+                binding.etStartTime,
+                binding.ivTimeClear
+        );
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
+        });
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.pullCollapse(binding.containerSearchParameter,0,targetHeight);
+                isSearchLayoutVisible = true;
+            }
+        });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getTourism();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+        //鐐瑰嚮娣诲姞鎸夐挳璺宠浆鍒板垱寤哄澶т簨璁伴〉闈�
+        binding.fabAdd.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(new Intent(getSelfActivity(), TourismDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
+            }
+        });
+        binding.etStartTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etEndTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etEndTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etStartTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
     }
 
     @Override
     public void initData() {
         viewModel.getTourism();
     }
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
+    }
 
     @Override
     public void initLiveDataObserve() {
-        viewModel.getDataListLiveData().observe(this, dataList -> {
-            adapter.setData(dataList);
+        viewModel.getDataListLiveData().observe(this, beans -> {
+                adapter.setData(beans);
+            }
+        );
+        viewModel.getCheckListLiveData().observe(this, (Observer<List<TourismBean>>) beans -> {
+            if (viewModel.getOperateTypeLiveData().getValue() == 0){
+                return;
+            }
+            if (beans.isEmpty()){
+                viewModel.getOperateTypeLiveData().setValue(1);
+            }else{
+                viewModel.getOperateTypeLiveData().setValue(2);
+            }
         });
+        viewModel.getMoreListLiveData().observe(this, beans -> {
+                adapter.addData(beans);
+            }
+        );
+        viewModel.getOperateTypeLiveData().observe(this, integer -> {
+            if (integer == 0){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_operate);
+                binding.ivOperate.setOnClickListener(v -> {
+                    mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+                });
+                adapter.setCheckable(false);
+            }else if (integer == 1){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_operate_finish);
+                binding.ivOperate.setOnClickListener(v -> {
+                    viewModel.getOperateTypeLiveData().postValue(0);
+                });
+                adapter.setCheckable(true);
+            }else if (integer == 2){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_delete_white);
+                binding.ivOperate.setOnClickListener(v -> {
+                    new UIDialog.Builder(this)
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎閫変腑鐨勯」鐩悧")
+                            .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                            .setConfirm("纭畾")
+                            .setCancel("鍙栨秷")
+                            .setListener(new UIDialog.OnListener() {
+                                @Override
+                                public void onConfirm(BaseDialog dialog) {
+                                    viewModel.deleteCheckList();
+                                }
+                            })
+                            .show();
+                });
+            }
+        });
+        viewModel.getFinishDeleteListLiveData().observe(this, beans -> {
+            for (TourismBean bean : beans) {
+                adapter.removeItem(bean);
+            }
+        });
+        //瑙傚療鏁版嵁鐨勫彉鍖栵紝鏈夊彉鍖栧寘鎷坊鍔犮�佷慨鏀广�佸垹闄ら兘浼氬彂閫佹秷鎭紝鎺ユ敹鍒版秷鎭悗閲嶆柊鑾峰彇鏁版嵁
+        RxBus.getInstance().toObservable(this, TourismBean.class)
+                .subscribe(bean -> {
+                    viewModel.getTourism();
+                });
+    }
+
+
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
+    }
+
+    @Override
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.tv_add){
+            AppManager.getAppManager().startActivity(new Intent(this, TourismDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1));
+        }else if (id == R.id.tv_select){
+            viewModel.getOperateTypeLiveData().postValue(1);
+            mOperatePopupWindow.dismiss();
+        } else if (id == R.id.tv_from_new_to_old) {
+            viewModel.changeOrder(true);
+            mOperatePopupWindow.dismiss();
+        } else if (id == R.id.tv_from_old_to_new) {
+            viewModel.changeOrder(false);
+            mOperatePopupWindow.dismiss();
+        }else if (id == R.id.et_end_time){
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨缁撴潫鏃堕棿");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etStartTime.getText().toString().isEmpty()){
+                        binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        }else if (id == R.id.et_start_time) {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨寮�濮嬫椂闂�");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    //浠yyy-MM-dd鐨勬牸寮忔樉绀猴紝鏈堟棩灏忎簬10鏃跺墠闈㈣ˉ0
+                    binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etEndTime.getText().toString().isEmpty()){
+                        binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        }else if (id == R.id.iv_time_clear){
+            binding.etStartTime.setText("");
+            binding.etEndTime.setText("");
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (mOperatePopupWindow != null){
+            mOperatePopupWindow.dismiss();
+        }
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismActivityViewModel.java
index 4d2a4c0..7e8e6d5 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismActivityViewModel.java
@@ -1,16 +1,31 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
+import androidx.lifecycle.LiveData;
 import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.Utils;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
 import com.application.zhangshi_app_android.bean.TourismBean;
+import com.application.zhangshi_app_android.bean.TourismRequestBean;
 import com.application.zhangshi_app_android.data.DataRepository;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
@@ -19,6 +34,12 @@
  */
 public class TourismActivityViewModel extends BaseViewModel<DataRepository> {
     private MutableLiveData<List<TourismBean>> dataListLiveData;
+    private MutableLiveData<List<TourismBean>> checkListLiveData;//閫変腑鐨勬暟鎹�
+    private MutableLiveData<Integer> operateTypeLiveData;//鍙充笂瑙掓搷浣滄 鎿嶄綔绫诲瀷 0 寮瑰嚭閫夋嫨鎿嶄綔 1.瀹屾垚 2.鍒犻櫎
+    private MutableLiveData<TourismRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
+    private MutableLiveData<List<TourismBean>> moreListLiveData;//涓嬫媺鍔犺浇鏁版嵁
+    private MutableLiveData<List<TourismBean>> finishDeleteListLiveData;//宸茬粡瀹屾垚鍒犻櫎鐨勬暟鎹紝鐢ㄤ簬adapter鐨剅emove鎿嶄綔
+
 
     public TourismActivityViewModel(@NonNull Application application) {
         super(application);
@@ -29,8 +50,203 @@
         return DataRepository.getInstance();
     }
 
+    /**
+     * 鑾峰彇鏁版嵁
+     */
+    public void getTourism() {
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new TourismRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        model.getTourism(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<PageResponseBean<TourismBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<TourismBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                changeStateView(StateViewEnum.DATA_NULL);
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                dataListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void getMoreTourism() {
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new TourismRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getTourism(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<PageResponseBean<TourismBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<TourismBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎
+     */
+    public void deleteCheckList() {
+        List<TourismBean> deleteList = getCheckListLiveData().getValue();
+        if (deleteList == null){
+            return;
+        }
+        StringBuffer sb = new StringBuffer();
+        deleteList.forEach(TourismBean -> sb.append(TourismBean.getId()).append(","));
+        sb.deleteCharAt(sb.length()-1);
+        model.deleteTourism(sb.toString())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                            finishDeleteListLiveData.postValue(checkListLiveData.getValue());
+                            getCheckListLiveData().postValue(new ArrayList<>());
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎鍗曚釜鏁版嵁
+     */
+    public void deleteItem(TourismBean bean) {
+        model.deleteTourism(String.valueOf(bean.getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            List<TourismBean> list = new ArrayList<>();
+                            list.add(bean);
+                            finishDeleteListLiveData.postValue(list);
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    public MutableLiveData<List<TourismBean>> getCheckListLiveData() {
+        if (checkListLiveData==null){
+            checkListLiveData = new MutableLiveData<>();
+            checkListLiveData.postValue(new ArrayList<>());
+        }
+        if (checkListLiveData.getValue() == null){
+            checkListLiveData.postValue(new ArrayList<>());
+        }
+        return checkListLiveData;
+    }
+
+    public void setCheckListLiveData(MutableLiveData<List<TourismBean>> checkListLiveData) {
+        this.checkListLiveData = checkListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<TourismRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null){
+            requestBeanLiveData = new MutableLiveData<>();
+        }
+        if (requestBeanLiveData.getValue() == null){
+            requestBeanLiveData.setValue(new TourismRequestBean());
+        }
+        return requestBeanLiveData;
+    }
+
+    public void setRequestBeanLiveData(MutableLiveData<TourismRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
+    }
+
     public MutableLiveData<List<TourismBean>> getDataListLiveData() {
-        if (dataListLiveData == null) {
+        if (dataListLiveData == null){
             dataListLiveData = new MutableLiveData<>();
         }
         return dataListLiveData;
@@ -40,17 +256,92 @@
         this.dataListLiveData = dataListLiveData;
     }
 
-    /**
-     *  鑾峰彇骞村害鍋ュ悍鎯呭喌
-     */
-    public void getTourism() {
-        List<TourismBean> beans =  new ArrayList<>();
-        for (int i = 0; i < 10; i++) {
-            TourismBean bean = new TourismBean();
-
-            beans.add(bean);
+    @NonNull
+    public MutableLiveData<List<TourismBean>> getMoreListLiveData() {
+        if (moreListLiveData == null){
+            moreListLiveData = new MutableLiveData<>();
         }
-        dataListLiveData.setValue(beans);
+        return moreListLiveData;
     }
 
+    public void setMoreListLiveData(MutableLiveData<List<TourismBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<Integer> getOperateTypeLiveData() {
+        if (operateTypeLiveData == null){
+            operateTypeLiveData = new MutableLiveData<>();
+            operateTypeLiveData.setValue(0);
+        }
+        return operateTypeLiveData;
+    }
+
+    public void setOperateTypeLiveData(MutableLiveData<Integer> operateTypeLiveData) {
+        this.operateTypeLiveData = operateTypeLiveData;
+    }
+
+    public LiveData<List<TourismBean>> getFinishDeleteListLiveData() {
+        if (finishDeleteListLiveData == null){
+            finishDeleteListLiveData = new MutableLiveData<>();
+        }
+        return finishDeleteListLiveData;
+    }
+
+    public void setFinishDeleteListLiveData(MutableLiveData<List<TourismBean>> finishDeleteListLiveData) {
+        this.finishDeleteListLiveData = finishDeleteListLiveData;
+    }
+
+    /**
+     * 鏀瑰彉鎺掑簭
+     * @param b true 闄嶅簭 false 鍗囧簭
+     */
+    public void changeOrder(boolean b) {
+        List<TourismBean> list = getDataListLiveData().getValue();
+        if (list == null || list.isEmpty()){
+            return;
+        }
+        if (b) {
+            // 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getStartTime();
+                String happenTime2 = o2.getStartTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return 1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return -1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date2.compareTo(date1);
+                    }
+                    return 0;
+                }
+            });
+        } else  {
+            // 浠庢棫鍒版柊锛宯ull鎺掓渶鍓�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getStartTime();
+                String happenTime2 = o2.getStartTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return -1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return 1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date1.compareTo(date2);
+                    }
+                    return 0;
+                }
+            });
+        }
+        getDataListLiveData().setValue(list);
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismDetailActivity.java
index 73e398f..f5f11a6 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismDetailActivity.java
@@ -1,26 +1,40 @@
 package com.application.zhangshi_app_android.ui.function;
 
+
+import android.text.TextUtils;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.EditText;
+import android.widget.PopupWindow;
 
-import androidx.recyclerview.widget.GridLayoutManager;
-
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
 import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.utils.rxbus.MessageEvent;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.DailyConsumeRecordRvAdapter;
-import com.application.zhangshi_app_android.adapter.ImageRvAdapter;
-import com.application.zhangshi_app_android.bean.PrivacyBean;
+import com.application.zhangshi_app_android.bean.ConsumeRecordBean;
+import com.application.zhangshi_app_android.bean.DailyConsumeRecordBean;
 import com.application.zhangshi_app_android.bean.TourismBean;
-import com.application.zhangshi_app_android.databinding.ActivityPrivacyDetailBinding;
 import com.application.zhangshi_app_android.databinding.ActivityTourismDetailBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.annotation.DateMode;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
-import java.util.Arrays;
+import java.util.Calendar;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
+
+import io.reactivex.functions.Consumer;
 
 /**
  * @author Ljj
@@ -28,7 +42,8 @@
  * @desc
  */
 public class TourismDetailActivity extends DLBaseActivity<ActivityTourismDetailBinding,TourismDetailActivityViewModel> {
-
+    private int type;// 0 鏌ョ湅鍙慨鏀瑰垹闄� 1 鏂板 2 鐩存帴淇敼
+    private PopupWindow popupWindow;
     private DailyConsumeRecordRvAdapter adapter;
 
     @Override
@@ -43,19 +58,135 @@
 
     @Override
     public void initParam() {
-        if (getIntent().hasExtra("bean")){
-            viewModel.getBeanLiveData().setValue((TourismBean) getIntent().getSerializableExtra("bean"));
+        type = getIntent().getIntExtra(BaseConfig.EXTRA_TYPE,0);
+        if (type == 0 || type == 2){
+            TourismBean bean = (TourismBean) getIntent().getSerializableExtra("bean");
+            if (bean != null){
+                viewModel.getBeanLiveData().setValue(bean);
+            }
         }
     }
 
     @Override
     public void initView() {
-        adapter = new DailyConsumeRecordRvAdapter(this);
+        adapter = new DailyConsumeRecordRvAdapter(this,viewModel);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace(ScreenSizeUtils.dip2px(this,20));
         binding.rvDailyConsumeRecord.addItemDecoration(itemDecoration);
         binding.rvDailyConsumeRecord.setNestedScrollingEnabled(false);
-        setIsEdited(false);
+        binding.rvDailyConsumeRecord.setAdapter(adapter);
+
+        if (type == 1){
+            viewModel.getTypeLiveData().setValue(true);
+            binding.titleBar.setTitle("鏂板鏃呮父璐圭敤璁板綍");
+        }else if (type == 0){
+            popupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate_delete,null));
+            popupWindow.getContentView().findViewById(R.id.tv_modify).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    viewModel.getTypeLiveData().setValue(true);
+                    popupWindow.dismiss();
+                }
+            });
+            popupWindow.getContentView().findViewById(R.id.tv_delete).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    popupWindow.dismiss();
+                    new UIDialog.Builder(getSelfActivity())
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎椤圭洰鍚�")
+                            .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                            .setConfirm("纭畾")
+                            .setCancel("鍙栨秷")
+                            .setListener(new UIDialog.OnListener() {
+                                @Override
+                                public void onConfirm(BaseDialog dialog) {
+                                    viewModel.delete();
+                                }
+                            })
+                            .show();
+                }
+            });
+            viewModel.getTypeLiveData().setValue(false);
+        }else if (type == 2){
+            viewModel.getTypeLiveData().setValue(true);
+        }
+
+        binding.etStartTime.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                DatePicker datePicker = getDatePicker();
+                datePicker.setTitle("閫夋嫨寮�濮嬫椂闂�");
+                datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                    @Override
+                    public void onDatePicked(int year, int month, int day) {
+                        //浠yyy-MM-dd鐨勬牸寮忔樉绀猴紝鏈堟棩灏忎簬10鏃跺墠闈㈣ˉ0
+                        binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (TextUtils.isEmpty(endTime)){
+                            binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                            endTime = binding.etEndTime.getText().toString();
+                        }else {
+                            //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                            if (Utils.compareDate(startTime,endTime) > 0){
+                                //浜ゆ崲
+                                binding.etStartTime.setText(endTime);
+                                binding.etEndTime.setText(startTime);
+                            }
+                        }
+                        binding.etStartTime.clearFocus();
+                    }
+                });
+                datePicker.show();
+            }
+        });
+        binding.etEndTime.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                DatePicker datePicker = getDatePicker();
+                datePicker.setTitle("閫夋嫨缁撴潫鏃堕棿");
+                datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                    @Override
+                    public void onDatePicked(int year, int month, int day) {
+                        binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month , day));
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (TextUtils.isEmpty(startTime)){
+                            binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                            startTime = binding.etStartTime.getText().toString();
+                        }else {
+                            //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                            if (Utils.compareDate(startTime,endTime) > 0){
+                                //浜ゆ崲
+                                binding.etStartTime.setText(endTime);
+                                binding.etEndTime.setText(startTime);
+                            }
+                        }
+                        binding.etEndTime.clearFocus();
+                    }
+                });
+                datePicker.show();
+
+            }
+        });
+        binding.ivAddDailyConsumeRecord.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                DatePicker datePicker = getDatePicker();
+                datePicker.setTitle("閫夋嫨娑堣垂鏃ユ湡");
+                datePicker.getWheelLayout().setDateMode(DateMode.MONTH_DAY);
+                datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                    @Override
+                    public void onDatePicked(int year, int month, int day) {
+                        DailyConsumeRecordBean dailyConsumeRecordBean = new DailyConsumeRecordBean();
+                        dailyConsumeRecordBean.setDate(month+"鏈�"+day+"鏃�");
+                        adapter.addItem(0,dailyConsumeRecordBean);
+                        adapter.setFold(true,0);
+                    }
+                });
+                datePicker.show();
+            }
+        });
     }
 
     @Override
@@ -67,27 +198,115 @@
     public void initLiveDataObserve() {
         viewModel.getBeanLiveData().observe(this,bean -> {
             if (bean!=null){
-                adapter.setData(bean.getDailyConsumeRecordBeans());
+                if (bean.getDetailList()==null){
+                    return;
+                }
+                //鏍规嵁鏃堕棿鍒嗙粍
+                Set<String> set = new HashSet<>();
+                for (ConsumeRecordBean consumeRecordBean : bean.getDetailList()) {
+                    set.add(consumeRecordBean.getHappenTime());
+                }
+                List<DailyConsumeRecordBean> list = new ArrayList<>();
+                for (String s : set) {
+                    DailyConsumeRecordBean dailyConsumeRecordBean = new DailyConsumeRecordBean();
+                    dailyConsumeRecordBean.setDate(s);
+                    List<ConsumeRecordBean> consumeRecordBeans = new ArrayList<>();
+                    for (ConsumeRecordBean consumeRecordBean : bean.getDetailList()) {
+                        if (s.equals(consumeRecordBean.getHappenTime())){
+                            consumeRecordBeans.add(consumeRecordBean);
+                            dailyConsumeRecordBean.setDailyMoney(consumeRecordBean.getDayCost());
+                        }
+                    }
+                    dailyConsumeRecordBean.setConsumeRecordBeans(consumeRecordBeans);
+                    list.add(dailyConsumeRecordBean);
+                }
+                adapter.setData(list);
             }
         });
-    }
-
-    public void setIsEdited(boolean isEdited){
-        disableAllEditText(getContentView(),isEdited);
-    }
-    public void disableAllEditText(ViewGroup viewGroup, boolean isEdited) {
-        for (int i = 0; i < viewGroup.getChildCount(); i++) {
-            View child = viewGroup.getChildAt(i);
-            if (child instanceof ViewGroup) {
-                disableAllEditText((ViewGroup) child,isEdited);
-            } else if (child instanceof EditText) {
-                child.setEnabled(isEdited);
-                child.setFocusable(isEdited);
-                child.setFocusableInTouchMode(isEdited);
-                if (!isEdited){
-                    child.clearFocus();
+        viewModel.getTypeLiveData().observe(this,operateType -> {
+            if (operateType){
+                if (type == 1) {
+                    binding.ivOperate.setOnClickListener(v -> {
+                        if (adapter.getData() != null){
+                            List<ConsumeRecordBean> list = new ArrayList<>();
+                            for (DailyConsumeRecordBean bean : adapter.getData()) {
+                                if (bean.getConsumeRecordBeans() != null){
+                                    for (ConsumeRecordBean consumeRecordBean : bean.getConsumeRecordBeans()) {
+                                        consumeRecordBean.setHappenTime(bean.getDate());
+                                    }
+                                    list.addAll(bean.getConsumeRecordBeans());
+                                }
+                            }
+                            if (viewModel.getBeanLiveData().getValue() == null){
+                                return;
+                            }
+                            viewModel.getBeanLiveData().getValue().setDetailList(list);
+                        }
+                        viewModel.add();
+                    });
+                }else {
+                    binding.ivOperate.setOnClickListener(v -> {
+                        if (adapter.getData() != null){
+                            List<ConsumeRecordBean> list = new ArrayList<>();
+                            for (DailyConsumeRecordBean bean : adapter.getData()) {
+                                if (bean.getConsumeRecordBeans() != null){
+                                    for (ConsumeRecordBean consumeRecordBean : bean.getConsumeRecordBeans()) {
+                                        consumeRecordBean.setHappenTime(bean.getDate());
+                                    }
+                                    list.addAll(bean.getConsumeRecordBeans());
+                                }
+                            }
+                            if (viewModel.getBeanLiveData().getValue() == null){
+                                return;
+                            }
+                            viewModel.getBeanLiveData().getValue().setDetailList(list);
+                        }
+                        viewModel.update();
+                    });
                 }
+            }else {
+                binding.ivOperate.setOnClickListener(v -> {
+                    popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+                });
             }
-        }
+        });
+        RxBus.getInstance().toObservable(this, MessageEvent.class)
+                .subscribe(messageEvent -> {
+                    if (messageEvent.getMessageEventCode() == MessageEvent.EVENT_TOURISM_CONSUME_CHANGE){
+                        if (adapter.getItemCount() == 0 || adapter.getData() == null){
+                            binding.etTotalCost.setText("0");
+                            binding.etTotalCost1.setText("0");
+                            binding.etTraffic.setText("0");
+                            binding.etStay.setText("0");
+                            binding.etShopping.setText("0");
+                            binding.etEntrance.setText("0");
+                            binding.etEat.setText("0");
+                            return;
+                        }
+                        Set<String> dateSet = new HashSet<>();
+                        double totalCost = 0,traffic = 0,stay = 0,shopping = 0,entrance = 0,eat = 0;
+                        for (DailyConsumeRecordBean dailyConsumeRecordBean : adapter.getData()) {
+                            dateSet.add(dailyConsumeRecordBean.getDate());
+                            totalCost += dailyConsumeRecordBean.getDailyMoney();
+                            if (dailyConsumeRecordBean.getConsumeRecordBeans() != null){
+                                for (ConsumeRecordBean consumeRecordBean : dailyConsumeRecordBean.getConsumeRecordBeans()){
+                                    traffic += consumeRecordBean.getTraffic();
+                                    stay += consumeRecordBean.getStay();
+                                    shopping += consumeRecordBean.getShopping();
+                                    entrance += consumeRecordBean.getEntrance();
+                                    eat += consumeRecordBean.getEat();
+                                }
+                            }
+                        }
+                        binding.etTotalCost.setText(BigDecimal.valueOf(totalCost).stripTrailingZeros().toPlainString());
+                        binding.etTotalCost1.setText(BigDecimal.valueOf(totalCost).stripTrailingZeros().toPlainString());
+                        binding.etTraffic.setText(BigDecimal.valueOf(traffic).stripTrailingZeros().toPlainString());
+                        binding.etStay.setText(BigDecimal.valueOf(stay).stripTrailingZeros().toPlainString());
+                        binding.etShopping.setText(BigDecimal.valueOf(shopping).stripTrailingZeros().toPlainString());
+                        binding.etEntrance.setText(BigDecimal.valueOf(entrance).stripTrailingZeros().toPlainString());
+                        binding.etEat.setText(BigDecimal.valueOf(eat).stripTrailingZeros().toPlainString());
+                        binding.etTotalDay.setText(dateSet.size()+"");
+                    }
+                });
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismDetailActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismDetailActivityViewModel.java
index d2d4af2..9fdf082 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismDetailActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismDetailActivityViewModel.java
@@ -1,14 +1,27 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
 import com.android.app_base.base.viewmodel.BaseViewModel;
-import com.application.zhangshi_app_android.bean.PrivacyBean;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.application.zhangshi_app_android.bean.TourismBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.io.File;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
 
 /**
  * @author Ljj
@@ -18,6 +31,8 @@
 public class TourismDetailActivityViewModel extends BaseViewModel<DataRepository> {
 
     private MutableLiveData<TourismBean> beanLiveData;
+    private MutableLiveData<Boolean> typeLiveData;//true 缂栬緫鐘舵�� false 灞曠ず鐘舵��
+
 
     public TourismDetailActivityViewModel(@NonNull Application application) {
         super(application);
@@ -29,14 +44,134 @@
     }
 
 
+    /**
+     * 澧炲姞
+     */
+    public void add() {
+        model.addTourism(beanLiveData.getValue())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("娣诲姞鎴愬姛");
+                        }else {
+                            if (stringResultData.getMsg() != null){
+                                messageLiveData.postValue(stringResultData.getMsg());
+                            }
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎
+     */
+    public void delete() {
+        model.deleteTourism(String.valueOf(beanLiveData.getValue().getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 缂栬緫
+     */
+    public void update() {
+        model.updateTourism(beanLiveData.getValue())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("淇敼鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
     public MutableLiveData<TourismBean> getBeanLiveData() {
-        if (beanLiveData == null) {
+        if (beanLiveData == null){
             beanLiveData = new MutableLiveData<>();
+        }
+        if (beanLiveData.getValue() == null){
+            beanLiveData.setValue(new TourismBean());
         }
         return beanLiveData;
     }
 
-    public void setBeanLiveData(MutableLiveData<TourismBean> beanLiveData) {
-        this.beanLiveData = beanLiveData;
+    public void setBeanLiveData(MutableLiveData<TourismBean> beanMutableLiveData) {
+        this.beanLiveData = beanMutableLiveData;
     }
+
+    public MutableLiveData<Boolean> getTypeLiveData() {
+        if (typeLiveData == null){
+            typeLiveData = new MutableLiveData<>();
+        }
+        return typeLiveData;
+    }
+
+    public void setTypeLiveData(MutableLiveData<Boolean> typeLiveData) {
+        this.typeLiveData = typeLiveData;
+    }
+
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceActivity.java
index c519845..e2aa893 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceActivity.java
@@ -1,13 +1,30 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import android.content.Intent;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
-import com.application.zhangshi_app_android.adapter.PropertyRvAdapter;
 import com.application.zhangshi_app_android.adapter.TourismExperienceRvAdapter;
 import com.application.zhangshi_app_android.bean.TourismExperienceBean;
 import com.application.zhangshi_app_android.databinding.ActivityTourismExperienceBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
+import com.hjq.bar.TitleBar;
 
 /**
  * @author Ljj
@@ -16,7 +33,9 @@
  */
 public class TourismExperienceActivity extends DLBaseActivity<ActivityTourismExperienceBinding,TourismExperienceActivityViewModel> {
     private TourismExperienceRvAdapter adapter;
-
+    private boolean isSearchLayoutVisible;
+    private PopupWindow mOperatePopupWindow;
+    private String fid;
     @Override
     public int getLayoutId() {
         return R.layout.activity_tourism_experience;
@@ -30,23 +49,170 @@
 
     @Override
     public void initParam() {
-
+        fid = getIntent().getStringExtra("id");
+        viewModel.getRequestBeanLiveData().getValue().setFid(fid);
     }
 
     @Override
     public void initView() {
-        adapter = new TourismExperienceRvAdapter(this);
+        //涓嬫媺鍒锋柊甯冨眬
+        binding.refreshLayout.setEnableRefresh(false);
+        binding.refreshLayout.setEnableLoadMore(true);
+        binding.refreshLayout.setEnableOverScrollDrag(true);
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+            viewModel.getMoreTourismExperience();
+        });
+        //recyclerView閫傞厤鍣�
+        adapter = new TourismExperienceRvAdapter(this,viewModel);
         LinearItemDecoration itemDecoration = new LinearItemDecoration();
         itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
         itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
         binding.recyclerView.addItemDecoration(itemDecoration);
         binding.recyclerView.setAdapter(adapter);
+        //鍙充笂瑙掓搷浣滃脊绐�
+        mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
+        setOnClickListener(
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_add),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_select),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old),
+                mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new)
+        );
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
+        });
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.dropExpand(binding.containerSearchParameter,0,targetHeight);
+                isSearchLayoutVisible = true;
+            }
+        });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getTourismExperience();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+        //鐐瑰嚮娣诲姞鎸夐挳璺宠浆鍒板垱寤哄澶т簨璁伴〉闈�
+        binding.fabAdd.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AppManager.getAppManager().startActivity(new Intent(getSelfActivity(), TourismExperienceDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1).putExtra("fid",fid));
+            }
+        });
+        binding.etStartTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etEndTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etEndTime.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                if (!TextUtils.isEmpty(s)) {
+                    binding.ivTimeClear.setVisibility(View.VISIBLE);
+                } else {
+                    if (TextUtils.isEmpty(binding.etStartTime.getText().toString())) {
+                        binding.ivTimeClear.setVisibility(View.INVISIBLE);
+                    }
+                }
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
+        binding.etStartTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨寮�濮嬫椂闂�");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    //浠yyy-MM-dd鐨勬牸寮忔樉绀猴紝鏈堟棩灏忎簬10鏃跺墠闈㈣ˉ0
+                    binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etEndTime.getText().toString().isEmpty()){
+                        binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.etEndTime.setOnClickListener(v -> {
+            hideSoftKeyboard();
+            DatePicker datePicker = getDatePicker();
+            datePicker.setTitle("璇烽�夋嫨缁撴潫鏃堕棿");
+            datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    if (binding.etStartTime.getText().toString().isEmpty()){
+                        binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }else {
+                        //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+                        String startTime = binding.etStartTime.getText().toString();
+                        String endTime = binding.etEndTime.getText().toString();
+                        if (Utils.compareDate(startTime,endTime) > 0){
+                            //浜ゆ崲
+                            binding.etStartTime.setText(endTime);
+                            binding.etEndTime.setText(startTime);
+                        }
+                    }
+                }
+            });
+            datePicker.show();
+        });
+        binding.ivTimeClear.setOnClickListener(v -> {
+            binding.etStartTime.setText("");
+            binding.etEndTime.setText("");
+        });
     }
 
     @Override
     public void initData() {
-        viewModel.getTourismExperienceData();
+        viewModel.getTourismExperience();
     }
 
     @Override
@@ -54,5 +220,126 @@
         viewModel.getDataListLiveData().observe(this, dataList -> {
             adapter.setData(dataList);
         });
+        viewModel.getCheckListLiveData().observe(this, checkList -> {
+            if (0 == viewModel.getOperateTypeLiveData().getValue()){
+                return;
+            }
+            if (checkList.isEmpty()){
+                viewModel.getOperateTypeLiveData().setValue(1);
+            }else{
+                viewModel.getOperateTypeLiveData().setValue(2);
+            }
+        });
+        viewModel.getMoreListLiveData().observe(this, moreList -> {
+            adapter.addData(moreList);
+        });
+        viewModel.getOperateTypeLiveData().observe(this, integer -> {
+            if (integer == 0){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_operate);
+                binding.ivOperate.setOnClickListener(v -> {
+                    mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+                });
+                adapter.setCheckable(false);
+            }else if (integer == 1){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_operate_finish);
+                binding.ivOperate.setOnClickListener(v -> {
+                    viewModel.getOperateTypeLiveData().postValue(0);
+                });
+                adapter.setCheckable(true);
+            }else if (integer == 2){
+                binding.ivOperate.setBackgroundResource(R.drawable.ic_delete_white);
+                binding.ivOperate.setOnClickListener(v -> {
+                    new UIDialog.Builder(this)
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎閫変腑鐨勯」鐩悧")
+                            .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                            .setConfirm("纭畾")
+                            .setCancel("鍙栨秷")
+                            .setListener(new UIDialog.OnListener() {
+                                @Override
+                                public void onConfirm(BaseDialog dialog) {
+                                    viewModel.deleteCheckList();
+                                }
+                            })
+                            .show();
+                });
+            }
+        });
+
+        viewModel.getFinishDeleteListLiveData().observe(this, beans -> {
+            for (TourismExperienceBean bean : beans) {
+                adapter.removeItem(bean);
+            }
+        });
+
+        //瑙傚療鏁版嵁鐨勫彉鍖栵紝鏈夊彉鍖栧寘鎷坊鍔犮�佷慨鏀广�佸垹闄ら兘浼氬彂閫佹秷鎭紝鎺ユ敹鍒版秷鎭悗閲嶆柊鑾峰彇鏁版嵁杩涜鍒锋柊
+        RxBus.getInstance().toObservable(this, TourismExperienceBean.class)
+                .subscribe(bean -> {
+                    viewModel.getTourismExperience();
+                });
+    }
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
+    }
+
+    @Override
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.recyclerView.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.tv_add){
+            AppManager.getAppManager().startActivity(new Intent(this, TourismExperienceDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE,1).putExtra("fid",fid));
+            mOperatePopupWindow.dismiss();
+        }else if (id == R.id.tv_select){
+            viewModel.getOperateTypeLiveData().postValue(1);
+            mOperatePopupWindow.dismiss();
+        }else if (id == R.id.tv_from_new_to_old) {
+            viewModel.changeOrder(true);
+            mOperatePopupWindow.dismiss();
+        } else if (id == R.id.tv_from_old_to_new) {
+            viewModel.changeOrder(false);
+            mOperatePopupWindow.dismiss();
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (mOperatePopupWindow != null){
+            mOperatePopupWindow.dismiss();
+        }
+    }
+
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
+    }
+
+    @Override
+    public void onLeftClick(TitleBar titleBar) {
+        finish();
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceActivityViewModel.java
index 593d60c..e65b436 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceActivityViewModel.java
@@ -1,16 +1,31 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
+import androidx.lifecycle.LiveData;
 import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
-import com.application.zhangshi_app_android.bean.PropertyBean;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.Utils;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
 import com.application.zhangshi_app_android.bean.TourismExperienceBean;
+import com.application.zhangshi_app_android.bean.TourismExperienceRequestBean;
 import com.application.zhangshi_app_android.data.DataRepository;
 
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
@@ -18,7 +33,13 @@
  * @desc 鏃呮父缁忓巻 ViewModel
  */
 public class TourismExperienceActivityViewModel extends BaseViewModel<DataRepository> {
-    private MutableLiveData<List<TourismExperienceBean>> dataListLiveData;
+    private MutableLiveData<List<TourismExperienceBean>> dataListLiveData;//鍒楄〃鏁版嵁
+    private MutableLiveData<List<TourismExperienceBean>> checkListLiveData;//閫変腑鐨勬暟鎹�
+    private MutableLiveData<List<TourismExperienceBean>> moreListLiveData;//涓嬫媺鍔犺浇鏁版嵁
+    private MutableLiveData<TourismExperienceRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
+    private MutableLiveData<List<TourismExperienceBean>> finishDeleteListLiveData;//宸茬粡瀹屾垚鍒犻櫎鐨勬暟鎹紝鐢ㄤ簬adapter鐨剅emove鎿嶄綔
+    private MutableLiveData<Integer> operateTypeLiveData;//鎿嶄綔绫诲瀷 0 閫夋嫨鎿嶄綔 1.瀹屾垚 2.鍒犻櫎
+
     public TourismExperienceActivityViewModel(@NonNull Application application) {
         super(application);
     }
@@ -29,13 +50,202 @@
     }
 
     /**
-     * 鑾峰彇鏃呮父缁忓巻鏁版嵁
+     * 鑾峰彇鏁版嵁
      */
-    public void getTourismExperienceData() {
+    public void getTourismExperience() {
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new TourismExperienceRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        model.getTourismExperience(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<PageResponseBean<TourismExperienceBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<TourismExperienceBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                changeStateView(StateViewEnum.DATA_NULL);
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                dataListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void getMoreTourismExperience() {
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new TourismExperienceRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getTourismExperience(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<PageResponseBean<TourismExperienceBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<TourismExperienceBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎澶氶�夐�変腑鐨勬暟鎹�
+     */
+    public void deleteCheckList() {
+        List<TourismExperienceBean> deleteList = getCheckListLiveData().getValue();
+        if (deleteList == null){
+            return;
+        }
+        StringBuffer sb = new StringBuffer();
+        deleteList.forEach(TourismExperienceBean -> sb.append(TourismExperienceBean.getId()).append(","));
+        sb.deleteCharAt(sb.length()-1);
+        model.deleteTourismExperience(sb.toString())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                            finishDeleteListLiveData.postValue(checkListLiveData.getValue());
+                            getCheckListLiveData().postValue(new ArrayList<>());
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎鍗曚釜鏁版嵁
+     */
+    public void deleteItem(TourismExperienceBean tourismExperienceBean) {
+        model.deleteTourismExperience(String.valueOf(tourismExperienceBean.getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            List<TourismExperienceBean> list = new ArrayList<>();
+                            list.add(tourismExperienceBean);
+                            finishDeleteListLiveData.postValue(list);
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    public MutableLiveData<List<TourismExperienceBean>> getCheckListLiveData() {
+        if (checkListLiveData==null){
+            checkListLiveData = new MutableLiveData<>();
+            checkListLiveData.postValue(new ArrayList<>());
+        }
+        if (checkListLiveData.getValue() == null){
+            checkListLiveData.postValue(new ArrayList<>());
+        }
+        return checkListLiveData;
+    }
+
+    public void setCheckListLiveData(MutableLiveData<List<TourismExperienceBean>> checkListLiveData) {
+        this.checkListLiveData = checkListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<TourismExperienceRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null){
+            requestBeanLiveData = new MutableLiveData<>();
+        }
+        if (requestBeanLiveData.getValue() == null){
+            requestBeanLiveData.setValue(new TourismExperienceRequestBean());
+        }
+        return requestBeanLiveData;
+    }
+
+    public void setRequestBeanLiveData(MutableLiveData<TourismExperienceRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
     }
 
     public MutableLiveData<List<TourismExperienceBean>> getDataListLiveData() {
-        if (dataListLiveData == null) {
+        if (dataListLiveData == null){
             dataListLiveData = new MutableLiveData<>();
         }
         return dataListLiveData;
@@ -44,4 +254,93 @@
     public void setDataListLiveData(MutableLiveData<List<TourismExperienceBean>> dataListLiveData) {
         this.dataListLiveData = dataListLiveData;
     }
+
+    @NonNull
+    public MutableLiveData<List<TourismExperienceBean>> getMoreListLiveData() {
+        if (moreListLiveData == null){
+            moreListLiveData = new MutableLiveData<>();
+        }
+        return moreListLiveData;
+    }
+
+    public void setMoreListLiveData(MutableLiveData<List<TourismExperienceBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
+    }
+
+    @NonNull
+    public MutableLiveData<Integer> getOperateTypeLiveData() {
+        if (operateTypeLiveData == null){
+            operateTypeLiveData = new MutableLiveData<>();
+            operateTypeLiveData.setValue(0);
+        }
+        return operateTypeLiveData;
+    }
+
+    public void setOperateTypeLiveData(MutableLiveData<Integer> operateTypeLiveData) {
+        this.operateTypeLiveData = operateTypeLiveData;
+    }
+
+    public LiveData<List<TourismExperienceBean>> getFinishDeleteListLiveData() {
+        if (finishDeleteListLiveData == null){
+            finishDeleteListLiveData = new MutableLiveData<>();
+        }
+        return finishDeleteListLiveData;
+    }
+
+    public void setFinishDeleteListLiveData(MutableLiveData<List<TourismExperienceBean>> finishDeleteListLiveData) {
+        this.finishDeleteListLiveData = finishDeleteListLiveData;
+    }
+
+    /**
+     * 鏀瑰彉鎺掑簭
+     * @param b true 闄嶅簭 false 鍗囧簭
+     */
+    public void changeOrder(boolean b) {
+        List<TourismExperienceBean> list = getDataListLiveData().getValue();
+        if (list == null || list.isEmpty()){
+            return;
+        }
+        if (b) {
+            // 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return 1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return -1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date2.compareTo(date1);
+                    }
+                    return 0;
+                }
+            });
+        } else  {
+            // 浠庢棫鍒版柊锛宯ull鎺掓渶鍓�
+            list.sort((o1, o2) -> {
+                String happenTime1 = o1.getHappenTime();
+                String happenTime2 = o2.getHappenTime();
+                if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+                    return 0;
+                } else if (TextUtils.isEmpty(happenTime1)) {
+                    return -1;
+                } else if (TextUtils.isEmpty(happenTime2)) {
+                    return 1;
+                } else {
+                    Date date1 = Utils.parseDate(happenTime1);
+                    Date date2 = Utils.parseDate(happenTime2);
+                    if (date1 != null && date2 != null) {
+                        return date1.compareTo(date2);
+                    }
+                    return 0;
+                }
+            });
+        }
+        getDataListLiveData().setValue(list);
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceDetailActivity.java
index 815848b..c735e7f 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceDetailActivity.java
@@ -3,21 +3,40 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.EditText;
+import android.widget.PopupWindow;
 
 import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.manager.UserManager;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.ImageRvAdapter;
+import com.application.zhangshi_app_android.bean.IncomeAndExpensesBean;
 import com.application.zhangshi_app_android.bean.PropertyBean;
 import com.application.zhangshi_app_android.bean.TourismExperienceBean;
 import com.application.zhangshi_app_android.databinding.AcitivityTourismExperienceDetailBinding;
 import com.application.zhangshi_app_android.databinding.ActivityPropertyDetailBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.OptionPicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
+import com.github.gzuliyujiang.wheelpicker.contract.OnOptionPickedListener;
+import com.hjq.bar.TitleBar;
+import com.luck.picture.lib.entity.LocalMedia;
+import com.luck.picture.lib.interfaces.OnResultCallbackListener;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.function.Consumer;
 
 /**
  * @author Ljj
@@ -25,7 +44,8 @@
  * @desc 鏃呮父缁忓巻璇︽儏
  */
 public class TourismExperienceDetailActivity extends DLBaseActivity<AcitivityTourismExperienceDetailBinding,TourismExperienceDetailActivityViewModel> {
-
+    private int type;// 0 鏌ョ湅鍙慨鏀瑰垹闄� 1 鏂板 2 鐩存帴淇敼
+    private PopupWindow popupWindow;
     private ImageRvAdapter adapter;
 
     @Override
@@ -40,8 +60,15 @@
 
     @Override
     public void initParam() {
-        if (getIntent().hasExtra("bean")){
-            viewModel.getBeanLiveData().setValue((TourismExperienceBean) getIntent().getSerializableExtra("bean"));
+        type = getIntent().getIntExtra(BaseConfig.EXTRA_TYPE,0);
+        if (type == 0 || type == 2){
+            TourismExperienceBean bean = (TourismExperienceBean) getIntent().getSerializableExtra("bean");
+            if (bean !=null){
+                viewModel.getBeanLiveData().setValue(bean);
+            }
+        }else if (type == 1){
+            String fid = getIntent().getStringExtra("fid");
+            viewModel.getBeanLiveData().getValue().setFeeId(fid);
         }
     }
 
@@ -51,7 +78,116 @@
         GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
         binding.rvImage.setLayoutManager(gridLayoutManager);
         binding.rvImage.setNestedScrollingEnabled(false);
-        setIsEdited(false);
+        View footerView = View.inflate(this,R.layout.item_image_footer,null);
+        binding.rvImage.addFooterView(footerView);
+        binding.rvImage.requestLayout();
+        footerView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                UserManager.getInstance().selectImage(getSelfActivity(), 9, new OnResultCallbackListener<LocalMedia>() {
+                    @Override
+                    public void onResult(ArrayList<LocalMedia> result) {
+                        if (result.size() == 0) return;
+                        for (LocalMedia media : result) {
+                            String path = media.getRealPath();
+                            File file = new File(path);
+                            if (file.exists()) {
+                                viewModel.uploadFile(file);
+                            }
+                        }
+                    }
+
+                    @Override
+                    public void onCancel() {
+
+                    }
+                });
+            }
+        });
+        adapter.setOnChildClickListener(R.id.iv_delete, new BaseRVAdapter.OnChildClickListener() {
+            @Override
+            public void onChildClick(RecyclerView recyclerView, View childView, int position) {
+                TourismExperienceBean bean = viewModel.getBeanLiveData().getValue();
+                if (bean !=null){
+                    List<String> urlList = Utils.splitString2List(bean.getUrl(),",");
+                    urlList.remove(adapter.getItem(position));
+                    bean.setUrl(Utils.appendList2String(urlList,","));
+                }
+                adapter.removeItem(position);
+                viewModel.getBeanLiveData().setValue(bean);
+            }
+        });
+        binding.rvImage.setAdapter(adapter);
+
+        if (type == 1){
+            viewModel.getTypeLiveData().postValue(true);
+            binding.ivOperate.setOnClickListener(v -> {
+                viewModel.add();
+            });
+        }else if (type == 0){
+            popupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate_delete,null));
+            popupWindow.getContentView().findViewById(R.id.tv_modify).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    viewModel.getTypeLiveData().postValue(true);
+                    popupWindow.dismiss();
+                }
+            });
+            popupWindow.getContentView().findViewById(R.id.tv_delete).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    popupWindow.dismiss();
+                    new UIDialog.Builder(getSelfActivity())
+                            .setTitle("鎮ㄧ‘瀹氳鍒犻櫎椤圭洰鍚�")
+                            .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+                            .setConfirm("纭畾")
+                            .setCancel("鍙栨秷")
+                            .setListener(new UIDialog.OnListener() {
+                                @Override
+                                public void onConfirm(BaseDialog dialog) {
+                                    viewModel.delete();
+                                }
+                            })
+                            .show();
+                }
+            });
+            viewModel.getTypeLiveData().postValue(false);
+        }else if (type == 2){
+            viewModel.getTypeLiveData().postValue(true);
+        }
+        binding.etTime.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                hideSoftKeyboard();
+                DatePicker datePicker = getDatePicker();
+                datePicker.setTitle("閫夋嫨鏃堕棿");
+                datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+                    @Override
+                    public void onDatePicked(int year, int month, int day) {
+                        binding.etTime.setText(String.format("%d-%02d-%02d", year, month, day));
+                    }
+                });
+                datePicker.show();
+            }
+        });
+        binding.etSelf.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                hideSoftKeyboard();
+                List<String> list = Arrays.asList("鍏垂","鑷垂");
+                OptionPicker picker = getOptionPicker(list);
+                picker.setTitle("鑷垂鎴栧叕璐�");
+                picker.setDefaultValue(binding.etSelf.getText().toString());
+                picker.setOnOptionPickedListener(new OnOptionPickedListener() {
+                    @Override
+                    public void onOptionPicked(int position, Object item) {
+                        viewModel.getBeanLiveData().getValue().setSelf(position);
+                        viewModel.getBeanLiveData().setValue(viewModel.getBeanLiveData().getValue());
+                    }
+                });
+                picker.show();
+            }
+        });
     }
 
     @Override
@@ -63,40 +199,42 @@
     public void initLiveDataObserve() {
         viewModel.getBeanLiveData().observe(this,bean -> {
             if (bean!=null){
-                String url = bean.getUrl();
-                if (url == null||url.isEmpty()){
-                    return;
-                }
-                List<String> list;
-                if (url.contains(",")){
-                    String[] split = url.split(",");
-                    list = new ArrayList<>(Arrays.asList(split));
+                adapter.setData(Utils.splitString2List(bean.getUrl(),","));
+            }
+        });
+        viewModel.getTypeLiveData().observe(this,operateType -> {
+            if (operateType){
+                if (type == 1) {
+                    binding.ivOperate.setOnClickListener(v -> {
+                        viewModel.add();
+                    });
                 }else {
-                    list = new ArrayList<>();
-                    list.add(url);
+                    binding.ivOperate.setOnClickListener(v -> {
+                        viewModel.update();
+                    });
                 }
-                adapter.setData(list);
+                binding.rvImage.getFooterViews().forEach(new Consumer<View>() {
+                    @Override
+                    public void accept(View view) {
+                        view.setVisibility(View.VISIBLE);
+                    }
+                });
+            }else {
+                binding.ivOperate.setOnClickListener(v -> {
+                    popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+                });
+                binding.rvImage.getFooterViews().forEach(new Consumer<View>() {
+                    @Override
+                    public void accept(View view) {
+                        view.setVisibility(View.GONE);
+                    }
+                });
             }
         });
     }
 
-    public void setIsEdited(boolean isEdited){
-        disableAllEditText(getContentView(),isEdited);
-        adapter.setIsEdited(isEdited);
-    }
-    public void disableAllEditText(ViewGroup viewGroup, boolean isEdited) {
-        for (int i = 0; i < viewGroup.getChildCount(); i++) {
-            View child = viewGroup.getChildAt(i);
-            if (child instanceof ViewGroup) {
-                disableAllEditText((ViewGroup) child,isEdited);
-            } else if (child instanceof EditText) {
-                child.setEnabled(isEdited);
-                child.setFocusable(isEdited);
-                child.setFocusableInTouchMode(isEdited);
-                if (!isEdited){
-                    child.clearFocus();
-                }
-            }
-        }
+    @Override
+    public void onLeftClick(TitleBar titleBar) {
+        finish();
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceDetailActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceDetailActivityViewModel.java
index 7caa2c4..2156ff6 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceDetailActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceDetailActivityViewModel.java
@@ -1,14 +1,28 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
 import com.android.app_base.base.viewmodel.BaseViewModel;
-import com.application.zhangshi_app_android.bean.PropertyBean;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.application.zhangshi_app_android.bean.TourismExperienceBean;
+import com.application.zhangshi_app_android.bean.UploadFileResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.io.File;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
 
 /**
  * @author Ljj
@@ -18,6 +32,7 @@
 public class TourismExperienceDetailActivityViewModel extends BaseViewModel<DataRepository> {
 
     private MutableLiveData<TourismExperienceBean> beanLiveData;
+    private MutableLiveData<Boolean> typeLiveData;//true 缂栬緫鐘舵�� false 灞曠ず鐘舵��
 
     public TourismExperienceDetailActivityViewModel(@NonNull Application application) {
         super(application);
@@ -28,15 +43,180 @@
         return DataRepository.getInstance();
     }
 
+    /**
+     * 娣诲姞 鏀舵敮鍙拌处
+     */
+    public void add() {
+        System.out.println(beanLiveData.getValue());
+        model.addTourismExperience(beanLiveData.getValue())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
 
-    public MutableLiveData<TourismExperienceBean> getBeanLiveData() {
-        if (beanLiveData == null) {
-            beanLiveData = new MutableLiveData<>();
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("娣诲姞鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍒犻櫎 鏀舵敮鍙拌处
+     */
+    public void delete() {
+        if (beanLiveData.getValue() == null){
+            return;
         }
-        return beanLiveData;
+        model.deleteTourismExperience(String.valueOf(beanLiveData.getValue().getId()))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("鍒犻櫎鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 淇敼灏忓尰鐢�
+     */
+    public void update() {
+        model.updateTourismExperience(beanLiveData.getValue())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> stringResultData) {
+                        if (stringResultData.getCode() == CODE_SUCCESS){
+                            AppManager.getAppManager().finishCurrentActivity();
+                            RxBus.getInstance().post(beanLiveData.getValue());
+                            messageLiveData.postValue("淇敼鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(stringResultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    /**
+     * 涓婁紶鐢靛瓙鏂囦欢
+     */
+    public void uploadFile(File file) {
+        RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
+        MultipartBody.Part body = MultipartBody.Part.createFormData("uploadFile", file.getName(), requestBody);
+        model.uploadFile(body)
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<UploadFileResponseBean>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<UploadFileResponseBean> resultData) {
+                        if (resultData.getCode() == CODE_SUCCESS){
+                            TourismExperienceBean bean = beanLiveData.getValue();
+                            String url;
+                            if (bean != null){
+                                url = bean.getUrl();
+                                if (url == null){
+                                    url = resultData.getData().getUrl();
+                                }else {
+                                    url = url + "," + resultData.getData().getUrl();
+                                }
+                                bean.setUrl(url);
+                                beanLiveData.postValue(bean);
+                            }
+                        }else {
+                            messageLiveData.postValue(resultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    public MutableLiveData<Boolean> getTypeLiveData() {
+        if (typeLiveData == null){
+            typeLiveData = new MutableLiveData<>();
+        }
+        return typeLiveData;
+    }
+
+    public void setTypeLiveData(MutableLiveData<Boolean> typeLiveData) {
+        this.typeLiveData = typeLiveData;
     }
 
     public void setBeanLiveData(MutableLiveData<TourismExperienceBean> beanLiveData) {
         this.beanLiveData = beanLiveData;
     }
+
+    public MutableLiveData<TourismExperienceBean> getBeanLiveData() {
+        if (beanLiveData == null){
+            beanLiveData = new MutableLiveData<>();
+        }
+        if (beanLiveData.getValue() == null){
+            beanLiveData.setValue(new TourismExperienceBean());
+        }
+        return beanLiveData;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragment.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragment.java
new file mode 100644
index 0000000..ee284fe
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragment.java
@@ -0,0 +1,210 @@
+package com.application.zhangshi_app_android.ui.function;
+
+import android.content.res.Configuration;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ImageView;
+
+
+import androidx.annotation.NonNull;
+
+import com.android.app_base.base.view.BaseFragment;
+import com.android.app_base.utils.GlideUtil;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.databinding.FragmentVideoBinding;
+import com.shuyu.gsyvideoplayer.GSYVideoManager;
+import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder;
+import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack;
+import com.shuyu.gsyvideoplayer.listener.LockClickListener;
+import com.shuyu.gsyvideoplayer.utils.OrientationUtils;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Ljj
+ * @date 2023.07.17. 19:39
+ * @desc
+ */
+public class VideoFragment extends BaseFragment<FragmentVideoBinding, VideoFragmentViewModel> {
+    OrientationUtils orientationUtils;
+    private List<String> videoList;
+    private boolean isPlay;
+    private boolean isPause;
+
+    private VideoFragment() {
+    }
+
+    public static VideoFragment newInstance() {
+        VideoFragment fragment = new VideoFragment();
+        Bundle args = new Bundle();
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.fragment_video;
+    }
+
+    @Override
+    protected int getVariableId() {
+        return 0;
+    }
+
+    @Override
+    protected void initParam() {
+        if (getArguments() != null) {
+            videoList = (List<String>) getArguments().getSerializable("videoList");
+        }
+    }
+
+    @Override
+    protected void initView() {
+        if (videoList != null && videoList.size() > 0){
+            binding.videoPlayer.setVisibility(View.VISIBLE);
+            binding.layoutDataNull.setVisibility(View.GONE);
+            //澧炲姞灏侀潰
+            ImageView imageView = new ImageView(getSelfActivity());
+            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
+            GlideUtil.loadVideoCover(videoList.get(0), imageView,-1,1);
+            //澧炲姞title
+            binding.videoPlayer.getTitleTextView().setVisibility(View.GONE);
+            binding.videoPlayer.getBackButton().setVisibility(View.GONE);
+
+            //澶栭儴杈呭姪鐨勬棆杞紝甯姪鍏ㄥ睆
+            //orientationUtils = new OrientationUtils(this, binding.videoPlayer);
+            //鍒濆鍖栦笉鎵撳紑澶栭儴鐨勬棆杞�
+            // orientationUtils.setEnable(false);
+
+            GSYVideoOptionBuilder gsyVideoOption = new GSYVideoOptionBuilder();
+            gsyVideoOption.setThumbImageView(imageView)
+                    .setIsTouchWiget(true)
+                    .setRotateViewAuto(false)
+                    .setLockLand(false)
+                    .setAutoFullWithSize(false)
+                    .setShowFullAnimation(false)
+                    .setUrl(videoList.get(0))
+                    .setNeedLockFull(true)
+                    .setCacheWithPlay(false)
+                    .setVideoTitle("")
+                    .setLooping(true)
+                    ///涓嶉渶瑕佹棆杞�
+                    .setNeedOrientationUtils(false)
+                    .setVideoAllCallBack(new GSYSampleCallBack() {
+                        @Override
+                        public void onPrepared(String url, Object... objects) {
+                            super.onPrepared(url, objects);
+                            //寮�濮嬫挱鏀句簡鎵嶈兘鏃嬭浆鍜屽叏灞�
+//                        orientationUtils.setEnable(binding.videoPlayer.isRotateWithSystem());
+                            isPlay = true;
+                        }
+
+                        @Override
+                        public void onQuitFullscreen(String url, Object... objects) {
+                            super.onQuitFullscreen(url, objects);
+                            // ------- 锛侊紒锛佸鏋滀笉闇�瑕佹棆杞睆骞曪紝鍙互涓嶈皟鐢紒锛侊紒-------
+                            // 涓嶉渶瑕佸睆骞曟棆杞紝杩橀渶瑕佽缃� setNeedOrientationUtils(false)
+//                        if (orientationUtils != null) {
+//                            orientationUtils.backToProtVideo();
+//                        }
+                        }
+                    })
+                    .setLockClickListener(new LockClickListener() {
+                        @Override
+                        public void onClick(View view, boolean lock) {
+//                        if (orientationUtils != null) {
+//                            //閰嶅悎涓嬫柟鐨刼nConfigurationChanged
+//                            orientationUtils.setEnable(!lock);
+//                        }
+                        }
+                    }).build(binding.videoPlayer);
+
+            binding.videoPlayer.getFullscreenButton().setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    //鐩存帴妯睆
+                    // ------- 锛侊紒锛佸鏋滀笉闇�瑕佹棆杞睆骞曪紝鍙互涓嶈皟鐢紒锛侊紒-------
+                    // 涓嶉渶瑕佸睆骞曟棆杞紝杩橀渶瑕佽缃� setNeedOrientationUtils(false)
+                    // orientationUtils.resolveByClick();
+                    //绗竴涓猼rue鏄惁闇�瑕侀殣钘廰ctionbar锛岀浜屼釜true鏄惁闇�瑕侀殣钘弒tatusbar
+                    binding.videoPlayer.startWindowFullscreen(getSelfActivity(), true, true);
+                }
+            });
+        }else {
+            binding.videoPlayer.setVisibility(View.GONE);
+            binding.layoutDataNull.setVisibility(View.VISIBLE);
+        }
+    }
+
+    @Override
+    protected void initData() {
+
+    }
+
+    public void setVideoList(List<String> videoList) {
+        this.videoList = videoList;
+        Bundle args = new Bundle();
+        args.putSerializable("videoList", (Serializable) videoList);
+        setArguments(args);
+    }
+
+    @Override
+    protected void initLiveDataObserve() {
+
+    }
+
+//    @Override
+//    public void onBackPressed() {
+//        // ------- 锛侊紒锛佸鏋滀笉闇�瑕佹棆杞睆骞曪紝鍙互涓嶈皟鐢紒锛侊紒-------
+//        // 涓嶉渶瑕佸睆骞曟棆杞紝杩橀渶瑕佽缃� setNeedOrientationUtils(false)
+////        if (orientationUtils != null) {
+////            orientationUtils.backToProtVideo();
+////        }
+//        if (GSYVideoManager.backFromWindowFull(this)) {
+//            return;
+//        }
+//        super.onBackPressed();
+//    }
+
+
+    @Override
+    public void onPause() {
+        binding.videoPlayer.getCurrentPlayer().onVideoPause();
+        super.onPause();
+        isPause = true;
+    }
+
+    @Override
+    public void onResume() {
+        binding.videoPlayer.getCurrentPlayer().onVideoResume(false);
+        super.onResume();
+        isPause = false;
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        if (isPlay) {
+            binding.videoPlayer.getCurrentPlayer().release();
+        }
+//        if (orientationUtils != null)
+//            orientationUtils.releaseListener();
+    }
+
+
+    /**
+     * orientationUtils 鍜�  binding.videoPlayer.onConfigurationChanged 鏂规硶鏄敤浜庤Е鍙戝睆骞曟棆杞殑
+     */
+    @Override
+    public void onConfigurationChanged(@NonNull Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+        //濡傛灉鏃嬭浆浜嗗氨鍏ㄥ睆
+//        if (isPlay && !isPause) {
+//            binding.videoPlayer.onConfigurationChanged(this, newConfig, orientationUtils, true, true);
+//        }
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragmentViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragmentViewModel.java
new file mode 100644
index 0000000..5c7683a
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragmentViewModel.java
@@ -0,0 +1,24 @@
+package com.application.zhangshi_app_android.ui.function;
+
+import android.app.Application;
+
+import androidx.annotation.NonNull;
+
+import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.application.zhangshi_app_android.data.DataRepository;
+
+/**
+ * @author Ljj
+ * @date 2023.07.17. 19:52
+ * @desc
+ */
+public class VideoFragmentViewModel extends BaseViewModel<DataRepository> {
+    public VideoFragmentViewModel(@NonNull Application application) {
+        super(application);
+    }
+
+    @Override
+    protected DataRepository initModel() {
+        return DataRepository.getInstance();
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/home/GenealogyActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/home/GenealogyActivity.java
new file mode 100644
index 0000000..a71d397
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/home/GenealogyActivity.java
@@ -0,0 +1,192 @@
+package com.application.zhangshi_app_android.ui.home;
+
+import android.content.DialogInterface;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.widget.LinearItemDecoration;
+import com.application.zhangshi_app_android.BR;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.adapter.HomeMemberAdapter;
+import com.application.zhangshi_app_android.databinding.ActivityGenealogyBinding;
+import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.OptionPicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
+import com.github.gzuliyujiang.wheelpicker.contract.OnOptionPickedListener;
+import com.hjq.bar.TitleBar;
+
+import java.lang.reflect.Array;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+
+/**
+ * @author Ljj
+ * @date 2023.06.12. 16:01
+ * @desc 瀹惰氨 Activity
+ */
+public class GenealogyActivity extends DLBaseActivity<ActivityGenealogyBinding, GenealogyActivityViewModel> {
+    private HomeMemberAdapter adapter;
+    private boolean isSearchLayoutVisible;
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_genealogy;
+    }
+
+    @Override
+    public int getVariableId() {
+        return BR.viewModel;
+    }
+
+    @Override
+    public void initParam() {
+
+    }
+
+    @Override
+    public void initView() {
+        //涓嬫媺鍒锋柊甯冨眬
+        binding.refreshLayout.setEnableRefresh(false);
+        binding.refreshLayout.setEnableLoadMore(true);
+        binding.refreshLayout.setEnableOverScrollDrag(true);
+        binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+            viewModel.getMoreHomeMembers();
+        });
+        //recyclerView閫傞厤鍣�
+        adapter = new HomeMemberAdapter(this);
+        LinearItemDecoration itemDecoration = new LinearItemDecoration();
+        itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
+        itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
+        itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
+        binding.recyclerView.addItemDecoration(itemDecoration);
+        binding.recyclerView.setAdapter(adapter);
+        //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+        binding.ivSearchDefault.setOnClickListener(v -> {
+            binding.layoutSearch.setVisibility(View.VISIBLE);
+            binding.layoutDefault.setVisibility(View.GONE);
+        });
+        //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+        binding.ivSearchType.setOnClickListener(v -> {
+            if (!isSearchLayoutVisible){
+                binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+                int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+                Utils.pullCollapse(binding.containerSearchParameter,0,targetHeight);
+                isSearchLayoutVisible = true;
+            }
+        });
+        //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+        binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+            }
+        });
+        //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+        binding.ivSearch.setOnClickListener(v -> {
+            viewModel.getHomeMembers();
+            binding.layoutSearch.setVisibility(View.GONE);
+            binding.layoutDefault.setVisibility(View.VISIBLE);
+            binding.tvTitle.setText("鎼滅储缁撴灉");
+            hideSoftKeyboard();
+        });
+        binding.etSex.setOnClickListener(v -> {
+            List<String> list = Arrays.asList("濂�","鐢�");
+            OptionPicker picker = getOptionPicker(list);
+            picker.setTitle("鎬у埆");
+            picker.setOnOptionPickedListener(new OnOptionPickedListener() {
+                @Override
+                public void onOptionPicked(int position, Object item) {
+                    viewModel.getRequestBeanLiveData().getValue().setSex(position);
+                    binding.etSex.setText(item.toString());
+                }
+            });
+            picker.show();
+        });
+        binding.etBirthday.setOnClickListener(v -> {
+            DatePicker picker = getDatePicker();
+            picker.setTitle("鐢熸棩");
+            picker.setOnDatePickedListener(new OnDatePickedListener() {
+                @Override
+                public void onDatePicked(int year, int month, int day) {
+                    binding.etBirthday.setText(String.format(Locale.CHINA,"%d-%02d-%02d", year, month, day));
+                }
+            });
+            picker.show();
+        });
+        binding.etIdentity.setOnClickListener(v -> {
+            List<String> list = Arrays.asList("1","2","3","4");
+            OptionPicker picker = getOptionPicker(list);
+            picker.setTitle("韬唤浠f暟");
+            picker.setOnOptionPickedListener(new OnOptionPickedListener() {
+                @Override
+                public void onOptionPicked(int position, Object item) {
+                    viewModel.getRequestBeanLiveData().getValue().setIdentity(position+1);
+                    binding.etIdentity.setText("绗� " + item + " 浠�");
+                }
+            });
+            picker.show();
+        });
+
+    }
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        if (isSearchLayoutVisible){
+            if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+                Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(),0);
+                isSearchLayoutVisible = false;
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(event);
+    }
+
+    @Override
+    public void initData() {
+        viewModel.getHomeMembers();
+    }
+
+    @Override
+    public void initLiveDataObserve() {
+        viewModel.getDataListLiveData().observe(this, list -> {
+            adapter.setData(list);
+        });
+        viewModel.getMoreListLiveData().observe(this, list -> {
+            adapter.addData(list);
+        });
+    }
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.refreshLayout.setVisibility(View.GONE);
+    }
+
+    @Override
+    protected void dataFinish() {
+        super.dataFinish();
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.refreshLayout.setVisibility(View.VISIBLE);
+        binding.refreshLayout.finishLoadMore();
+    }
+
+    @Override
+    public void onLeftClick(TitleBar titleBar) {
+        finish();
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/home/GenealogyActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/home/GenealogyActivityViewModel.java
new file mode 100644
index 0000000..17db254
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/home/GenealogyActivityViewModel.java
@@ -0,0 +1,172 @@
+package com.application.zhangshi_app_android.ui.home;
+
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
+import android.app.Application;
+import android.text.TextUtils;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.MutableLiveData;
+
+import com.android.app_base.base.StateViewEnum;
+import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.Utils;
+import com.application.zhangshi_app_android.bean.HomeMemberBean;
+import com.application.zhangshi_app_android.bean.HomeMemberRequestBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
+import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.util.Date;
+import java.util.List;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
+
+/**
+ * @author Ljj
+ * @date 2023.06.12. 16:03
+ * @desc
+ */
+public class GenealogyActivityViewModel extends BaseViewModel<DataRepository> {
+    private MutableLiveData<List<HomeMemberBean>> dataListLiveData;//鎵�鏈夋暟鎹�
+    private MutableLiveData<List<HomeMemberBean>> moreListLiveData;//鍔犺浇鏇村鏁版嵁
+
+    private MutableLiveData<HomeMemberRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
+
+    public GenealogyActivityViewModel(@NonNull Application application) {
+        super(application);
+    }
+
+    @Override
+    protected DataRepository initModel() {
+        return DataRepository.getInstance();
+    }
+
+
+    /**
+     * 鑾峰彇鑽h獕鏀惰棌
+     */
+    public void getHomeMembers() {
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new HomeMemberRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(1);
+        model.getHomeMembers(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<PageResponseBean<HomeMemberBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<HomeMemberBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                changeStateView(StateViewEnum.DATA_NULL);
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                dataListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鍔犺浇鏇村
+     */
+    public void getMoreHomeMembers(){
+        if (getRequestBeanLiveData().getValue() == null){
+            getRequestBeanLiveData().setValue(new HomeMemberRequestBean());
+        }
+        getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+        model.getHomeMembers(getRequestBeanLiveData().getValue().toMap())
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<PageResponseBean<HomeMemberBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<PageResponseBean<HomeMemberBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            if (data.getData().getData().isEmpty()){
+                                messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+                            }else {
+                                changeStateView(StateViewEnum.HIDE);
+                                moreListLiveData.postValue(data.getData().getData());
+                            }
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    public MutableLiveData<List<HomeMemberBean>> getDataListLiveData() {
+        if (dataListLiveData == null){
+            dataListLiveData = new MutableLiveData<>();
+        }
+        return dataListLiveData;
+    }
+    public void setDataListLiveData(MutableLiveData<List<HomeMemberBean>> dataListLiveData) {
+        this.dataListLiveData = dataListLiveData;
+    }
+    public MutableLiveData<HomeMemberRequestBean> getRequestBeanLiveData() {
+        if (requestBeanLiveData == null){
+            requestBeanLiveData = new MutableLiveData<>();
+        }
+        if (requestBeanLiveData.getValue() == null){
+            requestBeanLiveData.setValue(new HomeMemberRequestBean());
+        }
+        return requestBeanLiveData;
+    }
+
+    public void setRequestBeanLiveData(MutableLiveData<HomeMemberRequestBean> requestBeanLiveData) {
+        this.requestBeanLiveData = requestBeanLiveData;
+    }
+
+
+
+    public MutableLiveData<List<HomeMemberBean>> getMoreListLiveData() {
+        if (moreListLiveData == null){
+            moreListLiveData = new MutableLiveData<>();
+        }
+        return moreListLiveData;
+    }
+
+    public void setMoreListLiveData(MutableLiveData<List<HomeMemberBean>> moreListLiveData) {
+        this.moreListLiveData = moreListLiveData;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragment.java b/app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragment.java
index fff69fb..e6db79c 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragment.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragment.java
@@ -1,28 +1,63 @@
 package com.application.zhangshi_app_android.ui.home;
 
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ObjectAnimator;
+import android.annotation.SuppressLint;
 import android.graphics.drawable.ColorDrawable;
 import android.os.Bundle;
+import android.view.GestureDetector;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.animation.AlphaAnimation;
+import android.view.animation.Animation;
+import android.view.animation.AnimationSet;
+import android.view.animation.ScaleAnimation;
 import android.widget.PopupWindow;
+import android.widget.TextView;
+
+import androidx.constraintlayout.utils.widget.ImageFilterView;
+import androidx.constraintlayout.widget.ConstraintLayout;
+import androidx.databinding.DataBindingUtil;
+import androidx.lifecycle.Observer;
 
 import com.android.app_base.base.view.BaseFragment;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.GlideUtil;
+import com.android.app_base.utils.ScreenSizeUtils;
 import com.android.app_base.widget.LinearItemDecoration;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.adapter.HomeMemberAdapter;
 import com.application.zhangshi_app_android.bean.HomeMemberBean;
+import com.application.zhangshi_app_android.bean.HomeRootBean;
 import com.application.zhangshi_app_android.databinding.FragmentHomeBinding;
+import com.application.zhangshi_app_android.databinding.PopBasicInformationBinding;
+import com.application.zhangshi_app_android.ui.DLBaseFragment;
 import com.hjq.bar.TitleBar;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @author Ljj
  * @date 2023.3.15
  * @desc 棣栭〉 Fragment
  */
-public class HomeFragment extends BaseFragment<FragmentHomeBinding,HomeFragmentViewModel> {
-    private PopupWindow mPopupWindow;
-    private HomeMemberAdapter homeMemberAdapter;
+public class HomeFragment extends DLBaseFragment<FragmentHomeBinding,HomeFragmentViewModel> {
+    private PopupWindow mOperatePopupWindow;
+    private ViewOperator firstViewOperator1;//绗竴浠�
+    private ViewOperator firstViewOperator2;//绗竴浠�
+    private List<ViewOperator> secondSelfList;//绗簩浠e洓涓垎鏀�
+    private List<ViewOperator> secondSpouseList;//绗簩浠e洓涓垎鏀殑閰嶅伓
+
+    private List<List<ViewOperator>> thirdSelfListList;//绗笁浠e洓涓垎鏀殑鍒楄〃
+
+
+    private List<List<ViewOperator>> fourthSelfListList;//绗洓浠e洓涓垎鏀殑鍒楄〃
+
+
 
     public HomeFragment() {
     }
@@ -49,35 +84,332 @@
 
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     @Override
     protected void initView() {
-        mPopupWindow = new PopupWindow(getSelfActivity());
-        mPopupWindow.setContentView(View.inflate(getSelfActivity(),R.layout.pop_basic_information,null));
-        mPopupWindow.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
-        mPopupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
-        mPopupWindow.setBackgroundDrawable(new ColorDrawable(0x0000));
-        mPopupWindow.setAnimationStyle(com.android.app_base.R.style.pop_info);
-        mPopupWindow.setFocusable(true);
-        mPopupWindow.setTouchable(true);
-        mPopupWindow.setOutsideTouchable(true);
+        mOperatePopupWindow = initPopUpWindow(View.inflate(getSelfActivity(),R.layout.pop_operate_home_root_net,null));
+        binding.ivOperate.setOnClickListener(v -> {
+            mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(getSelfActivity(),120) +binding.ivOperate.getWidth(),0);
+        });
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_first).setOnClickListener(v -> {
+            binding.ivTreeViewDiff.setBackgroundResource(R.drawable.bg_home_root_net_detail_first);
+            viewModel.setIndexLiveData(0);
+        });
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_second).setOnClickListener(v -> {
+            binding.ivTreeViewDiff.setBackgroundResource(R.drawable.bg_home_root_net_detail_second);
+            viewModel.setIndexLiveData(1);
+        });
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_third).setOnClickListener(v -> {
+            binding.ivTreeViewDiff.setBackgroundResource(R.drawable.bg_home_root_net_detail_third);
+            viewModel.setIndexLiveData(2);
+        });
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_all).setOnClickListener(v -> {
+            binding.ivTreeViewDiff.setBackgroundResource(R.drawable.bg_home_root_net_detail);
+            viewModel.setIndexLiveData(3);
+        });
+        mOperatePopupWindow.getContentView().findViewById(R.id.tv_family).setOnClickListener(v -> {
+            AppManager.getAppManager().startActivity(GenealogyActivity.class);
+            mOperatePopupWindow.dismiss();
+        });
+        final GestureDetector gestureDetector = new GestureDetector(getSelfActivity(), new GestureDetector.SimpleOnGestureListener() {
+            @Override
+            public boolean onDoubleTap(MotionEvent e) {
+                AlphaAnimation alphaAnimation = new AlphaAnimation(0f, 1f);
+                alphaAnimation.setDuration(1000);
+                alphaAnimation.setAnimationListener(new Animation.AnimationListener() {
+                    @Override
+                    public void onAnimationStart(Animation animation) {
+                        binding.scrollView.setVisibility(View.VISIBLE);
+                        binding.scrollView.post(new Runnable() {
+                            @Override
+                            public void run() {
+                                binding.scrollView.scrollTo(binding.scrollView.getChildAt(0).getMeasuredWidth()/2 - ScreenSizeUtils.getScreenWidth(getSelfActivity())/2,0);
+                            }
+                        });
+                    }
 
-        homeMemberAdapter = new HomeMemberAdapter(getSelfActivity());
-        LinearItemDecoration itemDecoration = new LinearItemDecoration();
-        itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_8));
-        itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
-        itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
-        binding.rvHomeMember.addItemDecoration(itemDecoration);
-        binding.rvHomeMember.setAdapter(homeMemberAdapter);
+                    @Override
+                    public void onAnimationEnd(Animation animation) {
+                    }
+
+                    @Override
+                    public void onAnimationRepeat(Animation animation) {
+
+                    }
+                });
+
+                AlphaAnimation alphaAnimation1 = new AlphaAnimation(1f, 0f);
+                alphaAnimation1.setDuration(1000);
+                alphaAnimation1.setAnimationListener(new Animation.AnimationListener() {
+                    @Override
+                    public void onAnimationStart(Animation animation) {
+                        binding.layoutHomeRootNet.setVisibility(View.VISIBLE);
+                    }
+
+                    @Override
+                    public void onAnimationEnd(Animation animation) {
+                        binding.layoutHomeRootNet.setVisibility(View.GONE);
+                    }
+
+                    @Override
+                    public void onAnimationRepeat(Animation animation) {
+
+                    }
+                });
+
+                float scale = binding.layoutHomeRootNet.getWidth()/ (binding.ivTreeView.getWidth() * 2f / 3f);
+                //缂╂斁鍔ㄧ敾
+                ScaleAnimation scaleAnimation = new ScaleAnimation(1f, scale, 1f, scale, binding.layoutHomeRootNet.getWidth()/2f, binding.layoutHomeRootNet.getHeight()/2f);
+                scaleAnimation.setDuration(1000);
+                scaleAnimation.setAnimationListener(new Animation.AnimationListener() {
+                    @Override
+                    public void onAnimationStart(Animation animation) {
+                    }
+
+                    @Override
+                    public void onAnimationEnd(Animation animation) {
+                        binding.scrollView.startAnimation(alphaAnimation);
+                        binding.layoutHomeRootNet.startAnimation(alphaAnimation1);
+                    }
+
+                    @Override
+                    public void onAnimationRepeat(Animation animation) {
+
+                    }
+                });
+                binding.layoutHomeRootNet.startAnimation(scaleAnimation);
+
+                return true;
+            }
+        });
+        binding.layoutHomeRootNet.setOnTouchListener(new View.OnTouchListener() {
+            @Override
+            public boolean onTouch(View v, MotionEvent event) {
+                gestureDetector.onTouchEvent(event);
+                return true;
+            }
+        });
+
+        firstViewOperator1 = new ViewOperator(binding.tvFirst1,binding.ivFirst1);
+        firstViewOperator2 = new ViewOperator(binding.tvFirst2,binding.ivFirst2);
+
+        secondSelfList = new ArrayList<>();
+        secondSpouseList = new ArrayList<>();
+        secondSelfList.add(new ViewOperator(binding.tvSecond11,binding.ivSecond11));
+        secondSpouseList.add(new ViewOperator(binding.tvSecond12,binding.ivSecond12));
+        secondSelfList.add(new ViewOperator(binding.tvSecond21,binding.ivSecond21));
+        secondSpouseList.add(new ViewOperator(binding.tvSecond22,binding.ivSecond22));
+        secondSelfList.add(new ViewOperator(binding.tvSecond31,binding.ivSecond31));
+        secondSpouseList.add(new ViewOperator(binding.tvSecond32,binding.ivSecond32));
+        secondSelfList.add(new ViewOperator(binding.tvSecond41,binding.ivSecond41));
+        secondSpouseList.add(new ViewOperator(binding.tvSecond42,binding.ivSecond42));
+
+        thirdSelfListList = new ArrayList<>();
+
+        List<ViewOperator> thirdSelfList1 = new ArrayList<>();
+        thirdSelfList1.add(new ViewOperator(binding.tvThird11,binding.ivThird11));
+        thirdSelfList1.add(new ViewOperator(binding.tvThird12,binding.ivThird12));
+        thirdSelfList1.add(new ViewOperator(binding.tvThird13,binding.ivThird13));
+        thirdSelfList1.add(new ViewOperator(binding.tvThird14,binding.ivThird14));
+        thirdSelfListList.add(thirdSelfList1);
+
+        List<ViewOperator> thirdSelfList2 = new ArrayList<>();
+        thirdSelfList2.add(new ViewOperator(binding.tvThird21,binding.ivThird21));
+        thirdSelfList2.add(new ViewOperator(binding.tvThird22,binding.ivThird22));
+        thirdSelfList2.add(new ViewOperator(binding.tvThird23,binding.ivThird23));
+        thirdSelfList2.add(new ViewOperator(binding.tvThird24,binding.ivThird24));
+        thirdSelfListList.add(thirdSelfList2);
+
+        List<ViewOperator> thirdSelfList3 = new ArrayList<>();
+        thirdSelfList3.add(new ViewOperator(binding.tvThird31,binding.ivThird31));
+        thirdSelfList3.add(new ViewOperator(binding.tvThird32,binding.ivThird32));
+        thirdSelfList3.add(new ViewOperator(binding.tvThird33,binding.ivThird33));
+        thirdSelfList3.add(new ViewOperator(binding.tvThird34,binding.ivThird34));
+        thirdSelfListList.add(thirdSelfList3);
+
+        List<ViewOperator> thirdSelfList4 = new ArrayList<>();
+        thirdSelfList4.add(new ViewOperator(binding.tvThird41,binding.ivThird41));
+        thirdSelfList4.add(new ViewOperator(binding.tvThird42,binding.ivThird42));
+        thirdSelfListList.add(thirdSelfList4);
+
+        fourthSelfListList = new ArrayList<>();
+
+        List<ViewOperator> fourthSelfList1 = new ArrayList<>();
+        fourthSelfList1.add(new ViewOperator(binding.tvFourth11,binding.ivFourth11));
+        fourthSelfList1.add(new ViewOperator(binding.tvFourth12,binding.ivFourth12));
+        fourthSelfListList.add(fourthSelfList1);
+
+        List<ViewOperator> fourthSelfList2 = new ArrayList<>();
+        fourthSelfList2.add(new ViewOperator(binding.tvFourth21,binding.ivFourth21));
+        fourthSelfList2.add(new ViewOperator(binding.tvFourth22,binding.ivFourth22));
+        fourthSelfList2.add(new ViewOperator(binding.tvFourth23,binding.ivFourth23));
+        fourthSelfList2.add(new ViewOperator(binding.tvFourth24,binding.ivFourth24));
+        fourthSelfListList.add(fourthSelfList2);
+
+        List<ViewOperator> fourthSelfList3 = new ArrayList<>();
+        fourthSelfList3.add(new ViewOperator(binding.tvFourth31,binding.ivFourth31));
+        fourthSelfList3.add(new ViewOperator(binding.tvFourth32,binding.ivFourth32));
+        fourthSelfList3.add(new ViewOperator(binding.tvFourth33,binding.ivFourth33));
+        fourthSelfList3.add(new ViewOperator(binding.tvFourth34,binding.ivFourth34));
+        fourthSelfListList.add(fourthSelfList3);
+
+        List<ViewOperator> fourthSelfList4 = new ArrayList<>();
+        fourthSelfList4.add(new ViewOperator(binding.tvFourth41,binding.ivFourth41));
+        fourthSelfList4.add(new ViewOperator(binding.tvFourth42,binding.ivFourth42));
+        fourthSelfList4.add(new ViewOperator(binding.tvFourth43,binding.ivFourth43));
+        fourthSelfListList.add(fourthSelfList4);
     }
+
+
 
     @Override
     protected void initData() {
-
+        viewModel.getHomeRootBeanList();
     }
 
     @Override
     protected void initLiveDataObserve() {
+        viewModel.getIndexLiveData().observe(this, new Observer<Integer>() {
+            @Override
+            public void onChanged(Integer integer) {
+                firstViewOperator1.setVisibility(View.VISIBLE);
+                firstViewOperator2.setVisibility(View.VISIBLE);
+                if (integer == 0){
+                    for (ViewOperator viewOperator : secondSelfList) {
+                        viewOperator.setVisibility(View.GONE);
+                    }
+                    for (ViewOperator viewOperator : secondSpouseList) {
+                        viewOperator.setVisibility(View.GONE);
+                    }
+                    for (List<ViewOperator> viewOperators : thirdSelfListList) {
+                        for (ViewOperator viewOperator : viewOperators) {
+                            viewOperator.setVisibility(View.GONE);
+                        }
+                    }
+                    for (List<ViewOperator> viewOperators : fourthSelfListList) {
+                        for (ViewOperator viewOperator : viewOperators) {
+                            viewOperator.setVisibility(View.GONE);
+                        }
+                    }
+                }else if (integer == 1){
+                    for (int i = 0; i < secondSelfList.size(); i++) {
+                        if (secondSelfList.get(i).selfBean != null) {
+                            secondSelfList.get(i).setVisibility(View.VISIBLE);
+                        }else {
+                            secondSelfList.get(i).setVisibility(View.GONE);
+                        }
+                        if (secondSpouseList.get(i).selfBean != null) {
+                            secondSpouseList.get(i).setVisibility(View.VISIBLE);
+                        }else {
+                            secondSpouseList.get(i).setVisibility(View.GONE);
+                        }
+                    }
+                    for (List<ViewOperator> viewOperators : thirdSelfListList) {
+                        for (ViewOperator viewOperator : viewOperators) {
+                            viewOperator.setVisibility(View.GONE);
+                        }
+                    }
+                    for (List<ViewOperator> viewOperators : fourthSelfListList) {
+                        for (ViewOperator viewOperator : viewOperators) {
+                            viewOperator.setVisibility(View.GONE);
+                        }
+                    }
+                }else if (integer == 2){
+                    for (int i = 0; i < secondSelfList.size(); i++) {
+                        if (secondSelfList.get(i).selfBean != null) {
+                            secondSelfList.get(i).setVisibility(View.VISIBLE);
+                        }else {
+                            secondSelfList.get(i).setVisibility(View.GONE);
+                        }
+                        if (secondSpouseList.get(i).selfBean != null) {
+                            secondSpouseList.get(i).setVisibility(View.VISIBLE);
+                        }else {
+                            secondSpouseList.get(i).setVisibility(View.GONE);
+                        }
+                    }
+                    for (List<ViewOperator> viewOperators : thirdSelfListList) {
+                        for (ViewOperator viewOperator : viewOperators) {
+                            if (viewOperator.selfBean != null) {
+                                viewOperator.setVisibility(View.VISIBLE);
+                            }else {
+                                viewOperator.setVisibility(View.GONE);
+                            }
+                        }
+                    }
+                    for (List<ViewOperator> viewOperators : fourthSelfListList) {
+                        for (ViewOperator viewOperator : viewOperators) {
+                            viewOperator.setVisibility(View.GONE);
+                        }
+                    }
+                }else if (integer == 3){
+                    for (int i = 0; i < secondSelfList.size(); i++) {
+                        if (secondSelfList.get(i).selfBean != null) {
+                            secondSelfList.get(i).setVisibility(View.VISIBLE);
+                        }else {
+                            secondSelfList.get(i).setVisibility(View.GONE);
+                        }
+                        if (secondSpouseList.get(i).selfBean != null) {
+                            secondSpouseList.get(i).setVisibility(View.VISIBLE);
+                        }else {
+                            secondSpouseList.get(i).setVisibility(View.GONE);
+                        }
+                    }
+                    for (List<ViewOperator> viewOperators : thirdSelfListList) {
+                        for (ViewOperator viewOperator : viewOperators) {
+                            if (viewOperator.selfBean != null) {
+                                viewOperator.setVisibility(View.VISIBLE);
+                            }else {
+                                viewOperator.setVisibility(View.GONE);
+                            }
+                        }
+                    }
+                    for (List<ViewOperator> viewOperators : fourthSelfListList) {
+                        for (ViewOperator viewOperator : viewOperators) {
+                            if (viewOperator.selfBean != null) {
+                                viewOperator.setVisibility(View.VISIBLE);
+                            }else {
+                                viewOperator.setVisibility(View.GONE);
+                            }
+                        }
+                    }
+                }
+            }
+        });
+        viewModel.getHomeRootBeanLiveData().observe(this, new Observer<List<HomeRootBean>>() {
+            @Override
+            public void onChanged(List<HomeRootBean> homeRootBeans) {
+                if (homeRootBeans.size() > 0){
+                    //濉厖绗竴浠f暟鎹�
+                    firstViewOperator1.setBean(homeRootBeans.get(0),homeRootBeans.get(0).getSpouse());
+                    firstViewOperator2.setBean(homeRootBeans.get(0).getSpouse(),homeRootBeans.get(0));
 
+                    List<HomeRootBean> secondGeneration = homeRootBeans.get(0).getChildList();//绗簩浠d汉鍛�
+                    for (int i = 0; i < Math.min(homeRootBeans.get(0).getChildList().size(),4); i++) {
+                        //濉厖绗琲鍒嗘敮鐨勭浜屼唬鏁版嵁
+                        secondSelfList.get(i).setBean(secondGeneration.get(i),secondGeneration.get(i).getSpouse());
+                        secondSpouseList.get(i).setBean(secondGeneration.get(i).getSpouse(),secondGeneration.get(i));
+
+                        List<HomeRootBean> thirdGeneration = secondGeneration.get(i).getChildList();//绗琲鍒嗘敮鐨勭涓変唬浜哄憳
+                        List<ViewOperator> thirdList = thirdSelfListList.get(i);//绗琲鍒嗘敮鐨勭涓変唬瀵瑰簲view
+
+                        List<HomeRootBean> fourthGeneration = new ArrayList<>();//绗琲鍒嗘敮鐨勭鍥涗唬浜哄憳
+                        List<ViewOperator> fourthList = fourthSelfListList.get(i);//绗琲鍒嗘敮鐨勭鍥涗唬瀵瑰簲view
+
+                        for (int j = 0; j < Math.min(thirdGeneration.size(),thirdList.size()); j++) {
+                            //濉厖绗琲鍒嗘敮涓嬬殑绗笁浠f暟鎹�
+                            thirdList.get(j).setBean(thirdGeneration.get(j),thirdGeneration.get(j).getSpouse());
+
+                            fourthGeneration.addAll(thirdGeneration.get(j).getChildList());//鏀堕泦绗琲鍒嗘敮涓嬬殑鍏ㄩ儴绗洓浠d汉鍛�
+                        }
+
+                        for (int j = 0; j < Math.min(fourthGeneration.size(),fourthList.size()); j++) {
+                            //濉厖绗琲鍒嗘敮涓嬬殑绗洓浠f暟鎹�
+                            fourthList.get(j).setBean(fourthGeneration.get(j),fourthGeneration.get(j).getSpouse());
+                        }
+                    }
+                }
+            }
+        });
     }
 
     @Override
@@ -85,27 +417,79 @@
         return true;
     }
 
-    private boolean isShow = true;
-    @Override
-    public void onLeftClick(TitleBar titleBar) {
-//        if (isShow) {
-//
-//            mPopupWindow.setHeight(binding.treeView.getHeight());
-//            mPopupWindow.showAsDropDown(binding.titleBar,0,0);
-//            isShow = false;
-//        }else {
-//            binding.rvHomeMember.setVisibility(View.VISIBLE);
-//            binding.treeView.setVisibility(View.GONE);
-//            binding.layoutHomeRootNet.setVisibility(View.GONE);
-//            homeMemberAdapter.addItem(new HomeMemberBean("绗竴浠�","寮犱笁","鐢�",null,"2023.09.09","2023.09.09","12345678901","寮犳皬鍏徃","寮犲洓"));
-//            homeMemberAdapter.addItem(new HomeMemberBean("绗竴浠�","寮犱笁","鐢�",null,"2023.09.09","2023.09.09","12345678901","寮犳皬鍏徃","寮犲洓"));
-//            homeMemberAdapter.addItem(new HomeMemberBean("绗竴浠�","寮犱笁","鐢�",null,"2023.09.09","2023.09.09","12345678901","寮犳皬鍏徃","寮犲洓"));
-//            homeMemberAdapter.addItem(new HomeMemberBean("绗竴浠�","寮犱笁","鐢�",null,"2023.09.09","2023.09.09","12345678901","寮犳皬鍏徃","寮犲洓"));
-//            homeMemberAdapter.addItem(new HomeMemberBean("绗竴浠�","寮犱笁","鐢�",null,"2023.09.09","2023.09.09","12345678901","寮犳皬鍏徃","寮犲洓"));
-//            homeMemberAdapter.addItem(new HomeMemberBean("绗竴浠�","寮犱笁","鐢�",null,"2023.09.09","2023.09.09","12345678901","寮犳皬鍏徃","寮犲洓"));
-//            isShow = true;
-//        }
+    private class ViewOperator{
+        private TextView tvIndex;
+        private ImageFilterView ivHead;
+        private HomeRootBean selfBean;
+        private HomeRootBean spouseBean;
 
+        public ViewOperator(TextView tvIndex, ImageFilterView ivHead) {
+            this.tvIndex = tvIndex;
+            this.ivHead = ivHead;
+        }
 
+        public void setVisibility(int visibility){
+            tvIndex.setVisibility(visibility);
+            ivHead.setVisibility(visibility);
+        }
+        public void setBean(HomeRootBean selfBean, HomeRootBean spouseBean) {
+            this.selfBean = selfBean;
+            this.spouseBean = spouseBean;
+            if (selfBean == null){
+                tvIndex.setVisibility(View.GONE);
+                ivHead.setVisibility(View.GONE);
+                return;
+            }else {
+                tvIndex.setVisibility(View.VISIBLE);
+                ivHead.setVisibility(View.VISIBLE);
+            }
+            GlideUtil.loadImage(selfBean.getImg(), ivHead);
+            View.OnClickListener clickListener = new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    PopBasicInformationBinding mBinding= DataBindingUtil.inflate(getLayoutInflater(),R.layout.pop_basic_information,null,false);
+                    PopupWindow mPopupWindow = initPopUpWindow(mBinding.getRoot());
+                    mPopupWindow.setHeight(binding.layoutParent.getHeight());
+                    mPopupWindow.setWidth(binding.layoutParent.getWidth());
+                    mBinding.setSelfBean(selfBean);
+                    mBinding.setSpouseBean(spouseBean);
+                    mPopupWindow.showAsDropDown(binding.titleBar,0,0);
+                }
+            };
+            ivHead.setOnClickListener(clickListener);
+            tvIndex.setOnClickListener(clickListener);
+        }
+
+        public TextView getTvIndex() {
+            return tvIndex;
+        }
+
+        public void setTvIndex(TextView tvIndex) {
+            this.tvIndex = tvIndex;
+        }
+
+        public ImageFilterView getIvHead() {
+            return ivHead;
+        }
+
+        public void setIvHead(ImageFilterView ivHead) {
+            this.ivHead = ivHead;
+        }
+
+        public HomeRootBean getSelfBean() {
+            return selfBean;
+        }
+
+        public void setSelfBean(HomeRootBean selfBean) {
+            this.selfBean = selfBean;
+        }
+
+        public HomeRootBean getSpouseBean() {
+            return spouseBean;
+        }
+
+        public void setSpouseBean(HomeRootBean spouseBean) {
+            this.spouseBean = spouseBean;
+        }
     }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragmentViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragmentViewModel.java
index d6ec79c..f6332e2 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragmentViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragmentViewModel.java
@@ -1,11 +1,26 @@
 package com.application.zhangshi_app_android.ui.home;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
+import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.application.zhangshi_app_android.bean.AnnualHealthStatusBean;
+import com.application.zhangshi_app_android.bean.HomeRootBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.util.List;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
@@ -13,6 +28,9 @@
  * @desc 棣栭〉 Fragment鐨� ViewModel
  */
 public class HomeFragmentViewModel extends BaseViewModel<DataRepository> {
+    private MutableLiveData<Integer> indexLiveData;//鏄剧ず浠f暟(0,1,2,3瀵瑰簲绗竴浠�,绗簩浠�,绗笁浠�,绗洓浠�)
+    private MutableLiveData<List<HomeRootBean>> homeRootBeanLiveData;//瀹舵牴缃戞垚鍛樺垪琛�
+
 
     public HomeFragmentViewModel(@NonNull Application application) {
         super(application);
@@ -22,4 +40,72 @@
     protected DataRepository initModel() {
         return DataRepository.getInstance();
     }
+
+
+    public void getHomeRootBeanList() {
+        model.getHomeRoot("4")
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<List<HomeRootBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<List<HomeRootBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            homeRootBeanLiveData.postValue(data.getData());
+                        }else {
+                            getMessageLivaData().postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        getMessageLivaData().postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+
+    public void setIndexLiveData(MutableLiveData<Integer> indexLiveData) {
+        this.indexLiveData = indexLiveData;
+    }
+
+    public MutableLiveData<Integer> getIndexLiveData() {
+        if (indexLiveData == null) {
+            indexLiveData = new MutableLiveData<>();
+            indexLiveData.setValue(3);
+        }
+        return indexLiveData;
+    }
+
+    public void setIndexLiveData(int index) {
+        if (indexLiveData == null) {
+            indexLiveData = new MutableLiveData<>();
+        }
+        indexLiveData.setValue(index);
+    }
+
+    public MutableLiveData<List<HomeRootBean>> getHomeRootBeanLiveData() {
+        if (homeRootBeanLiveData == null) {
+            homeRootBeanLiveData = new MutableLiveData<>();
+        }
+        return homeRootBeanLiveData;
+    }
+
+    public void setHomeRootBeanLiveData(MutableLiveData<List<HomeRootBean>> homeRootBeanLiveData) {
+        this.homeRootBeanLiveData = homeRootBeanLiveData;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivity.java
index cf36ae4..ca8f00d 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivity.java
@@ -4,6 +4,7 @@
 
 import android.Manifest;
 import android.content.Intent;
+import android.text.TextUtils;
 import android.view.View;
 
 import androidx.annotation.NonNull;
@@ -11,6 +12,7 @@
 import com.android.app_base.base.view.BaseActivity;
 import com.android.app_base.manager.AppManager;
 import com.android.app_base.manager.UserManager;
+import com.android.app_base.utils.SPUtils;
 import com.android.app_base.utils.ToastUtils;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
@@ -43,6 +45,10 @@
             finish();
         }
         type = getIntent().getIntExtra(EXTRA_TYPE,0);
+        String selectLoginBackground = SPUtils.getInstance("loginBackground").getString("selectLoginBackground");
+        if (!TextUtils.isEmpty(selectLoginBackground)){
+            viewModel.getSelectLoginBackgroundLiveData().setValue(selectLoginBackground);
+        }
     }
 
     @Override
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivityViewModel.java
index 74b66c9..e6d7e44 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivityViewModel.java
@@ -38,6 +38,7 @@
     private MutableLiveData<String> againPassword = new MutableLiveData<>();
     private MutableLiveData<Boolean> passwordVisibility = new MutableLiveData<>();
     private MutableLiveData<Boolean> againPasswordVisibility = new MutableLiveData<>();
+    private MutableLiveData<String> selectLoginBackgroundLiveData = new MutableLiveData<>();//鑳屾櫙鍥�
 
     private MutableLiveData<String> value = new MutableLiveData<>();
     public LoginActivityViewModel(@NonNull Application application) {
@@ -92,7 +93,7 @@
             return;
         }
         if (captchaImageLiveData.getValue() != null){
-            model.login(new LoginRequestBean(username.getValue(),password.getValue(),captchaImageLiveData.getValue().getValue(),captchaImageLiveData.getValue().getUuid()))
+            model.login(new LoginRequestBean(username.getValue(),password.getValue(),value.getValue(),captchaImageLiveData.getValue().getUuid()))
                     .compose(RxUtils.schedulersTransformer())
                     .subscribe(new Observer<ResultData<LoginResponseBean>>() {
                         @Override
@@ -226,4 +227,12 @@
     public void setValue(MutableLiveData<String> value) {
         this.value = value;
     }
+
+    public MutableLiveData<String> getSelectLoginBackgroundLiveData() {
+        return selectLoginBackgroundLiveData;
+    }
+
+    public void setSelectLoginBackgroundLiveData(MutableLiveData<String> selectLoginBackgroundLiveData) {
+        this.selectLoginBackgroundLiveData = selectLoginBackgroundLiveData;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java
index a44e4f2..6875b77 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java
@@ -1,9 +1,17 @@
 package com.application.zhangshi_app_android.ui.main;
 
 
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.MenuItem;
+import android.view.View;
 
 import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.lifecycle.Observer;
 import androidx.viewpager2.widget.ViewPager2;
 
 import com.android.app_base.base.adapter.BaseVp2FragmentAdapter;
@@ -13,12 +21,17 @@
 import com.android.app_base.manager.AppManager;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.UpdateVersionBean;
 import com.application.zhangshi_app_android.databinding.ActivityMainBinding;
+import com.application.zhangshi_app_android.ui.dialog.VersionUpdateDialog;
 import com.application.zhangshi_app_android.ui.function.FunctionFragment;
 import com.application.zhangshi_app_android.ui.home.HomeFragment;
 import com.application.zhangshi_app_android.ui.personal_center.PersonalCenterFragment;
+import com.blankj.utilcode.util.AppUtils;
 import com.blankj.utilcode.util.ToastUtils;
 import com.google.android.material.navigation.NavigationBarView;
+
+import java.io.Serializable;
 
 /**
  * @author Ljj
@@ -26,6 +39,7 @@
  * @desc app涓婚〉
  */
 public class MainActivity extends BaseActivity<ActivityMainBinding, MainViewModel> {
+    BaseVp2FragmentAdapter<BaseFragment> mPagerAdapter;
     @Override
     public int getLayoutId() {
         return R.layout.activity_main;
@@ -42,7 +56,7 @@
 
     @Override
     public void initView() {
-        BaseVp2FragmentAdapter<BaseFragment> mPagerAdapter = new BaseVp2FragmentAdapter<>(this);
+        mPagerAdapter = new BaseVp2FragmentAdapter<>(this);
         mPagerAdapter.addFragment(HomeFragment.newInstance());
         mPagerAdapter.addFragment(FunctionFragment.newInstance());
         mPagerAdapter.addFragment(PersonalCenterFragment.newInstance());
@@ -55,7 +69,7 @@
             }
         });
         binding.mainVp.setUserInputEnabled(false);
-
+        binding.mainVp.setOffscreenPageLimit(3);
         // 涓嶄娇鐢ㄥ浘鏍囬粯璁ゅ彉鑹�
         binding.mainBnv.setItemIconTintList(null);
         binding.mainBnv.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() {
@@ -81,12 +95,28 @@
 
     @Override
     public void initData() {
-
+        viewModel.getUpdateVersion();
     }
 
     @Override
     public void initLiveDataObserve() {
+        viewModel.getUpdateVersionBeanLiveData().observe(this, new Observer<UpdateVersionBean>() {
+            @Override
+            public void onChanged(UpdateVersionBean updateVersionBean) {
+                if(updateVersionBean != null && updateVersionBean.getVersionCode()> AppUtils.getAppVersionCode()&&!TextUtils.isEmpty(updateVersionBean.getAppUrl())){
+                    VersionUpdateDialog.Builder dialogBuilder = new VersionUpdateDialog.Builder(getSelfActivity())
+                            .setContent(updateVersionBean.getContent())
+                            .setDownloadUrl(updateVersionBean.getAppUrl())
+                    ;
+                    if(updateVersionBean.isForceUpdate()){
+                        dialogBuilder.setCancelable(false);
+                        dialogBuilder.setCanceledOnTouchOutside(false);
 
+                    }
+                    dialogBuilder.show();
+                }
+            }
+        });
     }
 
     @Override
@@ -106,4 +136,21 @@
             ToastUtils.showShort("鍐嶆寜涓�娆¢��鍑�");
         }
     }
+
+    private static final String INTENT_KEY_IN_FRAGMENT_INDEX = "fragmentIndex";
+    private static final String INTENT_KEY_IN_FRAGMENT_CLASS = "fragmentClass";
+
+    public static void start(Context context) {
+        start(context, HomeFragment.class);
+    }
+
+    public static void start(Context context, Class<? extends BaseFragment> fragmentClass) {
+        Intent intent = new Intent(context, MainActivity.class);
+        intent.putExtra(INTENT_KEY_IN_FRAGMENT_CLASS, fragmentClass);
+        if (!(context instanceof Activity)) {
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        }
+        context.startActivity(intent);
+    }
+
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainViewModel.java
index 4b494b7..3e9e4ea 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainViewModel.java
@@ -1,25 +1,87 @@
 package com.application.zhangshi_app_android.ui.main;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
+import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.model.BaseModel;
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.application.zhangshi_app_android.bean.AnnualHealthStatusBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
+import com.application.zhangshi_app_android.bean.UpdateVersionBean;
+import com.application.zhangshi_app_android.data.DataRepository;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
 
 /**
  * @author Ljj
  * @date 2023.03.02. 23:07
  * @desc
  */
-public class MainViewModel extends BaseViewModel {
+public class MainViewModel extends BaseViewModel<DataRepository> {
+
+    private MutableLiveData<UpdateVersionBean> updateVersionBeanLiveData = new MutableLiveData<>();
 
     public MainViewModel(@NonNull Application application) {
         super(application);
     }
 
     @Override
-    protected BaseModel initModel() {
-        return null;
+    protected DataRepository initModel() {
+        return DataRepository.getInstance();
+    }
+
+
+    public void getUpdateVersion() {
+        model.getUpdateVersion()
+                .compose(RxUtils.schedulersTransformer())
+                .doFinally(new Action() {
+                    @Override
+                    public void run() throws Exception {
+                        changeStateView(StateViewEnum.DATA_FINISH);
+                    }
+                })
+                .subscribe(new Observer<ResultData<UpdateVersionBean>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<UpdateVersionBean> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            updateVersionBeanLiveData.postValue(data.getData());
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    public MutableLiveData<UpdateVersionBean> getUpdateVersionBeanLiveData() {
+        if (updateVersionBeanLiveData == null) updateVersionBeanLiveData = new MutableLiveData<>();
+        return updateVersionBeanLiveData;
+    }
+
+    public void setUpdateVersionBeanLiveData(MutableLiveData<UpdateVersionBean> updateVersionBeanLiveData) {
+        this.updateVersionBeanLiveData = updateVersionBeanLiveData;
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/BasicInfoActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/BasicInfoActivity.java
index fa39fb1..5c3e185 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/BasicInfoActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/BasicInfoActivity.java
@@ -1,7 +1,10 @@
 package com.application.zhangshi_app_android.ui.personal_center;
 
+import android.view.View;
+
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.GrowthExperienceInformationBean;
 import com.application.zhangshi_app_android.databinding.ActivityBasicInfoBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
 
@@ -23,21 +26,51 @@
 
     @Override
     public void initParam() {
-
+        if (getIntent().hasExtra("bean")){
+            viewModel.setInfoLiveData((GrowthExperienceInformationBean) getIntent().getSerializableExtra("bean"));
+        }
     }
 
     @Override
     public void initView() {
-
+        binding.layoutClose.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                finish();
+            }
+        });
+        binding.layoutSave.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                viewModel.saveInfo();
+            }
+        });
+        binding.tvMale.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                GrowthExperienceInformationBean bean = viewModel.getInfoLiveData().getValue();
+                if (bean != null){
+                    bean.setSex(1);
+                }
+                viewModel.setInfoLiveData(bean);            }
+        });
+        binding.tvFemale.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                GrowthExperienceInformationBean bean = viewModel.getInfoLiveData().getValue();
+                if (bean != null){
+                    bean.setSex(0);
+                }
+                viewModel.setInfoLiveData(bean);
+            }
+        });
     }
 
     @Override
     public void initData() {
-
     }
 
     @Override
     public void initLiveDataObserve() {
-
     }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/BasicInfoActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/BasicInfoActivityViewModel.java
index 0626d1f..cf829d3 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/BasicInfoActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/BasicInfoActivityViewModel.java
@@ -1,11 +1,22 @@
 package com.application.zhangshi_app_android.ui.personal_center;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
+import androidx.lifecycle.MutableLiveData;
 
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.rxbus.MessageEvent;
+import com.android.app_base.utils.rxbus.RxBus;
+import com.application.zhangshi_app_android.bean.GrowthExperienceInformationBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
 
 /**
  * @author Ljj
@@ -13,6 +24,9 @@
  * @desc 涓汉涓績鍩烘湰淇℃伅 ViewModel
  */
 public class BasicInfoActivityViewModel extends BaseViewModel<DataRepository> {
+
+    private MutableLiveData<GrowthExperienceInformationBean> infoLiveData;//涓汉淇℃伅
+
     public BasicInfoActivityViewModel(@NonNull Application application) {
         super(application);
     }
@@ -21,4 +35,55 @@
     protected DataRepository initModel() {
         return DataRepository.getInstance();
     }
+
+    /**
+     * 淇濆瓨涓汉淇℃伅
+     */
+    public void saveInfo() {
+        model.updateGrowthExperienceInformation(infoLiveData.getValue())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<String>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<String> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            messageLiveData.postValue("淇濆瓨鎴愬姛");
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });    }
+
+
+    public MutableLiveData<GrowthExperienceInformationBean> getInfoLiveData() {
+        if (infoLiveData == null){
+            infoLiveData = new MutableLiveData<>();
+        }
+        return infoLiveData;
+    }
+
+    public void setInfoLiveData(GrowthExperienceInformationBean infoBean) {
+        if (infoLiveData == null){
+            infoLiveData = new MutableLiveData<>();
+        }
+        infoLiveData.setValue(infoBean);
+    }
+
+
+
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/LoginBgChangeActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/LoginBgChangeActivity.java
new file mode 100644
index 0000000..ba3af8f
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/LoginBgChangeActivity.java
@@ -0,0 +1,160 @@
+package com.application.zhangshi_app_android.ui.personal_center;
+
+import android.view.View;
+
+import androidx.lifecycle.Observer;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.view.BaseActivity;
+import com.android.app_base.manager.UserManager;
+import com.android.app_base.utils.SPUtils;
+import com.android.app_base.utils.Utils;
+import com.application.zhangshi_app_android.BR;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.adapter.ImageRvAdapter;
+import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
+import com.application.zhangshi_app_android.databinding.ActivityLoginBgChangeBinding;
+import com.hjq.bar.TitleBar;
+import com.luck.picture.lib.entity.LocalMedia;
+import com.luck.picture.lib.interfaces.OnResultCallbackListener;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * @author Ljj
+ * @date 2023.07.20. 16:27
+ * @desc 鐧诲綍鑳屾櫙鏇存崲 Activity
+ */
+public class LoginBgChangeActivity extends BaseActivity<ActivityLoginBgChangeBinding,LoginBgChangeActivityViewModel> {
+    private ImageRvAdapter adapter;
+    private Set<String> loginBackgrounds;
+    private String selectLoginBackground;
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_login_bg_change;
+    }
+
+    @Override
+    public int getVariableId() {
+        return BR.viewModel;
+    }
+
+    @Override
+    public void initParam() {
+
+    }
+
+    @Override
+    public void initView() {
+        adapter = new ImageRvAdapter(this);
+        GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
+        binding.rvImage.setLayoutManager(gridLayoutManager);
+        binding.rvImage.setNestedScrollingEnabled(false);
+        View footerView = View.inflate(this,R.layout.item_image_footer,null);
+        binding.rvImage.addFooterView(footerView);
+        binding.rvImage.requestLayout();
+        footerView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                UserManager.getInstance().selectImage(getSelfActivity(), 9, new OnResultCallbackListener<LocalMedia>() {
+                    @Override
+                    public void onResult(ArrayList<LocalMedia> result) {
+                        if (result.size() == 0) return;
+                        for (LocalMedia media : result) {
+                            adapter.addItem(media.getRealPath());
+                            loginBackgrounds.add(media.getRealPath());
+                            SPUtils.getInstance("loginBackground").put("loginBackgrounds",loginBackgrounds);
+//                            String path = media.getRealPath();
+//                            File file = new File(path);
+//                            if (file.exists()) {
+//                                viewModel.uploadFile(file);
+//                            }
+                        }
+                    }
+
+                    @Override
+                    public void onCancel() {
+
+                    }
+                });
+            }
+        });
+        adapter.setOnChildClickListener(R.id.iv_delete, new BaseRVAdapter.OnChildClickListener() {
+            @Override
+            public void onChildClick(RecyclerView recyclerView, View childView, int position) {
+                if (Boolean.TRUE.equals(viewModel.getTypeLiveData().getValue())){
+                    //TODO 鍒犻櫎鍥剧墖
+//                    viewModel.deleteFile(adapter.getItem(position));
+                    loginBackgrounds.remove(adapter.getItem(position));
+                    adapter.removeItem(position);
+                    SPUtils.getInstance("loginBackground").put("loginBackgrounds",loginBackgrounds);
+                    if (!loginBackgrounds.contains(selectLoginBackground)){
+                        selectLoginBackground = null;
+                        SPUtils.getInstance("loginBackground").put("selectLoginBackground",selectLoginBackground);
+                    }
+                }
+            }
+        });
+        adapter.setIsEdited(true);
+        adapter.setOnItemClickListener(new BaseRVAdapter.OnItemClickListener() {
+            @Override
+            public void onItemClick(RecyclerView recyclerView, View itemView, int position) {
+                selectLoginBackground = adapter.getItem(position);
+                adapter.setSelectPosition(selectLoginBackground);
+                SPUtils.getInstance("loginBackground").put("selectLoginBackground",selectLoginBackground);
+            }
+        });
+        binding.rvImage.setAdapter(adapter);
+
+
+        binding.ivOperate.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                viewModel.setTypeLiveData(Boolean.FALSE.equals(viewModel.getTypeLiveData().getValue()));
+            }
+        });
+    }
+
+    @Override
+    public void initData() {
+        loginBackgrounds = SPUtils.getInstance("loginBackground").getStringSet("loginBackgrounds");
+        selectLoginBackground = SPUtils.getInstance("loginBackground").getString("selectLoginBackground");
+        if (loginBackgrounds != null && loginBackgrounds.size() > 0) {
+            //灏唖et杞崲涓簂ist
+            for (String loginBackground : loginBackgrounds) {
+                adapter.addItem(loginBackground);
+            }
+            adapter.setSelectPosition(selectLoginBackground);
+        }else {
+            loginBackgrounds = new HashSet<>();
+        }
+    }
+
+    @Override
+    public void initLiveDataObserve() {
+        viewModel.getTypeLiveData().observe(this, new Observer<Boolean>() {
+            @Override
+            public void onChanged(Boolean aBoolean) {
+                adapter.setIsSelected(!aBoolean);
+                binding.ivOperate.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        viewModel.setTypeLiveData(!aBoolean);
+                    }
+                });
+            }
+        });
+    }
+
+    @Override
+    public void onLeftClick(TitleBar titleBar) {
+        finish();
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/LoginBgChangeActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/LoginBgChangeActivityViewModel.java
new file mode 100644
index 0000000..d00fd66
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/LoginBgChangeActivityViewModel.java
@@ -0,0 +1,103 @@
+package com.application.zhangshi_app_android.ui.personal_center;
+
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
+import android.app.Application;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.MutableLiveData;
+
+import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
+import com.application.zhangshi_app_android.bean.UploadFileResponseBean;
+import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.io.File;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
+
+/**
+ * @author Ljj
+ * @date 2023.07.20. 16:29
+ * @desc 鐧诲綍鑳屾櫙鏇存崲 ViewModel
+ */
+public class LoginBgChangeActivityViewModel extends BaseViewModel<DataRepository> {
+
+    private MutableLiveData<Boolean> typeLiveData;//true 涓虹紪杈戠姸鎬侊紝鍙互鍒犻櫎  false 闈炵紪杈戠姸鎬侊紝鍙互閫夋嫨鏌愪篃涓�鍥剧墖浣滀负鑳屾櫙
+
+
+    public LoginBgChangeActivityViewModel(@NonNull Application application) {
+        super(application);
+    }
+
+    @Override
+    protected DataRepository initModel() {
+        return DataRepository.getInstance();
+    }
+
+    public void uploadFile(File file) {
+        RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
+        MultipartBody.Part body = MultipartBody.Part.createFormData("uploadFile", file.getName(), requestBody);
+        model.uploadFile(body)
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<UploadFileResponseBean>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<UploadFileResponseBean> resultData) {
+                        if (resultData.getCode() == CODE_SUCCESS){
+//                            FamilyMemorabiliaBean bean = getBeanMutableLiveData().getValue();
+//                            String url;
+//                            if (bean != null){
+//                                url = bean.getUrl();
+//                                if (url == null){
+//                                    url = resultData.getData().getUrl();
+//                                }else {
+//                                    url = url + "," + resultData.getData().getUrl();
+//                                }
+//                                bean.setUrl(url);
+//                                beanMutableLiveData.postValue(bean);
+//                            }
+                        }else {
+                            messageLiveData.postValue(resultData.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+
+    public MutableLiveData<Boolean> getTypeLiveData() {
+        if (typeLiveData == null) {
+            typeLiveData = new MutableLiveData<>();
+            typeLiveData.setValue(false);
+        }
+        return typeLiveData;
+    }
+
+    public void setTypeLiveData(boolean v) {
+        if (typeLiveData == null) {
+            typeLiveData = new MutableLiveData<>();
+        }
+        typeLiveData.setValue(v);
+    }
+
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragment.java b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragment.java
index 88c85bd..5e46cd3 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragment.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragment.java
@@ -1,5 +1,6 @@
 package com.application.zhangshi_app_android.ui.personal_center;
 
+import android.content.Intent;
 import android.graphics.drawable.ColorDrawable;
 import android.os.Bundle;
 import android.view.View;
@@ -9,12 +10,18 @@
 import com.android.app_base.base.view.BaseFragment;
 import com.android.app_base.manager.AppManager;
 import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.rxbus.MessageEvent;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.GrowthExperienceInformationBean;
 import com.application.zhangshi_app_android.databinding.FragmentPersonalCenterBinding;
 import com.application.zhangshi_app_android.ui.DLBaseFragment;
 import com.application.zhangshi_app_android.ui.dialog.PetOwnerInfoDialog;
 import com.application.zhangshi_app_android.ui.function.PetMemoActivity;
+
+import io.reactivex.Observer;
+import io.reactivex.functions.Consumer;
 
 /**
  * @author Ljj
@@ -54,7 +61,7 @@
         popupWindow = initPopUpWindow(view);
         setOnClickListener(
                 view.findViewById(R.id.tv_basic_info),
-                view.findViewById(R.id.tv_permission_setting)
+                view.findViewById(R.id.tv_change_login_bg)
         );
 
         binding.ivOperate.setOnClickListener(v -> {
@@ -64,7 +71,13 @@
 
     @Override
     protected void initData() {
+        viewModel.getInfo();
+    }
 
+    @Override
+    public void onResume() {
+        super.onResume();
+        initData();
     }
 
     @Override
@@ -78,9 +91,11 @@
         int id = v.getId();
         if (id == R.id.tv_basic_info){
             popupWindow.dismiss();
-            AppManager.getAppManager().startActivity(BasicInfoActivity.class);
-        }else if (id == R.id.tv_permission_setting){
+            AppManager.getAppManager().startActivity(new Intent(getSelfActivity(),BasicInfoActivity.class)
+                    .putExtra("bean",viewModel.getInfoLiveData().getValue()));
+        }else if (id == R.id.tv_change_login_bg){
             popupWindow.dismiss();
+            AppManager.getAppManager().startActivity(LoginBgChangeActivity.class);
         }
     }
 
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragmentViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragmentViewModel.java
index 028002a..4f0edf6 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragmentViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragmentViewModel.java
@@ -1,11 +1,20 @@
 package com.application.zhangshi_app_android.ui.personal_center;
 
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
 import android.app.Application;
 
 import androidx.annotation.NonNull;
+import androidx.lifecycle.MutableLiveData;
 
 import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.application.zhangshi_app_android.bean.GrowthExperienceInformationBean;
 import com.application.zhangshi_app_android.data.DataRepository;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
 
 /**
  * @author Ljj
@@ -13,6 +22,7 @@
  * @desc 涓汉涓績 Fragment鐨� ViewModel
  */
 public class PersonalCenterFragmentViewModel extends BaseViewModel<DataRepository> {
+    private MutableLiveData<GrowthExperienceInformationBean> infoLiveData;//涓汉淇℃伅
     public PersonalCenterFragmentViewModel(@NonNull Application application) {
         super(application);
     }
@@ -21,4 +31,53 @@
     protected DataRepository initModel() {
         return DataRepository.getInstance();
     }
+
+    /**
+     * 鑾峰彇涓汉淇℃伅
+     */
+    public void getInfo(){
+        model.getGrowthExperienceInformation()
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<GrowthExperienceInformationBean>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<GrowthExperienceInformationBean> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            getInfoLiveData().postValue(data.getData());
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+
+    public MutableLiveData<GrowthExperienceInformationBean> getInfoLiveData() {
+        if (infoLiveData == null){
+            infoLiveData = new MutableLiveData<>();
+        }
+        return infoLiveData;
+    }
+
+    public void setInfoLiveData(GrowthExperienceInformationBean infoBean) {
+        if (infoLiveData == null){
+            infoLiveData = new MutableLiveData<>();
+        }
+        infoLiveData.setValue(infoBean);
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/widget/TreeView.java b/app/src/main/java/com/application/zhangshi_app_android/widget/TreeView.java
index 07caf2b..1261c72 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/widget/TreeView.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/widget/TreeView.java
@@ -4,6 +4,7 @@
 import android.content.Context;
 import android.graphics.Canvas;
 import android.util.AttributeSet;
+import android.util.Log;
 import android.view.GestureDetector;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
@@ -11,8 +12,10 @@
 import android.view.View;
 import android.widget.OverScroller;
 import android.widget.RelativeLayout;
+import android.widget.Toast;
 
 import androidx.annotation.Nullable;
+import androidx.constraintlayout.utils.widget.ImageFilterView;
 
 import com.application.zhangshi_app_android.R;
 
@@ -48,7 +51,9 @@
     // 鏀惧ぇ鍚庢墜鎸囩Щ鍔ㄤ綅缃�
     private final OffSet moveOffset = new OffSet();
     private boolean isDoubleClickZoomIn = false;
-    
+
+
+    private ImageFilterView imageFilterView;
     public TreeView(Context context) {
         this(context, null);
     }
@@ -70,6 +75,18 @@
         layoutParams.alignWithParent = true;
         layoutParams.addRule(CENTER_IN_PARENT);
         addView(treeView,layoutParams);
+
+        imageFilterView = treeView.findViewById(R.id.imageFilterView);
+        imageFilterView.setOnTouchListener(new OnTouchListener() {
+            @Override
+            public boolean onTouch(View v, MotionEvent event) {
+                Log.d("TAG", "onTouch: getX"+event.getX());
+                Log.d("TAG", "onTouch: getY"+event.getY());
+                Toast.makeText(mContext,"琚Е鎽�",Toast.LENGTH_SHORT).show();
+                return false;
+            }
+        });
+
         mGestureDetector = new GestureDetector(context, new MyGestureListener());
         mScaleGestureDetector = new ScaleGestureDetector(context, new MyScaleGestureListener());
         mOverScroller = new OverScroller(context);
@@ -102,24 +119,40 @@
         bigScale = (float) getHeight() / (float) treeView.getMeasuredHeight() * ZOOM_SCALE;
 
         // 褰撳墠缂╂斁姣斾緥 = 缂╂斁鍓嶇殑姣斾緥
-        currentScale = smallScale;
+        currentScale = 1;
+
+        Log.d("TAG", "onSizeChanged: getX"+imageFilterView.getX());
+        Log.d("TAG", "onSizeChanged: getY"+imageFilterView.getY());
     }
 
+//    @Override
+//    public boolean dispatchTouchEvent(MotionEvent ev) {
+//        // 瀵硅Е鎽镐簨浠惰繘琛岀缉鏀惧拰骞崇Щ鍙樻崲
+//        MotionEvent event = MotionEvent.obtain(ev);
+//        event.setLocation((event.getX() - moveOffset.getPhyX()) / currentScale, (event.getY() - moveOffset.getPhyY()) / currentScale);
+//
+//        // 灏嗚Е鎽镐簨浠朵紶閫掔粰瀛愯鍥�
+//        boolean handled = super.dispatchTouchEvent(event);
+//
+//        // 鍥炴敹瑙︽懜浜嬩欢
+//        event.recycle();
+//
+//        return handled;
+//    }
     @Override
     protected void onDraw(Canvas canvas) {
         super.onDraw(canvas);
         canvas.scale(currentScale, currentScale, getWidth() / 2f, getHeight() / 2f);
-        // 绉诲姩鐢诲竷
-        if (isDoubleClickZoomIn){
-            if (currentScale <= bigScale) {//鍙屽嚮鏀瑰彉鐘舵�佹椂鍋忕Щ閲忛殢鐫�缂╂斁姣斾緥鍙樺寲
-                float a = (currentScale - smallScale) / (bigScale - smallScale);
-                moveOffset.setPhyX(moveOffset.getPhyX() * a);
-                moveOffset.setPhyY(moveOffset.getPhyY() * a);
-            }
-        }
+//        // 绉诲姩鐢诲竷
+//        if (isDoubleClickZoomIn){
+//            if (currentScale <= bigScale) {//鍙屽嚮鏀瑰彉鐘舵�佹椂鍋忕Щ閲忛殢鐫�缂╂斁姣斾緥鍙樺寲
+//                float a = (currentScale - smallScale) / (bigScale - smallScale);
+//                moveOffset.setPhyX(moveOffset.getPhyX() * a);
+//                moveOffset.setPhyY(moveOffset.getPhyY() * a);
+//            }
+//        }
         canvas.translate(moveOffset.getLogX(currentScale), moveOffset.getLogY(currentScale));
     }
-
     @Override
     public boolean onTouchEvent(MotionEvent event) {
         // 鍙屾寚鎿嶄綔
@@ -137,6 +170,9 @@
         // 鍙屽嚮鎯呭喌 : 绗簩娆℃姮璧穂ACTION_POINTER_UP]鏃跺�欒Е鍙�
         @Override
         public boolean onSingleTapUp(MotionEvent e) {
+            Log.d("onDown", "onUp: ");
+            Log.d("onDown", "onUp: e.getX() = " + e.getX());
+            Log.d("onDown", "onUp: e.getY() = " + e.getY());
             return super.onSingleTapUp(e);
         }
 
@@ -193,6 +229,7 @@
             return true;
         }
 
+
         // 鍙屽嚮 -- 绗簩娆℃寜涓嬫椂鍊欒Е鍙� (40ms - 300ms) [灏忎簬40ms鏄负浜嗛槻姝㈡姈鍔╙
         @Override
         public boolean onDoubleTap(MotionEvent e) {
diff --git a/app/src/main/res/drawable-xhdpi/bg_home_root_net_detail.png b/app/src/main/res/drawable-xhdpi/bg_home_root_net_detail.png
index e8c67bf..94ab702 100644
--- a/app/src/main/res/drawable-xhdpi/bg_home_root_net_detail.png
+++ b/app/src/main/res/drawable-xhdpi/bg_home_root_net_detail.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/bg_home_root_net_detail_first.png b/app/src/main/res/drawable-xhdpi/bg_home_root_net_detail_first.png
new file mode 100644
index 0000000..446e94e
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/bg_home_root_net_detail_first.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/bg_home_root_net_detail_second.png b/app/src/main/res/drawable-xhdpi/bg_home_root_net_detail_second.png
new file mode 100644
index 0000000..eac7ff7
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/bg_home_root_net_detail_second.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/bg_home_root_net_detail_third.png b/app/src/main/res/drawable-xhdpi/bg_home_root_net_detail_third.png
new file mode 100644
index 0000000..b35c7b0
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/bg_home_root_net_detail_third.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_image_select.png b/app/src/main/res/drawable-xhdpi/ic_image_select.png
new file mode 100644
index 0000000..065cd70
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_image_select.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_indication_normal.png b/app/src/main/res/drawable-xhdpi/ic_indication_normal.png
new file mode 100644
index 0000000..017b637
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_indication_normal.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_indication_selected.png b/app/src/main/res/drawable-xhdpi/ic_indication_selected.png
new file mode 100644
index 0000000..2518c5c
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_indication_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_move_to_top.png b/app/src/main/res/drawable-xhdpi/ic_move_to_top.png
new file mode 100644
index 0000000..f41c4b7
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_move_to_top.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_operate_select_white.png b/app/src/main/res/drawable-xhdpi/ic_operate_select_white.png
new file mode 100644
index 0000000..9f06665
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_operate_select_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail.png b/app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail.png
index 85043c7..1233ca6 100644
--- a/app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail.png
+++ b/app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail_exp.png b/app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail_exp.png
new file mode 100644
index 0000000..ac50f78
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail_exp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail_first.png b/app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail_first.png
new file mode 100644
index 0000000..d74cafb
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail_first.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail_second.png b/app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail_second.png
new file mode 100644
index 0000000..aa5b463
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail_second.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail_third.png b/app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail_third.png
new file mode 100644
index 0000000..c3c5e3b
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail_third.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_image_select.png b/app/src/main/res/drawable-xxhdpi/ic_image_select.png
new file mode 100644
index 0000000..0ce2063
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_image_select.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_indication_normal.png b/app/src/main/res/drawable-xxhdpi/ic_indication_normal.png
new file mode 100644
index 0000000..047c03a
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_indication_normal.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_indication_selected.png b/app/src/main/res/drawable-xxhdpi/ic_indication_selected.png
new file mode 100644
index 0000000..8ec4108
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_indication_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_move_to_top.png b/app/src/main/res/drawable-xxhdpi/ic_move_to_top.png
new file mode 100644
index 0000000..dca3ca6
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_move_to_top.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_operate_select_white.png b/app/src/main/res/drawable-xxhdpi/ic_operate_select_white.png
new file mode 100644
index 0000000..33ebe71
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_operate_select_white.png
Binary files differ
diff --git a/app/src/main/res/drawable/shape_f3f3f3_8.xml b/app/src/main/res/drawable/shape_f3f3f3_8.xml
new file mode 100644
index 0000000..98a232e
--- /dev/null
+++ b/app/src/main/res/drawable/shape_f3f3f3_8.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <corners android:radius="8dp"/>
+    <solid android:color="#f3f3f3"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_fffad1e0_10_10_0_10.xml b/app/src/main/res/drawable/shape_fffad1e0_10_10_0_10.xml
index 51061a0..288382d 100644
--- a/app/src/main/res/drawable/shape_fffad1e0_10_10_0_10.xml
+++ b/app/src/main/res/drawable/shape_fffad1e0_10_10_0_10.xml
@@ -4,6 +4,6 @@
     <corners
         android:topLeftRadius="10dp"
         android:topRightRadius="10dp"
-        android:bottomLeftRadius="0dp"
-        android:bottomRightRadius="10dp" />
+        android:bottomLeftRadius="10dp"
+        android:bottomRightRadius="0dp" />
 </shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_gradient_update_progress.xml b/app/src/main/res/drawable/shape_gradient_update_progress.xml
new file mode 100644
index 0000000..6d8dab2
--- /dev/null
+++ b/app/src/main/res/drawable/shape_gradient_update_progress.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:id="@android:id/background"
+        android:drawable="@drawable/shape_f3f3f3_8"
+        />
+    <item android:id="@android:id/progress">
+        <clip>
+            <shape>
+                <gradient android:type="linear"
+                    android:startColor="#CC2F63F8"
+                    android:endColor="#CCE30B9A"
+                    />
+                <corners android:radius="@dimen/dp_8" />
+            </shape>
+        </clip>
+    </item>
+</layer-list>
diff --git a/app/src/main/res/layout/acitivity_tourism_experience_detail.xml b/app/src/main/res/layout/acitivity_tourism_experience_detail.xml
index 5a040a8..67134bc 100644
--- a/app/src/main/res/layout/acitivity_tourism_experience_detail.xml
+++ b/app/src/main/res/layout/acitivity_tourism_experience_detail.xml
@@ -4,6 +4,7 @@
     xmlns:tools="http://schemas.android.com/tools">
 
     <data>
+        <import type="android.text.TextUtils"/>
         <variable
             name="viewModel"
             type="com.application.zhangshi_app_android.ui.function.TourismExperienceDetailActivityViewModel" />
@@ -18,9 +19,25 @@
         <com.android.app_base.widget.ExtendTitleBar
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            app:title="@{viewModel.beanLiveData.title}"
+            app:title="@{TextUtils.isEmpty(viewModel.beanLiveData.title)?`鏂板缓鏃呮父缁忓巻`:viewModel.beanLiveData.title}"
             app:titleGravity="left"
-            />
+            app:leftIcon="@drawable/ic_back"
+            >
+            <FrameLayout
+                android:layout_width="24dp"
+                android:layout_height="24dp"
+                android:layout_marginHorizontal="16dp"
+                android:layout_gravity="center_vertical|end"
+                >
+                <ImageView
+                    android:id="@+id/iv_operate"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:background="@{viewModel.typeLiveData?@drawable/ic_operate_finish:@drawable/ic_operate}"
+                    />
+            </FrameLayout>
+        </com.android.app_base.widget.ExtendTitleBar>
         <ScrollView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -48,9 +65,11 @@
                     android:inputType="text"
                     android:autofillHints="creditCardNumber"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ユ爣棰榒:``}"
                     android:textColor="#DE000000"
                     android:textSize="16sp"
                     android:text="@={viewModel.beanLiveData.title}"
+                    android:enabled="@{viewModel.typeLiveData}"
                     />
 
                 <TextView
@@ -63,13 +82,19 @@
                     />
 
                 <EditText
+                    android:id="@+id/et_time"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.time}"
-                    android:textSize="16sp" />
+                    android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇烽�夋嫨鏃堕棿`:``}"
+                    android:text="@={viewModel.beanLiveData.happenTime}"
+                    android:textSize="16sp"
+                    android:clickable="@{viewModel.typeLiveData}"
+                    app:isEditable="@{false}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -84,9 +109,12 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ュ湴鐐筦:``}"
                     android:text="@={viewModel.beanLiveData.address}"
                     android:textColor="#DE000000"
-                    android:textSize="16sp" />
+                    android:enabled="@{viewModel.typeLiveData}"
+                    android:textSize="16sp"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -101,9 +129,12 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ヤ汉鐗ー:``}"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.person}"
-                    android:textSize="16sp" />
+                    android:text="@={viewModel.beanLiveData.people}"
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -118,9 +149,12 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ユ梾鏈焋:``}"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.travelTime}"
-                    android:textSize="16sp" />
+                    android:text="@={viewModel.beanLiveData.travelPeriod}"
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -135,9 +169,12 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ユ寔璇佹梾娓竊:``}"
                     android:textColor="#DE000000"
                     android:text="@={viewModel.beanLiveData.certificate}"
-                    android:textSize="16sp" />
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -150,10 +187,11 @@
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
-                    android:inputType="text"
+                    android:inputType="numberDecimal"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ヨ垂鐢╜:``}"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.cost}"
+                    android:text="@={viewModel.beanLiveData.totalPrice}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -164,6 +202,7 @@
                     android:textSize="12sp"
                     />
                 <EditText
+                    android:id="@+id/et_self"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
@@ -172,8 +211,10 @@
                     android:textColor="#DE000000"
                     tools:text="鑷垂"
                     android:drawablePadding="10dp"
+                    app:isEditable="@{false}"
+                    android:clickable="@{viewModel.typeLiveData}"
                     android:drawableStart="@drawable/ic_radio_button_selected"
-                    android:text="@{viewModel.beanLiveData.free==1?`鍏垂`:`鑷垂`}"
+                    android:text="@{viewModel.beanLiveData.self==0?`鍏垂`:`鑷垂`}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -189,9 +230,12 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ュ娉╜:``}"
                     android:textColor="#DE000000"
                     android:text="@={viewModel.beanLiveData.remark}"
-                    android:textSize="16sp" />
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
diff --git a/app/src/main/res/layout/activity_annual_health_status.xml b/app/src/main/res/layout/activity_annual_health_status.xml
index f9363d1..dc6cb6b 100644
--- a/app/src/main/res/layout/activity_annual_health_status.xml
+++ b/app/src/main/res/layout/activity_annual_health_status.xml
@@ -12,13 +12,15 @@
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical">
+        android:background="@color/color_normal_background"
+        >
 
         <com.android.app_base.widget.ExtendTitleBar
             android:id="@+id/titleBar"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             app:layout_constraintTop_toTopOf="parent"
+            app:leftIcon="@drawable/ic_back"
             >
             <FrameLayout
                 android:layout_width="24dp"
@@ -50,7 +52,7 @@
                     android:text="骞村害鍋ュ悍鎯呭喌"
                     android:layout_weight="1"
                     android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
+                    android:textSize="20sp"
                     />
                 <ImageView
                     android:id="@+id/iv_search_default"
@@ -89,7 +91,10 @@
                     android:imeOptions="actionSearch"
                     android:text=""
                     android:singleLine="true"
-                    android:hint="鍦ㄢ�滃澶т簨璁板唴鎼滅储鈥�"
+                    android:hint="鍦ㄢ�滃勾搴﹀仴搴锋儏鍐碘�濆唴鎼滅储"
+                    android:focusable="false"
+                    android:clickable="false"
+                    android:editable="false"
                     />
                 <ImageView
                     android:id="@+id/iv_search_type"
@@ -107,6 +112,7 @@
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:gravity="center"
+            android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -126,19 +132,277 @@
                 android:textColor="#73000000"
                 />
         </LinearLayout>
-
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/recyclerView"
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@color/color_normal_background"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleBar"
-            app:layout_constraintVertical_bias="1.0"
-            tools:itemCount="20"
-            tools:layout_editor_absoluteX="-81dp"
-            tools:listitem="@layout/item_family_assets" />
+            >
+            <com.scwang.smart.refresh.header.MaterialHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                />
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                tools:itemCount="20"
+                tools:listitem="@layout/item_annual_health_status" />
+            <com.scwang.smart.refresh.footer.BallPulseFooter
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
 
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="棰樺悕"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.title}"
+                        android:hint="璇疯緭鍏ラ鍚�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鏃堕棿"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="4"
+                        android:gravity="center"
+                        >
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_start_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:layout_marginStart="6dp"
+                            android:text="@={viewModel.requestBeanLiveData.happenStartTime}"
+                            android:hint="寮�濮嬫椂闂�"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            android:lines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鈥�"
+                            />
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_end_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:gravity="center"
+                            android:layout_height="wrap_content"
+                            android:text="@={viewModel.requestBeanLiveData.happenEndTime}"
+                            android:hint="缁撴潫鏃堕棿"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <ImageView
+                            android:id="@+id/iv_time_clear"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/ic_clear"
+                            android:visibility="invisible"
+                            />
+                    </LinearLayout>
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="绫诲埆"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.type}"
+                        android:hint="璇疯緭鍏ョ被鍒�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="灏辩梾鍖婚櫌"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        android:lines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.hospital}"
+                        android:hint="璇疯緭鍏ュ氨鐥呭尰闄�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
+        <com.google.android.material.floatingactionbutton.FloatingActionButton
+            android:id="@+id/fab_add"
+            android:layout_width="56dp"
+            android:layout_height="56dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginEnd="25dp"
+            android:layout_marginBottom="@dimen/dp_44"
+            android:src="@drawable/ic_add"
+            app:fabCustomSize="56dp"
+            />
     </androidx.constraintlayout.widget.ConstraintLayout>
 
 </layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_annual_health_status_detail.xml b/app/src/main/res/layout/activity_annual_health_status_detail.xml
index 53366db..8413cc2 100644
--- a/app/src/main/res/layout/activity_annual_health_status_detail.xml
+++ b/app/src/main/res/layout/activity_annual_health_status_detail.xml
@@ -18,9 +18,25 @@
         <com.android.app_base.widget.ExtendTitleBar
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            app:title="骞村害鍋ュ悍鐘跺喌"
+            app:title="@{viewModel.beanLiveData.id==0?`鏂板缓骞村害鍋ュ悍鐘跺喌`:viewModel.beanLiveData.title}"
             app:titleGravity="left"
-            />
+            app:leftIcon="@drawable/ic_back"
+            >
+            <FrameLayout
+                android:layout_width="24dp"
+                android:layout_height="24dp"
+                android:layout_marginHorizontal="16dp"
+                android:layout_gravity="center_vertical|end"
+                >
+
+                <ImageView
+                    android:id="@+id/iv_operate"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:background="@{viewModel.typeLiveData?@drawable/ic_operate_finish:@drawable/ic_operate}" />
+            </FrameLayout>
+        </com.android.app_base.widget.ExtendTitleBar>
         <ScrollView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -41,17 +57,36 @@
                     android:textSize="12sp"
                     />
 
-
-                <EditText
+                <androidx.constraintlayout.widget.ConstraintLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:inputType="text"
-                    android:autofillHints="creditCardNumber"
-                    android:textColorHint="#6b000000"
-                    android:textColor="#DE000000"
-                    android:textSize="16sp"
-                    android:text="@{String.valueOf(viewModel.beanLiveData.id)}"
-                    />
+                    >
+                    <EditText
+                        android:id="@+id/et_id"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:inputType="text"
+                        android:textColorHint="#6b000000"
+                        android:textColor="#DE000000"
+                        android:textSize="16sp"
+                        android:text="@{viewModel.beanLiveData.id==0?`-1`:viewModel.beanLiveData.id+``}"
+                        android:enabled="false"
+                        android:src="@color/color_non_editable"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        />
+                    <View
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@color/color_non_editable"
+                        app:layout_constraintTop_toTopOf="@id/et_id"
+                        app:layout_constraintStart_toStartOf="@id/et_id"
+                        app:layout_constraintBottom_toBottomOf="@id/et_id"
+                        app:layout_constraintEnd_toEndOf="@id/et_id"
+                        android:visibility="@{viewModel.typeLiveData}"
+                        />
+                </androidx.constraintlayout.widget.ConstraintLayout>
+
 
                 <TextView
                     android:layout_width="wrap_content"
@@ -63,13 +98,20 @@
                     />
 
                 <EditText
+                    android:id="@+id/et_time"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
+                    android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇烽�夋嫨鏃堕棿`:``}"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.time}"
-                    android:textSize="16sp" />
+                    android:text="@={viewModel.beanLiveData.checkTime}"
+                    android:textSize="16sp"
+                    app:isEditable="@{false}"
+                    android:clickable="@{viewModel.typeLiveData}"
+
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -84,9 +126,12 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ョ被鍒玚:``}"
                     android:text="@={viewModel.beanLiveData.type}"
                     android:textColor="#DE000000"
-                    android:textSize="16sp" />
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -101,14 +146,17 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ュ氨鐥呭尰闄:``}"
                     android:textColor="#DE000000"
                     android:text="@={viewModel.beanLiveData.hospital}"
-                    android:textSize="16sp" />
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
                     android:layout_height="wrap_content"
-                    android:text="鎻愬悕"
+                    android:text="棰樺悕"
                     android:textColor="#767375"
                     android:textSize="12sp"
                     />
@@ -118,9 +166,12 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ラ鍚峘:``}"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.name}"
-                    android:textSize="16sp" />
+                    android:text="@={viewModel.beanLiveData.title}"
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -135,9 +186,12 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ユ敞鎰忎簨椤筦:``}"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.attention}"
-                    android:textSize="16sp" />
+                    android:text="@={viewModel.beanLiveData.notice}"
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -152,9 +206,12 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ュ娉╜:``}"
                     android:textColor="#DE000000"
                     android:text="@={viewModel.beanLiveData.remark}"
-                    android:textSize="16sp" />
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
diff --git a/app/src/main/res/layout/activity_basic_info.xml b/app/src/main/res/layout/activity_basic_info.xml
index 6fcc5b9..e3a0094 100644
--- a/app/src/main/res/layout/activity_basic_info.xml
+++ b/app/src/main/res/layout/activity_basic_info.xml
@@ -80,11 +80,12 @@
                         android:textSize="12sp"
                         android:alpha="0.54"
                         />
-                    <TextView
+                    <EditText
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:text="寮犱笁"
+                        android:text="@={viewModel.infoLiveData.nickName}"
                         android:textColor="#DE000000"
+                        android:background="@null"
                         android:textSize="16sp"
                         android:layout_marginTop="5dp"
                         />
@@ -110,12 +111,13 @@
                         android:textSize="12sp"
                         android:alpha="0.54"
                         />
-                    <TextView
+                    <EditText
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:text="12345678901"
+                        android:text="@={viewModel.infoLiveData.phoneNumber}"
                         android:textColor="#DE000000"
                         android:textSize="16sp"
+                        android:background="@null"
                         android:layout_marginTop="5dp"
                         />
                     <View
@@ -146,12 +148,13 @@
                         android:textSize="12sp"
                         android:alpha="0.54"
                         />
-                    <TextView
+                    <EditText
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:text="zhang@126.com"
+                        android:text="@={viewModel.infoLiveData.email}"
                         android:textColor="#DE000000"
                         android:textSize="16sp"
+                        android:background="@null"
                         android:layout_marginTop="5dp"
                         />
                     <View
@@ -182,12 +185,13 @@
                         android:layout_marginTop="5dp"
                         >
                         <TextView
+                            android:id="@+id/tv_male"
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鐢�"
                             android:textColor="#DE000000"
                             android:textSize="16sp"
-                            android:drawableStart="@drawable/ic_radio_button_selected"
+                            android:drawableStart="@{viewModel.infoLiveData.sex==1?@drawable/ic_radio_button_selected:@drawable/ic_radio_button_unselected}"
                             android:drawablePadding="5dp"
                             />
                         <View
@@ -196,12 +200,13 @@
                             android:layout_weight="2"
                             />
                         <TextView
+                            android:id="@+id/tv_female"
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="濂�"
                             android:textColor="#DE000000"
                             android:textSize="16sp"
-                            android:drawableStart="@drawable/ic_radio_button_unselected"
+                            android:drawableStart="@{viewModel.infoLiveData.sex==0?@drawable/ic_radio_button_selected:@drawable/ic_radio_button_unselected}"
                             android:drawablePadding="5dp"
                             />
                         <View
@@ -227,6 +232,7 @@
                 android:layout_marginTop="60dp"
                 >
                 <androidx.cardview.widget.CardView
+                    android:id="@+id/layout_save"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     app:cardCornerRadius="10dp"
@@ -244,6 +250,7 @@
                         />
                 </androidx.cardview.widget.CardView>
                 <androidx.cardview.widget.CardView
+                    android:id="@+id/layout_close"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     app:cardCornerRadius="10dp"
@@ -251,15 +258,15 @@
                     app:cardElevation="0dp"
                     android:layout_marginStart="30dp"
                     >
+
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:textSize="16sp"
+                        android:layout_marginHorizontal="36dp"
+                        android:layout_marginVertical="12dp"
                         android:text="鍏抽棴"
                         android:textColor="#FF282828"
-                        android:layout_marginVertical="12dp"
-                        android:layout_marginHorizontal="36dp"
-                        />
+                        android:textSize="16sp" />
                 </androidx.cardview.widget.CardView>
             </LinearLayout>
         </LinearLayout>
diff --git a/app/src/main/res/layout/activity_certificate_of_honor.xml b/app/src/main/res/layout/activity_certificate_of_honor.xml
index b234c6f..f00f761 100644
--- a/app/src/main/res/layout/activity_certificate_of_honor.xml
+++ b/app/src/main/res/layout/activity_certificate_of_honor.xml
@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools">
+    xmlns:tools="http://schemas.android.com/tools"
+    >
 
     <data>
         <variable
@@ -10,10 +11,12 @@
     </data>
 
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/parentLayout"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical">
-
+        android:background="@color/color_normal_background"
+        android:orientation="vertical"
+        >
         <com.android.app_base.widget.ExtendTitleBar
             android:id="@+id/titleBar"
             android:layout_width="match_parent"
@@ -34,32 +37,6 @@
                     android:background="@drawable/ic_operate"
                     />
             </FrameLayout>
-
-            <LinearLayout
-                android:id="@+id/layout_default"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:layout_marginHorizontal="56dp"
-                android:gravity="center_vertical"
-                >
-                <TextView
-                    android:id="@+id/tv_title"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_marginStart="16dp"
-                    android:text="鑽h獕璇佷功锛堜粎渚涙煡鐪嬶級"
-                    android:layout_weight="1"
-                    android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
-                    />
-                <ImageView
-                    android:id="@+id/iv_search_default"
-                    android:layout_width="@dimen/dp_24"
-                    android:layout_height="@dimen/dp_24"
-                    android:background="@drawable/ic_search"
-                    />
-            </LinearLayout>
-
             <LinearLayout
                 android:id="@+id/layout_search"
                 android:layout_width="match_parent"
@@ -87,9 +64,11 @@
                     android:textColor="#61000000"
                     android:background="@null"
                     android:imeOptions="actionSearch"
-                    android:text=""
                     android:singleLine="true"
-                    android:hint="鍦ㄢ�滃澶т簨璁板唴鎼滅储鈥�"
+                    android:text="鍦ㄢ�滆崳瑾夎瘉涔︹�滃唴鎼滅储"
+                    android:editable="false"
+                    android:focusable="false"
+                    android:clickable="false"
                     />
                 <ImageView
                     android:id="@+id/iv_search_type"
@@ -99,14 +78,40 @@
                     />
             </LinearLayout>
 
+            <LinearLayout
+                android:id="@+id/layout_default"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginHorizontal="56dp"
+                android:gravity="center_vertical"
+                >
+                <TextView
+                    android:id="@+id/tv_title"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="16dp"
+                    android:text="鑽h獕璇佷功濂栭」锛堜粎渚涙煡鐪嬶級"
+                    android:textColor="@color/white"
+                    android:layout_weight="1"
+                    android:textSize="20sp"
+                    app:textOverflowMode="@{4}"
+                    />
+                <ImageView
+                    android:id="@+id/iv_search_default"
+                    android:layout_width="@dimen/dp_24"
+                    android:layout_height="@dimen/dp_24"
+                    android:background="@drawable/ic_search"
+                    android:layout_marginStart="20dp"
+                    />
+            </LinearLayout>
         </com.android.app_base.widget.ExtendTitleBar>
-
         <LinearLayout
             android:id="@+id/layout_data_null"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:gravity="center"
+            android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -121,23 +126,194 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="18dp"
-                android:text="鏆傛椂杩樻病鏈夋暟鎹摝~\n鐐瑰嚮鈥濓紜鈥濈珛鍗冲垱寤�"
+                android:text="鏆傛椂杩樻病鏈夋暟鎹摝~"
                 android:textSize="14sp"
                 android:textColor="#73000000"
                 />
         </LinearLayout>
 
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/recyclerView"
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@color/color_normal_background"
-            app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleBar"
-            app:layout_constraintVertical_bias="1.0"
-            tools:itemCount="20"
-            />
+            app:layout_constraintBottom_toBottomOf="parent"
+            >
+            <com.scwang.smart.refresh.header.MaterialHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                />
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                tools:itemCount="20"
+                tools:listitem="@layout/item_family_assets"
+                />
 
+            <com.scwang.smart.refresh.footer.BallPulseFooter
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="绫诲瀷"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.type}"
+                        android:hint="璇疯緭鍏ョ被鍨�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鍚嶇О"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.name}"
+                        android:hint="璇疯緭鍏ュ悕绉�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="绾у埆"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        android:lines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.grade}"
+                        android:hint="璇疯緭鍏ョ骇鍒�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
     </androidx.constraintlayout.widget.ConstraintLayout>
 
 </layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_certificate_of_honor_detail.xml b/app/src/main/res/layout/activity_certificate_of_honor_detail.xml
index 322d4d3..412ff48 100644
--- a/app/src/main/res/layout/activity_certificate_of_honor_detail.xml
+++ b/app/src/main/res/layout/activity_certificate_of_honor_detail.xml
@@ -52,24 +52,6 @@
                     android:textSize="16sp"
                     android:text="@={viewModel.beanLiveData.name}"
                     />
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_marginTop="10dp"
-                    android:layout_height="wrap_content"
-                    android:text="鏃堕棿"
-                    android:textColor="#767375"
-                    android:textSize="12sp"
-                    />
-
-                <EditText
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="2dp"
-                    android:inputType="text"
-                    android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.time}"
-                    android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -102,7 +84,7 @@
                     android:inputType="text"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.certificateNumber}"
+                    android:text="@={viewModel.beanLiveData.idNo}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -119,7 +101,7 @@
                     android:inputType="text"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.level}"
+                    android:text="@={viewModel.beanLiveData.grade}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -136,7 +118,7 @@
                     android:inputType="text"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.effectiveTime}"
+                    android:text="@={viewModel.beanLiveData.validityDate}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -153,7 +135,7 @@
                     android:inputType="text"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@{viewModel.beanLiveData.getTime}"
+                    android:text="@{viewModel.beanLiveData.getDate}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
diff --git a/app/src/main/res/layout/activity_clean_storage.xml b/app/src/main/res/layout/activity_clean_storage.xml
index 6a7324d..b43b181 100644
--- a/app/src/main/res/layout/activity_clean_storage.xml
+++ b/app/src/main/res/layout/activity_clean_storage.xml
@@ -12,7 +12,8 @@
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical">
+        android:background="@color/color_normal_background"
+        >
 
         <com.android.app_base.widget.ExtendTitleBar
             android:id="@+id/titleBar"
@@ -50,7 +51,7 @@
                     android:text="淇濇磥鏀剁撼"
                     android:layout_weight="1"
                     android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
+                    android:textSize="20sp"
                     />
                 <ImageView
                     android:id="@+id/iv_search_default"
@@ -87,9 +88,11 @@
                     android:textColor="#61000000"
                     android:background="@null"
                     android:imeOptions="actionSearch"
-                    android:text=""
                     android:singleLine="true"
-                    android:hint="鍦ㄢ�滃澶т簨璁板唴鎼滅储鈥�"
+                    android:text="鍦ㄢ�滀繚娲佹敹绾斥�濆唴鎼滅储"
+                    android:focusable="false"
+                    android:clickable="false"
+                    android:editable="false"
                     />
                 <ImageView
                     android:id="@+id/iv_search_type"
@@ -107,6 +110,7 @@
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:gravity="center"
+            android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -126,19 +130,418 @@
                 android:textColor="#73000000"
                 />
         </LinearLayout>
-
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/recyclerView"
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@color/color_normal_background"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleBar"
-            app:layout_constraintVertical_bias="1.0"
-            tools:itemCount="20"
-            tools:layout_editor_absoluteX="-81dp"
-            tools:listitem="@layout/item_family_assets" />
+            >
+            <com.scwang.smart.refresh.header.MaterialHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                />
 
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/titleBar"
+                tools:itemCount="20"
+                tools:listitem="@layout/item_family_memorabilia" />
+            <com.scwang.smart.refresh.footer.BallPulseFooter
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="搴忓彿"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:id="@+id/et_search_id"
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="numberSigned"
+                        android:layout_marginStart="6dp"
+                        android:hint="璇疯緭鍏ュ簭鍙�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="绫诲瀷"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.kind}"
+                        android:hint="璇疯緭鍏ョ被鍨�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="绫诲埆"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.type}"
+                        android:hint="璇疯緭鍏ョ被鍒�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="match_parent"
+                        android:text="淇濇磥鏂规硶"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.method}"
+                        android:hint="璇疯緭鍏ヤ繚娲佹柟娉�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="閫傜敤浜�"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        android:lines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.suitable}"
+                        android:hint="璇疯緭鍏ラ�傜敤浜�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393"
+                    />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="match_parent"
+                        android:text="鏉愭枡瀛樻斁鍦�"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        android:lines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="6sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.place}"
+                        android:hint="璇疯緭鍏ユ潗鏂欏瓨鏀惧湴"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393"
+                    />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="match_parent"
+                        android:text="鏀剧疆鍦扮偣"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        android:lines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.location}"
+                        android:hint="璇疯緭鍏ユ斁缃湴鐐�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393"
+                    />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="澶囨敞"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        android:lines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.remark}"
+                        android:hint="璇疯緭鍏ュ娉�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
+        <com.google.android.material.floatingactionbutton.FloatingActionButton
+            android:id="@+id/fab_add"
+            android:layout_width="56dp"
+            android:layout_height="56dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginEnd="25dp"
+            android:layout_marginBottom="@dimen/dp_44"
+            android:src="@drawable/ic_add"
+            app:fabCustomSize="56dp"
+            />
     </androidx.constraintlayout.widget.ConstraintLayout>
 
 </layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_clean_storage_detail.xml b/app/src/main/res/layout/activity_clean_storage_detail.xml
index ca3055e..101b054 100644
--- a/app/src/main/res/layout/activity_clean_storage_detail.xml
+++ b/app/src/main/res/layout/activity_clean_storage_detail.xml
@@ -16,11 +16,28 @@
         android:orientation="vertical">
 
         <com.android.app_base.widget.ExtendTitleBar
+            android:id="@+id/titleBar"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            app:title="淇濇磥鏀剁撼"
+            app:title="@{viewModel.beanLiveData.id==0?`鏂板淇濇磥鏀剁撼`:viewModel.beanLiveData.type}"
             app:titleGravity="left"
-            />
+            >
+            <FrameLayout
+                android:layout_width="24dp"
+                android:layout_height="24dp"
+                android:layout_marginHorizontal="16dp"
+                android:layout_gravity="center_vertical|end"
+                >
+                <ImageView
+                    android:id="@+id/iv_operate"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:background="@{viewModel.typeLiveData?@drawable/ic_operate_finish:@drawable/ic_operate}"
+                    />
+            </FrameLayout>
+        </com.android.app_base.widget.ExtendTitleBar>
+
         <ScrollView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -46,11 +63,12 @@
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:inputType="text"
+                    android:hint="璇疯緭鍏ョ被鍨�(淇濇磥/鏀剁撼)"
                     android:autofillHints="creditCardNumber"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
                     android:textSize="16sp"
-                    android:text="@={viewModel.beanLiveData.type}"
+                    android:text="@={viewModel.beanLiveData.kind}"
                     />
 
                 <TextView
@@ -67,8 +85,10 @@
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
+                    android:hint="璇疯緭鍏ラ�傜敤浜�"
+                    android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.suitablePeople}"
+                    android:text="@={viewModel.beanLiveData.suitable}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -83,8 +103,9 @@
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
+                    android:hint="璇疯緭鍏ョ被鍒�"
                     android:textColorHint="#6b000000"
-                    android:text="@={viewModel.beanLiveData.category}"
+                    android:text="@={viewModel.beanLiveData.type}"
                     android:textColor="#DE000000"
                     android:textSize="16sp" />
                 <TextView
@@ -100,9 +121,10 @@
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
+                    android:hint="璇疯緭鍏ヤ繚娲佹柟娉�"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.cleanMethod}"
+                    android:text="@={viewModel.beanLiveData.method}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -117,9 +139,10 @@
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
+                    android:hint="璇疯緭鍏ユ潗鏂欏瓨鏀惧湴"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.materialStorageLocation}"
+                    android:text="@={viewModel.beanLiveData.place}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -134,9 +157,10 @@
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
+                    android:hint="璇疯緭鍏ユ斁缃湴鐐�"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.placementLocation}"
+                    android:text="@={viewModel.beanLiveData.location}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -151,6 +175,7 @@
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
+                    android:hint="璇疯緭鍏ュ娉�"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
                     android:text="@={viewModel.beanLiveData.remark}"
diff --git a/app/src/main/res/layout/activity_contacts.xml b/app/src/main/res/layout/activity_contacts.xml
index 1c7a03f..b031623 100644
--- a/app/src/main/res/layout/activity_contacts.xml
+++ b/app/src/main/res/layout/activity_contacts.xml
@@ -10,10 +10,12 @@
     </data>
 
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/parentLayout"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical">
-
+        android:background="@color/color_normal_background"
+        android:orientation="vertical"
+        >
         <com.android.app_base.widget.ExtendTitleBar
             android:id="@+id/titleBar"
             android:layout_width="match_parent"
@@ -34,7 +36,6 @@
                     android:background="@drawable/ic_operate"
                     />
             </FrameLayout>
-
             <LinearLayout
                 android:id="@+id/layout_default"
                 android:layout_width="match_parent"
@@ -47,10 +48,11 @@
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_marginStart="16dp"
-                    android:text="閫氳褰�(浠呬緵鏌ョ湅)"
+                    android:text="閫氳褰曪紙浠呬緵鏌ョ湅锛�"
                     android:layout_weight="1"
                     android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
+                    android:textSize="20sp"
+                    app:textOverflowMode="@{4}"
                     />
                 <ImageView
                     android:id="@+id/iv_search_default"
@@ -59,7 +61,6 @@
                     android:background="@drawable/ic_search"
                     />
             </LinearLayout>
-
             <LinearLayout
                 android:id="@+id/layout_search"
                 android:layout_width="match_parent"
@@ -87,9 +88,11 @@
                     android:textColor="#61000000"
                     android:background="@null"
                     android:imeOptions="actionSearch"
-                    android:text=""
                     android:singleLine="true"
-                    android:hint="鍦ㄢ�滈�氳褰曞唴鎼滅储鈥�"
+                    android:text="鍦ㄢ�滈�氳褰曗�滃唴鎼滅储"
+                    android:editable="false"
+                    android:focusable="false"
+                    android:clickable="false"
                     />
                 <ImageView
                     android:id="@+id/iv_search_type"
@@ -98,20 +101,306 @@
                     android:background="@drawable/ic_search_by"
                     />
             </LinearLayout>
-
         </com.android.app_base.widget.ExtendTitleBar>
+        <LinearLayout
+            android:id="@+id/layout_data_null"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:gravity="center"
+            android:visibility="gone"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/titleBar">
 
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:background="@drawable/img_data_null"
+                />
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="18dp"
+                android:text="鏆傛椂杩樻病鏈夋暟鎹摝~\n鐐瑰嚮鈥濓紜鈥濈珛鍗冲垱寤�"
+                android:textSize="14sp"
+                android:textColor="#73000000"
+                />
+        </LinearLayout>
 
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/recyclerView"
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@color/color_normal_background"
-            app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleBar"
-            tools:itemCount="10"
-            tools:listitem="@layout/item_family_assets" />
+            app:layout_constraintBottom_toBottomOf="parent"
+            >
+            <com.scwang.smart.refresh.header.MaterialHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                />
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                tools:itemCount="20"
+                tools:listitem="@layout/item_family_assets"
+                />
 
+            <com.scwang.smart.refresh.footer.BallPulseFooter
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鎴愬憳濮撳悕"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:layout_gravity="center_vertical"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.myName}"
+                        android:hint="璇疯緭鍏ユ垚鍛樺鍚�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="濮撳悕"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.name}"
+                        android:hint="璇疯緭鍏ュ鍚�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="绉板懠"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.nickName}"
+                        android:hint="璇疯緭鍏ョО鍛�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center_vertical">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="match_parent"
+                        android:text="宸ヤ綔鍗曚綅"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:layout_gravity="center_vertical"
+                        android:maxLines="1"
+                        android:lines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.work}"
+                        android:hint="璇疯緭鍏ュ伐浣滃崟浣�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center_vertical">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="match_parent"
+                        android:text="鎵嬫満鍙风爜"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="number"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.phone}"
+                        android:hint="璇疯緭鍏ユ墜鏈哄彿鐮�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
     </androidx.constraintlayout.widget.ConstraintLayout>
 
 </layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_family_assets.xml b/app/src/main/res/layout/activity_family_assets.xml
index 6409ac9..75f72ec 100644
--- a/app/src/main/res/layout/activity_family_assets.xml
+++ b/app/src/main/res/layout/activity_family_assets.xml
@@ -4,16 +4,19 @@
     xmlns:tools="http://schemas.android.com/tools">
 
     <data>
+        <import type="android.view.View"/>
         <variable
             name="viewModel"
             type="com.application.zhangshi_app_android.ui.function.FamilyAssetsActivityViewModel" />
     </data>
 
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/parentLayout"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical">
-
+        android:background="@color/color_normal_background"
+        android:orientation="vertical"
+        >
         <com.android.app_base.widget.ExtendTitleBar
             android:id="@+id/titleBar"
             android:layout_width="match_parent"
@@ -34,7 +37,6 @@
                     android:background="@drawable/ic_operate"
                     />
             </FrameLayout>
-
             <LinearLayout
                 android:id="@+id/layout_default"
                 android:layout_width="match_parent"
@@ -47,10 +49,11 @@
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_marginStart="16dp"
-                    android:text="瀹跺涵璧勪骇"
+                    android:text="瀹跺涵璧勪骇锛堜粎渚涙煡鐪嬶級"
                     android:layout_weight="1"
                     android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
+                    android:textSize="20sp"
+                    app:textOverflowMode="@{4}"
                     />
                 <ImageView
                     android:id="@+id/iv_search_default"
@@ -59,7 +62,6 @@
                     android:background="@drawable/ic_search"
                     />
             </LinearLayout>
-
             <LinearLayout
                 android:id="@+id/layout_search"
                 android:layout_width="match_parent"
@@ -87,9 +89,11 @@
                     android:textColor="#61000000"
                     android:background="@null"
                     android:imeOptions="actionSearch"
-                    android:text=""
                     android:singleLine="true"
-                    android:hint="鍦ㄢ�滃澶т簨璁板唴鎼滅储鈥�"
+                    android:text="鍦ㄢ�滃搴祫浜р�滃唴鎼滅储"
+                    android:editable="false"
+                    android:focusable="false"
+                    android:clickable="false"
                     />
                 <ImageView
                     android:id="@+id/iv_search_type"
@@ -98,15 +102,14 @@
                     android:background="@drawable/ic_search_by"
                     />
             </LinearLayout>
-
         </com.android.app_base.widget.ExtendTitleBar>
-
         <LinearLayout
             android:id="@+id/layout_data_null"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:gravity="center"
+            android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -131,27 +134,266 @@
             android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@color/color_normal_background"
-            app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleBar"
+            app:layout_constraintBottom_toBottomOf="parent"
             >
             <com.scwang.smart.refresh.header.MaterialHeader
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 />
-
             <androidx.recyclerview.widget.RecyclerView
                 android:id="@+id/recyclerView"
                 android:layout_width="match_parent"
-                android:layout_height="match_parent"
+                android:layout_height="wrap_content"
                 tools:itemCount="20"
-                tools:listitem="@layout/item_family_assets" />
+                tools:listitem="@layout/item_family_assets"
+                />
 
             <com.scwang.smart.refresh.footer.BallPulseFooter
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"/>
         </com.scwang.smart.refresh.layout.SmartRefreshLayout>
 
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="绫诲埆"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.type}"
+                        android:hint="璇疯緭鍏ョ被鍒�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鎸佹湁浜�"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.holder}"
+                        android:hint="璇疯緭鍏ユ寔鏈変汉"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鏃堕棿"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="4"
+                        android:gravity="center"
+                        >
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_start_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:layout_marginStart="6dp"
+                            android:text="@={viewModel.requestBeanLiveData.happenStartTime}"
+                            android:hint="寮�濮嬫椂闂�"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            android:lines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鈥�"
+                            />
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_end_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:gravity="center"
+                            android:layout_height="wrap_content"
+                            android:text="@={viewModel.requestBeanLiveData.happenEndTime}"
+                            android:hint="缁撴潫鏃堕棿"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <ImageView
+                            android:id="@+id/iv_time_clear"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/ic_clear"
+                            android:visibility="invisible"
+                            />
+                    </LinearLayout>
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="瀛樻斁鍦扮偣"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        android:lines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.address}"
+                        android:hint="璇疯緭鍏ュ瓨鏀惧湴鐐�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
     </androidx.constraintlayout.widget.ConstraintLayout>
 
 </layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_family_assets_detail.xml b/app/src/main/res/layout/activity_family_assets_detail.xml
index fb54eb1..934a442 100644
--- a/app/src/main/res/layout/activity_family_assets_detail.xml
+++ b/app/src/main/res/layout/activity_family_assets_detail.xml
@@ -10,7 +10,7 @@
     </data>
 
     <LinearLayout
-        tools:context=".ui.function.CreateFamilyProjectActivity"
+        tools:context=".ui.function.FamilyMemorabiliaDetailActivity"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:background="@color/color_normal_background"
@@ -19,8 +19,8 @@
         <com.android.app_base.widget.ExtendTitleBar
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            app:title="鍝堝搱鍝�"
             app:titleGravity="left"
+            app:title="@{viewModel.beanLiveData.holder + `鐨刞 + viewModel.beanLiveData.type}"
             />
         <ScrollView
             android:layout_width="match_parent"
@@ -69,7 +69,7 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.createTime}"
+                    android:text="@={viewModel.beanLiveData.happenTime}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -156,9 +156,45 @@
                     android:textColor="#DE000000"
                     android:text="@={viewModel.beanLiveData.remark}"
                     android:textSize="16sp" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:gravity="center_vertical"
+                    >
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="澶囧繕鏈�"
+                        android:textColor="#FF000000"
+                        android:textSize="20sp"
+                        />
+                    <ImageView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_tourism_add"
+                        android:layout_marginEnd="15dp"
+                        android:visibility="gone"
+                        />
+                </LinearLayout>
+                <RelativeLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    >
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/rv_memo"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        tools:listitem="@layout/item_memo"
+                        tools:itemCount="2"
+                        />
+                </RelativeLayout>
+
                 <TextView
                     android:layout_width="wrap_content"
-                    android:layout_marginTop="10dp"
+                    android:layout_marginTop="15dp"
                     android:layout_height="wrap_content"
                     android:text="鐢靛瓙鏂囦欢"
                     android:textColor="#767375"
@@ -167,24 +203,23 @@
                 <RelativeLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginBottom="20dp"
-                    android:background="@drawable/shape_6b0000_stroke"
                     >
                     <com.android.app_base.widget.WrapRecyclerView
                         android:id="@+id/rv_image"
                         android:orientation="vertical"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="10dp"
-                        android:layout_marginTop="2sp"
+                        android:background="@drawable/shape_6b0000_stroke"
+                        android:layout_marginBottom="20dp"
+                        android:layout_marginTop="2dp"
                         android:paddingStart="10dp"
                         android:paddingEnd="5dp"
                         android:paddingVertical="10dp"
                         />
-
                 </RelativeLayout>
 
 
+
             </LinearLayout>
         </ScrollView>
 
diff --git a/app/src/main/res/layout/activity_family_memorabilia.xml b/app/src/main/res/layout/activity_family_memorabilia.xml
index 179bf0f..263a4c1 100644
--- a/app/src/main/res/layout/activity_family_memorabilia.xml
+++ b/app/src/main/res/layout/activity_family_memorabilia.xml
@@ -4,6 +4,7 @@
     xmlns:tools="http://schemas.android.com/tools"
     >
     <data>
+        <import type="android.view.View"/>
         <variable
             name="viewModel"
             type="com.application.zhangshi_app_android.ui.function.FamilyMemorabiliaActivityViewModel"/>
@@ -13,7 +14,8 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         tools:context=".ui.function.FamilyMemorabiliaActivity"
-        android:orientation="vertical">
+        android:background="@color/color_normal_background"
+        >
 
         <com.android.app_base.widget.ExtendTitleBar
             android:id="@+id/titleBar"
@@ -51,7 +53,7 @@
                     android:text="瀹跺ぇ浜嬭"
                     android:layout_weight="1"
                     android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
+                    android:textSize="20sp"
                     />
                 <ImageView
                     android:id="@+id/iv_search_default"
@@ -91,6 +93,8 @@
                     android:text=""
                     android:singleLine="true"
                     android:hint="鍦ㄢ�滃澶т簨璁板唴鎼滅储鈥�"
+                    android:focusable="false"
+                    android:clickable="false"
                     />
                 <ImageView
                     android:id="@+id/iv_search_type"
@@ -108,6 +112,7 @@
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:gravity="center"
+            android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -131,7 +136,6 @@
             android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@color/color_normal_background"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleBar"
             >
@@ -144,6 +148,7 @@
                 android:id="@+id/recyclerView"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
+                android:layout_marginTop="20dp"
                 app:layout_constraintBottom_toBottomOf="parent"
                 app:layout_constraintTop_toBottomOf="@+id/titleBar"
                 tools:itemCount="20"
@@ -152,18 +157,256 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"/>
         </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鏍囬"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.title}"
+                        android:hint="璇疯緭鍏ユ爣棰�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="浜虹墿"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.people}"
+                        android:hint="璇疯緭鍏ヤ汉鐗�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
 
 
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鏃堕棿"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="4"
+                        android:gravity="center"
+                        >
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_start_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:layout_marginStart="6dp"
+                            android:text="@={viewModel.requestBeanLiveData.happenStartTime}"
+                            android:hint="寮�濮嬫椂闂�"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            android:lines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鈥�"
+                            />
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_end_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:gravity="center"
+                            android:layout_height="wrap_content"
+                            android:text="@={viewModel.requestBeanLiveData.happenEndTime}"
+                            android:hint="缁撴潫鏃堕棿"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <ImageView
+                            android:id="@+id/iv_time_clear"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/ic_clear"
+                            android:visibility="invisible"
+                            />
+                    </LinearLayout>
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鍦扮偣"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        android:lines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.address}"
+                        android:hint="璇疯緭鍏ュ湴鐐�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
         <com.google.android.material.floatingactionbutton.FloatingActionButton
             android:id="@+id/fab_add"
-            android:layout_width="@dimen/dp_56"
-            android:layout_height="@dimen/dp_56"
+            android:layout_width="56dp"
+            android:layout_height="56dp"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
-            android:layout_marginEnd="@dimen/dp_25"
+            android:layout_marginEnd="25dp"
             android:layout_marginBottom="@dimen/dp_44"
             android:src="@drawable/ic_add"
-            app:fabCustomSize="@dimen/dp_56"
+            app:fabCustomSize="56dp"
             />
     </androidx.constraintlayout.widget.ConstraintLayout>
 
diff --git a/app/src/main/res/layout/activity_family_memorabilia_create.xml b/app/src/main/res/layout/activity_family_memorabilia_detail.xml
similarity index 66%
rename from app/src/main/res/layout/activity_family_memorabilia_create.xml
rename to app/src/main/res/layout/activity_family_memorabilia_detail.xml
index b48456f..790056b 100644
--- a/app/src/main/res/layout/activity_family_memorabilia_create.xml
+++ b/app/src/main/res/layout/activity_family_memorabilia_detail.xml
@@ -6,34 +6,22 @@
     <data>
         <variable
             name="viewModel"
-            type="com.application.zhangshi_app_android.ui.function.CreateFamilyProjectActivityViewModel" />
+            type="com.application.zhangshi_app_android.ui.function.FamilyMemorabiliaDetailActivityViewModel" />
     </data>
 
     <LinearLayout
-        tools:context=".ui.function.CreateFamilyProjectActivity"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:background="@color/color_normal_background"
         android:orientation="vertical">
 
-        <com.hjq.bar.TitleBar
+        <com.android.app_base.widget.ExtendTitleBar
             android:id="@+id/titleBar"
             android:layout_width="match_parent"
-            android:layout_height="?attr/actionBarSize"
-            app:layout_constraintTop_toTopOf="parent"
-            android:paddingHorizontal="0dp"
-            android:background="@color/color_title_bar_background"
-            app:leftIcon="@null"
-            app:rightIcon="@null"
+            android:layout_height="wrap_content"
+            app:title="@{viewModel.beanMutableLiveData.id==0?`鏂板瀹跺ぇ浜嬭`:viewModel.beanMutableLiveData.title}"
+            app:titleGravity="left"
             >
-            <ImageView
-                android:id="@+id/iv_menu"
-                android:layout_width="24dp"
-                android:layout_height="24dp"
-                android:layout_marginHorizontal="16dp"
-                android:background="@drawable/ic_menu"
-                android:layout_gravity="center_vertical"
-                />
             <FrameLayout
                 android:layout_width="24dp"
                 android:layout_height="24dp"
@@ -48,35 +36,16 @@
                     android:background="@{viewModel.typeLiveData?@drawable/ic_operate_finish:@drawable/ic_operate}"
                     />
             </FrameLayout>
+        </com.android.app_base.widget.ExtendTitleBar>
 
-            <LinearLayout
-                android:id="@+id/layout_default"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:layout_marginHorizontal="56dp"
-                android:gravity="center_vertical"
-                >
-                <TextView
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_marginStart="16dp"
-                    android:text="寮犳皬APP绔嬮」"
-                    android:layout_weight="1"
-                    android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
-                    />
-            </LinearLayout>
-
-
-        </com.hjq.bar.TitleBar>
-        <ScrollView
+        <androidx.core.widget.NestedScrollView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             app:layout_constraintTop_toBottomOf="@id/titleBar"
             >
             <LinearLayout
                 android:layout_width="match_parent"
-                android:layout_height="match_parent"
+                android:layout_height="wrap_content"
                 android:orientation="vertical"
                 android:paddingHorizontal="20dp"
                 >
@@ -87,7 +56,7 @@
                     android:layout_height="@dimen/dp_20"
                     android:text="鏍囬"
                     android:textColor="#ff000000"
-                    android:textSize="@dimen/sp_12"
+                    android:textSize="12sp"
                     />
 
 
@@ -95,13 +64,13 @@
                     android:id="@+id/editTextsequence"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:hint="璇疯緭鍏ユ爣棰�"
                     android:inputType="text"
-                    android:autofillHints="creditCardNumber"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ユ爣棰榒:``}"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:textSize="@dimen/sp_16"
+                    android:textSize="16sp"
                     android:text="@={viewModel.beanMutableLiveData.title}"
+                    android:enabled="@{viewModel.typeLiveData}"
                     />
 
                 <TextView
@@ -111,20 +80,24 @@
                     android:layout_height="wrap_content"
                     android:text="鏃堕棿"
                     android:textColor="#ff000000"
-                    android:textSize="@dimen/sp_12"
+                    android:textSize="12sp"
                     />
 
                 <EditText
-                    android:id="@+id/editTextTime"
+                    android:id="@+id/et_time"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="@dimen/dp_2"
-                    android:hint="璇疯緭鍏ユ椂闂�(鏍煎紡锛�2001-01-01)"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ユ椂闂�(鏍煎紡锛�2001-01-01)`:``}"
                     android:inputType="text"
-                    android:textColorHint="#6b000000"
+                    android:text="@={viewModel.beanMutableLiveData.happenTime}"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanMutableLiveData.createTime}"
-                    android:textSize="@dimen/sp_16" />
+                    android:textColorHint="#6b000000"
+                    android:textSize="16sp"
+                    android:clickable="@{viewModel.typeLiveData}"
+                    app:isEditable="@{false}"
+                    />
+
                 <TextView
                     android:id="@+id/textview_figure_1"
                     android:layout_width="wrap_content"
@@ -132,7 +105,7 @@
                     android:layout_height="wrap_content"
                     android:text="浜虹墿"
                     android:textColor="#ff000000"
-                    android:textSize="@dimen/sp_12"
+                    android:textSize="12sp"
                     />
 
 
@@ -141,12 +114,14 @@
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="@dimen/dp_2"
-                    android:hint="璇疯緭鍏ヤ汉鐗�"
                     android:inputType="text"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ヤ汉鐗ー:``}"
                     android:textColorHint="#6b000000"
                     android:text="@={viewModel.beanMutableLiveData.people}"
                     android:textColor="#DE000000"
-                    android:textSize="@dimen/sp_16" />
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:id="@+id/textview_spot"
                     android:layout_width="wrap_content"
@@ -154,7 +129,7 @@
                     android:layout_height="@dimen/dp_20"
                     android:text="鍦扮偣"
                     android:textColor="#ff000000"
-                    android:textSize="@dimen/sp_12"
+                    android:textSize="12sp"
                     />
 
 
@@ -162,13 +137,14 @@
                     android:id="@+id/editTextSpot"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginTop="@dimen/dp_2"
-                    android:hint="璇疯緭鍏ュ湴鐐�"
                     android:inputType="text"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ュ湴鐐筦:``}"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
                     android:text="@={viewModel.beanMutableLiveData.address}"
-                    android:textSize="@dimen/sp_16" />
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:id="@+id/textview_figure_2"
                     android:layout_width="wrap_content"
@@ -176,7 +152,7 @@
                     android:layout_height="wrap_content"
                     android:text="澶囨敞"
                     android:textColor="#ff000000"
-                    android:textSize="@dimen/sp_12"
+                    android:textSize="12sp"
                     />
 
 
@@ -185,12 +161,14 @@
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="@dimen/dp_2"
-                    android:hint="璇疯緭鍏ュ娉�"
                     android:inputType="text"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ュ娉╜:``}"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
                     android:text="@={viewModel.beanMutableLiveData.remark}"
-                    android:textSize="@dimen/sp_16" />
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:id="@+id/textview_elecfile"
                     android:layout_width="wrap_content"
@@ -198,23 +176,30 @@
                     android:layout_height="wrap_content"
                     android:text="鐢靛瓙鏂囦欢"
                     android:textColor="#ff000000"
-                    android:textSize="@dimen/sp_12"
+                    android:textSize="12sp"
                     />
-                <com.android.app_base.widget.WrapRecyclerView
-                    android:id="@+id/rv_image"
-                    android:orientation="vertical"
+                <RelativeLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:background="@drawable/shape_6b0000_stroke"
-                    android:layout_marginBottom="20dp"
-                    android:layout_marginTop="@dimen/dp_2"
-                    android:paddingStart="10dp"
-                    android:paddingEnd="5dp"
-                    android:paddingVertical="10dp"
-                    />
+                    >
+                    <com.android.app_base.widget.WrapRecyclerView
+                        android:id="@+id/rv_image"
+                        android:orientation="vertical"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/shape_6b0000_stroke"
+                        android:layout_marginBottom="20dp"
+                        android:layout_marginTop="2dp"
+                        android:paddingStart="10dp"
+                        android:paddingEnd="5dp"
+                        android:paddingVertical="10dp"
+                        tools:itemCount="30"
+                        />
+
+                </RelativeLayout>
 
             </LinearLayout>
-        </ScrollView>
+        </androidx.core.widget.NestedScrollView>
 
 
     </LinearLayout>
diff --git a/app/src/main/res/layout/activity_genealogy.xml b/app/src/main/res/layout/activity_genealogy.xml
new file mode 100644
index 0000000..a5ea74d
--- /dev/null
+++ b/app/src/main/res/layout/activity_genealogy.xml
@@ -0,0 +1,367 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <data>
+        <variable
+            name="viewModel"
+            type="com.application.zhangshi_app_android.ui.home.GenealogyActivityViewModel" />
+    </data>
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical"
+        android:background="@color/color_normal_background"
+        >
+
+        <com.android.app_base.widget.ExtendTitleBar
+            android:id="@+id/titleBar"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:layout_constraintTop_toTopOf="parent"
+            app:leftIcon="@drawable/ic_back"
+            >
+            <FrameLayout
+                android:layout_width="24dp"
+                android:layout_height="24dp"
+                android:layout_marginHorizontal="16dp"
+                android:layout_gravity="center_vertical|end"
+                >
+                <ImageView
+                    android:id="@+id/iv_operate"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:background="@drawable/ic_operate"
+                    android:visibility="gone"
+                    />
+            </FrameLayout>
+            <LinearLayout
+                android:id="@+id/layout_default"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginHorizontal="56dp"
+                android:gravity="center_vertical"
+                >
+                <TextView
+                    android:id="@+id/tv_title"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="16dp"
+                    android:text="瀹舵牴缃�(浠呬緵鏌ョ湅)"
+                    android:layout_weight="1"
+                    android:textColor="@color/white"
+                    android:textSize="20sp"
+                    app:textOverflowMode="@{4}"
+                    />
+                <ImageView
+                    android:id="@+id/iv_search_default"
+                    android:layout_width="@dimen/dp_24"
+                    android:layout_height="@dimen/dp_24"
+                    android:background="@drawable/ic_search"
+                    />
+            </LinearLayout>
+            <LinearLayout
+                android:id="@+id/layout_search"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginVertical="4dp"
+                android:layout_marginHorizontal="56dp"
+                android:gravity="center_vertical"
+                android:background="@color/white"
+                android:paddingHorizontal="5dp"
+                android:visibility="gone"
+                >
+                <ImageView
+                    android:id="@+id/iv_search"
+                    android:layout_width="24dp"
+                    android:layout_height="24dp"
+                    android:background="@drawable/ic_search_gray"
+                    />
+                <EditText
+                    android:id="@+id/et_search"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:layout_marginStart="5dp"
+                    android:textSize="14sp"
+                    android:textColor="#61000000"
+                    android:background="@null"
+                    android:imeOptions="actionSearch"
+                    android:singleLine="true"
+                    android:text="鍦ㄢ�滃鏍圭綉鈥濆唴鎼滅储"
+                    android:enabled="false"
+                    />
+                <ImageView
+                    android:id="@+id/iv_search_type"
+                    android:layout_width="24dp"
+                    android:layout_height="24dp"
+                    android:background="@drawable/ic_search_by"
+                    />
+            </LinearLayout>
+        </com.android.app_base.widget.ExtendTitleBar>
+
+        <LinearLayout
+            android:id="@+id/layout_data_null"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:gravity="center"
+            android:visibility="gone"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/titleBar">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:background="@drawable/img_data_null"
+                />
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="18dp"
+                android:text="鏆傛椂杩樻病鏈夋暟鎹摝~\n鐐瑰嚮鈥濓紜鈥濈珛鍗冲垱寤�"
+                android:textSize="14sp"
+                android:textColor="#73000000"
+                />
+        </LinearLayout>
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refreshLayout"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@+id/titleBar"
+            app:layout_constraintBottom_toBottomOf="parent"
+            >
+            <com.scwang.smart.refresh.header.MaterialHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                />
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                tools:itemCount="20"
+                tools:listitem="@layout/item_home_member_list" />
+
+            <com.scwang.smart.refresh.footer.BallPulseFooter
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="韬唤"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:id="@+id/et_identity"
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:hint="璇烽�夋嫨韬唤浠f暟"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        app:isEditable="@{false}"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="濮撳悕"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.nickName}"
+                        android:hint="璇疯緭鍏ュ鍚�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鎬у埆"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:id="@+id/et_sex"
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:hint="璇烽�夋嫨鎬у埆"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        app:isEditable="@{false}"
+                        />
+
+
+                </LinearLayout>
+
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鐢熸棩"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        android:lines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:id="@+id/et_birthday"
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.birth}"
+                        android:hint="璇烽�夋嫨鐢熸棩"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        app:isEditable="@{false}"
+                        />
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_growth_experience.xml b/app/src/main/res/layout/activity_growth_experience.xml
index fca0cbc..8db9405 100644
--- a/app/src/main/res/layout/activity_growth_experience.xml
+++ b/app/src/main/res/layout/activity_growth_experience.xml
@@ -8,16 +8,18 @@
             name="viewModel"
             type="com.application.zhangshi_app_android.ui.function.GrowthExperienceActivityViewModel" />
     </data>
-    <LinearLayout
+    <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:background="@color/color_normal_background"
         android:orientation="vertical"
         >
         <com.android.app_base.widget.ExtendTitleBar
+            android:id="@+id/title_bar"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            app:title="鎴愰暱缁忓巻"
+            app:layout_constraintTop_toTopOf="parent"
+            app:title="鎴愰暱缁忓巻锛堜粎渚涙煡鐪嬶級"
             app:titleGravity="left"
             >
             <FrameLayout
@@ -37,11 +39,14 @@
         </com.android.app_base.widget.ExtendTitleBar>
         <LinearLayout
             android:layout_width="match_parent"
-            android:layout_height="match_parent"
+            android:layout_height="0dp"
             android:orientation="vertical"
             android:paddingHorizontal="20dp"
+            app:layout_constraintTop_toBottomOf="@id/title_bar"
+            app:layout_constraintBottom_toBottomOf="parent"
             >
             <androidx.core.widget.NestedScrollView
+                android:id="@+id/nestedScrollView"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 >
@@ -57,7 +62,7 @@
                         android:layout_height="wrap_content"
                         android:text="鍩烘湰淇℃伅"
                         android:textColor="#ff000000"
-                        android:textSize="@dimen/sp_20"
+                        android:textSize="20sp"
                         android:textStyle="bold"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent" />
@@ -78,7 +83,7 @@
                             android:layout_height="@dimen/dp_20"
                             android:text="濮撳悕"
                             android:textColor="#88000000"
-                            android:textSize="@dimen/sp_12" />
+                            android:textSize="12sp" />
 
                         <TextView
                             android:id="@+id/editText_name"
@@ -87,7 +92,7 @@
                             android:autofillHints="creditCardNumber"
                             android:textColor="#DE000000"
                             android:textColorHint="#6b000000"
-                            android:textSize="@dimen/sp_16"
+                            android:textSize="16sp"
                             android:text="@{viewModel.infoLiveData.nickName}"
                             tools:text="寮犱笁" />
 
@@ -114,7 +119,7 @@
                             android:layout_height="@dimen/dp_20"
                             android:text="鏇剧敤鍚�"
                             android:textColor="#88000000"
-                            android:textSize="@dimen/sp_12" />
+                            android:textSize="12sp" />
 
                         <TextView
                             android:id="@+id/editText_usedName"
@@ -122,7 +127,7 @@
                             android:layout_height="wrap_content"
                             android:autofillHints="creditCardNumber"
                             android:textColor="#DE000000"
-                            android:textSize="@dimen/sp_16"
+                            android:textSize="16sp"
                             tools:text="寮犲洓"
                             android:text="@{viewModel.infoLiveData.oldName}"
                             />
@@ -141,6 +146,7 @@
                         app:layout_constraintEnd_toEndOf="parent"
                         app:layout_constraintTop_toTopOf="@+id/layout_1"
                         android:layout_marginEnd="20dp"
+                        app:imageUrl="@{viewModel.infoLiveData.img}"
                         />
 
                     <LinearLayout
@@ -160,7 +166,7 @@
                             android:layout_height="@dimen/dp_20"
                             android:text="鎬у埆"
                             android:textColor="#88000000"
-                            android:textSize="@dimen/sp_12" />
+                            android:textSize="12sp" />
 
                         <TextView
                             android:layout_width="wrap_content"
@@ -168,9 +174,9 @@
                             android:autofillHints="creditCardNumber"
                             android:textColor="#DE000000"
                             android:textColorHint="#6b000000"
-                            android:textSize="@dimen/sp_16"
+                            android:textSize="16sp"
                             tools:text="鐢�"
-                            android:text="@{String.valueOf(viewModel.infoLiveData.sex)}"
+                            android:text="@{viewModel.infoLiveData.sexStr}"
                             />
 
                         <View
@@ -193,7 +199,7 @@
                             android:layout_height="@dimen/dp_20"
                             android:text="姘戞棌"
                             android:textColor="#88000000"
-                            android:textSize="@dimen/sp_12" />
+                            android:textSize="12sp" />
 
                         <TextView
                             android:layout_width="wrap_content"
@@ -201,7 +207,7 @@
                             android:autofillHints="creditCardNumber"
                             android:textColor="#DE000000"
                             android:textColorHint="#6b000000"
-                            android:textSize="@dimen/sp_16"
+                            android:textSize="16sp"
                             tools:text="姹夋棌"
                             android:text="@{viewModel.infoLiveData.nationality}"
                             />
@@ -227,7 +233,7 @@
                             android:layout_height="@dimen/dp_20"
                             android:text="鍥界睄"
                             android:textColor="#88000000"
-                            android:textSize="@dimen/sp_12" />
+                            android:textSize="12sp" />
 
                         <TextView
                             android:layout_width="wrap_content"
@@ -235,7 +241,7 @@
                             android:autofillHints="creditCardNumber"
                             android:textColor="#DE000000"
                             android:textColorHint="#6b000000"
-                            android:textSize="@dimen/sp_16"
+                            android:textSize="16sp"
                             tools:text="涓浗"
                             android:text="@{viewModel.infoLiveData.nation}"
                             />
@@ -260,7 +266,7 @@
                             android:layout_height="@dimen/dp_20"
                             android:text="濠氬Щ鐘跺喌"
                             android:textColor="#88000000"
-                            android:textSize="@dimen/sp_12" />
+                            android:textSize="12sp" />
 
                         <TextView
                             android:layout_width="wrap_content"
@@ -268,9 +274,9 @@
                             android:autofillHints="creditCardNumber"
                             android:textColor="#DE000000"
                             android:textColorHint="#6b000000"
-                            android:textSize="@dimen/sp_16"
+                            android:textSize="16sp"
                             tools:text="鏈"
-                            android:text="@{String.valueOf(viewModel.infoLiveData.maritalStatus)}"/>
+                            android:text="@{viewModel.infoLiveData.maritalStatus}"/>
 
                         <View
                             android:layout_width="match_parent"
@@ -292,7 +298,7 @@
                             android:layout_height="@dimen/dp_20"
                             android:text="鑱旂郴鏂瑰紡"
                             android:textColor="#88000000"
-                            android:textSize="@dimen/sp_12" />
+                            android:textSize="12sp" />
 
                         <TextView
                             android:layout_width="wrap_content"
@@ -300,7 +306,7 @@
                             android:autofillHints="creditCardNumber"
                             android:textColor="#DE000000"
                             android:textColorHint="#6b000000"
-                            android:textSize="@dimen/sp_16"
+                            android:textSize="16sp"
                             tools:text="1234567890"
                             android:text="@{viewModel.infoLiveData.phoneNumber}"/>
 
@@ -326,7 +332,7 @@
                             android:layout_height="@dimen/dp_20"
                             android:text="鏀挎不闈㈣矊"
                             android:textColor="#88000000"
-                            android:textSize="@dimen/sp_12" />
+                            android:textSize="12sp" />
 
                         <TextView
                             android:layout_width="wrap_content"
@@ -334,7 +340,7 @@
                             android:autofillHints="creditCardNumber"
                             android:textColor="#DE000000"
                             android:textColorHint="#6b000000"
-                            android:textSize="@dimen/sp_16"
+                            android:textSize="16sp"
                             tools:text="缇や紬"
                             android:text="@{viewModel.infoLiveData.politicalOutlook}"/>
 
@@ -360,7 +366,7 @@
                             android:layout_height="@dimen/dp_20"
                             android:text="韬唤璇佸彿"
                             android:textColor="#88000000"
-                            android:textSize="@dimen/sp_12" />
+                            android:textSize="12sp" />
 
                         <TextView
                             android:layout_width="wrap_content"
@@ -368,7 +374,7 @@
                             android:autofillHints="creditCardNumber"
                             android:textColor="#DE000000"
                             android:textColorHint="#6b000000"
-                            android:textSize="@dimen/sp_16"
+                            android:textSize="16sp"
                             tools:text="440000199801010001"
                             android:text="@{viewModel.infoLiveData.idNum}"/>
 
@@ -393,7 +399,7 @@
                             android:layout_height="@dimen/dp_20"
                             android:text="鎴风睄鍦板潃"
                             android:textColor="#88000000"
-                            android:textSize="@dimen/sp_12" />
+                            android:textSize="12sp" />
 
                         <TextView
                             android:layout_width="wrap_content"
@@ -401,7 +407,7 @@
                             android:autofillHints="creditCardNumber"
                             android:textColor="#DE000000"
                             android:textColorHint="#6b000000"
-                            android:textSize="@dimen/sp_16"
+                            android:textSize="16sp"
                             tools:text="骞夸笢鐪佸箍宸炲競鐣鍖哄皬璋峰洿琛楅亾"
                             android:text="@{viewModel.infoLiveData.locationAddress}" />
 
@@ -422,7 +428,7 @@
                         android:layout_marginTop="16dp"
                         tools:layout_height="wrap_content"
                         >
-                        <LinearLayout
+                        <androidx.constraintlayout.widget.ConstraintLayout
                             android:id="@+id/layout_experience_title"
                             android:layout_width="match_parent"
                             android:layout_height="50dp"
@@ -430,21 +436,29 @@
                             >
                             <TextView
                                 android:id="@+id/tv_primary_experience"
-                                android:layout_width="0dp"
+                                android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:layout_weight="1"
                                 android:text="涓昏瀛︿範鍙婂伐浣滅粡鍘�"
                                 android:textColor="#ff000000"
-                                android:textSize="@dimen/sp_20"
-                                android:textStyle="bold" />
+                                android:textSize="20sp"
+                                android:textStyle="bold"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintBottom_toBottomOf="parent"
+                                app:layout_constraintStart_toStartOf="parent"
+
+                                />
                             <ImageView
                                 android:id="@+id/iv_experience_fold"
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:layout_gravity="center_vertical"
                                 android:background="@{viewModel.isExperienceExpendedLiveData ? @drawable/ic_unfold : @drawable/ic_fold}"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintBottom_toBottomOf="parent"
+                                app:layout_constraintEnd_toEndOf="parent"
                                 />
-                        </LinearLayout>
+                        </androidx.constraintlayout.widget.ConstraintLayout>
 
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_primary"
@@ -463,7 +477,7 @@
                         app:layout_constraintTop_toBottomOf="@id/layout_experience"
                         android:layout_marginTop="10dp"
                         >
-                        <LinearLayout
+                        <androidx.constraintlayout.widget.ConstraintLayout
                             android:id="@+id/layout_relation_title"
                             android:layout_width="match_parent"
                             android:layout_height="50dp"
@@ -476,15 +490,22 @@
                                 android:layout_height="wrap_content"
                                 android:text="瀹跺涵鎴愬憳鍙婁富瑕佺ぞ浼氬叧绯绘儏鍐�"
                                 android:textColor="#ff000000"
-                                android:textSize="@dimen/sp_20"
-                                android:textStyle="bold" />
+                                android:textSize="20sp"
+                                android:textStyle="bold"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintBottom_toBottomOf="parent"
+                                app:layout_constraintStart_toStartOf="parent"
+                                />
                             <ImageView
                                 android:id="@+id/iv_relation_fold"
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:background="@{viewModel.isRelationExpendedLiveData ? @drawable/ic_unfold : @drawable/ic_fold}"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintBottom_toBottomOf="parent"
+                                app:layout_constraintEnd_toEndOf="parent"
                                 />
-                        </LinearLayout>
+                        </androidx.constraintlayout.widget.ConstraintLayout>
 
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_relationship"
@@ -513,7 +534,7 @@
                             android:layout_marginTop="@dimen/dp_5"
                             android:text="绉诲眳鍥斤紙澧冿級鎯呭喌"
                             android:textColor="#ff000000"
-                            android:textSize="@dimen/sp_20"
+                            android:textSize="20sp"
                             android:textStyle="bold"
                             />
 
@@ -529,7 +550,8 @@
                             android:id="@+id/radioButton"
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:checked="true"
+                            android:checked="@{viewModel.infoLiveData.outStatus==1?true:false}"
+                            android:clickable="false"
                             android:text="鏄�"
                             />
                         <View
@@ -548,13 +570,14 @@
                             android:id="@+id/editText_Residence_Number"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:paddingHorizontal="20dp"
                             android:autofillHints="creditCardNumber"
                             android:textColor="#DE000000"
-                            android:textSize="@dimen/sp_16"
+                            android:textSize="16sp"
+                            tools:text="1234567890"
+                            android:text="@{viewModel.infoLiveData.idNo}"
                             />
                         <View
-                            android:layout_width="140dp"
+                            android:layout_width="match_parent"
                             android:layout_height="1dp"
                             android:background="#6B000000"
                             android:layout_marginTop="8dp"
@@ -569,7 +592,7 @@
                         android:layout_marginTop="10dp"
                         app:layout_constraintTop_toBottomOf="@id/layout_10"
                         >
-                        <LinearLayout
+                        <androidx.constraintlayout.widget.ConstraintLayout
                             android:id="@+id/layout_holder_title"
                             android:layout_width="match_parent"
                             android:layout_height="50dp"
@@ -582,17 +605,24 @@
                                 android:layout_weight="1"
                                 android:text="鎸佹湁鍑哄叆澧冭瘉浠舵儏鍐�"
                                 android:textColor="#ff000000"
-                                android:textSize="@dimen/sp_20"
-                                android:textStyle="bold" />
+                                android:textSize="20sp"
+                                android:textStyle="bold"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintBottom_toBottomOf="parent"
+                                app:layout_constraintStart_toStartOf="parent"
+                                />
 
-                            <ImageButton
+                            <ImageView
                                 android:id="@+id/iv_holder_fold"
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:layout_gravity="center_vertical"
                                 android:background="@{viewModel.isHolderExpendedLiveData ? @drawable/ic_unfold : @drawable/ic_fold}"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintBottom_toBottomOf="parent"
+                                app:layout_constraintEnd_toEndOf="parent"
                                 />
-                        </LinearLayout>
+                        </androidx.constraintlayout.widget.ConstraintLayout>
 
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_certificates"
@@ -612,7 +642,7 @@
                         app:layout_constraintTop_toBottomOf="@id/layout_holder"
                         android:layout_marginTop="10dp"
                         >
-                        <LinearLayout
+                        <androidx.constraintlayout.widget.ConstraintLayout
                             android:id="@+id/layout_abroad_title"
                             android:layout_width="match_parent"
                             android:layout_height="50dp"
@@ -625,17 +655,24 @@
                                 android:layout_weight="1"
                                 android:text="鍑哄浗锛堝锛夋儏鍐�"
                                 android:textColor="#ff000000"
-                                android:textSize="@dimen/sp_20"
-                                android:textStyle="bold" />
+                                android:textSize="20sp"
+                                android:textStyle="bold"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintBottom_toBottomOf="parent"
+                                app:layout_constraintStart_toStartOf="parent"
+                                />
 
-                            <ImageButton
+                            <ImageView
                                 android:id="@+id/iv_abroad_fold"
                                 android:layout_width="20dp"
                                 android:layout_height="20dp"
                                 android:layout_gravity="center_vertical"
-                                android:background="@{viewModel.isAbroadExpendedLiveData ? @drawable/ic_unfold : @drawable/ic_fold}}"
+                                android:background="@{viewModel.isAbroadExpendedLiveData ? @drawable/ic_unfold : @drawable/ic_fold}"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintBottom_toBottomOf="parent"
+                                app:layout_constraintEnd_toEndOf="parent"
                                 />
-                        </LinearLayout>
+                        </androidx.constraintlayout.widget.ConstraintLayout>
 
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_abroad"
@@ -653,7 +690,7 @@
                         android:layout_marginTop="20dp"
                         android:text="鑷紶"
                         android:textColor="#ff000000"
-                        android:textSize="@dimen/sp_20"
+                        android:textSize="20sp"
                         android:textStyle="bold"
                         app:layout_constraintLeft_toLeftOf="parent"
                         app:layout_constraintTop_toBottomOf="@+id/layout_abroad"
@@ -678,6 +715,8 @@
                         android:background="@drawable/shape_fffad1e0_stroke_0_10_10_10"
                         android:paddingHorizontal="16dp"
                         android:paddingVertical="10dp"
+                        android:visibility="gone"
+                        tools:visibility="visible"
                         app:layout_constraintTop_toBottomOf="@id/tab_layout"
                       />
 
@@ -686,5 +725,16 @@
                 </androidx.constraintlayout.widget.ConstraintLayout>
            </androidx.core.widget.NestedScrollView>
         </LinearLayout>
-    </LinearLayout>
+        <androidx.constraintlayout.utils.widget.ImageFilterView
+            android:id="@+id/fab_move_to_top"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginEnd="25dp"
+            android:layout_marginBottom="44dp"
+            app:fabCustomSize="100dp"
+            android:background="@drawable/ic_move_to_top"
+            />
+    </androidx.constraintlayout.widget.ConstraintLayout>
 </layout>
diff --git a/app/src/main/res/layout/activity_health_care.xml b/app/src/main/res/layout/activity_health_care.xml
index 53bd954..6346ca2 100644
--- a/app/src/main/res/layout/activity_health_care.xml
+++ b/app/src/main/res/layout/activity_health_care.xml
@@ -25,23 +25,24 @@
             app:title="鍋ュ悍淇濆仴"
             app:titleGravity="left"
             >
+
             <FrameLayout
-                android:layout_width="24dp"
+                android:layout_width="19dp"
                 android:layout_height="24dp"
-                android:layout_marginHorizontal="16dp"
                 android:layout_gravity="center_vertical|end"
-                >
+                android:layout_marginHorizontal="16dp">
+
                 <ImageView
                     android:id="@+id/iv_operate"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_gravity="center"
-                    android:background="@drawable/ic_operate"
-                    />
+                    android:background="@{viewModel.typeLiveData?@drawable/ic_operate_finish:@drawable/ic_operate}" />
             </FrameLayout>
         </com.android.app_base.widget.ExtendTitleBar>
 
-        <ScrollView
+        <androidx.core.widget.NestedScrollView
+            android:id="@+id/nestedScrollView"
             android:layout_width="match_parent"
             android:layout_height="0dp"
             app:layout_constraintBottom_toBottomOf="parent"
@@ -64,9 +65,10 @@
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:text="XXX鐜扮姸鍋ュ悍鎯呭喌淇℃伅"
+                        android:text="@{viewModel.healthCareBaseInfoBeanLiveData.name +`鐜扮姸鍋ュ悍鎯呭喌淇℃伅`}"
                         android:textColor="@color/black"
                         android:textSize="20sp"
+                        tools:text="xxx鐜扮姸鍋ュ悍鎯呭喌淇℃伅"
                         />
                     <TextView
                         android:layout_width="wrap_content"
@@ -95,13 +97,16 @@
                                 android:textSize="12sp"
                                 android:alpha="0.54"
                                 />
-                            <TextView
+                            <EditText
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="寮犱笁"
+                                android:text="@={viewModel.healthCareBaseInfoBeanLiveData.name}"
+                                android:background="@null"
+                                android:enabled="@{viewModel.typeLiveData}"
                                 android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
+                                android:inputType="textMultiLine"
                                 />
                             <View
                                 android:layout_width="match_parent"
@@ -126,9 +131,12 @@
                                 android:alpha="0.54"
                                 />
                             <TextView
+                                android:id="@+id/tv_sex"
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="鐢�"
+                                android:text="@={viewModel.healthCareBaseInfoBeanLiveData.sexStr}"
+                                android:background="@null"
+                                android:enabled="@{viewModel.typeLiveData}"
                                 android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
@@ -160,13 +168,15 @@
                                 android:textSize="12sp"
                                 android:alpha="0.54"
                                 />
-                            <TextView
+                            <EditText
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="鏈"
-                                android:textColor="#DE000000"
+                                android:text="@={viewModel.healthCareBaseInfoBeanLiveData.educationLevel}"
+                                android:background="@null"
+                                android:enabled="@{viewModel.typeLiveData}"                                android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
+                                android:inputType="textMultiLine"
                                 />
                             <View
                                 android:layout_width="match_parent"
@@ -190,13 +200,15 @@
                                 android:textSize="12sp"
                                 android:alpha="0.54"
                                 />
-                            <TextView
+                            <EditText
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="缁忕悊"
-                                android:textColor="#DE000000"
+                                android:text="@={viewModel.healthCareBaseInfoBeanLiveData.work}"
+                                android:background="@null"
+                                android:enabled="@{viewModel.typeLiveData}"                                android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
+                                android:inputType="textMultiLine"
                                 />
                             <View
                                 android:layout_width="match_parent"
@@ -225,14 +237,15 @@
                                 android:textSize="12sp"
                                 android:alpha="0.54"
                                 />
-                            <TextView
+                            <EditText
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="17818824255"
-                                android:textColor="#DE000000"
+                                android:text="@={viewModel.healthCareBaseInfoBeanLiveData.phone}"
+                                android:background="@null"
+                                android:enabled="@{viewModel.typeLiveData}"                                android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
-                                android:ellipsize="marquee"
+                                android:inputType="phone"
                                 />
                             <View
                                 android:layout_width="match_parent"
@@ -256,13 +269,15 @@
                                 android:textSize="12sp"
                                 android:alpha="0.54"
                                 />
-                            <TextView
+                            <EditText
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="Zhang@123.com"
-                                android:textColor="#DE000000"
+                                android:text="@={viewModel.healthCareBaseInfoBeanLiveData.email}"
+                                android:background="@null"
+                                android:enabled="@{viewModel.typeLiveData}"                                android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
+                                android:inputType="textMultiLine"
                                 />
                             <View
                                 android:layout_width="match_parent"
@@ -291,13 +306,15 @@
                                 android:textSize="12sp"
                                 android:alpha="0.54"
                                 />
-                            <TextView
+                            <EditText
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="骞夸笢鐪佸箍宸炲競鐣鍖哄皬璋峰洿琛楅亾骞夸笢宸ヤ笟澶у"
-                                android:textColor="#DE000000"
+                                android:text="@={viewModel.healthCareBaseInfoBeanLiveData.address}"
+                                android:background="@null"
+                                android:enabled="@{viewModel.typeLiveData}"                                android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
+                                android:inputType="textMultiLine"
                                 />
                             <View
                                 android:layout_width="match_parent"
@@ -335,9 +352,11 @@
                             app:layout_constraintHorizontal_chainStyle="spread_inside"
                             >
                             <ImageView
+                                android:id="@+id/iv_a"
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:background="@drawable/ic_radio_button_selected"
+                                app:select_state="@={viewModel.healthCareBaseInfoBeanLiveData.bloodClass.a}"
+                                android:clickable="@{viewModel.typeLiveData}"
                                 />
                             <TextView
                                 android:layout_width="wrap_content"
@@ -363,7 +382,9 @@
                             <ImageView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:background="@drawable/ic_radio_button_selected" />
+                                android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareBaseInfoBeanLiveData.bloodClass.b}"
+                                />
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
@@ -388,12 +409,14 @@
                             <ImageView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:background="@drawable/ic_radio_button_selected" />
+                                android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareBaseInfoBeanLiveData.bloodClass.o}"
+                                />
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:maxLines="1"
-                                android:text="C鍨�"
+                                android:text="O鍨�"
                                 android:textColor="#DE000000"
                                 android:textSize="16sp"
                                 android:layout_marginStart="8dp"
@@ -412,7 +435,8 @@
                             <ImageView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:background="@drawable/ic_radio_button_selected"
+                                android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareBaseInfoBeanLiveData.bloodClass.rh}"
                                 />
                             <TextView
                                 android:layout_width="wrap_content"
@@ -437,7 +461,8 @@
                             <ImageView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:background="@drawable/ic_radio_button_selected"
+                                android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareBaseInfoBeanLiveData.bloodClass.other}"
                                 />
                             <TextView
                                 android:layout_width="wrap_content"
@@ -461,13 +486,14 @@
                             <ImageView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:background="@drawable/ic_radio_button_selected"
+                                android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareBaseInfoBeanLiveData.bloodClass.unknown}"
                                 />
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:maxLines="1"
-                                android:text="RH闃村瀷"
+                                android:text="涓嶆竻妤�"
                                 android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginStart="8dp"
@@ -499,7 +525,8 @@
                             <ImageView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:background="@drawable/ic_radio_button_selected"
+                                android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareBaseInfoBeanLiveData.allergyClass.medicine}"
                                 />
                             <TextView
                                 android:layout_width="wrap_content"
@@ -521,7 +548,8 @@
                             <ImageView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:background="@drawable/ic_radio_button_selected"
+                                android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareBaseInfoBeanLiveData.allergyClass.food}"
                                 />
                             <TextView
                                 android:layout_width="wrap_content"
@@ -543,7 +571,8 @@
                             <ImageView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:background="@drawable/ic_radio_button_selected"
+                                android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareBaseInfoBeanLiveData.allergyClass.other}"
                                 />
                             <TextView
                                 android:layout_width="wrap_content"
@@ -580,7 +609,8 @@
                             <ImageView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:background="@drawable/ic_radio_button_selected"
+                                android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareBaseInfoBeanLiveData.geneticDiseaseClass.hypertension}"
                                 />
                             <TextView
                                 android:layout_width="wrap_content"
@@ -602,7 +632,8 @@
                             <ImageView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:background="@drawable/ic_radio_button_selected"
+                                android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareBaseInfoBeanLiveData.geneticDiseaseClass.diabetes}"
                                 />
                             <TextView
                                 android:layout_width="wrap_content"
@@ -624,7 +655,8 @@
                             <ImageView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:background="@drawable/ic_radio_button_selected"
+                                android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareBaseInfoBeanLiveData.geneticDiseaseClass.tumor}"
                                 />
                             <TextView
                                 android:layout_width="wrap_content"
@@ -646,7 +678,8 @@
                             <ImageView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:background="@drawable/ic_radio_button_selected"
+                                android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareBaseInfoBeanLiveData.geneticDiseaseClass.other}"
                                 />
                             <TextView
                                 android:layout_width="wrap_content"
@@ -678,14 +711,15 @@
                                 android:textSize="12sp"
                                 android:alpha="0.54"
                                 />
-                            <TextView
+                            <EditText
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="闃垮徃鍖规灄"
-                                android:textColor="#DE000000"
+                                android:text="@={viewModel.healthCareBaseInfoBeanLiveData.medicine}"
+                                android:background="@null"
+                                android:enabled="@{viewModel.typeLiveData}"                                  android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
-                                android:ellipsize="marquee"
+                                android:inputType="textMultiLine"
                                 />
                             <View
                                 android:layout_width="match_parent"
@@ -709,13 +743,15 @@
                                 android:textSize="12sp"
                                 android:alpha="0.54"
                                 />
-                            <TextView
+                            <EditText
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="鍐犲績鐥呫�佸摦鍠�"
-                                android:textColor="#DE000000"
+                                android:text="@={viewModel.healthCareBaseInfoBeanLiveData.baseDisease}"
+                                android:background="@null"
+                                android:enabled="@{viewModel.typeLiveData}"                                  android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
+                                android:inputType="textMultiLine"
                                 />
                             <View
                                 android:layout_width="match_parent"
@@ -788,14 +824,15 @@
                                         android:textSize="12sp"
                                         android:alpha="0.54"
                                         />
-                                    <TextView
+                                    <EditText
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="鐢滃搧銆佺偣蹇�"
-                                        android:textColor="#DE000000"
+                                        android:text="@={viewModel.healthCareLifeHabitsBeanLiveData.eatGood}"
+                                        android:background="@null"
+                                        android:enabled="@{viewModel.typeLiveData}"                                           android:textColor="#DE000000"
                                         android:textSize="14sp"
                                         android:layout_marginTop="5dp"
+                                        android:inputType="textMultiLine"
                                         />
                                     <View
                                         android:layout_width="match_parent"
@@ -820,16 +857,15 @@
                                         android:textSize="12sp"
                                         android:alpha="0.54"
                                         />
-                                    <TextView
+                                    <EditText
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="杈涜荆銆佸喎鍐�"
-                                        android:textColor="#DE000000"
+                                        android:text="@={viewModel.healthCareLifeHabitsBeanLiveData.eatBad}"
+                                        android:background="@null"
+                                        android:enabled="@{viewModel.typeLiveData}"                                         android:textColor="#DE000000"
                                         android:textSize="14sp"
                                         android:layout_marginTop="5dp"
-                                        android:drawableStart="@drawable/ic_radio_button"
-                                        android:drawablePadding="8dp"
+                                        android:inputType="textMultiLine"
                                         />
                                     <View
                                         android:layout_width="match_parent"
@@ -859,14 +895,16 @@
                                         android:textSize="12sp"
                                         android:alpha="0.54"
                                         />
-                                    <TextView
+                                    <EditText
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="鍠濊尪"
+                                        android:text="@={viewModel.healthCareLifeHabitsBeanLiveData.hobby}"
+                                        android:background="@null"
+                                        android:enabled="@{viewModel.typeLiveData}"
                                         android:textColor="#DE000000"
                                         android:textSize="14sp"
                                         android:layout_marginTop="5dp"
+                                        android:inputType="textMultiLine"
                                         />
                                     <View
                                         android:layout_width="match_parent"
@@ -891,14 +929,15 @@
                                         android:textSize="12sp"
                                         android:alpha="0.54"
                                         />
-                                    <TextView
+                                    <EditText
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="鍚哥儫"
-                                        android:textColor="#DE000000"
+                                        android:text="@={viewModel.healthCareLifeHabitsBeanLiveData.addition}"
+                                        android:background="@null"
+                                        android:enabled="@{viewModel.typeLiveData}"                                         android:textColor="#DE000000"
                                         android:textSize="14sp"
                                         android:layout_marginTop="5dp"
+                                        android:inputType="textMultiLine"
                                         />
                                     <View
                                         android:layout_width="match_parent"
@@ -931,7 +970,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.sleepClass.good}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -953,7 +993,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.sleepClass.general}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -975,7 +1016,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.sleepClass.easyWake}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -997,7 +1039,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.sleepClass.dreaminess}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1024,7 +1067,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.sleepClass.sleepless}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1046,7 +1090,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.sleepClass.snore}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1068,7 +1113,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.sleepClass.wakefulness}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1101,14 +1147,16 @@
                                         android:textSize="12sp"
                                         android:alpha="0.54"
                                         />
-                                    <TextView
+                                    <EditText
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="1娆�/d"
+                                        android:text="@={viewModel.healthCareLifeHabitsBeanLiveData.eatGood}"
+                                        android:background="@null"
+                                        android:enabled="@{viewModel.typeLiveData}"
                                         android:textColor="#DE000000"
                                         android:textSize="14sp"
                                         android:layout_marginTop="5dp"
+                                        android:inputType="textMultiLine"
                                         />
                                     <View
                                         android:layout_width="match_parent"
@@ -1133,14 +1181,15 @@
                                         android:textSize="12sp"
                                         android:alpha="0.54"
                                         />
-                                    <TextView
+                                    <EditText
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="6娆�/d"
-                                        android:textColor="#DE000000"
+                                        android:text="@={viewModel.healthCareLifeHabitsBeanLiveData.eatGood}"
+                                        android:background="@null"
+                                        android:enabled="@{viewModel.typeLiveData}"                                          android:textColor="#DE000000"
                                         android:textSize="14sp"
                                         android:layout_marginTop="5dp"
+                                        android:inputType="textMultiLine"
                                         />
                                     <View
                                         android:layout_width="match_parent"
@@ -1172,7 +1221,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.stoolStatusClass.normal}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1193,7 +1243,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.stoolStatusClass.constipation}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1214,7 +1265,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.stoolStatusClass.diarrhea}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1235,7 +1287,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.stoolStatusClass.incontinence}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1257,20 +1310,26 @@
                                 android:alpha="0.54"
                                 android:layout_marginTop="20dp"
                                 />
-                            <LinearLayout
+                            <androidx.constraintlayout.widget.ConstraintLayout
                                 android:layout_width="match_parent"
                                 android:layout_height="wrap_content"
                                 android:layout_marginTop="10dp"
                                 >
                                 <LinearLayout
+                                    android:id="@+id/ll_1"
                                     android:layout_width="wrap_content"
                                     android:layout_height="wrap_content"
                                     android:gravity="center_vertical"
+                                    app:layout_constraintStart_toStartOf="parent"
+                                    app:layout_constraintEnd_toStartOf="@id/ll_2"
+                                    app:layout_constraintTop_toTopOf="parent"
+                                    app:layout_constraintHorizontal_chainStyle="spread_inside"
                                     >
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.urineStatusClass.normal}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1283,15 +1342,19 @@
                                         />
                                 </LinearLayout>
                                 <LinearLayout
+                                    android:id="@+id/ll_2"
                                     android:layout_width="wrap_content"
                                     android:layout_height="wrap_content"
                                     android:gravity="center_vertical"
-                                    android:layout_marginStart="20dp"
+                                    app:layout_constraintStart_toEndOf="@id/ll_1"
+                                    app:layout_constraintEnd_toStartOf="@id/ll_3"
+                                    app:layout_constraintTop_toTopOf="parent"
                                     >
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.urineStatusClass.nightUrinaryRetention}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1304,15 +1367,18 @@
                                         />
                                 </LinearLayout>
                                 <LinearLayout
+                                    android:id="@+id/ll_3"
                                     android:layout_width="wrap_content"
                                     android:layout_height="wrap_content"
                                     android:gravity="center_vertical"
-                                    android:layout_marginStart="20dp"
-                                    >
+                                    app:layout_constraintStart_toEndOf="@id/ll_2"
+                                    app:layout_constraintEnd_toStartOf="@id/ll_4"
+                                    app:layout_constraintTop_toTopOf="parent"                                    >
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.urineStatusClass.incontinence}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1325,15 +1391,18 @@
                                         />
                                 </LinearLayout>
                                 <LinearLayout
+                                    android:id="@+id/ll_4"
                                     android:layout_width="wrap_content"
                                     android:layout_height="wrap_content"
                                     android:gravity="center_vertical"
-                                    android:layout_marginStart="20dp"
-                                    >
+                                    app:layout_constraintStart_toEndOf="@id/ll_3"
+                                    app:layout_constraintEnd_toEndOf="parent"
+                                    app:layout_constraintTop_toTopOf="parent"                                    >
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.urineStatusClass.enuresis}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1345,7 +1414,7 @@
                                         android:layout_marginStart="8dp"
                                         />
                                 </LinearLayout>
-                            </LinearLayout>
+                            </androidx.constraintlayout.widget.ConstraintLayout>
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
@@ -1368,7 +1437,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.eatingHabitsClass.uniformityOfMeatAndVegetables}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1394,7 +1464,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.eatingHabitsClass.meat}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1420,7 +1491,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.eatingHabitsClass.vegetable}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1446,7 +1518,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.eatingHabitsClass.salt}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1472,7 +1545,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.eatingHabitsClass.oil}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1498,7 +1572,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.eatingHabitsClass.sugar}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1524,7 +1599,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.eatingHabitsClass.other}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1560,7 +1636,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.lifeEventClass.bereave}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1582,7 +1659,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.lifeEventClass.liveAlone}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1609,7 +1687,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.lifeEventClass.inHospital}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1618,7 +1697,7 @@
                                         android:text="涓�骞翠箣鍐呬綇闄㈡不鐤�"
                                         android:textColor="#DE000000"
                                         android:textSize="16sp"
-                                        android:layout_marginStart="8dp"
+                                        android:layout_marginStart="5dp"
                                         />
                                 </LinearLayout>
 
@@ -1632,7 +1711,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareLifeHabitsBeanLiveData.lifeEventClass.divide}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1713,14 +1793,17 @@
                                         android:textSize="12sp"
                                         android:alpha="0.54"
                                         />
-                                    <TextView
-                                        android:layout_width="wrap_content"
+
+                                    <EditText
+                                        android:layout_width="match_parent"
                                         android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="26.5 掳C"
+                                        android:text="@={viewModel.healthCareNursingExaminationBeanLiveData.temperature}"
+                                        android:background="@null"
+                                        android:enabled="@{viewModel.typeLiveData}"
                                         android:textColor="#B3000000"
                                         android:textSize="16sp"
                                         android:layout_marginTop="5dp"
+                                        android:inputType="text"
                                         />
                                     <View
                                         android:layout_width="match_parent"
@@ -1745,16 +1828,16 @@
                                         android:textSize="12sp"
                                         android:alpha="0.54"
                                         />
-                                    <TextView
+                                    <EditText
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="60涓�/鍒�"
+                                        android:text="@={viewModel.healthCareNursingExaminationBeanLiveData.pulse}"
+                                        android:background="@null"
+                                        android:enabled="@{viewModel.typeLiveData}"
                                         android:textColor="#B3000000"
                                         android:textSize="16sp"
                                         android:layout_marginTop="5dp"
-                                        android:drawableStart="@drawable/ic_radio_button"
-                                        android:drawablePadding="8dp"
+                                        android:inputType="text"
                                         />
                                     <View
                                         android:layout_width="match_parent"
@@ -1784,14 +1867,16 @@
                                         android:textSize="12sp"
                                         android:alpha="0.54"
                                         />
-                                    <TextView
+                                    <EditText
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="120"
+                                        android:text="@={viewModel.healthCareNursingExaminationBeanLiveData.bloodPressure}"
+                                        android:background="@null"
+                                        android:enabled="@{viewModel.typeLiveData}"
                                         android:textColor="#B3000000"
                                         android:textSize="16sp"
                                         android:layout_marginTop="5dp"
+                                        android:inputType="text"
                                         />
                                     <View
                                         android:layout_width="match_parent"
@@ -1816,14 +1901,16 @@
                                         android:textSize="12sp"
                                         android:alpha="0.54"
                                         />
-                                    <TextView
+                                    <EditText
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="65kg"
+                                        android:text="@={viewModel.healthCareNursingExaminationBeanLiveData.weight}"
+                                        android:background="@null"
+                                        android:enabled="@{viewModel.typeLiveData}"
                                         android:textColor="#B3000000"
                                         android:textSize="16sp"
                                         android:layout_marginTop="5dp"
+                                        android:inputType="text"
                                         />
                                     <View
                                         android:layout_width="match_parent"
@@ -1855,7 +1942,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.skinTypeClass.acne}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1876,12 +1964,12 @@
                                     android:layout_width="wrap_content"
                                     android:layout_height="wrap_content"
                                     android:gravity="center_vertical"
-                                    android:layout_marginStart="20dp"
                                     >
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.skinTypeClass.psoriasis}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1902,12 +1990,12 @@
                                     android:layout_width="wrap_content"
                                     android:layout_height="wrap_content"
                                     android:gravity="center_vertical"
-                                    android:layout_marginStart="20dp"
                                     >
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.skinTypeClass.color}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1928,12 +2016,12 @@
                                     android:layout_width="wrap_content"
                                     android:layout_height="wrap_content"
                                     android:gravity="center_vertical"
-                                    android:layout_marginStart="20dp"
                                     >
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.skinTypeClass.edema}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1959,7 +2047,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.skinTypeClass.rash}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -1984,7 +2073,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.skinTypeClass.bloodStasis}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2009,7 +2099,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.skinTypeClass.snom}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2035,7 +2126,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.skinTypeClass.nevus}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2056,7 +2148,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.skinTypeClass.ulcer}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2096,7 +2189,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.psychologyTypeClass.optimistic}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2121,7 +2215,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.psychologyTypeClass.worry}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2146,7 +2241,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.psychologyTypeClass.fear}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2172,7 +2268,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.psychologyTypeClass.suspicion}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2197,7 +2294,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.psychologyTypeClass.constrain}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2222,7 +2320,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.psychologyTypeClass.miss}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2257,7 +2356,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.attitudeClass.lucidity}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2282,7 +2382,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.attitudeClass.unknown}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2307,7 +2408,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.attitudeClass.normal}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2332,7 +2434,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.attitudeClass.abnormal}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2367,7 +2470,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.nutritionClass.good}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2392,7 +2496,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.nutritionClass.medium}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2417,7 +2522,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.nutritionClass.poor}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2442,7 +2548,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareNursingExaminationBeanLiveData.nutritionClass.obesity}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2525,7 +2632,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.brainDiseaseClass.ischemicStroke}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2550,7 +2658,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.brainDiseaseClass.cerebralHemorrhage}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2575,7 +2684,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.brainDiseaseClass.other}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2601,7 +2711,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.brainDiseaseClass.subarachnoidHemorrhage}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2626,7 +2737,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.brainDiseaseClass.tia}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2661,7 +2773,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.heartDiseaseClass.myocardialInfarct}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2686,7 +2799,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.heartDiseaseClass.anginaPectoris}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2711,7 +2825,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.heartDiseaseClass.congestiveHeartFailure}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2737,7 +2852,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.heartDiseaseClass.coronaryRevascularization}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2762,7 +2878,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.heartDiseaseClass.precordialPain}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2788,7 +2905,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.heartDiseaseClass.other}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2823,7 +2941,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.vascularDiseaseClass.dissectingAneurysm}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2848,7 +2967,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.vascularDiseaseClass.arterialOcclusiveDiseases}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2873,7 +2993,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.vascularDiseaseClass.other}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2908,7 +3029,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.digestiveSystemDiseaseClass.gastroduodenalUlcer}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2933,7 +3055,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.digestiveSystemDiseaseClass.esophagitis}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2959,7 +3082,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.digestiveSystemDiseaseClass.gastritis}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -2984,13 +3108,14 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.digestiveSystemDiseaseClass.colitis}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
                                         android:maxLines="1"
-                                        android:text="鑲濈値"
+                                        android:text="婧冪枴鎬х粨鑲犵値"
                                         android:textColor="#DE000000"
                                         android:textSize="16sp"
                                         android:layout_marginStart="8dp"
@@ -3009,13 +3134,14 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.digestiveSystemDiseaseClass.hepatitis}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
                                         android:maxLines="1"
-                                        android:text="鍏跺畠"
+                                        android:text="鑲濈値"
                                         android:textColor="#DE000000"
                                         android:textSize="16sp"
                                         android:layout_marginStart="8dp"
@@ -3035,7 +3161,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.digestiveSystemDiseaseClass.cholecystitis}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3060,7 +3187,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.digestiveSystemDiseaseClass.cholelithiasis}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3085,7 +3213,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.digestiveSystemDiseaseClass.fattyLiver}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3111,7 +3240,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.digestiveSystemDiseaseClass.hyperlipidemia}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3136,7 +3266,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.digestiveSystemDiseaseClass.haemorrhoids}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3161,7 +3292,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.digestiveSystemDiseaseClass.other}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3196,7 +3328,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.respiratorySystemDiseaseClass.copd}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3221,7 +3354,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.respiratorySystemDiseaseClass.pneumonia}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3246,7 +3380,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.respiratorySystemDiseaseClass.bronchitis}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3272,7 +3407,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.respiratorySystemDiseaseClass.bronchialAsthma}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3297,7 +3433,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.respiratorySystemDiseaseClass.pulmonaryTuberculosis}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3322,7 +3459,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.respiratorySystemDiseaseClass.upperRespiratoryTractInfection}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3348,7 +3486,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.respiratorySystemDiseaseClass.other}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3383,7 +3522,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.kidneyDiseaseClass.diabetes}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3408,7 +3548,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.kidneyDiseaseClass.renalFailure}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3433,7 +3574,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.kidneyDiseaseClass.acuteNephritis}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3460,7 +3602,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.kidneyDiseaseClass.chronicNephritis}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3481,7 +3624,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.kidneyDiseaseClass.urinaryCalculus}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3508,7 +3652,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.kidneyDiseaseClass.urinaryTractInfection}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3529,7 +3674,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.kidneyDiseaseClass.other}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3565,7 +3711,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.otherDiseaseClass.pregnant}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3586,7 +3733,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.otherDiseaseClass.cold}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3613,7 +3761,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.otherDiseaseClass.infectious}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3634,7 +3783,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.otherDiseaseClass.pulmonaryBulla}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3660,7 +3810,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.otherDiseaseClass.hemoptysis}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3687,7 +3838,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.otherDiseaseClass.pneumothorax}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3708,7 +3860,8 @@
                                     <ImageView
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
-                                        android:background="@drawable/ic_radio_button_selected"
+                                        android:clickable="@{viewModel.typeLiveData}"
+                                app:select_state="@={viewModel.healthCareExistingProblemsBeanLiveData.otherDiseaseClass.activeBleeding}"
                                         />
                                     <TextView
                                         android:layout_width="wrap_content"
@@ -3741,8 +3894,8 @@
                     app:tabIndicatorHeight="0dp"
                     app:tabGravity="fill"
                     />
-                <TextView
-                    android:id="@+id/tv_fill"
+                <EditText
+                    android:id="@+id/et_fill"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:background="@drawable/shape_fffad1e0_stroke_0_10_10_10"
@@ -3750,9 +3903,24 @@
                     android:paddingVertical="10dp"
                     android:layout_marginHorizontal="20dp"
                     app:layout_constraintTop_toBottomOf="@id/tab_layout"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    android:hint="@{viewModel.typeLiveData ? `璇峰~鍐檂 : ``}"
+                    android:inputType="textMultiLine"
+                    android:textColor="#FF131215"
                     />
 
             </LinearLayout>
-        </ScrollView>
+        </androidx.core.widget.NestedScrollView>
+        <androidx.constraintlayout.utils.widget.ImageFilterView
+            android:id="@+id/fab_move_to_top"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginEnd="25dp"
+            android:layout_marginBottom="44dp"
+            app:fabCustomSize="100dp"
+            android:background="@drawable/ic_move_to_top"
+            />
     </androidx.constraintlayout.widget.ConstraintLayout>
 </layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_home_devices.xml b/app/src/main/res/layout/activity_home_devices.xml
index 9698ca1..491d369 100644
--- a/app/src/main/res/layout/activity_home_devices.xml
+++ b/app/src/main/res/layout/activity_home_devices.xml
@@ -12,7 +12,8 @@
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical">
+        android:background="@color/color_normal_background"
+        >
 
         <com.android.app_base.widget.ExtendTitleBar
             android:id="@+id/titleBar"
@@ -50,7 +51,7 @@
                     android:text="瀹跺涵璁惧"
                     android:layout_weight="1"
                     android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
+                    android:textSize="20sp"
                     />
                 <ImageView
                     android:id="@+id/iv_search_default"
@@ -89,7 +90,10 @@
                     android:imeOptions="actionSearch"
                     android:text=""
                     android:singleLine="true"
-                    android:hint="鍦ㄢ�滃澶т簨璁板唴鎼滅储鈥�"
+                    android:hint="鍦ㄢ�滃搴澶団�濆唴鎼滅储"
+                    android:focusable="false"
+                    android:clickable="false"
+                    android:editable="false"
                     />
                 <ImageView
                     android:id="@+id/iv_search_type"
@@ -107,6 +111,7 @@
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:gravity="center"
+            android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -126,18 +131,322 @@
                 android:textColor="#73000000"
                 />
         </LinearLayout>
-
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/recyclerView"
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@color/color_normal_background"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleBar"
-            tools:itemCount="20"
-            tools:layout_editor_absoluteX="-81dp"
-            tools:listitem="@layout/item_home_devices" />
+            >
+            <com.scwang.smart.refresh.header.MaterialHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                />
 
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                tools:itemCount="3"
+                tools:listitem="@layout/item_little_doctor" />
+            <com.scwang.smart.refresh.footer.BallPulseFooter
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="浜嬮」鍐呭"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.content}"
+                        android:hint="璇疯緭鍏ヤ簨椤瑰唴瀹�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="璁惧鍚嶇О"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.name}"
+                        android:hint="璇疯緭鍏ヨ澶囧悕绉�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="璐拱浜�"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.buyer}"
+                        android:hint="璇疯緭鍏ヨ喘涔颁汉"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鏃堕棿"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="4"
+                        android:gravity="center"
+                        >
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_start_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:layout_marginStart="6dp"
+                            android:text="@={viewModel.requestBeanLiveData.happenStartTime}"
+                            android:hint="寮�濮嬫椂闂�"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            android:lines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鈥�"
+                            />
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_end_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:gravity="center"
+                            android:layout_height="wrap_content"
+                            android:text="@={viewModel.requestBeanLiveData.happenEndTime}"
+                            android:hint="缁撴潫鏃堕棿"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <ImageView
+                            android:id="@+id/iv_time_clear"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/ic_clear"
+                            android:visibility="invisible"
+                            />
+                    </LinearLayout>
+
+                </LinearLayout>
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="瀛樻斁鍦扮偣"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center_vertical"
+                        android:lines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.location}"
+                        android:hint="璇疯緭鍏ュ瓨鏀惧湴鐐�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
+        <com.google.android.material.floatingactionbutton.FloatingActionButton
+            android:id="@+id/fab_add"
+            android:layout_width="56dp"
+            android:layout_height="56dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginEnd="25dp"
+            android:layout_marginBottom="@dimen/dp_44"
+            android:src="@drawable/ic_add"
+            app:fabCustomSize="56dp"
+            />
     </androidx.constraintlayout.widget.ConstraintLayout>
 
 </layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_home_devices_detail.xml b/app/src/main/res/layout/activity_home_devices_detail.xml
index 1324ff9..af40a90 100644
--- a/app/src/main/res/layout/activity_home_devices_detail.xml
+++ b/app/src/main/res/layout/activity_home_devices_detail.xml
@@ -17,10 +17,28 @@
         android:orientation="vertical">
 
         <com.android.app_base.widget.ExtendTitleBar
+            android:id="@+id/titleBar"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            app:title="@{viewModel.beanLiveData.id!=0?viewModel.beanLiveData.name:`娣诲姞璁惧`}"
             app:titleGravity="left"
-            />
+            >
+            <FrameLayout
+                android:layout_width="24dp"
+                android:layout_height="24dp"
+                android:layout_marginHorizontal="16dp"
+                android:layout_gravity="center_vertical|end"
+                >
+                <ImageView
+                    android:id="@+id/iv_operate"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:background="@{viewModel.typeLiveData?@drawable/ic_operate_finish:@drawable/ic_operate}"
+                    />
+            </FrameLayout>
+        </com.android.app_base.widget.ExtendTitleBar>
+
         <ScrollView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -31,6 +49,7 @@
                 android:layout_height="match_parent"
                 android:orientation="vertical"
                 android:paddingHorizontal="20dp"
+                android:paddingBottom="20dp"
                 >
                 <TextView
                     android:layout_width="wrap_content"
@@ -45,12 +64,14 @@
                 <EditText
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:inputType="text"
+                    android:inputType="textMultiLine"
                     android:autofillHints="creditCardNumber"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ヨ澶囧悕绉癭:``}"
                     android:textColor="#DE000000"
                     android:textSize="16sp"
                     android:text="@={viewModel.beanLiveData.name}"
+                    android:enabled="@{viewModel.typeLiveData}"
                     />
 
                 <TextView
@@ -63,13 +84,19 @@
                     />
 
                 <EditText
+                    android:id="@+id/et_time"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
+                    android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇烽�夋嫨鏃堕棿`:``}"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.createDate}"
-                    android:textSize="16sp" />
+                    android:text="@={viewModel.beanLiveData.happenTime}"
+                    android:textSize="16sp"
+                    android:clickable="@{viewModel.typeLiveData}"
+                    app:isEditable="@{false}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -82,11 +109,14 @@
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
-                    android:inputType="text"
+                    android:inputType="textMultiLine"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ヨ喘涔颁汉`:``}"
                     android:text="@={viewModel.beanLiveData.buyer}"
                     android:textColor="#DE000000"
-                    android:textSize="16sp" />
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -99,11 +129,14 @@
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
-                    android:inputType="text"
+                    android:inputType="textMultiLine"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ヤ簨椤瑰唴瀹筦:``}"
                     android:textColor="#DE000000"
                     android:text="@={viewModel.beanLiveData.content}"
-                    android:textSize="16sp" />
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -118,9 +151,12 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ュ瓨鏀惧湴鐐筦:``}"
                     android:textColor="#DE000000"
                     android:text="@={viewModel.beanLiveData.location}"
-                    android:textSize="16sp" />
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -133,11 +169,50 @@
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
-                    android:inputType="text"
+                    android:inputType="textMultiLine"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ュ娉╜:``}"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
                     android:text="@={viewModel.beanLiveData.remark}"
-                    android:textSize="16sp" />
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:gravity="center_vertical"
+                    >
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="澶囧繕鏈�"
+                        android:textColor="#FF000000"
+                        android:textSize="20sp"
+                        />
+                    <ImageView
+                        android:id="@+id/iv_add_memo"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_tourism_add"
+                        android:layout_marginEnd="15dp"
+                        android:visibility="@{viewModel.typeLiveData}"
+                        />
+                </LinearLayout>
+                <RelativeLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    >
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/rv_memo"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        tools:listitem="@layout/item_memo"
+                        tools:itemCount="2"
+                        />
+                </RelativeLayout>
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
diff --git a/app/src/main/res/layout/activity_honor_collection.xml b/app/src/main/res/layout/activity_honor_collection.xml
index 0e21024..d8fdf0f 100644
--- a/app/src/main/res/layout/activity_honor_collection.xml
+++ b/app/src/main/res/layout/activity_honor_collection.xml
@@ -12,7 +12,9 @@
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical">
+        android:orientation="vertical"
+        android:background="@color/color_normal_background"
+        >
 
         <com.android.app_base.widget.ExtendTitleBar
             android:id="@+id/titleBar"
@@ -34,7 +36,6 @@
                     android:background="@drawable/ic_operate"
                     />
             </FrameLayout>
-
             <LinearLayout
                 android:id="@+id/layout_default"
                 android:layout_width="match_parent"
@@ -47,10 +48,11 @@
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_marginStart="16dp"
-                    android:text="鑽h獕鏀惰棌"
+                    android:text="鑽h獕鏀惰棌(浠呬緵鏌ョ湅)"
                     android:layout_weight="1"
                     android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
+                    android:textSize="20sp"
+                    app:textOverflowMode="@{4}"
                     />
                 <ImageView
                     android:id="@+id/iv_search_default"
@@ -59,7 +61,6 @@
                     android:background="@drawable/ic_search"
                     />
             </LinearLayout>
-
             <LinearLayout
                 android:id="@+id/layout_search"
                 android:layout_width="match_parent"
@@ -87,9 +88,11 @@
                     android:textColor="#61000000"
                     android:background="@null"
                     android:imeOptions="actionSearch"
-                    android:text=""
                     android:singleLine="true"
-                    android:hint="鍦ㄢ�滃澶т簨璁板唴鎼滅储鈥�"
+                    android:text="鍦ㄢ�滆崳瑾夋敹钘忓唴鎼滅储鈥�"
+                    android:editable="false"
+                    android:clickable="false"
+                    android:focusable="false"
                     />
                 <ImageView
                     android:id="@+id/iv_search_type"
@@ -98,7 +101,6 @@
                     android:background="@drawable/ic_search_by"
                     />
             </LinearLayout>
-
         </com.android.app_base.widget.ExtendTitleBar>
 
         <LinearLayout
@@ -107,6 +109,7 @@
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:gravity="center"
+            android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -126,18 +129,270 @@
                 android:textColor="#73000000"
                 />
         </LinearLayout>
-
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/recyclerView"
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@color/color_normal_background"
-            app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleBar"
-            app:layout_constraintVertical_bias="1.0"
-            tools:itemCount="20"
-            tools:layout_editor_absoluteX="-81dp"
-            tools:listitem="@layout/item_family_assets" />
+            app:layout_constraintBottom_toBottomOf="parent"
+            >
+            <com.scwang.smart.refresh.header.MaterialHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                />
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                tools:itemCount="20"
+                tools:listitem="@layout/item_honor_collection" />
+
+            <com.scwang.smart.refresh.footer.BallPulseFooter
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="绫诲埆"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.type}"
+                        android:hint="璇疯緭鍏ョ被鍒�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鎷ユ湁鑰�"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.owner}"
+                        android:hint="璇疯緭鍏ユ嫢鏈夎��"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鏃堕棿"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="4"
+                        android:gravity="center"
+                        >
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_start_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:layout_marginStart="6dp"
+                            android:text="@={viewModel.requestBeanLiveData.happenStartTime}"
+                            android:hint="寮�濮嬫椂闂�"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            android:lines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鈥�"
+                            />
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_end_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:gravity="center"
+                            android:layout_height="wrap_content"
+                            android:text="@={viewModel.requestBeanLiveData.happenEndTime}"
+                            android:hint="缁撴潫鏃堕棿"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <ImageView
+                            android:id="@+id/iv_time_clear"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/ic_clear"
+                            android:visibility="invisible"
+                            />
+                    </LinearLayout>
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="瀛樻斁浣嶇疆"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        android:lines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.location}"
+                        android:hint="璇疯緭鍏ュ瓨鏀句綅缃�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
 
     </androidx.constraintlayout.widget.ConstraintLayout>
 
diff --git a/app/src/main/res/layout/activity_honor_collection_detail.xml b/app/src/main/res/layout/activity_honor_collection_detail.xml
index 6a4b7c7..96b7332 100644
--- a/app/src/main/res/layout/activity_honor_collection_detail.xml
+++ b/app/src/main/res/layout/activity_honor_collection_detail.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto">
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
 
     <data>
         <variable
@@ -20,16 +21,16 @@
             app:title="@{viewModel.beanLiveData.owner+`鐨刞+ viewModel.beanLiveData.type}"
             app:titleGravity="left"
             />
-        <ScrollView
+        <androidx.core.widget.NestedScrollView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
             >
             <LinearLayout
                 android:layout_width="match_parent"
-                android:layout_height="match_parent"
+                android:layout_height="wrap_content"
                 android:orientation="vertical"
                 android:paddingHorizontal="20dp"
-                android:paddingBottom="20dp"
                 >
                 <TextView
                     android:layout_width="wrap_content"
@@ -39,8 +40,6 @@
                     android:textColor="#767375"
                     android:textSize="12sp"
                     />
-
-
                 <EditText
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -51,7 +50,6 @@
                     android:textSize="16sp"
                     android:text="@={viewModel.beanLiveData.name}"
                     />
-
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -60,14 +58,13 @@
                     android:textColor="#767375"
                     android:textSize="12sp"
                     />
-
                 <EditText
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.getTime}"
+                    android:text="@={viewModel.beanLiveData.happenTime}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -155,35 +152,35 @@
                     android:text="@={viewModel.beanLiveData.remark}"
                     android:textSize="16sp" />
                 <TextView
+                    android:id="@+id/textview_elecfile"
                     android:layout_width="wrap_content"
-                    android:layout_marginTop="10dp"
+                    android:layout_marginTop="@dimen/dp_10"
                     android:layout_height="wrap_content"
                     android:text="鐢靛瓙鏂囦欢"
-                    android:textColor="#767375"
+                    android:textColor="#ff000000"
                     android:textSize="12sp"
                     />
                 <RelativeLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:background="@drawable/shape_6b0000_stroke"
                     >
                     <com.android.app_base.widget.WrapRecyclerView
                         android:id="@+id/rv_image"
                         android:orientation="vertical"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="10dp"
-                        android:layout_marginTop="2sp"
+                        android:background="@drawable/shape_6b0000_stroke"
+                        android:layout_marginBottom="20dp"
+                        android:layout_marginTop="2dp"
                         android:paddingStart="10dp"
                         android:paddingEnd="5dp"
                         android:paddingVertical="10dp"
                         />
-
                 </RelativeLayout>
 
 
             </LinearLayout>
-        </ScrollView>
+        </androidx.core.widget.NestedScrollView>
 
 
     </LinearLayout>
diff --git a/app/src/main/res/layout/activity_hundred_wish.xml b/app/src/main/res/layout/activity_hundred_wish.xml
index 7ba9212..7766ecf 100644
--- a/app/src/main/res/layout/activity_hundred_wish.xml
+++ b/app/src/main/res/layout/activity_hundred_wish.xml
@@ -34,7 +34,6 @@
                     android:background="@drawable/ic_operate"
                     />
             </FrameLayout>
-
             <LinearLayout
                 android:id="@+id/layout_default"
                 android:layout_width="match_parent"
@@ -47,10 +46,11 @@
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_marginStart="16dp"
-                    android:text="鐧惧勾蹇冩効(浠呬緵鏌ョ湅)"
+                    android:text="鐧惧勾蹇冩効锛堜粎渚涙煡鐪嬶級"
                     android:layout_weight="1"
                     android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
+                    android:textSize="20sp"
+                    app:textOverflowMode="@{4}"
                     />
                 <ImageView
                     android:id="@+id/iv_search_default"
@@ -59,7 +59,6 @@
                     android:background="@drawable/ic_search"
                     />
             </LinearLayout>
-
             <LinearLayout
                 android:id="@+id/layout_search"
                 android:layout_width="match_parent"
@@ -87,9 +86,11 @@
                     android:textColor="#61000000"
                     android:background="@null"
                     android:imeOptions="actionSearch"
-                    android:text=""
                     android:singleLine="true"
-                    android:hint="鍦ㄢ�滃澶т簨璁板唴鎼滅储鈥�"
+                    android:text="鍦ㄢ�滅櫨骞村績鎰库�濆唴鎼滅储"
+                    android:editable="false"
+                    android:clickable="false"
+                    android:focusable="false"
                     />
                 <ImageView
                     android:id="@+id/iv_search_type"
@@ -98,7 +99,6 @@
                     android:background="@drawable/ic_search_by"
                     />
             </LinearLayout>
-
         </com.android.app_base.widget.ExtendTitleBar>
 
         <LinearLayout
@@ -107,6 +107,7 @@
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:gravity="center"
+            android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -121,22 +122,274 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="18dp"
-                android:text="鏆傛椂杩樻病鏈夋暟鎹摝~\n鐐瑰嚮鈥濓紜鈥濈珛鍗冲垱寤�"
+                android:text="鏆傛椂杩樻病鏈夋暟鎹摝~"
                 android:textSize="14sp"
                 android:textColor="#73000000"
                 />
         </LinearLayout>
-
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/recyclerView"
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@color/color_normal_background"
-            app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleBar"
-            app:layout_constraintVertical_bias="1.0"
-            tools:itemCount="20"
-            />
+            app:layout_constraintBottom_toBottomOf="parent"
+            >
+            <com.scwang.smart.refresh.header.MaterialHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                />
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                tools:itemCount="20"
+                tools:listitem="@layout/item_hundred_wish" />
+
+            <com.scwang.smart.refresh.footer.BallPulseFooter
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鏃堕棿"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="4"
+                        android:gravity="center"
+                        >
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_start_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:layout_marginStart="6dp"
+                            android:text="@={viewModel.requestBeanLiveData.happenStartTime}"
+                            android:hint="寮�濮嬫椂闂�"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            android:lines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鈥�"
+                            />
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_end_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:gravity="center"
+                            android:layout_height="wrap_content"
+                            android:text="@={viewModel.requestBeanLiveData.happenEndTime}"
+                            android:hint="缁撴潫鏃堕棿"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <ImageView
+                            android:id="@+id/iv_time_clear"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/ic_clear"
+                            android:visibility="invisible"
+                            />
+                    </LinearLayout>
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鐞嗘兂鏍囬"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.title}"
+                        android:hint="璇疯緭鍏ョ悊鎯虫爣棰�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鍙楁儬浜�"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.beneficiary}"
+                        android:hint="璇疯緭鍏ュ彈鎯犱汉"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="缁ф壙浜�"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.heir}"
+                        android:hint="璇疯緭鍏ョ户鎵夸汉"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
 
     </androidx.constraintlayout.widget.ConstraintLayout>
 
diff --git a/app/src/main/res/layout/activity_hundred_wish_detail.xml b/app/src/main/res/layout/activity_hundred_wish_detail.xml
index 92678e0..393677c 100644
--- a/app/src/main/res/layout/activity_hundred_wish_detail.xml
+++ b/app/src/main/res/layout/activity_hundred_wish_detail.xml
@@ -68,7 +68,7 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.createTime}"
+                    android:text="@={viewModel.beanLiveData.happenTime}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -84,7 +84,7 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
-                    android:text="@={viewModel.beanLiveData.reason}"
+                    android:text="@={viewModel.beanLiveData.cause}"
                     android:textColor="#DE000000"
                     android:textSize="16sp" />
                 <TextView
@@ -153,7 +153,7 @@
                     android:inputType="text"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@{viewModel.beanLiveData.isEffective==1?`鏄痐:`鍚}"
+                    android:text="@={viewModel.beanLiveData.isEffective}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
diff --git a/app/src/main/res/layout/activity_income_and_expenses.xml b/app/src/main/res/layout/activity_income_and_expenses.xml
index e1982a9..079f876 100644
--- a/app/src/main/res/layout/activity_income_and_expenses.xml
+++ b/app/src/main/res/layout/activity_income_and_expenses.xml
@@ -12,7 +12,8 @@
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical">
+        android:background="@color/color_normal_background"
+        >
 
         <com.android.app_base.widget.ExtendTitleBar
             android:id="@+id/titleBar"
@@ -47,10 +48,10 @@
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_marginStart="16dp"
-                    android:text="鏀舵敮鍙拌处"
+                    android:text="瀹跺涵鏀舵敮鍙拌处"
                     android:layout_weight="1"
                     android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
+                    android:textSize="20sp"
                     />
                 <ImageView
                     android:id="@+id/iv_search_default"
@@ -89,7 +90,10 @@
                     android:imeOptions="actionSearch"
                     android:text=""
                     android:singleLine="true"
-                    android:hint="鍦ㄢ�滃澶т簨璁板唴鎼滅储鈥�"
+                    android:hint="鍦ㄢ�滃搴敹鏀彴璐︹�濆唴鎼滅储"
+                    android:focusable="false"
+                    android:clickable="false"
+                    android:editable="false"
                     />
                 <ImageView
                     android:id="@+id/iv_search_type"
@@ -107,6 +111,7 @@
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:gravity="center"
+            android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -126,19 +131,277 @@
                 android:textColor="#73000000"
                 />
         </LinearLayout>
-
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/recyclerView"
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@color/color_normal_background"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleBar"
-            app:layout_constraintVertical_bias="1.0"
-            tools:itemCount="20"
-            tools:layout_editor_absoluteX="-81dp"
-            tools:listitem="@layout/item_family_assets" />
+            >
+            <com.scwang.smart.refresh.header.MaterialHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                />
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                tools:itemCount="20"
+                tools:listitem="@layout/item_family_memorabilia" />
+            <com.scwang.smart.refresh.footer.BallPulseFooter
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
 
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鍙拌处/鍩洪噾"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.type}"
+                        android:hint="璇疯緭鍏ュ彴璐�/鍩洪噾"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鏃堕棿"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="4"
+                        android:gravity="center"
+                        >
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_start_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:layout_marginStart="6dp"
+                            android:text="@={viewModel.requestBeanLiveData.happenStartTime}"
+                            android:hint="寮�濮嬫椂闂�"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            android:lines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鈥�"
+                            />
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_end_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:gravity="center"
+                            android:layout_height="wrap_content"
+                            android:text="@={viewModel.requestBeanLiveData.happenEndTime}"
+                            android:hint="缁撴潫鏃堕棿"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <ImageView
+                            android:id="@+id/iv_time_clear"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/ic_clear"
+                            android:visibility="invisible"
+                            />
+                    </LinearLayout>
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鐢ㄩ��"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.useFor}"
+                        android:hint="璇疯緭鍏ョ敤閫�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="浣跨敤浜�"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        android:lines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.usePeople}"
+                        android:hint="璇疯緭鍏ヤ娇鐢ㄤ汉"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
+        <com.google.android.material.floatingactionbutton.FloatingActionButton
+            android:id="@+id/fab_add"
+            android:layout_width="56dp"
+            android:layout_height="56dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginEnd="25dp"
+            android:layout_marginBottom="@dimen/dp_44"
+            android:src="@drawable/ic_add"
+            app:fabCustomSize="56dp"
+            />
     </androidx.constraintlayout.widget.ConstraintLayout>
 
 </layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_income_and_expenses_detail.xml b/app/src/main/res/layout/activity_income_and_expenses_detail.xml
index ae9cbae..06f04d4 100644
--- a/app/src/main/res/layout/activity_income_and_expenses_detail.xml
+++ b/app/src/main/res/layout/activity_income_and_expenses_detail.xml
@@ -16,10 +16,28 @@
         android:orientation="vertical">
 
         <com.android.app_base.widget.ExtendTitleBar
+            android:id="@+id/titleBar"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             app:title="瀹跺涵鏀舵敮鍙拌处"
-            app:titleGravity="left" />
+            app:titleGravity="left"
+            >
+            <FrameLayout
+                android:layout_width="24dp"
+                android:layout_height="24dp"
+                android:layout_marginHorizontal="16dp"
+                android:layout_gravity="center_vertical|end"
+                >
+                <ImageView
+                    android:id="@+id/iv_operate"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:background="@{viewModel.typeLiveData?@drawable/ic_operate_finish:@drawable/ic_operate}"
+                    />
+            </FrameLayout>
+        </com.android.app_base.widget.ExtendTitleBar>
+
 
         <ScrollView
             android:layout_width="match_parent"
@@ -27,7 +45,7 @@
             >
             <LinearLayout
                 android:layout_width="match_parent"
-                android:layout_height="match_parent"
+                android:layout_height="wrap_content"
                 android:orientation="vertical"
                 android:paddingHorizontal="20dp"
                 android:paddingBottom="20dp"
@@ -36,7 +54,7 @@
                     android:layout_width="wrap_content"
                     android:layout_marginTop="@dimen/dp_10"
                     android:layout_height="@dimen/dp_20"
-                    android:text="鍩洪噾/鍙拌处"
+                    android:text="鍙拌处"
                     android:textColor="#767375"
                     android:textSize="12sp"
                     />
@@ -48,9 +66,11 @@
                     android:inputType="text"
                     android:autofillHints="creditCardNumber"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ュ彴璐:``}"
                     android:textColor="#DE000000"
                     android:textSize="16sp"
-                    android:text="@{viewModel.beanLiveData.type==0?`鍩洪噾`:`鍙拌处`}"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    android:text="@={viewModel.beanLiveData.type}"
                     />
 
                 <TextView
@@ -63,12 +83,18 @@
                     />
 
                 <EditText
+                    android:id="@+id/et_time"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
+                    android:hint="@{viewModel.typeLiveData?`璇烽�夋嫨鏃堕棿`:``}"
+                    android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.createTime}"
+                    android:backgroundTint="#6B000000"
+                    app:isEditable="@{false}"
+                    android:clickable="@{viewModel.typeLiveData}"
+                    android:text="@={viewModel.beanLiveData.happenTime}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -78,15 +104,21 @@
                     android:textColor="#767375"
                     android:textSize="12sp"
                     />
+
                 <EditText
+                    android:id="@+id/et_price"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
-                    android:inputType="text"
-                    android:textColorHint="#6b000000"
-                    android:text="@{viewModel.beanLiveData.price}"
+                    android:hint="@{viewModel.typeLiveData?`璇烽�夋嫨鏀跺叆/鏀嚭`:``}"
+                    android:text="@={viewModel.beanLiveData.price}"
                     android:textColor="#DE000000"
+                    android:textColorHint="#6b000000"
+                    android:backgroundTint="#6B000000"
+                    app:isEditable="@{false}"
+                    android:clickable="@{viewModel.typeLiveData}"
                     android:textSize="16sp" />
+
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -101,7 +133,9 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ョ敤閫擿:``}"
                     android:textColor="#DE000000"
+                    android:enabled="@{viewModel.typeLiveData}"
                     android:text="@={viewModel.beanLiveData.useFor}"
                     android:textSize="16sp" />
                 <TextView
@@ -117,15 +151,17 @@
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ヤ娇鐢ㄤ汉`:``}"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
+                    android:enabled="@{viewModel.typeLiveData}"
                     android:text="@={viewModel.beanLiveData.usePeople}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
                     android:layout_height="wrap_content"
-                    android:text="鐜伴噾/鑷姩鍒掓墸"
+                    android:text="鏀粯鏂瑰紡"
                     android:textColor="#767375"
                     android:textSize="12sp"
                     />
@@ -134,15 +170,17 @@
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ユ敮浠樻柟寮廯:``}"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@{viewModel.beanLiveData.kind==0?`鐜伴噾`:`鑷姩鍒掓墸`}"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    android:text="@={viewModel.beanLiveData.kind}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
                     android:layout_height="wrap_content"
-                    android:text="浣欓"
+                    android:text="閲戦"
                     android:textColor="#767375"
                     android:textSize="12sp"
                     />
@@ -151,8 +189,10 @@
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ラ噾棰漙:``}"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
+                    android:enabled="@{viewModel.typeLiveData}"
                     android:text="@={viewModel.beanLiveData.balance}"
                     android:textSize="16sp" />
                 <TextView
@@ -168,8 +208,10 @@
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ュ娉╜:``}"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
+                    android:enabled="@{viewModel.typeLiveData}"
                     android:text="@={viewModel.beanLiveData.remark}"
                     android:textSize="16sp" />
                 <TextView
diff --git a/app/src/main/res/layout/activity_little_doctor.xml b/app/src/main/res/layout/activity_little_doctor.xml
index 725efc8..90845c6 100644
--- a/app/src/main/res/layout/activity_little_doctor.xml
+++ b/app/src/main/res/layout/activity_little_doctor.xml
@@ -4,13 +4,16 @@
     xmlns:tools="http://schemas.android.com/tools">
 
     <data>
-
+        <variable
+            name="viewModel"
+            type="com.application.zhangshi_app_android.ui.function.LittleDoctorActivityViewModel" />
     </data>
 
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical">
+        android:background="@color/color_normal_background"
+        >
 
         <com.android.app_base.widget.ExtendTitleBar
             android:id="@+id/titleBar"
@@ -48,7 +51,7 @@
                     android:text="灏忓尰鐢�"
                     android:layout_weight="1"
                     android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
+                    android:textSize="20sp"
                     />
                 <ImageView
                     android:id="@+id/iv_search_default"
@@ -87,7 +90,10 @@
                     android:imeOptions="actionSearch"
                     android:text=""
                     android:singleLine="true"
-                    android:hint="鍦ㄢ�滃澶т簨璁板唴鎼滅储鈥�"
+                    android:hint="鍦ㄢ�滃皬鍖荤敓鈥濆唴鎼滅储"
+                    android:focusable="false"
+                    android:clickable="false"
+                    android:editable="false"
                     />
                 <ImageView
                     android:id="@+id/iv_search_type"
@@ -105,6 +111,7 @@
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:gravity="center"
+            android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -124,19 +131,241 @@
                 android:textColor="#73000000"
                 />
         </LinearLayout>
-
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/recyclerView"
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@color/color_normal_background"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleBar"
-            app:layout_constraintVertical_bias="1.0"
-            tools:itemCount="20"
-            tools:layout_editor_absoluteX="-81dp"
-            tools:listitem="@layout/item_family_assets" />
+            >
+            <com.scwang.smart.refresh.header.MaterialHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                />
 
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                tools:itemCount="3"
+                tools:listitem="@layout/item_little_doctor" />
+            <com.scwang.smart.refresh.footer.BallPulseFooter
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="绫诲瀷"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.type}"
+                        android:hint="璇疯緭鍏ョ被鍨�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鐥囩姸"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.symptom}"
+                        android:hint="璇疯緭鍏ョ棁鐘�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="澶勬柟"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.prescription}"
+                        android:hint="璇疯緭鍏ュ鏂�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="閫傜敤浜�"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        android:lines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.suitable}"
+                        android:hint="璇疯緭鍏ラ�傜敤浜�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
+        <com.google.android.material.floatingactionbutton.FloatingActionButton
+            android:id="@+id/fab_add"
+            android:layout_width="56dp"
+            android:layout_height="56dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginEnd="25dp"
+            android:layout_marginBottom="@dimen/dp_44"
+            android:src="@drawable/ic_add"
+            app:fabCustomSize="56dp"
+            />
     </androidx.constraintlayout.widget.ConstraintLayout>
 
 </layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_little_doctor_detail.xml b/app/src/main/res/layout/activity_little_doctor_detail.xml
index 8f0ae8b..21bbfbe 100644
--- a/app/src/main/res/layout/activity_little_doctor_detail.xml
+++ b/app/src/main/res/layout/activity_little_doctor_detail.xml
@@ -16,11 +16,27 @@
         android:orientation="vertical">
 
         <com.android.app_base.widget.ExtendTitleBar
+            android:id="@+id/titleBar"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            app:title="灏忓尰鐢�"
+            app:title="@{viewModel.beanLiveData.symptom}"
             app:titleGravity="left"
-            />
+            >
+            <FrameLayout
+                android:layout_width="24dp"
+                android:layout_height="24dp"
+                android:layout_marginHorizontal="16dp"
+                android:layout_gravity="center_vertical|end"
+                >
+                <ImageView
+                    android:id="@+id/iv_operate"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:background="@{viewModel.typeLiveData?@drawable/ic_operate_finish:@drawable/ic_operate}"
+                    />
+            </FrameLayout>
+        </com.android.app_base.widget.ExtendTitleBar>
         <ScrollView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -36,7 +52,7 @@
                     android:layout_width="wrap_content"
                     android:layout_marginTop="@dimen/dp_10"
                     android:layout_height="@dimen/dp_20"
-                    android:text="鐥囩姸"
+                    android:text="绫诲瀷"
                     android:textColor="#767375"
                     android:textSize="12sp"
                     />
@@ -48,7 +64,27 @@
                     android:inputType="text"
                     android:autofillHints="creditCardNumber"
                     android:textColorHint="#6b000000"
+                    android:hint="璇疯緭鍏ョ被鍨�"
                     android:textColor="#DE000000"
+                    android:textSize="16sp"
+                    android:text="@={viewModel.beanLiveData.type}"
+                    />
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_marginTop="@dimen/dp_10"
+                    android:layout_height="@dimen/dp_20"
+                    android:text="鐥囩姸"
+                    android:textColor="#767375"
+                    android:textSize="12sp"
+                    />
+                <EditText
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:inputType="text"
+                    android:autofillHints="creditCardNumber"
+                    android:textColorHint="#6b000000"
+                    android:textColor="#DE000000"
+                    android:hint="璇疯緭鍏ョ棁鐘�"
                     android:textSize="16sp"
                     android:text="@={viewModel.beanLiveData.symptom}"
                     />
@@ -68,6 +104,8 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColor="#DE000000"
+                    android:textColorHint="#6b000000"
+                    android:hint="璇疯緭鍏ラ�傜敤浜�"
                     android:text="@={viewModel.beanLiveData.suitable}"
                     android:textSize="16sp" />
                 <TextView
@@ -84,6 +122,7 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="璇疯緭鍏ユ寔缁椂闂�"
                     android:text="@={viewModel.beanLiveData.duration}"
                     android:textColor="#DE000000"
                     android:textSize="16sp" />
@@ -101,6 +140,7 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="璇疯緭鍏ヤ腑鍖诲鏂�"
                     android:textColor="#DE000000"
                     android:text="@={viewModel.beanLiveData.cmedical}"
                     android:textSize="16sp" />
@@ -118,6 +158,7 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="璇疯緭鍏ヨタ鍖诲鏂�"
                     android:textColor="#DE000000"
                     android:text="@={viewModel.beanLiveData.wmedical}"
                     android:textSize="16sp" />
@@ -134,6 +175,7 @@
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
+                    android:hint="璇疯緭鍏ュ姛鏁�"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
                     android:text="@={viewModel.beanLiveData.effect}"
@@ -152,6 +194,7 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="璇疯緭鍏ュ娉�"
                     android:textColor="#DE000000"
                     android:text="@={viewModel.beanLiveData.remark}"
                     android:textSize="16sp" />
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 59e69fb..bc2451b 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -53,7 +53,9 @@
                         android:layout_height="wrap_content"
                         android:layout_centerHorizontal="true"
                         android:layout_marginTop="18dp"
-                        android:background="@drawable/bg_login_zhang" />
+                        android:background="@drawable/bg_login_zhang"
+                        app:imageUri="@{viewModel.selectLoginBackgroundLiveData}"
+                        />
 
                     <TextView
                         android:id="@+id/tv_title"
diff --git a/app/src/main/res/layout/activity_login_bg_change.xml b/app/src/main/res/layout/activity_login_bg_change.xml
new file mode 100644
index 0000000..95d797b
--- /dev/null
+++ b/app/src/main/res/layout/activity_login_bg_change.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <data>
+        <variable
+            name="viewModel"
+            type="com.application.zhangshi_app_android.ui.personal_center.LoginBgChangeActivityViewModel" />
+    </data>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical"
+        android:background="@color/color_normal_background"
+        >
+        <com.android.app_base.widget.ExtendTitleBar
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:titleGravity="left"
+            app:title="鐧诲綍椤佃儗鏅洿鎹�"
+            app:leftIcon="@drawable/ic_back"
+            >
+            <FrameLayout
+                android:layout_width="24dp"
+                android:layout_height="24dp"
+                android:layout_marginHorizontal="16dp"
+                android:layout_gravity="center_vertical|end"
+                >
+                <ImageView
+                    android:id="@+id/iv_operate"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:background="@{viewModel.typeLiveData?@drawable/ic_operate_finish:@drawable/ic_operate_select_white}"
+                    />
+            </FrameLayout>
+
+        </com.android.app_base.widget.ExtendTitleBar>
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="20dp"
+            android:layout_marginHorizontal="20dp"
+            >
+            <com.android.app_base.widget.WrapRecyclerView
+                android:id="@+id/rv_image"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="20dp"
+                android:layout_marginTop="2dp"
+                android:paddingStart="10dp"
+                android:paddingEnd="5dp"
+                android:paddingVertical="10dp"
+                tools:itemCount="3"
+                tools:listitem="@layout/item_image"
+                />
+        </RelativeLayout>
+    </LinearLayout>
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 152a8ec..a172f91 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -24,7 +24,7 @@
         <com.google.android.material.bottomnavigation.BottomNavigationView
             android:id="@+id/main_bnv"
             android:layout_width="match_parent"
-            android:layout_height="@dimen/dp_56"
+            android:layout_height="56dp"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
diff --git a/app/src/main/res/layout/activity_marriage.xml b/app/src/main/res/layout/activity_marriage.xml
index 91fcba1..36d17b8 100644
--- a/app/src/main/res/layout/activity_marriage.xml
+++ b/app/src/main/res/layout/activity_marriage.xml
@@ -17,7 +17,7 @@
         >
 
         <com.android.app_base.widget.ExtendTitleBar
-            android:id="@+id/extendTitleBar"
+            android:id="@+id/titleBar"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:elevation="10dp"
@@ -26,11 +26,12 @@
             app:titleGravity="left"
             />
 
-        <ScrollView
+        <androidx.core.widget.NestedScrollView
+            android:id="@+id/nestedScrollView"
             android:layout_width="match_parent"
             android:layout_height="0dp"
             app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/extendTitleBar"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
             >
             <LinearLayout
                 android:layout_width="match_parent"
@@ -75,7 +76,7 @@
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="寮犱笁"
+                                android:text="@{viewModel.infoLiveData.name}"
                                 android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
@@ -105,7 +106,7 @@
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="鐢�"
+                                android:text="@{viewModel.infoLiveData.sex}"
                                 android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
@@ -140,7 +141,7 @@
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="2010-01-01"
+                                android:text="@{viewModel.infoLiveData.birthday}"
                                 android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
@@ -170,7 +171,7 @@
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="姹夋棌"
+                                android:text="@{viewModel.infoLiveData.nation}"
                                 android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
@@ -202,14 +203,18 @@
                                 android:textSize="12sp"
                                 android:alpha="0.54"
                                 />
-                            <TextView
+                            <androidx.appcompat.widget.AppCompatTextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="445222200110233318"
+                                android:text="@{viewModel.infoLiveData.idNo}"
                                 android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
                                 android:ellipsize="marquee"
+                                android:maxLines="1"
+                                app:autoSizeTextType="uniform"
+                                app:autoSizeMaxTextSize="14sp"
+                                app:autoSizeMinTextSize="12sp"
                                 />
                             <View
                                 android:layout_width="match_parent"
@@ -233,13 +238,18 @@
                                 android:textSize="12sp"
                                 android:alpha="0.54"
                                 />
-                            <TextView
+                            <androidx.appcompat.widget.AppCompatTextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="17818824255"
+                                android:text="@{viewModel.infoLiveData.phone}"
                                 android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
+                                android:ellipsize="marquee"
+                                android:maxLines="1"
+                                app:autoSizeTextType="uniform"
+                                app:autoSizeMaxTextSize="14sp"
+                                app:autoSizeMinTextSize="12sp"
                                 />
                             <View
                                 android:layout_width="match_parent"
@@ -271,7 +281,7 @@
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="宸插"
+                                android:text="@{viewModel.infoLiveData.marryStatus}"
                                 android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
@@ -303,7 +313,7 @@
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="2020-10"
+                                android:text="@{viewModel.infoLiveData.marryTime}"
                                 android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
@@ -335,10 +345,10 @@
                                 android:textSize="12sp"
                                 android:alpha="0.54"
                                 />
-                            <TextView
+                            <androidx.appcompat.widget.AppCompatTextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="骞夸笢鐪佸箍宸炲競"
+                                android:text="@{viewModel.infoLiveData.address}"
                                 android:textColor="#DE000000"
                                 android:textSize="14sp"
                                 android:layout_marginTop="5dp"
@@ -375,7 +385,7 @@
                         android:orientation="vertical"
                         android:layout_marginHorizontal="6dp"
                         >
-                        <LinearLayout
+                        <androidx.constraintlayout.widget.ConstraintLayout
                             android:id="@+id/layout_title_spouse"
                             android:layout_width="match_parent"
                             android:layout_height="50dp"
@@ -388,14 +398,20 @@
                                 android:text="閰嶅伓鎯呭喌"
                                 android:textColor="@color/black"
                                 android:textSize="20sp"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintBottom_toBottomOf="parent"
+                                app:layout_constraintStart_toStartOf="parent"
                                 />
                             <ImageView
                                 android:id="@+id/iv_spouse_fold"
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:background="@{viewModel.isSpouseExpendedLiveData?@drawable/ic_unfold:@drawable/ic_fold}"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintBottom_toBottomOf="parent"
+                                app:layout_constraintEnd_toEndOf="parent"
                                 />
-                        </LinearLayout>
+                        </androidx.constraintlayout.widget.ConstraintLayout>
                         <LinearLayout
                             android:id="@+id/layout_content_spouse"
                             android:layout_width="match_parent"
@@ -426,7 +442,7 @@
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
                                         android:maxLines="1"
-                                        android:text="寮犱笁"
+                                        android:text="@{viewModel.infoLiveData.spouseName}"
                                         android:textColor="#DE000000"
                                         android:textSize="14sp"
                                         android:layout_marginTop="5dp"
@@ -458,7 +474,7 @@
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
                                         android:maxLines="1"
-                                        android:text="宸插"
+                                        android:text="@{viewModel.infoLiveData.spouseMarryStatus}"
                                         android:textColor="#DE000000"
                                         android:textSize="14sp"
                                         android:layout_marginTop="5dp"
@@ -497,7 +513,7 @@
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
                                         android:maxLines="1"
-                                        android:text="2010-01-01"
+                                        android:text="@{viewModel.infoLiveData.spouseBirthday}"
                                         android:textColor="#DE000000"
                                         android:textSize="14sp"
                                         android:layout_marginTop="5dp"
@@ -529,7 +545,7 @@
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
                                         android:maxLines="1"
-                                        android:text="骞夸笢鐪佸箍宸炲競"
+                                        android:text="@{viewModel.infoLiveData.spouseAddress}"
                                         android:textColor="#DE000000"
                                         android:textSize="14sp"
                                         android:layout_marginTop="5dp"
@@ -542,60 +558,13 @@
                                         />
                                 </LinearLayout>
                             </LinearLayout>
-                            <LinearLayout
-                                android:layout_width="match_parent"
-                                android:layout_height="wrap_content"
-                                android:layout_marginTop="20dp"
-                                android:layout_marginBottom="10dp"
-                                >
-                                <LinearLayout
-                                    android:layout_width="0dp"
-                                    android:layout_height="wrap_content"
-                                    android:layout_weight="1"
-                                    android:orientation="vertical"
-                                    >
-                                    <TextView
-                                        android:layout_width="wrap_content"
-                                        android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="宸ヤ綔鍗曚綅"
-                                        android:textColor="@color/black"
-                                        android:textSize="12sp"
-                                        android:alpha="0.54"
-                                        />
-                                    <TextView
-                                        android:layout_width="wrap_content"
-                                        android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="寮犳皬鍏徃"
-                                        android:textColor="#DE000000"
-                                        android:textSize="14sp"
-                                        android:layout_marginTop="5dp"
-                                        android:ellipsize="marquee"
-                                        />
-                                    <View
-                                        android:layout_width="match_parent"
-                                        android:layout_height="1dp"
-                                        android:background="#6B000000"
-                                        android:layout_marginTop="8dp"
-                                        />
-                                </LinearLayout>
-                                <LinearLayout
-                                    android:layout_width="0dp"
-                                    android:layout_height="wrap_content"
-                                    android:layout_weight="1"
-                                    android:orientation="vertical"
-                                    android:layout_marginStart="40dp"
-                                    >
-                                </LinearLayout>
-                            </LinearLayout>
-
                         </LinearLayout>
 
 
                     </LinearLayout>
 
                 </androidx.cardview.widget.CardView>
+
                 <androidx.cardview.widget.CardView
                     android:id="@+id/card_predecessor"
                     android:layout_width="match_parent"
@@ -604,6 +573,7 @@
                     android:layout_marginTop="10dp"
                     app:cardCornerRadius="10dp"
                     app:cardElevation="2dp"
+                    tools:layout_height="wrap_content"
                     >
                     <LinearLayout
                         android:layout_width="match_parent"
@@ -611,7 +581,7 @@
                         android:orientation="vertical"
                         android:layout_marginHorizontal="6dp"
                         >
-                        <LinearLayout
+                        <androidx.constraintlayout.widget.ConstraintLayout
                             android:id="@+id/layout_title_predecessor"
                             android:layout_width="match_parent"
                             android:layout_height="50dp"
@@ -624,207 +594,33 @@
                                 android:text="鍓嶄换"
                                 android:textColor="#CC000000"
                                 android:textSize="18sp"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintBottom_toBottomOf="parent"
+                                app:layout_constraintStart_toStartOf="parent"
                                 />
                             <ImageView
                                 android:id="@+id/iv_predecessor_fold"
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:background="@{viewModel.isPredecessorExpendedLiveData?@drawable/ic_unfold:@drawable/ic_fold}"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintBottom_toBottomOf="parent"
+                                app:layout_constraintEnd_toEndOf="parent"
                                 />
-                        </LinearLayout>
-                        <LinearLayout
+                        </androidx.constraintlayout.widget.ConstraintLayout>
+                        <RelativeLayout
                             android:id="@+id/layout_content_predecessor"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:orientation="vertical"
                             >
-                            <LinearLayout
+                            <androidx.recyclerview.widget.RecyclerView
+                                android:id="@+id/rv_predecessor"
                                 android:layout_width="match_parent"
                                 android:layout_height="wrap_content"
-                                >
-                                <LinearLayout
-                                    android:layout_width="0dp"
-                                    android:layout_height="wrap_content"
-                                    android:layout_weight="1"
-                                    android:orientation="vertical"
-                                    >
-                                    <TextView
-                                        android:layout_width="wrap_content"
-                                        android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="濮撳悕"
-                                        android:textColor="@color/black"
-                                        android:textSize="12sp"
-                                        android:alpha="0.54"
-                                        />
-                                    <TextView
-                                        android:layout_width="wrap_content"
-                                        android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="寮犱笁"
-                                        android:textColor="#B3000000"
-                                        android:textSize="16sp"
-                                        android:layout_marginTop="5dp"
-                                        />
-                                    <View
-                                        android:layout_width="match_parent"
-                                        android:layout_height="1dp"
-                                        android:background="#6B000000"
-                                        android:layout_marginTop="8dp"
-                                        />
-                                </LinearLayout>
-                                <LinearLayout
-                                    android:layout_width="0dp"
-                                    android:layout_height="wrap_content"
-                                    android:layout_weight="1"
-                                    android:orientation="vertical"
-                                    android:layout_marginStart="40dp"
-                                    >
-                                    <TextView
-                                        android:layout_width="wrap_content"
-                                        android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="濠氬Щ鐘跺喌"
-                                        android:textColor="@color/black"
-                                        android:textSize="12sp"
-                                        android:alpha="0.54"
-                                        />
-                                    <TextView
-                                        android:layout_width="wrap_content"
-                                        android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="绂诲"
-                                        android:textColor="#B3000000"
-                                        android:textSize="16sp"
-                                        android:layout_marginTop="5dp"
-                                        android:drawableStart="@drawable/ic_radio_button"
-                                        android:drawablePadding="8dp"
-                                        />
-                                    <View
-                                        android:layout_width="match_parent"
-                                        android:layout_height="1dp"
-                                        android:background="#6B000000"
-                                        android:layout_marginTop="8dp"
-                                        />
-                                </LinearLayout>
-                            </LinearLayout>
-                            <LinearLayout
-                                android:layout_width="match_parent"
-                                android:layout_height="wrap_content"
-                                android:layout_marginTop="20dp"
-                                >
-                                <LinearLayout
-                                    android:layout_width="0dp"
-                                    android:layout_height="wrap_content"
-                                    android:layout_weight="1"
-                                    android:orientation="vertical"
-                                    >
-                                    <TextView
-                                        android:layout_width="wrap_content"
-                                        android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="鍑虹敓鏃ユ湡"
-                                        android:textColor="@color/black"
-                                        android:textSize="12sp"
-                                        android:alpha="0.54"
-                                        />
-                                    <TextView
-                                        android:layout_width="wrap_content"
-                                        android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="2010-01-01"
-                                        android:textColor="#B3000000"
-                                        android:textSize="16sp"
-                                        android:layout_marginTop="5dp"
-                                        />
-                                    <View
-                                        android:layout_width="match_parent"
-                                        android:layout_height="1dp"
-                                        android:background="#6B000000"
-                                        android:layout_marginTop="8dp"
-                                        />
-                                </LinearLayout>
-                                <LinearLayout
-                                    android:layout_width="0dp"
-                                    android:layout_height="wrap_content"
-                                    android:layout_weight="1"
-                                    android:orientation="vertical"
-                                    android:layout_marginStart="40dp"
-                                    >
-                                    <TextView
-                                        android:layout_width="wrap_content"
-                                        android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="鎴风睄鍦板潃"
-                                        android:textColor="@color/black"
-                                        android:textSize="12sp"
-                                        android:alpha="0.54"
-                                        />
-                                    <TextView
-                                        android:layout_width="wrap_content"
-                                        android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="骞夸笢鐪佸箍宸炲競"
-                                        android:textColor="#B3000000"
-                                        android:textSize="16sp"
-                                        android:layout_marginTop="5dp"
-                                        />
-                                    <View
-                                        android:layout_width="match_parent"
-                                        android:layout_height="1dp"
-                                        android:background="#6B000000"
-                                        android:layout_marginTop="8dp"
-                                        />
-                                </LinearLayout>
-                            </LinearLayout>
-                            <LinearLayout
-                                android:layout_width="match_parent"
-                                android:layout_height="wrap_content"
-                                android:layout_marginTop="20dp"
-                                android:layout_marginBottom="10dp"
-                                >
-                                <LinearLayout
-                                    android:layout_width="0dp"
-                                    android:layout_height="wrap_content"
-                                    android:layout_weight="1"
-                                    android:orientation="vertical"
-                                    >
-                                    <TextView
-                                        android:layout_width="wrap_content"
-                                        android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="宸ヤ綔鍗曚綅"
-                                        android:textColor="@color/black"
-                                        android:textSize="12sp"
-                                        android:alpha="0.54"
-                                        />
-                                    <TextView
-                                        android:layout_width="wrap_content"
-                                        android:layout_height="wrap_content"
-                                        android:maxLines="1"
-                                        android:text="寮犳皬鍏徃"
-                                        android:textColor="#B3000000"
-                                        android:textSize="16sp"
-                                        android:layout_marginTop="5dp"
-                                        android:ellipsize="marquee"
-                                        />
-                                    <View
-                                        android:layout_width="match_parent"
-                                        android:layout_height="1dp"
-                                        android:background="#6B000000"
-                                        android:layout_marginTop="8dp"
-                                        />
-                                </LinearLayout>
-                                <LinearLayout
-                                    android:layout_width="0dp"
-                                    android:layout_height="wrap_content"
-                                    android:layout_weight="1"
-                                    android:orientation="vertical"
-                                    android:layout_marginStart="40dp"
-                                    >
-                                </LinearLayout>
-                            </LinearLayout>
-                        </LinearLayout>
+                                tools:listitem="@layout/item_old_spouse"
+                                tools:itemCount="3"
+                                />
+                        </RelativeLayout>
 
                     </LinearLayout>
 
@@ -837,6 +633,7 @@
                     android:layout_marginTop="10dp"
                     app:cardCornerRadius="10dp"
                     app:cardElevation="2dp"
+                    tools:layout_height="wrap_content"
                     >
                     <LinearLayout
                         android:layout_width="match_parent"
@@ -844,7 +641,7 @@
                         android:orientation="vertical"
                         android:layout_marginHorizontal="6dp"
                         >
-                        <LinearLayout
+                        <androidx.constraintlayout.widget.ConstraintLayout
                             android:id="@+id/layout_title_procreate"
                             android:layout_width="match_parent"
                             android:layout_height="50dp"
@@ -857,20 +654,25 @@
                                 android:text="鐢熻偛鎯呭喌"
                                 android:textColor="@color/black"
                                 android:textSize="20sp"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintBottom_toBottomOf="parent"
+                                app:layout_constraintStart_toStartOf="parent"
                                 />
                             <ImageView
                                 android:id="@+id/iv_procreate_fold"
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:background="@{viewModel.isProcreateExpendedLiveData?@drawable/ic_unfold:@drawable/ic_fold}"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintBottom_toBottomOf="parent"
+                                app:layout_constraintEnd_toEndOf="parent"
                                 />
-                        </LinearLayout>
+                        </androidx.constraintlayout.widget.ConstraintLayout>
                         <LinearLayout
                             android:id="@+id/layout_content_procreate"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
                             android:orientation="vertical"
-
                             >
                             <LinearLayout
                                 android:layout_width="match_parent"
@@ -895,7 +697,7 @@
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
                                         android:maxLines="1"
-                                        android:text="宸茬敓鑲�"
+                                        android:text="@{viewModel.infoLiveData.bearStatus}"
                                         android:textColor="#DE000000"
                                         android:textSize="14sp"
                                         android:layout_marginTop="5dp"
@@ -942,7 +744,7 @@
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
                                         android:maxLines="1"
-                                        android:text="鏄�"
+                                        android:text="@{viewModel.infoLiveData.handbookStatus}"
                                         android:textColor="#DE000000"
                                         android:textSize="14sp"
                                         android:layout_marginTop="5dp"
@@ -990,7 +792,7 @@
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
                                         android:maxLines="1"
-                                        android:text="鏄�"
+                                        android:text="@{viewModel.infoLiveData.oneBorn}"
                                         android:textColor="#DE000000"
                                         android:textSize="14sp"
                                         android:layout_marginTop="5dp"
@@ -1024,7 +826,7 @@
                                         android:layout_width="wrap_content"
                                         android:layout_height="wrap_content"
                                         android:maxLines="1"
-                                        android:text="2023-01-01"
+                                        android:text="@{viewModel.infoLiveData.oneBornTime}"
                                         android:textColor="#DE000000"
                                         android:textSize="14sp"
                                         android:layout_marginTop="5dp"
@@ -1069,16 +871,17 @@
                         android:layout_height="wrap_content"
                         android:textSize="16sp"
                         android:textColor="#FF131215"
-                        android:text="闇�澹版槑鐨勬儏鍐垫鏂囬渶澹版槑鐨勬儏鍐垫鏂囬渶澹版槑鐨勬儏鍐垫鏂囬渶澹版槑鐨勬儏鍐垫鏂囬渶澹版槑鐨勬儏鍐垫鏂囬渶澹版槑鐨勬儏鍐垫鏂囬渶澹版槑鐨勬儏鍐垫鏂囬渶澹版槑鐨勬儏鍐垫鏂囬渶澹版槑鐨勬儏鍐垫鏂囬渶澹版槑鐨勬儏鍐垫鏂囬渶澹版槑鐨勬儏鍐垫鏂囬渶澹版槑鐨勬儏鍐垫鏂囬渶澹版槑鐨勬儏鍐垫鏂�"
+                        android:text="@{viewModel.infoLiveData.content}"
                         />
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:textSize="16sp"
                         android:textColor="@color/black"
-                        android:text="2005骞�12鏈�20鏃�"
+                        android:text="@{viewModel.infoLiveData.contentTime}"
                         android:layout_marginTop="12dp"
                         android:layout_gravity="end"
+                        tools:text=""
                         />
                 </LinearLayout>
                 <TextView
@@ -1107,14 +910,14 @@
                         android:layout_height="wrap_content"
                         android:textSize="16sp"
                         android:textColor="#FF131215"
-                        android:text="澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃澶囨敞姝f枃"
+                        android:text="@{viewModel.infoLiveData.remark}"
                         />
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:textSize="16sp"
                         android:textColor="@color/black"
-                        android:text="2005骞�12鏈�20鏃�"
+                        android:text="@{viewModel.infoLiveData.remarkTime}"
                         android:layout_marginTop="12dp"
                         android:layout_gravity="end"
                         />
@@ -1122,6 +925,46 @@
 
 
             </LinearLayout>
-        </ScrollView>
+        </androidx.core.widget.NestedScrollView>
+
+        <LinearLayout
+            android:id="@+id/layout_data_null"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:gravity="center"
+            android:visibility="gone"
+            tools:visibility="gone"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@id/titleBar">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:background="@drawable/img_data_null"
+                />
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="18dp"
+                android:text="绌虹┖濡備篃~"
+                android:textSize="14sp"
+                android:textColor="#73000000"
+                />
+        </LinearLayout>
+
+        <androidx.constraintlayout.utils.widget.ImageFilterView
+            android:id="@+id/fab_move_to_top"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginEnd="25dp"
+            android:layout_marginBottom="44dp"
+            app:fabCustomSize="100dp"
+            android:background="@drawable/ic_move_to_top"
+            />
     </androidx.constraintlayout.widget.ConstraintLayout>
 </layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_personal_notepad.xml b/app/src/main/res/layout/activity_personal_notepad.xml
index ca1b29a..8827b59 100644
--- a/app/src/main/res/layout/activity_personal_notepad.xml
+++ b/app/src/main/res/layout/activity_personal_notepad.xml
@@ -12,13 +12,15 @@
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical">
+        android:background="@color/color_normal_background"
+        >
 
         <com.android.app_base.widget.ExtendTitleBar
             android:id="@+id/titleBar"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             app:layout_constraintTop_toTopOf="parent"
+            app:leftIcon="@drawable/ic_back"
             >
             <FrameLayout
                 android:layout_width="24dp"
@@ -47,12 +49,10 @@
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_marginStart="16dp"
-                    android:text="涓汉璁颁簨鏈紙浠呬緵鏌ョ湅锛�"
-                    android:ellipsize="marquee"
-                    android:maxLines="1"
+                    android:text="涓汉璁颁簨鏈�"
                     android:layout_weight="1"
                     android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
+                    android:textSize="20sp"
                     />
                 <ImageView
                     android:id="@+id/iv_search_default"
@@ -91,7 +91,10 @@
                     android:imeOptions="actionSearch"
                     android:text=""
                     android:singleLine="true"
-                    android:hint="鍦ㄢ�滃澶т簨璁板唴鎼滅储鈥�"
+                    android:hint="鍦ㄢ�滀釜浜鸿浜嬫湰鈥濆唴鎼滅储"
+                    android:focusable="false"
+                    android:clickable="false"
+                    android:editable="false"
                     />
                 <ImageView
                     android:id="@+id/iv_search_type"
@@ -109,6 +112,7 @@
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:gravity="center"
+            android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -128,19 +132,277 @@
                 android:textColor="#73000000"
                 />
         </LinearLayout>
-
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/recyclerView"
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@color/color_normal_background"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleBar"
-            app:layout_constraintVertical_bias="1.0"
-            tools:itemCount="20"
-            tools:layout_editor_absoluteX="-81dp"
-            tools:listitem="@layout/item_family_assets" />
+            >
+            <com.scwang.smart.refresh.header.MaterialHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                />
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                tools:itemCount="20"
+                tools:listitem="@layout/item_personal_notepad" />
+            <com.scwang.smart.refresh.footer.BallPulseFooter
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
 
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="浜嬩欢鏍囬"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.title}"
+                        android:hint="璇疯緭鍏ヤ簨浠舵爣棰�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鏃ユ湡"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="4"
+                        android:gravity="center"
+                        >
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_start_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:layout_marginStart="6dp"
+                            android:text="@={viewModel.requestBeanLiveData.happenStartTime}"
+                            android:hint="寮�濮嬫椂闂�"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            android:lines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鈥�"
+                            />
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_end_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:gravity="center"
+                            android:layout_height="wrap_content"
+                            android:text="@={viewModel.requestBeanLiveData.happenEndTime}"
+                            android:hint="缁撴潫鏃堕棿"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <ImageView
+                            android:id="@+id/iv_time_clear"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/ic_clear"
+                            android:visibility="invisible"
+                            />
+                    </LinearLayout>
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鍦扮偣"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.address}"
+                        android:hint="璇疯緭鍏ュ湴鐐�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="浜虹墿"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        android:lines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.people}"
+                        android:hint="璇疯緭鍏ヤ汉鐗�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
+        <com.google.android.material.floatingactionbutton.FloatingActionButton
+            android:id="@+id/fab_add"
+            android:layout_width="56dp"
+            android:layout_height="56dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginEnd="25dp"
+            android:layout_marginBottom="@dimen/dp_44"
+            android:src="@drawable/ic_add"
+            app:fabCustomSize="56dp"
+            />
     </androidx.constraintlayout.widget.ConstraintLayout>
 
 </layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_personal_notepad_detail.xml b/app/src/main/res/layout/activity_personal_notepad_detail.xml
index 4846699..8a7ca6a 100644
--- a/app/src/main/res/layout/activity_personal_notepad_detail.xml
+++ b/app/src/main/res/layout/activity_personal_notepad_detail.xml
@@ -16,11 +16,29 @@
         android:orientation="vertical">
 
         <com.android.app_base.widget.ExtendTitleBar
+            android:id="@+id/titleBar"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            app:title="@{viewModel.beanLiveData.title}"
+            app:title="@{viewModel.beanLiveData.id==0?`鏂板缓涓汉璁颁簨鏈琡:viewModel.beanLiveData.title}"
             app:titleGravity="left"
-            />
+            app:leftIcon="@drawable/ic_back"
+            >
+            <FrameLayout
+                android:layout_width="24dp"
+                android:layout_height="24dp"
+                android:layout_marginHorizontal="16dp"
+                android:layout_gravity="center_vertical|end"
+                >
+
+                <ImageView
+                    android:id="@+id/iv_operate"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:background="@{viewModel.typeLiveData?@drawable/ic_operate_finish:@drawable/ic_operate}" />
+            </FrameLayout>
+        </com.android.app_base.widget.ExtendTitleBar>
+
         <ScrollView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -48,9 +66,11 @@
                     android:inputType="text"
                     android:autofillHints="creditCardNumber"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ユ爣棰榒:``}"
                     android:textColor="#DE000000"
                     android:textSize="16sp"
-                    android:text="@{viewModel.beanLiveData.title}"
+                    android:text="@={viewModel.beanLiveData.title}"
+                    android:enabled="@{viewModel.typeLiveData}"
                     />
 
                 <TextView
@@ -63,13 +83,19 @@
                     />
 
                 <EditText
+                    android:id="@+id/et_time"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
+                    android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇烽�夋嫨鏃堕棿`:``}"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.time}"
-                    android:textSize="16sp" />
+                    android:text="@={viewModel.beanLiveData.happenTime}"
+                    android:textSize="16sp"
+                    app:isEditable="@{false}"
+                    android:clickable="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -84,9 +110,12 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
-                    android:text="@={viewModel.beanLiveData.person}"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ヤ汉鐗ー:``}"
+                    android:text="@={viewModel.beanLiveData.people}"
                     android:textColor="#DE000000"
-                    android:textSize="16sp" />
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -101,9 +130,12 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ュ湴鐐筦:``}"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.place}"
-                    android:textSize="16sp" />
+                    android:text="@={viewModel.beanLiveData.address}"
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
 
                 <TextView
                     android:layout_width="wrap_content"
@@ -118,10 +150,13 @@
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:inputType="text"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ュ娉╜:``}"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@{viewModel.beanLiveData.remark}"
-                    android:textSize="16sp" />
+                    android:text="@={viewModel.beanLiveData.remark}"
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
diff --git a/app/src/main/res/layout/activity_pet.xml b/app/src/main/res/layout/activity_pet.xml
index 43ef49b..1bddf4d 100644
--- a/app/src/main/res/layout/activity_pet.xml
+++ b/app/src/main/res/layout/activity_pet.xml
@@ -12,18 +12,14 @@
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical"
         android:background="@color/color_normal_background"
         >
 
         <com.android.app_base.widget.ExtendTitleBar
-            android:id="@+id/extendTitleBar"
+            android:id="@+id/titleBar"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:elevation="10dp"
             app:layout_constraintTop_toTopOf="parent"
-            app:title="榄呭疇(浠呬緵鏌ョ湅)"
-            app:titleGravity="left"
             >
             <FrameLayout
                 android:layout_width="24dp"
@@ -39,6 +35,71 @@
                     android:background="@drawable/ic_operate"
                     />
             </FrameLayout>
+            <LinearLayout
+                android:id="@+id/layout_default"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginHorizontal="56dp"
+                android:gravity="center_vertical"
+                >
+                <TextView
+                    android:id="@+id/tv_title"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginHorizontal="16dp"
+                    android:text="榄呭疇锛堜粎渚涙煡鐪嬶級"
+                    android:layout_weight="1"
+                    android:textColor="@color/white"
+                    android:textSize="20sp"
+                    app:textOverflowMode="@{4}"
+                    />
+                <ImageView
+                    android:id="@+id/iv_search_default"
+                    android:layout_width="@dimen/dp_24"
+                    android:layout_height="@dimen/dp_24"
+                    android:background="@drawable/ic_search"
+                    />
+            </LinearLayout>
+            <LinearLayout
+                android:id="@+id/layout_search"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginVertical="4dp"
+                android:layout_marginHorizontal="56dp"
+                android:gravity="center_vertical"
+                android:background="@color/white"
+                android:paddingHorizontal="5dp"
+                android:visibility="gone"
+                >
+                <ImageView
+                    android:id="@+id/iv_search"
+                    android:layout_width="24dp"
+                    android:layout_height="24dp"
+                    android:background="@drawable/ic_search_gray"
+                    />
+                <EditText
+                    android:id="@+id/et_search"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:layout_marginStart="5dp"
+                    android:textSize="14sp"
+                    android:textColor="#61000000"
+                    android:background="@null"
+                    android:imeOptions="actionSearch"
+                    android:singleLine="true"
+                    android:text="鍦ㄢ�滈瓍瀹犫�濆唴鎼滅储"
+                    android:editable="false"
+                    android:clickable="false"
+                    android:focusable="false"
+                    />
+                <ImageView
+                    android:id="@+id/iv_search_type"
+                    android:layout_width="24dp"
+                    android:layout_height="24dp"
+                    android:background="@drawable/ic_search_by"
+                    />
+            </LinearLayout>
         </com.android.app_base.widget.ExtendTitleBar>
 
         <LinearLayout
@@ -51,7 +112,7 @@
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/extendTitleBar">
+            app:layout_constraintTop_toBottomOf="@+id/titleBar">
 
             <ImageView
                 android:layout_width="wrap_content"
@@ -62,261 +123,183 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="18dp"
-                android:text="鏆傛椂杩樻病鏈夋暟鎹摝~\n鐐瑰嚮鈥濓紜鈥濈珛鍗冲垱寤�"
+                android:text="鏆傛椂杩樻病鏈夋暟鎹摝~"
                 android:textSize="14sp"
                 android:textColor="#73000000"
                 />
         </LinearLayout>
-
-        <androidx.core.widget.NestedScrollView
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@+id/titleBar"
             app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/extendTitleBar"
             >
-            <LinearLayout
+            <com.scwang.smart.refresh.header.MaterialHeader
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
+                />
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="20dp"
+                tools:itemCount="20"
+                tools:listitem="@layout/item_pet" />
+
+            <com.scwang.smart.refresh.footer.BallPulseFooter
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
                 >
-                <androidx.cardview.widget.CardView
+
+                <View
                     android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_marginHorizontal="20dp"
-                    android:layout_marginVertical="26dp"
-                    app:cardBackgroundColor="#99FFE2EF"
-                    app:cardCornerRadius="10dp"
-                    app:cardElevation="0dp"
-                    >
-                    <LinearLayout
-                        android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
                         android:layout_height="wrap_content"
-                        android:layout_marginHorizontal="40dp"
-                        android:layout_marginVertical="20dp"
-                        android:orientation="vertical"
+                        android:text="瀹犵墿鍚�"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.name}"
+                        android:hint="璇疯緭鍏ュ疇鐗╁悕"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="match_parent"
+                        android:text="鍑虹敓鏃ユ湡"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="4"
+                        android:gravity="center"
                         >
-                        <TextView
-                            android:layout_width="wrap_content"
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_start_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
                             android:layout_height="wrap_content"
-                            android:text="灏忛粍鐨勫熀鏈俊鎭�"
-                            android:textColor="#66000000"
+                            android:gravity="center"
+                            android:layout_marginStart="6dp"
+                            android:text="@={viewModel.requestBeanLiveData.happenStartTime}"
+                            android:hint="寮�濮嬫椂闂�"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
                             android:textSize="14sp"
-                            />
-                        <LinearLayout
-                            android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
-                            android:layout_marginTop="10dp"
-                            >
-                            <TextView
-                                android:layout_width="0dp"
-                                android:layout_height="wrap_content"
-                                android:layout_weight="1"
-                                android:text="鐘悕锛氬皬榛�"
-                                android:textColor="#FF000000"
-                                android:textSize="14sp"
-                                />
-                            <TextView
-                                android:layout_width="0dp"
-                                android:layout_height="wrap_content"
-                                android:layout_weight="1"
-                                android:text="鐘锛氶噾姣�"
-                                android:textColor="#FF000000"
-                                android:textSize="14sp"
-                                />
-                        </LinearLayout>
-                        <LinearLayout
-                            android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
-                            android:layout_marginTop="10dp"
-                            >
-                            <TextView
-                                android:layout_width="0dp"
-                                android:layout_height="wrap_content"
-                                android:layout_weight="1"
-                                android:text="鎬у埆锛氶泴鎬�"
-                                android:textColor="#FF000000"
-                                android:textSize="14sp"
-                                />
-                            <TextView
-                                android:layout_width="0dp"
-                                android:layout_height="wrap_content"
-                                android:layout_weight="1"
-                                android:text="鐘彧棰滆壊锛氶噾榛勮壊"
-                                android:textColor="#FF000000"
-                                android:textSize="14sp"
-                                />
-                        </LinearLayout>
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="鍑虹敓鏃ユ湡锛�2010-03-01"
-                            android:textColor="#FF000000"
-                            android:textSize="14sp"
-                            android:layout_marginTop="10dp"
+                            android:maxLines="1"
+                            android:lines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="鐘瘉鍙风爜锛�1234567891"
-                            android:textColor="#FF000000"
-                            android:textSize="14sp"
-                            android:layout_marginTop="10dp"
+                            android:text="鈥�"
                             />
-                        <TextView
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_end_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:gravity="center"
+                            android:layout_height="wrap_content"
+                            android:text="@={viewModel.requestBeanLiveData.happenEndTime}"
+                            android:hint="缁撴潫鏃堕棿"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <ImageView
+                            android:id="@+id/iv_time_clear"
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="闃蹭吉鐮侊細1234567891"
-                            android:textColor="#FF000000"
-                            android:textSize="14sp"
-                            android:layout_marginTop="10dp"
+                            android:background="@drawable/ic_clear"
+                            android:visibility="invisible"
                             />
-                        <LinearLayout
-                            android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
-                            android:layout_marginTop="10dp"
-                            >
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:text="楗涔犳儻锛堝枩锛夛細"
-                                android:textColor="#FF000000"
-                                android:textSize="14sp"
-                                />
-                            <TextView
-                                android:layout_width="0dp"
-                                android:layout_height="wrap_content"
-                                android:layout_weight="1"
-                                android:text="灏忕嫍绮�"
-                                android:textColor="#FF000000"
-                                android:textSize="14sp"
-                                />
-                        </LinearLayout>
-                        <LinearLayout
-                            android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
-                            android:layout_marginTop="10dp"
-                            >
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:text="楗涔犳儻锛堟伓锛夛細"
-                                android:textColor="#FF000000"
-                                android:textSize="14sp"
-                                />
-                            <TextView
-                                android:layout_width="0dp"
-                                android:layout_height="wrap_content"
-                                android:layout_weight="1"
-                                android:text="灏忕嫍绮�"
-                                android:textColor="#FF000000"
-                                android:textSize="14sp"
-                                />
-                        </LinearLayout>
-                        <LinearLayout
-                            android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
-                            android:layout_marginTop="10dp"
-                            >
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:text="鐢熸椿涔犳儻锛堢埍濂斤級锛�"
-                                android:textColor="#FF000000"
-                                android:textSize="14sp"
-                                />
-                            <TextView
-                                android:layout_width="0dp"
-                                android:layout_height="wrap_content"
-                                android:layout_weight="1"
-                                android:text="灏忕嫍绮皬鐙楃伯"
-                                android:textColor="#FF000000"
-                                android:textSize="14sp"
-                                />
-                        </LinearLayout>
-                        <LinearLayout
-                            android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
-                            android:layout_marginTop="10dp"
-                            >
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:text="鐢熸椿涔犳儻锛堝棞濂斤級锛�"
-                                android:textColor="#FF000000"
-                                android:textSize="14sp"
-                                />
-                            <TextView
-                                android:layout_width="0dp"
-                                android:layout_height="wrap_content"
-                                android:layout_weight="1"
-                                android:text="灏忕嫍绮皬鐙楃伯灏忕嫍绮皬鐙楃伯灏忕嫍绮皬鐙楃伯灏忕嫍绮皬鐙楃伯灏忕嫍绮皬鐙楃伯灏忕嫍绮皬鐙楃伯灏忕嫍绮皬鐙楃伯灏忕嫍绮皬鐙楃伯灏忕嫍绮皬鐙楃伯灏忕嫍绮皬鐙楃伯灏忕嫍绮皬鐙楃伯灏忕嫍绮皬鐙楃伯灏忕嫍绮皬鐙楃伯灏忕嫍绮皬鐙楃伯"
-                                android:textColor="#FF000000"
-                                android:textSize="14sp"
-                                />
-                        </LinearLayout>
-                        <LinearLayout
-                            android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
-                            android:layout_marginTop="10dp"
-                            >
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:text="鍚噦鏂硅█锛�"
-                                android:textColor="#FF000000"
-                                android:textSize="14sp"
-                                />
-                            <TextView
-                                android:layout_width="0dp"
-                                android:layout_height="wrap_content"
-                                android:layout_weight="1"
-                                android:text="绮よ銆佸瀹惰瘽"
-                                android:textColor="#FF000000"
-                                android:textSize="14sp"
-                                />
-                        </LinearLayout>
-                        <LinearLayout
-                            android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
-                            android:layout_marginTop="10dp"
-                            >
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:text="鐘眳浣忓湴鍧�锛�"
-                                android:textColor="#FF000000"
-                                android:textSize="14sp"
-                                />
-                            <TextView
-                                android:layout_width="0dp"
-                                android:layout_height="wrap_content"
-                                android:layout_weight="1"
-                                android:text="骞夸笢鐪佸箍宸炲競"
-                                android:textColor="#FF000000"
-                                android:textSize="14sp"
-                                />
-                        </LinearLayout>
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="榄呭疇鍏ㄨ韩鐓э細"
-                            android:textColor="#FF000000"
-                            android:textSize="14sp"
-                            android:layout_marginTop="10dp"
-                            />
-                        <androidx.recyclerview.widget.RecyclerView
-                            android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
-                            android:id="@+id/recyclerView"
-                            android:layout_marginTop="10dp"
-                            />
-
                     </LinearLayout>
-                </androidx.cardview.widget.CardView>
 
+                </LinearLayout>
             </LinearLayout>
 
-        </androidx.core.widget.NestedScrollView>
-
+        </RelativeLayout>
 
     </androidx.constraintlayout.widget.ConstraintLayout>
 
diff --git a/app/src/main/res/layout/activity_pet_detail.xml b/app/src/main/res/layout/activity_pet_detail.xml
new file mode 100644
index 0000000..0c7c9d1
--- /dev/null
+++ b/app/src/main/res/layout/activity_pet_detail.xml
@@ -0,0 +1,418 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <data>
+        <variable
+            name="viewModel"
+            type="com.application.zhangshi_app_android.ui.function.PetDetailActivityViewModel" />
+    </data>
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical"
+        android:background="@color/color_normal_background"
+        >
+
+        <com.android.app_base.widget.ExtendTitleBar
+            android:id="@+id/extendTitleBar"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:elevation="10dp"
+            app:layout_constraintTop_toTopOf="parent"
+            app:title="榄呭疇(浠呬緵鏌ョ湅)"
+            app:titleGravity="left"
+            >
+            <FrameLayout
+                android:layout_width="24dp"
+                android:layout_height="24dp"
+                android:layout_marginHorizontal="16dp"
+                android:layout_gravity="center_vertical|end"
+                >
+                <ImageView
+                    android:id="@+id/iv_operate"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:background="@drawable/ic_operate"
+                    />
+            </FrameLayout>
+        </com.android.app_base.widget.ExtendTitleBar>
+
+        <LinearLayout
+            android:id="@+id/layout_data_null"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:gravity="center"
+            android:visibility="gone"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@id/extendTitleBar">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:background="@drawable/img_data_null"
+                />
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="18dp"
+                android:text="鏆傛椂杩樻病鏈夋暟鎹摝~\n鐐瑰嚮鈥濓紜鈥濈珛鍗冲垱寤�"
+                android:textSize="14sp"
+                android:textColor="#73000000"
+                />
+        </LinearLayout>
+
+        <androidx.core.widget.NestedScrollView
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/extendTitleBar"
+            >
+            <androidx.cardview.widget.CardView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginHorizontal="20dp"
+                android:layout_marginVertical="26dp"
+                app:cardBackgroundColor="#99FFE2EF"
+                app:cardCornerRadius="10dp"
+                app:cardElevation="0dp"
+                >
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginHorizontal="40dp"
+                    android:layout_marginVertical="20dp"
+                    android:orientation="vertical"
+                    >
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="灏忛粍鐨勫熀鏈俊鎭�"
+                        android:textColor="#66000000"
+                        android:textSize="14sp"
+                        />
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        >
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            >
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鐘悕锛�"
+                                android:textColor="#FF000000"
+                                android:textSize="14sp"
+                                />
+                            <TextView
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:text="@{viewModel.beanLiveData.name}"
+                                android:textColor="#FF000000"
+                                android:textSize="14sp"
+                                />
+                        </LinearLayout>
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="20dp"
+                            >
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鐘锛�"
+                                android:textColor="#FF000000"
+                                android:textSize="14sp"
+                                />
+                            <TextView
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:text="@{viewModel.beanLiveData.type}"
+                                android:textColor="#FF000000"
+                                android:textSize="14sp"
+                                />
+                        </LinearLayout>
+                    </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        >
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            >
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鎬у埆锛�"
+                                android:textColor="#FF000000"
+                                android:textSize="14sp"
+                                />
+                            <TextView
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:text="@{viewModel.beanLiveData.sex}"
+                                android:textColor="#FF000000"
+                                android:textSize="14sp"
+                                />
+                        </LinearLayout>
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="20dp"
+                            >
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鐘彧棰滆壊锛�"
+                                android:textColor="#FF000000"
+                                android:textSize="14sp"
+                                />
+                            <TextView
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:text="@{viewModel.beanLiveData.color}"
+                                android:textColor="#FF000000"
+                                android:textSize="14sp"
+                                />
+                        </LinearLayout>
+                    </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        >
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鍑虹敓鏃ユ湡锛�"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                        <TextView
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:text="@{viewModel.beanLiveData.birth}"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                    </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        >
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鐘瘉鍙风爜锛�"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                        <TextView
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:text="@{viewModel.beanLiveData.idNum}"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                    </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        >
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="闃蹭吉鐮侊細"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                        <TextView
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:text="@{viewModel.beanLiveData.securityCode}"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        >
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="楗涔犳儻锛堝枩锛夛細"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                        <TextView
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:text="@{viewModel.beanLiveData.eatHabit}"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                    </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        >
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="楗涔犳儻锛堟伓锛夛細"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                        <TextView
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:text="@{viewModel.beanLiveData.disEatHabit}"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                    </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        >
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鐢熸椿涔犳儻锛堢埍濂斤級锛�"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                        <TextView
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:text="@{viewModel.beanLiveData.lifeHabit}"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                    </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        >
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鐢熸椿涔犳儻锛堝棞濂斤級锛�"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                        <TextView
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:text="@{viewModel.beanLiveData.disLifeHabit}"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                    </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        >
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鍚噦鏂硅█锛�"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                        <TextView
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:text="@{viewModel.beanLiveData.dialect}"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                    </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        >
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鐘眳浣忓湴鍧�锛�"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                        <TextView
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:text="@{viewModel.beanLiveData.address}"
+                            android:textColor="#FF000000"
+                            android:textSize="14sp"
+                            />
+                    </LinearLayout>
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="榄呭疇鍏ㄨ韩鐓э細"
+                        android:textColor="#FF000000"
+                        android:textSize="14sp"
+                        android:layout_marginTop="10dp"
+                        />
+                    <RelativeLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        >
+                        <androidx.recyclerview.widget.RecyclerView
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:id="@+id/recyclerView"
+                            />
+                    </RelativeLayout>
+
+
+                </LinearLayout>
+            </androidx.cardview.widget.CardView>
+
+
+        </androidx.core.widget.NestedScrollView>
+
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_pet_memo.xml b/app/src/main/res/layout/activity_pet_memo.xml
index cd91d89..a1540e3 100644
--- a/app/src/main/res/layout/activity_pet_memo.xml
+++ b/app/src/main/res/layout/activity_pet_memo.xml
@@ -35,7 +35,6 @@
                     android:background="@drawable/ic_operate"
                     />
             </FrameLayout>
-
             <LinearLayout
                 android:id="@+id/layout_default"
                 android:layout_width="match_parent"
@@ -47,11 +46,12 @@
                     android:id="@+id/tv_title"
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
-                    android:layout_marginStart="16dp"
-                    android:text="榄呭疇澶囧繕褰�(浠呬緵鏌ョ湅)"
+                    android:layout_marginHorizontal="16dp"
+                    android:text="榄呭疇澶囧繕鏈紙浠呬緵鏌ョ湅锛�"
                     android:layout_weight="1"
                     android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
+                    android:textSize="20sp"
+                    app:textOverflowMode="@{4}"
                     />
                 <ImageView
                     android:id="@+id/iv_search_default"
@@ -60,7 +60,6 @@
                     android:background="@drawable/ic_search"
                     />
             </LinearLayout>
-
             <LinearLayout
                 android:id="@+id/layout_search"
                 android:layout_width="match_parent"
@@ -88,9 +87,11 @@
                     android:textColor="#61000000"
                     android:background="@null"
                     android:imeOptions="actionSearch"
-                    android:text=""
                     android:singleLine="true"
-                    android:hint="鍦ㄢ�滃澶т簨璁板唴鎼滅储鈥�"
+                    android:text="鍦ㄢ�滈瓍瀹犲蹇樻湰鈥濆唴鎼滅储"
+                    android:editable="false"
+                    android:clickable="false"
+                    android:focusable="false"
                     />
                 <ImageView
                     android:id="@+id/iv_search_type"
@@ -99,7 +100,6 @@
                     android:background="@drawable/ic_search_by"
                     />
             </LinearLayout>
-
         </com.android.app_base.widget.ExtendTitleBar>
 
         <LinearLayout
@@ -108,6 +108,7 @@
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:gravity="center"
+            android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -122,23 +123,268 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="18dp"
-                android:text="鏆傛椂杩樻病鏈夋暟鎹摝~\n鐐瑰嚮鈥濓紜鈥濈珛鍗冲垱寤�"
+                android:text="鏆傛椂杩樻病鏈夋暟鎹摝~"
                 android:textSize="14sp"
                 android:textColor="#73000000"
                 />
         </LinearLayout>
-
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/recyclerView"
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@color/color_normal_background"
-            app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleBar"
-            app:layout_constraintVertical_bias="1.0"
-            tools:itemCount="20"
-            tools:layout_editor_absoluteX="-81dp"
-            tools:listitem="@layout/item_family_assets" />
+            app:layout_constraintBottom_toBottomOf="parent"
+            >
+            <com.scwang.smart.refresh.header.MaterialHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                />
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                tools:itemCount="20"
+                tools:listitem="@layout/item_pet_memo" />
+
+            <com.scwang.smart.refresh.footer.BallPulseFooter
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鏃ユ湡"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="4"
+                        android:gravity="center"
+                        >
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_start_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:layout_marginStart="6dp"
+                            android:text="@={viewModel.requestBeanLiveData.happenStartTime}"
+                            android:hint="寮�濮嬫椂闂�"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            android:lines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鈥�"
+                            />
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_end_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:gravity="center"
+                            android:layout_height="wrap_content"
+                            android:text="@={viewModel.requestBeanLiveData.happenEndTime}"
+                            android:hint="缁撴潫鏃堕棿"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <ImageView
+                            android:id="@+id/iv_time_clear"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/ic_clear"
+                            android:visibility="invisible"
+                            />
+                    </LinearLayout>
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="棰樺悕"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.title}"
+                        android:hint="璇疯緭鍏ラ鍚�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鎻愰啋鏃ユ湡"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="4"
+                        android:gravity="center"
+                        >
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_remind_start_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:layout_marginStart="6dp"
+                            android:text="@={viewModel.requestBeanLiveData.remindStartTime}"
+                            android:hint="寮�濮嬫椂闂�"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            android:lines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鈥�"
+                            />
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_remind_end_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:gravity="center"
+                            android:layout_height="wrap_content"
+                            android:text="@={viewModel.requestBeanLiveData.remindEndTime}"
+                            android:hint="缁撴潫鏃堕棿"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <ImageView
+                            android:id="@+id/iv_remind_time_clear"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/ic_clear"
+                            android:visibility="invisible"
+                            />
+                    </LinearLayout>
+
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
 
     </androidx.constraintlayout.widget.ConstraintLayout>
 
diff --git a/app/src/main/res/layout/activity_pet_memo_detail.xml b/app/src/main/res/layout/activity_pet_memo_detail.xml
index 39609c0..b5a9868 100644
--- a/app/src/main/res/layout/activity_pet_memo_detail.xml
+++ b/app/src/main/res/layout/activity_pet_memo_detail.xml
@@ -19,7 +19,7 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             app:leftIcon="@drawable/ic_back"
-            app:title="@{viewModel.beanLiveData.name+`(浠呬緵鏌ョ湅)`}"
+            app:title="@{viewModel.beanLiveData.title+`(浠呬緵鏌ョ湅)`}"
             app:titleGravity="left"
             />
         <ScrollView
@@ -51,7 +51,7 @@
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
                     android:textSize="16sp"
-                    android:text="@={viewModel.beanLiveData.name}"
+                    android:text="@={viewModel.beanLiveData.title}"
                     />
 
                 <TextView
@@ -69,7 +69,7 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.time}"
+                    android:text="@={viewModel.beanLiveData.happenTime}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -85,7 +85,7 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
-                    android:text="@={viewModel.beanLiveData.reminderTime}"
+                    android:text="@={viewModel.beanLiveData.remindTime}"
                     android:textColor="#DE000000"
                     android:textSize="16sp" />
                 <TextView
diff --git a/app/src/main/res/layout/activity_privacy.xml b/app/src/main/res/layout/activity_privacy.xml
index d0c5ea4..e0243a5 100644
--- a/app/src/main/res/layout/activity_privacy.xml
+++ b/app/src/main/res/layout/activity_privacy.xml
@@ -34,7 +34,6 @@
                     android:background="@drawable/ic_operate"
                     />
             </FrameLayout>
-
             <LinearLayout
                 android:id="@+id/layout_default"
                 android:layout_width="match_parent"
@@ -50,7 +49,8 @@
                     android:text="钘忓績瀵嗚锛堜粎渚涙煡鐪嬶級"
                     android:layout_weight="1"
                     android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
+                    android:textSize="20sp"
+                    app:textOverflowMode="@{4}"
                     />
                 <ImageView
                     android:id="@+id/iv_search_default"
@@ -59,7 +59,6 @@
                     android:background="@drawable/ic_search"
                     />
             </LinearLayout>
-
             <LinearLayout
                 android:id="@+id/layout_search"
                 android:layout_width="match_parent"
@@ -87,9 +86,11 @@
                     android:textColor="#61000000"
                     android:background="@null"
                     android:imeOptions="actionSearch"
-                    android:text=""
                     android:singleLine="true"
-                    android:hint="鍦ㄢ�滃澶т簨璁板唴鎼滅储鈥�"
+                    android:text="鍦ㄢ�滆棌蹇冨瘑璇�濆唴鎼滅储"
+                    android:editable="false"
+                    android:clickable="false"
+                    android:focusable="false"
                     />
                 <ImageView
                     android:id="@+id/iv_search_type"
@@ -98,7 +99,6 @@
                     android:background="@drawable/ic_search_by"
                     />
             </LinearLayout>
-
         </com.android.app_base.widget.ExtendTitleBar>
 
         <LinearLayout
@@ -107,6 +107,7 @@
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:gravity="center"
+            android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -121,23 +122,367 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="18dp"
-                android:text="鏆傛椂杩樻病鏈夋暟鎹摝~\n鐐瑰嚮鈥濓紜鈥濈珛鍗冲垱寤�"
+                android:text="鏆傛椂杩樻病鏈夋暟鎹摝~"
                 android:textSize="14sp"
                 android:textColor="#73000000"
                 />
         </LinearLayout>
-
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/recyclerView"
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@color/color_normal_background"
-            app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleBar"
-            app:layout_constraintVertical_bias="1.0"
-            tools:itemCount="20"
-            tools:layout_editor_absoluteX="-81dp"
-            tools:listitem="@layout/item_family_assets" />
+            app:layout_constraintBottom_toBottomOf="parent"
+            >
+            <com.scwang.smart.refresh.header.MaterialHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                />
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                tools:itemCount="20"
+                tools:listitem="@layout/item_property" />
+
+            <com.scwang.smart.refresh.footer.BallPulseFooter
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鏃堕棿"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="4"
+                        android:gravity="center"
+                        >
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_start_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:layout_marginStart="6dp"
+                            android:text="@={viewModel.requestBeanLiveData.happenStartTime}"
+                            android:hint="寮�濮嬫椂闂�"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            android:lines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鈥�"
+                            />
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_end_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:gravity="center"
+                            android:layout_height="wrap_content"
+                            android:text="@={viewModel.requestBeanLiveData.happenEndTime}"
+                            android:hint="缁撴潫鏃堕棿"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <ImageView
+                            android:id="@+id/iv_time_clear"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/ic_clear"
+                            android:visibility="invisible"
+                            />
+                    </LinearLayout>
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="绫诲埆"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.type}"
+                        android:hint="璇疯緭鍏ョ被鍒�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="璐﹀彿"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.accNo}"
+                        android:hint="璇疯緭鍏ヨ处鍙�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="match_parent"
+                        android:text="鏄惁寮�鍚寚绾�"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:layout_gravity="center_vertical"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="6sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:id="@+id/et_is_finger"
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:hint="璇烽�夋嫨鏄惁寮�鍚寚绾�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        app:isEditable="@{false}"
+                        />
+
+                </LinearLayout>
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="match_parent"
+                        android:text="绉佹湁/鍏湁"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:layout_gravity="center_vertical"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="6sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:id="@+id/et_is_private"
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:hint="璇烽�夋嫨绉佹湁/鍏湁"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        app:isEditable="@{false}"
+                        />
+
+                </LinearLayout>
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="match_parent"
+                        android:text="瀛樻斁浣嶇疆"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.location}"
+                        android:hint="璇疯緭鍏ュ瓨鏀句綅缃�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
 
     </androidx.constraintlayout.widget.ConstraintLayout>
 
diff --git a/app/src/main/res/layout/activity_privacy_detail.xml b/app/src/main/res/layout/activity_privacy_detail.xml
index a612368..59671d3 100644
--- a/app/src/main/res/layout/activity_privacy_detail.xml
+++ b/app/src/main/res/layout/activity_privacy_detail.xml
@@ -68,7 +68,7 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.time}"
+                    android:text="@={viewModel.beanLiveData.happenTime}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -84,7 +84,7 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
-                    android:text="@={viewModel.beanLiveData.account}"
+                    android:text="@={viewModel.beanLiveData.accNo}"
                     android:textColor="#DE000000"
                     android:textSize="16sp" />
                 <TextView
@@ -119,7 +119,7 @@
                     android:inputType="text"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.effectiveTime}"
+                    android:text="@={viewModel.beanLiveData.validityDate}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -136,7 +136,7 @@
                     android:inputType="text"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@{viewModel.beanLiveData.isFingerprint==1?`鏄痐:`鍚}"
+                    android:text="@{viewModel.beanLiveData.isFinger}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -153,7 +153,7 @@
                     android:inputType="text"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@{viewModel.beanLiveData.isFace==1?`鏄痐:`鍚}"
+                    android:text="@{viewModel.beanLiveData.isFace}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -170,7 +170,7 @@
                     android:inputType="text"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@{viewModel.beanLiveData.isPublic==1?`鍏湁`:`绉佹湁`}"
+                    android:text="@{viewModel.beanLiveData.isPrivate}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -206,6 +206,41 @@
                     android:textColor="#DE000000"
                     android:text="@{viewModel.beanLiveData.remark}"
                     android:textSize="16sp" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:gravity="center_vertical"
+                    >
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="澶囧繕鏈�"
+                        android:textColor="#FF000000"
+                        android:textSize="20sp"
+                        />
+                    <ImageView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_tourism_add"
+                        android:layout_marginEnd="15dp"
+                        android:visibility="gone"
+                        />
+                </LinearLayout>
+                <RelativeLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    >
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/rv_memo"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        tools:listitem="@layout/item_memo"
+                        tools:itemCount="2"
+                        />
+                </RelativeLayout>
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
diff --git a/app/src/main/res/layout/activity_property.xml b/app/src/main/res/layout/activity_property.xml
index 9e8db53..29fc0cd 100644
--- a/app/src/main/res/layout/activity_property.xml
+++ b/app/src/main/res/layout/activity_property.xml
@@ -34,7 +34,6 @@
                     android:background="@drawable/ic_operate"
                     />
             </FrameLayout>
-
             <LinearLayout
                 android:id="@+id/layout_default"
                 android:layout_width="match_parent"
@@ -50,7 +49,8 @@
                     android:text="涓汉璐骇锛堜粎渚涙煡鐪嬶級"
                     android:layout_weight="1"
                     android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
+                    android:textSize="20sp"
+                    app:textOverflowMode="@{4}"
                     />
                 <ImageView
                     android:id="@+id/iv_search_default"
@@ -59,7 +59,6 @@
                     android:background="@drawable/ic_search"
                     />
             </LinearLayout>
-
             <LinearLayout
                 android:id="@+id/layout_search"
                 android:layout_width="match_parent"
@@ -87,9 +86,11 @@
                     android:textColor="#61000000"
                     android:background="@null"
                     android:imeOptions="actionSearch"
-                    android:text=""
                     android:singleLine="true"
-                    android:hint="鍦ㄢ�滃澶т簨璁板唴鎼滅储鈥�"
+                    android:text="鍦ㄢ�滀釜浜鸿储浜р�濆唴鎼滅储"
+                    android:editable="false"
+                    android:clickable="false"
+                    android:focusable="false"
                     />
                 <ImageView
                     android:id="@+id/iv_search_type"
@@ -98,7 +99,6 @@
                     android:background="@drawable/ic_search_by"
                     />
             </LinearLayout>
-
         </com.android.app_base.widget.ExtendTitleBar>
 
         <LinearLayout
@@ -107,6 +107,7 @@
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:gravity="center"
+            android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -121,22 +122,274 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="18dp"
-                android:text="鏆傛椂杩樻病鏈夋暟鎹摝~\n鐐瑰嚮鈥濓紜鈥濈珛鍗冲垱寤�"
+                android:text="鏆傛椂杩樻病鏈夋暟鎹摝~"
                 android:textSize="14sp"
                 android:textColor="#73000000"
                 />
         </LinearLayout>
-
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/recyclerView"
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@color/color_normal_background"
-            app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleBar"
-            app:layout_constraintVertical_bias="1.0"
-            tools:itemCount="20"
-            />
+            app:layout_constraintBottom_toBottomOf="parent"
+            >
+            <com.scwang.smart.refresh.header.MaterialHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                />
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                tools:itemCount="20"
+                tools:listitem="@layout/item_property" />
+
+            <com.scwang.smart.refresh.footer.BallPulseFooter
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鏃ユ湡"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="4"
+                        android:gravity="center"
+                        >
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_start_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:layout_marginStart="6dp"
+                            android:text="@={viewModel.requestBeanLiveData.happenStartTime}"
+                            android:hint="寮�濮嬫椂闂�"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            android:lines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鈥�"
+                            />
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_end_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:gravity="center"
+                            android:layout_height="wrap_content"
+                            android:text="@={viewModel.requestBeanLiveData.happenEndTime}"
+                            android:hint="缁撴潫鏃堕棿"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <ImageView
+                            android:id="@+id/iv_time_clear"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/ic_clear"
+                            android:visibility="invisible"
+                            />
+                    </LinearLayout>
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="璐骇绫诲埆"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.type}"
+                        android:hint="璇疯緭鍏ヨ储浜х被鍒�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鏀舵敮鍚嶇О"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.name}"
+                        android:hint="璇疯緭鍏ユ敹鏀悕绉�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鏈熼檺"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.term}"
+                        android:hint="璇疯緭鍏ユ湡闄�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
 
     </androidx.constraintlayout.widget.ConstraintLayout>
 
diff --git a/app/src/main/res/layout/activity_property_detail.xml b/app/src/main/res/layout/activity_property_detail.xml
index cc9fdc0..8a5f4a9 100644
--- a/app/src/main/res/layout/activity_property_detail.xml
+++ b/app/src/main/res/layout/activity_property_detail.xml
@@ -18,7 +18,7 @@
         <com.android.app_base.widget.ExtendTitleBar
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            app:title="@{viewModel.beanLiveData.name+`(浠呬緵鏌ョ湅)`}"
+            app:title="@{viewModel.beanLiveData.incomeName+`(浠呬緵鏌ョ湅)`}"
             app:titleGravity="left"
             />
         <ScrollView
@@ -50,7 +50,7 @@
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
                     android:textSize="16sp"
-                    android:text="@={viewModel.beanLiveData.createTime}"
+                    android:text="@={viewModel.beanLiveData.happenTime}"
                     />
 
                 <TextView
@@ -84,7 +84,7 @@
                     android:layout_marginTop="2dp"
                     android:inputType="text"
                     android:textColorHint="#6b000000"
-                    android:text="@={viewModel.beanLiveData.name}"
+                    android:text="@={viewModel.beanLiveData.incomeName}"
                     android:textColor="#DE000000"
                     android:textSize="16sp" />
                 <TextView
@@ -119,7 +119,7 @@
                     android:inputType="text"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.term}"
+                    android:text="@={viewModel.beanLiveData.timeLimit}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -136,7 +136,7 @@
                     android:inputType="text"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.status}"
+                    android:text="@={viewModel.beanLiveData.isChange}"
                     android:textSize="16sp" />
                 <TextView
                     android:layout_width="wrap_content"
@@ -193,6 +193,59 @@
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
                     android:layout_height="wrap_content"
+                    android:text="鏄惁娉ㄩ攢"
+                    android:textColor="#767375"
+                    android:textSize="12sp"
+                    />
+                <EditText
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="2dp"
+                    android:inputType="text"
+                    android:textColorHint="#6b000000"
+                    android:textColor="#DE000000"
+                    android:text="@={viewModel.beanLiveData.status}"
+                    android:textSize="16sp" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:gravity="center_vertical"
+                    >
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="澶囧繕鏈�"
+                        android:textColor="#FF000000"
+                        android:textSize="20sp"
+                        />
+                    <ImageView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_tourism_add"
+                        android:layout_marginEnd="15dp"
+                        android:visibility="gone"
+                        />
+                </LinearLayout>
+                <RelativeLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    >
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/rv_memo"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        tools:listitem="@layout/item_memo"
+                        tools:itemCount="2"
+                        />
+                </RelativeLayout>
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:layout_height="wrap_content"
                     android:text="鐢靛瓙鏂囦欢"
                     android:textColor="#767375"
                     android:textSize="12sp"
diff --git a/app/src/main/res/layout/activity_test.xml b/app/src/main/res/layout/activity_test.xml
new file mode 100644
index 0000000..89565a7
--- /dev/null
+++ b/app/src/main/res/layout/activity_test.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    >
+    <data>
+        <variable
+            name="viewModel"
+            type="com.application.zhangshi_app_android.ui.TestActivityViewModel"/>
+    </data>
+
+    <FrameLayout
+        android:id="@+id/frameLayout"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical"
+        >
+        <Button
+            android:id="@+id/btn"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            />
+
+        <EditText
+            android:id="@+id/et"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@={viewModel.text}"
+            android:textColor="#8ee6ff"
+            android:textSize="@dimen/sp_36"
+            android:rotationX="45"
+            android:layout_gravity="center"
+            />
+
+
+        <View
+            android:id="@+id/myView1"
+            android:layout_width="100dp"
+            android:layout_height="100dp"
+            />
+        <View
+            android:id="@+id/myView2"
+            android:layout_width="100dp"
+            android:layout_height="100dp"
+            android:layout_gravity="end"
+            />
+        <FrameLayout
+            android:id="@+id/frameLayout2"
+            android:layout_width="200dp"
+            android:layout_height="200dp"
+            android:background="@color/purple_200"
+            android:layout_gravity="center"
+            android:visibility="gone"
+            >
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="100dp"
+                android:background="@color/black"
+                />
+
+
+        </FrameLayout>
+        <View
+            android:id="@+id/view"
+            android:layout_width="200dp"
+            android:layout_height="200dp"
+            android:background="@color/teal_700"
+            android:layout_gravity="center"
+            android:visibility="gone"
+
+            />
+        <View
+            android:id="@+id/view1"
+            android:layout_width="200dp"
+            android:layout_height="200dp"
+            android:background="@color/teal_200"
+            android:visibility="gone"
+            />
+        <View
+            android:visibility="gone"
+
+            android:id="@+id/point1"
+            android:layout_width="10dp"
+            android:layout_height="10dp"
+            android:background="@color/black"
+            />
+        <View
+            android:id="@+id/point11"
+            android:layout_width="10dp"
+            android:layout_height="10dp"
+            android:background="@color/black"
+            android:visibility="gone"
+            />
+        <View
+            android:id="@+id/point2"
+            android:layout_width="10dp"
+            android:layout_height="10dp"
+            android:background="@color/colorAccent"
+            android:visibility="gone"
+            />
+        <View
+            android:id="@+id/point22"
+            android:layout_width="10dp"
+            android:layout_height="10dp"
+            android:background="@color/colorAccent"
+            android:visibility="gone"
+            />
+    </FrameLayout>
+
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_tourism.xml b/app/src/main/res/layout/activity_tourism.xml
index 10bb0b2..fd34d19 100644
--- a/app/src/main/res/layout/activity_tourism.xml
+++ b/app/src/main/res/layout/activity_tourism.xml
@@ -12,7 +12,9 @@
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical">
+        tools:context=".ui.function.FamilyMemorabiliaActivity"
+        android:background="@color/color_normal_background"
+        >
 
         <com.android.app_base.widget.ExtendTitleBar
             android:id="@+id/titleBar"
@@ -50,7 +52,7 @@
                     android:text="鏃呮父璐圭敤璁板綍缁熻琛�"
                     android:layout_weight="1"
                     android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
+                    android:textSize="20sp"
                     />
                 <ImageView
                     android:id="@+id/iv_search_default"
@@ -89,7 +91,9 @@
                     android:imeOptions="actionSearch"
                     android:text=""
                     android:singleLine="true"
-                    android:hint="鍦ㄢ�滃澶т簨璁板唴鎼滅储鈥�"
+                    android:hint="鍦ㄢ�滆垂鐢ㄧ粺璁¤〃鈥濆唴鎼滅储"
+                    android:focusable="false"
+                    android:clickable="false"
                     />
                 <ImageView
                     android:id="@+id/iv_search_type"
@@ -107,6 +111,7 @@
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:gravity="center"
+            android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -126,19 +131,192 @@
                 android:textColor="#73000000"
                 />
         </LinearLayout>
-
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/recyclerView"
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@color/color_normal_background"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleBar"
-            app:layout_constraintVertical_bias="1.0"
-            tools:itemCount="20"
-            tools:layout_editor_absoluteX="-81dp"
-            tools:listitem="@layout/item_family_assets" />
+            >
+            <com.scwang.smart.refresh.header.MaterialHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                />
 
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginTop="20dp"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/titleBar"
+                tools:itemCount="20"
+                tools:listitem="@layout/item_family_memorabilia" />
+            <com.scwang.smart.refresh.footer.BallPulseFooter
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鏃堕棿"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="4"
+                        android:gravity="center"
+                        >
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_start_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:layout_marginStart="6dp"
+                            android:text="@={viewModel.requestBeanLiveData.start}"
+                            android:hint="寮�濮嬫椂闂�"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            android:lines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鈥�"
+                            />
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_end_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:gravity="center"
+                            android:layout_height="wrap_content"
+                            android:text="@={viewModel.requestBeanLiveData.end}"
+                            android:hint="缁撴潫鏃堕棿"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <ImageView
+                            android:id="@+id/iv_time_clear"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/ic_clear"
+                            android:visibility="invisible"
+                            />
+                    </LinearLayout>
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鎬诲ぉ鏁�"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        android:lines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.totalDay}"
+                        android:hint="璇疯緭鍏ユ�诲ぉ鏁�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
+        <com.google.android.material.floatingactionbutton.FloatingActionButton
+            android:id="@+id/fab_add"
+            android:layout_width="56dp"
+            android:layout_height="56dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginEnd="25dp"
+            android:layout_marginBottom="@dimen/dp_44"
+            android:src="@drawable/ic_add"
+            app:fabCustomSize="56dp"
+            />
     </androidx.constraintlayout.widget.ConstraintLayout>
 
 </layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_tourism_detail.xml b/app/src/main/res/layout/activity_tourism_detail.xml
index d0f9eb1..e806b06 100644
--- a/app/src/main/res/layout/activity_tourism_detail.xml
+++ b/app/src/main/res/layout/activity_tourism_detail.xml
@@ -16,11 +16,27 @@
         android:orientation="vertical">
 
         <com.android.app_base.widget.ExtendTitleBar
+            android:id="@+id/title_bar"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            app:title="@{viewModel.beanLiveData.title}"
+            app:title="@{viewModel.beanLiveData.title==null?`鏂板鏃呮父璐圭敤璁板綍`:viewModel.beanLiveData.title}"
             app:titleGravity="left"
-            />
+            >
+            <FrameLayout
+                android:layout_width="24dp"
+                android:layout_height="24dp"
+                android:layout_marginHorizontal="16dp"
+                android:layout_gravity="center_vertical|end"
+                >
+                <ImageView
+                    android:id="@+id/iv_operate"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:background="@{viewModel.typeLiveData?@drawable/ic_operate_finish:@drawable/ic_operate}"
+                    />
+            </FrameLayout>
+        </com.android.app_base.widget.ExtendTitleBar>
         <ScrollView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -47,10 +63,12 @@
                     android:layout_height="wrap_content"
                     android:inputType="text"
                     android:autofillHints="creditCardNumber"
+                    android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ユ爣棰榒:``}"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
                     android:textSize="16sp"
-                    android:text="@{viewModel.beanLiveData.title}"
+                    android:text="@={viewModel.beanLiveData.title}"
+                    android:enabled="@{viewModel.typeLiveData}"
                     />
 
                 <TextView
@@ -63,13 +81,21 @@
                     />
 
                 <EditText
+                    android:id="@+id/et_start_time"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
-                    android:inputType="text"
+                    android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇烽�夋嫨寮�濮嬫椂闂碻:``}"
                     android:textColor="#DE000000"
                     android:text="@={viewModel.beanLiveData.startTime}"
-                    android:textSize="16sp" />
+                    android:textSize="16sp"
+                    android:focusable="false"
+                    android:cursorVisible="false"
+                    android:longClickable="false"
+                    android:clickable="@{viewModel.typeLiveData}"
+                    android:backgroundTint="#6B000000"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -79,14 +105,21 @@
                     android:textSize="12sp"
                     />
                 <EditText
+                    android:id="@+id/et_end_time"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
-                    android:inputType="text"
                     android:textColorHint="#6b000000"
+                    android:hint="@{viewModel.typeLiveData?`璇烽�夋嫨缁撴潫鏃堕棿`:``}"
                     android:text="@={viewModel.beanLiveData.endTime}"
                     android:textColor="#DE000000"
-                    android:textSize="16sp" />
+                    android:textSize="16sp"
+                    android:clickable="@{viewModel.typeLiveData}"
+                    android:focusable="false"
+                    android:cursorVisible="false"
+                    android:longClickable="false"
+                    android:backgroundTint="#6B000000"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -95,15 +128,38 @@
                     android:textColor="#767375"
                     android:textSize="12sp"
                     />
-                <EditText
+                <androidx.constraintlayout.widget.ConstraintLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginTop="2dp"
-                    android:inputType="text"
-                    android:textColorHint="#6b000000"
-                    android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.totalDay}"
-                    android:textSize="16sp" />
+                    >
+                    <EditText
+                        android:id="@+id/et_total_day"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="2dp"
+                        android:inputType="number"
+                        android:textColorHint="#6b000000"
+                        android:hint="@{viewModel.typeLiveData?`0`:``}"
+                        android:textColor="#DE000000"
+                        android:text="@={viewModel.beanLiveData.totalDay}"
+                        android:textSize="16sp"
+                        android:enabled="false"
+                        android:backgroundTint="#6B000000"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        />
+                    <View
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@color/color_non_editable"
+                        app:layout_constraintTop_toTopOf="@id/et_total_day"
+                        app:layout_constraintStart_toStartOf="@id/et_total_day"
+                        app:layout_constraintBottom_toBottomOf="@id/et_total_day"
+                        app:layout_constraintEnd_toEndOf="@id/et_total_day"
+                        android:visibility="@{viewModel.typeLiveData}"
+                        />
+                </androidx.constraintlayout.widget.ConstraintLayout>
+
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
@@ -112,15 +168,37 @@
                     android:textColor="#767375"
                     android:textSize="12sp"
                     />
-                <EditText
+                <androidx.constraintlayout.widget.ConstraintLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginTop="2dp"
-                    android:inputType="text"
-                    android:textColorHint="#6b000000"
-                    android:textColor="#DE000000"
-                    android:text="@={viewModel.beanLiveData.totalMoney}"
-                    android:textSize="16sp" />
+                    >
+                    <EditText
+                        android:id="@+id/et_total_cost"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="2dp"
+                        android:inputType="numberDecimal"
+                        android:textColorHint="#6b000000"
+                        android:hint="@{viewModel.typeLiveData?`0`:``}"
+                        android:textColor="#DE000000"
+                        android:text="@={viewModel.beanLiveData.totalCost}"
+                        android:textSize="16sp"
+                        android:enabled="false"
+                        android:backgroundTint="#6B000000"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        />
+                    <View
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@color/color_non_editable"
+                        app:layout_constraintTop_toTopOf="@id/et_total_cost"
+                        app:layout_constraintStart_toStartOf="@id/et_total_cost"
+                        app:layout_constraintBottom_toBottomOf="@id/et_total_cost"
+                        app:layout_constraintEnd_toEndOf="@id/et_total_cost"
+                        android:visibility="@{viewModel.typeLiveData}"
+                        />
+                </androidx.constraintlayout.widget.ConstraintLayout>
                 <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -139,15 +217,37 @@
                             android:textColor="#767375"
                             android:textSize="12sp"
                             />
-                        <EditText
+                        <androidx.constraintlayout.widget.ConstraintLayout
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:inputType="text"
-                            android:textColorHint="#6b000000"
-                            android:textColor="#DE000000"
-                            tools:text="aaa"
-                            android:text="@={viewModel.beanLiveData.totalMoney}"
-                            android:textSize="16sp" />
+                            >
+                            <EditText
+                                android:id="@+id/et_total_cost1"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:inputType="numberDecimal"
+                                android:textColorHint="#6b000000"
+                                android:textColor="#DE000000"
+                                android:hint="@{viewModel.typeLiveData?`0`:``}"
+                                android:text="@={viewModel.beanLiveData.totalCost}"
+                                android:textSize="16sp"
+                                android:enabled="false"
+                                android:backgroundTint="#6B000000"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintStart_toStartOf="parent"
+                                />
+                            <View
+                                android:layout_width="0dp"
+                                android:layout_height="0dp"
+                                android:background="@color/color_non_editable"
+                                app:layout_constraintTop_toTopOf="@id/et_total_cost1"
+                                app:layout_constraintStart_toStartOf="@id/et_total_cost1"
+                                app:layout_constraintBottom_toBottomOf="@id/et_total_cost1"
+                                app:layout_constraintEnd_toEndOf="@id/et_total_cost1"
+                                android:visibility="@{viewModel.typeLiveData}"
+                                />
+                        </androidx.constraintlayout.widget.ConstraintLayout>
+
 
                     </LinearLayout>
                     <LinearLayout
@@ -164,14 +264,37 @@
                             android:textColor="#767375"
                             android:textSize="12sp"
                             />
-                        <EditText
+                        <androidx.constraintlayout.widget.ConstraintLayout
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:inputType="text"
-                            android:textColorHint="#6b000000"
-                            android:textColor="#DE000000"
-                            android:text="@={viewModel.beanLiveData.mealMoney}"
-                            android:textSize="16sp" />
+                            >
+                            <EditText
+                                android:id="@+id/et_eat"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:inputType="numberDecimal"
+                                android:textColorHint="#6b000000"
+                                android:hint="@{viewModel.typeLiveData?`0`:``}"
+                                android:textColor="#DE000000"
+                                android:text="@={viewModel.beanLiveData.eat}"
+                                android:textSize="16sp"
+                                android:enabled="false"
+                                android:backgroundTint="#6B000000"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintStart_toStartOf="parent"
+                                />
+                            <View
+                                android:layout_width="0dp"
+                                android:layout_height="0dp"
+                                android:background="@color/color_non_editable"
+                                app:layout_constraintTop_toTopOf="@id/et_eat"
+                                app:layout_constraintStart_toStartOf="@id/et_eat"
+                                app:layout_constraintBottom_toBottomOf="@id/et_eat"
+                                app:layout_constraintEnd_toEndOf="@id/et_eat"
+                                android:visibility="@{viewModel.typeLiveData}"
+                                />
+                        </androidx.constraintlayout.widget.ConstraintLayout>
+
 
                     </LinearLayout>
                 </LinearLayout>
@@ -193,15 +316,36 @@
                             android:textColor="#767375"
                             android:textSize="12sp"
                             />
-                        <EditText
+                        <androidx.constraintlayout.widget.ConstraintLayout
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:inputType="text"
-                            android:textColorHint="#6b000000"
-                            android:textColor="#DE000000"
-                            tools:text="aaa"
-                            android:text="@={viewModel.beanLiveData.hotelMoney}"
-                            android:textSize="16sp" />
+                            >
+                            <EditText
+                                android:id="@+id/et_stay"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:inputType="numberDecimal"
+                                android:textColorHint="#6b000000"
+                                android:hint="@{viewModel.typeLiveData?`0`:``}"
+                                android:textColor="#DE000000"
+                                android:text="@={viewModel.beanLiveData.stay}"
+                                android:textSize="16sp"
+                                android:enabled="false"
+                                android:backgroundTint="#6B000000"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintStart_toStartOf="parent"
+                                />
+                            <View
+                                android:layout_width="0dp"
+                                android:layout_height="0dp"
+                                android:background="@color/color_non_editable"
+                                app:layout_constraintTop_toTopOf="@id/et_stay"
+                                app:layout_constraintStart_toStartOf="@id/et_stay"
+                                app:layout_constraintBottom_toBottomOf="@id/et_stay"
+                                app:layout_constraintEnd_toEndOf="@id/et_stay"
+                                android:visibility="@{viewModel.typeLiveData}"
+                                />
+                        </androidx.constraintlayout.widget.ConstraintLayout>
 
                     </LinearLayout>
                     <LinearLayout
@@ -218,14 +362,36 @@
                             android:textColor="#767375"
                             android:textSize="12sp"
                             />
-                        <EditText
+                        <androidx.constraintlayout.widget.ConstraintLayout
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:inputType="text"
-                            android:textColorHint="#6b000000"
-                            android:textColor="#DE000000"
-                            android:text="@={viewModel.beanLiveData.trafficMoney}"
-                            android:textSize="16sp" />
+                            >
+                            <EditText
+                                android:id="@+id/et_traffic"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:inputType="numberDecimal"
+                                android:textColorHint="#6b000000"
+                                android:textColor="#DE000000"
+                                android:text="@={viewModel.beanLiveData.traffic}"
+                                android:textSize="16sp"
+                                android:enabled="false"
+                                android:hint="@{viewModel.typeLiveData?`0`:``}"
+                                android:backgroundTint="#6B000000"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintStart_toStartOf="parent"
+                                />
+                            <View
+                                android:layout_width="0dp"
+                                android:layout_height="0dp"
+                                android:background="@color/color_non_editable"
+                                app:layout_constraintTop_toTopOf="@id/et_traffic"
+                                app:layout_constraintStart_toStartOf="@id/et_traffic"
+                                app:layout_constraintBottom_toBottomOf="@id/et_traffic"
+                                app:layout_constraintEnd_toEndOf="@id/et_traffic"
+                                android:visibility="@{viewModel.typeLiveData}"
+                                />
+                        </androidx.constraintlayout.widget.ConstraintLayout>
 
                     </LinearLayout>
                 </LinearLayout>
@@ -247,15 +413,36 @@
                             android:textColor="#767375"
                             android:textSize="12sp"
                             />
-                        <EditText
+                        <androidx.constraintlayout.widget.ConstraintLayout
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:inputType="text"
-                            android:textColorHint="#6b000000"
-                            android:textColor="#DE000000"
-                            tools:text="aaa"
-                            android:text="@={viewModel.beanLiveData.ticketMoney}"
-                            android:textSize="16sp" />
+                            >
+                            <EditText
+                                android:id="@+id/et_entrance"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:inputType="numberDecimal"
+                                android:textColorHint="#6b000000"
+                                android:textColor="#DE000000"
+                                android:text="@={viewModel.beanLiveData.entrance}"
+                                android:textSize="16sp"
+                                android:hint="@{viewModel.typeLiveData?`0`:``}"
+                                android:enabled="false"
+                                android:backgroundTint="#6B000000"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintStart_toStartOf="parent"
+                                />
+                            <View
+                                android:layout_width="0dp"
+                                android:layout_height="0dp"
+                                android:background="@color/color_non_editable"
+                                app:layout_constraintTop_toTopOf="@id/et_entrance"
+                                app:layout_constraintStart_toStartOf="@id/et_entrance"
+                                app:layout_constraintBottom_toBottomOf="@id/et_entrance"
+                                app:layout_constraintEnd_toEndOf="@id/et_entrance"
+                                android:visibility="@{viewModel.typeLiveData}"
+                                />
+                        </androidx.constraintlayout.widget.ConstraintLayout>
 
                     </LinearLayout>
                     <LinearLayout
@@ -272,14 +459,36 @@
                             android:textColor="#767375"
                             android:textSize="12sp"
                             />
-                        <EditText
+                        <androidx.constraintlayout.widget.ConstraintLayout
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:inputType="text"
-                            android:textColorHint="#6b000000"
-                            android:textColor="#DE000000"
-                            android:text="@={viewModel.beanLiveData.shoppingMoney}"
-                            android:textSize="16sp" />
+                            >
+                            <EditText
+                                android:id="@+id/et_shopping"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:inputType="numberDecimal"
+                                android:textColorHint="#6b000000"
+                                android:textColor="#DE000000"
+                                android:text="@={viewModel.beanLiveData.shopping}"
+                                android:textSize="16sp"
+                                android:hint="@{viewModel.typeLiveData?`0`:``}"
+                                android:enabled="false"
+                                android:backgroundTint="#6B000000"
+                                app:layout_constraintTop_toTopOf="parent"
+                                app:layout_constraintStart_toStartOf="parent"
+                                />
+                            <View
+                                android:layout_width="0dp"
+                                android:layout_height="0dp"
+                                android:background="@color/color_non_editable"
+                                app:layout_constraintTop_toTopOf="@id/et_shopping"
+                                app:layout_constraintStart_toStartOf="@id/et_shopping"
+                                app:layout_constraintBottom_toBottomOf="@id/et_shopping"
+                                app:layout_constraintEnd_toEndOf="@id/et_shopping"
+                                android:visibility="@{viewModel.typeLiveData}"
+                                />
+                        </androidx.constraintlayout.widget.ConstraintLayout>
 
                     </LinearLayout>
                 </LinearLayout>
@@ -298,19 +507,25 @@
                         android:textColor="@color/black"
                         />
                     <ImageView
+                        android:id="@+id/iv_add_daily_consume_record"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:background="@drawable/ic_tourism_add"
+                        android:background="@{viewModel.typeLiveData?@drawable/ic_tourism_add:null}"
                         />
 
                 </LinearLayout>
-                <androidx.recyclerview.widget.RecyclerView
-                    android:id="@+id/rv_daily_consume_record"
-                    android:orientation="vertical"
+                <RelativeLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="10dp"
-                    />
+                    >
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/rv_daily_consume_record"
+                        android:orientation="vertical"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        />
+                </RelativeLayout>
 
 
             </LinearLayout>
diff --git a/app/src/main/res/layout/activity_tourism_experience.xml b/app/src/main/res/layout/activity_tourism_experience.xml
index 74727bb..9ea2569 100644
--- a/app/src/main/res/layout/activity_tourism_experience.xml
+++ b/app/src/main/res/layout/activity_tourism_experience.xml
@@ -12,13 +12,15 @@
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical">
+        android:background="@color/color_normal_background"
+        >
 
         <com.android.app_base.widget.ExtendTitleBar
             android:id="@+id/titleBar"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             app:layout_constraintTop_toTopOf="parent"
+            app:leftIcon="@drawable/ic_back"
             >
             <FrameLayout
                 android:layout_width="24dp"
@@ -50,7 +52,7 @@
                     android:text="鏃呮父缁忓巻"
                     android:layout_weight="1"
                     android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20"
+                    android:textSize="20sp"
                     />
                 <ImageView
                     android:id="@+id/iv_search_default"
@@ -89,7 +91,8 @@
                     android:imeOptions="actionSearch"
                     android:text=""
                     android:singleLine="true"
-                    android:hint="鍦ㄢ�滃澶т簨璁板唴鎼滅储鈥�"
+                    android:hint="鍦ㄢ�滄梾娓哥粡鍘嗏�濆唴鎼滅储"
+                    android:enabled="false"
                     />
                 <ImageView
                     android:id="@+id/iv_search_type"
@@ -107,6 +110,7 @@
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:gravity="center"
+            android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -126,18 +130,278 @@
                 android:textColor="#73000000"
                 />
         </LinearLayout>
-
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/recyclerView"
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refreshLayout"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@color/color_normal_background"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleBar"
-            app:layout_constraintVertical_bias="1.0"
-            tools:itemCount="20"
-            />
+            >
+            <com.scwang.smart.refresh.header.MaterialHeader
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                />
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recyclerView"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                tools:itemCount="20"
+                tools:listitem="@layout/item_family_memorabilia" />
+            <com.scwang.smart.refresh.footer.BallPulseFooter
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+        <RelativeLayout
+            android:id="@+id/container_search_parameter"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constraintTop_toBottomOf="@id/titleBar"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="-4dp"
+            tools:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:id="@+id/layout_search_parameter"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:layout_marginHorizontal="56dp"
+                android:paddingEnd="12dp"
+                android:paddingStart="5dp"
+                >
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="#FF939393" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center"
+                    >
 
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鏃堕棿"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="4"
+                        android:gravity="center"
+                        >
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_start_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:layout_marginStart="6dp"
+                            android:text="@={viewModel.requestBeanLiveData.happenStartTime}"
+                            android:hint="寮�濮嬫椂闂�"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            android:lines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鈥�"
+                            />
+                        <androidx.appcompat.widget.AppCompatTextView
+                            android:id="@+id/et_end_time"
+                            android:layout_width="0dp"
+                            android:layout_weight="1"
+                            android:gravity="center"
+                            android:layout_height="wrap_content"
+                            android:text="@={viewModel.requestBeanLiveData.happenEndTime}"
+                            android:hint="缁撴潫鏃堕棿"
+                            android:textColorHint="#61000000"
+                            android:textColor="#FF333333"
+                            android:textSize="14sp"
+                            android:maxLines="1"
+                            app:autoSizeTextType="uniform"
+                            app:autoSizeMinTextSize="10sp"
+                            app:autoSizeMaxTextSize="14sp"
+                            tools:text="2022-01-01"
+                            />
+                        <ImageView
+                            android:id="@+id/iv_time_clear"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/ic_clear"
+                            android:visibility="invisible"
+                            />
+                    </LinearLayout>
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鍦扮偣"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.address}"
+                        android:hint="璇疯緭鍏ュ湴鐐�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="浜虹墿"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.people}"
+                        android:hint="璇疯緭鍏ヤ汉鐗�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.3dp"
+                    android:background="#FF939393" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:layout_height="wrap_content"
+                        android:text="鏍囬"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:gravity="center"
+                        android:maxLines="1"
+                        android:lines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        />
+
+                    <com.android.app_base.widget.ClearEditText
+                        android:layout_width="0dp"
+                        android:layout_weight="4"
+                        android:layout_height="wrap_content"
+                        android:background="@null"
+                        android:inputType="text"
+                        android:layout_marginStart="6dp"
+                        android:text="@={viewModel.requestBeanLiveData.title}"
+                        android:hint="璇疯緭鍏ユ爣棰�"
+                        android:textColorHint="#61000000"
+                        android:textColor="#FF333333"
+                        android:textSize="14sp"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMinTextSize="10sp"
+                        app:autoSizeMaxTextSize="14sp"
+                        app:background="@drawable/ic_clear"
+                        />
+                </LinearLayout>
+            </LinearLayout>
+
+        </RelativeLayout>
+        <com.google.android.material.floatingactionbutton.FloatingActionButton
+            android:id="@+id/fab_add"
+            android:layout_width="56dp"
+            android:layout_height="56dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginEnd="25dp"
+            android:layout_marginBottom="@dimen/dp_44"
+            android:src="@drawable/ic_add"
+            app:fabCustomSize="56dp"
+            />
     </androidx.constraintlayout.widget.ConstraintLayout>
 
 </layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_add_daily_consume_record.xml b/app/src/main/res/layout/dialog_add_daily_consume_record.xml
new file mode 100644
index 0000000..77d9ef6
--- /dev/null
+++ b/app/src/main/res/layout/dialog_add_daily_consume_record.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_contacts_info.xml b/app/src/main/res/layout/dialog_contacts_info.xml
index 311e957..848aab9 100644
--- a/app/src/main/res/layout/dialog_contacts_info.xml
+++ b/app/src/main/res/layout/dialog_contacts_info.xml
@@ -244,6 +244,17 @@
                     android:text="鐢靛瓙鍚嶇墖锛�"
                     android:textColor="@color/black"
                     android:textSize="14sp" />
+                <RelativeLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    >
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:id="@+id/recyclerView"
+                        />
+                </RelativeLayout>
             </LinearLayout>
 
 
diff --git a/app/src/main/res/layout/dialog_pet_owner_info.xml b/app/src/main/res/layout/dialog_pet_owner_info.xml
index 34e69f7..8260c3c 100644
--- a/app/src/main/res/layout/dialog_pet_owner_info.xml
+++ b/app/src/main/res/layout/dialog_pet_owner_info.xml
@@ -1,239 +1,144 @@
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.cardview.widget.CardView
-    xmlns:android="http://schemas.android.com/apk/res/android"
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    app:cardBackgroundColor="#FFFFFCFC"
-    app:cardCornerRadius="5dp"
-    android:layout_marginHorizontal="30dp"
-    >
+    xmlns:tools="http://schemas.android.com/tools">
 
-    <androidx.constraintlayout.widget.ConstraintLayout
+    <data>
+        <variable
+            name="owner"
+            type="com.application.zhangshi_app_android.bean.PetBean" />
+    </data>
+
+    <androidx.cardview.widget.CardView
         android:layout_width="match_parent"
-        android:layout_height="wrap_content">
+        android:layout_height="wrap_content"
+        app:cardBackgroundColor="#FFFFFCFC"
+        app:cardCornerRadius="5dp"
+        android:layout_marginHorizontal="30dp">
 
-        <ImageView
-            android:id="@+id/iv_dialog_close"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="15dp"
-            android:layout_marginEnd="15dp"
-            android:background="@drawable/ic_dialog_close"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
-
-        <LinearLayout
+        <androidx.constraintlayout.widget.ConstraintLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_marginHorizontal="30dp"
-            android:layout_marginVertical="15dp"
-            android:orientation="vertical"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
             >
-
-            <TextView
+            <ImageView
+                android:id="@+id/iv_dialog_close"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:text="鍏荤姮浜轰俊鎭�"
-                android:textColor="#66000000"
-                android:textSize="14sp"
-                app:layout_constraintStart_toStartOf="parent"
+                android:layout_marginTop="15dp"
+                android:layout_marginEnd="15dp"
+                android:background="@drawable/ic_dialog_close"
+                app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintTop_toTopOf="parent" />
 
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="10dp">
+                android:layout_margin="30dp"
+                android:orientation="vertical"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintTop_toTopOf="parent">
 
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:text="鍏荤姮浜哄鍚嶏細"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
+                    android:text="鍏荤姮浜轰俊鎭�"
+                    android:textColor="#66000000"
+                    android:textSize="14sp"
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toTopOf="parent" />
 
-                <TextView
-                    android:layout_width="0dp"
+                <LinearLayout
+                    android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:text="寮犱笁"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
+                    android:layout_marginTop="10dp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="鍏荤姮浜哄鍚嶏細"
+                        android:textColor="@color/black"
+                        android:textSize="14sp" />
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:text="@{owner.masterName}"
+                        android:textColor="@color/black"
+                        android:textSize="14sp" />
+                </LinearLayout>
+
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="绉诲姩鐢佃瘽锛�"
+                        android:textColor="@color/black"
+                        android:textSize="14sp" />
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:text="@{owner.phone}"
+                        android:textColor="@color/black"
+                        android:textSize="14sp" />
+                </LinearLayout>
+
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="璇佷欢鍙风爜锛�"
+                        android:textColor="@color/black"
+                        android:textSize="14sp" />
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:text="@{owner.masterIdNum}"
+                        android:textColor="@color/black"
+                        android:textSize="14sp" />
+                </LinearLayout>
+
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="浣忔墍璇︾粏鍦板潃锛�"
+                        android:textColor="@color/black"
+                        android:textSize="14sp" />
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:text="@{owner.masterAddress}"
+                        android:textColor="@color/black"
+                        android:textSize="14sp" />
+                </LinearLayout>
+
+
             </LinearLayout>
 
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="10dp">
 
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="鍥哄畾鐢佃瘽锛�"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
+        </androidx.constraintlayout.widget.ConstraintLayout>
 
-                <TextView
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:text="12345678901"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
-            </LinearLayout>
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="10dp">
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="绉诲姩鐢佃瘽锛�"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
-
-                <TextView
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:text="12345678901"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
-            </LinearLayout>
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="10dp">
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="璇佷欢绫诲瀷锛�"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
-
-                <TextView
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:text="韬唤璇�"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
-            </LinearLayout>
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="10dp">
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="璇佷欢鍙风爜锛�"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
-
-                <TextView
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:text="12345678901"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
-            </LinearLayout>
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="10dp">
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="鎷ユ湁鐘彧鏁伴噺锛�"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
-
-                <TextView
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:text="2"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
-            </LinearLayout>
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="10dp">
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="浣忔墍璇︾粏鍦板潃锛�"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
-
-                <TextView
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:text="骞夸笢鐪佸箍宸炲競鐣鍖哄皬璋峰洿琛楅亾101鍙�"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
-            </LinearLayout>
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="10dp">
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="浣忔墍鎬ц川锛�"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
-
-                <TextView
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:text="甯镐綇"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
-            </LinearLayout>
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="10dp">
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="鐢靛瓙閭欢锛�"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
-
-                <TextView
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:text="Zhang@123.com"
-                    android:textColor="@color/black"
-                    android:textSize="14sp" />
-            </LinearLayout>
-        </LinearLayout>
-
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-</androidx.cardview.widget.CardView>
\ No newline at end of file
+    </androidx.cardview.widget.CardView>
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_version_update.xml b/app/src/main/res/layout/dialog_version_update.xml
new file mode 100644
index 0000000..dfc4d3f
--- /dev/null
+++ b/app/src/main/res/layout/dialog_version_update.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:orientation="vertical"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_gravity="center">
+    <LinearLayout
+        android:layout_width="275dp"
+        android:layout_height="wrap_content"
+        android:background="@color/color_normal_background"
+        android:orientation="vertical"
+        >
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="鏂扮増鏈�"
+            android:textSize="@dimen/sp_24"
+            android:textStyle="bold"
+            android:textColor="#FF3560F4"
+            android:layout_gravity="center"
+            android:layout_marginTop="20dp"
+            />
+        <TextView
+            android:id="@+id/tv_update_dialog_title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="蹇潵鏇存柊鍟"
+            android:textSize="@dimen/sp_24"
+            android:textStyle="bold"
+            android:textColor="#FF3560F4"
+            android:layout_gravity="center"
+            android:layout_marginTop="10dp"
+            />
+        <TextView
+            android:id="@+id/tv_update_dialog_content"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="淇淇"
+            android:textSize="14sp"
+            android:textColor="@color/black"
+            android:layout_gravity="center"
+            android:gravity="center"
+            android:layout_marginTop="20dp"
+            android:layout_marginHorizontal="30dp"
+            />
+        <androidx.cardview.widget.CardView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="20dp"
+            android:layout_gravity="center"
+            app:cardCornerRadius="10dp"
+            app:cardBackgroundColor="@color/color_FFF08EBA_text_pink"
+            >
+            <TextView
+                android:id="@+id/tv_update_dialog_confirm"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="绔嬪嵆鏇存柊"
+                android:textSize="16sp"
+                android:textStyle="bold"
+                android:textColor="@color/white"
+                android:gravity="center"
+                android:paddingHorizontal="20dp"
+                android:paddingVertical="3dp"
+                />
+        </androidx.cardview.widget.CardView>
+
+
+        <RelativeLayout
+            android:layout_marginVertical="@dimen/dp_24"
+            android:id="@+id/layout_progress"
+            android:layout_marginHorizontal="@dimen/dp_16"
+            android:gravity="center_vertical"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+
+            <ProgressBar
+                android:id="@+id/pb_download"
+                style="@android:style/Widget.ProgressBar.Horizontal"
+                android:layout_width="match_parent"
+                android:layout_height="15dp"
+                android:max="100"
+                android:progress="50"
+                android:progressDrawable="@drawable/shape_gradient_update_progress"
+                />
+
+            <TextView
+                android:layout_below="@+id/pb_download"
+                android:textColor="#999999"
+                android:text="0%"
+                android:textSize="14sp"
+                android:id="@+id/tv_pro"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"/>
+            <TextView
+                android:layout_alignParentRight="true"
+                android:layout_below="@+id/pb_download"
+                android:textColor="#999999"
+                android:text="0/100"
+                android:textSize="14sp"
+                android:id="@+id/tv_pro_percent"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"/>
+        </RelativeLayout>
+
+
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_function.xml b/app/src/main/res/layout/fragment_function.xml
index 18139a0..dc8f422 100644
--- a/app/src/main/res/layout/fragment_function.xml
+++ b/app/src/main/res/layout/fragment_function.xml
@@ -18,46 +18,20 @@
         android:background="@color/color_normal_background"
         android:orientation="vertical"
         >
-
-        <com.hjq.bar.TitleBar
+        <com.android.app_base.widget.ExtendTitleBar
             android:id="@+id/titleBar"
             android:layout_width="match_parent"
             android:layout_height="@dimen/dp_55"
-            android:background="@color/color_title_bar_background"
-            app:layout_constraintTop_toTopOf="parent"
-            android:paddingHorizontal="@dimen/dp_16"
-            app:layout_constraintEnd_toEndOf="parent"
+            app:titleGravity="left"
+            app:title="鍔熻兘"
             app:layout_constraintStart_toStartOf="parent"
-            app:leftIcon="@null"
-            app:rightIcon="@null">
-
-            <LinearLayout
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="start|center_vertical"
-                android:orientation="horizontal">
-
-                <ImageView
-                    android:id="@+id/menu"
-                    android:layout_width="@dimen/dp_24"
-                    android:layout_height="@dimen/dp_24"
-                    android:layout_gravity="center"
-                    android:background="@drawable/ic_menu" />
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginStart="@dimen/dp_32"
-                    android:text="@string/title_function"
-                    android:textColor="@color/white"
-                    android:textSize="@dimen/sp_20" />
-
-            </LinearLayout>
-
+            app:layout_constraintTop_toTopOf="parent"
+            >
             <LinearLayout
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_gravity="end|center_vertical"
+                android:layout_marginHorizontal="16dp"
                 android:orientation="horizontal">
 
                 <ImageView
@@ -66,25 +40,62 @@
                     android:background="@drawable/ic_search" />
 
                 <ImageView
+                    android:id="@+id/iv_operate"
                     android:layout_width="@dimen/dp_24"
                     android:layout_height="@dimen/dp_24"
                     android:layout_marginStart="@dimen/dp_16"
                     android:background="@drawable/ic_operate" />
 
             </LinearLayout>
-
-        </com.hjq.bar.TitleBar>
+        </com.android.app_base.widget.ExtendTitleBar>
 
 
-        <ImageView
-            android:id="@+id/iv_group_photo"
+        <FrameLayout
+            android:id="@+id/layout_banner"
             android:layout_width="match_parent"
-            android:layout_height="@dimen/dp_200"
-            android:background="@drawable/margin_pic"
+            android:layout_height="200dp"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toBottomOf="@id/titleBar"
-            />
+            >
+            <FrameLayout
+                android:id="@+id/layout_frame"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:background="@color/color_card_pink"
+                >
+                <ImageView
+                    android:id="@+id/iv_banner"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    />
+            </FrameLayout>
+            <RelativeLayout
+                android:id="@+id/layout_data_null"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:orientation="vertical"
+                >
+                <ImageView
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:src="@drawable/img_data_null"
+                    android:scaleType="center"
+                    />
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="绌虹┖濡備篃~"
+                    android:textColor="#73000000"
+                    android:layout_gravity="center"
+                    android:layout_centerHorizontal="true"
+                    android:layout_alignParentBottom="true"
+                    android:layout_marginBottom="10dp"
+                    />
+            </RelativeLayout>
+
+        </FrameLayout>
 
         <LinearLayout
             android:layout_width="match_parent"
@@ -93,7 +104,7 @@
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/iv_group_photo"
+            app:layout_constraintTop_toBottomOf="@id/layout_banner"
             >
             <androidx.core.widget.NestedScrollView
                 android:layout_width="match_parent"
@@ -143,7 +154,7 @@
                         android:id="@+id/layout_home_root_net"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginTop="@dimen/dp_15"
+                        android:layout_marginTop="15dp"
                         android:gravity="center"
                         android:orientation="vertical"
                         app:layout_constraintEnd_toStartOf="@+id/gl_v_0.25"
@@ -396,7 +407,7 @@
                         android:id="@+id/layout_growing_up"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginTop="@dimen/dp_15"
+                        android:layout_marginTop="15dp"
                         android:gravity="center"
                         android:orientation="vertical"
                         app:layout_constraintEnd_toStartOf="@+id/gl_v_0.25"
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index 70ac7a4..6072505 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -20,22 +20,34 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             app:title="瀹舵牴缃戯紙浠呬緵鏌ョ湅锛�"
-            app:titleGravity="left" />
+            app:titleGravity="left"
+            >
+            <FrameLayout
+                android:layout_width="24dp"
+                android:layout_height="24dp"
+                android:layout_marginHorizontal="16dp"
+                android:layout_gravity="center_vertical|end"
+                >
+                <ImageView
+                    android:id="@+id/iv_operate"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:background="@drawable/ic_operate"
+                    />
+            </FrameLayout>
+        </com.android.app_base.widget.ExtendTitleBar>
 
         <androidx.constraintlayout.widget.ConstraintLayout
             android:layout_width="match_parent"
             android:layout_height="match_parent"
+            android:id="@+id/layout_parent"
             >
-            <com.application.zhangshi_app_android.widget.TreeView
-                android:id="@+id/treeView"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                />
             <androidx.constraintlayout.widget.ConstraintLayout
+                android:id="@+id/layout_home_root_net"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
-                android:visibility="gone"
-                android:id="@+id/layout_home_root_net"
+                tools:visibility="gone"
                 >
                 <ImageView
                     android:id="@+id/iv_treeView"
@@ -56,12 +68,1178 @@
 
             </androidx.constraintlayout.widget.ConstraintLayout>
 
-            <androidx.recyclerview.widget.RecyclerView
-                android:id="@+id/rv_home_member"
-                android:layout_width="match_parent"
+            <HorizontalScrollView
+                android:id="@+id/scrollView"
+                android:layout_width="wrap_content"
                 android:layout_height="match_parent"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toTopOf="parent"
+                android:orientation="horizontal"
                 android:visibility="gone"
-                />
+                tools:visibility="visible"
+                >
+                <androidx.constraintlayout.widget.ConstraintLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="match_parent"
+                    >
+
+                    <ImageView
+                        android:id="@+id/iv_treeView_diff"
+                        android:layout_width="0dp"
+                        android:layout_height="match_parent"
+                        android:background="@drawable/bg_home_root_net_detail"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintDimensionRatio="676:505"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintHorizontal_bias="1.0"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintVertical_bias="0.0" />
+
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_first_1"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.07"
+                        app:layout_constraintHorizontal_bias="0.44"
+                        app:layout_constraintVertical_bias="0.795"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <TextView
+                        android:id="@+id/tv_first_1"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="30sp"
+                        android:text="1"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF386C19"
+                        app:layout_constraintHorizontal_bias="0.435"
+                        app:layout_constraintVertical_bias="0.795"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_first_2"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.08"
+                        app:layout_constraintHorizontal_bias="0.485"
+                        app:layout_constraintVertical_bias="0.887"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <TextView
+                        android:id="@+id/tv_first_2"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="30sp"
+                        android:text="1"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF386C19"
+                        app:layout_constraintHorizontal_bias="0.485"
+                        app:layout_constraintVertical_bias="0.88"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_second_1_1"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.060"
+                        app:layout_constraintHorizontal_bias="0.365"
+                        app:layout_constraintVertical_bias="0.65"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <TextView
+                        android:id="@+id/tv_second_1_1"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="30sp"
+                        android:text="2"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93CD91"
+                        app:layout_constraintHorizontal_bias="0.395"
+                        app:layout_constraintVertical_bias="0.68"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_second_1_2"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.055"
+                        app:layout_constraintHorizontal_bias="0.29"
+                        app:layout_constraintVertical_bias="0.655"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <TextView
+                        android:id="@+id/tv_second_1_2"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="2"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93CD91"
+                        app:layout_constraintHorizontal_bias="0.325"
+                        app:layout_constraintVertical_bias="0.65"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_second_2_1"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.065"
+                        app:layout_constraintHorizontal_bias="0.425"
+                        app:layout_constraintVertical_bias="0.585"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <TextView
+                        android:id="@+id/tv_second_2_1"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="30sp"
+                        android:text="2"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93CD91"
+                        app:layout_constraintHorizontal_bias="0.455"
+                        app:layout_constraintVertical_bias="0.62"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_second_2_2"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.055"
+                        app:layout_constraintHorizontal_bias="0.37"
+                        app:layout_constraintVertical_bias="0.52"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <TextView
+                        android:id="@+id/tv_second_2_2"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="2"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93CD91"
+                        app:layout_constraintHorizontal_bias="0.4"
+                        app:layout_constraintVertical_bias="0.53"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_second_3_1"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.063"
+                        app:layout_constraintHorizontal_bias="0.525"
+                        app:layout_constraintVertical_bias="0.58"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <TextView
+                        android:id="@+id/tv_second_3_1"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="30sp"
+                        android:text="2"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93CD91"
+                        app:layout_constraintHorizontal_bias="0.515"
+                        app:layout_constraintVertical_bias="0.63"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_second_3_2"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.055"
+                        app:layout_constraintHorizontal_bias="0.6"
+                        app:layout_constraintVertical_bias="0.51"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <TextView
+                        android:id="@+id/tv_second_3_2"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="2"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93CD91"
+                        app:layout_constraintHorizontal_bias="0.58"
+                        app:layout_constraintVertical_bias="0.545"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_second_4_1"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.063"
+                        app:layout_constraintHorizontal_bias="0.6"
+                        app:layout_constraintVertical_bias="0.65"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <TextView
+                        android:id="@+id/tv_second_4_1"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="30sp"
+                        android:text="2"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93CD91"
+                        app:layout_constraintHorizontal_bias="0.565"
+                        app:layout_constraintVertical_bias="0.68"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_second_4_2"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.07"
+                        app:layout_constraintHorizontal_bias="0.685"
+                        app:layout_constraintVertical_bias="0.63"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <TextView
+                        android:id="@+id/tv_second_4_2"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="2"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93CD91"
+                        app:layout_constraintHorizontal_bias="0.645"
+                        app:layout_constraintVertical_bias="0.65"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_third_1_1"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.08"
+                        app:layout_constraintHorizontal_bias="0.26"
+                        app:layout_constraintVertical_bias="0.76"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <TextView
+                        android:id="@+id/tv_third_1_1"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="20sp"
+                        android:text="3"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93BE67"
+                        app:layout_constraintHorizontal_bias="0.31"
+                        app:layout_constraintVertical_bias="0.73"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_third_4_1"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.075"
+                        app:layout_constraintHorizontal_bias="0.69"
+                        app:layout_constraintVertical_bias="0.745"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <TextView
+                        android:id="@+id/tv_third_4_1"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="20sp"
+                        android:text="3"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93BE67"
+                        app:layout_constraintHorizontal_bias="0.64"
+                        app:layout_constraintVertical_bias="0.73"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_third_2_1"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.075"
+                        app:layout_constraintHorizontal_bias="0.371"
+                        app:layout_constraintVertical_bias="0.334"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <TextView
+                        android:id="@+id/tv_third_2_1"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="20sp"
+                        android:text="3"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93BE67"
+                        app:layout_constraintHorizontal_bias="0.39"
+                        app:layout_constraintVertical_bias="0.4"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_third_3_1"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.075"
+                        app:layout_constraintHorizontal_bias="0.49"
+                        app:layout_constraintVertical_bias="0.28"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_third_3_1"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="20sp"
+                        android:text="3"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93BE67"
+                        app:layout_constraintHorizontal_bias="0.51"
+                        app:layout_constraintVertical_bias="0.34"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_third_1_2"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.06"
+                        app:layout_constraintHorizontal_bias="0.17"
+                        app:layout_constraintVertical_bias="0.53"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_third_1_2"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="20sp"
+                        android:text="3"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93BE67"
+                        app:layout_constraintHorizontal_bias="0.195"
+                        app:layout_constraintVertical_bias="0.575"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_third_1_4"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.06"
+                        app:layout_constraintHorizontal_bias="0.065"
+                        app:layout_constraintVertical_bias="0.47"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_third_1_4"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="20sp"
+                        android:text="3"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93BE67"
+                        app:layout_constraintHorizontal_bias="0.105"
+                        app:layout_constraintVertical_bias="0.505"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_third_1_3"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.07"
+                        app:layout_constraintHorizontal_bias="0.05"
+                        app:layout_constraintVertical_bias="0.59"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_third_1_3"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="3"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93BE67"
+                        app:layout_constraintHorizontal_bias="0.105"
+                        app:layout_constraintVertical_bias="0.62"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_third_2_2"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.06"
+                        app:layout_constraintHorizontal_bias="0.295"
+                        app:layout_constraintVertical_bias="0.315"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_third_2_2"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="3"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93BE67"
+                        app:layout_constraintHorizontal_bias="0.31"
+                        app:layout_constraintVertical_bias="0.37"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_third_2_3"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.08"
+                        app:layout_constraintHorizontal_bias="0.177"
+                        app:layout_constraintVertical_bias="0.265"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_third_2_3"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="3"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93BE67"
+                        app:layout_constraintHorizontal_bias="0.22"
+                        app:layout_constraintVertical_bias="0.34"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        android:rotation="-30"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_third_2_4"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.06"
+                        app:layout_constraintHorizontal_bias="0.33"
+                        app:layout_constraintVertical_bias="0.115"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_third_2_4"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="3"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93BE67"
+                        app:layout_constraintHorizontal_bias="0.335"
+                        app:layout_constraintVertical_bias="0.17"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_third_3_2"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.08"
+                        app:layout_constraintHorizontal_bias="0.485"
+                        app:layout_constraintVertical_bias="0.08"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_third_3_2"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="3"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93BE67"
+                        app:layout_constraintHorizontal_bias="0.47"
+                        app:layout_constraintVertical_bias="0.16"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_third_3_3"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.07"
+                        app:layout_constraintHorizontal_bias="0.685"
+                        app:layout_constraintVertical_bias="0.24"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_third_3_3"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="3"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93BE67"
+                        app:layout_constraintHorizontal_bias="0.67"
+                        app:layout_constraintVertical_bias="0.31"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_third_3_4"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.08"
+                        app:layout_constraintHorizontal_bias="0.745"
+                        app:layout_constraintVertical_bias="0.08"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_third_3_4"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="3"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93BE67"
+                        app:layout_constraintHorizontal_bias="0.735"
+                        app:layout_constraintVertical_bias="0.16"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_third_4_2"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:roundPercent="1"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.08"
+                        app:layout_constraintHorizontal_bias="0.885"
+                        app:layout_constraintVertical_bias="0.32"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_third_4_2"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="3"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF93BE67"
+                        app:layout_constraintHorizontal_bias="0.84"
+                        app:layout_constraintVertical_bias="0.38"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        android:rotation="20"
+                        />
+
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_fourth_4_3"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.06"
+                        app:layout_constraintHorizontal_bias="0.815"
+                        app:layout_constraintVertical_bias="0.665"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:roundPercent="1"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_fourth_4_3"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="4"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF3F7E00"
+                        app:layout_constraintHorizontal_bias="0.77"
+                        app:layout_constraintVertical_bias="0.66"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_fourth_4_2"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.07"
+                        app:layout_constraintHorizontal_bias="0.876"
+                        app:layout_constraintVertical_bias="0.545"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:roundPercent="1"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_fourth_4_2"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="4"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF3F7E00"
+                        app:layout_constraintHorizontal_bias="0.825"
+                        app:layout_constraintVertical_bias="0.57"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_fourth_4_1"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.06"
+                        app:layout_constraintHorizontal_bias="0.785"
+                        app:layout_constraintVertical_bias="0.46"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:roundPercent="1"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_fourth_4_1"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="4"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF3F7E00"
+                        app:layout_constraintHorizontal_bias="0.76"
+                        app:layout_constraintVertical_bias="0.505"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_fourth_3_3"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.06"
+                        app:layout_constraintHorizontal_bias="0.79"
+                        app:layout_constraintVertical_bias="0.263"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:roundPercent="1"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_fourth_3_3"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="4"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF3F7E00"
+                        app:layout_constraintHorizontal_bias="0.755"
+                        app:layout_constraintVertical_bias="0.295"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_fourth_3_2"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.06"
+                        app:layout_constraintHorizontal_bias="0.6455"
+                        app:layout_constraintVertical_bias="0.115"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:roundPercent="1"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_fourth_3_2"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="4"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF3F7E00"
+                        app:layout_constraintHorizontal_bias="0.63"
+                        app:layout_constraintVertical_bias="0.17"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_fourth_3_1"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.06"
+                        app:layout_constraintHorizontal_bias="0.584"
+                        app:layout_constraintVertical_bias="0.22"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:roundPercent="1"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_fourth_3_1"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="4"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF3F7E00"
+                        app:layout_constraintHorizontal_bias="0.565"
+                        app:layout_constraintVertical_bias="0.275"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        android:rotation="20"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_fourth_3_4"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.07"
+                        app:layout_constraintHorizontal_bias="0.575"
+                        app:layout_constraintVertical_bias="0.06"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:roundPercent="1"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_fourth_3_4"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="4"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF3F7E00"
+                        app:layout_constraintHorizontal_bias="0.57"
+                        app:layout_constraintVertical_bias="0.125"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_fourth_2_3"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.06"
+                        app:layout_constraintHorizontal_bias="0.415"
+                        app:layout_constraintVertical_bias="0.225"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:roundPercent="1"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_fourth_2_3"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="4"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF3F7E00"
+                        app:layout_constraintHorizontal_bias="0.425"
+                        app:layout_constraintVertical_bias="0.285"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        android:rotation="-10"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_fourth_2_4"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.05"
+                        app:layout_constraintHorizontal_bias="0.403"
+                        app:layout_constraintVertical_bias="0.05"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:roundPercent="1"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_fourth_2_4"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="20sp"
+                        android:text="4"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF3F7E00"
+                        app:layout_constraintHorizontal_bias="0.41"
+                        app:layout_constraintVertical_bias="0.095"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        android:rotation="-10"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_fourth_2_2"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.07"
+                        app:layout_constraintHorizontal_bias="0.228"
+                        app:layout_constraintVertical_bias="0.13"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:roundPercent="1"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_fourth_2_2"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="4"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF3F7E00"
+                        app:layout_constraintHorizontal_bias="0.24"
+                        app:layout_constraintVertical_bias="0.2"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_fourth_2_1"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.06"
+                        app:layout_constraintHorizontal_bias="0.19"
+                        app:layout_constraintVertical_bias="0.41"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:roundPercent="1"
+                        />
+                    <TextView
+                        android:id="@+id/tv_fourth_2_1"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="4"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF3F7E00"
+                        app:layout_constraintHorizontal_bias="0.24"
+                        app:layout_constraintVertical_bias="0.44"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        android:rotation="-10"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_fourth_1_2"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.06"
+                        app:layout_constraintHorizontal_bias="0.064"
+                        app:layout_constraintVertical_bias="0.32"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:roundPercent="1"
+                        />
+                    <TextView
+                        android:id="@+id/tv_fourth_1_2"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="4"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF3F7E00"
+                        app:layout_constraintHorizontal_bias="0.1"
+                        app:layout_constraintVertical_bias="0.37"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        android:rotation="-10"
+                        />
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_fourth_1_1"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@drawable/img_sakura"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintHeight_percent="0.06"
+                        app:layout_constraintHorizontal_bias="0.086"
+                        app:layout_constraintVertical_bias="0.724"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:roundPercent="1"
+                        />
+                    <TextView
+                        android:id="@+id/tv_fourth_1_1"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="24sp"
+                        android:text="4"
+                        android:fontFamily="@font/cookie_regular"
+                        android:textColor="#FF3F7E00"
+                        app:layout_constraintHorizontal_bias="0.13"
+                        app:layout_constraintVertical_bias="0.705"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        android:rotation="-20"
+                        />
+                </androidx.constraintlayout.widget.ConstraintLayout>
+            </HorizontalScrollView>
 
         </androidx.constraintlayout.widget.ConstraintLayout>
     </LinearLayout>
diff --git a/app/src/main/res/layout/fragment_image_carousel.xml b/app/src/main/res/layout/fragment_image_carousel.xml
new file mode 100644
index 0000000..a64d6e9
--- /dev/null
+++ b/app/src/main/res/layout/fragment_image_carousel.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+
+    <data>
+
+    </data>
+
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="200dp">
+
+        <com.youth.banner.Banner
+            android:id="@+id/banner"
+            android:layout_width="match_parent"
+            android:layout_height="200dp" />
+        <RelativeLayout
+            android:id="@+id/layout_data_null"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical"
+            >
+            <ImageView
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:src="@drawable/img_data_null"
+                android:scaleType="center"
+                />
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="杩樻病涓婁紶鐓х墖 ~"
+                android:textColor="#73000000"
+                android:layout_gravity="center"
+                android:layout_centerHorizontal="true"
+                android:layout_alignParentBottom="true"
+                android:layout_marginBottom="10dp"
+                />
+        </RelativeLayout>
+    </FrameLayout>
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_personal_center.xml b/app/src/main/res/layout/fragment_personal_center.xml
index de937e9..af7708f 100644
--- a/app/src/main/res/layout/fragment_personal_center.xml
+++ b/app/src/main/res/layout/fragment_personal_center.xml
@@ -51,7 +51,7 @@
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:text="涓汉涓績"
+                    android:text="涓汉淇℃伅"
                     android:textSize="20sp"
                     android:textColor="@color/black"
                     android:layout_marginStart="20dp"
@@ -78,7 +78,9 @@
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
                         app:layout_constraintWidth_percent="0.3"
-                        app:roundPercent="1" />
+                        app:roundPercent="1"
+                        app:imageUrl="@{viewModel.infoLiveData.img}"
+                        />
                     <View
                         android:layout_width="match_parent"
                         android:layout_height="1dp"
@@ -112,7 +114,7 @@
                             android:layout_height="wrap_content"
                             android:textSize="18sp"
                             android:textColor="#FF212121"
-                            android:text="@{}"
+                            android:text="@{viewModel.infoLiveData.nickName}"
                             android:gravity="end"
                             tools:text="寮犱笁"
                             />
@@ -141,7 +143,7 @@
                             android:layout_height="wrap_content"
                             android:textSize="18sp"
                             android:textColor="#FF212121"
-                            android:text="@{}"
+                            android:text="@{viewModel.infoLiveData.phoneNumber}"
                             android:gravity="end"
                             tools:text="13234567890"
                             />
@@ -170,7 +172,7 @@
                             android:layout_height="wrap_content"
                             android:textSize="18sp"
                             android:textColor="#FF212121"
-                            android:text="@{}"
+                            android:text="@{viewModel.infoLiveData.email}"
                             android:gravity="end"
                             tools:text="zhang@126.com"
                             />
@@ -199,7 +201,7 @@
                             android:layout_height="wrap_content"
                             android:textSize="18sp"
                             android:textColor="#FF212121"
-                            android:text="@{}"
+                            android:text="@{viewModel.infoLiveData.familyName}"
                             android:gravity="end"
                             tools:text="寮犱笁瀹跺涵"
                             />
@@ -228,7 +230,7 @@
                             android:layout_height="wrap_content"
                             android:textSize="18sp"
                             android:textColor="#FF212121"
-                            android:text="@{}"
+                            android:text="@{viewModel.infoLiveData.roleName}"
                             android:gravity="end"
                             tools:text="瀹跺涵绠$悊鍛�"
                             />
@@ -257,7 +259,7 @@
                             android:layout_height="wrap_content"
                             android:textSize="18sp"
                             android:textColor="#FF212121"
-                            android:text="@{}"
+                            android:text="@{viewModel.infoLiveData.createTime}"
                             android:gravity="end"
                             tools:text="2023-04-01"
                             />
diff --git a/app/src/main/res/layout/fragment_video.xml b/app/src/main/res/layout/fragment_video.xml
new file mode 100644
index 0000000..be1cbdb
--- /dev/null
+++ b/app/src/main/res/layout/fragment_video.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+
+    <data>
+
+    </data>
+
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="200dp"
+        >
+
+        <com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
+            android:id="@+id/video_player"
+            android:layout_width="match_parent"
+            android:layout_height="200dp"
+            />
+        <RelativeLayout
+            android:id="@+id/layout_data_null"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical"
+            >
+            <ImageView
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:src="@drawable/img_data_null"
+                android:scaleType="center"
+                />
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="杩樻病涓婁紶瑙嗛 ~"
+                android:textColor="#73000000"
+                android:layout_gravity="center"
+                android:layout_centerHorizontal="true"
+                android:layout_alignParentBottom="true"
+                android:layout_marginBottom="10dp"
+                />
+        </RelativeLayout>
+
+
+
+    </FrameLayout>
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_annual_health_status.xml b/app/src/main/res/layout/item_annual_health_status.xml
index bf09637..7cd10c6 100644
--- a/app/src/main/res/layout/item_annual_health_status.xml
+++ b/app/src/main/res/layout/item_annual_health_status.xml
@@ -30,52 +30,95 @@
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
+                    android:layout_height="40dp"
                     android:gravity="center_vertical">
-
-                    <TextView
-                        android:id="@+id/textView2"
-                        android:layout_width="wrap_content"
+                    <CheckBox
+                        android:id="@+id/checkbox"
+                        android:layout_width="18dp"
+                        android:layout_height="18dp"
+                        android:layout_marginStart="3dp"
+                        android:layout_centerVertical="true"
+                        android:button="@drawable/selector_checkbox"
+                        android:background="?selectableItemBackgroundBorderless"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView1"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_marginStart="24dp"
                         android:text="@{bean.type}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
+                        android:gravity="start|center_vertical"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
-                        tools:text="鎴夸骇璇�" />
+                        app:layout_constraintEnd_toStartOf="@id/textView2"
+                        app:layout_constraintHorizontal_weight="1.5"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        app:layout_constraintHorizontal_chainStyle="spread_inside"
+                        tools:text="浣撴" />
 
-                    <TextView
-                        android:layout_width="wrap_content"
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView2"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_centerInParent="true"
                         android:gravity="center"
                         android:text="@{bean.hospital}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
                         app:layout_constraintBottom_toBottomOf="parent"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintHorizontal_bias="0.45"
-                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toStartOf="@+id/tv_time"
+                        app:layout_constraintStart_toEndOf="@+id/textView1"
                         app:layout_constraintTop_toTopOf="parent"
-                        tools:text="寮犱笁" />
+                        app:layout_constraintHorizontal_weight="2"
+                        android:layout_marginHorizontal="20dp"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        tools:text="浜烘皯鍖婚櫌" />
 
-                    <TextView
+                    <androidx.appcompat.widget.AppCompatTextView
                         android:id="@+id/tv_time"
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:text="@{bean.time}"
+                        android:text="@{bean.checkTime == null ? `鈥斺�斺�擿 : bean.checkTime}"
                         android:textColor="@color/black"
                         android:textSize="16sp"
-                        android:layout_marginEnd="20dp"
-                        android:textStyle="bold"
+                        android:layout_marginEnd="10dp"
+                        android:gravity="center_vertical|center"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintStart_toEndOf="@id/textView2"
+                        app:layout_constraintHorizontal_weight="2"
+                        android:maxLines="1"
+                        android:ellipsize="end"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        tools:text="2019-01-12"
+                        />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="2019-01-12" />
+                        android:layout_marginEnd="10dp"
+                        />
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
@@ -90,92 +133,84 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="搴忓彿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{String.valueOf(bean.id)}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="浣撴鏃堕棿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.time}"
+                            android:text="@{bean.checkTime}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="鎻愬悕锛�"
+                            android:text="棰樺悕锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.name}"
+                            android:text="@{bean.title}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="娉ㄦ剰浜嬮」锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.attention}"
+                            android:text="@{bean.notice}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
 
@@ -183,48 +218,95 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="澶囨敞锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.remark}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:text="鐢靛瓙鏂囦欢锛�"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_12"
-                        android:textStyle="bold"
+                        android:textSize="12sp"
                         />
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_15"
+                        android:layout_marginBottom="15dp"
                         >
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_image"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            tools:listitem="@layout/item_image"
+                            tools:listitem="@layout/item_electronic_file"
                             tools:itemCount="3"
                             />
+                    </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center"
+                        android:layout_marginBottom="@dimen/dp_12"
+                        >
+                        <LinearLayout
+                            android:id="@+id/layout_modify"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            >
+                            <ImageView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/ic_modify"
+                                android:layout_gravity="center"
+                                />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="淇敼"
+                                android:textColor="@color/black"
+                                android:textSize="@dimen/sp_14"
 
+                                android:layout_marginStart="@dimen/dp_4"
+                                />
+                        </LinearLayout>
+                        <LinearLayout
+                            android:id="@+id/layout_delete"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_alignParentEnd="true"
+                            android:layout_marginStart="@dimen/dp_52"
+                            >
+                            <ImageView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/ic_delete"
+                                android:layout_gravity="center"
+                                />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鍒犻櫎"
+                                android:textColor="#FFE86F72"
+                                android:textSize="@dimen/sp_14"
+
+                                android:layout_marginStart="@dimen/dp_4"
+                                />
+                        </LinearLayout>
                     </LinearLayout>
 
                 </LinearLayout>
diff --git a/app/src/main/res/layout/item_certificate_of_honor.xml b/app/src/main/res/layout/item_certificate_of_honor.xml
index 2fd73c6..f951efc 100644
--- a/app/src/main/res/layout/item_certificate_of_honor.xml
+++ b/app/src/main/res/layout/item_certificate_of_honor.xml
@@ -30,36 +30,49 @@
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
-                    android:gravity="center_vertical">
+                    android:layout_height="40dp"
+                    android:gravity="center_vertical"
+                    >
 
                     <TextView
-                        android:id="@+id/textView2"
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginStart="24dp"
+                        android:layout_centerVertical="true"
+                        android:ellipsize="end"
+                        android:maxLines="1"
                         android:text="@{bean.name}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
+                        android:layout_marginStart="24dp"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
-                        tools:text="鍒涚珛寮犳皬鍏徃" />
-
+                        app:layout_constraintWidth_percent="0.5"
+                        tools:text="寮犳皬App绔嬮」" />
                     <TextView
-                        android:id="@+id/tv_time"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:text="@{bean.effectiveTime}"
-                        android:textColor="@color/black"
                         android:textSize="16sp"
-                        android:layout_marginEnd="20dp"
-                        android:textStyle="bold"
+                        android:textColor="@color/black"
+                        android:text="@{bean.getDate}"
+                        android:layout_alignParentEnd="true"
+                        android:layout_centerVertical="true"
+                        tools:text="2023-05-16"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        android:layout_marginEnd="10dp"
+                        />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="2019-01-12" />
+                        android:layout_marginEnd="10dp"
+                        />
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
@@ -74,92 +87,84 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="绫诲埆锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.type}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="璇佸彿/涓撲笟锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.certificateNumber}"
+                            android:text="@{bean.idNo}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="绾у埆锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.level}"
+                            android:text="@{bean.grade}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鏈夋晥鏃堕棿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.effectiveTime}"
+                            android:text="@{bean.validityDate}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
 
@@ -168,92 +173,85 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鑾峰緱鏃堕棿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.getTime}"
+                            android:text="@{bean.getDate}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="瀛樻斁浣嶇疆锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.location}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="澶囨敞锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.remark}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
 
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:text="鐢靛瓙鏂囦欢锛�"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_12"
-                        android:textStyle="bold"
+                        android:textSize="12sp"
                         />
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_15"
+                        android:layout_marginBottom="15dp"
                         >
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_image"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            tools:listitem="@layout/item_image"
+                            tools:listitem="@layout/item_electronic_file"
                             tools:itemCount="3"
                             />
 
diff --git a/app/src/main/res/layout/item_clean_storage.xml b/app/src/main/res/layout/item_clean_storage.xml
index 5fbf936..496a20b 100644
--- a/app/src/main/res/layout/item_clean_storage.xml
+++ b/app/src/main/res/layout/item_clean_storage.xml
@@ -20,6 +20,7 @@
             android:layout_margin="@dimen/dp_2"
             app:cardCornerRadius="@dimen/dp_10"
             app:cardBackgroundColor="@color/color_card_pink"
+            tools:layout_height="wrap_content"
             >
             <LinearLayout
                 android:layout_width="match_parent"
@@ -29,52 +30,95 @@
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
+                    android:layout_height="40dp"
                     android:gravity="center_vertical">
-
-                    <TextView
-                        android:id="@+id/textView2"
-                        android:layout_width="wrap_content"
+                    <CheckBox
+                        android:id="@+id/checkbox"
+                        android:layout_width="18dp"
+                        android:layout_height="18dp"
+                        android:layout_marginStart="3dp"
+                        android:layout_centerVertical="true"
+                        android:button="@drawable/selector_checkbox"
+                        android:background="?selectableItemBackgroundBorderless"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView1"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_marginStart="24dp"
-                        android:text="@{bean.type}"
+                        android:text="@{bean.kind}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
+                        android:gravity="start|center_vertical"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
-                        tools:text="鎴夸骇璇�" />
+                        app:layout_constraintEnd_toStartOf="@id/textView2"
+                        app:layout_constraintHorizontal_weight="1.5"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        app:layout_constraintHorizontal_chainStyle="spread_inside"
+                        tools:text="淇濇磥" />
 
-                    <TextView
-                        android:layout_width="wrap_content"
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView2"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_centerInParent="true"
                         android:gravity="center"
-                        android:text="@{bean.suitablePeople}"
-                        android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
-                        app:layout_constraintBottom_toBottomOf="parent"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintHorizontal_bias="0.45"
-                        app:layout_constraintStart_toStartOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="寮犱笁" />
-
-                    <TextView
-                        android:id="@+id/tv_time"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:text="@{bean.category}"
+                        android:text="@{bean.suitable}"
                         android:textColor="@color/black"
                         android:textSize="16sp"
-                        android:layout_marginEnd="20dp"
-                        android:textStyle="bold"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toStartOf="@+id/tv_time"
+                        app:layout_constraintStart_toEndOf="@+id/textView1"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintHorizontal_weight="2"
+                        android:layout_marginHorizontal="20dp"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        tools:text="寮犱笁" />
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/tv_time"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:text="@{bean.type}"
+                        android:textColor="@color/black"
+                        android:textSize="16sp"
+                        android:layout_marginEnd="10dp"
+                        android:gravity="center_vertical|center"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintStart_toEndOf="@id/textView2"
+                        app:layout_constraintHorizontal_weight="2"
+                        android:maxLines="1"
+                        android:ellipsize="end"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        tools:text="鐜荤拑绐�"
+                        />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="2019-01-12" />
+                        android:layout_marginEnd="10dp"
+                        />
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
@@ -89,92 +133,84 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="搴忓彿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{String.valueOf(bean.id)}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="淇濇磥鏂规硶锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.cleanMethod}"
+                            android:text="@{bean.method}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鏉愭枡瀛樻斁鍦帮細"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.materialStorageLocation}"
+                            android:text="@{bean.place}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鏀剧疆鍦扮偣锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.placementLocation}"
+                            android:text="@{bean.location}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
 
@@ -182,49 +218,97 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="澶囨敞锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.remark}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:text="鐢靛瓙鏂囦欢锛�"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_12"
-                        android:textStyle="bold"
+                        android:textSize="12sp"
                         />
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_15"
+                        android:layout_marginBottom="15dp"
                         >
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_image"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            tools:listitem="@layout/item_image"
+                            tools:listitem="@layout/item_electronic_file"
                             tools:itemCount="3"
                             />
 
                     </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center"
+                        android:layout_marginBottom="@dimen/dp_12"
+                        >
+                        <LinearLayout
+                            android:id="@+id/layout_modify"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            >
+                            <ImageView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/ic_modify"
+                                android:layout_gravity="center"
+                                />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="淇敼"
+                                android:textColor="@color/black"
+                                android:textSize="@dimen/sp_14"
+
+                                android:layout_marginStart="@dimen/dp_4"
+                                />
+                        </LinearLayout>
+                        <LinearLayout
+                            android:id="@+id/layout_delete"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_alignParentEnd="true"
+                            android:layout_marginStart="@dimen/dp_52"
+                            >
+                            <ImageView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/ic_delete"
+                                android:layout_gravity="center"
+                                />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鍒犻櫎"
+                                android:textColor="#FFE86F72"
+                                android:textSize="@dimen/sp_14"
+
+                                android:layout_marginStart="@dimen/dp_4"
+                                />
+                        </LinearLayout>
+                    </LinearLayout>
 
                 </LinearLayout>
             </LinearLayout>
diff --git a/app/src/main/res/layout/item_consume_record.xml b/app/src/main/res/layout/item_consume_record.xml
index df008bd..35c30a8 100644
--- a/app/src/main/res/layout/item_consume_record.xml
+++ b/app/src/main/res/layout/item_consume_record.xml
@@ -1,8 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools">
 
     <data>
+        <variable
+            name="viewModel"
+            type="com.application.zhangshi_app_android.ui.function.TourismDetailActivityViewModel" />
         <variable
             name="bean"
             type="com.application.zhangshi_app_android.bean.ConsumeRecordBean" />
@@ -17,7 +21,7 @@
             android:layout_width="wrap_content"
             android:layout_marginTop="10dp"
             android:layout_height="wrap_content"
-            android:text="鎬婚噾棰�"
+            android:text="鍐呭"
             android:textColor="#767375"
             android:textSize="12sp" />
         <LinearLayout
@@ -34,12 +38,16 @@
                 android:textColorHint="#6b000000"
                 android:textColor="#DE000000"
                 android:text="@={bean.content}"
-                android:textSize="16sp" />
+                android:textSize="16sp"
+                android:enabled="@{viewModel.typeLiveData}"
+                />
             <ImageView
+                android:id="@+id/iv_delete"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:background="@drawable/ic_delete_tourism"
                 android:layout_marginHorizontal="16dp"
+                android:visibility="@{viewModel.typeLiveData}"
                 />
         </LinearLayout>
         <LinearLayout
@@ -60,14 +68,38 @@
                     android:textColor="#767375"
                     android:textSize="12sp" />
 
-                <EditText
+                <androidx.constraintlayout.widget.ConstraintLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:inputType="text"
-                    android:textColorHint="#6b000000"
-                    android:textColor="#DE000000"
-                    android:text="@={bean.totalMoney}"
-                    android:textSize="16sp" />
+                    >
+
+                    <EditText
+                        android:id="@+id/et_total_cost"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:inputType="numberDecimal"
+                        android:text="@={bean.totalCost}"
+                        android:textColor="#DE000000"
+                        android:textColorHint="#6b000000"
+                        android:textSize="16sp"
+                        android:enabled="false"
+                        android:backgroundTint="#6B000000"
+                        tools:text="1490"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        />
+                    <View
+                        android:id="@+id/view_mask"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@color/color_non_editable"
+                        app:layout_constraintTop_toTopOf="@id/et_total_cost"
+                        app:layout_constraintStart_toStartOf="@id/et_total_cost"
+                        app:layout_constraintBottom_toBottomOf="@id/et_total_cost"
+                        app:layout_constraintEnd_toEndOf="@id/et_total_cost"
+                        android:visibility="@{viewModel.typeLiveData}"
+                        />
+                </androidx.constraintlayout.widget.ConstraintLayout>
 
             </LinearLayout>
 
@@ -85,14 +117,20 @@
                     android:textColor="#767375"
                     android:textSize="12sp" />
 
-                <EditText
+                <androidx.appcompat.widget.AppCompatEditText
+                    android:id="@+id/et_eat"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:inputType="text"
+                    android:inputType="numberDecimal"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@={bean.mealMoney}"
-                    android:textSize="16sp" />
+                    android:text="@={bean.eat}"
+                    android:hint="0"
+                    android:textSize="16sp"
+                    android:maxLines="1"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    app:need_modify_null="@{true}"
+                    />
 
             </LinearLayout>
         </LinearLayout>
@@ -114,15 +152,21 @@
                     android:textColor="#767375"
                     android:textSize="12sp"
                     />
-                <EditText
+                <androidx.appcompat.widget.AppCompatEditText
+                    android:id="@+id/et_stay"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:inputType="text"
+                    android:inputType="numberDecimal"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
                     tools:text="aaa"
-                    android:text="@={bean.hotelMoney}"
-                    android:textSize="16sp" />
+                    android:text="@={bean.stay}"
+                    android:hint="0"
+                    app:need_modify_null="@{true}"
+                    android:textSize="16sp"
+                    android:maxLines="1"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
 
             </LinearLayout>
             <LinearLayout
@@ -140,13 +184,19 @@
                     android:textSize="12sp"
                     />
                 <EditText
+                    android:id="@+id/et_traffic"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:inputType="text"
+                    android:inputType="numberDecimal"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@={bean.trafficMoney}"
-                    android:textSize="16sp" />
+                    android:text="@={bean.traffic}"
+                    android:hint="0"
+                    app:need_modify_null="@{true}"
+                    android:textSize="16sp"
+                    android:maxLines="1"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
 
             </LinearLayout>
         </LinearLayout>
@@ -169,14 +219,20 @@
                     android:textSize="12sp"
                     />
                 <EditText
+                    android:id="@+id/et_entrance"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:inputType="text"
+                    android:inputType="numberDecimal"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
                     tools:text="aaa"
-                    android:text="@={bean.ticketMoney}"
-                    android:textSize="16sp" />
+                    android:text="@={bean.entrance}"
+                    android:hint="0"
+                    app:need_modify_null="@{true}"
+                    android:textSize="16sp"
+                    android:maxLines="1"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
 
             </LinearLayout>
             <LinearLayout
@@ -194,13 +250,19 @@
                     android:textSize="12sp"
                     />
                 <EditText
+                    android:id="@+id/et_shopping"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:inputType="text"
+                    android:inputType="numberDecimal"
                     android:textColorHint="#6b000000"
                     android:textColor="#DE000000"
-                    android:text="@={bean.shoppingMoney}"
-                    android:textSize="16sp" />
+                    android:text="@={bean.shopping}"
+                    android:hint="0"
+                    app:need_modify_null="@{true}"
+                    android:textSize="16sp"
+                    android:maxLines="1"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
 
             </LinearLayout>
         </LinearLayout>
diff --git a/app/src/main/res/layout/item_contacts.xml b/app/src/main/res/layout/item_contacts.xml
index 1d37909..e29fd46 100644
--- a/app/src/main/res/layout/item_contacts.xml
+++ b/app/src/main/res/layout/item_contacts.xml
@@ -30,24 +30,31 @@
                 <RelativeLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
+                    android:layout_height="40dp"
                     >
-
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_centerInParent="true"
                         android:text="@{bean.myName+` 鐨� 閫� 璁� 褰昤}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
                         tools:text="寮犱笁 鐨� 閫� 璁� 褰�" />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        android:layout_marginEnd="10dp"
+                        android:layout_alignParentRight="true"
+                        android:layout_centerVertical="true"
+                        />
                 </RelativeLayout>
                 <LinearLayout
                     android:id="@+id/layout_content"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginBottom="30dp"
+                    android:layout_marginBottom="20dp"
                     >
                     <androidx.recyclerview.widget.RecyclerView
                         android:id="@+id/recyclerView"
diff --git a/app/src/main/res/layout/item_contacts_detail.xml b/app/src/main/res/layout/item_contacts_detail.xml
index 6714e87..4e6abff 100644
--- a/app/src/main/res/layout/item_contacts_detail.xml
+++ b/app/src/main/res/layout/item_contacts_detail.xml
@@ -46,7 +46,6 @@
                 android:maxLines="1"
                 android:textColor="@color/black"
                 android:textSize="14sp"
-                android:textStyle="bold"
                 tools:text="濮撳悕"
                 />
 
@@ -61,7 +60,7 @@
                     android:layout_height="wrap_content"
                     android:text="@{bean.nickName}"
                     android:textColor="#80000000"
-                    android:textSize="@dimen/sp_12"
+                    android:textSize="12sp"
                     android:layout_weight="2"
                     android:maxLines="1"
                     tools:text="绉板懠"
diff --git a/app/src/main/res/layout/item_daily_consume_record.xml b/app/src/main/res/layout/item_daily_consume_record.xml
index ec8ac0d..b2b4925 100644
--- a/app/src/main/res/layout/item_daily_consume_record.xml
+++ b/app/src/main/res/layout/item_daily_consume_record.xml
@@ -11,12 +11,13 @@
             type="com.application.zhangshi_app_android.bean.DailyConsumeRecordBean"
             />
         <variable
-            name="isFold"
-            type="boolean"
+            name="viewModel"
+            type="com.application.zhangshi_app_android.ui.function.TourismDetailActivityViewModel"
             />
     </data>
 
     <androidx.cardview.widget.CardView
+        android:id="@+id/cardView"
         android:layout_width="match_parent"
         android:layout_height="50dp"
         app:cardBackgroundColor="@color/white"
@@ -30,7 +31,6 @@
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:paddingHorizontal="5dp"
-            android:paddingBottom="15dp"
             >
             <LinearLayout
                 android:id="@+id/layout_title"
@@ -38,25 +38,70 @@
                 android:layout_height="50dp"
                 android:gravity="center_vertical"
                 >
-                <TextView
+                <LinearLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    >
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/tv_date"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textColor="#FF000000"
+                        android:textSize="20sp"
+                        android:text="@={bean.date}"
+                        android:background="@null"
+                        android:clickable="@{viewModel.typeLiveData}"
+                        tools:text="5鏈�1鏃�"
+                        android:textColorHint="#6b000000"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="20sp"
+                        app:autoSizeMinTextSize="16sp"
+                        />
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="1dp"
+                        android:background="#6B000000"
+                        android:visibility="@{viewModel.typeLiveData}"
+                        />
+                </LinearLayout>
+                <View
                     android:layout_width="0dp"
                     android:layout_weight="1"
                     android:layout_height="wrap_content"
-                    android:textColor="#FF000000"
-                    android:textSize="20sp"
-                    android:text="@{bean.date}"
-                    tools:text="5鏈�1鏃�"
+                    android:layout_marginStart="10dp"
                     />
-                <ImageView
+                <LinearLayout
+                    android:id="@+id/layout_add_delete"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:background="@drawable/ic_tourism_add"
-                    />
+                    android:layout_gravity="center"
+                    android:gravity="center"
+                    android:layout_marginStart="10dp"
+                    android:visibility="@{viewModel.typeLiveData}"
+                    >
+                    <ImageView
+                        android:id="@+id/iv_delete"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_delete_tourism"
+                        />
+                    <ImageView
+                        android:id="@+id/iv_add"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginStart="10dp"
+                        android:background="@drawable/ic_tourism_add"
+                        />
+                </LinearLayout>
                 <ImageView
                     android:id="@+id/iv_fold"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:background="@{isFold?@drawable/ic_fold:@drawable/ic_unfold}"
+                    android:background="@drawable/ic_fold"
                     android:layout_marginStart="10dp"
                     />
             </LinearLayout>
@@ -65,12 +110,18 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:orientation="vertical"
+                android:paddingBottom="15dp"
                 >
-                <androidx.recyclerview.widget.RecyclerView
-                    android:id="@+id/rv_consume_record"
+                <RelativeLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    />
+                    >
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/rv_consume_record"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        />
+                </RelativeLayout>
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
@@ -80,20 +131,38 @@
                     android:alpha="0.54"
                     android:layout_marginTop="10dp"
                     />
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@{bean.dailyMoney}"
-                    android:textColor="#DE000000"
-                    android:textSize="14sp"
-                    android:layout_marginTop="5dp"
-                    />
-                <View
+                <androidx.constraintlayout.widget.ConstraintLayout
                     android:layout_width="match_parent"
-                    android:layout_height="1dp"
-                    android:background="#6B000000"
-                    android:layout_marginTop="8dp"
-                    />
+                    android:layout_height="wrap_content"
+                    >
+
+                    <EditText
+                        android:id="@+id/et_daily_money"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:inputType="number"
+                        android:text="@={bean.dailyMoney}"
+                        android:textColor="#DE000000"
+                        android:textColorHint="#6b000000"
+                        android:textSize="14sp"
+                        android:enabled="false"
+                        android:backgroundTint="#6B000000"
+                        tools:text="1490"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        />
+                    <View
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:background="@color/color_non_editable"
+                        app:layout_constraintTop_toTopOf="@id/et_daily_money"
+                        app:layout_constraintStart_toStartOf="@id/et_daily_money"
+                        app:layout_constraintBottom_toBottomOf="@id/et_daily_money"
+                        app:layout_constraintEnd_toEndOf="@id/et_daily_money"
+                        android:visibility="@{viewModel.typeLiveData}"
+                        />
+                </androidx.constraintlayout.widget.ConstraintLayout>
+
             </LinearLayout>
         </LinearLayout>
 
diff --git a/app/src/main/res/layout/item_electronic_file.xml b/app/src/main/res/layout/item_electronic_file.xml
new file mode 100644
index 0000000..7d7278b
--- /dev/null
+++ b/app/src/main/res/layout/item_electronic_file.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    >
+
+    <data>
+        <variable
+            name="url"
+            type="String" />
+    </data>
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <androidx.constraintlayout.utils.widget.ImageFilterView
+            android:id="@+id/iv_image"
+            android:layout_width="70dp"
+            android:layout_height="45dp"
+            android:layout_marginTop="7.5dp"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:imageUrl="@{url}"
+            app:round="5dp"
+            />
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text=""
+            android:textColor="@color/black"
+            android:textSize="10sp"
+            android:layout_marginTop="5dp"
+            app:layout_constraintTop_toBottomOf="@id/iv_image"
+            app:layout_constraintStart_toStartOf="@id/iv_image"
+            app:layout_constraintEnd_toEndOf="@id/iv_image"
+            />
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_family_assets.xml b/app/src/main/res/layout/item_family_assets.xml
index d942d44..9d06aba 100644
--- a/app/src/main/res/layout/item_family_assets.xml
+++ b/app/src/main/res/layout/item_family_assets.xml
@@ -19,6 +19,7 @@
             android:layout_height="40dp"
             android:layout_margin="@dimen/dp_2"
             app:cardCornerRadius="@dimen/dp_10"
+            tools:layout_height="wrap_content"
             app:cardBackgroundColor="@color/color_card_pink"
             >
             <LinearLayout
@@ -29,52 +30,76 @@
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
+                    android:layout_height="40dp"
                     android:gravity="center_vertical">
 
-                    <TextView
-                        android:id="@+id/textView2"
-                        android:layout_width="wrap_content"
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView1"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginStart="24dp"
+                        android:layout_marginStart="20dp"
                         android:text="@{bean.type}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-
+                        android:textSize="16sp"
+                        android:gravity="start|center_vertical"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/textView2"
+                        app:layout_constraintWidth_percent="0.2"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        app:layout_constraintHorizontal_chainStyle="spread_inside"
                         tools:text="鎴夸骇璇�" />
 
-                    <TextView
-                        android:layout_width="wrap_content"
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView2"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_centerInParent="true"
+                        android:ellipsize="end"
+                        android:maxLines="1"
                         android:gravity="center"
                         android:text="@{bean.holder}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-
+                        android:textSize="16sp"
                         app:layout_constraintBottom_toBottomOf="parent"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintHorizontal_bias="0.45"
-                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toStartOf="@+id/tv_time"
+                        app:layout_constraintStart_toEndOf="@+id/textView1"
                         app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintWidth_percent="0.25"
                         tools:text="寮犱笁" />
 
-                    <TextView
+                    <androidx.appcompat.widget.AppCompatTextView
                         android:id="@+id/tv_time"
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:text="@{bean.createTime}"
+                        android:text="@{bean.happenTime == null ? `鈥斺�斺�斺�擿 : bean.happenTime}"
                         android:textColor="@color/black"
                         android:textSize="16sp"
-                        android:layout_marginEnd="20dp"
-
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintStart_toEndOf="@id/textView2"
+                        app:layout_constraintWidth_percent="0.3"
+                        android:gravity="end"
+                        android:maxLines="1"
+                        android:layout_marginEnd="10dp"
+                        android:ellipsize="end"
+                        tools:text="2019-01-12" />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="2019-01-12" />
+                        android:layout_marginEnd="10dp"
+                        />
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
@@ -89,14 +114,14 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="搴忓彿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                         <TextView
@@ -104,7 +129,7 @@
                             android:layout_height="wrap_content"
                             android:text="@{String.valueOf(bean.id)}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                     </LinearLayout>
@@ -112,14 +137,14 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="璇佷欢鍗″彿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                         <TextView
@@ -127,7 +152,7 @@
                             android:layout_height="wrap_content"
                             android:text="@{bean.title}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                     </LinearLayout>
@@ -135,14 +160,14 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="寮�鎴疯锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                         <TextView
@@ -150,7 +175,7 @@
                             android:layout_height="wrap_content"
                             android:text="@{bean.location}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                     </LinearLayout>
@@ -158,14 +183,14 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="瀛樻斁鍦扮偣锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                         <TextView
@@ -173,7 +198,7 @@
                             android:layout_height="wrap_content"
                             android:text="@{bean.address}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                     </LinearLayout>
@@ -182,14 +207,14 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="澶囨敞锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                         <TextView
@@ -197,30 +222,30 @@
                             android:layout_height="wrap_content"
                             android:text="@{bean.remark}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                     </LinearLayout>
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:text="鐢靛瓙鏂囦欢锛�"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_12"
+                        android:textSize="12sp"
 
                         />
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_15"
+                        android:layout_marginBottom="15dp"
                         >
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_image"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            tools:listitem="@layout/item_image"
+                            tools:listitem="@layout/item_electronic_file"
                             tools:itemCount="3"
                             />
 
diff --git a/app/src/main/res/layout/item_family_memorabilia.xml b/app/src/main/res/layout/item_family_memorabilia.xml
index be9ef3f..6056337 100644
--- a/app/src/main/res/layout/item_family_memorabilia.xml
+++ b/app/src/main/res/layout/item_family_memorabilia.xml
@@ -27,10 +27,10 @@
                 android:layout_height="wrap_content"
                 android:orientation="vertical"
                 >
-                <RelativeLayout
+                <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
+                    android:layout_height="40dp"
                     android:gravity="center_vertical"
                     >
                     <CheckBox
@@ -41,29 +41,52 @@
                         android:layout_centerVertical="true"
                         android:button="@drawable/selector_checkbox"
                         android:background="?selectableItemBackgroundBorderless"
-                        />
-                    <TextView
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:layout_centerVertical="true"
-                        android:layout_marginStart="24dp"
-                        android:textSize="@dimen/sp_16"
-                        android:textColor="@color/black"
-                        android:text="@{bean.title}"
-                        android:layout_weight="1"
-                        />
-                    <TextView
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:textSize="@dimen/sp_16"
-                        android:textColor="@color/black"
-                        android:text="@{bean.createTime}"
-                        android:layout_marginEnd="24dp"
-                        android:layout_alignParentEnd="true"
-                        android:layout_centerVertical="true"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
                         />
 
-                </RelativeLayout>
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_centerVertical="true"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        android:text="@{bean.title}"
+                        android:textColor="@color/black"
+                        android:textSize="16sp"
+                        android:layout_marginStart="24dp"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintWidth_percent="0.5"
+                        tools:text="寮犳皬App绔嬮」" />
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="16sp"
+                        android:textColor="@color/black"
+                        android:text="@{bean.happenTime}"
+                        android:layout_alignParentEnd="true"
+                        android:layout_centerVertical="true"
+                        tools:text="2023-05-16"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        android:layout_marginEnd="10dp"
+                        />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        android:layout_marginEnd="10dp"
+                        />
+
+                </androidx.constraintlayout.widget.ConstraintLayout>
                 <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -74,14 +97,14 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="搴忓彿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                         <TextView
@@ -89,7 +112,7 @@
                             android:layout_height="wrap_content"
                             android:text="@{String.valueOf(bean.id)}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                     </LinearLayout>
@@ -97,14 +120,14 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="浜虹墿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                         <TextView
@@ -112,7 +135,7 @@
                             android:layout_height="wrap_content"
                             android:text="@{bean.people}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                     </LinearLayout>
@@ -120,14 +143,14 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="澶囨敞锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                         <TextView
@@ -135,35 +158,36 @@
                             android:layout_height="wrap_content"
                             android:text="@{bean.remark}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                     </LinearLayout>
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:text="鐢靛瓙鏂囦欢锛�"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_12"
+                        android:textSize="12sp"
 
                         />
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_15"
+                        android:layout_marginBottom="15dp"
                         >
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_image"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            tools:listitem="@layout/item_image"
+                            tools:listitem="@layout/item_electronic_file"
                             tools:itemCount="3"
                             />
 
                     </LinearLayout>
                     <LinearLayout
+                        tools:visibility="visible"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_gravity="center"
@@ -194,7 +218,6 @@
                             android:id="@+id/layout_delete"
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:layout_alignParentEnd="true"
                             android:layout_marginStart="@dimen/dp_52"
                             >
                             <ImageView
diff --git a/app/src/main/res/layout/item_growth_experience_abroad_condition.xml b/app/src/main/res/layout/item_growth_experience_abroad_condition.xml
index e41a92c..501d7b0 100644
--- a/app/src/main/res/layout/item_growth_experience_abroad_condition.xml
+++ b/app/src/main/res/layout/item_growth_experience_abroad_condition.xml
@@ -27,38 +27,57 @@
                 android:layout_height="wrap_content"
                 android:orientation="vertical"
                 >
-                <RelativeLayout
+                <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
+                    android:layout_height="40dp"
                     android:gravity="center_vertical"
                     >
-
                     <TextView
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_centerVertical="true"
-                        android:layout_marginStart="24dp"
-                        android:textSize="@dimen/sp_16"
-                        android:textColor="@color/black"
+                        android:ellipsize="end"
+                        android:maxLines="1"
                         android:text="@{bean.destination}"
-                        android:layout_weight="1"
                         tools:text="棣欐腐"
-                        android:textStyle="bold"
+                        android:textColor="@color/black"
+                        android:textSize="16sp"
+                        android:layout_marginStart="24dp"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintWidth_percent="0.3"
                         />
                     <TextView
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:textSize="@dimen/sp_16"
+                        android:textSize="16sp"
                         android:textColor="@color/black"
                         android:text="@{bean.startDate}"
-                        android:textStyle="bold"
-                        android:layout_marginEnd="24dp"
-                        android:layout_alignParentEnd="true"
-                        android:layout_centerVertical="true"
                         tools:text="2010.01-2020.01"
+                        android:gravity="end"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        app:layout_constraintWidth_percent="0.4"
+                        android:layout_marginEnd="10dp"
+                        android:maxLines="1"
+                        android:ellipsize="end"
                         />
-                </RelativeLayout>
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        android:layout_marginEnd="10dp"
+                        />
+
+                </androidx.constraintlayout.widget.ConstraintLayout>
+
                 <LinearLayout
                     android:id="@+id/layout_content"
                     android:layout_width="match_parent"
@@ -77,8 +96,7 @@
                             android:layout_height="wrap_content"
                             android:text="浜嬬敱锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
@@ -86,8 +104,7 @@
                             tools:text="鎺翰"
                             android:text="@{bean.cause}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
 
diff --git a/app/src/main/res/layout/item_growth_experience_holder_condition.xml b/app/src/main/res/layout/item_growth_experience_holder_condition.xml
index 1e58bbd..6cab216 100644
--- a/app/src/main/res/layout/item_growth_experience_holder_condition.xml
+++ b/app/src/main/res/layout/item_growth_experience_holder_condition.xml
@@ -27,37 +27,56 @@
                 android:layout_height="wrap_content"
                 android:orientation="vertical"
                 >
-                <RelativeLayout
+                <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
+                    android:layout_height="40dp"
                     android:gravity="center_vertical"
                     >
                     <TextView
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_centerVertical="true"
-                        android:layout_marginStart="24dp"
-                        android:textSize="@dimen/sp_16"
-                        android:textColor="@color/black"
+                        android:ellipsize="end"
+                        android:maxLines="1"
                         android:text="@{bean.cerName}"
-                        android:layout_weight="1"
                         tools:text="鎶ょ収"
-                        android:textStyle="bold"
+                        android:textColor="@color/black"
+                        android:textSize="16sp"
+                        android:layout_marginStart="24dp"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintWidth_percent="0.3"
                         />
                     <TextView
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:textSize="@dimen/sp_16"
+                        android:textSize="16sp"
                         android:textColor="@color/black"
                         android:text="@{bean.validityDate}"
-                        android:textStyle="bold"
-                        android:layout_marginEnd="24dp"
-                        android:layout_alignParentEnd="true"
-                        android:layout_centerVertical="true"
                         tools:text="2010.01-2020.01"
+                        android:gravity="end"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        app:layout_constraintWidth_percent="0.4"
+                        android:layout_marginEnd="10dp"
+                        android:maxLines="1"
+                        android:ellipsize="end"
                         />
-                </RelativeLayout>
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        android:layout_marginEnd="10dp"
+                        />
+
+                </androidx.constraintlayout.widget.ConstraintLayout>
                 <LinearLayout
                     android:id="@+id/layout_content"
                     android:layout_width="match_parent"
@@ -69,22 +88,20 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鎸佹湁鎯呭喌锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             android:text="@{bean.ownStatus}"
                             />
                     </LinearLayout>
@@ -99,16 +116,14 @@
                             android:layout_height="wrap_content"
                             android:text="璇佷欢鍙风爜锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:textColor="@color/black"
                             android:text="@{bean.idNo}"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             tools:text="123456789012345"
                             />
                     </LinearLayout>
diff --git a/app/src/main/res/layout/item_growth_experience_primary.xml b/app/src/main/res/layout/item_growth_experience_primary.xml
index 7f56b53..4ada7e4 100644
--- a/app/src/main/res/layout/item_growth_experience_primary.xml
+++ b/app/src/main/res/layout/item_growth_experience_primary.xml
@@ -27,68 +27,84 @@
                 android:layout_height="wrap_content"
                 android:orientation="vertical"
                 >
-                <RelativeLayout
+                <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
+                    android:layout_height="40dp"
                     android:gravity="center_vertical"
                     >
                     <TextView
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_centerVertical="true"
-                        android:layout_marginStart="24dp"
-                        android:textSize="@dimen/sp_16"
-                        android:textColor="@color/black"
+                        android:ellipsize="end"
+                        android:maxLines="1"
                         android:text="@{bean.startDate}"
-                        android:layout_weight="1"
-                        tools:text="2010-2016"
-                        android:textStyle="bold"
-                        />
+                        android:textColor="@color/black"
+                        android:textSize="16sp"
+                        android:layout_marginStart="24dp"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintWidth_percent="0.3"
+                        tools:text="2010-2016" />
                     <TextView
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:textSize="@dimen/sp_16"
+                        android:textSize="16sp"
                         android:textColor="@color/black"
                         android:text="@{bean.content}"
-                        android:textStyle="bold"
-                        android:layout_marginEnd="24dp"
-                        android:layout_alignParentEnd="true"
-                        android:layout_centerVertical="true"
                         tools:text="**灏忓"
+                        android:gravity="end"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        app:layout_constraintWidth_percent="0.4"
+                        android:layout_marginEnd="10dp"
+                        android:maxLines="1"
+                        android:ellipsize="end"
                         />
-                </RelativeLayout>
-            <LinearLayout
-                android:id="@+id/layout_content"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:orientation="vertical"
-                android:paddingHorizontal="@dimen/dp_24"
-                >
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:orientation="horizontal"
-                android:layout_marginBottom="10dp"
-                >
-                <TextView
-                    android:layout_width="wrap_content"
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        android:layout_marginEnd="10dp"
+                        />
+
+                </androidx.constraintlayout.widget.ConstraintLayout>
+                <LinearLayout
+                    android:id="@+id/layout_content"
+                    android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:text="璇佹槑浜猴細"
-                    android:textColor="@color/black"
-                    android:textSize="@dimen/sp_12"
-                    android:textStyle="bold"
-                    />
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@{bean.witness}"
-                    android:textColor="@color/black"
-                    android:textSize="@dimen/sp_12"
-                    android:textStyle="bold"
-                    />
-            </LinearLayout>
-            </LinearLayout>
+                    android:orientation="vertical"
+                    android:layout_marginHorizontal="24dp"
+                    >
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="horizontal"
+                        android:layout_marginBottom="10dp"
+                        >
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="璇佹槑浜猴細"
+                            android:textColor="@color/black"
+                            android:textSize="12sp"
+                            />
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@{bean.witness}"
+                            android:textColor="@color/black"
+                            android:textSize="12sp"
+                            />
+                    </LinearLayout>
+                </LinearLayout>
             </LinearLayout>
         </androidx.cardview.widget.CardView>
     </LinearLayout>
diff --git a/app/src/main/res/layout/item_growth_experience_relationship.xml b/app/src/main/res/layout/item_growth_experience_relationship.xml
index ceb086f..40d8b6f 100644
--- a/app/src/main/res/layout/item_growth_experience_relationship.xml
+++ b/app/src/main/res/layout/item_growth_experience_relationship.xml
@@ -27,37 +27,57 @@
                 android:layout_height="wrap_content"
                 android:orientation="vertical"
                 >
-                <RelativeLayout
+                <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
+                    android:layout_height="40dp"
                     android:gravity="center_vertical"
                     >
                     <TextView
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_centerVertical="true"
-                        android:layout_marginStart="24dp"
-                        android:textSize="@dimen/sp_16"
-                        android:textColor="@color/black"
+                        android:ellipsize="end"
+                        android:maxLines="1"
                         android:text="@{bean.relation}"
-                        android:layout_weight="1"
                         tools:text="澶"
-                        android:textStyle="bold"
+                        android:textColor="@color/black"
+                        android:textSize="16sp"
+                        android:layout_marginStart="24dp"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintWidth_percent="0.3"
                         />
                     <TextView
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:textSize="@dimen/sp_16"
+                        android:textSize="16sp"
                         android:textColor="@color/black"
                         android:text="@{bean.nickName}"
-                        android:textStyle="bold"
-                        android:layout_marginEnd="24dp"
-                        android:layout_alignParentEnd="true"
-                        android:layout_centerVertical="true"
                         tools:text="寮犱笁"
+                        android:gravity="end"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        app:layout_constraintWidth_percent="0.4"
+                        android:layout_marginEnd="10dp"
+                        android:maxLines="1"
+                        android:ellipsize="end"
                         />
-                </RelativeLayout>
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        android:layout_marginEnd="10dp"
+                        />
+
+                </androidx.constraintlayout.widget.ConstraintLayout>
+
                 <LinearLayout
                     android:id="@+id/layout_content"
                     android:layout_width="match_parent"
@@ -69,46 +89,42 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鎵�鍦ㄥ崟浣�/瀛︽牎锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.unit}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鑱屽姟/韬唤锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.position}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
@@ -122,16 +138,14 @@
                             android:layout_height="wrap_content"
                             android:text="鏀挎不闈㈣矊:"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:textColor="@color/black"
                             android:text="@{bean.politicalOutlook}"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                 </LinearLayout>
diff --git a/app/src/main/res/layout/item_home_devices.xml b/app/src/main/res/layout/item_home_devices.xml
index 1e8ebd1..4099140 100644
--- a/app/src/main/res/layout/item_home_devices.xml
+++ b/app/src/main/res/layout/item_home_devices.xml
@@ -20,6 +20,7 @@
             android:layout_margin="@dimen/dp_2"
             app:cardCornerRadius="@dimen/dp_10"
             app:cardBackgroundColor="@color/color_card_pink"
+            tools:layout_height="wrap_content"
             >
             <LinearLayout
                 android:layout_width="match_parent"
@@ -30,52 +31,95 @@
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
+                    android:layout_height="40dp"
                     android:gravity="center_vertical">
-
-                    <TextView
-                        android:id="@+id/textView2"
-                        android:layout_width="wrap_content"
+                    <CheckBox
+                        android:id="@+id/checkbox"
+                        android:layout_width="18dp"
+                        android:layout_height="18dp"
+                        android:layout_marginStart="3dp"
+                        android:layout_centerVertical="true"
+                        android:button="@drawable/selector_checkbox"
+                        android:background="?selectableItemBackgroundBorderless"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView1"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_marginStart="24dp"
                         android:text="@{bean.name}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
+                        android:gravity="start|center_vertical"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/textView2"
+                        app:layout_constraintHorizontal_weight="1.5"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        app:layout_constraintHorizontal_chainStyle="spread_inside"
                         tools:text="鐢佃" />
 
-                    <TextView
-                        android:layout_width="wrap_content"
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView2"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_centerInParent="true"
                         android:gravity="center"
                         android:text="@{bean.location}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
                         app:layout_constraintBottom_toBottomOf="parent"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintHorizontal_bias="0.45"
-                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toStartOf="@+id/tv_time"
+                        app:layout_constraintStart_toEndOf="@+id/textView1"
                         app:layout_constraintTop_toTopOf="parent"
-                        tools:text="寮犱笁" />
+                        app:layout_constraintHorizontal_weight="2"
+                        android:layout_marginHorizontal="20dp"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        tools:text="瀹㈠巺" />
 
-                    <TextView
-                        android:id="@+id/textView"
-                        android:layout_width="wrap_content"
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/tv_time"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:text="@{bean.createDate}"
+                        android:text="@{bean.happenTime}"
                         android:textColor="@color/black"
                         android:textSize="16sp"
-                        android:layout_marginEnd="20dp"
-                        android:textStyle="bold"
+                        android:layout_marginEnd="10dp"
+                        android:gravity="center_vertical|center"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintStart_toEndOf="@id/textView2"
+                        app:layout_constraintHorizontal_weight="2"
+                        android:maxLines="1"
+                        android:ellipsize="end"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        tools:text="2019-01-12"
+                        />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="2019-01-12" />
+                        android:layout_marginEnd="10dp"
+                        />
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
@@ -90,118 +134,160 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="搴忓彿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{String.valueOf(bean.id)}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="璐拱浜猴細"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.buyer}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="浜嬮」鍐呭锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.content}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="澶囨敞锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.remark}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:text="鐢靛瓙鏂囦欢锛�"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_12"
-                        android:textStyle="bold"
+                        android:textSize="12sp"
                         />
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_15"
+                        android:layout_marginBottom="15dp"
                         >
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_image"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            tools:listitem="@layout/item_image"
+                            tools:listitem="@layout/item_electronic_file"
                             tools:itemCount="3"
                             />
 
                     </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center"
+                        android:layout_marginBottom="@dimen/dp_12"
+                        >
+                        <LinearLayout
+                            android:id="@+id/layout_modify"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            >
+                            <ImageView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/ic_modify"
+                                android:layout_gravity="center"
+                                />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="淇敼"
+                                android:textColor="@color/black"
+                                android:textSize="@dimen/sp_14"
+
+                                android:layout_marginStart="@dimen/dp_4"
+                                />
+                        </LinearLayout>
+                        <LinearLayout
+                            android:id="@+id/layout_delete"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_alignParentEnd="true"
+                            android:layout_marginStart="@dimen/dp_52"
+                            >
+                            <ImageView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/ic_delete"
+                                android:layout_gravity="center"
+                                />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鍒犻櫎"
+                                android:textColor="#FFE86F72"
+                                android:textSize="@dimen/sp_14"
+
+                                android:layout_marginStart="@dimen/dp_4"
+                                />
+                        </LinearLayout>
+                    </LinearLayout>
 
                 </LinearLayout>
             </LinearLayout>
diff --git a/app/src/main/res/layout/item_home_member_list.xml b/app/src/main/res/layout/item_home_member_list.xml
index 54d0ff7..eb438d0 100644
--- a/app/src/main/res/layout/item_home_member_list.xml
+++ b/app/src/main/res/layout/item_home_member_list.xml
@@ -21,6 +21,7 @@
             app:cardCornerRadius="@dimen/dp_10"
             app:cardBackgroundColor="@color/color_card_pink"
             app:cardElevation="0dp"
+            tools:layout_height="wrap_content"
             >
             <LinearLayout
                 android:layout_width="match_parent"
@@ -30,52 +31,86 @@
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
+                    android:layout_height="40dp"
                     android:gravity="center_vertical">
 
-                    <TextView
-                        android:id="@+id/textView2"
-                        android:layout_width="wrap_content"
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView1"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginStart="24dp"
-                        android:text="@{bean.generation}"
+                        android:layout_marginStart="20dp"
+                        android:text="@{`绗� `+bean.identity+` 浠}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
+                        android:gravity="start|center_vertical"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
-                        tools:text="绗竴浠�" />
+                        app:layout_constraintEnd_toStartOf="@id/textView2"
+                        app:layout_constraintHorizontal_weight="1.5"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        app:layout_constraintHorizontal_chainStyle="spread_inside"
+                        tools:text="绗竴浠�"
+                        android:visibility="@{bean.isMyFamily==1?1:2}"
+                        />
 
-                    <TextView
-                        android:layout_width="wrap_content"
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView2"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_centerInParent="true"
                         android:gravity="center"
-                        android:text="@{bean.name}"
-                        android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
-                        app:layout_constraintBottom_toBottomOf="parent"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintHorizontal_bias="0.55"
-                        app:layout_constraintStart_toStartOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="寮犱笁" />
-
-                    <TextView
-                        android:id="@+id/tv_time"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:text="@{bean.gender}"
+                        android:text="@{bean.nickName}"
                         android:textColor="@color/black"
                         android:textSize="16sp"
-                        android:layout_marginEnd="20dp"
-                        android:textStyle="bold"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toStartOf="@+id/tv_time"
+                        app:layout_constraintStart_toEndOf="@+id/textView1"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintHorizontal_weight="2"
+                        android:layout_marginHorizontal="20dp"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        tools:text="寮犱笁" />
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/tv_time"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:text="@{bean.sex}"
+                        android:textColor="@color/black"
+                        android:textSize="16sp"
+                        android:layout_marginEnd="10dp"
+                        android:gravity="center_vertical|center"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintStart_toEndOf="@id/textView2"
+                        app:layout_constraintHorizontal_weight="2"
+                        android:maxLines="1"
+                        android:ellipsize="end"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        tools:text="鐢�"
+                        />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="鐢�" />
+                        android:layout_marginEnd="10dp"
+                        />
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
@@ -87,142 +122,131 @@
                     android:paddingStart="@dimen/dp_24"
                     android:paddingVertical="13dp"
                     >
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical"
+                        app:layout_constraintStart_toEndOf="@+id/imageFilterView"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="@+id/imageFilterView"
+                        app:layout_constraintBottom_toBottomOf="@+id/imageFilterView"
+                        >
+                        <LinearLayout
+                            android:id="@+id/linearLayout4"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            >
 
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鍑虹敓鏃ユ湡 锛�"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="@{bean.birth}"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp"
+                                tools:text="2021-01-01" />
+                        </LinearLayout>
+                        <LinearLayout
+                            android:id="@+id/linearLayout5"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="5dp"
+                            >
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鍏ㄧ敓鍛藉懆鏈� 锛�"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="@{bean.deadDay == null ? `鈥� 鈥擿 : bean.deadDay}"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp"
+                                tools:text="2021-01-01" />
+                        </LinearLayout>
+                        <LinearLayout
+                            android:id="@+id/linearLayout6"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="5dp"
+                            >
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鎵嬫満鍙� 锛� "
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="@{bean.phoneNumber}"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp"
+                                tools:text="12345678901" />
+                        </LinearLayout>
+                        <LinearLayout
+                            android:id="@+id/linearLayout7"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="5dp"
+                            >
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鎵�鍦ㄥ崟浣� 锛� "
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="@{bean.unit}"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp"
+                                tools:text="寮犳皬鍏徃" />
+                        </LinearLayout>
+                        <LinearLayout
+                            android:id="@+id/linearLayout8"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="5dp"
+                            >
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="閰嶅伓 锛� "
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="@{bean.spouseName}"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp"
+                                tools:text="寮犱笁" />
+                        </LinearLayout>
+                    </LinearLayout>
                     <androidx.constraintlayout.utils.widget.ImageFilterView
-                        android:id="@+id/imageFilterView2"
+                        android:id="@+id/imageFilterView"
                         android:layout_width="100dp"
                         android:layout_height="100dp"
                         android:background="@color/teal_200"
-                        app:imageUrl="@{bean.url}"
+                        app:imageUrl="@{bean.img}"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
                         app:round="20dp" />
-
-                    <LinearLayout
-                        android:id="@+id/linearLayout4"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintStart_toEndOf="@+id/imageFilterView2"
-                        app:layout_constraintTop_toTopOf="@+id/imageFilterView2"
-                        app:layout_constraintBottom_toTopOf="@id/linearLayout5"
-                        app:layout_constraintVertical_chainStyle="spread_inside"
-                        >
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="鍑虹敓鏃ユ湡 锛�"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="@{bean.birthday}"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp"
-                            tools:text="2021-01-01" />
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:id="@+id/linearLayout5"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        app:layout_constraintStart_toStartOf="@+id/linearLayout4"
-                        app:layout_constraintTop_toBottomOf="@+id/linearLayout4"
-                        app:layout_constraintBottom_toTopOf="@id/linearLayout6"
-                        >
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="鍘讳笘鏃堕棿 锛�"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="@{bean.deathDay}"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp"
-                            tools:text="2021-01-01" />
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:id="@+id/linearLayout6"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        app:layout_constraintStart_toStartOf="@+id/linearLayout4"
-                        app:layout_constraintTop_toBottomOf="@+id/linearLayout5"
-                        app:layout_constraintBottom_toTopOf="@id/linearLayout7"
-                        >
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="鎵嬫満鍙� 锛� "
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="@{bean.phone}"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp"
-                            tools:text="12345678901" />
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:id="@+id/linearLayout7"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        app:layout_constraintStart_toStartOf="@+id/linearLayout4"
-                        app:layout_constraintTop_toBottomOf="@+id/linearLayout6"
-                        app:layout_constraintBottom_toTopOf="@id/linearLayout8"
-                        >
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="鎵�鍦ㄥ崟浣� 锛� "
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="@{bean.company}"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp"
-                            tools:text="寮犳皬鍏徃" />
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:id="@+id/linearLayout8"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        app:layout_constraintBottom_toBottomOf="@+id/imageFilterView2"
-                        app:layout_constraintStart_toStartOf="@+id/linearLayout4"
-                        app:layout_constraintTop_toBottomOf="@+id/linearLayout7">
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="閰嶅伓 锛� "
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="@{bean.spouse}"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp"
-                            tools:text="寮犱笁" />
-                    </LinearLayout>
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
             </LinearLayout>
diff --git a/app/src/main/res/layout/item_honor_collection.xml b/app/src/main/res/layout/item_honor_collection.xml
index c0704a6..f5d3a31 100644
--- a/app/src/main/res/layout/item_honor_collection.xml
+++ b/app/src/main/res/layout/item_honor_collection.xml
@@ -20,6 +20,7 @@
             android:layout_margin="@dimen/dp_2"
             app:cardCornerRadius="@dimen/dp_10"
             app:cardBackgroundColor="@color/color_card_pink"
+            tools:layout_height="wrap_content"
             >
             <LinearLayout
                 android:layout_width="match_parent"
@@ -29,54 +30,87 @@
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
+                    android:layout_height="40dp"
                     android:gravity="center_vertical">
 
-                    <TextView
-                        android:id="@+id/textView2"
-                        android:layout_width="wrap_content"
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView1"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginStart="24dp"
+                        android:layout_marginStart="20dp"
                         android:text="@{bean.type}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
+                        android:gravity="start|center_vertical"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
-                        tools:text="鎴夸骇璇�" />
+                        app:layout_constraintEnd_toStartOf="@id/textView2"
+                        app:layout_constraintHorizontal_weight="1.5"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        app:layout_constraintHorizontal_chainStyle="spread_inside"
+                        tools:text="閭エ" />
 
-                    <TextView
-                        android:layout_width="wrap_content"
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView2"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_centerInParent="true"
                         android:gravity="center"
                         android:text="@{bean.owner}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
                         app:layout_constraintBottom_toBottomOf="parent"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintHorizontal_bias="0.45"
-                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toStartOf="@+id/tv_time"
+                        app:layout_constraintStart_toEndOf="@+id/textView1"
                         app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintHorizontal_weight="2"
+                        android:layout_marginHorizontal="20dp"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
                         tools:text="寮犱笁" />
 
-                    <TextView
+                    <androidx.appcompat.widget.AppCompatTextView
                         android:id="@+id/tv_time"
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:text="@{bean.getTime}"
+                        android:text="@{bean.happenTime == null ? `鈥斺�斺�斺�斺�擿 : bean.happenTime}"
                         android:textColor="@color/black"
                         android:textSize="16sp"
-                        android:layout_marginEnd="20dp"
-                        android:textStyle="bold"
+                        android:layout_marginEnd="10dp"
+                        android:gravity="center_vertical|center"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintStart_toEndOf="@id/textView2"
+                        app:layout_constraintHorizontal_weight="2"
+                        android:maxLines="1"
+                        android:ellipsize="end"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        tools:text="2019-01-12"
+                        />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="2019-01-12" />
+                        android:layout_marginEnd="10dp"
+                        />
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
+
 
                 <LinearLayout
                     android:id="@+id/layout_content"
@@ -89,92 +123,84 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鍚嶇О锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.name}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鏉ユ簮锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.source}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="浠峰�硷細"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.price}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="瀛樻斁浣嶇疆锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.location}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
 
@@ -182,45 +208,42 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="澶囨敞锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.remark}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:text="鐢靛瓙鏂囦欢锛�"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_12"
-                        android:textStyle="bold"
+                        android:textSize="12sp"
                         />
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_15"
+                        android:layout_marginBottom="15dp"
                         >
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_image"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            tools:listitem="@layout/item_image"
+                            tools:listitem="@layout/item_electronic_file"
                             tools:itemCount="3"
                             />
 
diff --git a/app/src/main/res/layout/item_hundred_wish.xml b/app/src/main/res/layout/item_hundred_wish.xml
index cc726c8..00fc6d2 100644
--- a/app/src/main/res/layout/item_hundred_wish.xml
+++ b/app/src/main/res/layout/item_hundred_wish.xml
@@ -30,36 +30,49 @@
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
-                    android:gravity="center_vertical">
+                    android:layout_height="40dp"
+                    android:gravity="center_vertical"
+                    >
 
                     <TextView
-                        android:id="@+id/textView2"
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginStart="25dp"
+                        android:layout_centerVertical="true"
+                        android:ellipsize="end"
+                        android:maxLines="1"
                         android:text="@{bean.title}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
+                        android:layout_marginStart="24dp"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
-                        tools:text="鍒涚珛寮犳皬鍏徃" />
-
+                        app:layout_constraintWidth_percent="0.5"
+                        tools:text="寮犳皬App绔嬮」" />
                     <TextView
-                        android:id="@+id/tv_time"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:text="@{bean.createTime}"
-                        android:textColor="@color/black"
                         android:textSize="16sp"
-                        android:layout_marginEnd="25dp"
-                        android:textStyle="bold"
+                        android:textColor="@color/black"
+                        android:text="@{bean.happenTime}"
+                        android:layout_alignParentEnd="true"
+                        android:layout_centerVertical="true"
+                        tools:text="2023-05-16"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        android:layout_marginEnd="10dp"
+                        />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="2019-01-12" />
+                        android:layout_marginEnd="10dp"
+                        />
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
@@ -74,92 +87,84 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="濮嬩簬浣曞洜锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.reason}"
+                            android:text="@{bean.cause}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鍙楁儬浜猴細"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.beneficiary}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="缁ф壙浜猴細"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.heir}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="瀹炵幇闅惧害锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.difficulty}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
 
@@ -168,69 +173,64 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鏄惁渚濇棫鏈夋晥锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.isEffective==1?`鏄痐:`鍚}"
+                            android:text="@{bean.isEffective}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="澶囨敞锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.remark}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
 
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:text="鐢靛瓙鏂囦欢锛�"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_12"
-                        android:textStyle="bold"
+                        android:textSize="12sp"
                         />
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_15"
+                        android:layout_marginBottom="15dp"
                         >
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_image"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            tools:listitem="@layout/item_image"
+                            tools:listitem="@layout/item_electronic_file"
                             tools:itemCount="3"
                             />
 
diff --git a/app/src/main/res/layout/item_image.xml b/app/src/main/res/layout/item_image.xml
index 8d7e93e..b5d7f38 100644
--- a/app/src/main/res/layout/item_image.xml
+++ b/app/src/main/res/layout/item_image.xml
@@ -10,8 +10,18 @@
 
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
-        android:layout_height="wrap_content">
-        <ImageView
+        android:layout_height="wrap_content"
+        >
+        <androidx.constraintlayout.utils.widget.ImageFilterView
+            android:layout_width="87dp"
+            android:layout_height="87dp"
+            android:layout_marginTop="7.5dp"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:round="10dp"
+            android:background="@color/white"
+            />
+        <androidx.constraintlayout.utils.widget.ImageFilterView
             android:id="@+id/iv_image"
             android:layout_width="87dp"
             android:layout_height="87dp"
@@ -19,12 +29,14 @@
             app:layout_constraintTop_toTopOf="parent"
             app:layout_constraintStart_toStartOf="parent"
             app:imageUrl="@{url}"
+            app:imageUri="@{url}"
+            app:round="10dp"
             />
         <ImageView
             android:id="@+id/iv_delete"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:background="@drawable/ic_image_delete"
+            android:background="@drawable/ic_image_select"
             app:layout_constraintTop_toTopOf="parent"
             app:layout_constraintStart_toEndOf="@id/iv_image"
             android:layout_marginStart="-7.5dp"
diff --git a/app/src/main/res/layout/item_income_and_expenses.xml b/app/src/main/res/layout/item_income_and_expenses.xml
index a2908dc..dc8ecf3 100644
--- a/app/src/main/res/layout/item_income_and_expenses.xml
+++ b/app/src/main/res/layout/item_income_and_expenses.xml
@@ -20,6 +20,7 @@
             android:layout_margin="@dimen/dp_2"
             app:cardCornerRadius="@dimen/dp_10"
             app:cardBackgroundColor="@color/color_card_pink"
+            tools:layout_height="wrap_content"
             >
             <LinearLayout
                 android:layout_width="match_parent"
@@ -29,54 +30,98 @@
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
+                    android:layout_height="40dp"
                     android:gravity="center_vertical">
-
-                    <TextView
-                        android:id="@+id/textView2"
-                        android:layout_width="wrap_content"
+                    <CheckBox
+                        android:id="@+id/checkbox"
+                        android:layout_width="18dp"
+                        android:layout_height="18dp"
+                        android:layout_marginStart="3dp"
+                        android:layout_centerVertical="true"
+                        android:button="@drawable/selector_checkbox"
+                        android:background="?selectableItemBackgroundBorderless"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView1"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginStart="24dp"
-                        android:text="@{bean.type==0?`鍩洪噾`:`鍙拌处`}"
+                        android:layout_marginStart="30dp"
+                        android:text="@{bean.type}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-
+                        android:textSize="16sp"
+                        android:gravity="start|center_vertical"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
-                        tools:text="鎴夸骇璇�" />
+                        app:layout_constraintEnd_toStartOf="@id/textView2"
+                        app:layout_constraintHorizontal_weight="1.5"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        app:layout_constraintHorizontal_chainStyle="spread_inside"
+                        tools:text="鍙拌处" />
 
-                    <TextView
-                        android:layout_width="wrap_content"
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView2"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_centerInParent="true"
                         android:gravity="center"
                         android:text="@{bean.price}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-
+                        android:textSize="16sp"
                         app:layout_constraintBottom_toBottomOf="parent"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintHorizontal_bias="0.5"
-                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toStartOf="@+id/tv_time"
+                        app:layout_constraintStart_toEndOf="@+id/textView1"
                         app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintHorizontal_weight="2"
+                        android:layout_marginHorizontal="20dp"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
                         tools:text="寮犱笁" />
 
-                    <TextView
+                    <androidx.appcompat.widget.AppCompatTextView
                         android:id="@+id/tv_time"
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:text="@{bean.usePeople}"
                         android:textColor="@color/black"
                         android:textSize="16sp"
-                        android:layout_marginEnd="20dp"
-
+                        android:layout_marginEnd="10dp"
+                        android:gravity="center_vertical|center"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintStart_toEndOf="@id/textView2"
+                        app:layout_constraintHorizontal_weight="2"
+                        android:maxLines="1"
+                        android:ellipsize="end"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        tools:text="2019-01-12"
+                        />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="2019-01-12" />
+                        android:layout_marginEnd="10dp"
+                        />
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
+
 
                 <LinearLayout
                     android:id="@+id/layout_content"
@@ -89,14 +134,14 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="搴忓彿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                         <TextView
@@ -104,7 +149,7 @@
                             android:layout_height="wrap_content"
                             android:text="@{String.valueOf(bean.id)}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                     </LinearLayout>
@@ -112,22 +157,22 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鏃堕棿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.createTime}"
+                            android:text="@{bean.happenTime}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                     </LinearLayout>
@@ -135,14 +180,14 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鐢ㄩ�旓細"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                         <TextView
@@ -150,7 +195,7 @@
                             android:layout_height="wrap_content"
                             android:text="@{bean.useFor}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                     </LinearLayout>
@@ -158,22 +203,22 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鐜伴噾/鑷姩鍒掓墸锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.kind==0?`鐜伴噾`:`鑷姩鍒掓墸`}"
+                            android:text="@{bean.kind}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                     </LinearLayout>
@@ -181,14 +226,14 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="浣欓锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                         <TextView
@@ -196,7 +241,7 @@
                             android:layout_height="wrap_content"
                             android:text="@{bean.balance}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                     </LinearLayout>
@@ -204,14 +249,14 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="澶囨敞锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                         <TextView
@@ -219,34 +264,85 @@
                             android:layout_height="wrap_content"
                             android:text="@{bean.remark}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
+                            android:textSize="12sp"
 
                             />
                     </LinearLayout>
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:text="鐢靛瓙鏂囦欢锛�"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_12"
+                        android:textSize="12sp"
 
                         />
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_15"
+                        android:layout_marginBottom="15dp"
                         >
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_image"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            tools:listitem="@layout/item_image"
+                            tools:listitem="@layout/item_electronic_file"
                             tools:itemCount="3"
                             />
 
                     </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center"
+                        android:layout_marginBottom="@dimen/dp_12"
+                        >
+                        <LinearLayout
+                            android:id="@+id/layout_modify"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            >
+                            <ImageView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/ic_modify"
+                                android:layout_gravity="center"
+                                />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="淇敼"
+                                android:textColor="@color/black"
+                                android:textSize="@dimen/sp_14"
+
+                                android:layout_marginStart="@dimen/dp_4"
+                                />
+                        </LinearLayout>
+                        <LinearLayout
+                            android:id="@+id/layout_delete"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_alignParentEnd="true"
+                            android:layout_marginStart="@dimen/dp_52"
+                            >
+                            <ImageView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/ic_delete"
+                                android:layout_gravity="center"
+                                />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鍒犻櫎"
+                                android:textColor="#FFE86F72"
+                                android:textSize="@dimen/sp_14"
+
+                                android:layout_marginStart="@dimen/dp_4"
+                                />
+                        </LinearLayout>
+                    </LinearLayout>
 
                 </LinearLayout>
             </LinearLayout>
diff --git a/app/src/main/res/layout/item_little_doctor.xml b/app/src/main/res/layout/item_little_doctor.xml
index 758bb1e..87ea079 100644
--- a/app/src/main/res/layout/item_little_doctor.xml
+++ b/app/src/main/res/layout/item_little_doctor.xml
@@ -20,6 +20,7 @@
             android:layout_margin="@dimen/dp_2"
             app:cardCornerRadius="@dimen/dp_10"
             app:cardBackgroundColor="@color/color_card_pink"
+            tools:layout_height="wrap_content"
             >
             <LinearLayout
                 android:layout_width="match_parent"
@@ -29,52 +30,95 @@
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
+                    android:layout_height="40dp"
                     android:gravity="center_vertical">
-
-                    <TextView
-                        android:id="@+id/textView2"
-                        android:layout_width="wrap_content"
+                    <CheckBox
+                        android:id="@+id/checkbox"
+                        android:layout_width="18dp"
+                        android:layout_height="18dp"
+                        android:layout_marginStart="3dp"
+                        android:layout_centerVertical="true"
+                        android:button="@drawable/selector_checkbox"
+                        android:background="?selectableItemBackgroundBorderless"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView1"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_marginStart="24dp"
                         android:text="@{bean.type}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
+                        android:gravity="start|center_vertical"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
-                        tools:text="鎴夸骇璇�" />
+                        app:layout_constraintEnd_toStartOf="@id/textView2"
+                        app:layout_constraintHorizontal_weight="1.5"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        app:layout_constraintHorizontal_chainStyle="spread_inside"
+                        tools:text="鐗欑柤" />
 
-                    <TextView
-                        android:layout_width="wrap_content"
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView2"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_centerInParent="true"
                         android:gravity="center"
                         android:text="@{bean.suitable}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
                         app:layout_constraintBottom_toBottomOf="parent"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintHorizontal_bias="0.45"
-                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintEnd_toStartOf="@+id/tv_time"
+                        app:layout_constraintStart_toEndOf="@+id/textView1"
                         app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintHorizontal_weight="2"
+                        android:layout_marginHorizontal="20dp"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
                         tools:text="寮犱笁" />
 
-                    <TextView
+                    <androidx.appcompat.widget.AppCompatTextView
                         android:id="@+id/tv_time"
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:text="@{bean.duration}"
+                        android:text="@{bean.duration == null ? `鈥斺�斺�擿 : bean.duration}"
                         android:textColor="@color/black"
                         android:textSize="16sp"
-                        android:layout_marginEnd="20dp"
-                        android:textStyle="bold"
+                        android:layout_marginEnd="10dp"
+                        android:gravity="center_vertical|center"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintStart_toEndOf="@id/textView2"
+                        app:layout_constraintHorizontal_weight="2"
+                        android:maxLines="1"
+                        android:ellipsize="end"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        tools:text="2019-01-12"
+                        />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="2019-01-12" />
+                        android:layout_marginEnd="10dp"
+                        />
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
@@ -89,53 +133,49 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="搴忓彿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{String.valueOf(bean.id)}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="绫诲瀷锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.type}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="vertical"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:layout_marginTop="5dp"
                         >
                         <TextView
@@ -143,8 +183,7 @@
                             android:layout_height="wrap_content"
                             android:text="涓尰澶勬柟锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_marginTop="3dp"
@@ -152,15 +191,14 @@
                             android:layout_height="wrap_content"
                             android:text="@{bean.cmedical}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="vertical"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:layout_marginTop="5dp"
                         >
                         <TextView
@@ -168,8 +206,7 @@
                             android:layout_height="wrap_content"
                             android:text="瑗垮尰澶勬柟锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_marginTop="3dp"
@@ -177,15 +214,14 @@
                             android:layout_height="wrap_content"
                             android:text="@{bean.wmedical}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:layout_marginTop="5dp"
                         >
                         <TextView
@@ -193,16 +229,14 @@
                             android:layout_height="wrap_content"
                             android:text="鍔熸晥锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.effect}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
 
@@ -210,49 +244,97 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="澶囨敞锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.remark}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:text="鐢靛瓙鏂囦欢锛�"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_12"
-                        android:textStyle="bold"
+                        android:textSize="12sp"
                         />
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_15"
+                        android:layout_marginBottom="15dp"
                         >
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_image"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            tools:listitem="@layout/item_image"
+                            tools:listitem="@layout/item_electronic_file"
                             tools:itemCount="3"
                             />
 
                     </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center"
+                        android:layout_marginBottom="@dimen/dp_12"
+                        >
+                        <LinearLayout
+                            android:id="@+id/layout_modify"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            >
+                            <ImageView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/ic_modify"
+                                android:layout_gravity="center"
+                                />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="淇敼"
+                                android:textColor="@color/black"
+                                android:textSize="@dimen/sp_14"
+
+                                android:layout_marginStart="@dimen/dp_4"
+                                />
+                        </LinearLayout>
+                        <LinearLayout
+                            android:id="@+id/layout_delete"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_alignParentEnd="true"
+                            android:layout_marginStart="@dimen/dp_52"
+                            >
+                            <ImageView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/ic_delete"
+                                android:layout_gravity="center"
+                                />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鍒犻櫎"
+                                android:textColor="#FFE86F72"
+                                android:textSize="@dimen/sp_14"
+
+                                android:layout_marginStart="@dimen/dp_4"
+                                />
+                        </LinearLayout>
+                    </LinearLayout>
 
                 </LinearLayout>
             </LinearLayout>
diff --git a/app/src/main/res/layout/item_memo.xml b/app/src/main/res/layout/item_memo.xml
new file mode 100644
index 0000000..7eacda8
--- /dev/null
+++ b/app/src/main/res/layout/item_memo.xml
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    >
+
+    <data>
+        <variable
+            name="bean"
+            type="com.application.zhangshi_app_android.bean.MemoBean"
+            />
+    </data>
+
+    <androidx.cardview.widget.CardView
+        android:id="@+id/cardView"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:cardBackgroundColor="@color/white"
+        app:cardCornerRadius="10dp"
+        app:cardElevation="3dp"
+        android:layout_margin="2dp"
+        tools:layout_height="wrap_content"
+        >
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:paddingHorizontal="10dp"
+            >
+            <LinearLayout
+                android:id="@+id/layout_title"
+                android:layout_width="match_parent"
+                android:layout_height="50dp"
+                android:gravity="center_vertical"
+                >
+                <LinearLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    >
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/tv_date"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textColor="#FF000000"
+                        android:textSize="20sp"
+                        android:text="@={bean.happenTime}"
+                        android:background="@null"
+                        tools:text="2022-01-01"
+                        android:textColorHint="#6b000000"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="20sp"
+                        app:autoSizeMinTextSize="16sp"
+                        />
+                    <View
+                        android:id="@+id/view_line"
+                        android:layout_width="match_parent"
+                        android:layout_height="1dp"
+                        android:background="#6B000000"
+                        />
+                </LinearLayout>
+                <View
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="10dp"
+                    />
+                <ImageView
+                    android:id="@+id/iv_delete"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:background="@drawable/ic_delete_tourism"
+                    android:layout_marginStart="10dp"
+                    android:visibility="gone"
+                    />
+                <ImageView
+                    android:id="@+id/iv_fold"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:background="@drawable/ic_fold"
+                    android:layout_marginStart="15dp"
+                    />
+            </LinearLayout>
+            <LinearLayout
+                android:id="@+id/layout_content"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:paddingBottom="15dp"
+                >
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="鍐呭"
+                    android:textColor="@color/black"
+                    android:textSize="12sp"
+                    android:alpha="0.54"
+                    android:layout_marginTop="10dp"
+                    />
+                <EditText
+                    android:id="@+id/et_content"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:text="@={bean.content}"
+                    android:textColor="#DE000000"
+                    android:textColorHint="#6b000000"
+                    android:textSize="16sp"
+                    android:backgroundTint="#6B000000"
+                    tools:text="琛ュ姙姝f枃琛ュ姙姝f枃琛ュ姙姝f枃琛ュ姙姝f枃琛ュ姙姝hˉ鍔炴鏂囪ˉ鍔炴鏂囪ˉ鍔炴鏂囪ˉ鍔炴鏂囪ˉ鍔炴琛ュ姙姝f枃琛ュ姙姝f枃琛ュ姙姝f枃琛ュ姙姝f枃琛ュ姙姝hˉ鍔炴鏂囪ˉ鍔炴鏂囪ˉ鍔炴鏂囪ˉ鍔炴鏂囪ˉ鍔炴"
+                    />
+            </LinearLayout>
+        </LinearLayout>
+
+
+    </androidx.cardview.widget.CardView>
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_old_spouse.xml b/app/src/main/res/layout/item_old_spouse.xml
new file mode 100644
index 0000000..2c4395a
--- /dev/null
+++ b/app/src/main/res/layout/item_old_spouse.xml
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <data>
+        <variable
+            name="bean"
+            type="com.application.zhangshi_app_android.bean.MarriageInfoBean.OldSpouseBean" />
+    </data>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        >
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            >
+            <LinearLayout
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:orientation="vertical"
+                >
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:maxLines="1"
+                    android:text="濮撳悕"
+                    android:textColor="@color/black"
+                    android:textSize="12sp"
+                    android:alpha="0.54"
+                    />
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:maxLines="1"
+                    android:text="@{bean.name}"
+                    android:textColor="#B3000000"
+                    android:textSize="16sp"
+                    android:layout_marginTop="5dp"
+                    />
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="#6B000000"
+                    android:layout_marginTop="8dp"
+                    />
+            </LinearLayout>
+            <LinearLayout
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:orientation="vertical"
+                android:layout_marginStart="40dp"
+                >
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:maxLines="1"
+                    android:text="濠氬Щ鐘跺喌"
+                    android:textColor="@color/black"
+                    android:textSize="12sp"
+                    android:alpha="0.54"
+                    />
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:maxLines="1"
+                    android:text="@{bean.marryStatus}"
+                    android:textColor="#B3000000"
+                    android:textSize="16sp"
+                    android:layout_marginTop="5dp"
+                    android:drawableStart="@drawable/ic_radio_button"
+                    android:drawablePadding="8dp"
+                    />
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="#6B000000"
+                    android:layout_marginTop="8dp"
+                    />
+            </LinearLayout>
+        </LinearLayout>
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="20dp"
+            >
+            <LinearLayout
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:orientation="vertical"
+                >
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:maxLines="1"
+                    android:text="鍑虹敓鏃ユ湡"
+                    android:textColor="@color/black"
+                    android:textSize="12sp"
+                    android:alpha="0.54"
+                    />
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:maxLines="1"
+                    android:text="@{bean.birthday}"
+                    android:textColor="#B3000000"
+                    android:textSize="16sp"
+                    android:layout_marginTop="5dp"
+                    />
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="#6B000000"
+                    android:layout_marginTop="8dp"
+                    />
+            </LinearLayout>
+            <LinearLayout
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:orientation="vertical"
+                android:layout_marginStart="40dp"
+                >
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:maxLines="1"
+                    android:text="鎴风睄鍦板潃"
+                    android:textColor="@color/black"
+                    android:textSize="12sp"
+                    android:alpha="0.54"
+                    />
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:maxLines="1"
+                    android:text="@{bean.address}"
+                    android:textColor="#B3000000"
+                    android:textSize="16sp"
+                    android:layout_marginTop="5dp"
+                    />
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="#6B000000"
+                    android:layout_marginTop="8dp"
+                    />
+            </LinearLayout>
+        </LinearLayout>
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="3dp"
+            android:background="@drawable/shape_ffebafb4_dash_line"
+            android:layout_marginVertical="18dp"
+            />
+
+    </LinearLayout>
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_personal_notepad.xml b/app/src/main/res/layout/item_personal_notepad.xml
index 9897fc8..cf53b03 100644
--- a/app/src/main/res/layout/item_personal_notepad.xml
+++ b/app/src/main/res/layout/item_personal_notepad.xml
@@ -30,37 +30,61 @@
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
-                    android:gravity="center_vertical">
+                    android:layout_height="40dp"
+                    android:gravity="center_vertical"
+                    >
+                    <CheckBox
+                        android:id="@+id/checkbox"
+                        android:layout_width="18dp"
+                        android:layout_height="18dp"
+                        android:layout_marginStart="3dp"
+                        android:layout_centerVertical="true"
+                        android:button="@drawable/selector_checkbox"
+                        android:background="?selectableItemBackgroundBorderless"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
 
                     <TextView
-                        android:id="@+id/textView2"
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginStart="25dp"
+                        android:layout_centerVertical="true"
+                        android:ellipsize="end"
+                        android:maxLines="1"
                         android:text="@{bean.title}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
+                        android:layout_marginStart="24dp"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
-                        tools:text="鎴夸骇璇�" />
-
-
+                        app:layout_constraintWidth_percent="0.5"
+                        tools:text="寮犳皬App绔嬮」" />
                     <TextView
-                        android:id="@+id/tv_time"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:text="@{bean.time}"
-                        android:textColor="@color/black"
                         android:textSize="16sp"
-                        android:layout_marginEnd="25dp"
-                        android:textStyle="bold"
+                        android:textColor="@color/black"
+                        android:text="@{bean.happenTime}"
+                        android:layout_alignParentEnd="true"
+                        android:layout_centerVertical="true"
+                        tools:text="2023-05-16"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        android:layout_marginEnd="10dp"
+                        />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="2019-01-12" />
+                        android:layout_marginEnd="10dp"
+                        />
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
@@ -75,118 +99,160 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="搴忓彿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{String.valueOf(bean.id)}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="浜虹墿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.person}"
+                            android:text="@{bean.people}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鍦扮偣锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.place}"
+                            android:text="@{bean.address}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="澶囨敞锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.remark}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:text="鐢靛瓙鏂囦欢锛�"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_12"
-                        android:textStyle="bold"
+                        android:textSize="12sp"
                         />
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_15"
+                        android:layout_marginBottom="15dp"
                         >
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_image"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            tools:listitem="@layout/item_image"
+                            tools:listitem="@layout/item_electronic_file"
                             tools:itemCount="3"
                             />
 
                     </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center"
+                        android:layout_marginBottom="@dimen/dp_12"
+                        >
+                        <LinearLayout
+                            android:id="@+id/layout_modify"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            >
+                            <ImageView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/ic_modify"
+                                android:layout_gravity="center"
+                                />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="淇敼"
+                                android:textColor="@color/black"
+                                android:textSize="@dimen/sp_14"
+
+                                android:layout_marginStart="@dimen/dp_4"
+                                />
+                        </LinearLayout>
+                        <LinearLayout
+                            android:id="@+id/layout_delete"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_alignParentEnd="true"
+                            android:layout_marginStart="@dimen/dp_52"
+                            >
+                            <ImageView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/ic_delete"
+                                android:layout_gravity="center"
+                                />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鍒犻櫎"
+                                android:textColor="#FFE86F72"
+                                android:textSize="@dimen/sp_14"
+
+                                android:layout_marginStart="@dimen/dp_4"
+                                />
+                        </LinearLayout>
+                    </LinearLayout>
 
                 </LinearLayout>
             </LinearLayout>
diff --git a/app/src/main/res/layout/item_pet.xml b/app/src/main/res/layout/item_pet.xml
new file mode 100644
index 0000000..f3848ab
--- /dev/null
+++ b/app/src/main/res/layout/item_pet.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <data>
+        <variable
+            name="bean"
+            type="com.application.zhangshi_app_android.bean.PetBean" />
+    </data>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        >
+        <androidx.cardview.widget.CardView
+            android:id="@+id/cardView"
+            android:layout_width="match_parent"
+            android:layout_height="40dp"
+            android:layout_margin="@dimen/dp_2"
+            app:cardCornerRadius="@dimen/dp_10"
+            tools:layout_height="wrap_content"
+            app:cardBackgroundColor="@color/color_card_pink"
+            >
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                >
+                <androidx.constraintlayout.widget.ConstraintLayout
+                    android:id="@+id/layout_title"
+                    android:layout_width="match_parent"
+                    android:layout_height="40dp"
+                    android:gravity="center_vertical">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView1"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginStart="30dp"
+                        android:text="@{bean.name}"
+                        android:textColor="@color/black"
+                        android:textSize="16sp"
+                        android:gravity="start|center_vertical"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintWidth_percent="0.4"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        app:layout_constraintHorizontal_chainStyle="spread_inside"
+                        tools:text="灏忛粍" />
+
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/tv_time"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@{bean.birth}"
+                        android:textColor="@color/black"
+                        android:textSize="16sp"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintWidth_percent="0.3"
+                        android:gravity="end"
+                        android:maxLines="1"
+                        android:layout_marginEnd="30dp"
+                        android:ellipsize="end"
+                        tools:text="2019-01-12" />
+
+
+                </androidx.constraintlayout.widget.ConstraintLayout>
+
+            </LinearLayout>
+
+        </androidx.cardview.widget.CardView>
+
+    </LinearLayout>
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_pet_image.xml b/app/src/main/res/layout/item_pet_image.xml
index ca4df99..dd45a52 100644
--- a/app/src/main/res/layout/item_pet_image.xml
+++ b/app/src/main/res/layout/item_pet_image.xml
@@ -12,17 +12,16 @@
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:paddingBottom="10dp"
         >
         <androidx.constraintlayout.utils.widget.ImageFilterView
             android:layout_width="0dp"
             android:layout_height="0dp"
             app:layout_constraintDimensionRatio="1:1"
-            app:layout_constraintWidth_percent="0.8"
+            app:layout_constraintWidth_percent="1"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent"
             app:round="10dp"
-            android:background="@drawable/img_lotus"
+            app:imageUrl="@{url}"
             />
 
     </androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/app/src/main/res/layout/item_pet_memo.xml b/app/src/main/res/layout/item_pet_memo.xml
index 5e277d5..5eafa66 100644
--- a/app/src/main/res/layout/item_pet_memo.xml
+++ b/app/src/main/res/layout/item_pet_memo.xml
@@ -30,38 +30,49 @@
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
-                    android:gravity="center_vertical">
+                    android:layout_height="40dp"
+                    android:gravity="center_vertical"
+                    >
 
                     <TextView
-                        android:id="@+id/textView2"
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginStart="45dp"
-                        android:text="@{bean.name}"
+                        android:layout_centerVertical="true"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        android:text="@{bean.title}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
+                        android:layout_marginStart="24dp"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
-                        tools:text="鎴夸骇璇�" />
-
-
-
+                        app:layout_constraintWidth_percent="0.5"
+                        tools:text="寮犳皬App绔嬮」" />
                     <TextView
-                        android:id="@+id/tv_time"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:text="@{bean.time}"
-                        android:textColor="@color/black"
                         android:textSize="16sp"
-                        android:layout_marginEnd="45dp"
-                        android:textStyle="bold"
+                        android:textColor="@color/black"
+                        android:text="@{bean.happenTime}"
+                        android:layout_alignParentEnd="true"
+                        android:layout_centerVertical="true"
+                        tools:text="2023-05-16"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        android:layout_marginEnd="10dp"
+                        />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="2019-01-12" />
+                        android:layout_marginEnd="10dp"
+                        />
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
@@ -76,23 +87,21 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鎻愰啋鏃堕棿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.reminderTime}"
+                            android:text="@{bean.remindTime}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
 
@@ -100,39 +109,36 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="澶囨敞锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.remark}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:text="鐢靛瓙鏂囦欢锛�"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_12"
-                        android:textStyle="bold"
+                        android:textSize="12sp"
                         />
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_15"
+                        android:layout_marginBottom="15dp"
                         >
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_image"
diff --git a/app/src/main/res/layout/item_privacy.xml b/app/src/main/res/layout/item_privacy.xml
index 30778e5..dcc41af 100644
--- a/app/src/main/res/layout/item_privacy.xml
+++ b/app/src/main/res/layout/item_privacy.xml
@@ -4,6 +4,7 @@
     xmlns:tools="http://schemas.android.com/tools">
 
     <data>
+        <import type="android.text.TextUtils" />
         <variable
             name="bean"
             type="com.application.zhangshi_app_android.bean.PrivacyBean" />
@@ -30,52 +31,84 @@
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
+                    android:layout_height="40dp"
                     android:gravity="center_vertical">
 
-                    <TextView
-                        android:id="@+id/textView2"
-                        android:layout_width="wrap_content"
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView1"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginStart="24dp"
+                        android:layout_marginStart="20dp"
                         android:text="@{bean.type}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
+                        android:gravity="start|center_vertical"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
-                        tools:text="鎴夸骇璇�" />
+                        app:layout_constraintEnd_toStartOf="@id/textView2"
+                        app:layout_constraintHorizontal_weight="1.5"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        app:layout_constraintHorizontal_chainStyle="spread_inside"
+                        tools:text="閭エ" />
 
-                    <TextView
-                        android:layout_width="wrap_content"
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView2"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_centerInParent="true"
                         android:gravity="center"
-                        android:text="@{bean.account}"
-                        android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
-                        app:layout_constraintBottom_toBottomOf="parent"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintHorizontal_bias="0.45"
-                        app:layout_constraintStart_toStartOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="寮犱笁" />
-
-                    <TextView
-                        android:id="@+id/tv_time"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                            android:text="@{bean.time}"
+                        android:text="@{bean.accNo}"
                         android:textColor="@color/black"
                         android:textSize="16sp"
-                        android:layout_marginEnd="20dp"
-                        android:textStyle="bold"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toStartOf="@+id/tv_time"
+                        app:layout_constraintStart_toEndOf="@+id/textView1"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintHorizontal_weight="2"
+                        android:layout_marginHorizontal="20dp"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        tools:text="寮犱笁" />
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/tv_time"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:text="@{bean.happenTime}"
+                        android:textColor="@color/black"
+                        android:textSize="16sp"
+                        android:layout_marginEnd="10dp"
+                        android:gravity="center_vertical|center"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintStart_toEndOf="@id/textView2"
+                        app:layout_constraintHorizontal_weight="2"
+                        android:maxLines="1"
+                        android:ellipsize="end"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        tools:text="2019-01-12"
+                        />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="2019-01-12" />
+                        android:layout_marginEnd="10dp"
+                        />
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
@@ -90,206 +123,189 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="璐﹀彿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.account}"
+                            android:text="@{bean.accNo}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="瀵嗙爜锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.password}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鏈夋晥鏃堕棿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.effectiveTime}"
+                            android:text="@{bean.validityDate}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鏄惁寮�鍚寚绾癸細"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.isFingerprint==1?`鏄痐:`鍚}"
+                            android:text="@{bean.isFinger}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鏄惁寮�鍚汉鑴歌瘑鍒細"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.isFace==1?`鏄痐:`鍚}"
+                            android:text="@{bean.isFace}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="绉佹湁/鍏湁锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.isPublic==1?`鍏湁`:`绉佹湁`}"
+                            android:text="@{bean.isPrivate}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="瀛樻斁浣嶇疆锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.location}"
+                            android:text="@{TextUtils.isEmpty(bean.location) ? `鈥斺�擿 : bean.location}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="澶囨敞锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.remark}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:text="鐢靛瓙鏂囦欢锛�"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_12"
-                        android:textStyle="bold"
+                        android:textSize="12sp"
                         />
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_15"
+                        android:layout_marginBottom="15dp"
                         >
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_image"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            tools:listitem="@layout/item_image"
+                            tools:listitem="@layout/item_electronic_file"
                             tools:itemCount="3"
                             />
 
diff --git a/app/src/main/res/layout/item_property.xml b/app/src/main/res/layout/item_property.xml
index c792099..5bcb8b8 100644
--- a/app/src/main/res/layout/item_property.xml
+++ b/app/src/main/res/layout/item_property.xml
@@ -19,6 +19,7 @@
             android:layout_height="40dp"
             android:layout_margin="@dimen/dp_2"
             app:cardCornerRadius="@dimen/dp_10"
+            tools:layout_height="wrap_content"
             app:cardBackgroundColor="@color/color_card_pink"
             >
             <LinearLayout
@@ -29,52 +30,77 @@
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
+                    android:layout_height="40dp"
                     android:gravity="center_vertical">
 
-                    <TextView
-                        android:id="@+id/textView2"
-                        android:layout_width="wrap_content"
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView1"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginStart="24dp"
-                        android:text="@{bean.type}"
+                        android:layout_marginStart="20dp"
+                        android:text="@{bean.incomeName}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
+                        android:gravity="start|center_vertical"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
-                        tools:text="鎴夸骇璇�" />
+                        app:layout_constraintEnd_toStartOf="@id/textView2"
+                        app:layout_constraintWidth_percent="0.2"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        app:autoSizeTextType="uniform"
+                        app:autoSizeMaxTextSize="16sp"
+                        app:autoSizeMinTextSize="12sp"
+                        app:layout_constraintHorizontal_chainStyle="spread_inside"
+                        tools:text="涓夋湀宸ヨ祫" />
 
-                    <TextView
-                        android:layout_width="wrap_content"
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/textView2"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_centerInParent="true"
+                        android:ellipsize="end"
                         android:gravity="center"
-                        android:text="@{bean.propertyRight}"
-                        android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
-                        app:layout_constraintBottom_toBottomOf="parent"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintHorizontal_bias="0.45"
-                        app:layout_constraintStart_toStartOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="寮犱笁" />
-
-                    <TextView
-                        android:id="@+id/tv_time"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
+                        android:maxLines="1"
                         android:text="@{bean.price}"
                         android:textColor="@color/black"
                         android:textSize="16sp"
-                        android:layout_marginEnd="20dp"
-                        android:textStyle="bold"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toStartOf="@+id/tv_time"
+                        app:layout_constraintStart_toEndOf="@+id/textView1"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintVertical_bias="0.529"
+                        app:layout_constraintWidth_percent="0.25"
+                        tools:text="寮犱笁" />
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/tv_time"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:text="@{bean.happenTime}"
+                        android:textColor="@color/black"
+                        android:textSize="16sp"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintStart_toEndOf="@id/textView2"
+                        app:layout_constraintWidth_percent="0.3"
+                        android:gravity="end"
+                        android:maxLines="1"
+                        android:layout_marginEnd="10dp"
+                        android:ellipsize="end"
+                        tools:text="2019-01-12" />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="2019-01-12" />
+                        android:layout_marginEnd="10dp"
+                        />
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
@@ -89,92 +115,63 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="鏃ユ湡锛�"
+                            android:text="璐骇绫诲埆锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.createTime}"
+                            android:text="@{bean.type}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
-                        >
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="鏀舵敮鍚嶇О锛�"
-                            android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
-                            />
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="@{bean.name}"
-                            android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
-                            />
-                    </LinearLayout>
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鏈熼檺锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.term}"
+                            android:text="@{bean.timeLimit}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鍙樻洿鎴栨敞閿�锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.status}"
+                            android:text="@{bean.isChange}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
 
@@ -183,92 +180,85 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="瀛樻斁浣嶇疆锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.location}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鏄惁娉ㄩ攢锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.status}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="澶囨敞锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.remark}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
 
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:text="鐢靛瓙鏂囦欢锛�"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_12"
-                        android:textStyle="bold"
+                        android:textSize="12sp"
                         />
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_15"
+                        android:layout_marginBottom="15dp"
                         >
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_image"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            tools:listitem="@layout/item_image"
+                            tools:listitem="@layout/item_electronic_file"
                             tools:itemCount="3"
                             />
 
diff --git a/app/src/main/res/layout/item_tourism.xml b/app/src/main/res/layout/item_tourism.xml
index 4c5b2b7..f8feb46 100644
--- a/app/src/main/res/layout/item_tourism.xml
+++ b/app/src/main/res/layout/item_tourism.xml
@@ -30,38 +30,61 @@
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
-                    android:gravity="center_vertical">
+                    android:layout_height="40dp"
+                    android:gravity="center_vertical"
+                    >
+                    <CheckBox
+                        android:id="@+id/checkbox"
+                        android:layout_width="18dp"
+                        android:layout_height="18dp"
+                        android:layout_marginStart="3dp"
+                        android:layout_centerVertical="true"
+                        android:button="@drawable/selector_checkbox"
+                        android:background="?selectableItemBackgroundBorderless"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
 
                     <TextView
-                        android:id="@+id/textView2"
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginStart="25dp"
+                        android:layout_centerVertical="true"
+                        android:ellipsize="end"
+                        android:maxLines="1"
                         android:text="@{bean.title}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
+                        android:layout_marginStart="24dp"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
-                        tools:text="鎴夸骇璇�" />
-
-
-
+                        app:layout_constraintWidth_percent="0.5"
+                        tools:text="寮犳皬App绔嬮」" />
                     <TextView
-                        android:id="@+id/tv_time"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:text="@{bean.startTime}"
-                        android:textColor="@color/black"
                         android:textSize="16sp"
-                        android:layout_marginEnd="25dp"
-                        android:textStyle="bold"
+                        android:textColor="@color/black"
+                        android:text="@{bean.startTime}"
+                        android:layout_alignParentEnd="true"
+                        android:layout_centerVertical="true"
+                        tools:text="2023-05-16"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        android:layout_marginEnd="10dp"
+                        />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="2019-01-12" />
+                        android:layout_marginEnd="10dp"
+                        />
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
@@ -76,98 +99,90 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="寮�濮嬫椂闂达細"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.startTime}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="缁撴潫鏃堕棿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.endTime}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鎬诲ぉ鏁帮細"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.totalDay}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鎬婚噾棰濓細"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.totalMoney}"
+                            android:text="@{bean.totalCost}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <androidx.constraintlayout.widget.ConstraintLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <LinearLayout
                             android:id="@+id/layout_1"
@@ -184,16 +199,16 @@
                                 android:layout_height="wrap_content"
                                 android:text="椁愯垂锛�"
                                 android:textColor="@color/black"
-                                android:textSize="@dimen/sp_12"
-                                android:textStyle="bold" />
+                                android:textSize="12sp"
+                                />
 
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="@{bean.mealMoney}"
+                                android:text="@{bean.eat}"
                                 android:textColor="@color/black"
-                                android:textSize="@dimen/sp_12"
-                                android:textStyle="bold" />
+                                android:textSize="12sp"
+                                />
                         </LinearLayout>
                         <LinearLayout
                             android:id="@+id/layout_2"
@@ -209,16 +224,16 @@
                                 android:layout_height="wrap_content"
                                 android:text="浣忓锛�"
                                 android:textColor="@color/black"
-                                android:textSize="@dimen/sp_12"
-                                android:textStyle="bold" />
+                                android:textSize="12sp"
+                                />
 
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="@{bean.hotelMoney}"
+                                android:text="@{bean.stay}"
                                 android:textColor="@color/black"
-                                android:textSize="@dimen/sp_12"
-                                android:textStyle="bold" />
+                                android:textSize="12sp"
+                                />
                         </LinearLayout>
                         <LinearLayout
                             android:id="@+id/layout_3"
@@ -234,16 +249,16 @@
                                 android:layout_height="wrap_content"
                                 android:text="浜ら�氾細"
                                 android:textColor="@color/black"
-                                android:textSize="@dimen/sp_12"
-                                android:textStyle="bold" />
+                                android:textSize="12sp"
+                                />
 
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="@{bean.trafficMoney}"
+                                android:text="@{bean.traffic}"
                                 android:textColor="@color/black"
-                                android:textSize="@dimen/sp_12"
-                                android:textStyle="bold" />
+                                android:textSize="12sp"
+                                />
                         </LinearLayout>
                         <LinearLayout
                             android:id="@+id/layout_4"
@@ -259,16 +274,16 @@
                                 android:layout_height="wrap_content"
                                 android:text="闂ㄧエ锛�"
                                 android:textColor="@color/black"
-                                android:textSize="@dimen/sp_12"
-                                android:textStyle="bold" />
+                                android:textSize="12sp"
+                                />
 
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="@{bean.ticketMoney}"
+                                android:text="@{bean.entrance}"
                                 android:textColor="@color/black"
-                                android:textSize="@dimen/sp_12"
-                                android:textStyle="bold" />
+                                android:textSize="12sp"
+                                />
                         </LinearLayout>
                         <LinearLayout
                             android:id="@+id/layout_5"
@@ -283,16 +298,16 @@
                                 android:layout_height="wrap_content"
                                 android:text="璐墿锛�"
                                 android:textColor="@color/black"
-                                android:textSize="@dimen/sp_12"
-                                android:textStyle="bold" />
+                                android:textSize="12sp"
+                                />
 
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="@{bean.shoppingMoney}"
+                                android:text="@{bean.shopping}"
                                 android:textColor="@color/black"
-                                android:textSize="@dimen/sp_12"
-                                android:textStyle="bold" />
+                                android:textSize="12sp"
+                                />
                         </LinearLayout>
                     </androidx.constraintlayout.widget.ConstraintLayout>
                     <LinearLayout
diff --git a/app/src/main/res/layout/item_tourism_experience.xml b/app/src/main/res/layout/item_tourism_experience.xml
index adeadf5..7172ce7 100644
--- a/app/src/main/res/layout/item_tourism_experience.xml
+++ b/app/src/main/res/layout/item_tourism_experience.xml
@@ -30,38 +30,61 @@
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/layout_title"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/dp_40"
-                    android:gravity="center_vertical">
+                    android:layout_height="40dp"
+                    android:gravity="center_vertical"
+                    >
+                    <CheckBox
+                        android:id="@+id/checkbox"
+                        android:layout_width="18dp"
+                        android:layout_height="18dp"
+                        android:layout_marginStart="3dp"
+                        android:layout_centerVertical="true"
+                        android:button="@drawable/selector_checkbox"
+                        android:background="?selectableItemBackgroundBorderless"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        />
 
                     <TextView
-                        android:id="@+id/textView2"
-                        android:layout_width="wrap_content"
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginStart="25dp"
+                        android:layout_centerVertical="true"
+                        android:ellipsize="end"
+                        android:maxLines="1"
                         android:text="@{bean.title}"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_16"
-                        android:textStyle="bold"
+                        android:textSize="16sp"
+                        android:layout_marginStart="30dp"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
-                        tools:text="娓镐簯鍗�" />
-
-
-
+                        app:layout_constraintWidth_percent="0.5"
+                        tools:text="寮犳皬App绔嬮」" />
                     <TextView
-                        android:id="@+id/tv_time"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:text="@{bean.time}"
-                        android:textColor="@color/black"
                         android:textSize="16sp"
-                        android:layout_marginEnd="25dp"
-                        android:textStyle="bold"
+                        android:textColor="@color/black"
+                        android:text="@{bean.happenTime}"
+                        android:layout_alignParentEnd="true"
+                        android:layout_centerVertical="true"
+                        tools:text="2023-05-16"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintEnd_toStartOf="@id/iv_fold"
+                        android:layout_marginEnd="10dp"
+                        />
+                    <ImageView
+                        android:id="@+id/iv_fold"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_fold"
+                        app:layout_constraintTop_toTopOf="parent"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        tools:text="2019-01-12" />
+                        android:layout_marginEnd="10dp"
+                        />
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
@@ -70,98 +93,90 @@
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:orientation="vertical"
-                    android:paddingHorizontal="35dp"
+                    android:paddingHorizontal="40dp"
                     >
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鍦扮偣锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.address}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="浜虹墿锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.person}"
+                            android:text="@{bean.people}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鏃呮湡锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.travelTime}"
+                            android:text="@{bean.travelPeriod}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鎸佽瘉鏃呮父锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.certificate}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
 
@@ -170,96 +185,140 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="璐圭敤锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.cost}"
+                            android:text="@{bean.totalPrice}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="鍏垂鎴栬嚜璐癸細"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.free==1?`鍏垂`:`鑷垂`}"
+                            android:text="@{bean.self==0?`鍏垂`:`鑷垂`}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         >
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="澶囨敞锛�"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:text="@{bean.remark}"
                             android:textColor="@color/black"
-                            android:textSize="@dimen/sp_12"
-                            android:textStyle="bold"
+                            android:textSize="12sp"
                             />
                     </LinearLayout>
 
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginBottom="@dimen/dp_6"
+                        android:layout_marginBottom="6dp"
                         android:text="鐢靛瓙鏂囦欢锛�"
                         android:textColor="@color/black"
-                        android:textSize="@dimen/sp_12"
-                        android:textStyle="bold"
+                        android:textSize="12sp"
                         />
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:orientation="horizontal"
-                        android:layout_marginBottom="@dimen/dp_15"
+                        android:layout_marginBottom="15dp"
                         >
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_image"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            tools:listitem="@layout/item_image"
-                            tools:itemCount="3"
+                            tools:listitem="@layout/item_electronic_file"
+                            tools:itemCount="1"
                             />
 
                     </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center"
+                        android:layout_marginBottom="@dimen/dp_12"
+                        >
+                        <LinearLayout
+                            android:id="@+id/layout_modify"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            >
+                            <ImageView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/ic_modify"
+                                android:layout_gravity="center"
+                                />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="淇敼"
+                                android:textColor="@color/black"
+                                android:textSize="@dimen/sp_14"
+
+                                android:layout_marginStart="@dimen/dp_4"
+                                />
+                        </LinearLayout>
+                        <LinearLayout
+                            android:id="@+id/layout_delete"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_alignParentEnd="true"
+                            android:layout_marginStart="@dimen/dp_52"
+                            >
+                            <ImageView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/ic_delete"
+                                android:layout_gravity="center"
+                                />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鍒犻櫎"
+                                android:textColor="#FFE86F72"
+                                android:textSize="@dimen/sp_14"
+
+                                android:layout_marginStart="@dimen/dp_4"
+                                />
+                        </LinearLayout>
+                    </LinearLayout>
 
                 </LinearLayout>
             </LinearLayout>
diff --git a/app/src/main/res/layout/pop_annual_health_status.xml b/app/src/main/res/layout/pop_annual_health_status.xml
index 6e41204..ffffc8d 100644
--- a/app/src/main/res/layout/pop_annual_health_status.xml
+++ b/app/src/main/res/layout/pop_annual_health_status.xml
@@ -14,7 +14,23 @@
         android:orientation="vertical"
         android:gravity="center"
         >
-        <TextView
+        <androidx.appcompat.widget.AppCompatTextView
+            android:id="@+id/tv_edit"
+            android:layout_width="wrap_content"
+            android:layout_height="30dp"
+            android:gravity="center"
+            android:text="缂栬緫"
+            android:textColor="#FF333333"
+            android:textSize="12sp"
+            app:drawableStartCompat="@drawable/ic_modify"
+            android:drawablePadding="5dp"
+            />
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="0.3dp"
+            android:background="#FF939393"
+            />
+        <androidx.appcompat.widget.AppCompatTextView
             android:id="@+id/tv_annual_health_status"
             android:layout_width="wrap_content"
             android:layout_height="30dp"
@@ -22,7 +38,6 @@
             android:text="骞村害鍋ュ悍鎯呭喌"
             android:textColor="#FF333333"
             android:textSize="12sp"
-            android:layout_marginHorizontal="10dp"
             />
     </LinearLayout>
 
diff --git a/app/src/main/res/layout/pop_basic_information.xml b/app/src/main/res/layout/pop_basic_information.xml
index 3cc6062..a4289b2 100644
--- a/app/src/main/res/layout/pop_basic_information.xml
+++ b/app/src/main/res/layout/pop_basic_information.xml
@@ -1,1546 +1,1571 @@
 <?xml version="1.0" encoding="utf-8"?>
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:background="@color/transparent"
-    xmlns:app="http://schemas.android.com/apk/res-auto">
-    <LinearLayout
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <data>
+        <variable
+            name="spouseBean"
+            type="com.application.zhangshi_app_android.bean.HomeRootBean" />
+        <variable
+            name="selfBean"
+            type="com.application.zhangshi_app_android.bean.HomeRootBean" />
+    </data>
+
+    <ScrollView
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:orientation="vertical"
         android:background="@color/transparent"
         >
-        <androidx.cardview.widget.CardView
+
+        <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            app:cardCornerRadius="6dp"
-            app:cardBackgroundColor="#F6FFFFFF"
-            app:cardElevation="10dp"
-            android:layout_marginHorizontal="10dp"
-            android:layout_marginVertical="15dp"
-            >
-            <androidx.constraintlayout.widget.ConstraintLayout
+            android:orientation="vertical"
+            android:background="@color/transparent">
+
+            <androidx.cardview.widget.CardView
                 android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:layout_marginEnd="7dp"
-                android:layout_marginStart="10dp"
-                android:layout_marginVertical="24dp"
-                >
+                android:layout_height="wrap_content"
+                app:cardCornerRadius="6dp"
+                app:cardBackgroundColor="#F6FFFFFF"
+                app:cardElevation="10dp"
+                android:layout_marginHorizontal="10dp"
+                android:layout_marginVertical="15dp">
 
-                <androidx.constraintlayout.utils.widget.ImageFilterView
-                    android:id="@+id/iv_photo"
-                    android:layout_width="105dp"
-                    android:layout_height="105dp"
-                    android:background="@color/teal_200"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toTopOf="parent"
-                    app:round="10dp" />
-
-                <TextView
-                    android:id="@+id/tv_basic_personal_information"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
+                <androidx.constraintlayout.widget.ConstraintLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_marginEnd="7dp"
                     android:layout_marginStart="10dp"
-                    android:text="涓汉鍩烘湰淇℃伅"
-                    android:textColor="#99000000"
-                    android:textSize="10sp"
-                    app:layout_constraintStart_toEndOf="@+id/iv_photo"
-                    app:layout_constraintTop_toTopOf="parent"
-                    app:layout_constraintBottom_toTopOf="@id/layout_personal_1"
-                    app:layout_constraintVertical_chainStyle="spread_inside"
-                    />
+                    android:layout_marginVertical="24dp">
 
-                <LinearLayout
-                    android:id="@+id/layout_personal_1"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    app:layout_constraintHorizontal_chainStyle="spread_inside"
-                    app:layout_constraintBottom_toTopOf="@id/layout_personal_2"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="@+id/tv_basic_personal_information"
-                    app:layout_constraintTop_toBottomOf="@id/tv_basic_personal_information">
-
-                    <LinearLayout
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_photo"
                         android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        >
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_fffad1e0_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="濮撳悕"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
+                        android:layout_height="0dp"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintWidth_percent="0.3"
+                        android:background="@color/teal_200"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="@id/layout_personal_3"
+                        app:round="10dp"
+                        app:imageUrl="@{selfBean.img}"
+                        />
 
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="濮撳悕"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp"
-                                android:layout_marginStart="12dp"
-                                />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFFAD1E0"
-                                />
-                        </FrameLayout>
-                    </LinearLayout>
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:layout_marginStart="10dp"
-                        >
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_fffad1e0_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="鎬у埆"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="濂�"
-                                android:textColor="#FF000000"
-                                android:layout_marginStart="12dp"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFFAD1E0"
-                                />
-                        </FrameLayout>
-
-                    </LinearLayout>
-
-                </LinearLayout>
-
-                <LinearLayout
-                    android:id="@+id/layout_personal_2"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    app:layout_constraintStart_toStartOf="@+id/tv_basic_personal_information"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/layout_personal_1"
-                    app:layout_constraintBottom_toTopOf="@id/layout_personal_3"
-                    >
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        >
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_fffad1e0_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="韬唤"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="绗竴浠�"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp"
-                                android:layout_marginStart="12dp"
-                                />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFFAD1E0"
-                                />
-                        </FrameLayout>
-                    </LinearLayout>
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:layout_marginStart="10dp"
-                        >
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_fffad1e0_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="骞撮緞"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="18"
-                                android:textColor="#FF000000"
-                                android:layout_marginStart="12dp"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFFAD1E0"
-                                />
-                        </FrameLayout>
-
-                    </LinearLayout>
-                </LinearLayout>
-
-                <LinearLayout
-                    android:id="@+id/layout_personal_3"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    app:layout_constraintBottom_toBottomOf="@+id/iv_photo"
-                    app:layout_constraintStart_toStartOf="@+id/tv_basic_personal_information"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/layout_personal_2">
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        >
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_fffad1e0_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="鏇剧敤鍚�"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="寮犲洓"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp"
-                                android:layout_marginStart="12dp"
-                                />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFFAD1E0"
-                                />
-                        </FrameLayout>
-                    </LinearLayout>
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:layout_marginStart="10dp"
-                        >
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_fffad1e0_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="姘戞棌"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="姹夋棌"
-                                android:textColor="#FF000000"
-                                android:layout_marginStart="12dp"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFFAD1E0"
-                                />
-                        </FrameLayout>
-
-                    </LinearLayout>
-                </LinearLayout>
-
-                <LinearLayout
-                    android:id="@+id/layout_personal_4"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="24dp"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/iv_photo">
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        >
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_fffad1e0_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="濠氬Щ鐘跺喌"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="match_parent"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="6dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="宸插"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFFAD1E0" />
-                        </FrameLayout>
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:layout_marginStart="10dp">
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_fffad1e0_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="閰嶅伓"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="12dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="寮犲洓"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFFAD1E0" />
-                        </FrameLayout>
-
-                    </LinearLayout>
-                </LinearLayout>
-
-                <LinearLayout
-                    android:id="@+id/layout_personal_5"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="16dp"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/layout_personal_4">
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        >
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_fffad1e0_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="鎴风睄鍦板潃"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="match_parent"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="6dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="骞夸笢鐪佸箍宸炲競"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFFAD1E0" />
-                        </FrameLayout>
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:layout_marginStart="10dp">
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_fffad1e0_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="鑱旂郴鏂瑰紡"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="5dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="12345678901"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFFAD1E0" />
-                        </FrameLayout>
-
-                    </LinearLayout>
-                </LinearLayout>
-
-                <LinearLayout
-                    android:id="@+id/layout_personal_6"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="16dp"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/layout_personal_5">
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        >
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_fffad1e0_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="甯镐綇鍦板潃"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="6dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="骞夸笢鐪佸箍宸炲競"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFFAD1E0" />
-                        </FrameLayout>
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:layout_marginStart="10dp">
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_fffad1e0_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="寰俊鍙�"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="12dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="12345678901"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFFAD1E0" />
-                        </FrameLayout>
-
-                    </LinearLayout>
-                </LinearLayout>
-
-                <LinearLayout
-                    android:id="@+id/layout_personal_7"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="16dp"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/layout_personal_6">
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        >
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_fffad1e0_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="鏀挎不闈㈣矊"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="6dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="鍏变骇鍏氬憳"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFFAD1E0" />
-                        </FrameLayout>
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:layout_marginStart="10dp">
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_fffad1e0_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="QQ鍙�"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="12dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="12345678901"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFFAD1E0" />
-                        </FrameLayout>
-
-                    </LinearLayout>
-                </LinearLayout>
-
-                <LinearLayout
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="16dp"
-
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/layout_personal_7">
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        >
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_fffad1e0_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="鎵�鍦ㄥ崟浣�"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="6dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="寮犳皬鍏徃"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFFAD1E0"
-                                />
-                        </FrameLayout>
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:layout_marginStart="10dp">
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_fffad1e0_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="鑱屽姟"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="12dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="缁忕悊"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFFAD1E0"
-                                />
-                        </FrameLayout>
-
-                    </LinearLayout>
-                </LinearLayout>
-
-            </androidx.constraintlayout.widget.ConstraintLayout>
-
-        </androidx.cardview.widget.CardView>
-        <androidx.cardview.widget.CardView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            app:cardCornerRadius="6dp"
-            app:cardBackgroundColor="#F6FFFFFF"
-            app:cardElevation="10dp"
-            android:layout_marginHorizontal="10dp"
-            android:layout_marginVertical="15dp"
-            >
-            <androidx.constraintlayout.widget.ConstraintLayout
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:layout_marginStart="10dp"
-                android:layout_marginEnd="7dp"
-                android:layout_marginVertical="24dp"
-                android:visibility="invisible"
-                >
-
-                <androidx.constraintlayout.utils.widget.ImageFilterView
-                    android:id="@+id/iv_spouse_photo"
-                    android:layout_width="105dp"
-                    android:layout_height="105dp"
-                    android:background="@color/teal_200"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintTop_toTopOf="parent"
-                    android:layout_marginStart="10dp"
-                    app:round="10dp" />
-
-                <TextView
-                    android:id="@+id/tv_spouse_basic_information"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="閰嶅伓鍩烘湰淇℃伅"
-                    android:textColor="#99000000"
-                    android:textSize="10sp"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toTopOf="parent"
-                    app:layout_constraintBottom_toTopOf="@id/layout_spouse_1"
-                    app:layout_constraintVertical_chainStyle="spread_inside"
-                    />
-
-                <LinearLayout
-                    android:id="@+id/layout_spouse_1"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    app:layout_constraintHorizontal_chainStyle="spread_inside"
-                    app:layout_constraintBottom_toTopOf="@id/layout_spouse_2"
-                    app:layout_constraintEnd_toStartOf="@id/iv_spouse_photo"
-                    app:layout_constraintStart_toStartOf="@+id/tv_spouse_basic_information"
-                    app:layout_constraintTop_toBottomOf="@id/tv_spouse_basic_information"
-                    >
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        >
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="濮撳悕"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="濮撳悕"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp"
-                                android:layout_marginStart="12dp"
-                                />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFD8E6F5"
-                                />
-                        </FrameLayout>
-                    </LinearLayout>
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:layout_marginStart="10dp"
-                        >
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="鎬у埆"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="濂�"
-                                android:textColor="#FF000000"
-                                android:layout_marginStart="12dp"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFD8E6F5"
-                                />
-                        </FrameLayout>
-
-                    </LinearLayout>
-
-                </LinearLayout>
-
-                <LinearLayout
-                    android:id="@+id/layout_spouse_2"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    app:layout_constraintStart_toStartOf="@+id/tv_spouse_basic_information"
-                    app:layout_constraintEnd_toStartOf="@id/iv_spouse_photo"
-                    app:layout_constraintTop_toBottomOf="@+id/layout_spouse_1"
-                    app:layout_constraintBottom_toTopOf="@id/layout_spouse_3"
-                    >
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        >
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="韬唤"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="绗竴浠�"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp"
-                                android:layout_marginStart="12dp"
-                                />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFD8E6F5"
-                                />
-                        </FrameLayout>
-                    </LinearLayout>
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:layout_marginStart="10dp"
-                        >
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="骞撮緞"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="18"
-                                android:textColor="#FF000000"
-                                android:layout_marginStart="12dp"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFD8E6F5"
-                                />
-                        </FrameLayout>
-
-                    </LinearLayout>
-                </LinearLayout>
-
-                <LinearLayout
-                    android:id="@+id/layout_spouse_3"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    app:layout_constraintBottom_toBottomOf="@id/iv_spouse_photo"
-                    app:layout_constraintStart_toStartOf="@id/tv_spouse_basic_information"
-                    app:layout_constraintEnd_toStartOf="@id/iv_spouse_photo"
-                    app:layout_constraintTop_toBottomOf="@id/layout_spouse_2">
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        >
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="鏇剧敤鍚�"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="寮犲洓"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp"
-                                android:layout_marginStart="12dp"
-                                />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFD8E6F5"
-                                />
-                        </FrameLayout>
-                    </LinearLayout>
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:layout_marginStart="10dp"
-                        >
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="姘戞棌"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="姹夋棌"
-                                android:textColor="#FF000000"
-                                android:layout_marginStart="12dp"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFD8E6F5"
-                                />
-                        </FrameLayout>
-
-                    </LinearLayout>
-                </LinearLayout>
-
-
-                <LinearLayout
-                    android:id="@+id/layout_spouse_4"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="24dp"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/iv_spouse_photo">
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        >
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="濠氬Щ鐘跺喌"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="6dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="宸插"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFD8E6F5" />
-                        </FrameLayout>
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:layout_marginStart="10dp">
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="閰嶅伓"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="12dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="寮犲洓"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFD8E6F5" />
-                        </FrameLayout>
-
-                    </LinearLayout>
-                </LinearLayout>
-
-                <LinearLayout
-                    android:id="@+id/layout_spouse_5"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="16dp"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/layout_spouse_4">
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        >
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="鎴风睄鍦板潃"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="6dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="骞夸笢鐪佸箍宸炲競"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFD8E6F5" />
-                        </FrameLayout>
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:layout_marginStart="10dp">
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="鑱旂郴鏂瑰紡"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="5dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="12345678901"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFD8E6F5" />
-                        </FrameLayout>
-
-                    </LinearLayout>
-                </LinearLayout>
-
-                <LinearLayout
-                    android:id="@+id/layout_spouse_6"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="16dp"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/layout_spouse_5">
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        >
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="甯镐綇鍦板潃"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="6dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="骞夸笢鐪佸箍宸炲競"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFD8E6F5" />
-                        </FrameLayout>
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:layout_marginStart="10dp">
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="寰俊鍙�"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="12dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="12345678901"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFD8E6F5" />
-                        </FrameLayout>
-
-                    </LinearLayout>
-                </LinearLayout>
-
-                <LinearLayout
-                    android:id="@+id/layout_spouse_7"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="16dp"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/layout_spouse_6">
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        >
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="鏀挎不闈㈣矊"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="6dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="鍏变骇鍏氬憳"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFD8E6F5" />
-                        </FrameLayout>
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:layout_marginStart="10dp">
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="QQ鍙�"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="6dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="12345678901"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFD8E6F5" />
-                        </FrameLayout>
-
-                    </LinearLayout>
-                </LinearLayout>
-
-                <LinearLayout
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="16dp"
-
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/layout_spouse_7">
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        >
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="鎵�鍦ㄥ崟浣�"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="12dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="寮犳皬鍏徃"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFD8E6F5"
-                                />
-                        </FrameLayout>
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:layout_marginStart="10dp">
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
-                            android:paddingHorizontal="6dp"
-                            android:paddingVertical="3dp"
-                            android:text="鑱屽姟"
-                            android:textColor="#FF000000"
-                            android:textSize="12sp" />
-
-                        <FrameLayout
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content">
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="12dp"
-                                android:paddingHorizontal="6dp"
-                                android:paddingVertical="3dp"
-                                android:text="缁忕悊"
-                                android:textColor="#FF000000"
-                                android:textSize="12sp" />
-
-                            <View
-                                android:layout_width="match_parent"
-                                android:layout_height="1dp"
-                                android:layout_gravity="bottom"
-                                android:background="#FFD8E6F5"
-                                />
-                        </FrameLayout>
-
-                    </LinearLayout>
-                </LinearLayout>
-
-            </androidx.constraintlayout.widget.ConstraintLayout>
-            <RelativeLayout
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:layout_marginStart="10dp"
-                android:layout_marginEnd="7dp"
-                android:layout_marginVertical="24dp"
-                >
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="閰嶅伓鍩烘湰淇℃伅"
-                    android:textColor="#99000000"
-                    android:textSize="10sp"
-                    />
-                <LinearLayout
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:orientation="vertical"
-                    android:layout_centerInParent="true"
-                    >
-                    <ImageView
+                    <TextView
+                        android:id="@+id/tv_basic_personal_information"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:background="@drawable/img_data_null"
+                        android:layout_marginStart="10dp"
+                        android:text="涓汉鍩烘湰淇℃伅"
+                        android:textColor="#99000000"
+                        android:textSize="10sp"
+                        app:layout_constraintStart_toEndOf="@+id/iv_photo"
+                        app:layout_constraintTop_toTopOf="parent"
                         />
+
+                    <LinearLayout
+                        android:id="@+id/layout_personal_1"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="@+id/tv_basic_personal_information"
+                        app:layout_constraintTop_toBottomOf="@id/tv_basic_personal_information"
+                        android:layout_marginTop="10dp"
+                        >
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_fffad1e0_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="濮撳悕"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent"
+                                >
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{selfBean.nickName}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    tools:text="aaaaaaaaaaaaaaaaaaaaaaaaa"
+                                    />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFFAD1E0" />
+                            </FrameLayout>
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="10dp"
+                            >
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_fffad1e0_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="鎬у埆"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp"
+                                />
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent"
+                                >
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{selfBean.sex==1?`鐢穈:`濂砢}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFFAD1E0" />
+                            </FrameLayout>
+
+                        </LinearLayout>
+
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:id="@+id/layout_personal_2"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        app:layout_constraintStart_toStartOf="@+id/tv_basic_personal_information"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toBottomOf="@+id/layout_personal_1"
+                        android:layout_marginTop="8dp"
+                        >
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_fffad1e0_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="韬唤"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent"
+                                >
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{`绗琡+ selfBean.identity + `浠}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFFAD1E0" />
+                            </FrameLayout>
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="10dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_fffad1e0_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="鐢熸棩"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <androidx.appcompat.widget.AppCompatTextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:text="@{selfBean.birth}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp"
+                                    app:autoSizeTextType="uniform"
+                                    app:autoSizeMaxTextSize="16sp"
+                                    app:autoSizeMinTextSize="10sp"
+                                    android:ellipsize="end"
+                                    android:maxLines="1"
+                                    android:layout_gravity="center"
+                                    tools:text="2001-01-01"
+                                    />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFFAD1E0" />
+                            </FrameLayout>
+
+                        </LinearLayout>
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:id="@+id/layout_personal_3"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        app:layout_constraintStart_toStartOf="@+id/tv_basic_personal_information"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toBottomOf="@+id/layout_personal_2"
+                        android:layout_marginTop="8dp"
+                        >
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_fffad1e0_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="鏇剧敤鍚�"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent"
+                                >
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:paddingHorizontal="6dp"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:text="@{selfBean.oldName}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp"
+                                    />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFFAD1E0" />
+                            </FrameLayout>
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="10dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_fffad1e0_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="姘戞棌"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{selfBean.nation}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFFAD1E0" />
+                            </FrameLayout>
+
+                        </LinearLayout>
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:id="@+id/layout_personal_4"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="24dp"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toBottomOf="@id/layout_personal_3">
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_fffad1e0_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="濠氬Щ鐘跺喌"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="match_parent"
+                                    android:layout_height="wrap_content"
+                                    android:paddingHorizontal="6dp"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:text="@{selfBean.maritalStatusStr}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp"
+                                    />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFFAD1E0" />
+                            </FrameLayout>
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="10dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_fffad1e0_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="閰嶅伓"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{spouseBean.nickName}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFFAD1E0" />
+                            </FrameLayout>
+
+                        </LinearLayout>
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:id="@+id/layout_personal_5"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="16dp"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toBottomOf="@+id/layout_personal_4">
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_fffad1e0_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="鎴风睄鍦板潃"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="match_parent"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{selfBean.locationAddress}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp"
+                                    />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFFAD1E0" />
+                            </FrameLayout>
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="10dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_fffad1e0_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="鑱旂郴鏂瑰紡"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{selfBean.phoneNumber}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFFAD1E0" />
+                            </FrameLayout>
+
+                        </LinearLayout>
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:id="@+id/layout_personal_6"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="16dp"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toBottomOf="@+id/layout_personal_5">
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_fffad1e0_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="甯镐綇鍦板潃"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{selfBean.alwaysAddress}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFFAD1E0" />
+                            </FrameLayout>
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="10dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_fffad1e0_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="寰俊鍙�"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{selfBean.wxNo}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFFAD1E0" />
+                            </FrameLayout>
+
+                        </LinearLayout>
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:id="@+id/layout_personal_7"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="16dp"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toBottomOf="@+id/layout_personal_6">
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_fffad1e0_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="鏀挎不闈㈣矊"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{selfBean.politicalOutlook}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFFAD1E0" />
+                            </FrameLayout>
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="10dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_fffad1e0_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="QQ鍙�"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{selfBean.qqNo}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFFAD1E0" />
+                            </FrameLayout>
+
+                        </LinearLayout>
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="16dp"
+
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toBottomOf="@+id/layout_personal_7">
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_fffad1e0_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="鎵�鍦ㄥ崟浣�"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{selfBean.unit}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFFAD1E0" />
+                            </FrameLayout>
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="10dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_fffad1e0_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="鑱屽姟"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{selfBean.position}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp"
+                                    tools:text="鑱屽姟"
+                                    />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFFAD1E0" />
+                            </FrameLayout>
+
+                        </LinearLayout>
+                    </LinearLayout>
+
+                </androidx.constraintlayout.widget.ConstraintLayout>
+
+            </androidx.cardview.widget.CardView>
+
+            <androidx.cardview.widget.CardView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                app:cardCornerRadius="6dp"
+                app:cardBackgroundColor="#F6FFFFFF"
+                app:cardElevation="10dp"
+                android:layout_marginVertical="15dp"
+                android:layout_marginHorizontal="10dp"
+                >
+
+                <androidx.constraintlayout.widget.ConstraintLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_marginStart="10dp"
+                    android:layout_marginEnd="7dp"
+                    android:layout_marginVertical="24dp"
+                    android:visibility="@{spouseBean==null?2:1}"
+                    >
+
+                    <androidx.constraintlayout.utils.widget.ImageFilterView
+                        android:id="@+id/iv_spouse_photo"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        app:layout_constraintDimensionRatio="1"
+                        app:layout_constraintWidth_percent="0.3"
+                        android:background="@color/teal_200"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="@id/layout_spouse_3"
+                        app:round="10dp"
+                        app:imageUrl="@{spouseBean.img}"
+                        />
+
+                    <TextView
+                        android:id="@+id/tv_spouse_basic_information"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="閰嶅伓鍩烘湰淇℃伅"
+                        android:textColor="#99000000"
+                        android:textSize="10sp"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        />
+
+                    <LinearLayout
+                        android:id="@+id/layout_spouse_1"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        app:layout_constraintEnd_toStartOf="@id/iv_spouse_photo"
+                        app:layout_constraintStart_toStartOf="@+id/tv_spouse_basic_information"
+                        app:layout_constraintTop_toBottomOf="@id/tv_spouse_basic_information"
+                        android:layout_marginTop="10dp"
+                        android:layout_marginEnd="10dp"
+                        >
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="濮撳悕"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent"
+                                >
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{spouseBean.nickName}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFD8E6F5" />
+                            </FrameLayout>
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="10dp"
+                            >
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="鎬у埆"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:paddingHorizontal="6dp"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"                                    android:text="@{spouseBean.sex==1?`鐢穈:`濂砢}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFD8E6F5" />
+                            </FrameLayout>
+
+                        </LinearLayout>
+
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:id="@+id/layout_spouse_2"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        app:layout_constraintStart_toStartOf="@+id/tv_spouse_basic_information"
+                        app:layout_constraintEnd_toStartOf="@id/iv_spouse_photo"
+                        app:layout_constraintTop_toBottomOf="@+id/layout_spouse_1"
+                        android:layout_marginTop="10dp"
+                        android:layout_marginEnd="10dp"
+                        >
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="韬唤"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:paddingHorizontal="6dp"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:text="@{`绗琡 + spouseBean.identity + `浠}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp"
+                                    />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFD8E6F5" />
+                            </FrameLayout>
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="10dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="鐢熸棩"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <androidx.appcompat.widget.AppCompatTextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:text="@{spouseBean.birth}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp"
+                                    app:autoSizeTextType="uniform"
+                                    app:autoSizeMaxTextSize="16sp"
+                                    app:autoSizeMinTextSize="10sp"
+                                    android:ellipsize="end"
+                                    android:maxLines="1"
+                                    android:layout_gravity="center"
+                                    tools:text="2001-01-01"
+                                    />
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFD8E6F5" />
+                            </FrameLayout>
+
+                        </LinearLayout>
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:id="@+id/layout_spouse_3"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        app:layout_constraintStart_toStartOf="@id/tv_spouse_basic_information"
+                        app:layout_constraintEnd_toStartOf="@id/iv_spouse_photo"
+                        app:layout_constraintTop_toBottomOf="@id/layout_spouse_2"
+                        android:layout_marginTop="10dp"
+                        android:layout_marginEnd="10dp"
+                        >
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="鏇剧敤鍚�"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:paddingHorizontal="6dp"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:text="@{spouseBean.oldName}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp"
+                                    />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFD8E6F5" />
+                            </FrameLayout>
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="10dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="姘戞棌"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:paddingHorizontal="6dp"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:text="@{spouseBean.nation}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFD8E6F5" />
+                            </FrameLayout>
+
+                        </LinearLayout>
+                    </LinearLayout>
+
+
+                    <LinearLayout
+                        android:id="@+id/layout_spouse_4"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="24dp"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toBottomOf="@+id/iv_spouse_photo">
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="濠氬Щ鐘跺喌"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:paddingHorizontal="6dp"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:text="@{spouseBean.maritalStatusStr}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFD8E6F5" />
+                            </FrameLayout>
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="10dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="閰嶅伓"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{selfBean.nickName}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFD8E6F5" />
+                            </FrameLayout>
+
+                        </LinearLayout>
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:id="@+id/layout_spouse_5"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="16dp"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toBottomOf="@+id/layout_spouse_4">
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="鎴风睄鍦板潃"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{spouseBean.locationAddress}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFD8E6F5" />
+                            </FrameLayout>
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="10dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="鑱旂郴鏂瑰紡"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:paddingHorizontal="6dp"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:text="@{spouseBean.phoneNumber}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFD8E6F5" />
+                            </FrameLayout>
+
+                        </LinearLayout>
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:id="@+id/layout_spouse_6"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="16dp"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toBottomOf="@+id/layout_spouse_5">
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="甯镐綇鍦板潃"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{spouseBean.alwaysAddress}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFD8E6F5" />
+                            </FrameLayout>
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="10dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="寰俊鍙�"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{spouseBean.wxNo}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFD8E6F5" />
+                            </FrameLayout>
+
+                        </LinearLayout>
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:id="@+id/layout_spouse_7"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="16dp"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toBottomOf="@+id/layout_spouse_6">
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="鏀挎不闈㈣矊"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{spouseBean.politicalOutlook}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFD8E6F5" />
+                            </FrameLayout>
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="10dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="QQ鍙�"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{spouseBean.qqNo}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFD8E6F5" />
+                            </FrameLayout>
+
+                        </LinearLayout>
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="16dp"
+
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toBottomOf="@+id/layout_spouse_7">
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="鎵�鍦ㄥ崟浣�"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{spouseBean.unit}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFD8E6F5" />
+                            </FrameLayout>
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:layout_marginStart="10dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/shape_ffd8e6f5_10_10_0_10"
+                                android:paddingHorizontal="6dp"
+                                android:paddingVertical="3dp"
+                                android:text="鑱屽姟"
+                                android:textColor="#FF000000"
+                                android:textSize="12sp" />
+
+                            <FrameLayout
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_vertical"
+                                    app:textOverflowMode="@{4}"
+                                    android:paddingHorizontal="6dp"
+                                    android:text="@{spouseBean.position}"
+                                    android:textColor="#FF000000"
+                                    android:textSize="12sp" />
+
+                                <View
+                                    android:layout_width="match_parent"
+                                    android:layout_height="1dp"
+                                    android:layout_gravity="bottom"
+                                    android:background="#FFD8E6F5" />
+                            </FrameLayout>
+
+                        </LinearLayout>
+                    </LinearLayout>
+
+                </androidx.constraintlayout.widget.ConstraintLayout>
+
+                <RelativeLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_marginStart="10dp"
+                    android:layout_marginEnd="7dp"
+                    android:layout_marginVertical="24dp"
+                    android:visibility="@{spouseBean==null?true:false}"
+                    >
+
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginStart="4dp"
-                        android:text="杩欓噷鐨勪俊鎭┖绌哄涔焴"
-                        android:textColor="#73000000"
-                        android:textSize="14sp"
-                        android:layout_gravity="center"
-                        android:layout_marginTop="10dp"
-                        />
-                </LinearLayout>
-            </RelativeLayout>
-        </androidx.cardview.widget.CardView>
-    </LinearLayout>
+                        android:text="閰嶅伓鍩烘湰淇℃伅"
+                        android:textColor="#99000000"
+                        android:textSize="10sp" />
 
-</ScrollView>
\ No newline at end of file
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical"
+                        android:layout_centerInParent="true">
+
+                        <ImageView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/img_data_null" />
+
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginStart="4dp"
+                            android:text="杩欓噷鐨勪俊鎭┖绌哄涔焴"
+                            android:textColor="#73000000"
+                            android:textSize="14sp"
+                            android:layout_gravity="center"
+                            android:layout_marginTop="10dp" />
+                    </LinearLayout>
+                </RelativeLayout>
+            </androidx.cardview.widget.CardView>
+        </LinearLayout>
+
+    </ScrollView>
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/pop_operate.xml b/app/src/main/res/layout/pop_operate.xml
index 219d4fc..60c3001 100644
--- a/app/src/main/res/layout/pop_operate.xml
+++ b/app/src/main/res/layout/pop_operate.xml
@@ -57,6 +57,7 @@
                 android:drawablePadding="5dp"
                 />
             <View
+                android:id="@+id/view_select_underline"
                 android:layout_width="match_parent"
                 android:layout_height="0.3dp"
                 android:background="#FF939393"
diff --git a/app/src/main/res/layout/pop_operate_delete.xml b/app/src/main/res/layout/pop_operate_delete.xml
index 3316102..f0024eb 100644
--- a/app/src/main/res/layout/pop_operate_delete.xml
+++ b/app/src/main/res/layout/pop_operate_delete.xml
@@ -14,18 +14,20 @@
         android:orientation="vertical"
         android:gravity="center_horizontal"
         >
+
         <TextView
             android:id="@+id/tv_modify"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:drawablePadding="5dp"
             android:gravity="center"
             android:text="缂栬緫"
             android:textColor="#FF333333"
             android:textSize="12sp"
             app:drawableStartCompat="@drawable/ic_modify"
-            android:drawablePadding="5dp"
-            android:layout_weight="1"
             />
+
         <View
             android:layout_width="match_parent"
             android:layout_height="0.3dp"
diff --git a/app/src/main/res/layout/pop_operate_home_root_net.xml b/app/src/main/res/layout/pop_operate_home_root_net.xml
new file mode 100644
index 0000000..0d7f4f3
--- /dev/null
+++ b/app/src/main/res/layout/pop_operate_home_root_net.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:orientation="vertical"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    app:cardBackgroundColor="#FFFAD1E0"
+    app:cardCornerRadius="10dp"
+    app:cardElevation="0dp"
+    >
+    <LinearLayout
+        android:layout_width="120dp"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:gravity="center_horizontal"
+        >
+        <TextView
+            android:id="@+id/tv_first"
+            android:layout_width="match_parent"
+            android:layout_height="32dp"
+            android:gravity="center"
+            android:text="鍙樉绀虹涓�浠�"
+            android:textColor="#FF333333"
+            android:textSize="12sp"
+            />
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="0.3dp"
+            android:background="#FF939393"
+            />
+        <TextView
+            android:id="@+id/tv_second"
+            android:layout_width="match_parent"
+            android:layout_height="32dp"
+            android:text="鏄剧ず鑷崇浜屼唬"
+            android:gravity="center"
+            android:textColor="#FF333333"
+            android:textSize="12sp"
+            />
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="0.3dp"
+            android:background="#FF939393"
+            />
+
+        <TextView
+            android:id="@+id/tv_third"
+            android:layout_width="match_parent"
+            android:layout_height="32dp"
+            android:text="鏄剧ず鑷崇涓変唬"
+            android:gravity="center"
+            android:textColor="#FF333333"
+            android:textSize="12sp"
+            />
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="0.3dp"
+            android:background="#FF939393"
+            />
+        <TextView
+            android:id="@+id/tv_all"
+            android:layout_width="match_parent"
+            android:layout_height="32dp"
+            android:text="鏄剧ず鍏ㄩ儴"
+            android:gravity="center"
+            android:textColor="#FF333333"
+            android:textSize="12sp"
+            />
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="0.3dp"
+            android:background="#FF939393"
+            />
+        <TextView
+            android:id="@+id/tv_family"
+            android:layout_width="match_parent"
+            android:layout_height="32dp"
+            android:text="瀹惰氨"
+            android:gravity="center"
+            android:textColor="#FF333333"
+            android:textSize="12sp"
+            />
+    </LinearLayout>
+
+</androidx.cardview.widget.CardView>
\ No newline at end of file
diff --git a/app/src/main/res/layout/pop_operate_person_center.xml b/app/src/main/res/layout/pop_operate_person_center.xml
index 57af0d3..fe9de37 100644
--- a/app/src/main/res/layout/pop_operate_person_center.xml
+++ b/app/src/main/res/layout/pop_operate_person_center.xml
@@ -16,7 +16,7 @@
         >
         <TextView
             android:id="@+id/tv_basic_info"
-            android:layout_width="wrap_content"
+            android:layout_width="match_parent"
             android:layout_height="30dp"
             android:gravity="center"
             android:text="鍩烘湰淇℃伅"
@@ -28,14 +28,18 @@
             android:layout_height="0.3dp"
             android:background="#FF939393"
             />
-        <TextView
-            android:id="@+id/tv_permission_setting"
-            android:layout_width="wrap_content"
+        <androidx.appcompat.widget.AppCompatTextView
+            android:id="@+id/tv_change_login_bg"
+            android:layout_width="match_parent"
             android:layout_height="30dp"
-            android:text="鏉冮檺璁剧疆"
+            android:text="鐧诲綍椤佃儗鏅洿鎹�"
             android:gravity="center"
             android:textColor="#FF333333"
             android:textSize="12sp"
+            app:autoSizeMaxTextSize="12sp"
+            app:autoSizeMinTextSize="8sp"
+            app:autoSizeStepGranularity="1sp"
+            app:autoSizeTextType="uniform"
             />
     </LinearLayout>
 
diff --git a/app/src/main/res/layout/pop_operate_pet.xml b/app/src/main/res/layout/pop_operate_pet.xml
index 2524c41..3e5d2c1 100644
--- a/app/src/main/res/layout/pop_operate_pet.xml
+++ b/app/src/main/res/layout/pop_operate_pet.xml
@@ -12,7 +12,7 @@
         android:layout_width="85dp"
         android:layout_height="wrap_content"
         android:orientation="vertical"
-        android:gravity="center_vertical"
+        android:gravity="center_horizontal"
         >
         <TextView
             android:id="@+id/tv_owner_info"
@@ -22,7 +22,6 @@
             android:text="鍏荤姮浜轰俊鎭�"
             android:textColor="#FF333333"
             android:textSize="12sp"
-            android:layout_marginHorizontal="10dp"
             />
         <View
             android:layout_width="match_parent"
@@ -37,25 +36,6 @@
             android:gravity="center"
             android:textColor="#FF333333"
             android:textSize="12sp"
-            android:layout_marginHorizontal="10dp"
-            />
-        <View
-            android:layout_width="match_parent"
-            android:layout_height="0.3dp"
-            android:background="#FF939393"
-            />
-
-        <TextView
-            android:id="@+id/tv_another"
-            android:layout_width="wrap_content"
-            android:layout_height="30dp"
-            android:text="鏃鸿储"
-            android:gravity="center"
-            android:textColor="#FF333333"
-            android:textSize="12sp"
-            app:drawableStartCompat="@drawable/ic_operate_order"
-            android:drawablePadding="3dp"
-            android:layout_marginHorizontal="10dp"
             />
     </LinearLayout>
 
diff --git a/app/src/main/res/layout/pop_search.xml b/app/src/main/res/layout/pop_search.xml
deleted file mode 100644
index 404d525..0000000
--- a/app/src/main/res/layout/pop_search.xml
+++ /dev/null
@@ -1,184 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto">
-
-    <data>
-        <import type="android.text.TextUtils" />
-        <import type="android.view.View" />
-        <variable
-            name="viewModel"
-            type="com.application.zhangshi_app_android.ui.function.FamilyMemorabiliaActivityViewModel" />
-    </data>
-
-    <LinearLayout
-        android:orientation="vertical"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:background="@color/white">
-
-        <View
-            android:layout_width="match_parent"
-            android:layout_height="0.5dp"
-            android:background="#FF939393" />
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="40dp"
-            android:layout_marginHorizontal="12dp"
-            android:gravity="center">
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="鏍囬"
-                android:textColor="#FF333333"
-                android:textSize="14sp" />
-
-            <EditText
-                android:id="@+id/et_title"
-                android:layout_width="0dp"
-                android:layout_weight="1"
-                android:layout_height="wrap_content"
-                android:background="@null"
-                android:inputType="text"
-                android:layout_marginStart="6dp"
-                android:text="@={viewModel.requestBeanMutableLiveData.title}"
-                android:hint="璇疯緭鍏ユ爣棰�"
-                android:textColorHint="#61000000"
-                android:textColor="#FF333333"
-                android:textSize="14sp" />
-
-            <ImageView
-                android:id="@+id/iv_clear_title"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:visibility="@{viewModel.requestBeanMutableLiveData.title != null  &amp;&amp; viewModel.requestBeanMutableLiveData.title.length() > 0 ? View.VISIBLE : View.GONE}"
-                android:background="@drawable/ic_clear" />
-        </LinearLayout>
-
-        <View
-            android:layout_width="match_parent"
-            android:layout_height="0.3dp"
-            android:background="#FF939393" />
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="40dp"
-            android:layout_marginHorizontal="12dp"
-            android:gravity="center">
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="浜虹墿"
-                android:textColor="#FF333333"
-                android:textSize="14sp" />
-
-            <EditText
-                android:id="@+id/et_person"
-                android:layout_width="0dp"
-                android:layout_weight="1"
-                android:inputType="text"
-                android:layout_height="wrap_content"
-                android:background="@null"
-                android:layout_marginStart="6dp"
-                android:text="@={viewModel.requestBeanMutableLiveData.people}"
-                android:hint="璇疯緭鍏ヤ汉鐗�"
-                android:textColorHint="#61000000"
-                android:textColor="#FF333333"
-                android:textSize="14sp" />
-
-            <ImageView
-                android:id="@+id/iv_clear_person"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:background="@drawable/ic_clear"
-                android:visibility="@{TextUtils.isEmpty(viewModel.requestBeanMutableLiveData.people)?View.GONE:View.VISIBLE}"
-                />
-        </LinearLayout>
-
-        <View
-            android:layout_width="match_parent"
-            android:layout_height="0.3dp"
-            android:background="#FF939393" />
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="40dp"
-            android:layout_marginHorizontal="12dp"
-            android:gravity="center">
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="鏃堕棿"
-                android:textColor="#FF333333"
-                android:textSize="14sp" />
-
-            <EditText
-                android:id="@+id/et_time"
-                android:layout_width="0dp"
-                android:layout_weight="1"
-                android:layout_height="wrap_content"
-                android:background="@null"
-                android:inputType="text"
-                android:layout_marginStart="6dp"
-                android:text="@={viewModel.requestBeanMutableLiveData.createTime}"
-                android:hint="璇疯緭鍏ユ椂闂�"
-                android:textColorHint="#61000000"
-                android:textColor="#FF333333"
-                android:textSize="14sp" />
-
-            <ImageView
-                android:id="@+id/iv_clear_time"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:background="@drawable/ic_clear"
-                android:visibility="@{TextUtils.isEmpty(viewModel.requestBeanMutableLiveData.createTime)?View.GONE:View.VISIBLE}"
-                />
-        </LinearLayout>
-
-        <View
-            android:layout_width="match_parent"
-            android:layout_height="0.3dp"
-            android:background="#FF939393" />
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="40dp"
-            android:layout_marginHorizontal="12dp"
-            android:gravity="center">
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="鍦扮偣"
-                android:textColor="#FF333333"
-                android:textSize="14sp" />
-
-            <EditText
-                android:id="@+id/et_place"
-                android:layout_width="0dp"
-                android:layout_weight="1"
-                android:layout_height="wrap_content"
-                android:background="@null"
-                android:layout_marginStart="6dp"
-                android:text="@={viewModel.requestBeanMutableLiveData.address}"
-                android:inputType="text"
-                android:hint="璇疯緭鍏ュ湴鐐�"
-                android:textColorHint="#61000000"
-                android:textColor="#FF333333"
-                android:textSize="14sp" />
-
-            <ImageView
-                android:id="@+id/iv_clear_place"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:background="@drawable/ic_clear"
-                android:visibility="@{TextUtils.isEmpty(viewModel.requestBeanMutableLiveData.address)?View.GONE:View.VISIBLE}"
-                />
-        </LinearLayout>
-
-
-    </LinearLayout>
-</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/pop_switch_video_or_image.xml b/app/src/main/res/layout/pop_switch_video_or_image.xml
new file mode 100644
index 0000000..a837088
--- /dev/null
+++ b/app/src/main/res/layout/pop_switch_video_or_image.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:orientation="vertical"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    app:cardBackgroundColor="#FFFAD1E0"
+    app:cardCornerRadius="10dp"
+    app:cardElevation="0dp"
+    >
+    <LinearLayout
+        android:layout_width="85dp"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:gravity="center_horizontal"
+        >
+        <TextView
+            android:id="@+id/tv_image"
+            android:layout_width="match_parent"
+            android:layout_height="30dp"
+            android:gravity="center"
+            android:text="鍥剧墖杞挱"
+            android:textColor="#FF333333"
+            android:textSize="12sp"
+            />
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="0.3dp"
+            android:background="#FF939393"
+            />
+        <TextView
+            android:id="@+id/tv_video"
+            android:layout_width="match_parent"
+            android:layout_height="30dp"
+            android:text="瑙嗛鎾斁"
+            android:gravity="center"
+            android:textColor="#FF333333"
+            android:textSize="12sp"
+            />
+    </LinearLayout>
+
+</androidx.cardview.widget.CardView>
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index a0147b3..6281205 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -25,5 +25,5 @@
     <color name="color_card_blue">#FFE0EEFE</color>
     <color name="color_card_green">#FFEBFFF2</color>
     <color name="color_shadow">#88666666</color>
-
+    <color name="color_non_editable">#AAf5f7fa</color>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 16c9971..93ef9f9 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -9,7 +9,7 @@
 
     <!--涓婚〉搴曢儴瀵艰埅鏍忔病鏈夐�変腑鏂囧瓧鏍峰紡锛屽鑸粯璁ょ殑瀛椾綋澶у皬灏辨槸12sp-->
     <style name="bottom_navigation_title_inactive">
-        <item name="android:textSize">@dimen/sp_12</item>
+        <item name="android:textSize">12sp</item>
         <item name="android:textColor">@color/color_FF666666_text_default</item>
     </style>
 
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index a0574bc..57135c6 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -15,6 +15,8 @@
     </style>
 
     <style name="Theme.app" parent="Theme.AppCompat.DayNight.NoActionBar">
+        <!-- 鍏ㄥ眬瀛椾綋 -->
+        <item name="android:fontFamily">@font/roboto_regular</item>
         <!-- 绐楀彛鑳屾櫙棰滆壊 -->
         <item name="android:windowBackground">@color/windowBackground</item>
         <!-- 搴旂敤鐨勪富瑕佽壊璋冿紝ActionBar Toolbar 榛樿浣跨敤璇ラ鑹� -->
diff --git a/app/src/main/res/xml/file_paths.xml b/app/src/main/res/xml/file_paths.xml
new file mode 100644
index 0000000..b2019ff
--- /dev/null
+++ b/app/src/main/res/xml/file_paths.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<paths>
+    <!-- 閫傞厤Android 7.0鏂囦欢鎰忓浘 -->
+    <external-path
+        name="external_files"
+        path="." />
+</paths>
\ No newline at end of file
diff --git a/app_base/build.gradle b/app_base/build.gradle
index 2f527d5..478b54d 100644
--- a/app_base/build.gradle
+++ b/app_base/build.gradle
@@ -49,14 +49,23 @@
     api 'com.squareup.retrofit2:retrofit-adapters:2.4.0'//鐩稿叧閫傞厤
     api 'com.squareup.okhttp3:okhttp:4.10.0'
     api 'com.squareup.okhttp3:logging-interceptor:4.10.0'
+
+    //Rxjava
     api "io.reactivex.rxjava2:rxjava:2.2.21"
     api 'io.reactivex.rxjava2:rxandroid:2.1.1'
+    //Rxjava鐨勭殑鐢熷懡鍛ㄦ湡绠$悊鍙互浣跨敤RxLifecycle鎴栬�卆utodispose锛堜簩閫変竴锛�
+    //autodispose
+    api 'com.uber.autodispose:autodispose:1.4.0'
+    api 'com.uber.autodispose:autodispose-android:1.4.0'
+    api 'com.uber.autodispose:autodispose-android-archcomponents:1.4.0'
+
+
 
     //Cookie 鎸佷箙鍖�
     api 'com.github.franmontiel:PersistentCookieJar:v1.0.1'
 
     // 鏍囬鏍忔鏋讹細https://github.com/getActivity/TitleBar
-    api 'com.github.getActivity:TitleBar:10.3'
+    api 'com.github.getActivity:TitleBar:10.5'
 
     // 灞忓箷閫傞厤
     api 'com.github.JessYanCoding:AndroidAutoSize:v1.2.1'
@@ -96,4 +105,15 @@
     api  'io.github.scwang90:refresh-footer-ball:2.0.5'        //鐞冭剦鍐插姞杞�
     api  'io.github.scwang90:refresh-footer-classics:2.0.5'    //缁忓吀鍔犺浇
 
+    //婊氳疆閫夋嫨
+    api 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11'
+    api 'com.github.gzu-liyujiang.AndroidPicker:Common:4.1.11'
+    api 'com.github.gzu-liyujiang.AndroidPicker:WheelView:4.1.11'
+
+    //鍥剧墖杞挱鎺т欢
+    api 'io.github.youth5201314:banner:2.2.2'
+
+    //瑙嗛鎾斁
+    //瀹屾暣鐗堝紩鍏�
+    api 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer:v8.4.0-release-jitpack'
 }
\ No newline at end of file
diff --git a/app_base/src/main/assets/roboto_regular.ttf b/app_base/src/main/assets/roboto_regular.ttf
new file mode 100644
index 0000000..3033308
--- /dev/null
+++ b/app_base/src/main/assets/roboto_regular.ttf
Binary files differ
diff --git a/app_base/src/main/java/com/android/app_base/action/TitleBarAction.java b/app_base/src/main/java/com/android/app_base/action/TitleBarAction.java
index 8cbb8b2..54d0371 100644
--- a/app_base/src/main/java/com/android/app_base/action/TitleBarAction.java
+++ b/app_base/src/main/java/com/android/app_base/action/TitleBarAction.java
@@ -16,7 +16,7 @@
  * @date 2023.03.14. 19:14
  * @desc 鏍囬鏍忚涓�
  */
-public interface TitleBarAction extends OnTitleBarListener{
+public interface TitleBarAction extends OnTitleBarListener {
 
     @Nullable
     TitleBar getTitleBar();
diff --git a/app_base/src/main/java/com/android/app_base/base/BaseConfig.java b/app_base/src/main/java/com/android/app_base/base/BaseConfig.java
index 8f0375f..288a12a 100644
--- a/app_base/src/main/java/com/android/app_base/base/BaseConfig.java
+++ b/app_base/src/main/java/com/android/app_base/base/BaseConfig.java
@@ -13,4 +13,10 @@
     //椤甸潰璺宠浆
     public static final String EXTRA_TYPE = "type";
     public static final String LOGIN_ACTIVITY = "com.application.zhangshi_app_android.ui.login.LoginActivity";
+
+    //澶囧繕褰� 瀵瑰簲 妯″潡id
+    public static final int MEMO_FID_FAMILY_ASSETS = 2007;//瀹跺涵璧勪骇
+    public static final int MEMO_FID_HOME_DEVICES = 2017;//瀹跺涵璁惧
+    public static final int MEMO_FID_PROPERTY = 2026;//璐骇
+    public static final int MEMO_FID_PRIVACY = 2031;//闅愮
 }
diff --git a/app_base/src/main/java/com/android/app_base/base/adapter/BaseRVAdapter.java b/app_base/src/main/java/com/android/app_base/base/adapter/BaseRVAdapter.java
index bd6d45c..2b2f62d 100644
--- a/app_base/src/main/java/com/android/app_base/base/adapter/BaseRVAdapter.java
+++ b/app_base/src/main/java/com/android/app_base/base/adapter/BaseRVAdapter.java
@@ -283,6 +283,7 @@
             position = mDataList.size() - 1;
         }
         notifyItemInserted(position);
+        notifyItemRangeChanged(position, mDataList.size() - position);
     }
     /**
      * 鍒犻櫎鍗曟潯鏁版嵁
@@ -298,6 +299,7 @@
         mDataList.remove(position);
         // 鍛婅瘔閫傞厤鍣ㄥ垹闄ゆ暟鎹殑浣嶇疆锛屼細鏈夊姩鐢绘晥鏋�
         notifyItemRemoved(position);
+        notifyItemRangeChanged(position, mDataList.size() - position);
     }
     /**
      * 璁剧疆 RecyclerView 鏉$洰鐐瑰嚮鐩戝惉
diff --git a/app_base/src/main/java/com/android/app_base/base/adapter/BaseVp2FragmentAdapter.java b/app_base/src/main/java/com/android/app_base/base/adapter/BaseVp2FragmentAdapter.java
index 0b809c6..ea9edbd 100644
--- a/app_base/src/main/java/com/android/app_base/base/adapter/BaseVp2FragmentAdapter.java
+++ b/app_base/src/main/java/com/android/app_base/base/adapter/BaseVp2FragmentAdapter.java
@@ -154,4 +154,18 @@
         return mTitleList.get(position);
     }
 
+    /**
+     * 鑾峰彇鏌愪釜 Fragment 鐨勭储寮曪紙娌℃湁灏辫繑鍥� -1锛�
+     */
+    public int getFragmentIndex(Class<? extends Fragment> clazz) {
+        if (clazz == null) {
+            return -1;
+        }
+        for (int i = 0; i < mFragmentList.size(); i++) {
+            if (clazz.getName().equals(mFragmentList.get(i).getClass().getName())) {
+                return i;
+            }
+        }
+        return -1;
+    }
 }
diff --git a/app_base/src/main/java/com/android/app_base/base/adapter/EditTextAdapter.java b/app_base/src/main/java/com/android/app_base/base/adapter/EditTextAdapter.java
deleted file mode 100644
index 885691e..0000000
--- a/app_base/src/main/java/com/android/app_base/base/adapter/EditTextAdapter.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.android.app_base.base.adapter;
-
-import android.text.method.HideReturnsTransformationMethod;
-import android.text.method.PasswordTransformationMethod;
-import android.widget.EditText;
-import android.widget.ImageView;
-
-import androidx.databinding.BindingAdapter;
-
-/**
- * @author Ljj
- * @date 2023.03.26. 17:38
- * @desc
- */
-public class EditTextAdapter {
-    @BindingAdapter({"passwordVisibility"})
-    public static void setPasswordVisibility(EditText editText, boolean visibility) {
-        if(visibility){
-            editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
-        }else {
-            editText.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
-        }
-        editText.setSelection(editText.length());
-    }
-}
diff --git a/app_base/src/main/java/com/android/app_base/base/adapter/databinding/EditTextAdapter.java b/app_base/src/main/java/com/android/app_base/base/adapter/databinding/EditTextAdapter.java
new file mode 100644
index 0000000..75bba30
--- /dev/null
+++ b/app_base/src/main/java/com/android/app_base/base/adapter/databinding/EditTextAdapter.java
@@ -0,0 +1,67 @@
+package com.android.app_base.base.adapter.databinding;
+
+import android.text.TextUtils;
+import android.text.method.HideReturnsTransformationMethod;
+import android.text.method.PasswordTransformationMethod;
+import android.widget.EditText;
+import android.widget.ImageView;
+
+import androidx.databinding.BindingAdapter;
+import androidx.databinding.InverseBindingAdapter;
+
+import java.math.BigDecimal;
+import java.util.Locale;
+
+/**
+ * @author Ljj
+ * @date 2023.03.26. 17:38
+ * @desc
+ */
+public class EditTextAdapter {
+    @BindingAdapter({"passwordVisibility"})
+    public static void setPasswordVisibility(EditText editText, boolean visibility) {
+        if(visibility){
+            editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
+        }else {
+            editText.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
+        }
+        editText.setSelection(editText.length());
+    }
+
+    @BindingAdapter(value = {"android:text", "need_modify_null"}, requireAll = false)
+    public static void setText(EditText view, double value,boolean needModifyNull) {
+        String valueString = BigDecimal.valueOf(value).stripTrailingZeros().toPlainString();
+        if(needModifyNull){
+            view.setText(value == 0 ? null : valueString);
+        }else {
+            view.setText(value == 0 ? "0" : valueString);
+        }
+//        String formattedValue = String.format(Locale.CHINA, "%.2f", value);
+//        if (!TextUtils.equals(view.getText().toString(), formattedValue)) {
+//            view.setText(formattedValue);
+//        }
+    }
+
+    @InverseBindingAdapter(attribute = "android:text")
+    public static double getText(EditText view) {
+        String text = view.getText().toString();
+        if (TextUtils.isEmpty(text)) {
+            return 0.0;
+        } else {
+            return Double.parseDouble(text);
+        }
+    }
+
+    @BindingAdapter({"isEditable"})
+    public static void setIsEditable(EditText editText, boolean isEditable) {
+        if(isEditable){
+            editText.setFocusable(true);
+            editText.setCursorVisible(true);
+            editText.setLongClickable(true);
+        }else {
+            editText.setFocusable(false);
+            editText.setCursorVisible(false);
+            editText.setLongClickable(false);
+        }
+    }
+}
diff --git a/app_base/src/main/java/com/android/app_base/base/adapter/ImageViewAdapter.java b/app_base/src/main/java/com/android/app_base/base/adapter/databinding/ImageViewAdapter.java
similarity index 60%
rename from app_base/src/main/java/com/android/app_base/base/adapter/ImageViewAdapter.java
rename to app_base/src/main/java/com/android/app_base/base/adapter/databinding/ImageViewAdapter.java
index a7a1671..ce96424 100644
--- a/app_base/src/main/java/com/android/app_base/base/adapter/ImageViewAdapter.java
+++ b/app_base/src/main/java/com/android/app_base/base/adapter/databinding/ImageViewAdapter.java
@@ -1,14 +1,20 @@
-package com.android.app_base.base.adapter;
+package com.android.app_base.base.adapter.databinding;
 
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.net.Uri;
+import android.text.TextUtils;
 import android.util.Base64;
+import android.view.View;
 import android.widget.ImageView;
+import android.widget.TextView;
 
 import androidx.databinding.BindingAdapter;
+import androidx.databinding.InverseBindingAdapter;
 
 import com.android.app_base.utils.GlideUtil;
+
+import java.math.BigDecimal;
 
 /**
  * @author Ljj
@@ -22,6 +28,9 @@
     }
     @BindingAdapter({"imageUri"})
     public static void loadUriImage(ImageView imageView, String uri) {
+        if (TextUtils.isEmpty(uri)){
+            return;
+        }
         imageView.setImageURI(Uri.parse(uri));
 
     }
@@ -37,4 +46,20 @@
         Bitmap bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
         imageView.setImageBitmap(bitmap);
     }
+
+
+    @BindingAdapter(value = {"visibility_text","needPlaceholder"},requireAll = false)
+    public static void setVisibilityByText(ImageView imageView,String text,boolean needPlaceholder){
+        if (TextUtils.isEmpty(text)){
+            if (needPlaceholder){
+                imageView.setVisibility(View.INVISIBLE);
+            }else {
+                imageView.setVisibility(View.GONE);
+            }
+        }else {
+            imageView.setVisibility(View.VISIBLE);
+        }
+    }
+
+
 }
diff --git a/app_base/src/main/java/com/android/app_base/base/adapter/databinding/TextViewAdapter.java b/app_base/src/main/java/com/android/app_base/base/adapter/databinding/TextViewAdapter.java
new file mode 100644
index 0000000..bd6ace8
--- /dev/null
+++ b/app_base/src/main/java/com/android/app_base/base/adapter/databinding/TextViewAdapter.java
@@ -0,0 +1,84 @@
+package com.android.app_base.base.adapter.databinding;
+
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import androidx.databinding.BindingAdapter;
+import androidx.databinding.InverseBindingAdapter;
+
+import java.math.BigDecimal;
+import java.util.Locale;
+
+/**
+ * @author Ljj
+ * @date 2023.05.22. 21:10
+ * @desc
+ */
+public class TextViewAdapter {
+    /**
+     * 璁剧疆TextView鐨凟llipsize
+     *
+     * @param textView TextView
+     * @param ellipsize 1:寮�澶� 2:涓棿 3:缁撳熬 4:璺戦┈鐏� 0鎴栧叾浠�:涓嶈缃�
+     */
+    @BindingAdapter({"textOverflowMode"})
+    public static void setTextViewEllipsize(TextView textView, int ellipsize) {
+        TextUtils.TruncateAt where = null;
+        switch (ellipsize){
+            case 1:
+                where = TextUtils.TruncateAt.START;
+                break;
+            case 2:
+                where = TextUtils.TruncateAt.MIDDLE;
+                break;
+            case 3:
+                where = TextUtils.TruncateAt.END;
+                break;
+            case 4:
+                where = TextUtils.TruncateAt.MARQUEE;
+                break;
+            default:
+                break;
+        }
+        if (textView.getEllipsize() == where) {
+            return;
+        }
+        textView.setEllipsize(where);
+        if (where != TextUtils.TruncateAt.MARQUEE) {
+            return;
+        }
+        if (!textView.isSelected()) {
+            // 璁剧疆璺戦┈鐏箣鍚庨渶瑕佽缃�変腑鎵嶈兘鏈夋晥鏋�
+            textView.setSelected(true);
+        }
+        if (!textView.isFocusable()) {
+            // 璁剧疆璺戦┈鐏渶瑕佸厛鑾峰彇鐒︾偣
+            textView.setFocusable(true);
+        }
+        textView.setSingleLine(true);
+        // 璁剧疆璺戦┈鐏殑寰幆娆℃暟
+        textView.setMarqueeRepeatLimit(-1);
+    }
+
+    @BindingAdapter("android:text")
+    public static void setText(TextView view, double value) {
+//        String formattedValue = String.format(Locale.CHINA, "%.2f", value);
+//        if (!TextUtils.equals(view.getText().toString(), formattedValue)) {
+//            view.setText(formattedValue);
+//        }
+        view.setText(BigDecimal.valueOf(value).stripTrailingZeros().toPlainString());
+    }
+
+    @InverseBindingAdapter(attribute = "android:text")
+    public static double getText(TextView view) {
+        String text = view.getText().toString();
+        if (TextUtils.isEmpty(text)) {
+            return 0.0;
+        } else {
+            return Double.parseDouble(text);
+        }
+    }
+
+}
diff --git a/app_base/src/main/java/com/android/app_base/base/adapter/databinding/ViewAdapter.java b/app_base/src/main/java/com/android/app_base/base/adapter/databinding/ViewAdapter.java
new file mode 100644
index 0000000..091ff95
--- /dev/null
+++ b/app_base/src/main/java/com/android/app_base/base/adapter/databinding/ViewAdapter.java
@@ -0,0 +1,39 @@
+package com.android.app_base.base.adapter.databinding;
+
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.databinding.BindingAdapter;
+
+import com.android.app_base.utils.GlideUtil;
+
+/**
+ * @author Ljj
+ * @date 2023.06.08. 23:28
+ * @desc
+ */
+public class ViewAdapter {
+
+    @BindingAdapter("android:visibility")
+    public static void setVisibility(View view, boolean value) {
+        if (value){
+            view.setVisibility(View.VISIBLE);
+        }else {
+            view.setVisibility(View.GONE);
+        }
+    }
+
+    @BindingAdapter("android:visibility")
+    public static void setVisibility(View view, int value) {
+        if (value == 0){
+            view.setVisibility(View.GONE);
+        }else if (value == 1){
+            view.setVisibility(View.VISIBLE);
+        }else if (value == 2){
+            view.setVisibility(View.INVISIBLE);
+        }
+    }
+
+}
diff --git a/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java b/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java
index 51b3ab8..dd69978 100644
--- a/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java
+++ b/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java
@@ -202,12 +202,14 @@
      * 鍒濆鍖栨矇娴稿紡鐘舵�佹爮
      */
     protected void initStatusBar(){
+        if (getTitleBar() != null) {
+            getTitleBar().setOnTitleBarListener(this);
+        }
         if (isStatusBarImmersionEnabled()) {
             getImmersionBarConfig().init();
             // 璁剧疆鏍囬鏍忔矇娴�()
             if (getTitleBar() != null) {
                 ImmersionBar.setTitleBar(this, getTitleBar());
-                getTitleBar().setOnTitleBarListener(this);
             }
         }
     }
diff --git a/app_base/src/main/java/com/android/app_base/base/view/BaseFragment.java b/app_base/src/main/java/com/android/app_base/base/view/BaseFragment.java
index 8dd0912..e129f29 100644
--- a/app_base/src/main/java/com/android/app_base/base/view/BaseFragment.java
+++ b/app_base/src/main/java/com/android/app_base/base/view/BaseFragment.java
@@ -80,6 +80,8 @@
         initViewDataBindingAndViewModel();
         //鍒濆鍖栫姸鎬佽鍥�
         initStateView();
+        //鍒濆鍖栨矇娴稿紡鐘舵�佹爮鍜� titleBar
+        initStatusBar();
         //椤甸潰view鍒濆鍖栨柟娉�
         initView();
         //椤甸潰浜嬩欢鐩戝惉鐨勬柟娉曪紝鐢ㄤ簬ViewModel灞傝浆鍒癡iew灞傜殑浜嬩欢娉ㄥ唽
@@ -89,8 +91,7 @@
     @Override
     public void onResume() {
         super.onResume();
-        //鍒濆鍖栨矇娴稿紡鐘舵�佹爮鍜� titleBar
-        initStatusBar();
+
         if (!isLoaded){
             //椤甸潰鏁版嵁鍒濆鍖栨柟娉�
             initData();
diff --git a/app_base/src/main/java/com/android/app_base/base/viewmodel/BaseViewModel.java b/app_base/src/main/java/com/android/app_base/base/viewmodel/BaseViewModel.java
index 0fc152c..0acb457 100644
--- a/app_base/src/main/java/com/android/app_base/base/viewmodel/BaseViewModel.java
+++ b/app_base/src/main/java/com/android/app_base/base/viewmodel/BaseViewModel.java
@@ -31,8 +31,8 @@
     /**
      * 鎺у埗鐘舵�佽鍥剧殑LiveData
      */
-    protected MutableLiveData<StateViewEnum> stateViewLiveData;
-    protected MutableLiveData<String> messageLiveData;
+    protected MutableLiveData<StateViewEnum> stateViewLiveData = new MutableLiveData<>();
+    protected MutableLiveData<String> messageLiveData = new MutableLiveData<>();
     //绠$悊RxJava锛屼富瑕侀拡瀵筊xJava寮傛鎿嶄綔閫犳垚鐨勫唴瀛樻硠婕�
     private CompositeDisposable mCompositeDisposable;
 
@@ -67,7 +67,7 @@
         }
         return stateViewLiveData;
     }
-    public LiveData<String> getMessageLivaData(){
+    public MutableLiveData<String> getMessageLivaData(){
         if(messageLiveData == null){
             messageLiveData = new MutableLiveData<>();
         }
diff --git a/app_base/src/main/java/com/android/app_base/http/RetrofitManager.java b/app_base/src/main/java/com/android/app_base/http/RetrofitManager.java
index df7edea..5af996b 100644
--- a/app_base/src/main/java/com/android/app_base/http/RetrofitManager.java
+++ b/app_base/src/main/java/com/android/app_base/http/RetrofitManager.java
@@ -2,6 +2,13 @@
 
 import androidx.collection.CircularArray;
 
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.TypeAdapter;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonToken;
+import com.google.gson.stream.JsonWriter;
+
 import java.util.HashMap;
 import java.util.Map;
 
@@ -42,11 +49,16 @@
      * 鑾峰彇Retrofit瀵硅薄
      */
     public Retrofit getRetrofit(String baseUrl) {
+        Gson gson = new GsonBuilder()
+                //閰嶇疆浣犵殑Gson
+                .setDateFormat("yyyy-MM-dd hh:mm:ss")
+                .registerTypeHierarchyAdapter(String.class,STRING)//璁剧疆瑙f瀽鐨勬椂鍊檔ull杞垚""
+                .create();
         Retrofit retrofit = retrofitMap.get(baseUrl);
         if (retrofit == null) {
             retrofit = new Retrofit.Builder()
                     .client(mClient)
-                    .addConverterFactory(GsonConverterFactory.create())
+                    .addConverterFactory(GsonConverterFactory.create(gson))
                     .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                     .baseUrl(baseUrl)
                     .build();
@@ -54,6 +66,34 @@
         }
         return retrofit;
     }
+    /**
+     * 鑷畾涔塗ypeAdapter ,null瀵硅薄灏嗚瑙f瀽鎴愮┖瀛楃涓�
+     */
+    public static final TypeAdapter<String> STRING = new TypeAdapter<String>() {
+        public String read(JsonReader reader) {
+            try {
+                if (reader.peek() == JsonToken.NULL) {
+                    reader.nextNull();
+                    return ""; // 鍘熷厛鏄繑鍥瀗ull锛岃繖閲屾敼涓鸿繑鍥炵┖瀛楃涓�
+                }
+                return reader.nextString();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            return "";
+        }
+        public void write(JsonWriter writer, String value) {
+            try {
+                if (value == null) {
+                    writer.nullValue();
+                    return;
+                }
+                writer.value(value);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    };
 
     /**
      * 璁剧疆 鑷畾涔塐kHttpClient
diff --git a/app_base/src/main/java/com/android/app_base/utils/Converter.java b/app_base/src/main/java/com/android/app_base/utils/Converter.java
new file mode 100644
index 0000000..550388f
--- /dev/null
+++ b/app_base/src/main/java/com/android/app_base/utils/Converter.java
@@ -0,0 +1,26 @@
+package com.android.app_base.utils;
+
+import android.text.TextUtils;
+
+import androidx.databinding.InverseMethod;
+
+/**
+ * @author Ljj
+ * @date 2023.06.08. 23:01
+ * @desc databinding 鐨� 鏁版嵁 杞崲鍣�
+ */
+public class Converter {
+    @InverseMethod("doubleToString")
+    public static double stringToDouble(String value) {
+        if (TextUtils.isEmpty(value)) {
+            return 0.0;
+        }
+        return Double.parseDouble(value);
+
+    }
+
+    public static String doubleToString(double value) {
+        return String.valueOf(value);
+    }
+
+}
diff --git a/app_base/src/main/java/com/android/app_base/utils/RxUtils.java b/app_base/src/main/java/com/android/app_base/utils/RxUtils.java
index 2fc511b..661e8d3 100644
--- a/app_base/src/main/java/com/android/app_base/utils/RxUtils.java
+++ b/app_base/src/main/java/com/android/app_base/utils/RxUtils.java
@@ -1,15 +1,17 @@
 package com.android.app_base.utils;
 
+import io.reactivex.FlowableTransformer;
 import io.reactivex.Observable;
 import io.reactivex.ObservableSource;
 import io.reactivex.ObservableTransformer;
+import io.reactivex.Scheduler;
 import io.reactivex.android.schedulers.AndroidSchedulers;
 import io.reactivex.schedulers.Schedulers;
 
 /**
 * @author Ljj
 * @date 2023.03.24. 17:42
-* @desc
+* @desc RxJava宸ュ叿绫�
 */public class RxUtils {
 
     public static <T> ObservableTransformer<T, T> schedulersTransformer() {
@@ -17,7 +19,20 @@
                 .observeOn(AndroidSchedulers.mainThread());
     }
 
+    public static <T> ObservableTransformer<T, T> io() {
+        return upstream -> upstream.subscribeOn(Schedulers.io());
+    }
 
+    private static <T> FlowableTransformer<T, T> schedulerTransformerF(Scheduler scheduler) {
+        return flowable ->
+                flowable
+                        .subscribeOn(scheduler)
+                        .observeOn(AndroidSchedulers.mainThread(), true);
+    }
+
+    public static <T> FlowableTransformer<T, T> ioF() {
+        return schedulerTransformerF(Schedulers.io());
+    }
 
 
 
diff --git a/app_base/src/main/java/com/android/app_base/utils/Utils.java b/app_base/src/main/java/com/android/app_base/utils/Utils.java
new file mode 100644
index 0000000..18758a7
--- /dev/null
+++ b/app_base/src/main/java/com/android/app_base/utils/Utils.java
@@ -0,0 +1,228 @@
+package com.android.app_base.utils;
+
+import android.animation.ValueAnimator;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Build;
+import android.os.Environment;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.core.content.FileProvider;
+
+import com.blankj.utilcode.util.LogUtils;
+
+import java.io.File;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author Ljj
+ * @date 2023.05.18. 19:29
+ * @desc
+ */
+public class Utils {
+    /**
+     * 涓嬫媺灞曞紑
+     * @param view 闇�瑕佸睍寮�鐨剉iew
+     * @param initialHeight 鍒濆楂樺害
+     * @param targetHeight 鐩爣楂樺害
+     */
+    public static void dropExpand(View view,int initialHeight , int targetHeight) {
+        ValueAnimator animator = ValueAnimator.ofInt(initialHeight,targetHeight);
+        animator.setDuration(500);
+        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+            @Override
+            public void onAnimationUpdate(ValueAnimator animation) {
+                int value = (int) animation.getAnimatedValue();
+                view.getLayoutParams().height = value;
+                view.requestLayout();
+            }
+        });
+        animator.start();
+    }
+    /**
+     * 涓婃媺鏀惰捣
+     * @param view 闇�瑕佹敹璧风殑view
+     * @param initialHeight 鍒濆楂樺害
+     * @param targetHeight 鐩爣楂樺害
+     */
+    public static void pullCollapse(View view,int initialHeight, int targetHeight) {
+        ValueAnimator animator = ValueAnimator.ofInt(initialHeight, targetHeight);
+        animator.setDuration(500);
+        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+            @Override
+            public void onAnimationUpdate(ValueAnimator animation) {
+                int value = (int) animation.getAnimatedValue();
+                view.getLayoutParams().height = value;
+                view.requestLayout();
+            }
+        });
+        animator.start();
+    }
+
+    /**
+     * 鍒ゆ柇鐐瑰嚮鐨勭偣鏄惁鍦╲iew鍐�
+     * @param x x鍧愭爣
+     * @param y y鍧愭爣
+     * @param view view
+     * @return 鏄惁鍦╲iew鍐�
+     */
+    public static boolean isPointInsideView(float x, float y, View view) {
+        int[] location = new int[2];
+        view.getLocationOnScreen(location);
+
+        int left = location[0];
+        int top = location[1];
+        int right = left + view.getWidth();
+        int bottom = top + view.getHeight();
+
+        return x >= left && x <= right && y >= top && y <= bottom;
+    }
+
+    /**
+     * 瀛楃涓茶浆鏃ユ湡
+     * @param dateString 鏃ユ湡瀛楃涓�
+     * @return 鏃ユ湡 Date
+     */
+    public static Date parseDate(String dateString) {
+        try {
+            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", java.util.Locale.getDefault());
+            return dateFormat.parse(dateString);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /**
+     *  鍒嗗壊瀛楃涓叉垚list
+     */
+    public static List<String> splitString2List(String str, String splitStr) {
+        if (str == null|| TextUtils.isEmpty(str)){
+            return new ArrayList<>();
+        }
+        String[] split = str.split(splitStr);
+        List<String> list = new ArrayList<>();
+        for (String s : split) {
+            if (!TextUtils.isEmpty(s)){
+                list.add(s);
+            }
+        }
+        return list;
+    }
+
+    /**
+     *  list鎷兼帴鎴愬瓧绗︿覆
+     */
+    public static String appendList2String(List<String> list,String appendStr) {
+        if (list == null || list.size() == 0) {
+            return "";
+        }
+        StringBuilder sb = new StringBuilder();
+        for (String s : list) {
+            sb.append(s).append(appendStr);
+        }
+        //鍘绘帀鏈�鍚庝竴涓嫾鎺ョ
+        if (sb.length() > 0) {
+            sb.deleteCharAt(sb.length() - appendStr.length());
+        }
+        return sb.toString();
+    }
+
+    /**
+     *  璁剧疆 TextView 鏂囨湰婧㈠嚭澶勭悊鏂瑰紡
+     */
+    public static void setTextViewEllipsize(TextView textView, TextUtils.TruncateAt where) {
+        if (textView.getEllipsize() == where) {
+            return;
+        }
+        textView.setEllipsize(where);
+        if (where != TextUtils.TruncateAt.MARQUEE) {
+            return;
+        }
+        if (!textView.isSelected()) {
+            // 璁剧疆璺戦┈鐏箣鍚庨渶瑕佽缃�変腑鎵嶈兘鏈夋晥鏋�
+            textView.setSelected(true);
+        }
+        if (!textView.isFocusable()) {
+            // 璁剧疆璺戦┈鐏渶瑕佸厛鑾峰彇鐒︾偣
+            textView.setFocusable(true);
+        }
+        textView.setSingleLine(true);
+        // 璁剧疆璺戦┈鐏殑寰幆娆℃暟
+        textView.setMarqueeRepeatLimit(-1);
+    }
+
+    /**
+     *  鍒ゆ柇涓や釜鏃ユ湡澶у皬
+     */
+    public static int compareDate(String startTime, String endTime) {
+        //姣旇緝鏃堕棿澶у皬
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", java.util.Locale.getDefault());
+        try {
+            Date startDate = dateFormat.parse(startTime);
+            Date endDate = dateFormat.parse(endTime);
+            if (startDate == null || endDate == null) {
+                return 0;
+            }
+            return startDate.compareTo(endDate);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    /**
+     *  璁$畻涓や釜鏃ユ湡鐩稿樊澶╂暟
+     */
+    public static int calculateDays(String startTime, String endTime) {
+        int days = 0;
+        //璁$畻涓や釜鏃ユ湡鐩稿樊澶╂暟
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", java.util.Locale.getDefault());
+        try {
+            Date startDate = dateFormat.parse(startTime);
+            Date endDate = dateFormat.parse(endTime);
+            if (startDate == null || endDate == null) {
+                return 0;
+            }
+            days = (int) TimeUnit.DAYS.convert(Math.abs(startDate.getTime() - endDate.getTime()), TimeUnit.MILLISECONDS);
+
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+        return days + 1;
+    }
+
+    /**
+     *  瀹夎 APK
+     */
+    public static void installAPK(Context context, String fileName) {
+        fileName = Environment.getExternalStorageDirectory().getPath() + "/" + Environment.DIRECTORY_DOWNLOADS + "/" + fileName;
+        LogUtils.e(fileName);
+        File file = new File(fileName);
+        if (!file.exists()) {
+            return;
+        }
+        Intent intent = new Intent(Intent.ACTION_VIEW);
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+            intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+            Uri contentUri = FileProvider.getUriForFile(context, context.getApplicationContext().getPackageName() + ".fileprovider", file);
+            intent.setDataAndType(contentUri, "application/vnd.android.package-archive");
+        } else {
+//            Uri uri = Uri.parse("file://" + file.toString());
+            intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
+            //鍦ㄦ湇鍔′腑寮�鍚痑ctivity蹇呴』璁剧疆flag,鍚庨潰瑙i噴
+            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        }
+        context.startActivity(intent);
+    }
+
+}
diff --git a/app_base/src/main/java/com/android/app_base/utils/rxbus/MessageEvent.java b/app_base/src/main/java/com/android/app_base/utils/rxbus/MessageEvent.java
new file mode 100644
index 0000000..37e87bd
--- /dev/null
+++ b/app_base/src/main/java/com/android/app_base/utils/rxbus/MessageEvent.java
@@ -0,0 +1,39 @@
+package com.android.app_base.utils.rxbus;
+
+/**
+ * @author Ljj
+ * @date 2023.05.19. 13:37
+ * @desc
+ */
+public class MessageEvent {
+    public static final int EVENT_INFO_UPDATE = 1;
+    public static final int EVENT_TOURISM_CONSUME_CHANGE = 2;
+    private int messageEventCode;
+    private Object messageEventData;
+
+    public MessageEvent() {
+    }
+    public MessageEvent(int messageEventCode) {
+        this.messageEventCode = messageEventCode;
+    }
+    public MessageEvent(int messageEventCode, Object messageEventData) {
+        this.messageEventCode = messageEventCode;
+        this.messageEventData = messageEventData;
+    }
+
+    public int getMessageEventCode() {
+        return messageEventCode;
+    }
+
+    public void setMessageEventCode(int messageEventCode) {
+        this.messageEventCode = messageEventCode;
+    }
+
+    public Object getMessageEventData() {
+        return messageEventData;
+    }
+
+    public void setMessageEventData(Object messageEventData) {
+        this.messageEventData = messageEventData;
+    }
+}
diff --git a/app_base/src/main/java/com/android/app_base/utils/rxbus/RxBus.java b/app_base/src/main/java/com/android/app_base/utils/rxbus/RxBus.java
new file mode 100644
index 0000000..078f43b
--- /dev/null
+++ b/app_base/src/main/java/com/android/app_base/utils/rxbus/RxBus.java
@@ -0,0 +1,125 @@
+package com.android.app_base.utils.rxbus;
+
+import androidx.lifecycle.LifecycleOwner;
+import com.uber.autodispose.AutoDispose;
+import com.uber.autodispose.ObservableSubscribeProxy;
+import com.uber.autodispose.android.lifecycle.AndroidLifecycleScopeProvider;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import io.reactivex.Observable;
+import io.reactivex.subjects.PublishSubject;
+import io.reactivex.subjects.Subject;
+
+/**
+ * @author Ljj
+ * @date 2023.05.18. 21:54
+ * @desc RxBus
+ */
+public class RxBus {
+    private volatile static RxBus mDefaultInstance;
+    //浜嬩欢鎬荤嚎
+    private final Subject<Object> mBus;
+    //绮樻�т簨浠跺瓨鍌�
+    private final Map<Class<?>, Object> mStickyEventMap;
+
+    private RxBus() {
+        mBus = PublishSubject.create().toSerialized();
+        mStickyEventMap = new ConcurrentHashMap<>();
+    }
+
+    public static RxBus getInstance() {
+        if (mDefaultInstance == null) {
+            synchronized (RxBus.class) {
+                if (mDefaultInstance == null) {
+                    mDefaultInstance = new RxBus();
+                }
+            }
+        }
+        return mDefaultInstance;
+    }
+
+    /**
+     * 鍙戦�佷簨浠�
+     */
+    public void post(Object event) {
+        mBus.onNext(event);
+    }
+
+    /**
+     * 浣跨敤 AutoDispose瑙e喅RxJava寮曡捣鐨勫唴瀛樻硠婕�
+     * 杩斿洖 ObservableSubscribeProxy锛屽疄闄呯敤澶勫拰Observable涓�鏍�
+     *
+     */
+    public <T> ObservableSubscribeProxy<T> toObservable(LifecycleOwner owner, final Class<T> eventType) {
+        AndroidLifecycleScopeProvider provider = AndroidLifecycleScopeProvider.from(owner);
+        return mBus.ofType(eventType).as(AutoDispose.autoDisposable(provider));
+    }
+
+
+    /**
+     * 鍒ゆ柇鏄惁鏈夎闃呰��
+     */
+    public boolean hasObservers() {
+        return mBus.hasObservers();
+    }
+
+    public void reset() {
+        mDefaultInstance = null;
+    }
+
+    /**
+     * 鍙戦�佷竴涓柊Sticky浜嬩欢
+     */
+    public void postSticky(Object event) {
+        synchronized (mStickyEventMap) {
+            mStickyEventMap.put(event.getClass(), event);
+        }
+        post(event);
+    }
+
+    /**
+     *  鏍规嵁eventType鑾峰彇Sticky浜嬩欢锛屽鏋滄病鏈夊垯杩斿洖null
+     */
+    public <T> ObservableSubscribeProxy<T> toObservableSticky(LifecycleOwner owner, final Class<T> eventType) {
+        synchronized (mStickyEventMap) {
+            AndroidLifecycleScopeProvider provider = AndroidLifecycleScopeProvider.from(owner);
+            Observable<T> observable = mBus.ofType(eventType);
+            final Object event = mStickyEventMap.get(eventType);
+            if (event != null) {
+                return observable.mergeWith(Observable.create(subscriber -> subscriber.onNext(eventType.cast(event)))).as(AutoDispose.autoDisposable(provider));
+            } else {
+                return observable.as(AutoDispose.autoDisposable(provider));
+            }
+        }
+    }
+
+    /**
+     * 鏍规嵁eventType鑾峰彇Sticky浜嬩欢
+     */
+    public <T> T getStickyEvent(Class<T> eventType) {
+        synchronized (mStickyEventMap) {
+            return eventType.cast(mStickyEventMap.get(eventType));
+        }
+    }
+
+    /**
+     * 绉婚櫎鎸囧畾eventType鐨凷ticky浜嬩欢
+     */
+    public <T> T removeStickyEvent(Class<T> eventType) {
+        synchronized (mStickyEventMap) {
+            return eventType.cast(mStickyEventMap.remove(eventType));
+        }
+    }
+
+    /**
+     * 绉婚櫎鎵�鏈夌殑Sticky浜嬩欢
+     */
+    public void removeAllStickyEvents() {
+        synchronized (mStickyEventMap) {
+            mStickyEventMap.clear();
+        }
+    }
+
+}
diff --git a/app_base/src/main/java/com/android/app_base/widget/ClearEditText.java b/app_base/src/main/java/com/android/app_base/widget/ClearEditText.java
new file mode 100644
index 0000000..807230b
--- /dev/null
+++ b/app_base/src/main/java/com/android/app_base/widget/ClearEditText.java
@@ -0,0 +1,150 @@
+package com.android.app_base.widget;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.drawable.Drawable;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.view.View;
+
+import androidx.annotation.DrawableRes;
+import androidx.annotation.Nullable;
+import androidx.appcompat.widget.AppCompatEditText;
+import androidx.core.content.ContextCompat;
+import androidx.core.graphics.drawable.DrawableCompat;
+
+import com.android.app_base.R;
+
+/**
+ * @author Ljj
+ * @date 2023.05.17. 17:00
+ * @desc
+ */
+public final class ClearEditText extends AppCompatEditText
+        implements View.OnTouchListener,
+        View.OnFocusChangeListener, TextWatcher {
+
+    private Drawable mClearDrawable;
+
+    @Nullable
+    private View.OnTouchListener mTouchListener;
+    @Nullable
+    private View.OnFocusChangeListener mFocusChangeListener;
+
+    public ClearEditText(Context context) {
+        this(context, null);
+    }
+
+    public ClearEditText(Context context, AttributeSet attrs) {
+        this(context, attrs, android.R.attr.editTextStyle);
+    }
+
+    @SuppressWarnings("all")
+    public ClearEditText(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ClearEditText);
+        mClearDrawable = a.getDrawable(R.styleable.ClearEditText_background);
+        if (mClearDrawable == null){
+            mClearDrawable = DrawableCompat.wrap(ContextCompat.getDrawable(context, R.drawable.input_delete_ic));
+        }
+        mClearDrawable.setBounds(0, 0, mClearDrawable.getIntrinsicWidth(), mClearDrawable.getIntrinsicHeight());
+        setDrawableVisible(false);
+        super.setOnTouchListener(this);
+        super.setOnFocusChangeListener(this);
+        super.addTextChangedListener(this);
+    }
+
+    private void setDrawableVisible(boolean visible) {
+        if (mClearDrawable.isVisible() == visible) {
+            return;
+        }
+
+        mClearDrawable.setVisible(visible, false);
+        Drawable[] drawables = getCompoundDrawablesRelative();
+        setCompoundDrawablesRelative(
+                drawables[0],
+                drawables[1],
+                visible ? mClearDrawable : null,
+                drawables[3]);
+    }
+
+    @Override
+    public void setOnFocusChangeListener(@Nullable View.OnFocusChangeListener onFocusChangeListener) {
+        mFocusChangeListener = onFocusChangeListener;
+    }
+
+    @Override
+    public void setOnTouchListener(@Nullable View.OnTouchListener onTouchListener) {
+        mTouchListener = onTouchListener;
+    }
+
+    /**
+     * {@link View.OnFocusChangeListener}
+     */
+
+    @Override
+    public void onFocusChange(View view, boolean hasFocus) {
+        if (hasFocus && getText() != null) {
+            setDrawableVisible(getText().length() > 0);
+        } else {
+            setDrawableVisible(true);
+        }
+        setDrawableVisible(getText() != null && getText().length() > 0);
+        if (mFocusChangeListener != null) {
+            mFocusChangeListener.onFocusChange(view, hasFocus);
+        }
+    }
+
+    /**
+     * {@link View.OnTouchListener}
+     */
+
+    @Override
+    public boolean onTouch(View view, MotionEvent event) {
+        int x = (int) event.getX();
+
+        // 鏄惁瑙︽懜浜� Drawable
+        boolean touchDrawable = false;
+        // 鑾峰彇甯冨眬鏂瑰悜
+        int layoutDirection = getLayoutDirection();
+        if (layoutDirection == LAYOUT_DIRECTION_LTR) {
+            // 浠庡乏寰�鍙�
+            touchDrawable = x > getWidth() - mClearDrawable.getIntrinsicWidth() - getPaddingEnd() &&
+                    x < getWidth() - getPaddingEnd();
+        } else if (layoutDirection == LAYOUT_DIRECTION_RTL) {
+            // 浠庡彸寰�宸�
+            touchDrawable = x > getPaddingStart() &&
+                    x < getPaddingStart() + mClearDrawable.getIntrinsicWidth();
+        }
+
+        if (mClearDrawable.isVisible() && touchDrawable) {
+            if (event.getAction() == MotionEvent.ACTION_UP) {
+                setText("");
+                setDrawableVisible(false);
+            }
+            return true;
+        }
+        return mTouchListener != null && mTouchListener.onTouch(view, event);
+    }
+
+    /**
+     * {@link TextWatcher}
+     */
+
+    @Override
+    public void onTextChanged(CharSequence s, int start, int before, int count) {
+        if (isFocused()) {
+            setDrawableVisible(s.length() > 0);
+        }
+    }
+
+    @Override
+    public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
+
+    @Override
+    public void afterTextChanged(Editable s) {}
+
+}
+
diff --git a/app_base/src/main/res/drawable/input_delete_ic.xml b/app_base/src/main/res/drawable/input_delete_ic.xml
new file mode 100644
index 0000000..58bebec
--- /dev/null
+++ b/app_base/src/main/res/drawable/input_delete_ic.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="@dimen/dp_20"
+    android:height="@dimen/dp_20"
+    android:viewportWidth="1024"
+    android:viewportHeight="1024">
+
+    <path
+        android:fillColor="#cbcbcb"
+        android:pathData="M557.7 511.2L845 223.8c3.1-3.1 3.1-8.2 0-11.3l-34-34.1c-3.1-3.1-8.2-3.1-11.3
+0L512.3 465.8 224.9 178.4c-3.1-3.1-8.2-3.1-11.3 0l-34.1 34.1c-3.1 3.1-3.1 8.2 0
+11.3l287.4 287.4-287.4 287.3c-3.1 3.1-3.1 8.2 0 11.3l34.1 34.1c3.1 3.1 8.2 3.1
+11.3 0l287.4-287.4 287.4 287.4c3.1 3.1 8.2 3.1 11.3 0l34.1-34.1c3.1-3.1 3.1-8.2
+0-11.3L557.7 511.2z" />
+</vector>
\ No newline at end of file
diff --git a/app_base/src/main/res/font/cookie_regular.ttf b/app_base/src/main/res/font/cookie_regular.ttf
new file mode 100644
index 0000000..e3ac74e
--- /dev/null
+++ b/app_base/src/main/res/font/cookie_regular.ttf
Binary files differ
diff --git a/app_base/src/main/res/font/roboto_regular.ttf b/app_base/src/main/res/font/roboto_regular.ttf
new file mode 100644
index 0000000..3033308
--- /dev/null
+++ b/app_base/src/main/res/font/roboto_regular.ttf
Binary files differ
diff --git a/app_base/src/main/res/layout/dialog_ui.xml b/app_base/src/main/res/layout/dialog_ui.xml
index f5861bd..8182478 100644
--- a/app_base/src/main/res/layout/dialog_ui.xml
+++ b/app_base/src/main/res/layout/dialog_ui.xml
@@ -17,14 +17,18 @@
         android:orientation="vertical"
         android:paddingTop="@dimen/dp_20">
 
-        <TextView
+        <androidx.appcompat.widget.AppCompatTextView
             android:id="@+id/tv_ui_title"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_gravity="center_horizontal"
             android:textColor="#DE000000"
             android:textSize="20sp"
+            app:autoSizeTextType="uniform"
+            app:autoSizeMaxTextSize="20sp"
+            app:autoSizeMinTextSize="16sp"
             android:textStyle="bold"
+            android:layout_marginHorizontal="20dp"
             tools:text="鏍囬" />
 
 
@@ -49,7 +53,7 @@
                 android:layout_weight="1"
                 android:focusable="true"
                 android:gravity="center"
-                android:paddingVertical="@dimen/dp_15"
+                android:paddingVertical="15dp"
                 android:text="鍙栨秷"
                 android:textColor="#FFF83F39"
                 android:textSize="@dimen/sp_14" />
diff --git a/app_base/src/main/res/layout/wait_dialog.xml b/app_base/src/main/res/layout/wait_dialog.xml
index 31ecfdd..73415be 100644
--- a/app_base/src/main/res/layout/wait_dialog.xml
+++ b/app_base/src/main/res/layout/wait_dialog.xml
@@ -8,7 +8,7 @@
     android:gravity="center"
     android:orientation="vertical"
     app:cardBackgroundColor="#D9000000"
-    app:cardCornerRadius="@dimen/dp_15"
+    app:cardCornerRadius="15dp"
     app:cardElevation="0px"
     >
 
@@ -32,7 +32,7 @@
             android:id="@+id/tv_wait_message"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginHorizontal="@dimen/dp_15"
+            android:layout_marginHorizontal="15dp"
             android:layout_marginTop="@dimen/dp_5"
             android:maxLines="3"
             android:text="鍔犺浇涓�.."
diff --git a/app_base/src/main/res/values/arrts.xml b/app_base/src/main/res/values/arrts.xml
index 0ee4233..ce3740d 100644
--- a/app_base/src/main/res/values/arrts.xml
+++ b/app_base/src/main/res/values/arrts.xml
@@ -9,5 +9,8 @@
         <attr name="border_radius" format="dimension"/>
     </declare-styleable>
 
-
+    <declare-styleable name="ClearEditText">
+        <attr name="background" format="reference"/>
+        <attr name="padding" format="dimension"/>
+    </declare-styleable>
 </resources>
\ No newline at end of file
diff --git a/app_base/src/main/res/values/dimens.xml b/app_base/src/main/res/values/dimens.xml
index ef8cf44..b853d31 100644
--- a/app_base/src/main/res/values/dimens.xml
+++ b/app_base/src/main/res/values/dimens.xml
@@ -2,7 +2,7 @@
 <resources>
 
     <!-- Your custom size defind by references, can be writted in anywhere, any module, any values/*.xml, for example: -->
-    <dimen name="common_margin">@dimen/dp_15</dimen>
+    <dimen name="common_margin">15dp</dimen>
 
     <!-- dp and sp values, must be defind in this file! -->
     <!-- view size,you can add if there is no one -->
diff --git a/app_base/src/main/res/values/styles.xml b/app_base/src/main/res/values/styles.xml
index 1df6e6f..3664421 100644
--- a/app_base/src/main/res/values/styles.xml
+++ b/app_base/src/main/res/values/styles.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
+    <!-- 鍙充笂瑙掓搷浣滃脊绐� -->
     <style name="pop_operate">
         <item name="android:windowEnterAnimation">@anim/pop_operate_show</item>
         <item name="android:windowExitAnimation">@anim/pop_operate_hide</item>
diff --git a/screenMatch_example_dimens.xml b/screenMatch_example_dimens.xml
index 026f490..3cfbca4 100644
--- a/screenMatch_example_dimens.xml
+++ b/screenMatch_example_dimens.xml
@@ -2,7 +2,7 @@
 <resources>
 
     <!-- Your custom size defind by references, can be writted in anywhere, any module, any values/*.xml, for example: -->
-    <dimen name="card_common_margin_left">@dimen/dp_15</dimen>
+    <dimen name="card_common_margin_left">15dp</dimen>
 
     <!-- dp and sp values, must be defind in this file! -->
     <!-- view size,you can add if there is no one -->

--
Gitblit v1.9.1